:root{
  --container-max: 1200px;
  --space: clamp(12px, 1.8vw, 20px);
  --radius: 16px;
}

*{margin:0;padding:0;box-sizing:border-box}
body{font-family:'Microsoft JhengHei',Arial,sans-serif;line-height:1.6;color:#333}
.container{max-width:var(--container-max);margin:0 auto;padding-inline:var(--space)}

/* Header */
header{background:linear-gradient(135deg,#c41e3a,#8b1538);color:#fff;padding:clamp(48px,7vw,80px) 0 clamp(40px,5vw,60px);text-align:center;position:relative;overflow:hidden}
header::before{content:'';position:absolute;inset:0;background:linear-gradient(transparent,rgba(0,0,0,.1))}
.logo{width:clamp(84px,12vw,120px);height:clamp(84px,12vw,120px);background:#fff;border-radius:50%;margin:0 auto 20px;display:flex;align-items:center;justify-content:center;font-size:clamp(22px,4vw,36px);font-weight:bold;color:#c41e3a;box-shadow:0 10px 30px rgba(0,0,0,.3)}
h1{font-size:clamp(28px,5vw,52px);margin-bottom:10px;text-shadow:2px 2px 4px rgba(0,0,0,.3)}
.subtitle{font-size:clamp(14px,2.4vw,18px);opacity:.95;margin-bottom:12px}
.location-badge{display:inline-block;background:rgba(255,255,255,.18);padding:8px 14px;border-radius:20px;border:1px solid rgba(255,255,255,.35);backdrop-filter:blur(6px)}

/* Nav */
nav{background:#fff;position:sticky;top:0;z-index:100;box-shadow:0 2px 10px rgba(0,0,0,.06)}
.nav-wrap{display:flex;align-items:center;justify-content:center;gap:10px;padding-block:clamp(10px,2vw,14px)}
.nav-toggle{display:none;background:none;border:0;font-size:28px;line-height:1;padding:6px 10px;cursor:pointer}
.nav-list{list-style:none;display:flex;flex-wrap:wrap;gap:12px;justify-content:center}
.nav-list a{text-decoration:none;color:#333;font-weight:600;padding:8px 16px;border-radius:20px;transition:.2s}
.nav-list a:hover{color:#c41e3a;background:rgba(196,30,58,.06)}

/* Sections */
section{padding-block:clamp(40px,7vw,72px)}
.section-title{text-align:center;font-size:clamp(22px,3.6vw,38px);color:#c41e3a;margin-bottom:clamp(22px,4vw,44px);position:relative}
.section-title::after{content:'';display:block;width:80px;height:4px;background:linear-gradient(90deg,#c41e3a,#ff6b6b);margin:16px auto;border-radius:2px}

/* About */
.about-content{display:grid;grid-template-columns:1fr 1fr;gap:clamp(16px,4vw,40px);align-items:center}
.about-text{font-size:clamp(14px,2.2vw,17px)}
.highlight-box{background:linear-gradient(135deg,#fff5f5,#ffe8e8);padding:clamp(12px,2.4vw,18px) clamp(14px,2.8vw,20px);border-left:5px solid #c41e3a;border-radius:12px;margin:18px 0}

.features{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:clamp(12px,2.4vw,20px);margin-top:clamp(12px,3vw,18px)}
.feature{background:#fff;border-radius:12px;padding:clamp(16px,2.8vw,24px);text-align:center;box-shadow:0 5px 18px rgba(0,0,0,.08)}
.feature-icon{font-size:clamp(22px,4vw,30px);margin-bottom:8px}

/* Menu */
.menu-categories{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr));gap:clamp(14px,2.4vw,24px)}
.menu-category{background:#fff;border-radius:var(--radius);overflow:hidden;box-shadow:0 10px 28px rgba(0,0,0,.08)}
.category-header{background:linear-gradient(135deg,#c41e3a,#ff6b6b);color:#fff;padding:clamp(12px,2.4vw,18px);text-align:center;font-weight:700}
.menu-items{padding:clamp(12px,2.8vw,20px)}
.menu-item{display:flex;justify-content:space-between;gap:12px;padding-block:12px;border-bottom:1px solid #eee}
.menu-item:last-child{border-bottom:none}
.item-name{font-weight:600}
.item-price{color:#c41e3a;font-weight:700}
.note{font-size:.92em;color:#666;margin-top:10px;background:#f8f9fa;padding:10px;border-radius:8px}

/* Gallery */
.gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:clamp(12px,2.4vw,20px)}
.gallery-item{border-radius:14px;overflow:hidden;box-shadow:0 8px 22px rgba(0,0,0,.15);position:relative}
.gallery-item img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}
.gallery-overlay{position:absolute;left:0;right:0;bottom:0;background:linear-gradient(transparent,rgba(0,0,0,.8));color:#fff;padding:18px;font-weight:600}

/* Product / Order */
.product-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:clamp(14px,2.4vw,24px);margin-bottom:clamp(16px,3vw,24px)}
.product-card{background:#fff;border-radius:var(--radius);overflow:hidden;box-shadow:0 8px 22px rgba(0,0,0,.1);transition:transform .2s}
.product-card:hover{transform:translateY(-3px)}
.product-image img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}
.product-info{padding:clamp(14px,2.8vw,24px);text-align:center}
.product-info h3{color:#c41e3a;margin-bottom:8px;font-size:clamp(16px,2.6vw,22px)}
.product-info p{color:#666;margin-bottom:10px}
.product-price{font-size:clamp(18px,3vw,24px);font-weight:700;color:#c41e3a;margin-bottom:12px}
.quantity-control{display:flex;justify-content:center;align-items:center;gap:14px;margin-bottom:12px}
.qty-btn{width:40px;height:40px;border:2px solid #c41e3a;background:#fff;color:#c41e3a;font-size:20px;font-weight:700;border-radius:50%;cursor:pointer}
.qty-btn:hover{background:#c41e3a;color:#fff}
.quantity{min-width:26px;font-weight:700}
.add-to-cart-btn{background:linear-gradient(135deg,#c41e3a,#ff6b6b);color:#fff;border:0;padding:10px 18px;border-radius:22px;font-weight:700;cursor:pointer;width:100%}
.checkout-btn{background:linear-gradient(135deg,#28a745,#20c997);color:#fff;border:0;padding:12px 26px;border-radius:25px;font-size:1.05rem;font-weight:700;cursor:pointer}

/* Footer */
footer{background:#2c3e50;color:#fff;padding-block:clamp(22px,4vw,36px)}
.footer-links{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px}
.btn{display:inline-block;padding:8px 14px;border-radius:18px;text-decoration:none;font-weight:700}
.btn-line{background:#06C755;color:#fff}
.btn-ig{background:#E4405F;color:#fff}
.btn-outline{border:1px solid rgba(255,255,255,.6);color:#fff}

/* 關於我們卡片 */
.about-card{margin-top:26px;background:#fff;border-radius:14px;padding:20px;box-shadow:0 6px 18px rgba(0,0,0,.08)}

/* FAB */
.fab{position:fixed;right:22px;bottom:22px;width:60px;height:60px;border-radius:50%;background:linear-gradient(135deg,#06C755,#00B900);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:800;text-decoration:none;box-shadow:0 8px 22px rgba(0,0,0,.25);z-index:1000}

/* Mobile <= 768px */
@media (max-width:768px){
  .about-content{grid-template-columns:1fr}
  .nav-wrap{justify-content:space-between}
  .nav-toggle{display:block}
  .nav-list{display:none;flex-direction:column;align-items:flex-start;padding:10px 0}
  .nav-list.open{display:flex}
  .gallery-item img{aspect-ratio:16/9}
}

/* Larger screens */
@media (min-width:1200px){
  .gallery-item img{aspect-ratio:16/10}
}

/* 無動畫偏好 */
@media (prefers-reduced-motion: reduce){
  *{scroll-behavior:auto}
}
/* ===== Lightbox ===== */
.lightbox{
  position:fixed; inset:0;
  background:rgba(0,0,0,.85);
  display:none; /* 以 class 切換顯示 */
  align-items:center; justify-content:center;
  z-index: 2000;
  padding: clamp(10px, 3vw, 28px);
}
.lightbox--open{ display:flex; }

.lightbox__figure{
  margin:0; max-width: 96vw; max-height: 90vh;
  display:flex; flex-direction:column; align-items:center;
  gap: 10px;
}
.lightbox__figure img{
  max-width: 96vw; max-height: 80vh;
  width:auto; height:auto; border-radius:12px;
  box-shadow: 0 20px 50px rgba(0,0,0,.4);
}
.lightbox__figure figcaption{
  color:#fff; text-align:center; font-size:1rem;
  line-height:1.5; opacity:.95; max-width: 90vw;
}

.lightbox__close{
  position:absolute; top:14px; right:14px;
  width:44px; height:44px; border-radius:50%;
  border:none; cursor:pointer;
  background:rgba(255,255,255,.15); color:#fff; font-size:28px;
  display:grid; place-items:center;
}
.lightbox__close:hover{ background:rgba(255,255,255,.25); }

.lightbox__nav{
  position:absolute; top:50%; transform:translateY(-50%);
  width:48px; height:64px; border:none; cursor:pointer;
  background:rgba(255,255,255,.15); color:#fff; font-size:34px;
  border-radius:12px;
}
.lightbox__prev{ left:14px; }
.lightbox__next{ right:14px; }
.lightbox__nav:hover{ background:rgba(255,255,255,.25); }

/* 小螢幕更貼近邊緣 */
@media (max-width: 640px){
  .lightbox__nav{ width:40px; height:56px; font-size:28px; }
  .lightbox__close{ width:40px; height:40px; font-size:24px; }
}
/* Lightbox */
.lightbox{position:fixed;inset:0;background:rgba(0,0,0,.85);display:none;align-items:center;justify-content:center;z-index:1000;padding:20px}
.lightbox--open{display:flex}
.lightbox__figure{max-width:min(96vw,1200px);max-height:90vh;margin:0;position:relative;text-align:center}
.lightbox__figure img{max-width:100%;max-height:80vh;display:block;margin:0 auto;border-radius:8px;box-shadow:0 10px 30px rgba(0,0,0,.4)}
.lightbox__figure figcaption{color:#fff;opacity:.9;margin-top:10px;font-size:14px}
.lightbox__close{position:absolute;top:14px;right:18px;font-size:28px;line-height:1;border:none;background:transparent;color:#fff;cursor:pointer}
.lightbox__nav{position:absolute;top:50%;transform:translateY(-50%);font-size:40px;border:none;background:transparent;color:#fff;cursor:pointer;padding:8px 12px}
.lightbox__prev{left:12px}
.lightbox__next{right:12px}


/* ===== Lightbox ===== */
.lightbox{
  position:fixed; inset:0; display:none;
  align-items:center; justify-content:center;
  background:rgba(0,0,0,.85); z-index:2000; padding:24px;
}
.lightbox.is-open{ display:flex; }
.lightbox__figure{ margin:0; max-width:min(96vw,1100px); max-height:86vh; }
.lightbox__figure img{ display:block; max-width:100%; max-height:80vh; border-radius:10px; }
.lightbox__figure figcaption{ color:#fff; text-align:center; margin-top:12px; opacity:.85; }

.lightbox__close{
  position:absolute; top:16px; right:16px;
  background:none; border:none; color:#fff;
  font-size:28px; line-height:1; cursor:pointer;
}
.lightbox__nav{
  position:absolute; top:50%; transform:translateY(-50%);
  background:none; border:none; color:#fff; cursor:pointer;
  width:48px; height:48px; font-size:42px; line-height:1;
}
.lightbox__prev{ left:10px; }
.lightbox__next{ right:10px; }

/* 手機選單展開（若尚未有） */
.nav-list.open { display: flex; }
@media (max-width: 900px){
  .nav-list { display:none; flex-direction:column; gap:8px; }
}

/* === Lightbox 改善版 === */
.lightbox{position:fixed;inset:0;background:rgba(0,0,0,.86);display:none;align-items:center;justify-content:center;z-index:2000;padding:20px}
.lightbox--open{display:flex}
.lightbox__figure{max-width:min(92vw,1100px);max-height:88vh;margin:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.lightbox__figure img{max-width:100%;max-height:80vh;object-fit:contain;display:block;border-radius:8px;background:rgba(255,255,255,.04)}
.lightbox__figure figcaption{margin-top:8px;color:#fff;text-align:center;font-weight:700}
.lightbox__close,.lightbox__nav{position:absolute;width:44px;height:44px;border:0;border-radius:50%;background:rgba(255,255,255,.18);color:#fff;font-size:28px;line-height:44px;cursor:pointer;backdrop-filter:blur(4px)}
.lightbox__close{top:16px;right:16px}
.lightbox__prev{top:50%;left:16px;transform:translateY(-50%)}
.lightbox__next{top:50%;right:16px;transform:translateY(-50%)}

/* 載入中 spinner */
.lightbox--loading::after{
  content:""; position:absolute; width:48px; height:48px; border-radius:50%;
  border:4px solid rgba(255,255,255,.35); border-top-color:#fff;
  animation:lbspin 1s linear infinite;
}
@keyframes lbspin { to{ transform:rotate(360deg); } }

