:root{
  --cream:#fbf5eb;
  --cream-2:#fffaf2;
  --milk:#f7ead8;
  --paper:#fffdf8;
  --ink:#231a16;
  --muted:#746760;
  --line:#e7d3bd;
  --brand:#8f2b21;
  --brand-2:#b9552d;
  --caramel:#d4873f;
  --caramel-2:#bf6d2e;
  --tea:#6c3923;
  --shadow:0 24px 70px rgba(88,45,22,.13);
  --soft-shadow:0 14px 36px rgba(92,48,24,.10);
  --radius:28px;
  --container:min(1360px, calc(100% - 72px));
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  color:var(--ink);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans TC","PingFang TC","Microsoft JhengHei",Arial,sans-serif;
  background:
    radial-gradient(circle at 8% 26%, rgba(242,190,115,.22) 0 15%, transparent 16%),
    linear-gradient(180deg,var(--cream-2),var(--cream));
  line-height:1.65;
  overflow-x:hidden;
}
a{color:inherit;text-decoration:none}
img{max-width:100%;height:auto;display:block}
button,input,select,textarea{font:inherit}
.skip-link{position:absolute;left:-999px;top:auto;width:1px;height:1px;overflow:hidden}
.skip-link:focus{left:20px;top:20px;width:auto;height:auto;z-index:99;background:#fff;padding:10px 14px;border-radius:12px}
.site-header{
  position:sticky;top:0;z-index:50;
  background:rgba(255,250,242,.86);
  backdrop-filter:blur(18px);
  border-bottom:1px solid rgba(231,211,189,.7);
}
.nav-wrap{
  width:var(--container);margin:0 auto;
  height:72px;display:flex;align-items:center;gap:24px;
}
.brand{display:flex;align-items:center;gap:14px;min-width:0}
.brand-logo{width:42px;height:42px;border-radius:12px;object-fit:cover;background:#fff;box-shadow:0 6px 18px rgba(112,44,25,.13)}
.brand-title{font-size:22px;font-weight:900;letter-spacing:.02em;line-height:1.05;display:block;white-space:nowrap}
.brand-subtitle{font-size:13px;color:var(--muted);letter-spacing:.16em;margin-top:4px}
.nav-toggle{display:none;margin-left:auto;border:0;background:var(--brand);color:#fff;border-radius:14px;padding:10px 13px;font-weight:800}
.nav{margin-left:auto;display:flex;align-items:center;gap:40px;font-weight:800;letter-spacing:.08em}
.nav a{position:relative;color:#2c211d;white-space:nowrap}
.nav a::after{content:"";position:absolute;left:50%;bottom:-14px;width:0;height:3px;background:var(--brand);border-radius:99px;transform:translateX(-50%);transition:.2s ease}
.nav a:hover::after,.nav a.active::after{width:40px}
.cart-btn{display:inline-flex!important;align-items:center;gap:10px;background:linear-gradient(135deg,var(--brand),var(--brand-2));color:#fff!important;border-radius:14px;padding:10px 20px;box-shadow:0 14px 26px rgba(143,43,33,.18)}
.cart-btn::after{display:none}.cart-count{font-weight:900}
.hero{position:relative;padding:72px 0 40px}
.hero::after{
  content:"";position:absolute;right:-170px;top:0;width:520px;height:520px;border-radius:50%;
  background:rgba(129,143,122,.18);z-index:-1;
}
.hero-grid{width:var(--container);margin:0 auto;display:grid;grid-template-columns:1fr 1.08fr;gap:58px;align-items:center}
.eyebrow{display:inline-flex;align-items:center;gap:12px;border:1px solid #e9c69a;background:rgba(255,252,246,.72);border-radius:999px;padding:10px 20px;color:#a6522d;font-weight:900;letter-spacing:.13em;margin-bottom:28px}
.eyebrow svg{width:22px;height:22px;stroke:currentColor}
.hero-title{margin:0;font-size:clamp(44px,5.2vw,86px);line-height:1.02;letter-spacing:-.05em;font-weight:950;white-space:nowrap}
.hero-subtitle{font-size:clamp(24px,2.2vw,42px);line-height:1.18;color:#b06a37;font-weight:900;margin:18px 0 22px;letter-spacing:-.02em}
.hero-copy{max-width:640px;color:#5c504a;font-size:18px;letter-spacing:.02em;border-left:26px solid #c88b5a;padding-left:16px;margin:0 0 28px}
.hero-actions{display:flex;gap:18px;flex-wrap:wrap;margin-top:28px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:11px;min-height:58px;border-radius:15px;padding:0 30px;font-weight:900;letter-spacing:.08em;border:1px solid #d8b994;background:#fffaf3;transition:.18s ease;box-shadow:0 9px 18px rgba(95,51,27,.05)}
.btn svg{width:22px;height:22px;stroke:currentColor}.btn:hover{transform:translateY(-2px);box-shadow:0 15px 28px rgba(95,51,27,.12)}
.btn-primary{background:linear-gradient(135deg,#d8893a,#b75d2f);color:#fff;border-color:transparent;box-shadow:0 18px 34px rgba(187,92,45,.23)}
.hero-media{position:relative}
.photo-card{position:relative;overflow:hidden;border-radius:54px;box-shadow:var(--shadow);background:var(--milk);border:1px solid rgba(255,255,255,.62)}
.photo-card img{width:100%;aspect-ratio:1.55/1;object-fit:cover;object-position:center}
.photo-note{position:absolute;right:7.5%;top:11%;color:#fff7ec;font-family:"DFKai-SB","BiauKai","Kaiti TC",serif;font-size:clamp(18px,2vw,31px);font-weight:700;letter-spacing:.08em;text-shadow:0 3px 16px rgba(0,0,0,.22);transform:rotate(-4deg)}
.photo-note::after{content:"";display:block;width:210px;height:50px;border-bottom:3px solid rgba(255,250,242,.85);border-radius:50%;margin-top:-4px;transform:rotate(-9deg)}
.feature-row{width:var(--container);margin:46px auto 0;display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.feature-card{background:rgba(255,253,248,.78);border:1px solid rgba(226,205,180,.85);border-radius:22px;box-shadow:0 10px 30px rgba(95,51,27,.05)}
.feature-row-photo{gap:26px;align-items:stretch}
.feature-photo-card{
  position:relative;
  overflow:hidden;
  min-height:235px;
  border-radius:26px;
  border:1px solid rgba(215,189,158,.96);
  box-shadow:0 18px 46px rgba(92,48,24,.10);
  background:#f8efe3;
  isolation:isolate;
}
.feature-photo-card img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  transition:transform .5s ease;
}
.feature-photo-card:hover img{transform:scale(1.04)}
.feature-photo-card::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  background:
    linear-gradient(90deg, rgba(255,249,240,.96) 0%, rgba(255,249,240,.93) 38%, rgba(255,249,240,.72) 56%, rgba(255,249,240,.22) 78%, rgba(255,249,240,.10) 100%),
    linear-gradient(180deg, rgba(255,255,255,.10), rgba(92,48,24,.10));
}
.feature-photo-content{
  position:relative;
  z-index:2;
  min-height:235px;
  width:52%;
  padding:28px 26px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  color:#552d18;
}
.feature-photo-content h2{
  margin:0;
  font-size:clamp(22px,1.8vw,34px);
  font-weight:950;
  line-height:1.12;
  letter-spacing:-.03em;
}
.feature-photo-content h2::after{
  content:"";
  display:block;
  width:42px;
  height:3px;
  border-radius:999px;
  margin:12px 0 14px;
  background:#af6231;
}
.feature-photo-content p{
  margin:0;
  color:#5d432f;
  font-size:clamp(14px,1vw,17px);
  line-height:1.65;
  font-weight:600;
}
.section{padding:84px 0}.section-inner{width:var(--container);margin:0 auto}.section-head{display:flex;justify-content:space-between;gap:28px;align-items:end;margin-bottom:32px}.kicker{margin:0 0 10px;color:#af6231;font-weight:900;letter-spacing:.16em}.section-title{font-size:clamp(34px,4vw,58px);line-height:1.05;margin:0;font-weight:950;letter-spacing:-.04em}.section-desc{max-width:560px;color:var(--muted);font-size:17px;margin:0}
.product-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.product-card{background:rgba(255,253,248,.86);border:1px solid var(--line);border-radius:24px;padding:24px;box-shadow:var(--soft-shadow)}
.footer-redesign{background:#2a1c17;color:#f6e7d7;margin-top:72px;padding:56px 0}
.footer-grid{display:grid;grid-template-columns:1.2fr .75fr .95fr;gap:26px;align-items:start}
.footer-brand-card,.footer-links-col,.footer-store-col{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:24px;padding:24px}
.footer-brand-card{display:grid;grid-template-columns:86px 1fr;gap:18px;align-items:center}
.footer-logo{width:86px;height:86px;border-radius:24px;object-fit:cover;background:#fff;box-shadow:0 10px 24px rgba(0,0,0,.18)}
.footer-brand-card h2,.footer-links-col h3,.footer-store-col h3{margin:0 0 10px}
.footer-brand-card p,.footer-links-col p,.footer-store-col p{margin:0;color:#d8c3b3}
.footer-links-col a{line-height:2}
.footer-contact-list{list-style:none;margin:0 0 16px;padding:0;display:grid;gap:10px}
.footer-contact-list li{display:grid;grid-template-columns:54px 1fr;gap:10px;color:#e9d9ca}
.footer-contact-list strong{color:#fff}
.footer-chip{display:inline-flex;align-items:center;justify-content:center;padding:10px 16px;border-radius:999px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12)}
.store-page .section-inner{display:grid;gap:24px}
.store-hero-card{padding:30px 32px;background:linear-gradient(135deg, rgba(255,252,246,.95), rgba(247,234,216,.92))}
.store-hero-head{display:flex;justify-content:space-between;gap:28px;align-items:flex-start}
.store-hero-brand{display:flex;align-items:center;gap:18px}
.store-hero-logo{width:82px;height:82px;border-radius:24px;object-fit:cover;background:#fff;box-shadow:0 12px 30px rgba(112,44,25,.14)}
.store-action-row{display:flex;gap:14px;flex-wrap:wrap;margin-top:22px}
.store-info-layout{display:grid;grid-template-columns:1.2fr .8fr;gap:24px}
.store-card-main,.store-card-side,.store-map-panel{padding:28px}
.store-card-title-row{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:16px}
.store-status{display:inline-flex;padding:8px 14px;border-radius:999px;background:#fff4e6;border:1px solid #efd0ab;color:#9b552e;font-weight:800;font-size:14px}
.store-info-list .info-row{grid-template-columns:90px 1fr;padding:16px 0}
.store-card-side{display:grid;gap:18px}
.store-side-block h3{margin:0 0 8px;font-size:22px}
.store-side-block p{margin:0;color:#655951}
.store-tags{display:flex;flex-wrap:wrap;gap:10px}
.store-tags span{display:inline-flex;padding:10px 14px;border-radius:999px;background:#fff6eb;border:1px solid #dfc5a8;color:#8f2b21;font-weight:800}
.store-map-panel{display:grid;grid-template-columns:.85fr 1.15fr;gap:24px;align-items:stretch}
.store-map-text h2{margin:0 0 10px;font-size:34px}
.store-map-box{min-height:300px}
.product-top{display:flex;justify-content:space-between;gap:18px}.product-card h3{font-size:23px;margin:0 0 8px}.tag{display:inline-flex;border:1px solid #dfc5a8;color:#9b552e;background:#fff6eb;border-radius:999px;padding:4px 12px;font-weight:800;font-size:12px;white-space:nowrap}.price{font-size:26px;font-weight:950;color:#9b3326;margin:18px 0 0}.product-card p{color:#6a5d55;margin:0}.order-layout{display:grid;grid-template-columns:280px 1fr;gap:28px;align-items:start}.panel{background:rgba(255,253,248,.88);border:1px solid var(--line);border-radius:24px;padding:22px;box-shadow:var(--soft-shadow)}.category-list{display:grid;gap:10px}.category-list a{padding:12px 14px;border-radius:14px;color:#5c504a;font-weight:800}.category-list a:hover,.category-list a.active{background:#f6e6d2;color:#8f2b21}.cart-panel{position:sticky;top:112px}.cart-line{display:flex;justify-content:space-between;border-bottom:1px dashed #dfc7ad;padding:12px 0;color:#5f514a}.cart-total{display:flex;justify-content:space-between;align-items:center;font-size:22px;font-weight:950;margin-top:16px}.quantity{display:flex;align-items:center;gap:10px;margin-top:16px}.qty-btn{width:34px;height:34px;border-radius:11px;border:1px solid #d8b994;background:#fff8ef;color:#8f2b21;font-weight:900;cursor:pointer}.footer{background:#2a1c17;color:#f6e7d7;margin-top:72px;padding:54px 0}.footer-inner{width:var(--container);margin:0 auto;display:grid;grid-template-columns:1.3fr .7fr .7fr;gap:28px}.footer a{color:#f6e7d7}.footer p{color:#d8c3b3}.mini-logo{width:52px;height:52px;border-radius:14px;margin-bottom:12px}.store-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.info-list{display:grid;gap:12px}.info-row{display:grid;grid-template-columns:110px 1fr;gap:14px;padding:14px 0;border-bottom:1px dashed #dfc7ad}.info-row strong{color:#7c3e25}.map-box{min-height:320px;border-radius:24px;background:linear-gradient(135deg,#f2dfc5,#c77735);display:grid;place-items:center;color:#fff;font-size:28px;font-weight:900;box-shadow:var(--soft-shadow)}
@media (max-width:1100px){:root{--container:min(100% - 44px, 920px)}.nav{gap:22px}.hero-grid{grid-template-columns:1fr;gap:42px}.hero-media{order:-1}.photo-card{border-radius:38px}.feature-row,.product-grid{grid-template-columns:1fr 1fr}.feature-photo-card:first-child{grid-column:1/-1}.order-layout,.store-grid,.store-info-layout,.store-map-panel{grid-template-columns:1fr}.store-hero-head{display:block}.store-hero-head .section-desc{margin-top:14px}.cart-panel{position:relative;top:auto}.footer-inner,.footer-grid{grid-template-columns:1fr 1fr}.footer-brand-card{grid-column:1/-1}}
@media (max-width:760px){:root{--container:calc(100% - 28px)}.nav-wrap{height:76px}.brand{min-width:0}.brand-title{font-size:20px}.brand-subtitle{display:none}.brand-logo{width:48px;height:48px}.nav-toggle{display:block}.nav{position:fixed;top:76px;left:14px;right:14px;display:none;flex-direction:column;align-items:stretch;gap:4px;background:#fffaf2;border:1px solid var(--line);border-radius:22px;padding:14px;box-shadow:var(--shadow)}.nav.open{display:flex}.nav a{padding:13px 14px}.nav a::after{display:none}.cart-btn{justify-content:center}.hero{padding:34px 0}.hero-grid{gap:28px}.hero-title{font-size:clamp(38px,10vw,54px);white-space:nowrap}.hero-subtitle{font-size:28px}.hero-copy{font-size:16px;border-left:20px solid #c88b5a}.hero-actions .btn,.store-action-row .btn{width:100%}.photo-card{border-radius:26px}.photo-card img{aspect-ratio:1.18/1;object-position:center}.feature-row,.product-grid{grid-template-columns:1fr}.feature-photo-card:first-child{grid-column:auto}.feature-photo-card,.feature-photo-content{min-height:220px}.feature-photo-content{width:70%;padding:22px}.feature-photo-card::before{background:linear-gradient(90deg, rgba(255,249,240,.97) 0%, rgba(255,249,240,.93) 50%, rgba(255,249,240,.55) 78%, rgba(255,249,240,.18) 100%)}.section{padding:58px 0}.section-head{display:block}.footer-inner,.footer-grid{grid-template-columns:1fr}.footer-brand-card{grid-template-columns:68px 1fr;padding:20px}.footer-logo{width:68px;height:68px;border-radius:18px}.photo-note{display:none}.info-row,.store-info-list .info-row,.footer-contact-list li{grid-template-columns:1fr;gap:4px}.store-hero-card,.store-card-main,.store-card-side,.store-map-panel{padding:22px}.store-card-title-row{display:block}.store-status{margin-top:10px}}

@media (max-width:420px){
  .feature-photo-card,.feature-photo-content{min-height:200px}
  .feature-photo-content{width:76%;padding:18px}
  .feature-photo-content h2{font-size:24px}
  .feature-photo-content p{font-size:14px;line-height:1.55}
}

/* v6 footer / header / store refinements */
.footer-official{gap:24px}
.footer-nav{display:grid;gap:10px}
.footer-nav a{color:#f6e7d7;opacity:.92}
.footer-nav a:hover{opacity:1;text-decoration:underline}
.footer-keywords,.keyword-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.footer-keywords span{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:34px;border-radius:999px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.13);color:#fff;font-weight:900}
.footer-contact-list a{color:#fff;text-decoration:none}
.footer-bottom{width:var(--container);margin:26px auto 0;padding-top:20px;border-top:1px solid rgba(255,255,255,.10);display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;color:#d8c3b3;font-size:14px}
.store-map-box{background:linear-gradient(135deg,rgba(80,49,31,.85),rgba(196,112,50,.76)),url('../images/feature-ratio.jpg');background-size:cover;background-position:center}
.store-map-box > div{display:grid;gap:8px;text-align:center;padding:28px}
.store-map-box strong{font-size:30px}
.store-map-box span{font-size:16px;line-height:1.6}
.store-info-list a{color:#8f2b21;font-weight:900}
@media (max-width:760px){
  .nav-wrap{height:68px}
  .nav{top:68px}
  .brand-logo{width:38px;height:38px;border-radius:11px}
  .brand-title{font-size:18px}
  .footer-bottom{display:grid;gap:8px;text-align:center}
}
@media (max-width:420px){
  .brand-title{font-size:16px}
}


/* v7 footer redesign */
.footer-v2{
  background:linear-gradient(180deg,#fff8ef 0%, #f5e7d6 100%);
  color:#3a2419;
  border-top:1px solid #e4ccb0;
  margin-top:72px;
  padding:0;
}
.footer-shell{width:var(--container);margin:0 auto;padding:50px 0 22px}
.footer-topline{display:grid;grid-template-columns:1.25fr .65fr 1fr;gap:38px;align-items:start}
.footer-brand-block,.footer-menu-block,.footer-store-block{min-width:0}
.footer-brand-block{padding-right:34px;border-right:1px solid #ead5bd}
.footer-menu-block{padding:0 8px}
.footer-store-block{padding-left:26px;border-left:1px solid #ead5bd}
.footer-brand-head{display:grid;grid-template-columns:78px 1fr;gap:18px;align-items:center}
.footer-v2 .footer-logo{width:78px;height:78px;border-radius:22px;object-fit:cover;background:#fff;box-shadow:0 10px 24px rgba(112,44,25,.12)}
.footer-v2 h2,.footer-v2 h3{margin:0 0 12px;color:#3a2419}
.footer-v2 h2{font-size:36px;letter-spacing:-.03em}
.footer-v2 h3{font-size:24px;letter-spacing:-.02em}
.footer-v2 p{margin:0;color:#6a574c;line-height:1.85}
.footer-v2 .footer-nav{display:grid;gap:14px}
.footer-v2 .footer-nav a{display:inline-flex;align-items:center;font-weight:800;color:#5a4030}
.footer-v2 .footer-nav a::before{content:"";width:10px;height:10px;border-radius:50%;background:#c78545;margin-right:10px;box-shadow:0 0 0 4px rgba(199,133,69,.15)}
.footer-v2 .footer-nav a:hover{color:#8f2b21}
.footer-v2 .footer-contact-list{list-style:none;margin:0 0 18px;padding:0;display:grid;gap:12px}
.footer-v2 .footer-contact-list li{display:grid;grid-template-columns:54px 1fr;gap:10px;color:#5e4739}
.footer-v2 .footer-contact-list strong{color:#3a2419}
.footer-v2 .footer-contact-list a{color:#8f2b21;font-weight:900}
.footer-v2 .footer-keywords{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}
.footer-v2 .footer-keywords span{display:inline-flex;align-items:center;justify-content:center;min-width:38px;height:38px;padding:0 12px;border-radius:999px;background:#fff;border:1px solid #ddc2a6;color:#7b4c2d;font-weight:900;box-shadow:0 6px 14px rgba(112,44,25,.06)}
.footer-chip-solid{display:inline-flex;align-items:center;justify-content:center;padding:12px 18px;border-radius:999px;background:linear-gradient(135deg,#d8893a,#b75d2f);color:#fff !important;border:0;box-shadow:0 12px 24px rgba(183,93,47,.18)}
.footer-bottomline{margin-top:34px;padding-top:18px;border-top:1px solid #e4ccb0;display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;color:#866d5b;font-size:14px}

@media (max-width:1100px){
  .footer-topline{grid-template-columns:1fr 1fr}
  .footer-brand-block{grid-column:1/-1;padding-right:0;padding-bottom:22px;border-right:0;border-bottom:1px solid #ead5bd}
  .footer-menu-block{padding-left:0}
}
@media (max-width:760px){
  .footer-shell{padding:38px 0 18px}
  .footer-topline{grid-template-columns:1fr;gap:26px}
  .footer-brand-block,.footer-menu-block,.footer-store-block{padding:0;border:0}
  .footer-brand-head{grid-template-columns:62px 1fr;gap:14px}
  .footer-v2 .footer-logo{width:62px;height:62px;border-radius:18px}
  .footer-v2 h2{font-size:26px}
  .footer-v2 h3{font-size:20px}
  .footer-v2 .footer-contact-list li{grid-template-columns:1fr;gap:4px}
  .footer-bottomline{display:grid;gap:8px;text-align:center}
}


/* v8 compact footer meta */
.footer-bottomline-compact{
  justify-content:flex-start;
  gap:10px 18px;
  font-size:14px;
}
.footer-bottomline-compact span{
  position:relative;
  color:#7e6958;
  white-space:nowrap;
}
.footer-bottomline-compact span:not(:first-child){
  padding-left:14px;
}
.footer-bottomline-compact span:not(:first-child)::before{
  content:"";
  position:absolute;
  left:0;
  top:50%;
  width:4px;
  height:4px;
  border-radius:50%;
  background:#c6976a;
  transform:translateY(-50%);
}
@media (max-width:760px){
  .footer-bottomline-compact{
    display:flex;
    justify-content:center;
    gap:8px 14px;
    text-align:center;
  }
  .footer-bottomline-compact span{
    white-space:normal;
  }
}


/* v9 hero slider + FAQ accordion */
.hero-slider{position:relative}
.hero-slide{position:absolute;inset:0;opacity:0;pointer-events:none;transition:opacity .45s ease}
.hero-slide.is-active{position:relative;opacity:1;pointer-events:auto}
.hero-slide img{width:100%;aspect-ratio:1.55/1;object-fit:cover;object-position:center}
.slider-dots{display:flex;gap:13px;justify-content:flex-end;margin:22px 9% 0 0}
.slider-dots button{width:12px;height:12px;border-radius:50%;background:#d0bfac;border:0;padding:0;cursor:pointer;transition:transform .2s ease, background .2s ease}
.slider-dots button.is-active{background:#7b441f;transform:scale(1.08)}
.slider-dots button:hover{transform:scale(1.12)}
.faq-list{display:grid;gap:16px}
.faq-item{background:rgba(255,253,248,.82);border:1px solid var(--line);border-radius:20px;box-shadow:0 8px 24px rgba(95,51,27,.04);overflow:hidden}
.faq-question{width:100%;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:22px;border:0;background:transparent;color:var(--ink);text-align:left;font-size:18px;font-weight:900;cursor:pointer}
.faq-question span:first-child{flex:1}
.faq-icon{position:relative;flex:0 0 18px;width:18px;height:18px}
.faq-icon::before,.faq-icon::after{content:"";position:absolute;left:50%;top:50%;width:18px;height:2px;background:#9b552e;border-radius:99px;transform:translate(-50%,-50%);transition:transform .25s ease, opacity .25s ease}
.faq-icon::after{transform:translate(-50%,-50%) rotate(90deg)}
.faq-item.is-open .faq-icon::after{opacity:0;transform:translate(-50%,-50%) rotate(90deg) scaleX(.3)}
.faq-answer{display:grid;grid-template-rows:0fr;transition:grid-template-rows .28s ease}
.faq-answer p{overflow:hidden;margin:0;padding:0 22px 22px;color:#655951;line-height:1.85}
.faq-item.is-open .faq-answer{grid-template-rows:1fr}
@media (max-width:760px){
  .hero-slide img{aspect-ratio:1.18/1}
  .faq-question{padding:18px;font-size:17px}
  .faq-answer p{padding:0 18px 18px}
}


/* v10 smoother hero carousel + cleaner native FAQ */
.hero-slider{
  position:relative;
  overflow:hidden;
  aspect-ratio:1.55/1;
}
.hero-slider .hero-slide{
  position:absolute;
  inset:0;
  opacity:0;
  transform:translateX(22px) scale(1.01);
  pointer-events:none;
  transition:opacity .55s ease, transform .55s ease;
  will-change:opacity, transform;
}
.hero-slider .hero-slide.is-active{
  opacity:1;
  transform:translateX(0) scale(1);
  pointer-events:auto;
  z-index:2;
}
.hero-slider .hero-slide img{
  width:100%;
  height:100%;
  aspect-ratio:auto;
  object-fit:cover;
  object-position:center;
}
.slider-arrow{
  position:absolute;
  top:50%;
  z-index:5;
  width:44px;
  height:44px;
  border:1px solid rgba(255,255,255,.68);
  border-radius:999px;
  background:rgba(255,250,242,.82);
  color:#7b441f;
  display:grid;
  place-items:center;
  font-size:34px;
  line-height:1;
  cursor:pointer;
  box-shadow:0 12px 28px rgba(66,34,18,.14);
  transform:translateY(-50%);
  transition:background .2s ease, transform .2s ease, color .2s ease;
}
.slider-arrow:hover{
  background:#fffaf2;
  color:#8f2b21;
  transform:translateY(-50%) scale(1.06);
}
.slider-prev{left:18px}
.slider-next{right:18px}
.slider-dots button{
  width:10px;
  height:10px;
  border-radius:999px;
}
.slider-dots button.is-active{
  width:28px;
  transform:none;
}

.faq-modern{
  display:grid;
  gap:14px;
}
.faq-modern .faq-item{
  border:1px solid #e5cdb2;
  border-radius:22px;
  background:linear-gradient(135deg,rgba(255,253,248,.94),rgba(250,240,226,.74));
  box-shadow:0 10px 28px rgba(92,48,24,.06);
  overflow:hidden;
}
.faq-modern .faq-item summary{
  list-style:none;
  display:grid;
  grid-template-columns:56px 1fr 28px;
  align-items:center;
  gap:18px;
  padding:22px 26px;
  cursor:pointer;
  user-select:none;
}
.faq-modern .faq-item summary::-webkit-details-marker{
  display:none;
}
.faq-no{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:44px;
  height:44px;
  border-radius:14px;
  background:#fff;
  border:1px solid #e5cdb2;
  color:#9b552e;
  font-weight:950;
  font-size:14px;
}
.faq-title{
  font-size:20px;
  font-weight:950;
  color:#251a15;
  letter-spacing:.02em;
}
.faq-plus{
  position:relative;
  width:26px;
  height:26px;
  border-radius:50%;
  background:#fff;
  border:1px solid #e5cdb2;
}
.faq-plus::before,
.faq-plus::after{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  width:12px;
  height:2px;
  border-radius:99px;
  background:#9b552e;
  transform:translate(-50%,-50%);
  transition:transform .22s ease, opacity .22s ease;
}
.faq-plus::after{
  transform:translate(-50%,-50%) rotate(90deg);
}
.faq-modern .faq-item[open] .faq-plus::after{
  opacity:0;
  transform:translate(-50%,-50%) rotate(90deg) scaleX(.3);
}
.faq-modern .faq-answer{
  display:block;
  padding:0 26px 24px 100px;
}
.faq-modern .faq-answer p{
  margin:0;
  color:#64544b;
  line-height:1.85;
  font-size:16px;
}
.faq-modern code{
  background:#fff;
  border:1px solid #ecd8bf;
  border-radius:8px;
  padding:2px 6px;
  color:#8f2b21;
}
@media (max-width:760px){
  .hero-slider{
    aspect-ratio:1.18/1;
  }
  .slider-arrow{
    width:38px;
    height:38px;
    font-size:30px;
  }
  .slider-prev{left:12px}
  .slider-next{right:12px}
  .faq-modern .faq-item summary{
    grid-template-columns:44px 1fr 26px;
    gap:12px;
    padding:18px;
  }
  .faq-no{
    width:38px;
    height:38px;
    border-radius:12px;
  }
  .faq-title{
    font-size:17px;
  }
  .faq-modern .faq-answer{
    padding:0 18px 20px 74px;
  }
}
@media (prefers-reduced-motion:reduce){
  .hero-slider .hero-slide,
  .slider-arrow{
    transition:none;
  }
}


/* v11 refined FAQ + improved slider controls */
.hero-slider{touch-action:pan-y; user-select:none}
.hero-slider.is-dragging{cursor:grabbing}
.slider-arrow{
  width:50px;
  height:50px;
  border:0;
  background:rgba(255,250,242,.92);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  box-shadow:0 10px 26px rgba(57,29,15,.12);
  color:transparent;
}
.slider-arrow::before{
  content:"";
  width:11px;
  height:11px;
  border-top:2.5px solid #8f5a35;
  border-right:2.5px solid #8f5a35;
  display:block;
}
.slider-prev::before{transform:rotate(-135deg); margin-left:4px}
.slider-next::before{transform:rotate(45deg); margin-right:4px}
.slider-arrow:hover{background:#fff; color:transparent; transform:translateY(-50%) scale(1.04)}
.slider-dots{justify-content:center; margin:18px 0 0}
.slider-dots button{background:#cfbfae}
.slider-dots button.is-active{width:26px; background:#8b532a}

.faq-modern{gap:18px}
.faq-modern .faq-item{
  border:1px solid #e6c9aa;
  border-radius:24px;
  background:linear-gradient(180deg, rgba(255,254,251,.96) 0%, rgba(251,245,235,.92) 100%);
  box-shadow:0 12px 26px rgba(89,50,26,.04);
  transition:box-shadow .2s ease, border-color .2s ease, transform .2s ease;
}
.faq-modern .faq-item:hover{
  border-color:#dbb48a;
  box-shadow:0 18px 34px rgba(89,50,26,.08);
}
.faq-modern .faq-item[open]{
  border-color:#d5ab80;
  box-shadow:0 18px 36px rgba(89,50,26,.09);
}
.faq-modern .faq-item summary{
  grid-template-columns:52px 1fr 34px;
  gap:20px;
  padding:24px 26px;
}
.faq-no{
  width:42px;
  height:42px;
  border-radius:14px;
  background:#fff9f1;
  border:1px solid #e7cdae;
  color:#aa6230;
  font-size:15px;
  box-shadow:none;
}
.faq-title{
  font-size:18px;
  line-height:1.45;
  letter-spacing:.01em;
}
.faq-plus{
  width:30px;
  height:30px;
  border-radius:50%;
  background:#fff;
  border:1px solid #e3c7a9;
  box-shadow:0 4px 10px rgba(89,50,26,.05);
}
.faq-plus::before,
.faq-plus::after{
  width:12px;
  background:#b26734;
}
.faq-modern .faq-answer{
  padding:0 26px 24px 98px;
}
.faq-modern .faq-answer p{
  color:#6b5950;
  font-size:16px;
  line-height:1.95;
  position:relative;
  padding-top:6px;
}
.faq-modern .faq-answer p::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  width:54px;
  height:2px;
  background:linear-gradient(90deg,#d4945f,#f0dac3);
  border-radius:999px;
}
@media (max-width:760px){
  .slider-arrow{width:42px; height:42px}
  .slider-arrow::before{width:10px; height:10px}
  .faq-modern .faq-item summary{grid-template-columns:42px 1fr 28px; gap:12px; padding:18px}
  .faq-no{width:36px; height:36px; border-radius:12px; font-size:13px}
  .faq-title{font-size:16px}
  .faq-plus{width:26px; height:26px}
  .faq-modern .faq-answer{padding:0 18px 20px 72px}
  .faq-modern .faq-answer p{font-size:15px; line-height:1.8}
  .faq-modern .faq-answer p::before{width:42px}
}


/* v12 cleaner slider arrows */
.slider-arrow{
  width:46px;
  height:46px;
  border:1px solid rgba(255,255,255,.72);
  border-radius:999px;
  background:rgba(255,250,242,.92);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  box-shadow:0 10px 22px rgba(57,29,15,.10);
  color:#9a6037;
  display:grid;
  place-items:center;
  padding:0;
}
.slider-arrow::before{content:none}
.slider-arrow svg{
  width:18px;
  height:18px;
  display:block;
}
.slider-arrow:hover{
  background:#fffdf9;
  color:#7f4925;
  border-color:rgba(255,255,255,.9);
  transform:translateY(-50%) scale(1.05);
}
.slider-prev{left:16px}
.slider-next{right:16px}
@media (max-width:760px){
  .slider-arrow{width:40px;height:40px}
  .slider-arrow svg{width:16px;height:16px}
  .slider-prev{left:10px}
  .slider-next{right:10px}
}


/* v13 thumbs-up framed product tags */
.product-top{align-items:flex-start}
.tag{
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:84px;
  height:62px;
  padding:0 10px 0 18px;
  border:0;
  border-radius:0;
  background:transparent;
  color:#9b552e;
  font-weight:900;
  font-size:13px;
  line-height:1;
  letter-spacing:.02em;
  white-space:nowrap;
  isolation:isolate;
}
.tag::before{
  content:"";
  position:absolute;
  inset:0;
  background:url('../images/thumb-frame.svg') center/contain no-repeat;
  z-index:-1;
}
.tag::after{
  content:"";
  position:absolute;
  left:13px;
  bottom:10px;
  width:8px;
  height:8px;
  border-radius:50%;
  background:#c37a3c;
  box-shadow:0 0 0 3px rgba(195,122,60,.08);
}
@media (max-width:760px){
  .tag{
    width:76px;
    height:56px;
    font-size:12px;
    padding-left:16px;
  }
  .tag::after{left:12px; bottom:9px; width:7px; height:7px}
}


/* v14 thumb tag alignment fix */
.product-top{display:flex;justify-content:space-between;align-items:flex-start;gap:18px}
.tag{
  position:relative;
  flex:0 0 auto;
  display:block;
  width:92px;
  height:58px;
  margin-top:0;
  background:transparent;
  border:0;
  padding:0;
  color:inherit;
  overflow:visible;
}
.tag::before{
  content:"";
  position:absolute;
  inset:0;
  background:url('../images/thumb-frame.svg') center/contain no-repeat;
}
.tag::after{content:none}
.tag-label{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:0 10px 0 22px;
  color:#9b552e;
  font-size:12px;
  font-weight:900;
  letter-spacing:.02em;
  line-height:1;
  white-space:nowrap;
}
@media (max-width:760px){
  .tag{width:84px;height:54px}
  .tag-label{padding-left:20px;font-size:11px}
}


/* v15 thumb tag proportion + text placement fix */
.product-top{align-items:flex-start}
.tag{
  position:relative;
  flex:0 0 auto;
  display:block;
  width:108px;
  height:72px;
  margin-top:-2px;
  background:transparent;
  border:0;
  padding:0;
  overflow:visible;
}
.tag::before{
  content:"";
  position:absolute;
  inset:0;
  background:url('../images/thumb-frame.svg') center/contain no-repeat;
}
.tag-label{
  position:absolute;
  left:34px;
  right:10px;
  top:18px;
  bottom:14px;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#9b552e;
  font-size:12px;
  font-weight:900;
  letter-spacing:.01em;
  line-height:1;
  white-space:nowrap;
  text-align:center;
}
@media (max-width:1100px){
  .tag{width:102px;height:68px}
  .tag-label{left:32px; right:9px; top:17px; bottom:13px}
}
@media (max-width:760px){
  .tag{width:94px;height:63px}
  .tag-label{left:29px; right:8px; top:16px; bottom:12px; font-size:11px}
}


/* v16 square thumbs-up tag */
.tag{
  position:relative;
  flex:0 0 auto;
  display:block;
  width:82px;
  height:82px;
  margin-top:-4px;
  background:transparent;
  border:0;
  padding:0;
  overflow:visible;
}
.tag::before{
  content:"";
  position:absolute;
  inset:0;
  background:url('../images/thumb-frame.svg') center/contain no-repeat;
}
.tag-label{
  position:absolute;
  left:26px;
  right:8px;
  top:26px;
  height:26px;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#9b552e;
  font-size:12px;
  font-weight:900;
  letter-spacing:.01em;
  line-height:1;
  white-space:nowrap;
  text-align:center;
}
@media (max-width:1100px){
  .tag{width:78px;height:78px}
  .tag-label{left:24px;right:8px;top:25px;height:24px}
}
@media (max-width:760px){
  .tag{width:72px;height:72px;margin-top:-2px}
  .tag-label{left:22px;right:7px;top:22px;height:22px;font-size:11px}
}


/* v17 square thumbs-up improvement */
.product-top{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}
.tag{
  position:relative;
  flex:0 0 auto;
  width:80px;
  height:80px;
  aspect-ratio:1/1;
  margin-top:-2px;
  background:transparent;
  border:0;
  padding:0;
  overflow:visible;
}
.tag::before{
  content:"";
  position:absolute;
  inset:0;
  background:url('../images/thumb-frame.svg') center/contain no-repeat;
}
.tag-label{
  position:absolute;
  left:27px;
  top:29px;
  width:39px;
  height:18px;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#9b552e;
  font-size:11px;
  font-weight:900;
  letter-spacing:0;
  line-height:1;
  white-space:nowrap;
  text-align:center;
}
@media (max-width:1100px){
  .tag{width:76px;height:76px}
  .tag-label{left:25px;top:28px;width:37px;height:17px;font-size:10.5px}
}
@media (max-width:760px){
  .tag{width:68px;height:68px;margin-top:0}
  .tag-label{left:22px;top:25px;width:33px;height:16px;font-size:10px}
}


/* v19 thumbs-up hover raise */
.tag{
  width:80px;
  height:80px;
  aspect-ratio:1/1;
  margin-top:-2px;
  transform-origin:22px 60px;
  transition:transform .24s ease;
}
.tag::before{
  background:url('../images/thumb-frame.svg') center/contain no-repeat;
}
.tag-label{
  left:27px;
  top:29px;
  width:39px;
  height:18px;
  font-size:11px;
}
.product-card:hover .tag{
  transform:rotate(-14deg) translateY(-2px);
}
@media (max-width:1100px){
  .tag{width:76px;height:76px}
  .tag-label{left:25px;top:28px;width:37px;height:17px;font-size:10.5px}
}
@media (max-width:760px){
  .tag{width:68px;height:68px;margin-top:0;transform-origin:20px 52px}
  .tag-label{left:22px;top:25px;width:33px;height:16px;font-size:10px}
}


/* v21 mobile align left */
@media (max-width:760px){
  .hero-grid,
  .hero-content,
  .section-head,
  .section-desc,
  .section-title,
  .kicker,
  .hero-copy,
  .product-card,
  .feature-photo-content,
  .store-hero-head,
  .store-map-text,
  .footer-brand-block,
  .footer-menu-block,
  .footer-store-block,
  .footer-bottomline,
  .footer-bottom{
    text-align:left;
  }

  .hero-actions,
  .store-action-row,
  .slider-dots,
  .footer-keywords,
  .keyword-tags,
  .footer-v2 .footer-nav,
  .footer-bottomline,
  .footer-bottom{
    justify-content:flex-start;
  }

  .hero-actions .btn,
  .store-action-row .btn,
  .footer-chip,
  .footer-chip-solid{
    justify-content:flex-start;
    text-align:left;
    padding-left:20px;
  }

  .feature-photo-content{
    align-items:flex-start;
  }

  .product-top,
  .cart-total,
  .cart-line,
  .store-card-title-row,
  .footer-contact-list li,
  .info-row,
  .store-info-list .info-row{
    text-align:left;
  }

  .store-map-box > div,
  .footer-bottomline,
  .footer-bottom{
    text-align:left;
  }

  .photo-note{display:none;}
}


/* v22 footer mobile redesign + legal links */
.footer-legal-links{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:18px;
}
.footer-legal-links a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:38px;
  padding:0 14px;
  border-radius:999px;
  border:1px solid #e1c5a9;
  background:#fffaf3;
  color:#8b4d28;
  font-weight:800;
  box-shadow:0 6px 16px rgba(112,44,25,.05);
}
.footer-legal-links a:hover{background:#fff;color:#7d3f1f}
.legal-page .legal-panel{padding:32px}
.legal-content{display:grid;gap:16px;margin-top:18px;color:#5d5048;line-height:1.9}
.legal-content h2{margin:8px 0 0;font-size:22px;color:#3a2419}
.legal-content p{margin:0}

@media (max-width:760px){
  .footer-shell{padding:28px 0 16px}
  .footer-topline{gap:16px}
  .footer-brand-block,
  .footer-menu-block,
  .footer-store-block{
    background:rgba(255,255,255,.68);
    border:1px solid #ead5bd;
    border-radius:22px;
    padding:18px;
    box-shadow:0 10px 24px rgba(112,44,25,.05);
  }
  .footer-brand-head{grid-template-columns:54px 1fr;gap:12px;align-items:start}
  .footer-v2 .footer-logo{width:54px;height:54px;border-radius:16px}
  .footer-v2 h2{font-size:20px;margin-bottom:8px}
  .footer-v2 h3{font-size:18px;margin-bottom:12px}
  .footer-v2 p{font-size:15px;line-height:1.8}
  .footer-keywords{margin-top:14px;gap:8px}
  .footer-keywords span{min-width:32px;height:32px}
  .footer-v2 .footer-nav{gap:10px}
  .footer-v2 .footer-nav a{
    padding:10px 0;
    border-bottom:1px dashed #ead5bd;
  }
  .footer-v2 .footer-nav a:last-child{border-bottom:0}
  .footer-legal-links{
    margin-top:14px;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px;
  }
  .footer-legal-links a{
    min-height:42px;
    padding:0 10px;
    font-size:14px;
  }
  .footer-contact-list{gap:10px}
  .footer-contact-list li{
    padding:8px 0;
    border-bottom:1px dashed #ead5bd;
  }
  .footer-contact-list li:last-child{border-bottom:0}
  .footer-chip,
  .footer-chip-solid{
    width:100%;
    justify-content:center !important;
    padding-left:18px !important;
  }
  .footer-bottomline,
  .footer-bottomline-compact{
    margin-top:16px;
    padding-top:14px;
    display:grid !important;
    grid-template-columns:1fr 1fr;
    gap:8px 12px;
    text-align:left !important;
  }
  .footer-bottomline-compact span{
    white-space:normal;
    padding-left:0 !important;
  }
  .footer-bottomline-compact span::before{display:none !important}
  .legal-page .legal-panel{padding:22px}
  .legal-content h2{font-size:20px}
}
@media (max-width:420px){
  .footer-legal-links{grid-template-columns:1fr}
  .footer-bottomline,
  .footer-bottomline-compact{grid-template-columns:1fr}
}


/* v23 mobile horizontal overflow fix */
html, body{
  max-width:100%;
  overflow-x:hidden;
}
body{
  position:relative;
}
.site-header,
.hero,
.section,
.footer,
.footer-shell,
.footer-topline,
.footer-bottomline,
.footer-bottomline-compact{
  max-width:100%;
}
img, svg, iframe{
  max-width:100%;
  height:auto;
}
.photo-card,
.hero-slider,
.panel,
.product-card,
.feature-photo-card,
.store-hero-card,
.store-card-main,
.store-card-side,
.store-map-panel,
.footer-brand-block,
.footer-menu-block,
.footer-store-block{
  max-width:100%;
  overflow:hidden;
}

@media (max-width:760px){
  html, body{
    overflow-x:hidden;
  }
  .brand,
  .nav-wrap,
  .hero-grid,
  .hero-content,
  .hero-media,
  .section-inner,
  .section-head,
  .footer-shell{
    max-width:100%;
    min-width:0;
  }
  .brand-title,
  .hero-title{
    white-space:normal;
    word-break:break-word;
  }
  .hero-copy,
  .section-desc,
  .footer-v2 p,
  .footer-contact-list li,
  .legal-content,
  .info-row,
  .store-info-list .info-row{
    word-break:break-word;
    overflow-wrap:anywhere;
  }
  .slider-arrow{
    transform:translateY(-50%);
  }
  .slider-arrow:hover{
    transform:translateY(-50%);
  }
  .footer-legal-links,
  .footer-bottomline,
  .footer-bottomline-compact{
    max-width:100%;
  }
}


/* v24 mobile footer meta redesign */
@media (max-width:760px){
  .footer-bottomline,
  .footer-bottomline-compact{
    margin-top:16px;
    padding:14px 16px 2px;
    display:block !important;
    background:rgba(255,255,255,.72);
    border:1px solid #ead5bd;
    border-radius:18px;
    box-shadow:0 8px 20px rgba(112,44,25,.04);
    text-align:left !important;
  }

  .footer-bottomline-compact span,
  .footer-bottomline span{
    display:block;
    width:100%;
    padding:0 0 12px;
    margin:0 0 12px;
    color:#745f52;
    font-size:14px;
    line-height:1.6;
    border-bottom:1px dashed #ead5bd;
    white-space:normal;
  }

  .footer-bottomline-compact span:last-child,
  .footer-bottomline span:last-child{
    margin-bottom:0;
    padding-bottom:0;
    border-bottom:0;
  }

  .footer-bottomline-compact span::before,
  .footer-bottomline span::before{
    display:none !important;
  }
}


/* v25 mobile footer meta: clean inline text */
@media (max-width:760px){
  .footer-bottomline,
  .footer-bottomline-compact{
    margin-top:16px !important;
    padding:14px 0 0 !important;
    display:flex !important;
    flex-wrap:wrap !important;
    justify-content:flex-start !important;
    align-items:center !important;
    gap:6px 0 !important;
    background:transparent !important;
    border:0 !important;
    border-top:1px solid #e4ccb0 !important;
    border-radius:0 !important;
    box-shadow:none !important;
    text-align:left !important;
  }

  .footer-bottomline-compact span,
  .footer-bottomline span{
    display:inline-flex !important;
    align-items:center !important;
    width:auto !important;
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    color:#7c6859 !important;
    font-size:13px !important;
    line-height:1.7 !important;
    white-space:nowrap !important;
  }

  .footer-bottomline-compact span::before,
  .footer-bottomline span::before{
    display:none !important;
  }

  .footer-bottomline-compact span:not(:last-child)::after,
  .footer-bottomline span:not(:last-child)::after{
    content:"・";
    display:inline-block;
    margin:0 8px;
    color:#c7a07b;
  }
}

@media (max-width:360px){
  .footer-bottomline-compact span,
  .footer-bottomline span{
    font-size:12px !important;
  }
  .footer-bottomline-compact span:not(:last-child)::after,
  .footer-bottomline span:not(:last-child)::after{
    margin:0 6px;
  }
}


/* v26 mobile footer meta layout refinement */
@media (max-width:760px){
  .footer-bottomline,
  .footer-bottomline-compact{
    display:grid !important;
    grid-template-columns:max-content 1fr !important;
    justify-content:flex-start !important;
    align-items:center !important;
    column-gap:18px !important;
    row-gap:6px !important;
    padding-top:14px !important;
  }

  .footer-bottomline-compact span,
  .footer-bottomline span{
    display:block !important;
    width:auto !important;
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    white-space:nowrap !important;
    font-size:13px !important;
    line-height:1.7 !important;
  }

  .footer-bottomline-compact span::after,
  .footer-bottomline span::after{
    display:none !important;
    content:none !important;
  }

  .footer-bottomline-compact span::before,
  .footer-bottomline span::before{
    display:none !important;
  }

  /* Row 1 */
  .footer-bottomline-compact span:nth-child(1),
  .footer-bottomline span:nth-child(1){grid-column:1;grid-row:1;}
  .footer-bottomline-compact span:nth-child(2),
  .footer-bottomline span:nth-child(2){grid-column:2;grid-row:1;}

  /* Row 2: Designed by + Copyright on same row */
  .footer-bottomline-compact span:nth-child(3),
  .footer-bottomline span:nth-child(3){grid-column:1;grid-row:2;}
  .footer-bottomline-compact span:nth-child(4),
  .footer-bottomline span:nth-child(4){grid-column:2;grid-row:2;}

  /* Row 3 */
  .footer-bottomline-compact span:nth-child(5),
  .footer-bottomline span:nth-child(5){grid-column:1 / -1;grid-row:3;}
}

@media (max-width:420px){
  .footer-bottomline,
  .footer-bottomline-compact{
    grid-template-columns:1fr 1fr !important;
    column-gap:12px !important;
  }

  .footer-bottomline-compact span,
  .footer-bottomline span{
    white-space:normal !important;
    overflow-wrap:anywhere !important;
  }
}


/* v27 online ordering page */
.order-page{padding-bottom:120px}
.order-hero{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:24px;
  margin-bottom:26px;
}
.order-store-card{
  min-width:240px;
  display:grid;
  gap:4px;
  padding:18px 20px;
  border-radius:22px;
  border:1px solid #e7d3bd;
  background:rgba(255,253,248,.86);
  box-shadow:0 10px 24px rgba(92,48,24,.05);
}
.order-store-card strong{font-size:20px}
.order-store-card span{color:#746760}
.order-app{
  display:grid;
  grid-template-columns:240px 1fr 330px;
  gap:24px;
  align-items:start;
}
.order-category-panel,
.order-cart-panel{
  position:sticky;
  top:94px;
}
.order-category-panel h2,
.order-cart-panel h2{
  margin:0 0 16px;
}
.order-menu{
  display:grid;
  gap:34px;
}
.menu-category{
  scroll-margin-top:110px;
}
.menu-category h2{
  margin:0 0 16px;
  font-size:28px;
}
.order-product-list{
  display:grid;
  gap:16px;
}
.order-product{
  position:relative;
  display:grid;
  grid-template-columns:112px 1fr 42px;
  gap:18px;
  align-items:center;
  padding:16px;
  border:1px solid #e7d3bd;
  border-radius:24px;
  background:rgba(255,253,248,.92);
  box-shadow:0 10px 24px rgba(92,48,24,.05);
  cursor:pointer;
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.order-product:hover{
  transform:translateY(-2px);
  border-color:#d7ad82;
  box-shadow:0 18px 36px rgba(92,48,24,.10);
}
.order-product img{
  width:112px;
  height:112px;
  border-radius:20px;
  object-fit:cover;
  background:#f3e8d9;
}
.order-product-body{min-width:0}
.order-product-title{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}
.order-product h3{
  margin:0;
  font-size:22px;
}
.order-product p{
  margin:8px 0 10px;
  color:#746760;
  line-height:1.6;
}
.order-product strong{
  color:#8f2b21;
  font-size:24px;
  font-weight:950;
}
.order-badge{
  display:inline-flex;
  align-items:center;
  min-height:28px;
  padding:0 10px;
  border-radius:999px;
  background:#fff4e7;
  border:1px solid #e1c09f;
  color:#9b552e;
  font-size:12px;
  font-weight:900;
}
.order-add-mini{
  width:38px;
  height:38px;
  border:0;
  border-radius:50%;
  background:#d8893a;
  color:#fff;
  font-size:22px;
  line-height:1;
  font-weight:900;
  cursor:pointer;
  box-shadow:0 8px 18px rgba(183,93,47,.22);
}
.cart-panel-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.cart-panel-head span{
  display:grid;
  place-items:center;
  min-width:34px;
  height:34px;
  padding:0 10px;
  border-radius:999px;
  background:#fff4e7;
  color:#8f2b21;
  font-weight:950;
}
.cart-empty{
  padding:18px 0;
  color:#746760;
}
.cart-items{
  display:grid;
  gap:12px;
  max-height:390px;
  overflow:auto;
  padding-right:4px;
}
.cart-item{
  display:flex;
  justify-content:space-between;
  gap:12px;
  padding:12px;
  border-radius:16px;
  background:#fff8ef;
  border:1px solid #ead5bd;
}
.cart-item strong{
  display:block;
  margin-bottom:4px;
}
.cart-item p{
  margin:0;
  color:#746760;
  font-size:13px;
}
.cart-item-side{
  display:grid;
  justify-items:end;
  gap:6px;
}
.cart-item-side span{
  color:#8f2b21;
  font-weight:900;
}
.cart-item-side button{
  width:26px;
  height:26px;
  border:0;
  border-radius:50%;
  background:#f3e3d2;
  color:#8f2b21;
  cursor:pointer;
}
.cart-summary{
  margin-top:18px;
  border-top:1px dashed #dfc7ad;
  padding-top:16px;
}
.cart-summary > div{
  display:flex;
  justify-content:space-between;
  align-items:center;
  font-size:20px;
  font-weight:950;
  margin-bottom:16px;
}
.checkout-btn{width:100%}
.order-mobile-bar{display:none}

.product-modal{
  position:fixed;
  inset:0;
  z-index:100;
  display:none;
}
.product-modal.is-open{
  display:block;
}
.modal-backdrop{
  position:absolute;
  inset:0;
  background:rgba(28,20,16,.55);
}
.modal-card{
  position:absolute;
  right:0;
  top:0;
  bottom:0;
  width:min(560px,100%);
  background:#fffdf8;
  overflow:auto;
  box-shadow:-20px 0 60px rgba(0,0,0,.18);
}
.modal-close{
  position:fixed;
  right:22px;
  top:20px;
  z-index:2;
  width:44px;
  height:44px;
  border:0;
  border-radius:50%;
  background:rgba(255,255,255,.92);
  color:#231a16;
  font-size:28px;
  line-height:1;
  cursor:pointer;
  box-shadow:0 8px 22px rgba(0,0,0,.10);
}
.modal-img{
  width:100%;
  aspect-ratio:1.18/1;
  object-fit:cover;
  background:#f4e6d6;
}
.modal-content{
  padding:26px 30px 118px;
}
.modal-content h2{
  margin:0 0 6px;
  font-size:30px;
}
.modal-price{
  color:#8f2b21;
  font-size:22px;
  font-weight:950;
  margin-bottom:18px;
}
.modal-content p{
  color:#746760;
  line-height:1.8;
}
.option-group{
  margin-top:28px;
}
.option-group h3{
  margin:0 0 4px;
  font-size:22px;
}
.option-group > p{
  margin:0 0 12px;
  color:#9a8b81;
}
.option-list{
  display:grid;
  gap:10px;
}
.option-list label{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:15px 0;
  border-bottom:1px solid #eee0d2;
  cursor:pointer;
}
.option-list input{
  width:22px;
  height:22px;
  accent-color:#d8893a;
}
.option-list span{
  flex:1;
  font-weight:800;
}
.option-list em{
  font-style:normal;
  color:#9a8b81;
}
.modal-footer{
  position:fixed;
  right:0;
  bottom:0;
  width:min(560px,100%);
  display:grid;
  grid-template-columns:132px 1fr;
  gap:12px;
  padding:16px 22px;
  background:rgba(255,253,248,.96);
  border-top:1px solid #ead5bd;
  backdrop-filter:blur(12px);
}
.modal-qty{
  display:grid;
  grid-template-columns:40px 1fr 40px;
  align-items:center;
  gap:6px;
}
.modal-qty button{
  height:44px;
  border:0;
  border-radius:12px;
  background:#f4e7d8;
  color:#8f2b21;
  font-size:22px;
  cursor:pointer;
}
.modal-qty strong{
  text-align:center;
  font-size:18px;
}
.modal-add-cart{
  min-height:54px;
  border:0;
  border-radius:999px;
  background:#ffe100;
  color:#1d170f;
  font-weight:950;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:18px;
  cursor:pointer;
}
.modal-add-cart small{
  color:#746760;
  font-size:13px;
}
body.modal-open{
  overflow:hidden;
}
@media (max-width:1100px){
  .order-app{
    grid-template-columns:1fr;
  }
  .order-category-panel,
  .order-cart-panel{
    position:relative;
    top:auto;
  }
  .order-category-list{
    display:flex;
    overflow:auto;
    gap:10px;
    padding-bottom:4px;
  }
  .order-category-list a{
    white-space:nowrap;
  }
}
@media (max-width:760px){
  .order-page{
    padding-top:34px;
    padding-bottom:110px;
  }
  .order-hero{
    display:grid;
    gap:16px;
    align-items:start;
  }
  .order-store-card{
    min-width:0;
  }
  .order-product{
    grid-template-columns:88px 1fr 34px;
    gap:12px;
    padding:12px;
    border-radius:20px;
  }
  .order-product img{
    width:88px;
    height:88px;
    border-radius:16px;
  }
  .order-product h3{
    font-size:18px;
  }
  .order-product p{
    font-size:14px;
    margin:6px 0 8px;
  }
  .order-product strong{
    font-size:21px;
  }
  .order-add-mini{
    width:32px;
    height:32px;
    font-size:19px;
  }
  .order-cart-panel{
    display:none;
  }
  .order-mobile-bar{
    position:fixed;
    left:0;
    right:0;
    bottom:0;
    z-index:60;
    display:grid;
    grid-template-columns:1fr 1.5fr;
    gap:12px;
    align-items:center;
    padding:12px 14px;
    background:rgba(255,253,248,.96);
    border-top:1px solid #ead5bd;
    box-shadow:0 -12px 28px rgba(92,48,24,.10);
    backdrop-filter:blur(14px);
  }
  .order-mobile-bar span{
    display:block;
    color:#746760;
    font-size:13px;
  }
  .order-mobile-bar strong{
    color:#8f2b21;
    font-size:22px;
  }
  .order-mobile-bar .btn{
    width:100%;
    justify-content:center !important;
    padding-left:18px !important;
  }
  .modal-card{
    left:0;
    width:100%;
    border-radius:0;
  }
  .modal-close{
    right:16px;
    top:16px;
  }
  .modal-content{
    padding:22px 22px 112px;
  }
  .modal-content h2{
    font-size:26px;
  }
  .modal-footer{
    left:0;
    width:100%;
    grid-template-columns:118px 1fr;
    padding:12px 14px;
  }
}


/* v28 fixed header + icon cart + mobile header refine */
.site-header{
  position:fixed !important;
  top:0; left:0; right:0;
  width:100%;
  z-index:80;
  background:rgba(255,250,242,.90);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
  border-bottom:1px solid rgba(231,211,189,.75);
}
body{padding-top:72px;}
.nav-wrap{
  position:relative;
  width:var(--container);
  margin:0 auto;
  height:72px;
  display:flex;
  align-items:center;
  gap:20px;
}
.brand{flex:0 1 auto; min-width:0;}
.nav{
  margin-left:auto;
  display:flex;
  align-items:center;
  gap:36px;
}
.header-cart{
  position:relative;
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:52px;
  height:52px;
  margin-left:18px;
  border-radius:16px;
  border:1px solid rgba(216,185,148,.85);
  background:linear-gradient(180deg,#fffdf9,#f8ecdf);
  color:#8f2b21;
  box-shadow:0 10px 22px rgba(92,48,24,.08);
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.header-cart:hover{
  transform:translateY(-2px);
  border-color:#d7ad82;
  box-shadow:0 16px 28px rgba(92,48,24,.13);
}
.header-cart svg{
  width:24px; height:24px; stroke:currentColor;
}
.header-cart-count{
  position:absolute;
  top:-5px; right:-5px;
  min-width:22px; height:22px;
  padding:0 6px;
  display:grid; place-items:center;
  border-radius:999px;
  background:#b5512a;
  color:#fff;
  font-size:12px;
  font-weight:900;
  line-height:1;
  box-shadow:0 4px 12px rgba(181,81,42,.28);
}

main.section:first-of-type,
.hero:first-of-type{scroll-margin-top:90px;}

@media (max-width:1100px){
  .nav{gap:18px;}
}

@media (max-width:760px){
  body{padding-top:68px;}
  .nav-wrap{
    height:68px;
    gap:10px;
  }
  .brand{flex:1 1 auto; min-width:0;}
  .brand-logo{width:38px !important; height:38px !important; border-radius:11px;}
  .brand-title{
    font-size:17px !important;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  .header-cart{
    order:2;
    width:42px;
    height:42px;
    margin-left:auto;
    border-radius:14px;
  }
  .header-cart svg{width:20px;height:20px;}
  .header-cart-count{
    top:-4px; right:-4px;
    min-width:18px; height:18px;
    padding:0 4px;
    font-size:10px;
  }
  .nav-toggle{
    order:3;
    margin-left:0 !important;
    padding:9px 12px;
    border-radius:13px;
    font-size:13px;
    line-height:1;
    flex:0 0 auto;
  }
  .nav{
    position:fixed;
    top:68px !important;
    left:14px;
    right:14px;
    margin-left:0;
    display:none;
    flex-direction:column;
    align-items:stretch;
    gap:4px;
    background:#fffaf2;
    border:1px solid var(--line);
    border-radius:22px;
    padding:14px;
    box-shadow:0 18px 36px rgba(92,48,24,.10);
    z-index:79;
  }
  .nav.open{display:flex;}
  .nav a{padding:13px 14px;}
}

@media (max-width:420px){
  .brand-title{font-size:15px !important;}
  .nav-wrap{gap:8px;}
}


/* v29 header account + cart simple icon style */
.header-account,
.header-cart{
  flex:0 0 auto;
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:36px;
  height:36px;
  margin-left:10px;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  color:#111 !important;
  box-shadow:none !important;
  padding:0 !important;
  transition:transform .16s ease, color .16s ease;
}
.header-account:hover,
.header-cart:hover{
  transform:translateY(-1px);
  color:#8f2b21 !important;
}
.header-account svg,
.header-cart svg{
  width:25px;
  height:25px;
  display:block;
}
.header-cart-count{
  position:absolute;
  top:5px;
  right:-8px;
  min-width:30px;
  height:19px;
  padding:0 8px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  background:#ff5a64;
  color:#fff;
  font-size:12px;
  font-weight:900;
  line-height:1;
  box-shadow:none;
}
@media (max-width:760px){
  .header-account{
    order:2;
    width:34px;
    height:34px;
    margin-left:auto;
  }
  .header-cart{
    order:3;
    width:34px;
    height:34px;
    margin-left:4px;
  }
  .header-account svg,
  .header-cart svg{
    width:23px;
    height:23px;
  }
  .header-cart-count{
    top:6px;
    right:-8px;
    min-width:28px;
    height:18px;
    padding:0 7px;
    font-size:11px;
  }
  .nav-toggle{
    order:4;
    margin-left:8px !important;
  }
}
@media (max-width:420px){
  .header-account,
  .header-cart{
    width:31px;
    height:31px;
  }
  .header-account svg,
  .header-cart svg{
    width:21px;
    height:21px;
  }
  .header-cart-count{
    min-width:26px;
    height:17px;
    font-size:10px;
  }
}


/* v30 force show header user/cart icons */
.nav-wrap .header-account,
.nav-wrap .header-cart{
  flex:0 0 auto !important;
  position:relative !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:36px !important;
  height:36px !important;
  margin-left:10px !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  color:#111 !important;
  box-shadow:none !important;
  padding:0 !important;
  text-decoration:none !important;
}
.nav-wrap .header-account svg,
.nav-wrap .header-cart svg{
  width:25px !important;
  height:25px !important;
  display:block !important;
}
.nav-wrap .header-cart-count{
  position:absolute !important;
  top:5px !important;
  right:-8px !important;
  min-width:30px !important;
  height:19px !important;
  padding:0 8px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  border-radius:999px !important;
  background:#ff5a64 !important;
  color:#fff !important;
  font-size:12px !important;
  font-weight:900 !important;
  line-height:1 !important;
  box-shadow:none !important;
}
@media (max-width:760px){
  .nav-wrap .header-account{
    order:2 !important;
    width:34px !important;
    height:34px !important;
    margin-left:auto !important;
  }
  .nav-wrap .header-cart{
    order:3 !important;
    width:34px !important;
    height:34px !important;
    margin-left:4px !important;
  }
  .nav-toggle{
    order:4 !important;
    margin-left:8px !important;
  }
}


/* v34 based on v30: cart badge position fix */
.nav-wrap .header-cart{
  margin-left:10px !important;
  margin-right:22px !important;
  overflow:visible !important;
}

.nav-wrap .header-cart-count{
  top:7px !important;
  right:-24px !important;
  min-width:28px !important;
  height:18px !important;
  padding:0 8px !important;
  border-radius:999px !important;
  background:#ff5a64 !important;
  color:#fff !important;
  font-size:11px !important;
  font-weight:900 !important;
  line-height:1 !important;
  box-shadow:none !important;
  z-index:3 !important;
}

@media (max-width:760px){
  .nav-wrap .header-cart{
    margin-left:4px !important;
    margin-right:20px !important;
  }

  .nav-wrap .header-cart-count{
    top:7px !important;
    right:-22px !important;
    min-width:26px !important;
    height:17px !important;
    padding:0 7px !important;
    font-size:10px !important;
  }
}

@media (max-width:420px){
  .nav-wrap .header-cart{
    margin-right:18px !important;
  }

  .nav-wrap .header-cart-count{
    right:-20px !important;
    min-width:24px !important;
    height:16px !important;
  }
}


/* v35 Ocard-like online order layout */
.order-ocard-page{
  min-height:100vh;
  padding:28px 0 120px;
  background:#f6f6f6;
}
.order-phone-shell{
  width:min(100% - 28px, 430px);
  margin:0 auto;
  background:#fff;
  box-shadow:0 16px 48px rgba(0,0,0,.06);
}
.order-cover{
  width:100%;
  height:170px;
  overflow:hidden;
  background:#eee;
}
.order-cover img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.order-brand-panel{
  margin-top:-24px;
  text-align:center;
  padding:0 18px 12px;
}
.order-shop-logo{
  width:58px;
  height:58px;
  border-radius:18px;
  object-fit:cover;
  background:#fff;
  box-shadow:0 8px 20px rgba(0,0,0,.10);
}
.order-brand-panel h1{
  margin:8px 0 2px;
  font-size:19px;
  font-weight:950;
  letter-spacing:.01em;
}
.order-brand-panel p{
  margin:0;
  color:#777;
  font-size:13px;
}
.order-mode-tabs{
  width:calc(100% - 36px);
  margin:10px auto 12px;
  display:grid;
  grid-template-columns:1fr 1fr;
  background:#f2f2f2;
  border-radius:10px;
  overflow:hidden;
}
.order-mode-tabs button{
  height:38px;
  border:0;
  background:transparent;
  color:#777;
  font-weight:900;
  cursor:pointer;
}
.order-mode-tabs button.active{
  background:#ffe100;
  color:#1b170e;
}
.order-pickup-card,
.order-notice-card,
.order-guide-card,
.order-search-box{
  width:calc(100% - 36px);
  margin:0 auto 12px;
}
.order-pickup-card{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  padding:12px 14px;
  border-radius:12px;
  background:#f8f8f8;
}
.order-pickup-card strong,
.order-pickup-card span{
  display:block;
}
.order-pickup-card strong{
  font-size:14px;
}
.order-pickup-card span{
  margin-top:3px;
  color:#777;
  font-size:12px;
}
.order-pickup-card a{
  color:#a46a00;
  font-weight:900;
  font-size:13px;
}
.order-notice-card{
  padding:13px 15px;
  border-radius:10px;
  background:#ffe100;
  color:#1b170e;
}
.order-notice-card strong{
  display:block;
  margin-bottom:5px;
}
.order-notice-card p{
  margin:0;
  font-size:13px;
  line-height:1.65;
}
.order-guide-card{
  padding:12px 14px;
  border-radius:10px;
  background:#fafafa;
  border:1px solid #eee;
}
.order-guide-card summary{
  cursor:pointer;
  font-weight:900;
}
.order-guide-card p{
  margin:9px 0 0;
  color:#666;
  font-size:13px;
  line-height:1.6;
}
.order-search-box{
  display:grid;
  grid-template-columns:18px 1fr;
  align-items:center;
  gap:8px;
  padding:0 12px;
  height:42px;
  border-radius:999px;
  background:#f5f5f5;
}
.order-search-box svg{
  width:18px;
  height:18px;
  color:#999;
}
.order-search-box input{
  width:100%;
  border:0;
  outline:0;
  background:transparent;
  font-size:14px;
}
.order-category-strip{
  position:sticky;
  top:72px;
  z-index:30;
  display:flex;
  gap:8px;
  overflow:auto;
  padding:10px 18px;
  background:rgba(255,255,255,.94);
  border-top:1px solid #eee;
  border-bottom:1px solid #eee;
  scrollbar-width:none;
}
.order-category-strip::-webkit-scrollbar{
  display:none;
}
.order-category-strip a{
  flex:0 0 auto;
  padding:8px 12px;
  border-radius:999px;
  background:#f5f5f5;
  color:#333;
  font-size:13px;
  font-weight:900;
}
.order-category-strip a.active,
.order-category-strip a:hover{
  background:#ffe100;
  color:#1b170e;
}
.ocard-menu-section{
  padding:14px 18px 2px;
  scroll-margin-top:126px;
}
.ocard-menu-section h2{
  margin:10px 0 12px;
  font-size:16px;
  font-weight:950;
}
.ocard-product{
  position:relative;
  display:grid;
  grid-template-columns:74px 1fr 28px;
  gap:12px;
  align-items:center;
  padding:10px 0;
  border-bottom:1px solid #efefef;
  cursor:pointer;
  background:#fff;
}
.ocard-product:last-child{
  border-bottom:0;
}
.ocard-product img{
  width:74px;
  height:74px;
  border-radius:10px;
  object-fit:cover;
  background:#f2f2f2;
}
.ocard-product h3{
  margin:0;
  font-size:14px;
  font-weight:950;
}
.ocard-product p{
  margin:4px 0 5px;
  color:#777;
  line-height:1.45;
  font-size:12px;
}
.ocard-product strong{
  color:#333;
  font-size:13px;
  font-weight:950;
}
.ocard-plus{
  width:26px;
  height:26px;
  border:0;
  border-radius:50%;
  background:#f1f1f1;
  color:#333;
  display:grid;
  place-items:center;
  cursor:pointer;
  font-weight:950;
}
.ocard-product:hover .ocard-plus{
  background:#ffe100;
}
.order-cart-compact{
  width:calc(100% - 36px);
  margin:18px auto 0;
  padding:16px;
  border-radius:16px;
  background:#fafafa;
  border:1px solid #eee;
}
.cart-panel-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
}
.cart-panel-head h2{
  margin:0;
  font-size:17px;
}
.cart-panel-head span{
  display:grid;
  place-items:center;
  min-width:30px;
  height:30px;
  border-radius:999px;
  background:#ffe100;
  color:#111;
  font-weight:950;
}
.cart-empty{
  color:#888;
  font-size:13px;
  padding:14px 0;
}
.cart-items{
  display:grid;
  gap:10px;
}
.cart-item{
  display:flex;
  justify-content:space-between;
  gap:12px;
  padding:10px;
  border-radius:12px;
  background:#fff;
  border:1px solid #eee;
}
.cart-item strong{
  display:block;
  font-size:13px;
}
.cart-item p{
  margin:4px 0 0;
  color:#777;
  font-size:12px;
}
.cart-item-side{
  text-align:right;
  display:grid;
  justify-items:end;
  gap:4px;
}
.cart-item-side span{
  font-weight:950;
}
.cart-item-side button{
  width:24px;
  height:24px;
  border:0;
  border-radius:50%;
  background:#eee;
  cursor:pointer;
}
.cart-summary{
  margin-top:12px;
  padding-top:12px;
  border-top:1px dashed #ddd;
}
.cart-summary > div{
  display:flex;
  justify-content:space-between;
  font-size:16px;
  font-weight:950;
  margin-bottom:12px;
}
.checkout-btn{
  width:100%;
}

/* Modal closer to reference */
.product-modal{
  position:fixed;
  inset:0;
  z-index:120;
  display:none;
}
.product-modal.is-open{
  display:block;
}
.modal-backdrop{
  position:absolute;
  inset:0;
  background:rgba(20,20,20,.64);
}
.modal-card{
  position:absolute;
  right:50%;
  top:0;
  bottom:0;
  transform:translateX(50%);
  width:min(100%, 520px);
  background:#fff;
  overflow:auto;
  box-shadow:0 0 50px rgba(0,0,0,.16);
}
.modal-close{
  position:fixed;
  right:calc(50% - 236px);
  top:16px;
  z-index:2;
  width:44px;
  height:44px;
  border:0;
  border-radius:50%;
  background:#fff;
  color:#222;
  font-size:28px;
  line-height:1;
  cursor:pointer;
}
.modal-img{
  width:100%;
  height:330px;
  object-fit:cover;
  display:block;
  background:#eee;
}
.modal-content{
  padding:24px 26px 120px;
}
.modal-content h2{
  margin:0 0 6px;
  font-size:26px;
  font-weight:950;
}
.modal-price{
  margin-bottom:18px;
  color:#777;
  font-size:18px;
}
.modal-content > p{
  color:#777;
  line-height:1.7;
}
.option-group{
  margin-top:28px;
}
.option-group h3{
  margin:0 0 6px;
  font-size:19px;
  font-weight:950;
}
.option-group > p{
  margin:0 0 12px;
  color:#999;
}
.option-list{
  display:grid;
}
.option-list label{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:15px 0;
  border-bottom:1px solid #eee;
  cursor:pointer;
}
.option-list input{
  width:22px;
  height:22px;
  accent-color:#ffe100;
}
.option-list span{
  flex:1;
  font-weight:800;
}
.option-list em{
  color:#888;
  font-style:normal;
}
.modal-footer{
  position:fixed;
  right:50%;
  bottom:0;
  transform:translateX(50%);
  width:min(100%, 520px);
  display:grid;
  grid-template-columns:122px 1fr;
  gap:10px;
  padding:12px 16px;
  background:rgba(255,255,255,.96);
  border-top:1px solid #eee;
  box-shadow:0 -8px 24px rgba(0,0,0,.06);
}
.modal-qty{
  display:grid;
  grid-template-columns:38px 1fr 38px;
  gap:4px;
  align-items:center;
}
.modal-qty button{
  height:44px;
  border:0;
  background:#f3f3f3;
  border-radius:8px;
  font-size:20px;
  cursor:pointer;
}
.modal-qty strong{
  text-align:center;
  font-size:17px;
}
.modal-add-cart{
  min-height:46px;
  border:0;
  border-radius:999px;
  background:#ffe100;
  color:#111;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:16px;
  font-weight:950;
  cursor:pointer;
}
.modal-add-cart small{
  color:#7a6b00;
}
.order-mobile-bar{
  position:fixed;
  left:50%;
  bottom:0;
  transform:translateX(-50%);
  z-index:80;
  width:min(100%,430px);
  display:grid;
  grid-template-columns:1fr 1.45fr;
  gap:10px;
  align-items:center;
  padding:10px 14px;
  background:rgba(255,255,255,.96);
  border-top:1px solid #eee;
  box-shadow:0 -8px 28px rgba(0,0,0,.08);
}
.order-mobile-bar span{
  display:block;
  color:#777;
  font-size:12px;
}
.order-mobile-bar strong{
  font-size:20px;
  font-weight:950;
}
.order-mobile-bar .btn{
  width:100%;
  min-height:46px;
  border-radius:999px;
  justify-content:center !important;
  padding-left:18px !important;
}
body.modal-open{
  overflow:hidden;
}
@media (min-width:900px){
  .order-ocard-page{
    padding-top:40px;
  }
  .order-phone-shell{
    border-radius:24px;
    overflow:hidden;
  }
}
@media (max-width:760px){
  .order-ocard-page{
    padding:0 0 110px;
  }
  .order-phone-shell{
    width:100%;
    box-shadow:none;
  }
  .order-category-strip{
    top:68px;
  }
  .modal-card{
    right:0;
    transform:none;
    width:100%;
  }
  .modal-close{
    right:16px;
  }
  .modal-img{
    height:300px;
  }
  .modal-footer{
    right:0;
    transform:none;
    width:100%;
  }
}
@media (max-width:420px){
  .modal-img{
    height:275px;
  }
  .modal-content{
    padding:22px 22px 112px;
  }
}


/* v36 Online order - keep original YKQK brand style */
.order-ocard-page{
  min-height:100vh;
  padding:32px 0 126px;
  background:
    radial-gradient(circle at top left, rgba(239,214,182,.35), transparent 38%),
    linear-gradient(180deg, #fbf7f1 0%, #f7efe2 100%);
}
.order-phone-shell{
  width:min(100% - 28px, 470px);
  margin:0 auto;
  background:transparent;
  box-shadow:none;
}
.order-cover{
  height:188px;
  border-radius:28px;
  overflow:hidden;
  background:#ead8c3;
  box-shadow:0 18px 40px rgba(92,48,24,.08);
}
.order-cover img{
  filter:saturate(1.02) contrast(1.02);
}
.order-brand-panel{
  margin-top:-28px;
  text-align:center;
  padding:0 18px 10px;
}
.order-shop-logo{
  width:66px;
  height:66px;
  border-radius:20px;
  background:#fff;
  border:4px solid rgba(255,255,255,.95);
  box-shadow:0 10px 24px rgba(92,48,24,.10);
}
.order-brand-panel h1{
  margin:10px 0 4px;
  font-size:24px;
  line-height:1.2;
  color:#241b17;
  font-weight:950;
}
.order-brand-panel p{
  margin:0;
  color:#8a6b57;
  font-size:13px;
  letter-spacing:.03em;
}

.order-mode-tabs{
  width:calc(100% - 8px);
  margin:14px auto 14px;
  padding:4px;
  border-radius:16px;
  background:#f1e4d5;
  box-shadow:inset 0 0 0 1px rgba(205,172,142,.35);
}
.order-mode-tabs button{
  height:42px;
  border-radius:12px;
  color:#876a57;
  font-weight:900;
  letter-spacing:.02em;
}
.order-mode-tabs button.active{
  background:linear-gradient(180deg,#d78e43,#c46f2a);
  color:#fff;
  box-shadow:0 8px 18px rgba(196,111,42,.24);
}

.order-pickup-card,
.order-notice-card,
.order-guide-card,
.order-search-box,
.order-cart-compact{
  width:100%;
  margin:0 auto 14px;
}
.order-pickup-card{
  padding:15px 16px;
  border-radius:20px;
  background:rgba(255,253,248,.92);
  border:1px solid #e8d1b6;
  box-shadow:0 12px 26px rgba(92,48,24,.05);
}
.order-pickup-card strong{
  font-size:14px;
  color:#251c17;
}
.order-pickup-card span{
  color:#8a6b57;
  font-size:12px;
}
.order-pickup-card a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:58px;
  height:34px;
  padding:0 12px;
  border-radius:999px;
  color:#8f4a21;
  font-size:12px;
  font-weight:900;
  background:#fff7ed;
  border:1px solid #e1c3a3;
}

.order-notice-card{
  padding:15px 16px;
  border-radius:20px;
  background:linear-gradient(135deg,#fff5c9 0%, #ffe100 100%);
  color:#2f2416;
  box-shadow:0 12px 24px rgba(255,225,0,.18);
}
.order-notice-card strong{
  font-size:14px;
}
.order-notice-card p{
  font-size:13px;
  line-height:1.72;
}

.order-guide-card{
  padding:14px 16px;
  border-radius:20px;
  background:rgba(255,253,248,.90);
  border:1px solid #ead7c3;
}
.order-guide-card summary{
  color:#2a201a;
  font-weight:900;
}
.order-guide-card[open] summary{
  margin-bottom:8px;
}
.order-guide-card p{
  color:#7b6657;
  line-height:1.68;
}

.order-search-box{
  height:48px;
  padding:0 14px;
  border-radius:999px;
  background:rgba(255,253,248,.92);
  border:1px solid #ead7c3;
  box-shadow:0 10px 24px rgba(92,48,24,.04);
}
.order-search-box svg{
  color:#a38776;
}
.order-search-box input{
  color:#3d2d24;
}

.order-category-strip{
  top:82px;
  padding:2px 0 12px;
  margin-bottom:4px;
  background:transparent;
  border:0;
  gap:10px;
}
.order-category-strip a{
  padding:9px 14px;
  border-radius:999px;
  background:#fffaf3;
  border:1px solid #e2cab1;
  color:#755745;
  font-size:13px;
  font-weight:900;
  box-shadow:0 8px 18px rgba(92,48,24,.04);
}
.order-category-strip a.active,
.order-category-strip a:hover{
  background:#7d3f1f;
  border-color:#7d3f1f;
  color:#fff;
}

.ocard-menu-section{
  padding:0 0 4px;
  scroll-margin-top:138px;
}
.ocard-menu-section h2{
  margin:16px 0 12px;
  font-size:18px;
  color:#251c17;
  font-weight:950;
  letter-spacing:.02em;
}
.ocard-product{
  grid-template-columns:84px 1fr 34px;
  gap:14px;
  padding:14px;
  margin-bottom:12px;
  border:1px solid #ead7c3;
  border-radius:22px;
  background:rgba(255,253,248,.93);
  box-shadow:0 12px 26px rgba(92,48,24,.05);
}
.ocard-product img{
  width:84px;
  height:84px;
  border-radius:16px;
}
.ocard-product h3{
  font-size:16px;
  color:#251c17;
}
.ocard-product p{
  margin:6px 0 7px;
  color:#7f6b5c;
  font-size:12px;
  line-height:1.55;
}
.ocard-product strong{
  color:#9b2e22;
  font-size:18px;
}
.ocard-plus{
  width:30px;
  height:30px;
  background:#f3e5d4;
  color:#8f4a21;
  font-size:20px;
}
.ocard-product:hover .ocard-plus,
.ocard-plus:hover{
  background:#d8893a;
  color:#fff;
}

.order-cart-compact{
  margin-top:22px;
  padding:18px;
  border-radius:24px;
  background:rgba(255,253,248,.95);
  border:1px solid #e8d1b6;
  box-shadow:0 16px 32px rgba(92,48,24,.07);
}
.cart-panel-head h2{
  color:#241b17;
}
.cart-panel-head span{
  background:#fff4df;
  color:#8f2b21;
  min-width:34px;
  height:34px;
}
.cart-empty{
  color:#8a7363;
}
.cart-item{
  border:1px solid #ecd9c3;
  background:#fff;
}
.cart-item strong{
  color:#241b17;
}
.cart-item p{
  color:#7f6b5c;
}
.cart-item-side span{
  color:#8f2b21;
}
.cart-item-side button{
  background:#f3e5d4;
  color:#8f4a21;
}
.cart-summary{
  border-top:1px dashed #dcc1a4;
}
.cart-summary > div{
  color:#241b17;
}

.product-modal{
  z-index:140;
}
.modal-backdrop{
  background:rgba(42,24,16,.50);
}
.modal-card{
  background:#fffaf4;
  border-left:1px solid #ead4bf;
}
.modal-close{
  background:rgba(255,255,255,.94);
  box-shadow:0 8px 24px rgba(0,0,0,.08);
}
.modal-img{
  height:318px;
  background:#ead8c3;
}
.modal-content{
  padding:24px 24px 118px;
}
.modal-content h2{
  color:#241b17;
}
.modal-price{
  color:#9b2e22;
  font-weight:900;
}
.modal-content > p{
  color:#7b6657;
}
.option-group h3{
  color:#241b17;
  font-size:18px;
}
.option-group > p{
  color:#9b8a7d;
  font-size:13px;
}
.option-list label{
  border-bottom:1px solid #ecddcf;
}
.option-list input{
  accent-color:#d8893a;
}
.option-list span{
  color:#3a2d25;
}
.option-list em{
  color:#9b8a7d;
}
.modal-footer{
  background:rgba(255,250,244,.96);
  border-top:1px solid #ead4bf;
}
.modal-qty button{
  background:#f3e5d4;
  color:#8f4a21;
}
.modal-add-cart{
  background:linear-gradient(180deg,#ffe55b,#ffd400);
  color:#1e180e;
}
.modal-add-cart small{
  color:#786300;
}

.order-mobile-bar{
  width:min(100%,470px);
  background:rgba(255,250,244,.96);
  border-top:1px solid #e9d1b8;
  box-shadow:0 -10px 28px rgba(92,48,24,.08);
}
.order-mobile-bar span{
  color:#8a7363;
}
.order-mobile-bar strong{
  color:#8f2b21;
}
.order-mobile-bar .btn{
  background:linear-gradient(180deg,#d78e43,#c46f2a);
  color:#fff;
}

@media (max-width:760px){
  .order-ocard-page{
    padding:18px 0 112px;
    background:
      radial-gradient(circle at top right, rgba(239,214,182,.28), transparent 30%),
      linear-gradient(180deg, #fbf7f1 0%, #f7efe2 100%);
  }
  .order-phone-shell{
    width:min(100% - 20px, 470px);
  }
  .order-cover{
    height:172px;
    border-radius:24px;
  }
  .order-category-strip{
    top:74px;
  }
  .ocard-product{
    grid-template-columns:78px 1fr 30px;
    gap:12px;
    padding:12px;
    border-radius:20px;
  }
  .ocard-product img{
    width:78px;
    height:78px;
  }
  .ocard-product h3{
    font-size:15px;
  }
  .ocard-product strong{
    font-size:17px;
  }
  .order-cart-compact{
    padding:16px;
  }
  .modal-img{
    height:290px;
  }
}

@media (max-width:420px){
  .order-phone-shell{
    width:min(100% - 16px, 470px);
  }
  .order-brand-panel h1{
    font-size:22px;
  }
  .order-category-strip a{
    font-size:12px;
    padding:8px 12px;
  }
  .modal-img{
    height:260px;
  }
}


/* v37 hybrid layout: keep desktop arrangement + Ocard-like components */
.order-hybrid-page{
  padding:34px 0 120px;
  background:
    radial-gradient(circle at left 35%, rgba(239,214,182,.28), transparent 22%),
    linear-gradient(180deg,#fbf7f1 0%,#f8f2e8 100%);
}
.order-hero-top{
  display:grid;
  grid-template-columns:minmax(0,1fr) 310px;
  gap:26px;
  align-items:end;
  margin-bottom:26px;
}
.order-hero-copy .section-title{
  margin-bottom:6px;
}
.order-hero-copy .section-desc{
  max-width:820px;
}
.order-hero-store{
  display:grid;
  gap:6px;
  padding:22px 24px;
  border-radius:24px;
  background:rgba(255,253,248,.92);
  border:1px solid #e8d1b6;
  box-shadow:0 14px 28px rgba(92,48,24,.06);
}
.order-hero-store strong{
  font-size:22px;
  color:#241b17;
}
.order-hero-store span{
  color:#8a6b57;
}
.order-toolbar-card{
  display:grid;
  grid-template-columns:1.2fr 0.75fr 0.95fr 1fr;
  gap:16px;
  align-items:center;
  padding:18px;
  margin-bottom:26px;
  border-radius:28px;
  background:rgba(255,253,248,.95);
  border:1px solid #e8d1b6;
  box-shadow:0 18px 34px rgba(92,48,24,.06);
}
.order-toolbar-brand{
  display:flex;
  align-items:center;
  gap:14px;
  min-width:0;
}
.order-toolbar-logo{
  width:58px;
  height:58px;
  border-radius:18px;
  object-fit:cover;
  flex:0 0 auto;
  background:#fff;
  border:3px solid #fff;
  box-shadow:0 10px 20px rgba(92,48,24,.10);
}
.order-toolbar-brand h2{
  margin:0 0 4px;
  font-size:22px;
  color:#241b17;
}
.order-toolbar-brand p{
  margin:0;
  color:#8a6b57;
  font-size:13px;
  line-height:1.55;
}
.order-toolbar-card .order-mode-tabs,
.order-toolbar-card .order-pickup-card,
.order-toolbar-card .order-search-box{
  width:100%;
  margin:0;
}
.order-toolbar-card .order-mode-tabs{
  min-width:190px;
}
.order-hybrid-grid{
  display:grid;
  grid-template-columns:240px minmax(0,1fr) 300px;
  gap:24px;
  align-items:start;
}
.order-left-sidebar,
.order-right-sidebar{
  display:grid;
  gap:18px;
}
.order-left-sidebar .order-notice-card,
.order-left-sidebar .order-guide-card,
.order-left-sidebar .order-category-panel{
  width:100%;
  margin:0;
}
.order-category-panel,
.order-right-sidebar .panel,
.order-side-store{
  position:sticky;
  top:108px;
}
.order-category-panel{
  padding:22px;
  border-radius:28px;
}
.order-category-panel h2{
  margin:0 0 18px;
  font-size:22px;
}
.order-category-list{
  display:grid;
  gap:10px;
}
.order-category-list a{
  display:block;
  padding:13px 14px;
  border-radius:16px;
  color:#49352b;
  font-weight:900;
  transition:.18s ease;
}
.order-category-list a.active,
.order-category-list a:hover{
  background:#ecddc8;
  color:#a63a1e;
}
.order-content-area{
  min-width:0;
}
.order-content-area .ocard-menu-section{
  padding:0;
  margin-bottom:18px;
  scroll-margin-top:122px;
}
.order-content-area .ocard-menu-section h2{
  margin:0 0 16px;
  font-size:32px;
  color:#241b17;
}
.hybrid-product{
  display:grid;
  grid-template-columns:112px minmax(0,1fr) 50px;
  gap:18px;
  align-items:center;
  padding:18px 18px;
  margin-bottom:18px;
  border-radius:28px;
  background:rgba(255,253,248,.94);
  border:1px solid #e7cfb2;
  box-shadow:0 16px 30px rgba(92,48,24,.05);
  cursor:pointer;
}
.hybrid-product img{
  width:112px;
  height:112px;
  border-radius:20px;
  object-fit:cover;
  background:#ead8c3;
}
.hybrid-product-body{
  min-width:0;
}
.hybrid-product-title{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  margin-bottom:6px;
}
.hybrid-product h3{
  margin:0;
  font-size:22px;
  color:#241b17;
}
.order-badge{
  display:inline-flex;
  align-items:center;
  min-height:28px;
  padding:0 10px;
  border-radius:999px;
  background:#fff5e7;
  border:1px solid #e1c09f;
  color:#9b552e;
  font-size:12px;
  font-weight:900;
}
.hybrid-product p{
  margin:0 0 14px;
  color:#786759;
  line-height:1.65;
}
.hybrid-product strong{
  color:#9b2e22;
  font-size:22px;
  font-weight:950;
}
.hybrid-plus{
  width:38px;
  height:38px;
  border:0;
  border-radius:50%;
  background:#da913d;
  color:#fff;
  font-size:28px;
  line-height:1;
  display:grid;
  place-items:center;
  cursor:pointer;
  box-shadow:0 10px 18px rgba(218,145,61,.28);
}
.hybrid-plus:hover{
  background:#c9751e;
}
.order-side-store{
  display:grid;
  gap:6px;
  padding:22px;
  border-radius:28px;
}
.order-side-store strong{
  font-size:20px;
  color:#241b17;
}
.order-side-store span{
  color:#8a6b57;
}
.desktop-cart-panel{
  padding:22px;
  border-radius:28px;
  top:260px;
}
.desktop-cart-panel .checkout-btn{
  justify-content:center;
}
.order-mobile-bar{
  display:none;
}

@media (max-width:1200px){
  .order-toolbar-card{
    grid-template-columns:1fr 1fr;
  }
  .order-hybrid-grid{
    grid-template-columns:230px minmax(0,1fr) 280px;
    gap:20px;
  }
}
@media (max-width:980px){
  .order-hero-top{
    grid-template-columns:1fr;
    align-items:start;
  }
  .order-hero-store{
    width:min(100%,380px);
  }
  .order-toolbar-card{
    grid-template-columns:1fr;
  }
  .order-hybrid-grid{
    grid-template-columns:1fr;
  }
  .order-category-panel,
  .order-right-sidebar .panel,
  .order-side-store{
    position:relative;
    top:auto;
  }
  .order-category-list{
    grid-template-columns:repeat(auto-fit,minmax(120px,1fr));
  }
  .desktop-cart-panel{
    display:none;
  }
  .order-mobile-bar{
    display:grid;
    position:fixed;
    left:0;
    right:0;
    bottom:0;
    z-index:80;
    grid-template-columns:1fr 1.35fr;
    gap:12px;
    align-items:center;
    padding:12px 14px;
    background:rgba(255,250,244,.96);
    border-top:1px solid #e9d1b8;
    box-shadow:0 -10px 28px rgba(92,48,24,.08);
  }
  .order-mobile-bar span{
    display:block;
    color:#8a7363;
    font-size:12px;
  }
  .order-mobile-bar strong{
    color:#8f2b21;
    font-size:22px;
  }
  .order-mobile-bar .btn{
    width:100%;
    justify-content:center !important;
  }
}

/* v154：依目前時間顯示不同餐點供應時段 */
.order-service-window-v154[hidden]{display:none !important;}

.order-service-window-v154{
  position:relative;
  display:grid;
  grid-template-columns:minmax(210px,.82fr) minmax(360px,1.45fr);
  gap:20px 30px;
  margin:0 0 28px;
  padding:24px 26px 18px;
  overflow:hidden;
  border:1px solid #e9c8a8;
  border-radius:22px;
  background:
    radial-gradient(circle at 9% 18%, rgba(231,143,56,.14), transparent 30%),
    linear-gradient(135deg,#fffaf3 0%,#fffdf9 56%,#f8eddf 100%);
  box-shadow:0 16px 34px rgba(103,58,28,.08);
}

.order-service-window-v154::before{
  content:"";
  position:absolute;
  top:24px;
  bottom:52px;
  left:0;
  width:4px;
  border-radius:0 4px 4px 0;
  background:#d17830;
}

.order-service-now-v154{
  display:flex;
  align-items:flex-start;
  gap:14px;
  min-width:0;
}

.order-service-clock-icon-v154{
  display:grid;
  flex:0 0 44px;
  width:44px;
  height:44px;
  place-items:center;
  border-radius:14px;
  background:#c9632b;
  color:#fff;
  box-shadow:0 8px 18px rgba(180,83,36,.2);
}

.order-service-clock-icon-v154 svg{width:24px;height:24px;}
.order-service-now-v154>div{min-width:0;}

.order-service-kicker-v154{
  display:block;
  margin:1px 0 5px;
  color:#a94e26;
  font-size:10px;
  font-weight:900;
  letter-spacing:.13em;
}

.order-service-now-v154 h2{
  margin:0;
  color:#251914;
  font-size:24px;
  line-height:1.18;
  letter-spacing:.02em;
}

.order-service-now-v154 p{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:7px 10px;
  margin:8px 0 0;
  color:#7c685b;
  font-size:12px;
}

.order-service-now-v154 p strong{
  color:#a94e26;
  font-size:13px;
}

.order-service-timeline-v154{
  position:relative;
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(120px,1fr));
  align-items:stretch;
  gap:8px;
}

.order-service-timeline-v154::before{
  content:"";
  position:absolute;
  top:17px;
  right:12%;
  left:12%;
  height:1px;
  background:#ddc8b4;
}

.order-service-timeline-v154>div{
  position:relative;
  z-index:1;
  display:flex;
  min-width:0;
  flex-direction:column;
  justify-content:center;
  gap:5px;
  padding:31px 10px 10px;
  color:#8b786b;
  text-align:center;
}

.order-service-timeline-v154>div::before{
  content:"";
  position:absolute;
  top:11px;
  left:calc(50% - 6px);
  width:12px;
  height:12px;
  border:3px solid #fffaf3;
  border-radius:50%;
  background:#cbb39d;
  box-shadow:0 0 0 1px #d8bfa8;
}

.order-service-timeline-v154 span{
  font-size:13px;
  font-weight:900;
  white-space:nowrap;
}

.order-service-timeline-v154 small{
  font-size:10px;
  font-weight:700;
  letter-spacing:.02em;
  white-space:nowrap;
}

.order-service-timeline-v154>div.is-current-v154{
  border-radius:13px;
  background:#fff;
  color:#a84720;
  box-shadow:0 7px 18px rgba(114,62,31,.09);
}

.order-service-timeline-v154>div.is-current-v154::before{
  background:#d87d31;
  box-shadow:0 0 0 2px rgba(216,125,49,.18);
}

.order-service-timeline-v154>div.is-past-v154{color:#b1a297;}

.order-service-foot-v154{
  grid-column:1 / -1;
  display:flex;
  align-items:center;
  min-width:0;
  gap:12px;
  padding-top:14px;
  border-top:1px dashed #dfc4a9;
  color:#7c695d;
  font-size:11px;
}

.order-service-foot-v154>span{
  display:flex;
  align-items:center;
  min-width:0;
  gap:7px;
}

.order-service-foot-v154 i{
  flex:0 0 7px;
  width:7px;
  height:7px;
  border-radius:50%;
  background:#47a66a;
  box-shadow:0 0 0 4px rgba(71,166,106,.12);
}

.order-service-foot-v154 strong{
  margin-left:auto;
  color:#a94e26;
  font-size:11px;
  white-space:nowrap;
}

.order-service-foot-v154 time{
  padding-left:12px;
  border-left:1px solid #dbc3ad;
  color:#49352b;
  font-size:13px;
  font-weight:900;
  font-variant-numeric:tabular-nums;
}

.order-product.is-service-hidden-v154,
.ocard-menu-section.is-service-empty-v154,
.order-subcategory-heading.is-service-empty-v154,
.order-subcategory-tabs a.is-service-nav-hidden-v154,
.order-category-list a.is-service-nav-hidden-v154,
.order-mobile-category-tabs a.is-service-nav-hidden-v154{
  display:none !important;
}

.sale-period-unavailable .product-sale-status-v146{background:#93613e;}

@media (max-width:1280px){
  .order-service-window-v154{
    grid-template-columns:1fr;
    gap:16px;
  }
  .order-service-now-v154{align-items:center;}
}

@media (max-width:980px){
  .order-service-window-v154{
    margin:2px 0 22px;
    padding:18px 16px 14px;
    gap:14px;
    border-radius:18px;
    box-shadow:0 10px 24px rgba(103,58,28,.07);
  }
  .order-service-window-v154::before{top:18px;bottom:46px;width:3px;}
  .order-service-clock-icon-v154{flex-basis:40px;width:40px;height:40px;border-radius:12px;}
  .order-service-clock-icon-v154 svg{width:22px;height:22px;}
  .order-service-now-v154 h2{font-size:21px;}
  .order-service-timeline-v154{gap:4px;}
  .order-service-timeline-v154>div{padding:28px 4px 8px;}
  .order-service-timeline-v154 span{font-size:12px;}
  .order-service-timeline-v154 small{font-size:9px;}
  .order-service-timeline-v154>div::before{top:10px;}
  .order-service-timeline-v154::before{top:16px;}
  .order-service-foot-v154{display:grid;grid-template-columns:1fr auto;gap:8px 12px;padding-top:12px;}
  .order-service-foot-v154>span{grid-column:1 / -1;}
  .order-service-foot-v154 strong{margin:0;white-space:normal;}
  .order-service-foot-v154 time{padding-left:10px;}
}

@media (max-width:390px){
  .order-service-now-v154 p{display:grid;gap:3px;}
  .order-service-timeline-v154 span{font-size:11px;}
  .order-service-timeline-v154 small{font-size:8px;}
}
@media (max-width:760px){
  .order-hybrid-page{
    padding:20px 0 112px;
  }
  .order-hero-copy .section-title{
    font-size:46px;
  }
  .order-toolbar-brand h2{
    font-size:20px;
  }
  .order-content-area .ocard-menu-section h2{
    font-size:26px;
  }
  .hybrid-product{
    grid-template-columns:92px minmax(0,1fr) 40px;
    gap:14px;
    padding:14px;
    border-radius:22px;
  }
  .hybrid-product img{
    width:92px;
    height:92px;
    border-radius:16px;
  }
  .hybrid-product h3{
    font-size:19px;
  }
  .hybrid-product strong{
    font-size:20px;
  }
  .hybrid-product p{
    margin-bottom:10px;
    font-size:14px;
  }
  .hybrid-plus{
    width:34px;
    height:34px;
    font-size:24px;
  }
}
@media (max-width:520px){
  .order-toolbar-card{
    padding:14px;
    border-radius:22px;
  }
  .order-toolbar-brand{
    align-items:flex-start;
  }
  .order-toolbar-logo{
    width:52px;
    height:52px;
    border-radius:16px;
  }
  .order-category-list{
    grid-template-columns:1fr;
  }
  .order-category-panel{
    padding:18px;
  }
  .hybrid-product{
    grid-template-columns:78px minmax(0,1fr) 34px;
    gap:12px;
    padding:12px;
    margin-bottom:12px;
  }
  .hybrid-product img{
    width:78px;
    height:78px;
  }
  .hybrid-product h3{
    font-size:17px;
  }
  .hybrid-product p{
    font-size:13px;
  }
  .hybrid-product strong{
    font-size:18px;
  }
}

/* v38 remove pickup field from toolbar + add dine-in tab */
.order-toolbar-card{
  grid-template-columns: 1.2fr 0.95fr 1fr !important;
}
.order-toolbar-card .order-mode-tabs{
  min-width: 260px;
  grid-template-columns: repeat(3, 1fr);
}
.order-toolbar-card .order-mode-tabs button{
  font-size: 15px;
}
@media (max-width:1200px){
  .order-toolbar-card{
    grid-template-columns: 1fr 1fr !important;
  }
}
@media (max-width:980px){
  .order-toolbar-card{
    grid-template-columns: 1fr !important;
  }
}


/* v40 search + product layout toggle */
.order-search-tools{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:12px;
  align-items:center;
  width:100%;
}
.order-search-tools .order-search-box{
  width:100%;
  margin:0;
}
.order-view-toggle{
  display:inline-grid;
  grid-template-columns:repeat(2, 48px);
  gap:8px;
  padding:6px;
  border-radius:16px;
  background:rgba(255,253,248,.92);
  border:1px solid #ead7c3;
  box-shadow:0 10px 24px rgba(92,48,24,.04);
}
.order-view-toggle button{
  width:48px;
  height:48px;
  border:0;
  border-radius:12px;
  background:transparent;
  color:#c8c0b8;
  display:grid;
  place-items:center;
  cursor:pointer;
  transition:.18s ease;
}
.order-view-toggle button svg{
  width:22px;
  height:22px;
  display:block;
}
.order-view-toggle button:hover{
  color:#8f4a21;
  background:#fff7ed;
}
.order-view-toggle button.is-active{
  color:#8f4a21;
  background:#f3e5d4;
}

/* actual list/grid switch */
.order-content-area.is-grid-view .ocard-menu-section{
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:18px;
  align-items:start;
}
.order-content-area.is-grid-view .ocard-menu-section h2{
  grid-column:1 / -1;
  margin-bottom:0;
}
.order-content-area.is-grid-view .hybrid-product{
  grid-template-columns:1fr;
  gap:12px;
  align-items:start;
  padding:14px;
  margin-bottom:0;
}
.order-content-area.is-grid-view .hybrid-product img{
  width:100%;
  height:180px;
}
.order-content-area.is-grid-view .hybrid-product-title{
  margin-bottom:6px;
}
.order-content-area.is-grid-view .hybrid-product h3{
  font-size:19px;
}
.order-content-area.is-grid-view .hybrid-product p{
  min-height:42px;
  margin-bottom:10px;
}
.order-content-area.is-grid-view .hybrid-product strong{
  font-size:20px;
}
.order-content-area.is-grid-view .hybrid-plus{
  position:absolute;
  right:14px;
  bottom:14px;
}
.order-content-area.is-grid-view .hybrid-product{
  position:relative;
  padding-bottom:62px;
}

@media (max-width:1200px){
  .order-search-tools{
    grid-template-columns:minmax(0,1fr) auto;
  }
}

@media (max-width:760px){
  .order-search-tools{
    grid-template-columns:1fr auto;
    gap:10px;
  }
  .order-view-toggle{
    grid-template-columns:repeat(2, 42px);
    padding:5px;
    border-radius:14px;
  }
  .order-view-toggle button{
    width:42px;
    height:42px;
  }
  .order-view-toggle button svg{
    width:19px;
    height:19px;
  }
  .order-content-area.is-grid-view .ocard-menu-section{
    grid-template-columns:1fr;
  }
  .order-content-area.is-grid-view .hybrid-product{
    grid-template-columns:78px minmax(0,1fr) 34px;
    position:static;
    padding:12px;
    margin-bottom:12px;
  }
  .order-content-area.is-grid-view .hybrid-product img{
    width:78px;
    height:78px;
  }
  .order-content-area.is-grid-view .hybrid-plus{
    position:static;
  }
  .order-content-area.is-grid-view .hybrid-product p{
    min-height:auto;
  }
}


/* v41 grid view count update */
.order-content-area.is-grid-view .ocard-menu-section{
  grid-template-columns:repeat(3, minmax(0,1fr));
}

@media (max-width:980px){
  .order-content-area.is-grid-view .ocard-menu-section{
    grid-template-columns:repeat(2, minmax(0,1fr));
  }
}

@media (max-width:760px){
  .order-content-area.is-grid-view .ocard-menu-section{
    grid-template-columns:repeat(2, minmax(0,1fr));
  }
  .order-content-area.is-grid-view .hybrid-product{
    grid-template-columns:1fr;
    position:relative;
    padding:12px 12px 56px;
    margin-bottom:0;
  }
  .order-content-area.is-grid-view .hybrid-product img{
    width:100%;
    height:136px;
  }
  .order-content-area.is-grid-view .hybrid-product h3{
    font-size:16px;
  }
  .order-content-area.is-grid-view .hybrid-product p{
    min-height:40px;
    font-size:12px;
    margin-bottom:8px;
  }
  .order-content-area.is-grid-view .hybrid-product strong{
    font-size:17px;
  }
  .order-content-area.is-grid-view .hybrid-plus{
    position:absolute;
    right:12px;
    bottom:12px;
  }
}

@media (max-width:420px){
  .order-content-area.is-grid-view .ocard-menu-section{
    grid-template-columns:repeat(2, minmax(0,1fr));
    gap:10px;
  }
  .order-content-area.is-grid-view .hybrid-product img{
    height:120px;
  }
}


/* v42 remove notice/store blocks + guide modal by order mode */
.order-left-sidebar{
  gap:16px;
}
.order-guide-button{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:10px;
  padding:18px 20px;
  cursor:pointer;
}
.order-guide-button span{
  font-size:16px;
  font-weight:900;
  color:#241b17;
}
.order-guide-button::before{
  content:"›";
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:20px;
  height:20px;
  color:#5a4a3f;
  font-size:22px;
  transform:rotate(90deg);
}
.order-right-sidebar{
  gap:0;
}
.order-hybrid-grid{
  grid-template-columns:240px minmax(0,1fr) 300px;
}
.order-toolbar-card{
  grid-template-columns:1.2fr 1fr 1fr;
}
.order-mode-tabs{
  grid-template-columns:repeat(3,1fr);
}
.order-mode-tabs button{
  transition:.18s ease;
}
.order-mode-tabs button.active{
  background:linear-gradient(180deg,#d78e43,#c46f2a);
  color:#fff;
  box-shadow:0 8px 18px rgba(196,111,42,.24);
}

/* guide modal */
.guide-modal{
  position:fixed;
  inset:0;
  z-index:135;
  display:none;
}
.guide-modal.is-open{
  display:block;
}
.guide-modal-backdrop{
  position:absolute;
  inset:0;
  background:rgba(42,24,16,.52);
}
.guide-modal-card{
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  width:min(calc(100% - 28px), 640px);
  border-radius:28px;
  background:#fffaf4;
  border:1px solid #ead4bf;
  box-shadow:0 24px 60px rgba(42,24,16,.18);
  overflow:hidden;
}
.guide-modal-close{
  position:absolute;
  right:14px;
  top:14px;
  width:40px;
  height:40px;
  border:0;
  border-radius:50%;
  background:#fff;
  color:#2b201a;
  font-size:28px;
  line-height:1;
  cursor:pointer;
  box-shadow:0 8px 24px rgba(0,0,0,.08);
}
.guide-modal-content{
  padding:28px 28px 26px;
}
.guide-modal-kicker{
  margin:0 0 8px;
  color:#b6672b;
  font-size:13px;
  font-weight:900;
  letter-spacing:.18em;
}
.guide-modal-content h2{
  margin:0 0 16px;
  color:#241b17;
  font-size:30px;
  line-height:1.2;
}
.guide-modal-body{
  color:#6f5c4e;
}
.guide-modal-body .guide-intro{
  margin:0 0 16px;
  line-height:1.7;
}
.guide-modal-list{
  display:grid;
  gap:10px;
}
.guide-modal-list .guide-item{
  display:grid;
  grid-template-columns:34px 1fr;
  gap:12px;
  align-items:start;
  padding:12px 14px;
  border-radius:18px;
  background:rgba(255,253,248,.92);
  border:1px solid #ead7c3;
}
.guide-modal-list .guide-num{
  display:grid;
  place-items:center;
  width:34px;
  height:34px;
  border-radius:50%;
  background:#fff4df;
  color:#a63a1e;
  font-weight:900;
}
.guide-modal-list strong{
  display:block;
  margin-bottom:4px;
  color:#241b17;
  font-size:15px;
}
.guide-modal-list p{
  margin:0;
  line-height:1.65;
}
.guide-modal-note{
  margin-top:16px;
  padding:14px 16px;
  border-radius:18px;
  background:linear-gradient(135deg,#fff5c9 0%, #ffe100 100%);
  color:#2f2416;
  line-height:1.7;
}

@media (max-width:1200px){
  .order-toolbar-card{
    grid-template-columns:1fr 1fr;
  }
}
@media (max-width:980px){
  .order-toolbar-card{
    grid-template-columns:1fr;
  }
  .order-hybrid-grid{
    grid-template-columns:1fr;
  }
}
@media (max-width:760px){
  .guide-modal-card{
    width:min(calc(100% - 18px), 640px);
    border-radius:22px;
  }
  .guide-modal-content{
    padding:24px 20px 22px;
  }
  .guide-modal-content h2{
    font-size:24px;
  }
  .guide-modal-list .guide-item{
    grid-template-columns:30px 1fr;
    gap:10px;
    padding:10px 12px;
  }
  .guide-modal-list .guide-num{
    width:30px;
    height:30px;
    font-size:13px;
  }
}


/* v43 product quantity badge placement */
.hybrid-product{
  position:relative;
}

.product-qty-badge{
  position:absolute;
  display:none;
  align-items:center;
  justify-content:center;
  min-width:28px;
  height:28px;
  padding:0 8px;
  border-radius:999px;
  background:#ffe100;
  color:#241b17;
  font-size:14px;
  font-weight:950;
  line-height:1;
  box-shadow:0 8px 18px rgba(255,225,0,.22);
  z-index:3;
}

.hybrid-product.has-qty .product-qty-badge{
  display:inline-flex;
}

/* list view: number sits on the plus button */
.order-content-area:not(.is-grid-view) .product-qty-badge{
  top:50%;
  right:22px;
  transform:translate(35%, -95%);
}

/* grid view: number sits at top-right corner */
.order-content-area.is-grid-view .product-qty-badge{
  top:12px;
  right:12px;
  transform:none;
}

@media (max-width:760px){
  .order-content-area:not(.is-grid-view) .product-qty-badge{
    right:14px;
    min-width:24px;
    height:24px;
    padding:0 6px;
    font-size:12px;
    transform:translate(30%, -90%);
  }

  .order-content-area.is-grid-view .product-qty-badge{
    top:10px;
    right:10px;
    min-width:24px;
    height:24px;
    padding:0 6px;
    font-size:12px;
  }
}


/* v44 refine quantity badge to match requested placement */
.product-qty-badge{
  min-width:36px;
  height:36px;
  padding:0 10px;
  border-radius:10px;
  background:#ffe100;
  color:#241b17;
  font-size:20px;
  font-weight:950;
  box-shadow:none;
}

/* 有數量時，加號隱藏，改顯示數量 */
.hybrid-product.has-qty .hybrid-plus{
  opacity:0;
  visibility:hidden;
  pointer-events:none;
}

/* 列表檢視：數量放在原本加號的位置 */
.order-content-area:not(.is-grid-view) .product-qty-badge{
  top:50%;
  right:18px;
  transform:translateY(-50%);
}

/* 井字 / 格狀檢視：數量在商品卡右上角 */
.order-content-area.is-grid-view .product-qty-badge{
  top:10px;
  right:10px;
  transform:none;
}

@media (max-width:760px){
  .product-qty-badge{
    min-width:32px;
    height:32px;
    padding:0 8px;
    border-radius:9px;
    font-size:18px;
  }

  .order-content-area:not(.is-grid-view) .product-qty-badge{
    right:12px;
    transform:translateY(-50%);
  }

  .order-content-area.is-grid-view .product-qty-badge{
    top:8px;
    right:8px;
  }
}


/* v45 category panel sticky desktop + left drawer mobile */
.order-category-mobile-wrap{
  position:sticky;
  top:108px;
  z-index:25;
}
.order-category-mobile-wrap .order-category-panel{
  position:static !important;
  top:auto !important;
}
.order-category-trigger,
.order-category-backdrop{
  display:none;
}

@media (max-width:980px){
  .order-category-mobile-wrap{
    position:static;
  }

  .order-category-trigger{
    position:fixed;
    left:0;
    top:38%;
    z-index:96;
    display:flex;
    align-items:center;
    justify-content:center;
    width:42px;
    min-height:132px;
    padding:14px 8px;
    border:0;
    border-radius:0 14px 14px 0;
    background:#2f2c2b;
    color:#fff;
    box-shadow:0 10px 24px rgba(0,0,0,.16);
    cursor:pointer;
  }

  .order-category-trigger span{
    writing-mode:vertical-rl;
    text-orientation:mixed;
    letter-spacing:.18em;
    font-size:13px;
    font-weight:900;
  }

  .order-category-backdrop{
    position:fixed;
    inset:0;
    z-index:94;
    background:rgba(24,19,16,.35);
    opacity:0;
    visibility:hidden;
    transition:.18s ease;
  }

  .order-category-panel{
    position:fixed !important;
    left:12px;
    top:78px !important;
    bottom:88px;
    z-index:95;
    width:min(260px, calc(100vw - 64px));
    overflow:auto;
    transform:translateX(calc(-100% - 24px));
    transition:transform .22s ease;
    box-shadow:0 20px 45px rgba(42,24,16,.18);
    background:rgba(255,253,248,.98);
  }

  body.category-panel-open{
    overflow:hidden;
  }

  body.category-panel-open .order-category-backdrop{
    opacity:1;
    visibility:visible;
  }

  body.category-panel-open .order-category-panel{
    transform:translateX(0);
  }

  body.category-panel-open .order-category-trigger{
    opacity:0;
    pointer-events:none;
  }

  .order-category-list{
    grid-template-columns:1fr !important;
  }

  .order-category-list a{
    padding:14px 14px;
  }
}

@media (max-width:520px){
  .order-category-trigger{
    width:38px;
    min-height:120px;
    top:40%;
    padding:12px 7px;
  }

  .order-category-trigger span{
    font-size:12px;
  }

  .order-category-panel{
    left:10px;
    top:72px !important;
    width:min(235px, calc(100vw - 56px));
    bottom:84px;
    padding:18px;
    border-radius:22px;
  }

  .order-category-panel h2{
    font-size:20px;
    margin-bottom:14px;
  }
}


/* v46 fix category sticky on desktop + reliable mobile drawer */
.order-category-mobile-wrap{
  position:static !important;
  top:auto !important;
  z-index:auto;
}

.order-category-mobile-wrap .order-category-panel{
  position:sticky !important;
  top:108px !important;
}

/* desktop keeps regular category card */
.order-category-trigger,
.order-category-backdrop{
  display:none;
}

/* mobile drawer behavior */
@media (max-width:980px){
  .order-category-trigger{
    position:fixed;
    left:0;
    top:38%;
    z-index:120;
    display:flex !important;
    align-items:center;
    justify-content:center;
    width:42px;
    min-height:132px;
    padding:14px 8px;
    border:0;
    border-radius:0 14px 14px 0;
    background:#2f2c2b;
    color:#fff;
    box-shadow:0 10px 24px rgba(0,0,0,.16);
    cursor:pointer;
  }

  .order-category-trigger span{
    writing-mode:vertical-rl;
    text-orientation:mixed;
    letter-spacing:.18em;
    font-size:13px;
    font-weight:900;
  }

  .order-category-backdrop{
    position:fixed;
    inset:0;
    z-index:118;
    display:block !important;
    background:rgba(24,19,16,.35);
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transition:.2s ease;
  }

  .order-category-mobile-wrap .order-category-panel{
    position:fixed !important;
    left:10px;
    top:78px !important;
    bottom:88px;
    z-index:119;
    width:min(260px, calc(100vw - 60px));
    overflow:auto;
    transform:translateX(calc(-100% - 24px));
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transition:transform .22s ease, opacity .18s ease, visibility .18s ease;
    box-shadow:0 20px 45px rgba(42,24,16,.18);
    background:rgba(255,253,248,.98);
  }

  .order-category-mobile-wrap .order-category-panel.is-open{
    transform:translateX(0);
    opacity:1;
    visibility:visible;
    pointer-events:auto;
  }

  .order-category-backdrop.is-open{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
  }

  body.category-panel-open{
    overflow:hidden;
  }

  body.category-panel-open .order-category-trigger{
    opacity:0;
    pointer-events:none;
  }

  .order-category-list{
    grid-template-columns:1fr !important;
  }
}

@media (max-width:520px){
  .order-category-trigger{
    width:38px;
    min-height:120px;
    top:40%;
    padding:12px 7px;
  }

  .order-category-trigger span{
    font-size:12px;
  }

  .order-category-mobile-wrap .order-category-panel{
    left:10px;
    top:72px !important;
    width:min(235px, calc(100vw - 56px));
    bottom:84px;
    padding:18px;
    border-radius:22px;
  }
}


/* v47 desktop category sticky fix */
@media (min-width:981px){
  .order-left-sidebar{
    position: sticky;
    top: 108px;
    align-self: start;
    height: fit-content;
  }

  .order-category-mobile-wrap{
    position: static !important;
  }

  .order-category-mobile-wrap .order-category-panel{
    position: static !important;
    top: auto !important;
  }
}


/* v58 back to top button */
.back-to-top{
  position:fixed;
  right:26px;
  bottom:26px;
  z-index:120;
  width:58px;
  height:58px;
  border:1px solid rgba(216,185,148,.9);
  border-radius:50%;
  background:linear-gradient(180deg,#d88b3a,#bd6727);
  color:#fff;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:1px;
  cursor:pointer;
  box-shadow:0 16px 34px rgba(92,48,24,.22);
  opacity:0;
  visibility:hidden;
  transform:translateY(14px) scale(.94);
  transition:opacity .2s ease, visibility .2s ease, transform .2s ease, box-shadow .2s ease;
}

.back-to-top.is-visible{
  opacity:1;
  visibility:visible;
  transform:translateY(0) scale(1);
}

.back-to-top:hover{
  transform:translateY(-3px) scale(1.03);
  box-shadow:0 20px 40px rgba(92,48,24,.28);
}

.back-to-top span{
  font-size:23px;
  line-height:1;
  font-weight:900;
}

.back-to-top strong{
  font-size:10px;
  line-height:1;
  letter-spacing:.08em;
  font-weight:900;
}

@media (max-width:980px){
  .back-to-top{
    right:16px;
    bottom:86px;
    width:52px;
    height:52px;
  }
}

@media (max-width:520px){
  .back-to-top{
    right:14px;
    bottom:82px;
    width:48px;
    height:48px;
  }

  .back-to-top span{
    font-size:21px;
  }

  .back-to-top strong{
    font-size:9px;
  }
}


/* v59 back-to-top visibility fix */
.back-to-top{
  opacity:1 !important;
  visibility:visible !important;
  transform:translateY(0) scale(1) !important;
}

.back-to-top.is-hidden{
  opacity:0 !important;
  visibility:hidden !important;
  transform:translateY(14px) scale(.94) !important;
}

@media (max-width:980px){
  .back-to-top{
    bottom:86px !important;
  }
}





@media (max-width:760px){
  .order-select-row{
    min-height:64px;
    padding:12px 14px;
    grid-template-columns:28px 82px minmax(0,1fr);
    gap:10px;
    border-radius:16px;
  }

  .order-info-icon{
    font-size:22px;
  }

  .order-native-select{
    min-height:42px;
    font-size:15px;
  }

  .reserve-layout{
    grid-template-columns:1fr;
    gap:10px;
  }

  .reserve-card{
    min-height:92px;
    padding:14px;
    border-radius:16px;
    grid-template-columns:28px minmax(0,1fr);
    gap:10px;
  }

  .reserve-card-icon{
    margin-top:6px;
    font-size:20px;
  }

  .reserve-select{
    min-height:46px;
    font-size:16px;
  }

  .order-address-card{
    min-height:72px;
    padding:14px;
    border-radius:16px;
    grid-template-columns:28px minmax(0,1fr) 16px;
    gap:10px;
  }

  .order-address-body strong{
    font-size:16px;
  }
}


/* v62 order info panel redesign */
.order-extra-panel{
  width:min(100%, 1000px);
  margin:0 0 24px;
}

.order-info-card{
  display:none;
}

.order-delivery-shell{
  padding:20px;
  border-radius:26px;
  background:linear-gradient(180deg, rgba(255,253,248,.95), rgba(251,246,239,.96));
  border:1px solid #ead7c3;
  box-shadow:0 16px 34px rgba(92,48,24,.06);
  display:grid;
  gap:16px;
}

.order-extra-head{
  display:grid;
  gap:5px;
}

.order-extra-kicker{
  color:#c37b33;
  font-size:12px;
  font-weight:900;
  letter-spacing:.16em;
}

.order-extra-head h3{
  margin:0;
  color:#241b17;
  font-size:28px;
  line-height:1.1;
}

.order-extra-head p{
  margin:0;
  color:#8a6b57;
  font-size:14px;
  line-height:1.6;
}

.order-primary-row{
  display:grid;
  grid-template-columns:1.05fr 1fr;
  gap:14px;
}

.order-field-card,
.reserve-card,
.order-address-card{
  min-height:88px;
  padding:16px 18px;
  border-radius:20px;
  border:1px solid #eadfce;
  background:#ffffff;
  box-shadow:0 8px 18px rgba(92,48,24,.04);
  box-sizing:border-box;
}

.order-field-card{
  display:grid;
  grid-template-columns:34px minmax(0,1fr);
  align-items:center;
  gap:12px;
}

.order-field-icon,
.reserve-card-icon,
.order-address-icon{
  display:grid;
  place-items:center;
  color:#27221d;
  font-size:23px;
  line-height:1;
}

.order-field-body,
.reserve-card-body,
.order-address-body{
  display:grid;
  gap:8px;
  min-width:0;
}

.order-field-label,
.reserve-card-label,
.order-address-label{
  color:#8d8a86;
  font-size:14px;
}

.order-select-wrap{
  position:relative;
}

.order-select-wrap::after{
  content:"⌄";
  position:absolute;
  top:50%;
  right:14px;
  transform:translateY(-50%);
  color:#8b7f72;
  font-size:18px;
  pointer-events:none;
}

.order-native-select{
  width:100%;
  min-height:48px;
  padding:0 42px 0 16px;
  border:0;
  border-radius:14px;
  background:#fbf7f1;
  box-shadow:inset 0 0 0 1px #eadfce;
  color:#241f1b;
  font-size:17px;
  font-weight:900;
  appearance:none;
  -webkit-appearance:none;
  outline:0;
  cursor:pointer;
}

.reserve-layout{
  display:none;
  grid-template-columns:1fr 1fr;
  gap:14px;
}

.reserve-layout.is-active{
  display:grid;
}

.reserve-card{
  display:grid;
  grid-template-columns:34px minmax(0,1fr);
  align-items:start;
  gap:12px;
}

.reserve-select{
  min-height:50px;
  font-size:16px;
}

.order-address-card{
  width:100%;
  text-align:left;
  cursor:pointer;
  display:grid;
  grid-template-columns:34px minmax(0,1fr) 18px;
  align-items:center;
  gap:12px;
  border:1px solid #eadfce;
}

.order-address-card.compact{
  min-height:88px;
}

.order-address-card.full{
  background:#fffaf3;
}

.order-address-body strong{
  color:#241b17;
  font-size:17px;
  font-weight:950;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.order-address-arrow{
  color:#8d8a86;
  font-size:24px;
  text-align:right;
}

/* Only show for delivery mode */
.order-extra-panel.is-delivery .order-info-card{
  display:block;
}
.order-extra-panel.is-pickup .order-info-card,
.order-extra-panel.is-dinein .order-info-card{
  display:none;
}

@media (max-width:980px){
  .order-extra-panel{
    width:100%;
    margin-bottom:18px;
  }

  .order-delivery-shell{
    padding:16px;
    border-radius:22px;
  }

  .order-extra-head h3{
    font-size:24px;
  }

  .order-primary-row{
    grid-template-columns:1fr;
  }
}

@media (max-width:760px){
  .order-delivery-shell{
    padding:14px;
    gap:12px;
    border-radius:18px;
  }

  .order-extra-head h3{
    font-size:22px;
  }

  .order-extra-head p{
    font-size:13px;
  }

  .order-field-card,
  .reserve-card,
  .order-address-card{
    min-height:76px;
    padding:14px;
    border-radius:16px;
  }

  .order-field-card,
  .reserve-card{
    grid-template-columns:28px minmax(0,1fr);
    gap:10px;
  }

  .order-field-icon,
  .reserve-card-icon,
  .order-address-icon{
    font-size:21px;
  }

  .order-native-select{
    min-height:44px;
    font-size:15px;
  }

  .reserve-layout{
    grid-template-columns:1fr;
    gap:10px;
  }

  .order-address-card{
    grid-template-columns:28px minmax(0,1fr) 16px;
    gap:10px;
  }

  .order-address-body strong{
    font-size:15px;
  }
}


/* v63 delivery panel clean redesign */
.order-extra-panel{
  width:min(100%, 1000px) !important;
  margin:0 0 22px !important;
}

.order-info-card{
  display:none;
}

.order-extra-panel.is-delivery .order-info-card{
  display:block !important;
}

.order-extra-panel.is-pickup .order-info-card,
.order-extra-panel.is-dinein .order-info-card{
  display:none !important;
}

.delivery-clean-card{
  padding:18px;
  border-radius:26px;
  background:rgba(255,253,248,.94);
  border:1px solid #e8d1b6;
  box-shadow:0 16px 34px rgba(92,48,24,.055);
}

.delivery-clean-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin-bottom:14px;
}

.delivery-clean-kicker{
  display:block;
  color:#c37b33;
  font-size:12px;
  font-weight:950;
  letter-spacing:.16em;
  margin-bottom:4px;
}

.delivery-clean-head h3{
  margin:0;
  color:#241b17;
  font-size:24px;
  line-height:1.15;
}

.delivery-clean-pill{
  display:inline-flex;
  align-items:center;
  min-height:34px;
  padding:0 14px;
  border-radius:999px;
  background:#fff4e5;
  border:1px solid #e6c6a7;
  color:#9a4d24;
  font-size:13px;
  font-weight:950;
  white-space:nowrap;
}

.delivery-clean-main{
  display:grid;
  grid-template-columns:1fr 1.2fr;
  gap:12px;
}

.delivery-clean-field{
  min-height:82px;
  padding:14px 16px;
  border-radius:20px;
  background:#fffaf3;
  border:1px solid #ead8c3;
  display:grid;
  grid-template-columns:28px minmax(0,1fr);
  grid-template-areas:
    "icon label"
    "icon value";
  gap:5px 12px;
  align-items:center;
  box-sizing:border-box;
}

.delivery-clean-icon{
  grid-area:icon;
  width:28px;
  height:28px;
  display:grid;
  place-items:center;
  color:#2c2520;
  font-size:21px;
}

.delivery-clean-label{
  grid-area:label;
  color:#927b69;
  font-size:13px;
  line-height:1.2;
}

.delivery-clean-field .order-select-wrap{
  grid-area:value;
  min-width:0;
}

.delivery-clean-field .order-native-select{
  min-height:40px;
  padding-left:0;
  padding-right:32px;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  color:#241b17;
  font-size:18px;
  font-weight:950;
}

.delivery-clean-field .order-select-wrap::after{
  right:2px;
  color:#8d7b6b;
}

.address-field-card{
  width:100%;
  border:1px solid #ead8c3;
  text-align:left;
  cursor:pointer;
  grid-template-columns:28px minmax(0,1fr) 18px;
  grid-template-areas:
    "icon label arrow"
    "icon value arrow";
}

.address-field-card strong{
  grid-area:value;
  color:#241b17;
  font-size:18px;
  font-weight:950;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.delivery-clean-arrow{
  grid-area:arrow;
  color:#9a8877;
  font-size:24px;
  align-self:center;
  justify-self:end;
}

.delivery-reserve-row{
  display:none;
  grid-template-columns:1fr 1fr;
  gap:12px;
  margin-top:12px;
}

.delivery-reserve-row.is-active{
  display:grid;
}

.delivery-clean-field.small{
  min-height:74px;
}

.delivery-clean-field.small .order-native-select{
  font-size:17px;
}

.delivery-note-link{
  width:100%;
  min-height:48px;
  margin-top:12px;
  padding:0 16px;
  border:1px dashed #d9b58d;
  border-radius:16px;
  background:rgba(255,247,237,.7);
  color:#6f5a48;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  cursor:pointer;
  text-align:left;
}

.delivery-note-link span{
  font-size:14px;
  font-weight:800;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.delivery-note-link b{
  color:#a05024;
  font-size:13px;
  white-space:nowrap;
}

@media (max-width:980px){
  .order-extra-panel{
    width:100% !important;
  }

  .delivery-clean-main{
    grid-template-columns:1fr;
  }
}

@media (max-width:760px){
  .delivery-clean-card{
    padding:14px;
    border-radius:20px;
  }

  .delivery-clean-head{
    align-items:flex-start;
    margin-bottom:12px;
  }

  .delivery-clean-head h3{
    font-size:21px;
  }

  .delivery-clean-pill{
    min-height:30px;
    padding:0 11px;
    font-size:12px;
  }

  .delivery-clean-field{
    min-height:72px;
    padding:12px 13px;
    border-radius:16px;
    grid-template-columns:24px minmax(0,1fr);
    gap:4px 10px;
  }

  .delivery-clean-icon{
    width:24px;
    height:24px;
    font-size:19px;
  }

  .delivery-clean-field .order-native-select,
  .address-field-card strong{
    font-size:16px;
  }

  .delivery-reserve-row{
    grid-template-columns:1fr;
    gap:10px;
  }

  .delivery-clean-field.small{
    min-height:68px;
  }

  .delivery-note-link{
    min-height:44px;
    border-radius:14px;
  }

  .delivery-note-link span{
    font-size:13px;
  }
}


/* v64 delivery panel: less AI, more practical shop-order layout */
.delivery-natural-panel{
  width:min(100%, 900px) !important;
  margin:0 0 22px !important;
}

.delivery-natural-panel .order-info-card{
  display:none;
}

.delivery-natural-panel.is-delivery .order-info-card{
  display:block !important;
}

.delivery-natural-panel.is-pickup .order-info-card,
.delivery-natural-panel.is-dinein .order-info-card{
  display:none !important;
}

.delivery-natural-card{
  padding:18px 20px;
  border-radius:22px;
  background:#fffdf8;
  border:1px solid #e6d2ba;
  box-shadow:0 12px 26px rgba(92,48,24,.045);
}

.delivery-natural-title{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:16px;
  padding-bottom:12px;
  margin-bottom:10px;
  border-bottom:1px dashed #ddc4aa;
}

.delivery-natural-title h3{
  margin:0;
  color:#241b17;
  font-size:21px;
  line-height:1.2;
  font-weight:950;
}

.delivery-natural-title p{
  margin:0;
  color:#8a7363;
  font-size:13px;
  line-height:1.5;
}

.delivery-natural-list{
  display:grid;
  gap:0;
}

.delivery-natural-row{
  min-height:64px;
  padding:11px 0;
  border:0;
  border-bottom:1px solid #efe1d1;
  background:transparent;
  display:grid;
  grid-template-columns:30px 82px minmax(0,1fr) 20px;
  gap:10px;
  align-items:center;
  text-align:left;
  box-sizing:border-box;
}

.delivery-natural-row:last-child{
  border-bottom:0;
}

.delivery-natural-icon{
  display:grid;
  place-items:center;
  color:#7d4a2a;
  font-size:20px;
  line-height:1;
}

.delivery-natural-label{
  color:#8a7363;
  font-size:14px;
  white-space:nowrap;
}

.delivery-natural-row .order-select-wrap{
  min-width:0;
}

.delivery-natural-row .order-select-wrap::after{
  right:12px;
  color:#9a806c;
}

.delivery-natural-row .order-native-select{
  min-height:42px;
  padding:0 38px 0 14px;
  border-radius:12px;
  background:#fbf7f1;
  box-shadow:inset 0 0 0 1px #ead8c3;
  color:#241b17;
  font-size:16px;
  font-weight:900;
}

.delivery-natural-reserve{
  display:none;
  grid-template-columns:1fr 1fr;
  gap:14px;
  padding:10px 0;
  border-bottom:1px solid #efe1d1;
}

.delivery-natural-reserve.is-active{
  display:grid;
}

.delivery-natural-row.compact{
  min-height:58px;
  padding:0;
  border-bottom:0;
  grid-template-columns:28px 48px minmax(0,1fr);
}

.delivery-natural-row.compact .order-native-select{
  min-height:40px;
  font-size:15px;
}

.delivery-natural-row.address{
  width:100%;
  cursor:pointer;
}

.delivery-natural-row.address strong{
  min-width:0;
  color:#241b17;
  font-size:16px;
  font-weight:950;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.delivery-natural-arrow{
  color:#9a806c;
  font-size:22px;
  text-align:right;
}

.delivery-natural-note{
  justify-self:start;
  margin-top:12px;
  padding:9px 13px;
  border:1px solid #e4c5a6;
  border-radius:999px;
  background:#fff7ed;
  color:#9a4d24;
  font-size:13px;
  font-weight:900;
  cursor:pointer;
}

.delivery-natural-note:hover{
  background:#f5e2cd;
}

@media (max-width:980px){
  .delivery-natural-panel{
    width:100% !important;
  }

  .delivery-natural-title{
    align-items:flex-start;
    flex-direction:column;
    gap:4px;
  }
}

@media (max-width:760px){
  .delivery-natural-card{
    padding:15px 14px;
    border-radius:18px;
  }

  .delivery-natural-title h3{
    font-size:19px;
  }

  .delivery-natural-row{
    min-height:60px;
    grid-template-columns:26px 72px minmax(0,1fr) 16px;
    gap:8px;
  }

  .delivery-natural-icon{
    font-size:18px;
  }

  .delivery-natural-label{
    font-size:13px;
  }

  .delivery-natural-row .order-native-select{
    min-height:40px;
    font-size:15px;
  }

  .delivery-natural-reserve{
    grid-template-columns:1fr;
    gap:9px;
  }

  .delivery-natural-row.compact{
    grid-template-columns:26px 44px minmax(0,1fr);
  }

  .delivery-natural-row.address strong{
    font-size:15px;
  }

  .delivery-natural-note{
    width:100%;
    justify-content:center;
    text-align:center;
  }
}


/* v65 delivery panel refined: cleaner layout + proper SVG icons */
.delivery-refined-panel{
  width:min(100%, 880px) !important;
  margin:0 0 22px !important;
}

.delivery-refined-panel .order-info-card{
  display:none;
}

.delivery-refined-panel.is-delivery .order-info-card{
  display:block !important;
}

.delivery-refined-panel.is-pickup .order-info-card,
.delivery-refined-panel.is-dinein .order-info-card{
  display:none !important;
}

.delivery-refined-card{
  padding:18px;
  border-radius:22px;
  background:#fffdf8;
  border:1px solid #e6d2ba;
  box-shadow:0 10px 24px rgba(92,48,24,.045);
}

.delivery-refined-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:12px;
  margin-bottom:14px;
  padding-bottom:12px;
  border-bottom:1px solid #ead8c3;
}

.delivery-refined-head h3{
  margin:0 0 4px;
  color:#241b17;
  font-size:21px;
  line-height:1.2;
  font-weight:950;
}

.delivery-refined-head p{
  margin:0;
  color:#8a7363;
  font-size:13px;
  line-height:1.5;
}

.delivery-refined-grid,
.delivery-refined-reserve{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}

.delivery-refined-reserve{
  display:none;
  margin-top:12px;
}

.delivery-refined-reserve.is-active{
  display:grid;
}

.delivery-refined-item{
  min-height:70px;
  padding:12px 14px;
  border:1px solid #ead8c3;
  border-radius:16px;
  background:#fffaf3;
  display:grid;
  grid-template-columns:26px minmax(0,1fr) 16px;
  grid-template-areas:
    "icon label arrow"
    "icon value arrow";
  gap:4px 10px;
  align-items:center;
  box-sizing:border-box;
  text-align:left;
}

.delivery-refined-item.small{
  min-height:66px;
}

.delivery-refined-icon{
  grid-area:icon;
  width:26px;
  height:26px;
  display:grid;
  place-items:center;
  color:#9a4d24;
}

.delivery-refined-icon svg{
  width:21px;
  height:21px;
  display:block;
}

.delivery-refined-label{
  grid-area:label;
  color:#927b69;
  font-size:13px;
  line-height:1.2;
}

.delivery-refined-item .order-select-wrap{
  grid-area:value;
  min-width:0;
}

.delivery-refined-item .order-select-wrap::after{
  right:4px;
  color:#9a806c;
}

.delivery-refined-item .order-native-select{
  min-height:34px;
  padding:0 28px 0 0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  color:#241b17;
  font-size:16px;
  font-weight:950;
}

.delivery-refined-address{
  width:100%;
  border:1px solid #ead8c3;
  cursor:pointer;
}

.delivery-refined-address strong{
  grid-area:value;
  color:#241b17;
  font-size:16px;
  font-weight:950;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.delivery-refined-arrow{
  grid-area:arrow;
  color:#9a806c;
  font-size:22px;
  justify-self:end;
}

.delivery-refined-note{
  width:100%;
  min-height:44px;
  margin-top:12px;
  padding:0 14px;
  border:1px dashed #d8b58d;
  border-radius:14px;
  background:#fff7ed;
  color:#7a5d48;
  display:grid;
  grid-template-columns:24px 1fr auto;
  gap:8px;
  align-items:center;
  text-align:left;
  cursor:pointer;
}

.delivery-refined-note .delivery-refined-icon{
  width:24px;
  height:24px;
}

.delivery-refined-note .delivery-refined-icon svg{
  width:19px;
  height:19px;
}

.delivery-refined-note span:not(.delivery-refined-icon){
  font-size:13px;
  font-weight:800;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.delivery-refined-note b{
  color:#9a4d24;
  font-size:13px;
  white-space:nowrap;
}

@media (max-width:980px){
  .delivery-refined-panel{
    width:100% !important;
  }
}

@media (max-width:760px){
  .delivery-refined-card{
    padding:14px;
    border-radius:18px;
  }

  .delivery-refined-grid,
  .delivery-refined-reserve{
    grid-template-columns:1fr;
    gap:10px;
  }

  .delivery-refined-head h3{
    font-size:19px;
  }

  .delivery-refined-item{
    min-height:64px;
    grid-template-columns:24px minmax(0,1fr) 16px;
    padding:11px 12px;
  }

  .delivery-refined-icon{
    width:24px;
    height:24px;
  }

  .delivery-refined-icon svg{
    width:19px;
    height:19px;
  }

  .delivery-refined-item .order-native-select,
  .delivery-refined-address strong{
    font-size:15px;
  }

  .delivery-refined-note{
    grid-template-columns:22px 1fr auto;
  }

  .delivery-refined-note span:not(.delivery-refined-icon){
    font-size:12px;
  }
}


/* v66 delivery panel relayout - more practical and less "AI" */
.delivery-compact-panel{
  width:100% !important;
  max-width:none !important;
  margin:0 0 22px !important;
}

.delivery-compact-panel .order-info-card{
  display:none;
}

.delivery-compact-panel.is-delivery .order-info-card{
  display:block !important;
}

.delivery-compact-panel.is-pickup .order-info-card,
.delivery-compact-panel.is-dinein .order-info-card{
  display:none !important;
}

.delivery-compact-card{
  width:100%;
  max-width:none !important;
  padding:18px 20px;
  border-radius:22px;
  background:#fffdf9;
  border:1px solid #e6d2ba;
}

.delivery-compact-head{
  padding-bottom:12px;
  border-bottom:1px solid #ead8c3;
  margin-bottom:2px;
}

.delivery-compact-head h3{
  margin:0 0 4px;
  color:#241b17;
  font-size:22px;
  line-height:1.2;
  font-weight:950;
}

.delivery-compact-head p{
  margin:0;
  color:#8a7363;
  font-size:13px;
}

.delivery-compact-stack{
  display:grid;
}

.delivery-compact-line{
  min-height:72px;
  padding:0 4px;
  border-bottom:1px solid #efe1d1;
  background:transparent;
  display:grid;
  grid-template-columns:28px 96px minmax(0, 1fr) 18px;
  gap:12px;
  align-items:center;
  text-align:left;
  border-radius:0;
}

.delivery-compact-line.address{
  width:100%;
  border:0;
  cursor:pointer;
}

.delivery-compact-icon{
  width:28px;
  height:28px;
  display:grid;
  place-items:center;
  color:#b4602d;
}

.delivery-compact-icon svg{
  width:20px;
  height:20px;
  display:block;
}

.delivery-compact-label{
  color:#8c7564;
  font-size:14px;
  white-space:nowrap;
}

.delivery-compact-control{
  min-width:0;
}

.delivery-compact-line .order-select-wrap::after,
.delivery-compact-subline .order-select-wrap::after{
  right:10px;
  color:#9a806c;
}

.delivery-compact-line .order-native-select,
.delivery-compact-subline .order-native-select{
  min-height:44px;
  padding:0 36px 0 14px;
  border-radius:12px;
  background:#fbf7f1;
  box-shadow:inset 0 0 0 1px #ead8c3;
  color:#241b17;
  font-size:16px;
  font-weight:900;
}

.delivery-compact-reserve{
  display:none;
  grid-template-columns:1fr 1fr;
  gap:12px;
  padding:14px 0;
  border-bottom:1px solid #efe1d1;
}

.delivery-compact-reserve.is-active{
  display:grid;
}

.delivery-compact-subline{
  min-height:72px;
  padding:0 14px;
  border:1px solid #ead8c3;
  border-radius:16px;
  background:#fffaf3;
  display:grid;
  grid-template-columns:28px 56px minmax(0,1fr);
  gap:10px;
  align-items:center;
}

.delivery-compact-address-text{
  min-width:0;
}

.delivery-compact-address-text strong{
  color:#241b17;
  font-size:17px;
  font-weight:950;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.delivery-compact-arrow{
  color:#9a806c;
  font-size:24px;
  justify-self:end;
}

.delivery-compact-note{
  min-height:52px;
  margin-top:10px;
  padding:0 14px;
  border:1px dashed #d9b58d;
  border-radius:14px;
  background:#fff8ef;
  display:grid;
  grid-template-columns:24px 1fr auto;
  gap:10px;
  align-items:center;
  text-align:left;
  cursor:pointer;
}

.delivery-compact-note .delivery-compact-icon{
  width:24px;
  height:24px;
}

.delivery-compact-note .delivery-compact-icon svg{
  width:18px;
  height:18px;
}

.delivery-compact-note span:nth-child(2){
  color:#775c49;
  font-size:13px;
  font-weight:800;
}

.delivery-compact-note b{
  color:#9a4d24;
  font-size:13px;
  white-space:nowrap;
}

@media (max-width:980px){
  .delivery-compact-card{
    max-width:none;
  }
}

@media (max-width:760px){
  .delivery-compact-card{
    padding:14px;
    border-radius:18px;
  }

  .delivery-compact-head h3{
    font-size:20px;
  }

  .delivery-compact-line{
    min-height:64px;
    grid-template-columns:24px 72px minmax(0,1fr) 16px;
    gap:8px;
  }

  .delivery-compact-icon{
    width:24px;
    height:24px;
  }

  .delivery-compact-icon svg{
    width:18px;
    height:18px;
  }

  .delivery-compact-label{
    font-size:13px;
  }

  .delivery-compact-line .order-native-select,
  .delivery-compact-subline .order-native-select{
    min-height:40px;
    font-size:15px;
  }

  .delivery-compact-reserve{
    grid-template-columns:1fr;
    gap:10px;
  }

  .delivery-compact-subline{
    min-height:64px;
    grid-template-columns:24px 48px minmax(0,1fr);
    padding:0 12px;
  }

  .delivery-compact-address-text strong{
    font-size:15px;
  }

  .delivery-compact-note{
    min-height:48px;
    grid-template-columns:22px 1fr auto;
    gap:8px;
  }

  .delivery-compact-note span:nth-child(2),
  .delivery-compact-note b{
    font-size:12px;
  }
}


/* v68 address modal styling */
.address-modal{
  position:fixed;
  inset:0;
  z-index:140;
  display:none;
}
.address-modal.is-open{
  display:block;
}
.address-modal-backdrop{
  position:absolute;
  inset:0;
  background:rgba(42,24,16,.48);
}
.address-modal-card{
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  width:min(calc(100% - 28px), 640px);
  padding:26px;
  border-radius:28px;
  background:#fffaf4;
  border:1px solid #ead4bf;
  box-shadow:0 24px 60px rgba(42,24,16,.18);
}
.address-modal-close{
  position:absolute;
  right:14px;
  top:14px;
  width:40px;
  height:40px;
  border:0;
  border-radius:50%;
  background:#fff;
  color:#2b201a;
  font-size:28px;
  line-height:1;
  cursor:pointer;
  box-shadow:0 8px 24px rgba(0,0,0,.08);
}
.address-modal-card h2{
  margin:0 0 18px;
  color:#241b17;
  font-size:30px;
  line-height:1.2;
}
.address-field{
  display:grid;
  grid-template-columns:22px 1fr;
  align-items:center;
  gap:12px;
  min-height:58px;
  margin-bottom:14px;
  padding:0 16px;
  border-radius:16px;
  background:#fff;
  border:1px solid #ead4bf;
}
.address-icon{
  display:grid;
  place-items:center;
  color:#9a4d24;
  font-size:18px;
}
.address-field input{
  width:100%;
  border:0;
  outline:none;
  background:transparent;
  color:#241b17;
  font-size:16px;
}
.address-field input::placeholder{
  color:#9b8a7a;
}
.address-save-btn{
  width:100%;
  min-height:52px;
  border:0;
  border-radius:16px;
  background:linear-gradient(180deg,#d78e43,#c46f2a);
  color:#fff;
  font-size:18px;
  font-weight:900;
  cursor:pointer;
  box-shadow:0 10px 24px rgba(196,111,42,.22);
}
@media (max-width:760px){
  .address-modal-card{
    width:min(calc(100% - 20px), 640px);
    padding:22px 16px 18px;
    border-radius:22px;
  }
  .address-modal-card h2{
    font-size:24px;
  }
  .address-field{
    min-height:54px;
    padding:0 14px;
  }
}


/* v69 note row is now a real textarea */
.delivery-note-textarea{
  align-items:start !important;
  padding:12px 14px !important;
  min-height:88px !important;
  cursor:text !important;
  background:#fffaf3 !important;
}

.delivery-note-textarea .delivery-compact-icon{
  margin-top:3px;
}

.delivery-note-body{
  display:grid;
  gap:8px;
  min-width:0;
}

.delivery-note-body span{
  color:#775c49;
  font-size:13px;
  font-weight:900;
}

.delivery-note-body textarea{
  width:100%;
  min-height:46px;
  resize:vertical;
  border:0;
  outline:none;
  background:transparent;
  color:#241b17;
  font-size:15px;
  line-height:1.55;
  padding:0;
}

.delivery-note-body textarea::placeholder{
  color:#a79585;
}

.delivery-note-textarea b{
  display:none !important;
}

@media (max-width:760px){
  .delivery-note-textarea{
    min-height:86px !important;
    padding:11px 12px !important;
  }

  .delivery-note-body textarea{
    font-size:14px;
  }
}


/* v70 pickup immediate / reserve behavior + stronger full-width extra panel */
.order-page .order-extra-panel.delivery-compact-panel{
  width:100% !important;
  max-width:none !important;
}
.order-page .delivery-compact-card{
  width:100%;
  max-width:none !important;
}
.order-extra-panel.is-delivery .order-info-card:first-child{
  display:block !important;
}
.order-extra-panel.is-delivery .pickup-info-card,
.order-extra-panel.is-dinein .pickup-info-card,
.order-extra-panel.is-dinein .order-info-card:first-child,
.order-extra-panel.is-pickup .order-info-card:first-child{
  display:none !important;
}
.order-extra-panel.is-pickup .pickup-info-card{
  display:block !important;
}
.pickup-compact-card{
  background:#fffdf9;
}
.pickup-head h3{
  margin:0 0 4px;
}
.pickup-wait-card{
  display:grid;
  grid-template-columns:28px 1fr;
  gap:12px;
  align-items:start;
  min-height:86px;
  padding:16px 18px;
  border:1px solid #ead8c3;
  border-radius:16px;
  background:#fffaf3;
}
.pickup-wait-card.is-hidden{
  display:none !important;
}
.pickup-wait-icon{
  width:28px;
  height:28px;
  color:#b4602d;
  display:grid;
  place-items:center;
  margin-top:2px;
}
.pickup-wait-icon svg{
  width:20px;
  height:20px;
  display:block;
}
.pickup-wait-body strong{
  display:block;
  margin:0 0 4px;
  color:#241b17;
  font-size:19px;
  line-height:1.35;
  font-weight:950;
}
.pickup-wait-body p{
  margin:0;
  color:#7a6759;
  font-size:14px;
  line-height:1.7;
}
.pickup-reserve{
  border-bottom:0;
  padding-bottom:0;
}
@media (max-width:760px){
  .pickup-wait-card{
    min-height:78px;
    grid-template-columns:24px 1fr;
    gap:10px;
    padding:14px;
  }
  .pickup-wait-icon{
    width:24px;
    height:24px;
  }
  .pickup-wait-icon svg{
    width:18px;
    height:18px;
  }
  .pickup-wait-body strong{
    font-size:17px;
  }
  .pickup-wait-body p{
    font-size:13px;
  }
}


/* v71 dine-in panel */
.order-extra-panel.is-delivery > .dinein-info-card,
.order-extra-panel.is-pickup > .dinein-info-card{
  display:none !important;
}
.order-extra-panel.is-dinein > .dinein-info-card{
  display:block !important;
}
.order-extra-panel.is-dinein > .order-info-card:first-child,
.order-extra-panel.is-dinein > .pickup-info-card{
  display:none !important;
}
.dinein-compact-card{
  width:100%;
}
.order-native-input{
  width:100%;
  min-height:44px;
  padding:0 14px;
  border:0;
  border-radius:12px;
  background:#fbf7f1;
  box-shadow:inset 0 0 0 1px #ead8c3;
  color:#241b17;
  font-size:16px;
  font-weight:800;
  outline:none;
  transition:box-shadow .18s ease, background-color .18s ease;
}
.order-native-input::placeholder{
  color:#9a806c;
  font-weight:700;
}
.order-native-input:focus{
  box-shadow:inset 0 0 0 1px #d9934a, 0 0 0 3px rgba(217,147,74,.12);
  background:#fffdf9;
}
.dinein-counts{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:12px;
  padding-top:14px;
}
.dinein-subline{
  padding:0 4px;
}
@media (max-width:760px){
  .order-native-input{
    min-height:42px;
    font-size:15px;
  }
  .dinein-counts{
    grid-template-columns:1fr;
    gap:10px;
  }
}


/* v73 hard fix: make 外帶自取 panel visible again */
.order-extra-panel.is-pickup > .order-info-card{
  display:none !important;
}

.order-extra-panel.is-pickup > .pickup-info-card{
  display:block !important;
}

.order-extra-panel.is-delivery > .order-info-card{
  display:none !important;
}

.order-extra-panel.is-delivery > .order-info-card:first-child{
  display:block !important;
}

.order-extra-panel.is-dinein > .order-info-card{
  display:none !important;
}

.order-extra-panel.is-dinein > .dinein-info-card{
  display:block !important;
}

/* make sure the top mode buttons are always visible */
.order-toolbar-card .order-mode-tabs,
.order-mode-tabs{
  display:grid !important;
  visibility:visible !important;
  opacity:1 !important;
}


/* v74 pickup missing block fix */
.pickup-store-line{
  border-bottom:1px solid #efe1d1 !important;
}

.pickup-store-line .delivery-compact-address-text{
  display:grid;
  gap:2px;
}

.pickup-store-line .delivery-compact-address-text strong{
  color:#241b17;
  font-size:17px;
  font-weight:950;
}

.pickup-store-line .delivery-compact-address-text small{
  color:#8a7363;
  font-size:13px;
  line-height:1.4;
}

.order-extra-panel.is-pickup [data-pickup-reserve-fields].is-active{
  display:grid !important;
}

.order-extra-panel.is-pickup [data-pickup-wait].is-hidden{
  display:none !important;
}

.order-extra-panel.is-pickup [data-pickup-wait]:not(.is-hidden){
  display:grid !important;
}


/* v75b dine-in note */
.dinein-note-textarea{
  margin-top:14px;
}
.dinein-note-textarea textarea{
  min-height:88px;
}
@media (max-width:760px){
  .dinein-note-textarea textarea{
    min-height:82px;
  }
}


/* v76 clean mode panel visibility fix */
.mode-panel{
  width:100% !important;
  max-width:none !important;
  margin:0 0 22px !important;
}

.mode-panel .mode-info-card{
  display:none !important;
}

.mode-panel.is-delivery .mode-delivery-card{
  display:block !important;
}

.mode-panel.is-pickup .mode-pickup-card{
  display:block !important;
}

.mode-panel.is-dinein .mode-dinein-card{
  display:block !important;
}

.mode-panel .delivery-compact-card{
  width:100% !important;
  max-width:none !important;
}

.pickup-store-line .delivery-compact-address-text{
  display:grid;
  gap:2px;
}

.pickup-store-line .delivery-compact-address-text strong{
  color:#241b17;
  font-size:17px;
  font-weight:950;
}

.pickup-store-line .delivery-compact-address-text small{
  color:#8a7363;
  font-size:13px;
  line-height:1.4;
}

.mode-panel.is-pickup [data-pickup-reserve-fields].is-active{
  display:grid !important;
}

.mode-panel.is-pickup [data-pickup-wait].is-hidden{
  display:none !important;
}

.mode-panel.is-pickup [data-pickup-wait]:not(.is-hidden){
  display:grid !important;
}

.dinein-counts{
  display:grid !important;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:12px;
  padding-top:14px;
}

.dinein-note-textarea{
  margin-top:14px;
}

.dinein-note-textarea textarea{
  min-height:88px;
}

@media (max-width:760px){
  .dinein-counts{
    grid-template-columns:1fr;
    gap:10px;
  }

  .dinein-note-textarea textarea{
    min-height:82px;
  }
}


/* v77 pickup behavior fix */
.mode-panel.is-pickup [data-pickup-wait]{
  display:grid !important;
}
.mode-panel.is-pickup [data-pickup-wait].is-hidden{
  display:none !important;
}
.mode-panel.is-pickup [data-pickup-reserve-fields]{
  display:none !important;
}
.mode-panel.is-pickup [data-pickup-reserve-fields].is-active{
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
.mode-panel.is-pickup .pickup-store-line{
  display:grid !important;
}
@media (max-width:760px){
  .mode-panel.is-pickup [data-pickup-reserve-fields].is-active{
    grid-template-columns:1fr;
    gap:10px;
  }
}


/* v78 mode cleanup */
.pickup-wait-card.is-hidden{display:none !important;}
.delivery-compact-reserve.pickup-reserve{display:none;}
.delivery-compact-reserve.pickup-reserve.is-active{display:grid !important;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
@media (max-width:760px){.delivery-compact-reserve.pickup-reserve.is-active{grid-template-columns:1fr;}}


/* v79 pickup uses v70 layout/behavior */
.mode-panel .mode-pickup-card{
  display:none !important;
}

.mode-panel.is-pickup .mode-pickup-card,
.order-extra-panel.is-pickup .mode-pickup-card{
  display:block !important;
}

.mode-panel.is-delivery .mode-pickup-card,
.mode-panel.is-dinein .mode-pickup-card{
  display:none !important;
}

.mode-panel.is-pickup .mode-delivery-card,
.mode-panel.is-pickup .mode-dinein-card{
  display:none !important;
}

.mode-panel.is-pickup [data-pickup-reserve-fields]{
  display:none !important;
}

.mode-panel.is-pickup [data-pickup-reserve-fields].is-active{
  display:grid !important;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:12px;
}

.mode-panel.is-pickup [data-pickup-wait]{
  display:grid !important;
}

.mode-panel.is-pickup [data-pickup-wait].is-hidden{
  display:none !important;
}

.mode-panel.is-pickup .pickup-store-line{
  display:grid !important;
}

.mode-panel.is-pickup .pickup-compact-card{
  width:100% !important;
  max-width:none !important;
}

@media (max-width:760px){
  .mode-panel.is-pickup [data-pickup-reserve-fields].is-active{
    grid-template-columns:1fr;
    gap:10px;
  }
}


/* v81 mobile cart bar redesign */
@media (max-width:980px){
  .order-mobile-bar{
    display:flex !important;
    flex-direction:column;
    align-items:stretch;
    gap:10px;
    padding:12px 14px 14px;
    background:rgba(255,250,244,.98);
  }
  .order-mobile-summary{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:12px;
    padding:0 2px;
  }
  .order-mobile-summary span{
    display:block;
    color:#8a7363;
    font-size:12px;
    letter-spacing:.04em;
  }
  .order-mobile-summary strong{
    color:#8f2b21;
    font-size:22px;
    line-height:1;
    font-weight:900;
  }
  .order-mobile-bar .mobile-cart-view-btn{
    width:100%;
    min-height:48px;
    justify-content:center !important;
    font-size:16px;
    font-weight:900;
    letter-spacing:.02em;
    border-radius:16px;
  }
  .back-to-top{
    bottom:132px !important;
  }
}
@media (max-width:520px){
  .order-mobile-bar{
    padding:10px 12px 12px;
    gap:8px;
  }
  .order-mobile-summary strong{
    font-size:20px;
  }
  .order-mobile-bar .mobile-cart-view-btn{
    min-height:46px;
    font-size:15px;
  }
  .back-to-top{
    bottom:124px !important;
    right:12px;
  }
}


/* v82 mobile cart bar hard layout fix */
@media (max-width:980px){
  .order-mobile-bar{
    display:grid !important;
    grid-template-columns:1fr !important;
    grid-template-rows:auto auto !important;
    width:100% !important;
    max-width:100% !important;
    left:0 !important;
    right:0 !important;
    bottom:0 !important;
    box-sizing:border-box !important;
    gap:8px !important;
    padding:10px 12px 12px !important;
    background:rgba(255,250,244,.98) !important;
    border-top:1px solid #e9d1b8 !important;
    transform:none !important;
  }

  .order-mobile-bar > *{
    min-width:0 !important;
    width:100% !important;
    box-sizing:border-box !important;
  }

  .order-mobile-summary{
    grid-column:1 / -1 !important;
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    gap:10px !important;
    width:100% !important;
    padding:0 2px !important;
    box-sizing:border-box !important;
  }

  .order-mobile-summary span{
    color:#8a7363 !important;
    font-size:12px !important;
    line-height:1.2 !important;
  }

  .order-mobile-summary strong{
    color:#8f2b21 !important;
    font-size:20px !important;
    line-height:1 !important;
    font-weight:900 !important;
    text-align:right !important;
  }

  .order-mobile-bar .btn,
  .order-mobile-bar .mobile-cart-view-btn{
    grid-column:1 / -1 !important;
    width:100% !important;
    min-width:0 !important;
    max-width:none !important;
    height:48px !important;
    min-height:48px !important;
    margin:0 !important;
    padding:0 14px !important;
    box-sizing:border-box !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    border-radius:16px !important;
    text-align:center !important;
    white-space:nowrap !important;
    transform:none !important;
  }

  .order-mobile-bar .mobile-cart-view-btn span{
    display:inline !important;
    color:inherit !important;
    font-size:15px !important;
    line-height:1 !important;
    font-weight:900 !important;
  }

  .back-to-top{
    bottom:118px !important;
    right:14px !important;
  }

  body{
    padding-bottom:112px;
  }
}

@media (max-width:520px){
  .order-mobile-bar{
    padding:9px 10px 11px !important;
  }

  .order-mobile-bar .btn,
  .order-mobile-bar .mobile-cart-view-btn{
    height:46px !important;
    min-height:46px !important;
    border-radius:14px !important;
  }

  .back-to-top{
    bottom:112px !important;
    right:12px !important;
  }
}

/* v83 homepage popular thumbnails */
.menu-card{position:relative;overflow:hidden;}
.popular-card-thumb{width:92px;height:92px;object-fit:cover;border-radius:22px;display:block;margin:0 0 18px;box-shadow:0 12px 26px rgba(92,48,24,.12);}
.menu-card .menu-card-badge{position:absolute;top:34px;right:34px;}

/* v83 menu image switcher */
.menu-image-section{margin:28px 0 42px;padding:28px;border:1px solid #e6d2ba;border-radius:28px;background:rgba(255,253,248,.94);box-shadow:0 16px 38px rgba(92,48,24,.06);}
.menu-image-head{display:grid;grid-template-columns:1fr auto;gap:22px;align-items:end;margin-bottom:22px;}
.menu-image-head h2{margin:4px 0 6px;color:#241b17;font-size:40px;line-height:1.1;font-weight:950;}
.menu-image-head p:not(.kicker){margin:0;color:#8a7363;line-height:1.7;}
.menu-image-tabs{display:flex;gap:10px;padding:6px;border:1px solid #ead8c3;border-radius:999px;background:#f2e5d6;}
.menu-image-tabs button{min-height:42px;padding:0 20px;border:0;border-radius:999px;background:transparent;color:#6b5748;font-weight:950;cursor:pointer;}
.menu-image-tabs button.active{background:#d07b31;color:#fff;box-shadow:0 8px 18px rgba(196,111,42,.18);}
.menu-image-frame{border-radius:24px;background:linear-gradient(180deg,#f8efe4,#fffaf3);border:1px solid #ead8c3;padding:18px;}
.menu-image-panel{display:none;margin:0;}
.menu-image-panel.active{display:block;}
.menu-image-panel img{width:100%;max-height:900px;object-fit:contain;display:block;border-radius:18px;background:#fff;box-shadow:0 16px 35px rgba(92,48,24,.10);}
.menu-image-panel figcaption{margin-top:12px;color:#8a7363;font-size:14px;text-align:center;}
@media (max-width:980px){.popular-card-thumb{width:86px;height:86px;}.menu-image-head{grid-template-columns:1fr;align-items:start;}.menu-image-tabs{width:100%;border-radius:18px;}.menu-image-tabs button{flex:1;padding:0 12px;}}
@media (max-width:520px){.popular-card-thumb{width:76px;height:76px;border-radius:18px;margin-bottom:14px;}.menu-card .menu-card-badge{top:26px;right:24px;}.menu-image-section{padding:18px;border-radius:22px;}.menu-image-head h2{font-size:30px;}.menu-image-tabs{flex-direction:column;}.menu-image-panel img{max-height:720px;}}


/* v84 homepage drink thumbnails hard fix */
.popular-card-thumb{
  width:118px !important;
  height:118px !important;
  object-fit:cover !important;
  display:block !important;
  border-radius:24px !important;
  margin:0 0 18px !important;
  box-shadow:0 16px 34px rgba(92,48,24,.16) !important;
}

.menu-card .popular-card-thumb + h3,
.menu-card .popular-card-thumb ~ h3{
  margin-top:0 !important;
}

@media (max-width:760px){
  .popular-card-thumb{
    width:96px !important;
    height:96px !important;
    border-radius:20px !important;
  }
}

/* v84 menu image zoom */
.menu-image-zoom-btn{
  width:100%;
  border:0;
  padding:0;
  margin:0;
  background:transparent;
  cursor:zoom-in;
  display:block;
}

.menu-image-zoom-btn img{
  transition:transform .22s ease, box-shadow .22s ease;
}

.menu-image-zoom-btn:hover img{
  transform:translateY(-2px) scale(1.01);
  box-shadow:0 22px 46px rgba(92,48,24,.16);
}

.menu-zoom-modal{
  position:fixed;
  inset:0;
  z-index:220;
  display:none;
  padding:24px;
}

.menu-zoom-modal.is-open{
  display:grid;
  place-items:center;
}

.menu-zoom-backdrop{
  position:absolute;
  inset:0;
  border:0;
  background:rgba(35,24,18,.72);
  cursor:zoom-out;
}

.menu-zoom-dialog{
  position:relative;
  z-index:1;
  width:min(96vw, 980px);
  max-height:92vh;
  overflow:auto;
  border-radius:24px;
  background:#fffaf3;
  padding:14px;
  box-shadow:0 30px 80px rgba(0,0,0,.35);
}

.menu-zoom-dialog img{
  width:100%;
  height:auto;
  display:block;
  border-radius:18px;
  background:#fff;
}

.menu-zoom-close{
  position:sticky;
  top:0;
  margin-left:auto;
  margin-bottom:10px;
  width:44px;
  height:44px;
  border:0;
  border-radius:50%;
  background:#241b17;
  color:#fff;
  font-size:30px;
  line-height:1;
  cursor:pointer;
  display:grid;
  place-items:center;
  z-index:2;
}

body.menu-zoom-open{
  overflow:hidden;
}

@media (max-width:760px){
  .menu-zoom-modal{
    padding:10px;
  }

  .menu-zoom-dialog{
    width:100%;
    max-height:94vh;
    border-radius:18px;
    padding:10px;
  }

  .menu-zoom-close{
    width:40px;
    height:40px;
    font-size:26px;
  }
}


/* v86 product modal footer layout fix */
@media (min-width: 761px){
  .product-modal .modal-card{
    display:flex;
    flex-direction:column;
  }
  .product-modal .modal-content{
    padding:26px 30px 24px !important;
  }
  .product-modal .modal-footer{
    position:relative !important;
    left:auto !important;
    right:auto !important;
    bottom:auto !important;
    transform:none !important;
    width:auto !important;
    display:grid;
    grid-template-columns:132px 1fr;
    gap:12px;
    padding:18px 30px 28px !important;
    background:#fffdf8 !important;
    border-top:1px solid #ead5bd !important;
    box-shadow:none !important;
    backdrop-filter:none !important;
  }
}
@media (max-width: 760px){
  .product-modal .modal-content{
    padding:22px 22px 112px !important;
  }
  .product-modal .modal-footer{
    position:fixed !important;
    left:auto !important;
    right:0 !important;
    bottom:0 !important;
    transform:none !important;
    width:min(560px,100%) !important;
    grid-template-columns:118px 1fr !important;
    gap:10px;
    padding:12px 14px calc(12px + env(safe-area-inset-bottom, 0px)) !important;
    background:rgba(255,253,248,.96) !important;
    border-top:1px solid #ead5bd !important;
    box-shadow:0 -8px 24px rgba(0,0,0,.08) !important;
    backdrop-filter:blur(12px) !important;
    z-index:4;
  }
}


/* v87 order customer name + product note */
.order-customer-name-card{
  width:100%;
  margin:0 0 14px;
  min-height:68px;
  padding:12px 16px;
  border:1px solid #e6d2ba;
  border-radius:18px;
  background:#fffdf9;
  display:grid;
  grid-template-columns:28px minmax(0,1fr);
  gap:12px;
  align-items:center;
  box-sizing:border-box;
}

.order-customer-name-body{
  display:grid;
  gap:6px;
  min-width:0;
}

.order-customer-name-body span{
  color:#8c7564;
  font-size:13px;
  font-weight:800;
}

.order-customer-name-body input{
  width:100%;
  min-height:38px;
  padding:0;
  border:0;
  outline:0;
  background:transparent;
  color:#241b17;
  font-size:17px;
  font-weight:900;
}

.order-customer-name-body input::placeholder{
  color:#a79585;
  font-weight:700;
}

.product-note-group{
  padding-bottom:8px;
}

.product-note-textarea{
  width:100%;
  min-height:88px;
  padding:14px 16px;
  border:1px solid #ead8c3;
  border-radius:16px;
  background:#fffaf3;
  color:#241b17;
  font-size:15px;
  line-height:1.6;
  resize:vertical;
  outline:none;
  box-sizing:border-box;
}

.product-note-textarea::placeholder{
  color:#a79585;
}

.product-note-textarea:focus{
  border-color:#d8893a;
  box-shadow:0 0 0 3px rgba(216,137,58,.12);
  background:#fffdf8;
}

.cart-item-note{
  margin:4px 0 0;
  color:#8a7363;
  font-size:12px;
  line-height:1.45;
}

@media (max-width:760px){
  .order-customer-name-card{
    min-height:62px;
    padding:11px 13px;
    border-radius:16px;
  }

  .order-customer-name-body input{
    font-size:15px;
  }

  .product-note-textarea{
    min-height:76px;
    font-size:14px;
  }
}


/* v88 modal note + customer input refinements */
.product-customer-group,
.product-note-group{
  margin-top: 24px;
  padding: 20px 18px;
  border: 1px solid #ead8c3;
  border-radius: 18px;
  background: #fffdf9;
}

.product-customer-group h3,
.product-note-group h3{
  margin: 0 0 6px;
}

.product-customer-group p,
.product-note-group p{
  margin: 0 0 12px;
}

.product-customer-input,
.product-note-textarea{
  width: 100%;
  border: 1px solid #ead8c3;
  border-radius: 16px;
  background: #fffaf3;
  color: #241b17;
  font-size: 15px;
  line-height: 1.6;
  box-sizing: border-box;
  outline: none;
}

.product-customer-input{
  min-height: 52px;
  padding: 0 16px;
  font-weight: 700;
}

.product-customer-input::placeholder,
.product-note-textarea::placeholder{
  color: #a79585;
}

.product-note-textarea{
  min-height: 108px;
  padding: 14px 16px;
  resize: vertical;
}

.product-customer-input:focus,
.product-note-textarea:focus{
  border-color: #d8893a;
  box-shadow: 0 0 0 3px rgba(216,137,58,.12);
  background: #fffdf8;
}

@media (max-width: 760px){
  .product-customer-group,
  .product-note-group{
    margin-top: 18px;
    padding: 16px 14px;
    border-radius: 16px;
  }

  .product-customer-input{
    min-height: 48px;
    font-size: 14px;
  }

  .product-note-textarea{
    min-height: 96px;
    font-size: 14px;
  }
}


/* v89 product modal open fix + field spacing */
.product-modal .product-customer-group,
.product-modal .product-note-group{
  margin:24px 0 0 !important;
  padding:20px 18px !important;
  border:1px solid #ead8c3 !important;
  border-radius:18px !important;
  background:#fffdf9 !important;
  box-sizing:border-box !important;
}

.product-modal .product-customer-input,
.product-modal .product-note-textarea{
  width:100% !important;
  box-sizing:border-box !important;
}

.product-modal .product-customer-input{
  min-height:52px;
  padding:0 16px;
  border:1px solid #ead8c3;
  border-radius:16px;
  background:#fffaf3;
  color:#241b17;
  font-size:15px;
  font-weight:800;
  outline:none;
}

.product-modal .product-note-textarea{
  min-height:108px !important;
}

@media (max-width:760px){
  .product-modal .product-customer-group,
  .product-modal .product-note-group{
    margin-top:18px !important;
    padding:16px 14px !important;
    border-radius:16px !important;
  }
}


/* v90 required validation */
.required-mark{
  display:inline-flex;
  align-items:center;
  margin-left:6px;
  padding:3px 7px;
  border-radius:999px;
  background:#fff1e3;
  color:#b35b25;
  font-size:12px;
  line-height:1;
  font-style:normal;
  font-weight:900;
  vertical-align:middle;
}

.option-group.has-error,
.product-customer-group.has-error,
.product-note-group.has-error{
  border-color:#c93f2e !important;
  box-shadow:0 0 0 3px rgba(201,63,46,.10) !important;
}

.option-group.has-error .option-list,
.product-customer-group.has-error .product-customer-input,
.product-note-group.has-error .product-note-textarea{
  border-color:#c93f2e !important;
}

.field-error{
  margin-top:10px;
  padding:10px 12px;
  border-radius:12px;
  background:#fff1ee;
  color:#b52d20;
  font-size:14px;
  font-weight:900;
  line-height:1.5;
}

.modal-add-cart.is-disabled,
.modal-add-cart:disabled{
  opacity:.55;
  cursor:not-allowed;
}

@media (max-width:760px){
  .field-error{
    font-size:13px;
    padding:9px 10px;
  }
}


/* v91 single / multi required options */
.multi-option-group{
  border:1px solid #ead8c3;
  border-radius:18px;
  background:#fffdf9;
  padding:20px 18px;
}

.multi-option-list label{
  padding:14px 0;
}

.multi-option-list input[type="checkbox"]{
  width:22px;
  height:22px;
  accent-color:#d8893a;
}

.multi-option-group.has-error{
  border-color:#c93f2e !important;
  box-shadow:0 0 0 3px rgba(201,63,46,.10) !important;
}

@media (max-width:760px){
  .multi-option-group{
    padding:16px 14px;
    border-radius:16px;
  }
}


/* v92 mobile product modal scroll/layout fix */
@media (max-width: 760px){
  body.modal-open{
    overflow:hidden !important;
    touch-action:none;
  }

  .product-modal{
    position:fixed !important;
    inset:0 !important;
    z-index:3000 !important;
    overflow:hidden !important;
  }

  .product-modal.is-open{
    display:block !important;
  }

  .product-modal .modal-backdrop{
    position:fixed !important;
    inset:0 !important;
    background:rgba(28,20,16,.55) !important;
  }

  .product-modal .modal-card{
    position:fixed !important;
    inset:0 !important;
    width:100% !important;
    max-width:none !important;
    height:100dvh !important;
    max-height:100dvh !important;
    min-height:100dvh !important;
    overflow-y:auto !important;
    overflow-x:hidden !important;
    -webkit-overflow-scrolling:touch !important;
    overscroll-behavior:contain !important;
    border-radius:0 !important;
    background:#fffaf3 !important;
    box-shadow:none !important;
    transform:none !important;
  }

  .product-modal .modal-close{
    position:fixed !important;
    top:12px !important;
    right:12px !important;
    z-index:3020 !important;
    width:44px !important;
    height:44px !important;
    background:rgba(255,255,255,.96) !important;
  }

  .product-modal .modal-img{
    width:100% !important;
    height:260px !important;
    max-height:36vh !important;
    aspect-ratio:auto !important;
    object-fit:cover !important;
    display:block !important;
  }

  .product-modal .modal-content{
    padding:24px 22px 24px !important;
  }

  .product-modal .modal-content h2{
    font-size:26px !important;
    line-height:1.25 !important;
  }

  .product-modal .option-group{
    margin-top:24px !important;
  }

  .product-modal .option-list{
    gap:0 !important;
  }

  .product-modal .option-list label{
    min-height:58px !important;
    padding:13px 0 !important;
  }

  .product-modal .product-customer-group,
  .product-modal .product-note-group,
  .product-modal .multi-option-group{
    margin-top:20px !important;
    padding:16px 14px !important;
  }

  .product-modal .modal-footer{
    position:sticky !important;
    left:0 !important;
    right:auto !important;
    bottom:0 !important;
    transform:none !important;
    width:100% !important;
    max-width:none !important;
    display:grid !important;
    grid-template-columns:122px minmax(0,1fr) !important;
    gap:10px !important;
    padding:12px 14px calc(12px + env(safe-area-inset-bottom, 0px)) !important;
    background:rgba(255,250,244,.98) !important;
    border-top:1px solid #ead4bf !important;
    box-shadow:0 -10px 24px rgba(92,48,24,.10) !important;
    backdrop-filter:blur(12px) !important;
    z-index:3010 !important;
    box-sizing:border-box !important;
  }

  .product-modal .modal-qty{
    grid-template-columns:38px 1fr 38px !important;
    gap:6px !important;
  }

  .product-modal .modal-qty button{
    height:44px !important;
    border-radius:10px !important;
  }

  .product-modal .modal-add-cart{
    min-width:0 !important;
    min-height:44px !important;
    height:44px !important;
    border-radius:999px !important;
    white-space:nowrap !important;
  }
}

@media (max-width: 760px){
  .product-modal-gallery{
    display:flex !important;
    flex-direction:column !important;
    align-items:stretch !important;
    justify-content:flex-start !important;
    background:#f5eee7 !important;
  }
  .product-modal .modal-img{
    width:100% !important;
    height:min(42vh, 340px) !important;
    max-height:none !important;
    object-fit:contain !important;
    object-position:center center !important;
    background:#f5eee7 !important;
  }
}

@media (max-width: 420px){
  .product-modal .modal-img{
    height:min(38vh, 300px) !important;
    max-height:none !important;
    object-fit:contain !important;
  }

  .product-modal .modal-content{
    padding:22px 18px 22px !important;
  }

  .product-modal .modal-footer{
    grid-template-columns:116px minmax(0,1fr) !important;
    padding-left:10px !important;
    padding-right:10px !important;
  }

  .product-modal .modal-add-cart{
    gap:8px !important;
    font-size:14px !important;
  }
}


/* v93 option prices are included in total */
.option-list em{
  min-width:52px;
  text-align:right;
}

.cart-item-note{
  word-break:break-word;
}


/* v94 optional option support */
.optional-mark{
  display:inline-flex;
  align-items:center;
  margin-left:6px;
  padding:3px 7px;
  border-radius:999px;
  background:#f3eadf;
  color:#8a7363;
  font-size:12px;
  line-height:1;
  font-style:normal;
  font-weight:900;
  vertical-align:middle;
}

.optional-option-group{
  border:1px solid #ead8c3;
  border-radius:18px;
  background:#fffdf9;
  padding:20px 18px;
}

.optional-option-group.has-error{
  border-color:#c93f2e !important;
  box-shadow:0 0 0 3px rgba(201,63,46,.10) !important;
}

@media (max-width:760px){
  .optional-option-group{
    padding:16px 14px;
    border-radius:16px;
  }
}


/* v95 multi-select examples */
.required-multi-example{
  border:1px solid #e0b98f;
  border-radius:18px;
  background:#fffaf3;
  padding:20px 18px;
}

.required-multi-example h3,
.optional-option-group h3{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:4px;
}

.required-multi-example.has-error,
.optional-option-group.has-error{
  border-color:#c93f2e !important;
  box-shadow:0 0 0 3px rgba(201,63,46,.10) !important;
}

@media (max-width:760px){
  .required-multi-example{
    padding:16px 14px;
    border-radius:16px;
  }
}


/* v96 iOS mobile input zoom fix */
html{
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
}

@media (max-width:760px){
  input,
  textarea,
  select,
  .product-modal input,
  .product-modal textarea,
  .product-modal select,
  .order-native-input,
  .order-native-select,
  .product-customer-input,
  .product-note-textarea,
  .delivery-note-body textarea,
  .order-customer-name-body input{
    font-size:16px !important;
  }

  input::placeholder,
  textarea::placeholder{
    font-size:16px !important;
  }

  .product-modal .product-customer-input,
  .product-modal .product-note-textarea{
    font-size:16px !important;
  }
}

/* Keep visual size close to previous design while real font-size stays 16px */
@media (max-width:420px){
  .product-modal .product-customer-input,
  .product-modal .product-note-textarea,
  .delivery-note-body textarea,
  .order-customer-name-body input{
    line-height:1.5;
  }
}


/* v97 mobile flicker fix */
/* Keep iOS from zooming inputs, but avoid JS viewport/transform resets that caused flashing. */
@media (max-width:760px){
  input,
  textarea,
  select,
  button{
    -webkit-tap-highlight-color:transparent;
  }

  input,
  textarea,
  select,
  .product-modal input,
  .product-modal textarea,
  .product-modal select,
  .order-native-input,
  .order-native-select,
  .product-customer-input,
  .product-note-textarea,
  .delivery-note-body textarea,
  .order-customer-name-body input{
    font-size:16px !important;
  }

  .product-modal .modal-card{
    backface-visibility:hidden;
    -webkit-backface-visibility:hidden;
    transform:none !important;
    will-change:auto !important;
  }

  .product-modal .modal-footer{
    will-change:auto !important;
  }

  html,
  body{
    scroll-behavior:auto;
  }
}

/* v98 customer name optional */
.product-customer-group.optional-field-group{
  border-color:#ead8c3 !important;
}


/* v99 login + member pages */
.member-page-main{
  width:var(--container);
  margin:0 auto;
  padding:40px 0 72px;
}
.member-login-page,
.member-home-page{
  background:
    radial-gradient(circle at 10% 12%, rgba(242,190,115,.18), transparent 22%),
    linear-gradient(180deg,var(--cream-2),var(--cream));
}
.login-hero{
  padding:8px 0 24px;
}
.login-card{
  display:grid;
  grid-template-columns:minmax(320px, 480px) minmax(0, 1fr);
  background:rgba(255,255,255,.62);
  border:1px solid var(--line);
  border-radius:36px;
  overflow:hidden;
  box-shadow:var(--soft-shadow);
}
.login-visual{
  min-height:100%;
  background:linear-gradient(180deg, rgba(191,109,46,.08), rgba(212,135,63,.18));
}
.login-visual img{
  width:100%;
  height:100%;
  object-fit:cover;
  min-height:560px;
}
.login-content{
  padding:44px 46px;
}
.eyebrow{
  margin:0 0 12px;
  color:var(--brand-2);
  letter-spacing:.22em;
  font-weight:900;
  font-size:13px;
}
.login-content h1{
  margin:0 0 14px;
  font-size:44px;
  line-height:1.08;
}
.login-copy{
  margin:0 0 24px;
  color:var(--muted);
  font-size:18px;
}
.login-methods{
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:14px;
  margin-bottom:24px;
}
.login-method{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  border-radius:20px;
  border:1px solid var(--line);
  background:#fff;
  min-height:64px;
  padding:14px 18px;
  font-weight:900;
  color:var(--ink);
}
.login-line{
  background:linear-gradient(180deg, #34c759, #16a74a);
  color:#fff;
  border-color:#1da64a;
}
.login-method-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:44px;
  height:44px;
  border-radius:14px;
  font-size:12px;
  font-weight:900;
  background:rgba(255,255,255,.18);
  border:1px solid rgba(255,255,255,.25);
}
.login-phone .login-method-icon{
  background:var(--milk);
  border-color:var(--line);
}
.login-form{
  display:grid;
  gap:16px;
}
.login-field{
  display:grid;
  gap:10px;
  font-weight:800;
}
.login-field span{
  font-size:15px;
}
.login-field input{
  border:1px solid var(--line);
  border-radius:18px;
  background:#fff;
  padding:15px 18px;
  min-height:56px;
}
.login-code-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:12px;
}
.btn-code{
  border:1px solid var(--line);
  background:var(--milk);
  color:var(--tea);
  border-radius:18px;
  padding:0 18px;
  font-weight:900;
}
.btn-login-submit{
  min-height:58px;
  justify-content:center;
}
.login-tips{
  margin-top:20px;
  color:var(--muted);
  font-size:14px;
}
.login-tips p{
  margin:6px 0;
}

.member-shell{
  display:flex;
  justify-content:center;
}
.member-app-card{
  width:min(640px, 100%);
  background:#fff;
  border:1px solid var(--line);
  border-radius:34px;
  box-shadow:var(--soft-shadow);
  padding:18px 18px 12px;
}
.member-app-head{
  display:flex;
  align-items:center;
  justify-content:center;
  position:relative;
  padding:6px 0 16px;
}
.member-app-head h1{
  margin:0;
  font-size:24px;
  font-weight:900;
}
.member-collapse{
  position:absolute;
  right:0;
  top:0;
  border:0;
  background:transparent;
  color:#8e857b;
  font-size:28px;
  line-height:1;
}
.member-profile{
  text-align:center;
  padding:4px 8px 14px;
}
.member-avatar{
  width:120px;
  height:120px;
  border-radius:50%;
  margin:0 auto 18px;
  background:#f0efef;
  color:#b8b8b8;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:62px;
  font-weight:700;
}
.member-profile h2{
  margin:0 0 14px;
  font-size:44px;
  line-height:1.1;
}
.member-level-row{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:18px;
  text-align:left;
}
.member-label{
  margin:0 0 6px;
  color:#8a847e;
  font-size:14px;
}
.member-level-row strong{
  font-size:36px;
  font-weight:900;
}
.member-level-image{
  width:122px;
  height:72px;
  object-fit:cover;
  border-radius:16px;
  border:1px solid var(--line);
}
.member-status-grid{
  display:grid;
  gap:14px;
  margin:6px 0 14px;
}
.member-status-card{
  background:#faf8f6;
  border:1px solid #ece5dd;
  border-radius:22px;
  padding:18px 20px;
  min-height:76px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
}
.member-status-left{
  display:flex;
  align-items:center;
  gap:12px;
}
.member-status-icon{
  width:42px;
  height:42px;
  border-radius:50%;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:#ece7e2;
  font-size:20px;
}
.member-status-title{
  font-size:26px;
  font-weight:900;
  line-height:1.2;
}
.member-status-number{
  font-size:56px;
  line-height:1;
  color:#6d645b;
  white-space:nowrap;
}
.member-status-number span{
  font-size:22px;
  margin-left:2px;
}
.member-shortcuts{
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:14px;
}
.member-shortcut-card{
  min-height:86px;
  border-radius:22px;
  background:#faf8f6;
  border:1px solid #ece5dd;
  padding:16px 18px;
  display:flex;
  align-items:center;
  gap:12px;
  font-size:28px;
  font-weight:900;
}
.member-shortcut-icon{
  width:42px;
  text-align:center;
  flex:0 0 auto;
}
.member-app-footer{
  padding:24px 10px 8px;
  text-align:center;
  color:#8a847e;
  font-size:16px;
}
.member-app-footer p{
  margin:4px 0;
}
.member-logout-row{
  display:flex;
  justify-content:flex-end;
  padding:8px 0 2px;
}
.member-logout-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-decoration:none;
  border:0;
  background:#f2f2f2;
  color:#6f6962;
  border-radius:999px;
  min-width:80px;
  min-height:42px;
  font-weight:900;
}
.compact-footer .footer-bottom{
  display:flex;
  gap:18px;
  justify-content:center;
  align-items:center;
  flex-wrap:wrap;
}

@media (max-width:980px){
  .login-card{
    grid-template-columns:1fr;
  }
  .login-visual img{
    min-height:280px;
    max-height:360px;
  }
}

@media (max-width:760px){
  .member-page-main{
    width:min(100% - 24px, 720px);
    padding:24px 0 52px;
  }
  .login-content{
    padding:28px 20px;
  }
  .login-content h1{
    font-size:34px;
  }
  .login-copy{
    font-size:16px;
  }
  .login-methods{
    grid-template-columns:1fr;
  }
  .login-code-row{
    grid-template-columns:1fr;
  }
  .member-app-card{
    padding:14px 14px 10px;
    border-radius:28px;
  }
  .member-app-head h1{
    font-size:18px;
  }
  .member-avatar{
    width:98px;
    height:98px;
    font-size:52px;
    margin-bottom:14px;
  }
  .member-profile h2{
    font-size:24px;
    margin-bottom:12px;
  }
  .member-level-row{
    align-items:center;
    gap:12px;
  }
  .member-level-row strong{
    font-size:20px;
  }
  .member-level-image{
    width:92px;
    height:46px;
    border-radius:12px;
  }
  .member-status-card{
    padding:15px 16px;
    min-height:70px;
    border-radius:18px;
  }
  .member-status-title{
    font-size:18px;
  }
  .member-status-number{
    font-size:32px;
  }
  .member-status-number span{
    font-size:14px;
  }
  .member-shortcuts{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
  }
  .member-shortcut-card{
    min-height:70px;
    border-radius:18px;
    padding:14px;
    font-size:18px;
    line-height:1.25;
  }
  .member-shortcut-icon{
    width:28px;
  }
  .member-app-footer{
    font-size:13px;
    padding-top:18px;
  }
}


/* v100 login buttons redesign */
.login-social-panel{
  display:grid;
  gap:14px;
  margin:26px 0 22px;
}

.social-login-btn{
  position:relative;
  display:grid;
  grid-template-columns:56px minmax(0, 1fr) 28px;
  align-items:center;
  gap:14px;
  min-height:76px;
  padding:14px 16px;
  border-radius:24px;
  border:1px solid var(--line);
  background:#fff;
  box-shadow:0 14px 34px rgba(92,48,24,.08);
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.social-login-btn:hover{
  transform:translateY(-2px);
  box-shadow:0 20px 44px rgba(92,48,24,.12);
}

.social-login-icon{
  width:56px;
  height:56px;
  border-radius:18px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:950;
  letter-spacing:.02em;
}

.line-login-btn{
  background:linear-gradient(135deg, #15c755 0%, #06a83f 100%);
  color:#fff;
  border-color:#10b84a;
}

.line-login-btn .line-icon{
  background:rgba(255,255,255,.18);
  border:1px solid rgba(255,255,255,.28);
  color:#fff;
  font-size:13px;
}

.google-login-btn{
  background:#fff;
  color:var(--ink);
  border-color:#ead8c3;
}

.google-login-btn .google-icon{
  background:
    radial-gradient(circle at 50% 50%, #fff 0 48%, transparent 49%),
    conic-gradient(#4285f4 0 25%, #34a853 0 50%, #fbbc05 0 75%, #ea4335 0);
  color:#241b17;
  font-size:26px;
  font-family:Arial, sans-serif;
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.06);
}

.social-login-text{
  display:grid;
  gap:2px;
  min-width:0;
}

.social-login-text strong{
  font-size:20px;
  line-height:1.25;
  font-weight:950;
}

.social-login-text small{
  font-size:14px;
  line-height:1.4;
  opacity:.78;
  font-weight:700;
}

.social-login-arrow{
  justify-self:end;
  width:28px;
  height:28px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:rgba(255,255,255,.22);
  font-size:28px;
  line-height:1;
}

.google-login-btn .social-login-arrow{
  background:#f5eadf;
  color:#9a5b2e;
}

.login-form{
  display:none;
}

@media (max-width:760px){
  .social-login-btn{
    grid-template-columns:50px minmax(0,1fr) 24px;
    min-height:70px;
    padding:12px 14px;
    border-radius:20px;
  }

  .social-login-icon{
    width:50px;
    height:50px;
    border-radius:16px;
  }

  .social-login-text strong{
    font-size:17px;
  }

  .social-login-text small{
    font-size:12px;
  }
}


/* v101: login buttons refined to look less AI / more like a real branded site */
.member-login-page .login-card{
  overflow:hidden;
}

.member-login-page .login-content{
  background:linear-gradient(180deg, rgba(255,253,248,.96), rgba(255,251,245,.96));
}

.member-login-page .login-copy{
  max-width:760px;
}

.member-login-page .login-social-panel{
  display:grid;
  gap:16px;
  margin:28px 0 22px;
}

.member-login-page .social-login-btn{
  position:relative;
  display:grid;
  grid-template-columns:72px minmax(0,1fr) 32px;
  align-items:center;
  gap:16px;
  min-height:88px;
  padding:14px 18px;
  border-radius:24px;
  border:1px solid #ead9c6;
  background:#fffdfa;
  box-shadow:0 10px 24px rgba(106,61,31,.06);
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
  overflow:hidden;
}

.member-login-page .social-login-btn::before{
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:5px;
  border-radius:24px 0 0 24px;
  background:#ddd;
}

.member-login-page .social-login-btn:hover{
  transform:translateY(-1px);
  box-shadow:0 18px 30px rgba(106,61,31,.10);
}

.member-login-page .line-login-btn{
  color:#1d2a20;
  border-color:#d7eadb;
}

.member-login-page .line-login-btn::before{
  background:#1ec85a;
}

.member-login-page .google-login-btn{
  color:#1f1d1a;
  border-color:#eadfd1;
}

.member-login-page .google-login-btn::before{
  background:linear-gradient(180deg,#4285f4 0 24%, #34a853 24% 49%, #fbbc05 49% 74%, #ea4335 74% 100%);
}

.member-login-page .social-login-icon{
  width:56px;
  height:56px;
  border-radius:18px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:900;
  letter-spacing:.02em;
  flex-shrink:0;
}

.member-login-page .line-icon{
  background:#18c44f;
  color:#fff;
  font-size:18px;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.18);
}

.member-login-page .google-icon{
  background:#fff;
  border:1px solid #eee0d1;
  box-shadow:0 6px 16px rgba(82,60,39,.08);
}

.member-login-page .google-g{
  display:flex;
  align-items:center;
  justify-content:center;
  width:44px;
  height:44px;
  border-radius:50%;
  background:conic-gradient(#4285f4 0 25%, #34a853 25% 50%, #fbbc05 50% 75%, #ea4335 75% 100%);
  color:#1e1e1e;
  font-size:22px;
  font-weight:900;
  font-family:Arial, sans-serif;
  box-shadow:inset 0 0 0 8px #fff;
}

.member-login-page .social-login-text{
  display:grid;
  gap:3px;
  min-width:0;
}

.member-login-page .social-login-text strong{
  font-size:18px;
  line-height:1.3;
  font-weight:900;
  letter-spacing:.01em;
}

.member-login-page .social-login-text small{
  font-size:13px;
  line-height:1.45;
  color:#6d625b;
  font-weight:700;
}

.member-login-page .social-login-arrow{
  display:grid;
  place-items:center;
  width:28px;
  height:28px;
  border-radius:50%;
  font-size:24px;
  line-height:1;
  justify-self:end;
  color:#9b5f34;
  background:#f8efe5;
}

.member-login-page .line-login-btn .social-login-arrow{
  background:#e6f7eb;
  color:#0da743;
}

.member-login-page .login-tips{
  margin-top:8px;
  color:#7e6f66;
}

.member-login-page .login-tips p{
  margin:6px 0;
}

@media (max-width: 960px){
  .member-login-page .social-login-btn{
    grid-template-columns:64px minmax(0,1fr) 28px;
    min-height:82px;
    padding:13px 16px;
    border-radius:20px;
  }
  .member-login-page .social-login-icon{
    width:50px;
    height:50px;
    border-radius:16px;
  }
  .member-login-page .line-icon{
    font-size:16px;
  }
  .member-login-page .social-login-text strong{
    font-size:17px;
  }
}

@media (max-width: 640px){
  .member-login-page .social-login-btn{
    grid-template-columns:56px minmax(0,1fr) 24px;
    min-height:76px;
    padding:12px 14px;
    gap:12px;
  }
  .member-login-page .social-login-icon{
    width:46px;
    height:46px;
    border-radius:14px;
  }
  .member-login-page .google-g{
    width:38px;
    height:38px;
    box-shadow:inset 0 0 0 7px #fff;
    font-size:20px;
  }
  .member-login-page .social-login-text strong{
    font-size:16px;
  }
  .member-login-page .social-login-text small{
    font-size:12px;
  }
}


/* v102: alternative login page design with portrait visual and full footer */
.member-login-page .member-page-main{
  width:min(100% - 48px, 1320px);
}

.login-hero-v2{
  padding:18px 0 20px;
}

.login-layout-v2{
  display:grid;
  grid-template-columns:minmax(320px, 420px) minmax(0, 1fr);
  gap:34px;
  align-items:stretch;
}

.login-visual-side{
  display:grid;
  gap:18px;
  align-content:start;
}

.login-portrait-card{
  position:relative;
  min-height:640px;
  border-radius:34px;
  overflow:hidden;
  border:1px solid #e6cfb1;
  background:#f7efe5;
  box-shadow:0 18px 44px rgba(124,62,37,.10);
}

.login-portrait-card img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
}

.login-portrait-card::after{
  content:"";
  position:absolute;
  inset:auto 0 0 0;
  height:42%;
  background:linear-gradient(180deg, rgba(41,24,18,0) 0%, rgba(41,24,18,.72) 100%);
}

.login-portrait-caption{
  position:absolute;
  left:24px;
  right:24px;
  bottom:24px;
  z-index:2;
  color:#fff8ef;
  display:grid;
  gap:10px;
}

.portrait-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:max-content;
  min-height:36px;
  padding:0 14px;
  border-radius:999px;
  background:rgba(255,255,255,.16);
  border:1px solid rgba(255,255,255,.26);
  backdrop-filter: blur(6px);
  font-size:12px;
  font-weight:900;
  letter-spacing:.16em;
}

.login-portrait-caption strong{
  font-size:34px;
  line-height:1.2;
  letter-spacing:-.03em;
  text-shadow:0 8px 24px rgba(0,0,0,.28);
}

.login-side-points{
  display:grid;
  gap:12px;
}

.login-point-chip{
  min-height:54px;
  padding:0 18px;
  border-radius:18px;
  display:flex;
  align-items:center;
  font-weight:800;
  color:#6b4f3b;
  background:rgba(255,253,250,.84);
  border:1px solid #ead8c4;
  box-shadow:0 10px 24px rgba(106,61,31,.05);
}

.login-panel-v2{
  background:linear-gradient(180deg, rgba(255,253,249,.95), rgba(255,249,242,.96));
  border:1px solid #e4ccb0;
  border-radius:34px;
  padding:38px 40px;
  box-shadow:0 18px 40px rgba(112,44,25,.08);
}

.login-panel-v2 .eyebrow{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  padding:0 18px;
  border-radius:999px;
  background:#fff7ed;
  border:1px solid #e8caa8;
  margin-bottom:14px;
}

.login-panel-v2 h1{
  margin:0 0 14px;
  font-size:58px;
  line-height:1.02;
  letter-spacing:-.04em;
}

.login-panel-v2 .login-copy{
  margin:0 0 24px;
  color:#6e5c51;
  font-size:19px;
  line-height:1.9;
  max-width:760px;
}

.login-feature-strip{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:14px;
  margin-bottom:20px;
}

.login-feature-item{
  padding:18px 20px;
  border-radius:22px;
  background:#fff;
  border:1px solid #eddcc9;
  box-shadow:0 10px 24px rgba(112,44,25,.04);
  display:grid;
  gap:4px;
}

.login-feature-item strong{
  font-size:18px;
  color:#2e1d15;
}

.login-feature-item span{
  color:#7d6b60;
  font-size:14px;
  line-height:1.6;
}

.member-login-page .login-social-panel{
  display:grid;
  gap:16px;
  margin:26px 0 24px;
}

.member-login-page .social-login-btn.alt-login-design{
  position:relative;
  display:grid;
  grid-template-columns:74px minmax(0,1fr) 34px;
  gap:18px;
  align-items:center;
  min-height:92px;
  padding:16px 20px;
  border-radius:26px;
  background:#fff;
  border:1px solid #ebd9c6;
  box-shadow:0 12px 30px rgba(112,44,25,.06);
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.member-login-page .social-login-btn.alt-login-design:hover{
  transform:translateY(-2px);
  box-shadow:0 18px 36px rgba(112,44,25,.10);
  border-color:#ddb88d;
}

.member-login-page .social-login-btn.alt-login-design::after{
  content:"";
  position:absolute;
  left:22px;
  right:22px;
  bottom:0;
  height:4px;
  border-radius:999px;
  background:linear-gradient(90deg, rgba(221,184,141,.15), rgba(221,184,141,.45), rgba(221,184,141,.15));
}

.member-login-page .line-login-btn.alt-login-design::before,
.member-login-page .google-login-btn.alt-login-design::before{
  display:none;
}

.member-login-page .social-login-btn.alt-login-design .social-login-icon{
  width:58px;
  height:58px;
  border-radius:18px;
}

.member-login-page .social-login-btn.alt-login-design .line-icon{
  background:linear-gradient(180deg, #20c355, #10ae41);
  color:#fff;
  box-shadow:0 12px 22px rgba(16,174,65,.18);
}

.member-login-page .social-login-btn.alt-login-design .google-icon{
  background:#fff;
  border:1px solid #eddcc9;
  box-shadow:0 10px 22px rgba(76,56,37,.07);
}

.member-login-page .social-login-btn.alt-login-design .social-login-text strong{
  font-size:26px;
  line-height:1.2;
  font-weight:900;
  color:#221710;
}

.member-login-page .social-login-btn.alt-login-design .social-login-text small{
  display:block;
  margin-top:4px;
  font-size:14px;
  color:#7b6a5e;
}

.member-login-page .social-login-btn.alt-login-design .social-login-arrow{
  width:30px;
  height:30px;
  border-radius:50%;
  background:#f8efe5;
  color:#9b5f34;
  font-size:18px;
  font-weight:900;
}

.login-note-box{
  padding:22px 24px;
  border-radius:24px;
  background:#fffaf4;
  border:1px dashed #e4c6a0;
}

.login-note-box h2{
  margin:0 0 12px;
  font-size:22px;
}

.login-note-box ul{
  margin:0;
  padding-left:20px;
  display:grid;
  gap:8px;
  color:#6d5c51;
  line-height:1.7;
}

@media (max-width: 1100px){
  .login-layout-v2{
    grid-template-columns:1fr;
  }
  .login-visual-side{
    grid-template-columns:minmax(0, 1fr);
  }
  .login-portrait-card{
    min-height:440px;
  }
}

@media (max-width: 760px){
  .member-login-page .member-page-main{
    width:min(100% - 24px, 1320px);
  }
  .login-hero-v2{
    padding:12px 0 10px;
  }
  .login-panel-v2{
    padding:26px 20px;
    border-radius:28px;
  }
  .login-panel-v2 h1{
    font-size:42px;
  }
  .login-panel-v2 .login-copy{
    font-size:16px;
    line-height:1.8;
  }
  .login-feature-strip{
    grid-template-columns:1fr;
  }
  .login-portrait-card{
    min-height:420px;
    border-radius:28px;
  }
  .login-portrait-caption{
    left:18px;
    right:18px;
    bottom:18px;
  }
  .login-portrait-caption strong{
    font-size:28px;
  }
  .member-login-page .social-login-btn.alt-login-design{
    grid-template-columns:60px minmax(0,1fr) 26px;
    gap:12px;
    min-height:80px;
    padding:14px 14px;
    border-radius:22px;
  }
  .member-login-page .social-login-btn.alt-login-design .social-login-icon{
    width:48px;
    height:48px;
    border-radius:15px;
  }
  .member-login-page .social-login-btn.alt-login-design .social-login-text strong{
    font-size:18px;
  }
  .member-login-page .social-login-btn.alt-login-design .social-login-text small{
    font-size:12px;
  }
}


/* v103 login cleanup */
.login-hero-v3{
  padding-top: 10px;
}

.login-layout-v3{
  grid-template-columns:minmax(340px, 420px) minmax(0, 1fr);
  gap:32px;
}

.login-visual-side-clean,
.login-portrait-card-clean{
  height:100%;
}

.login-portrait-card-clean{
  min-height:820px;
  background:#f8ede1;
}

.login-portrait-card-clean img{
  object-fit:cover;
  object-position:center;
}

.login-panel-v3{
  display:flex;
  flex-direction:column;
  justify-content:center;
  min-height:820px;
}

.login-panel-v3 .login-copy{
  max-width:860px;
  margin-bottom:30px;
}

.login-panel-v3 .login-social-panel{
  margin:10px 0 20px;
}

.login-legal-links{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  margin-top:8px;
  color:#8a6c55;
  font-size:14px;
}

.login-legal-links a{
  color:#8a6c55;
  text-decoration:none;
  border-bottom:1px solid transparent;
  transition:color .18s ease, border-color .18s ease;
}

.login-legal-links a:hover{
  color:#a95d2f;
  border-color:#a95d2f;
}

@media (max-width: 1100px){
  .login-layout-v3{
    grid-template-columns:1fr;
  }
  .login-portrait-card-clean,
  .login-panel-v3{
    min-height:auto;
  }
  .login-portrait-card-clean{
    min-height:560px;
  }
}

@media (max-width: 760px){
  .login-layout-v3{
    gap:20px;
  }
  .login-portrait-card-clean{
    min-height:460px;
  }
  .login-panel-v3{
    min-height:auto;
  }
  .login-legal-links{
    justify-content:center;
    font-size:13px;
  }
}


/* v107 global header/footer + member cart block */
.member-cart-card{
  position:relative;
  background:linear-gradient(135deg,#fffdf8,#fff3e4);
  border-color:#e4c6a6;
}

.member-cart-card em{
  margin-left:auto;
  min-width:28px;
  height:24px;
  padding:0 8px;
  border-radius:999px;
  background:#ff5c6b;
  color:#fff;
  font-size:13px;
  font-style:normal;
  font-weight:950;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}

.member-home-page .header-account{
  color:var(--brand);
}

.member-home-page .header-account svg{
  stroke:currentColor;
}

.member-home-page .header-cart,
.member-login-page .header-cart{
  display:inline-flex;
}

.member-home-page .footer-v2,
.member-login-page .footer-v2{
  margin-top:56px;
}

@media (max-width:760px){
  .member-cart-card em{
    min-width:24px;
    height:22px;
    font-size:12px;
  }
}


/* v108 member tabs + rewards */
.member-tabs-app{
  overflow:hidden;
}
.member-tab-switch{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  margin:8px 0 18px;
  background:#fbf6f0;
  border:1px solid #ece5dd;
  padding:8px;
  border-radius:22px;
}
.member-tab-btn{
  min-height:54px;
  border:0;
  border-radius:16px;
  background:transparent;
  color:#7b6f63;
  font-weight:900;
  font-size:18px;
}
.member-tab-btn.is-active{
  background:linear-gradient(180deg,#f1b45e,#d88434);
  color:#fff;
  box-shadow:0 10px 20px rgba(191,109,46,.18);
}
.member-tab-panel{ display:none; }
.member-tab-panel.is-active{ display:block; }
.member-points-summary{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:16px;
  padding:20px 22px;
  border-radius:24px;
  border:1px solid #ece5dd;
  background:linear-gradient(135deg,#fff9f0,#fffdf9);
  margin:6px 0 16px;
}
.member-points-label{
  display:block;
  margin-bottom:4px;
  color:#8a847e;
  font-size:14px;
}
.member-points-balance strong{
  display:block;
  font-size:42px;
  line-height:1;
  margin-bottom:8px;
}
.member-points-balance p{
  margin:0;
  color:#7e746b;
  font-size:15px;
}
.member-points-link{
  flex:0 0 auto;
  border:1px solid var(--line);
  background:#fff;
  color:var(--brand);
  border-radius:999px;
  min-height:44px;
  padding:0 18px;
  font-weight:900;
}
.member-reward-list{
  display:grid;
  gap:14px;
  margin-bottom:18px;
}
.reward-item-card{
  display:grid;
  grid-template-columns:118px minmax(0,1fr);
  gap:16px;
  background:#faf8f6;
  border:1px solid #ece5dd;
  border-radius:24px;
  padding:14px;
}
.reward-item-thumb{
  width:100%;
  height:112px;
  object-fit:cover;
  border-radius:18px;
}
.reward-item-body{
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  gap:10px;
}
.reward-item-body h3{
  margin:0;
  font-size:24px;
  line-height:1.15;
}
.reward-item-body p{
  margin:0;
  color:#7b746c;
  font-size:15px;
  line-height:1.65;
}
.reward-item-meta{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.reward-points-pill{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:36px;
  padding:0 14px;
  border-radius:999px;
  background:#fff1dc;
  color:#af5c1f;
  font-weight:900;
}
.reward-action-btn{
  border:0;
  min-height:40px;
  padding:0 16px;
  border-radius:999px;
  background:linear-gradient(180deg,#f1b45e,#d88434);
  color:#fff;
  font-weight:900;
}
.reward-action-btn.disabled,
.reward-action-btn:disabled{
  background:#ddd4cb;
  color:#8b8279;
  cursor:not-allowed;
}
.reward-item-card-muted{ opacity:.88; }
.member-history-block{
  border:1px solid #ece5dd;
  border-radius:24px;
  background:#fff;
  padding:18px 18px 8px;
}
.member-history-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:12px;
  margin-bottom:12px;
}
.member-history-head h3{
  margin:0;
  font-size:24px;
}
.member-history-head span{
  color:#8a847e;
  font-size:14px;
}
.member-history-list{ display:grid; }
.member-history-item{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  padding:14px 0;
  border-top:1px solid #eee7de;
}
.member-history-item:first-child{ border-top:0; }
.member-history-item strong{
  display:block;
  margin-bottom:4px;
  font-size:17px;
}
.member-history-item p{
  margin:0;
  color:#8a847e;
  font-size:14px;
}
.member-history-item em{
  font-style:normal;
  font-weight:900;
  font-size:22px;
  white-space:nowrap;
}
.history-plus{ color:#4f8357; }
.history-minus{ color:#b55036; }

@media (max-width:760px){
  .member-tab-btn{ font-size:15px; min-height:48px; }
  .member-points-summary{
    padding:16px;
    border-radius:18px;
    flex-direction:column;
    align-items:flex-start;
  }
  .member-points-balance strong{ font-size:30px; }
  .reward-item-card{
    grid-template-columns:84px minmax(0,1fr);
    gap:12px;
    border-radius:18px;
    padding:12px;
  }
  .reward-item-thumb{ height:84px; border-radius:14px; }
  .reward-item-body h3{ font-size:18px; }
  .reward-item-body p{ font-size:13px; line-height:1.55; }
  .reward-item-meta{
    align-items:flex-start;
    flex-direction:column;
  }
  .reward-action-btn{ width:100%; }
  .member-history-block{ border-radius:18px; padding:16px 14px 6px; }
  .member-history-head h3{ font-size:20px; }
  .member-history-item{ flex-direction:column; }
  .member-history-item em{ font-size:18px; }
}


/* v109 member redesign */
.member-redesign-card{
  padding:34px 34px 26px;
}
.member-redesign-head{
  margin-bottom:22px;
}
.member-hero-panel{
  display:grid;
  grid-template-columns:minmax(0,1fr) 126px;
  gap:22px;
  align-items:end;
  padding:0 0 24px;
  border-bottom:1px solid #efe6db;
}
.member-identity-block{
  display:flex;
  align-items:center;
  gap:20px;
}
.member-avatar-lg{
  width:124px;
  height:124px;
  font-size:56px;
  border-radius:38px;
}
.member-caption{
  margin:0 0 8px;
  color:#9a8e81;
  font-size:14px;
  letter-spacing:.08em;
}
.member-identity-text h2{
  margin:0 0 8px;
  font-size:56px;
  line-height:1;
}
.member-subline{
  margin:0;
  color:#7f746a;
  font-size:17px;
}
.member-hero-side{
  justify-self:end;
  width:126px;
  text-align:center;
}
.member-hero-side img{
  width:100%;
  aspect-ratio:1;
  object-fit:cover;
  border-radius:26px;
  border:1px solid #ede2d3;
  background:#fff;
}
.member-hero-side span{
  display:block;
  margin-top:8px;
  color:#8e8070;
  font-size:13px;
}
.member-tabbar-alt{
  display:flex;
  gap:28px;
  padding:18px 0 6px;
  border-bottom:1px solid #efe6db;
  margin-bottom:22px;
}
.member-tab-link{
  position:relative;
  padding:0 0 14px;
  border:0;
  background:none;
  color:#86796b;
  font-size:24px;
  font-weight:900;
}
.member-tab-link.is-active{
  color:#221916;
}
.member-tab-link.is-active::after{
  content:'';
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:4px;
  border-radius:999px;
  background:linear-gradient(90deg,#eab159,#d67e33);
}
.member-summary-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
  margin-bottom:18px;
}
.member-metric-card{
  padding:24px;
  border:1px solid #ece4d9;
  border-radius:28px;
  background:linear-gradient(180deg,#fffefe,#fbf8f4);
  display:block;
  text-decoration:none;
  color:inherit;
}
.member-metric-card-accent{
  background:linear-gradient(135deg,#f7c980,#e8a95a);
  color:#2f190e;
}
.member-metric-label{
  display:block;
  color:#9a8d81;
  font-size:14px;
  margin-bottom:10px;
}
.member-metric-card-accent .member-metric-label{ color:#6f4d2e; }
.member-metric-card strong{
  display:block;
  font-size:38px;
  line-height:1;
  margin-bottom:10px;
}
.member-metric-card p{
  margin:0;
  font-size:15px;
  line-height:1.65;
  color:#7f746a;
}
.member-metric-card-accent p{ color:#5b3d22; }
.member-utility-strip{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
}
.member-utility-item{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:54px;
  padding:0 16px;
  border:1px solid #ece4d9;
  border-radius:18px;
  background:#fff;
  text-decoration:none;
  color:#4b4036;
  font-weight:800;
}
.points-stage{
  display:grid;
  grid-template-columns:minmax(0,1.3fr) minmax(240px,.7fr);
  gap:16px;
  margin-bottom:22px;
}
.points-stage-main,
.points-side-box,
.points-history-card{
  border:1px solid #ece4d9;
  border-radius:28px;
  background:#fffdfb;
}
.points-stage-main{
  padding:28px;
}
.points-stage-kicker{
  margin:0 0 10px;
  color:#b56e2f;
  font-weight:900;
  letter-spacing:.14em;
  font-size:13px;
}
.points-stage-main h3{
  margin:0 0 14px;
  font-size:24px;
}
.points-balance-row{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:16px;
  margin-bottom:10px;
}
.points-balance-row strong{
  font-size:72px;
  line-height:.95;
}
.points-stage-note{
  margin:0;
  color:#7e746b;
  font-size:15px;
}
.points-back-btn{
  border:1px solid #e4c7a8;
  background:#fff;
  color:#b05c22;
  border-radius:999px;
  min-height:44px;
  padding:0 18px;
  font-weight:900;
}
.points-stage-side{
  display:grid;
  gap:16px;
}
.points-side-box{
  padding:22px 24px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.points-side-box span{
  color:#9b8d80;
  font-size:14px;
  margin-bottom:8px;
}
.points-side-box strong{
  font-size:34px;
  line-height:1;
}
.reward-showcase-head{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:16px;
  margin-bottom:14px;
}
.reward-showcase-head h3{
  margin:0;
  font-size:28px;
}
.reward-showcase-head p{
  margin:0;
  color:#8a7f74;
  font-size:14px;
}
.reward-strip-list{ display:grid; gap:14px; margin-bottom:18px; }
.reward-strip-card{
  display:grid;
  grid-template-columns:96px 108px minmax(0,1fr) 130px;
  gap:16px;
  align-items:center;
  padding:16px 18px;
  border:1px solid #ece4d9;
  border-radius:28px;
  background:#fff;
}
.reward-strip-points{
  height:100%;
  min-height:112px;
  border-radius:22px;
  background:linear-gradient(180deg,#fff4df,#f7e1bd);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  color:#b45f1f;
}
.reward-strip-points span{ font-size:34px; font-weight:900; line-height:1; }
.reward-strip-points em{ font-style:normal; font-weight:800; }
.reward-strip-thumb{
  width:108px;
  height:108px;
  object-fit:cover;
  border-radius:22px;
}
.reward-strip-body h4{
  margin:0 0 8px;
  font-size:28px;
}
.reward-strip-body p{
  margin:0;
  color:#7f746a;
  font-size:15px;
  line-height:1.7;
}
.reward-strip-action{ justify-self:end; }
.reward-strip-action button{
  min-width:112px;
  min-height:48px;
  border-radius:999px;
  border:0;
  background:linear-gradient(180deg,#efb764,#d88534);
  color:#fff;
  font-weight:900;
  font-size:16px;
}
.reward-strip-card.is-disabled{
  opacity:.9;
  background:#fcfbfa;
}
.reward-strip-card.is-disabled .reward-strip-action button{
  background:#ddd5cc;
  color:#8b8279;
}
.points-history-card{ padding:22px 24px 10px; }
.points-history-head{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:12px;
  margin-bottom:10px;
}
.points-history-head h3{ margin:0; font-size:24px; }
.points-history-head span{ color:#8a847e; font-size:14px; }
.points-history-row{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  padding:14px 0;
  border-top:1px solid #eee7de;
}
.points-history-row:first-child{ border-top:0; }
.points-history-row strong{ display:block; margin-bottom:4px; font-size:17px; }
.points-history-row p{ margin:0; color:#8a847e; font-size:14px; }
.points-history-row em{ font-style:normal; font-weight:900; font-size:22px; white-space:nowrap; }

@media (max-width:900px){
  .member-redesign-card{ padding:22px 18px 20px; }
  .member-hero-panel{ grid-template-columns:1fr; }
  .member-hero-side{ justify-self:start; width:100px; }
  .member-avatar-lg{ width:90px; height:90px; border-radius:28px; font-size:42px; }
  .member-identity-text h2{ font-size:42px; }
  .member-tabbar-alt{ gap:18px; }
  .member-tab-link{ font-size:18px; }
  .member-summary-grid,
  .member-utility-strip,
  .points-stage{ grid-template-columns:1fr; }
  .reward-showcase-head{ flex-direction:column; align-items:flex-start; }
  .reward-strip-card{
    grid-template-columns:82px 1fr;
    gap:12px;
    align-items:start;
  }
  .reward-strip-points{ min-height:82px; border-radius:18px; }
  .reward-strip-points span{ font-size:28px; }
  .reward-strip-thumb{ width:82px; height:82px; border-radius:16px; }
  .reward-strip-body{ grid-column:2; }
  .reward-strip-action{ grid-column:1 / -1; justify-self:stretch; }
  .reward-strip-action button{ width:100%; }
  .points-balance-row{ flex-direction:column; align-items:flex-start; }
}


/* v110 app-like custom member center */
.member-app-main-v110{
  width:min(100% - 28px, 760px);
  padding-top:34px;
}
.member-app-shell-v110{
  display:flex;
  justify-content:center;
}
.member-phone-v110{
  width:min(100%, 560px);
  border:1px solid #e8d7c2;
  border-radius:38px;
  background:
    linear-gradient(180deg, rgba(255,253,249,.98), rgba(255,249,241,.96));
  box-shadow:0 22px 60px rgba(112,44,25,.10);
  padding:22px;
  overflow:hidden;
}
.member-app-top-v110{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin-bottom:16px;
}
.member-app-title-v110{
  display:grid;
  gap:2px;
}
.member-app-title-v110 span{
  color:#a87545;
  font-size:12px;
  font-weight:900;
  letter-spacing:.14em;
}
.member-app-title-v110 strong{
  font-size:26px;
}
.member-bell-v110{
  width:42px;
  height:42px;
  border-radius:16px;
  border:1px solid #ead8c4;
  background:#fff;
  color:#d88434;
}
.member-card-v110{
  position:relative;
  min-height:210px;
  border-radius:30px;
  overflow:hidden;
  color:#fffaf4;
  background:#3b281f;
  margin-bottom:16px;
}
.member-card-bg-v110{
  position:absolute;
  inset:0;
  background:
    linear-gradient(135deg, rgba(43,27,20,.88), rgba(137,80,42,.50)),
    url('../images/hero-doublea-drink.jpg') center/cover;
  transform:scale(1.03);
}
.member-card-content-v110{
  position:relative;
  z-index:1;
  min-height:210px;
  padding:24px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
}
.member-card-user-v110{
  display:flex;
  align-items:center;
  gap:16px;
}
.member-avatar-v110{
  width:74px;
  height:74px;
  border-radius:26px;
  background:rgba(255,255,255,.18);
  border:1px solid rgba(255,255,255,.28);
  backdrop-filter:blur(6px);
  display:grid;
  place-items:center;
  font-size:32px;
  font-weight:900;
}
.member-card-user-v110 p{
  margin:0 0 5px;
  opacity:.8;
  font-weight:800;
}
.member-card-user-v110 h1{
  margin:0;
  font-size:38px;
}
.member-card-no-v110{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:12px;
}
.member-card-no-v110 span{
  font-size:12px;
  letter-spacing:.16em;
  opacity:.75;
  font-weight:900;
}
.member-card-no-v110 strong{
  font-size:15px;
  letter-spacing:.08em;
}
.member-tabbar-v110{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:8px;
  padding:7px;
  border-radius:22px;
  background:#f1e7da;
  margin-bottom:18px;
}
.member-tab-v110{
  min-height:48px;
  border:0;
  border-radius:17px;
  background:transparent;
  color:#7b6a5d;
  font-weight:900;
  font-size:15px;
}
.member-tab-v110.is-active{
  background:#fffaf4;
  color:#2c1d16;
  box-shadow:0 8px 18px rgba(92,48,24,.08);
}
.member-stat-row-v110{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:10px;
  margin-bottom:14px;
}
.member-stat-v110{
  min-height:116px;
  border-radius:24px;
  background:#fff;
  border:1px solid #ead8c4;
  padding:16px 12px;
  display:grid;
  align-content:center;
  text-align:center;
  color:#2c1d16;
}
.member-stat-v110 small{
  color:#8a786a;
  font-weight:800;
}
.member-stat-v110 strong{
  font-size:38px;
  line-height:1;
  margin:8px 0 4px;
}
.member-stat-v110 span{
  color:#c07a37;
  font-size:11px;
  font-weight:900;
  letter-spacing:.12em;
}
.member-action-grid-v110{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:12px;
  margin-bottom:14px;
}
.member-action-grid-v110 a{
  border:1px solid #ead8c4;
  border-radius:24px;
  background:#fffdf9;
  padding:18px;
  color:#2c1d16;
  display:grid;
  gap:7px;
}
.member-action-grid-v110 em{
  font-style:normal;
  font-size:24px;
}
.member-action-grid-v110 strong{
  font-size:18px;
}
.member-action-grid-v110 span{
  color:#827366;
  font-size:13px;
  line-height:1.5;
}
.member-mini-campaign-v110,
.points-wallet-v110,
.order-card-v110{
  border-radius:26px;
  background:linear-gradient(135deg,#fff2dd,#fffaf4);
  border:1px solid #ead0af;
  padding:20px;
  display:flex;
  justify-content:space-between;
  gap:16px;
  align-items:center;
}
.member-mini-campaign-v110 span,
.reward-board-head-v110 span{
  display:block;
  color:#b76d2d;
  font-size:12px;
  font-weight:900;
  letter-spacing:.14em;
  margin-bottom:6px;
}
.member-mini-campaign-v110 strong{
  display:block;
  font-size:18px;
  margin-bottom:4px;
}
.member-mini-campaign-v110 p,
.points-wallet-v110 p{
  margin:0;
  color:#7e7166;
  font-size:13px;
  line-height:1.55;
}
.member-mini-campaign-v110 button,
.points-wallet-v110 button,
.order-card-v110 a{
  border:0;
  min-height:42px;
  padding:0 16px;
  border-radius:999px;
  background:#d88434;
  color:#fff;
  font-weight:900;
  white-space:nowrap;
}
.points-wallet-v110{
  align-items:flex-end;
  margin-bottom:16px;
}
.points-wallet-v110 small{
  display:block;
  color:#8a786a;
  font-weight:800;
  margin-bottom:4px;
}
.points-wallet-v110 strong{
  display:block;
  font-size:48px;
  line-height:1;
}
.reward-board-v110{
  margin-bottom:16px;
}
.reward-board-head-v110{
  display:flex;
  justify-content:space-between;
  gap:16px;
  align-items:end;
  margin-bottom:12px;
}
.reward-board-head-v110 h2,
.points-history-head-v110 h2,
.order-history-v110 h2{
  margin:0;
  font-size:26px;
}
.reward-board-head-v110 p{
  margin:0;
  color:#827366;
  font-size:13px;
  line-height:1.55;
  max-width:260px;
}
.reward-ticket-list-v110{
  display:grid;
  gap:12px;
}
.reward-ticket-v110{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1fr) 96px;
  gap:12px;
  align-items:stretch;
  border-radius:26px;
  background:#fff;
  border:1px solid #ead8c4;
  overflow:hidden;
}
.reward-ticket-v110::before,
.reward-ticket-v110::after{
  content:'';
  position:absolute;
  right:84px;
  width:18px;
  height:18px;
  border-radius:50%;
  background:#fff9f1;
  border:1px solid #ead8c4;
  z-index:2;
}
.reward-ticket-v110::before{ top:-9px; }
.reward-ticket-v110::after{ bottom:-9px; }
.reward-ticket-main-v110{
  display:grid;
  grid-template-columns:92px minmax(0,1fr);
  gap:14px;
  align-items:center;
  padding:14px;
}
.reward-ticket-main-v110 img{
  width:92px;
  height:92px;
  border-radius:20px;
  object-fit:cover;
}
.reward-type-v110{
  display:inline-flex;
  width:max-content;
  padding:5px 9px;
  border-radius:999px;
  background:#fff1df;
  color:#b86a2b;
  font-size:12px;
  font-weight:900;
  margin-bottom:7px;
}
.reward-ticket-main-v110 h3{
  margin:0 0 5px;
  font-size:19px;
  line-height:1.25;
}
.reward-ticket-main-v110 p{
  margin:0;
  color:#7e7166;
  font-size:13px;
  line-height:1.5;
}
.reward-ticket-side-v110{
  border-left:1px dashed #e3c9aa;
  padding:14px 12px;
  display:grid;
  place-items:center;
  align-content:center;
  text-align:center;
  background:#fffaf4;
}
.reward-ticket-side-v110 strong{
  font-size:34px;
  line-height:.9;
  color:#a85b20;
}
.reward-ticket-side-v110 span{
  font-size:13px;
  color:#8b796a;
  font-weight:900;
  margin:4px 0 10px;
}
.reward-ticket-side-v110 button{
  border:0;
  min-height:34px;
  padding:0 13px;
  border-radius:999px;
  background:#d88434;
  color:#fff;
  font-weight:900;
}
.reward-ticket-v110.is-locked{
  opacity:.72;
}
.reward-ticket-v110.is-locked .reward-ticket-side-v110 button{
  background:#d8cec3;
  color:#7d7166;
}
.points-history-v110,
.order-history-v110{
  border:1px solid #ead8c4;
  border-radius:26px;
  background:#fff;
  padding:18px;
}
.points-history-head-v110{
  display:flex;
  align-items:end;
  justify-content:space-between;
  margin-bottom:8px;
}
.points-history-head-v110 span{
  color:#8a786a;
  font-size:13px;
  font-weight:800;
}
.points-timeline-v110{
  display:grid;
}
.points-timeline-v110 article,
.order-history-v110 article{
  display:grid;
  grid-template-columns:16px minmax(0,1fr) auto;
  gap:12px;
  padding:14px 0;
  border-top:1px solid #efe5da;
  align-items:start;
}
.points-timeline-v110 article:first-child,
.order-history-v110 article:first-of-type{
  border-top:0;
}
.points-timeline-v110 i{
  width:10px;
  height:10px;
  border-radius:50%;
  background:#d88434;
  margin-top:6px;
}
.points-timeline-v110 strong,
.order-history-v110 strong{
  display:block;
  margin-bottom:4px;
}
.points-timeline-v110 p,
.order-history-v110 span{
  margin:0;
  color:#827366;
  font-size:13px;
}
.points-timeline-v110 em{
  font-style:normal;
  font-weight:900;
  font-size:18px;
}
.order-card-v110{
  align-items:center;
  margin-bottom:14px;
}
.order-card-v110 span{
  color:#b76d2d;
  font-size:12px;
  font-weight:900;
  letter-spacing:.14em;
}
.order-card-v110 h2{
  margin:6px 0 6px;
  font-size:24px;
}
.order-card-v110 p{
  margin:0;
  color:#827366;
}
.order-history-v110 article{
  grid-template-columns:minmax(0,1fr);
}
.member-tab-panel{ display:none; }
.member-tab-panel.is-active{ display:block; }

@media (max-width:760px){
  .member-app-main-v110{
    width:min(100% - 20px, 760px);
    padding-top:22px;
  }
  .member-phone-v110{
    border-radius:30px;
    padding:16px;
  }
  .member-card-v110,
  .member-card-content-v110{
    min-height:190px;
  }
  .member-card-user-v110 h1{
    font-size:30px;
  }
  .member-stat-row-v110{
    grid-template-columns:repeat(3,1fr);
    gap:8px;
  }
  .member-stat-v110{
    min-height:96px;
    padding:12px 8px;
    border-radius:20px;
  }
  .member-stat-v110 strong{
    font-size:30px;
  }
  .member-action-grid-v110{
    grid-template-columns:1fr;
  }
  .member-mini-campaign-v110,
  .points-wallet-v110,
  .order-card-v110{
    flex-direction:column;
    align-items:flex-start;
  }
  .reward-board-head-v110{
    flex-direction:column;
    align-items:flex-start;
  }
  .reward-board-head-v110 p{
    max-width:none;
  }
  .reward-ticket-v110{
    grid-template-columns:1fr;
  }
  .reward-ticket-v110::before,
  .reward-ticket-v110::after{
    display:none;
  }
  .reward-ticket-side-v110{
    border-left:0;
    border-top:1px dashed #e3c9aa;
    grid-template-columns:auto auto auto;
    gap:8px;
    justify-content:space-between;
    padding:12px 14px;
  }
  .reward-ticket-side-v110 strong{
    font-size:26px;
  }
  .reward-ticket-main-v110{
    grid-template-columns:76px minmax(0,1fr);
  }
  .reward-ticket-main-v110 img{
    width:76px;
    height:76px;
    border-radius:17px;
  }
}


/* v111 desktop dashboard refresh */
.member-top-desc-v111{
  display:block;
  margin-top:6px;
  color:#8a786a;
  font-size:13px;
  font-weight:700;
  line-height:1.45;
}
.member-desktop-quick-v111{
  display:none;
}
.member-bell-v110{
  font-size:13px;
  font-weight:800;
  letter-spacing:.04em;
}
@media (min-width:1101px){
  .member-app-main-v110{
    width:min(100% - 52px, 1380px);
    padding-top:38px;
    padding-bottom:18px;
  }
  .member-phone-v110{
    width:100%;
    max-width:none;
    display:grid;
    grid-template-columns:340px minmax(0,1fr);
    grid-template-areas:
      'top top'
      'card quick'
      'card tabs'
      'card panel'
      'footer footer'
      'logout logout';
    gap:22px 28px;
    padding:30px;
    border-radius:42px;
  }
  .member-app-top-v110{
    grid-area:top;
    margin-bottom:0;
    padding-bottom:10px;
    border-bottom:1px solid #efdfcb;
  }
  .member-app-title-v110 strong{
    font-size:42px;
    line-height:1.05;
  }
  .member-card-v110{
    grid-area:card;
    min-height:520px;
    margin-bottom:0;
    position:sticky;
    top:110px;
  }
  .member-card-content-v110{
    min-height:520px;
    padding:28px;
  }
  .member-card-user-v110{
    align-items:flex-start;
    flex-direction:column;
    gap:18px;
  }
  .member-avatar-v110{
    width:86px;
    height:86px;
    border-radius:28px;
    font-size:36px;
  }
  .member-card-user-v110 h1{
    font-size:46px;
  }
  .member-card-user-v110 p{
    font-size:16px;
  }
  .member-card-no-v110{
    display:block;
  }
  .member-card-no-v110 strong{
    display:block;
    margin-top:10px;
    font-size:18px;
  }
  .member-desktop-quick-v111{
    grid-area:quick;
    display:grid;
    grid-template-columns:minmax(0,1.3fr) minmax(260px,.7fr);
    gap:16px;
  }
  .member-desktop-hello-v111,
  .member-desktop-side-stats-v111{
    border:1px solid #ead8c4;
    background:#fffdf9;
    border-radius:26px;
    padding:24px;
  }
  .member-desktop-hello-v111 span{
    display:block;
    color:#b76d2d;
    font-size:12px;
    font-weight:900;
    letter-spacing:.16em;
    margin-bottom:8px;
  }
  .member-desktop-hello-v111 h2{
    margin:0 0 10px;
    font-size:34px;
    line-height:1.1;
  }
  .member-desktop-hello-v111 p{
    margin:0;
    color:#7d7065;
    line-height:1.75;
    font-size:15px;
  }
  .member-desktop-side-stats-v111{
    display:grid;
    gap:18px;
    align-content:center;
    background:linear-gradient(135deg,#fff8ef,#fff0db);
  }
  .member-desktop-side-stats-v111 div{
    display:grid;
    gap:5px;
  }
  .member-desktop-side-stats-v111 small{
    color:#8a786a;
    font-size:12px;
    font-weight:800;
    letter-spacing:.1em;
  }
  .member-desktop-side-stats-v111 strong{
    font-size:24px;
    line-height:1.2;
  }
  .member-tabbar-v110{
    grid-area:tabs;
    margin-bottom:0;
    width:max-content;
    min-width:420px;
  }
  .member-tab-panel.is-active{
    grid-area:panel;
  }
  .member-stat-row-v110{
    grid-template-columns:repeat(3, minmax(0,1fr));
    gap:14px;
    margin-bottom:18px;
  }
  .member-stat-v110{
    min-height:150px;
    padding:22px 16px;
    border-radius:28px;
  }
  .member-stat-v110 strong{
    font-size:52px;
  }
  .member-action-grid-v110{
    grid-template-columns:repeat(2, minmax(0,1fr));
    gap:14px;
    margin-bottom:18px;
  }
  .member-action-grid-v110 a{
    min-height:156px;
    padding:22px;
    border-radius:28px;
  }
  .member-action-grid-v110 strong{
    font-size:22px;
  }
  .member-action-grid-v110 span{
    font-size:14px;
  }
  .member-mini-campaign-v110{
    padding:24px 26px;
  }
  .reward-board-head-v110{
    margin-bottom:16px;
  }
  .reward-ticket-list-v110{
    grid-template-columns:repeat(2, minmax(0,1fr));
    gap:16px;
  }
  .reward-ticket-v110{
    min-height:176px;
  }
  .reward-ticket-main-v110{
    grid-template-columns:112px minmax(0,1fr);
    padding:18px;
    gap:16px;
  }
  .reward-ticket-main-v110 img{
    width:112px;
    height:112px;
  }
  .reward-ticket-main-v110 h3{
    font-size:22px;
  }
  .reward-ticket-main-v110 p{
    font-size:14px;
  }
  .reward-ticket-side-v110{
    padding:18px 14px;
  }
  .reward-ticket-side-v110 strong{
    font-size:42px;
  }
  .points-history-v110, .order-history-v110{
    padding:24px 26px;
  }
  .points-history-head-v110 h2,
  .order-history-v110 h2{
    font-size:30px;
  }
  .points-wallet-v110{
    padding:24px 26px;
  }
  .points-wallet-v110 strong{
    font-size:64px;
  }
  .order-card-v110{
    padding:24px 26px;
  }
  .member-app-footer{
    grid-area:footer;
    text-align:center;
    padding-top:8px;
  }
  .member-logout-row{
    grid-area:logout;
    justify-content:flex-end;
  }
}
@media (min-width:1101px) and (max-width:1270px){
  .member-phone-v110{
    grid-template-columns:300px minmax(0,1fr);
    gap:18px 22px;
  }
  .member-desktop-quick-v111{
    grid-template-columns:1fr;
  }
  .reward-ticket-list-v110{
    grid-template-columns:1fr;
  }
}


/* v112 mobile order toolbar: category icon + keyword search + scrollable category tabs */
.order-mobile-category-open,
.order-mobile-category-tabs{
  display:none;
}

.order-product.is-search-hidden,
.ocard-menu-section.is-search-empty{
  display:none !important;
}

@media (max-width:980px){
  .order-toolbar-card{
    position:sticky;
    top:70px;
    z-index:72;
    padding:14px;
    gap:12px;
    border-radius:24px;
    backdrop-filter:blur(14px);
  }

  .order-toolbar-card .order-search-tools{
    display:grid;
    grid-template-columns:48px minmax(0,1fr) auto;
    gap:10px;
    align-items:center;
  }

  .order-mobile-category-open{
    display:grid;
    place-items:center;
    width:48px;
    height:48px;
    border:1px solid #e7d3bd;
    border-radius:16px;
    background:#fffdf8;
    color:#49352b;
    box-shadow:0 8px 18px rgba(92,48,24,.06);
  }

  .order-mobile-category-open svg{
    width:24px;
    height:24px;
  }

  .order-toolbar-card .order-search-box{
    min-height:48px;
    border-radius:16px;
    padding:0 14px;
    background:#fffdf8;
    border:1px solid #e7d3bd;
    box-shadow:0 8px 18px rgba(92,48,24,.04);
  }

  .order-toolbar-card .order-search-box svg{
    width:20px;
    height:20px;
    color:#7c6a5d;
  }

  .order-toolbar-card .order-search-box input{
    font-size:16px;
    font-weight:700;
  }

  .order-toolbar-card .order-view-toggle{
    min-height:48px;
    border-radius:16px;
  }

  .order-category-mobile-wrap > .order-category-trigger{
    display:none !important;
  }

  .order-mobile-category-tabs{
    position:sticky;
    top:190px;
    z-index:70;
    display:flex;
    gap:22px;
    overflow-x:auto;
    overflow-y:hidden;
    white-space:nowrap;
    padding:12px 18px 10px;
    margin:0 calc((100vw - 100%) / -2) 18px;
    background:rgba(255,250,244,.96);
    border-top:1px solid #eddcc9;
    border-bottom:1px solid #eddcc9;
    scrollbar-width:none;
    -webkit-overflow-scrolling:touch;
  }

  .order-mobile-category-tabs::-webkit-scrollbar{
    display:none;
  }

  .order-mobile-category-tabs a{
    position:relative;
    flex:0 0 auto;
    padding:8px 0 11px;
    color:#67584d;
    font-size:17px;
    font-weight:900;
    letter-spacing:.02em;
  }

  .order-mobile-category-tabs a.active{
    color:#8f2b21;
  }

  .order-mobile-category-tabs a.active::after{
    content:"";
    position:absolute;
    left:0;
    right:0;
    bottom:0;
    height:3px;
    border-radius:999px;
    background:#8f2b21;
  }

  .order-content-area .ocard-menu-section{
    scroll-margin-top:260px;
  }
}

@media (max-width:760px){
  .order-toolbar-card{
    top:66px;
  }

  .order-toolbar-card .order-toolbar-brand{
    display:none;
  }

  .order-toolbar-card .order-search-tools{
    grid-template-columns:46px minmax(0,1fr) 96px;
  }

  .order-toolbar-card .order-mode-tabs{
    order:-1;
  }

  .order-mobile-category-open,
  .order-toolbar-card .order-search-box{
    height:46px;
    min-height:46px;
  }

  .order-mobile-category-tabs{
    top:176px;
    gap:28px;
    padding-left:20px;
    padding-right:20px;
  }

  .order-mobile-category-tabs a{
    font-size:18px;
  }

  .order-content-area .ocard-menu-section{
    scroll-margin-top:244px;
  }
}

@media (max-width:520px){
  .order-toolbar-card .order-search-tools{
    grid-template-columns:44px minmax(0,1fr) 88px;
    gap:8px;
  }

  .order-mobile-category-open{
    width:44px;
    height:44px;
    border-radius:14px;
  }

  .order-toolbar-card .order-search-box{
    min-height:44px;
    height:44px;
    border-radius:14px;
  }

  .order-toolbar-card .order-view-toggle{
    min-height:44px;
  }

  .order-mobile-category-tabs{
    top:170px;
  }
}


/* v113 order mobile: single-page menu nav, full-screen category modal, search top sheet */
.order-mobile-icon-actions,
.order-search-modal,
.order-search-backdrop{
  display:none;
}

.order-product.is-search-hidden,
.ocard-menu-section.is-search-empty{
  display:none !important;
}

@media (max-width:980px){
  .order-toolbar-card{
    position:sticky;
    top:66px;
    z-index:78;
    padding:12px 14px;
    gap:12px;
    border-radius:0;
    margin-left:calc((100vw - 100%) / -2);
    margin-right:calc((100vw - 100%) / -2);
    background:rgba(255,250,244,.98);
    border-left:0;
    border-right:0;
    border-radius:0 !important;
    box-shadow:0 8px 20px rgba(92,48,24,.06);
  }

  .order-toolbar-card .order-toolbar-brand{
    display:none;
  }

  .order-toolbar-card .order-mode-tabs{
    display:none;
  }

  .order-toolbar-card .order-search-tools{
    display:flex;
    align-items:center;
    justify-content:flex-start;
    gap:18px;
    min-height:54px;
  }

  .order-mobile-icon-actions{
    display:flex;
    align-items:center;
    gap:18px;
  }

  .order-mobile-category-open,
  .order-mobile-search-open{
    display:grid !important;
    place-items:center;
    width:42px;
    height:42px;
    border:0;
    border-radius:0;
    background:transparent;
    color:#68615c;
    box-shadow:none;
    padding:0;
  }

  .order-mobile-category-open svg,
  .order-mobile-search-open svg{
    width:30px;
    height:30px;
  }

  .order-desktop-search-box,
  .order-toolbar-card .order-view-toggle{
    display:none !important;
  }

  .order-mobile-category-tabs{
    position:sticky;
    top:132px;
    z-index:76;
    display:flex;
    gap:34px;
    overflow-x:auto;
    overflow-y:hidden;
    white-space:nowrap;
    padding:15px 22px 0;
    height:58px;
    margin:0 calc((100vw - 100%) / -2) 22px;
    background:rgba(255,250,244,.98);
    border-top:1px solid #ead8c4;
    border-bottom:1px solid #ead8c4;
    scrollbar-width:none;
    -webkit-overflow-scrolling:touch;
  }

  .order-mobile-category-tabs::-webkit-scrollbar{
    display:none;
  }

  .order-mobile-category-tabs a{
    position:relative;
    flex:0 0 auto;
    color:#6e665f;
    font-size:18px;
    font-weight:900;
    line-height:40px;
    padding:0 0 14px;
    letter-spacing:.01em;
  }

  .order-mobile-category-tabs a.active{
    color:#8f2b21;
  }

  .order-mobile-category-tabs a.active::after{
    content:"";
    position:absolute;
    left:0;
    right:0;
    bottom:0;
    height:4px;
    border-radius:999px;
    background:#8f2b21;
  }

  .order-content-area .ocard-menu-section{
    scroll-margin-top:202px;
  }

  .order-category-mobile-wrap{
    position:static !important;
  }

  .order-category-mobile-wrap > .order-category-trigger{
    display:none !important;
  }

  .order-category-backdrop{
    position:fixed;
    inset:0;
    z-index:180;
    display:block;
    background:rgba(31,23,18,.42);
    opacity:0;
    visibility:hidden;
    transition:.2s ease;
  }

  .order-category-backdrop.is-open{
    opacity:1;
    visibility:visible;
  }

  .order-category-panel{
    position:fixed !important;
    inset:0 !important;
    z-index:181;
    width:100vw !important;
    height:100dvh !important;
    max-width:none !important;
    overflow:auto;
    transform:translateX(-100%);
    transition:transform .24s ease;
    border-radius:0 !important;
    border:0 !important;
    padding:0 !important;
    background:#fffaf4 !important;
    box-shadow:none !important;
  }

  .order-category-panel.is-open{
    transform:translateX(0);
  }

  .order-category-modal-head{
    position:sticky;
    top:0;
    z-index:2;
    min-height:72px;
    display:grid;
    grid-template-columns:56px 1fr 56px;
    align-items:center;
    padding:8px 14px;
    background:rgba(255,250,244,.98);
    border-bottom:1px solid #ead8c4;
  }

  .order-category-modal-head button{
    width:46px;
    height:46px;
    border:0;
    border-radius:50%;
    background:#fff;
    color:#3a2b24;
    font-size:34px;
    line-height:1;
  }

  .order-category-modal-head h2{
    margin:0;
    text-align:center;
    font-size:22px;
    font-weight:950;
  }

  .order-category-panel .order-category-list{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:0;
    padding:10px 22px 40px;
  }

  .order-category-panel .order-category-list a{
    display:flex;
    align-items:center;
    min-height:64px;
    padding:0 4px;
    border-radius:0;
    border-bottom:1px solid #ead8c4;
    background:transparent !important;
    color:#352821;
    font-size:22px;
    font-weight:900;
  }

  .order-category-panel .order-category-list a.active{
    color:#8f2b21;
  }

  body.category-panel-open,
  body.search-panel-open{
    overflow:hidden;
  }

  .order-search-backdrop{
    position:fixed;
    inset:0;
    z-index:185;
    display:block;
    background:rgba(31,23,18,.35);
    opacity:0;
    visibility:hidden;
    transition:.2s ease;
  }

  body.search-panel-open .order-search-backdrop{
    opacity:1;
    visibility:visible;
  }

  .order-search-modal{
    position:fixed;
    left:0;
    right:0;
    top:0;
    z-index:186;
    display:block;
    padding:calc(12px + env(safe-area-inset-top, 0px)) 16px 18px;
    background:#fffaf4;
    border-radius:0 0 24px 24px;
    box-shadow:0 18px 34px rgba(41,24,16,.16);
    transform:translateY(-110%);
    transition:transform .22s ease;
  }

  .order-search-modal.is-open{
    transform:translateY(0);
  }

  .order-search-modal-head{
    display:grid;
    grid-template-columns:44px 1fr 44px;
    align-items:center;
    margin-bottom:12px;
  }

  .order-search-modal-head button{
    width:42px;
    height:42px;
    border:0;
    border-radius:50%;
    background:#f5e8da;
    color:#3a2b24;
    font-size:30px;
    line-height:1;
  }

  .order-search-modal-head strong{
    text-align:center;
    font-size:18px;
    font-weight:950;
  }

  .order-search-modal-box{
    min-height:54px;
    display:flex;
    align-items:center;
    gap:12px;
    padding:0 16px;
    border-radius:18px;
    background:#fff;
    border:1px solid #e4ccb0;
  }

  .order-search-modal-box svg{
    width:22px;
    height:22px;
    color:#7c6a5d;
  }

  .order-search-modal-box input{
    width:100%;
    border:0;
    outline:0;
    background:transparent;
    font-size:16px;
    font-weight:800;
  }
}

@media (max-width:520px){
  .order-toolbar-card{
    top:64px;
  }

  .order-mobile-category-tabs{
    top:130px;
    gap:30px;
    padding-left:20px;
    padding-right:20px;
  }

  .order-mobile-category-tabs a{
    font-size:18px;
  }

  .order-content-area .ocard-menu-section{
    scroll-margin-top:198px;
  }
}


/* v114 clean JS behavior support */
@media (max-width:980px){
  .order-category-panel:not(.is-open){
    pointer-events:none;
  }

  .order-search-modal:not(.is-open){
    pointer-events:none;
  }

  .order-search-backdrop{
    pointer-events:none;
  }

  body.search-panel-open .order-search-backdrop{
    pointer-events:auto;
  }

  .order-category-backdrop{
    pointer-events:none;
  }

  .order-category-backdrop.is-open{
    pointer-events:auto;
  }
}


/* v115 overlay and anchor behavior fixes */
html{
  scroll-behavior:smooth;
}

@media (max-width:980px){
  body:not(.category-panel-open) .order-category-backdrop,
  .order-category-backdrop:not(.is-open){
    opacity:0 !important;
    visibility:hidden !important;
    pointer-events:none !important;
  }

  body.category-panel-open .order-category-backdrop.is-open{
    opacity:1 !important;
    visibility:visible !important;
    pointer-events:auto !important;
  }

  .order-category-panel:not(.is-open){
    transform:translateX(-100%) !important;
    pointer-events:none !important;
    visibility:hidden !important;
  }

  .order-category-panel.is-open{
    transform:translateX(0) !important;
    pointer-events:auto !important;
    visibility:visible !important;
  }

  body:not(.search-panel-open) .order-search-backdrop,
  .order-search-backdrop:not(.is-open){
    opacity:0 !important;
    visibility:hidden !important;
    pointer-events:none !important;
  }

  body.search-panel-open .order-search-backdrop{
    opacity:1 !important;
    visibility:visible !important;
    pointer-events:auto !important;
  }

  .order-search-modal:not(.is-open){
    transform:translateY(-110%) !important;
    pointer-events:none !important;
    visibility:hidden !important;
  }

  .order-search-modal.is-open{
    transform:translateY(0) !important;
    pointer-events:auto !important;
    visibility:visible !important;
  }

  .order-content-area .ocard-menu-section{
    scroll-margin-top:210px !important;
  }
}


/* v116 final mobile nav fix */
@media (max-width:980px){
  .order-category-backdrop{
    display:block !important;
  }

  body:not(.category-panel-open) .order-category-backdrop,
  .order-category-backdrop:not(.is-open){
    opacity:0 !important;
    visibility:hidden !important;
    pointer-events:none !important;
  }

  body.category-panel-open .order-category-backdrop.is-open{
    opacity:1 !important;
    visibility:visible !important;
    pointer-events:auto !important;
  }

  .order-category-panel:not(.is-open){
    transform:translateX(-100%) !important;
    visibility:hidden !important;
    pointer-events:none !important;
  }

  .order-category-panel.is-open{
    transform:translateX(0) !important;
    visibility:visible !important;
    pointer-events:auto !important;
  }

  body:not(.search-panel-open) .order-search-backdrop{
    opacity:0 !important;
    visibility:hidden !important;
    pointer-events:none !important;
  }

  body.search-panel-open .order-search-backdrop{
    opacity:1 !important;
    visibility:visible !important;
    pointer-events:auto !important;
  }

  .order-search-modal:not(.is-open){
    transform:translateY(-120%) !important;
    visibility:hidden !important;
    pointer-events:none !important;
  }

  .order-search-modal.is-open{
    transform:translateY(0) !important;
    visibility:visible !important;
    pointer-events:auto !important;
  }

  .order-content-area .ocard-menu-section{
    scroll-margin-top:220px !important;
  }
}


/* v117 final anchor positioning + translucent overlay */
@media (max-width:980px){
  .order-category-backdrop{
    position:fixed !important;
    inset:0 !important;
    z-index:9998 !important;
    display:block !important;
    background:rgba(34, 24, 18, .26) !important;
    backdrop-filter:blur(2px);
    -webkit-backdrop-filter:blur(2px);
  }

  .order-category-panel{
    z-index:9999 !important;
    background:#fffaf4 !important;
  }

  body:not(.category-panel-open) .order-category-backdrop,
  .order-category-backdrop:not(.is-open){
    opacity:0 !important;
    visibility:hidden !important;
    pointer-events:none !important;
  }

  body.category-panel-open .order-category-backdrop.is-open{
    opacity:1 !important;
    visibility:visible !important;
    pointer-events:auto !important;
  }

  .order-category-panel:not(.is-open){
    transform:translateX(-100%) !important;
    visibility:hidden !important;
    pointer-events:none !important;
  }

  .order-category-panel.is-open{
    transform:translateX(0) !important;
    visibility:visible !important;
    pointer-events:auto !important;
  }

  .order-search-backdrop{
    z-index:10002 !important;
    background:rgba(34, 24, 18, .22) !important;
  }

  .order-search-modal{
    z-index:10003 !important;
  }

  .order-content-area .ocard-menu-section{
    scroll-margin-top:220px !important;
  }
}


/* v118 immediate anchor fix + overlay cleanup */
@media (max-width:980px){
  .order-category-backdrop{
    position:fixed !important;
    inset:0 !important;
    z-index:9998 !important;
    display:block !important;
    background:rgba(34,24,18,.18) !important;
    backdrop-filter:blur(1.5px);
    -webkit-backdrop-filter:blur(1.5px);
  }

  .order-category-panel{
    z-index:9999 !important;
    background:#fffaf4 !important;
  }

  body:not(.category-panel-open) .order-category-backdrop,
  .order-category-backdrop:not(.is-open){
    opacity:0 !important;
    visibility:hidden !important;
    pointer-events:none !important;
  }

  body.category-panel-open .order-category-backdrop.is-open{
    opacity:1 !important;
    visibility:visible !important;
    pointer-events:auto !important;
  }

  .order-category-panel:not(.is-open){
    transform:translateX(-100%) !important;
    visibility:hidden !important;
    pointer-events:none !important;
  }

  .order-category-panel.is-open{
    transform:translateX(0) !important;
    visibility:visible !important;
    pointer-events:auto !important;
  }

  .order-content-area .ocard-menu-section{
    scroll-margin-top:230px !important;
  }

  .order-search-backdrop{
    background:rgba(34,24,18,.16) !important;
  }
}


/* v119 deterministic mobile category positioning */
@media (max-width:980px){
  html{
    scroll-behavior:auto !important;
  }

  .order-content-area .ocard-menu-section{
    scroll-margin-top:190px !important;
  }

  .order-category-backdrop{
    background:rgba(34,24,18,.18) !important;
  }
}


/* v120 real anchor script replacement + target compensation */
@media (max-width:980px){
  html{
    scroll-behavior:auto !important;
  }

  .order-content-area .ocard-menu-section{
    scroll-margin-top:0 !important;
  }

  .order-category-backdrop{
    background:rgba(34,24,18,.18) !important;
  }
}


/* v121 mobile combined category nav row */
@media (max-width:980px){
  html{
    scroll-behavior:auto !important;
  }

  .order-toolbar-card{
    position:sticky !important;
    top:68px !important;
    z-index:180 !important;
    margin-left:calc((100vw - 100%) / -2) !important;
    margin-right:calc((100vw - 100%) / -2) !important;
    padding:0 12px !important;
    min-height:58px !important;
    border-radius:0 !important;
    border-left:0 !important;
    border-right:0 !important;
    background:rgba(255,250,244,.98) !important;
    box-shadow:0 6px 18px rgba(92,48,24,.08) !important;
    backdrop-filter:blur(12px);
    -webkit-backdrop-filter:blur(12px);
  }

  .order-toolbar-card .order-mode-tabs,
  .order-toolbar-card .order-toolbar-brand,
  .order-desktop-search-box,
  .order-toolbar-card .order-view-toggle{
    display:none !important;
  }

  .order-toolbar-card .order-search-tools{
    display:flex !important;
    align-items:center !important;
    gap:14px !important;
    min-height:58px !important;
    padding:0 !important;
  }

  .order-mobile-icon-actions{
    display:flex !important;
    flex:0 0 auto !important;
    align-items:center !important;
    gap:14px !important;
  }

  .order-mobile-category-open,
  .order-mobile-search-open{
    display:grid !important;
    place-items:center !important;
    width:34px !important;
    height:44px !important;
    border:0 !important;
    background:transparent !important;
    color:#5f5751 !important;
    padding:0 !important;
    box-shadow:none !important;
  }

  .order-mobile-category-open svg,
  .order-mobile-search-open svg{
    width:28px !important;
    height:28px !important;
  }

  .order-mobile-category-tabs{
    position:static !important;
    top:auto !important;
    z-index:auto !important;
    flex:1 1 auto !important;
    min-width:0 !important;
    display:flex !important;
    align-items:center !important;
    gap:30px !important;
    overflow-x:auto !important;
    overflow-y:hidden !important;
    white-space:nowrap !important;
    height:58px !important;
    margin:0 !important;
    padding:0 !important;
    background:transparent !important;
    border:0 !important;
    scrollbar-width:none !important;
    -webkit-overflow-scrolling:touch;
  }

  .order-mobile-category-tabs::-webkit-scrollbar{
    display:none !important;
  }

  .order-mobile-category-tabs a{
    flex:0 0 auto !important;
    position:relative !important;
    display:flex !important;
    align-items:center !important;
    height:58px !important;
    padding:0 0 3px !important;
    color:#5f5751 !important;
    font-size:17px !important;
    font-weight:950 !important;
    line-height:1 !important;
  }

  .order-mobile-category-tabs a.active{
    color:#8f2b21 !important;
  }

  .order-mobile-category-tabs a.active::after{
    content:"" !important;
    position:absolute !important;
    left:0 !important;
    right:0 !important;
    bottom:0 !important;
    height:3px !important;
    border-radius:999px !important;
    background:#8f2b21 !important;
  }

  .order-content-area .ocard-menu-section{
    scroll-margin-top:0 !important;
  }

  .order-category-backdrop{
    background:rgba(34,24,18,.18) !important;
  }
}

@media (max-width:520px){
  .order-toolbar-card{
    top:66px !important;
  }

  .order-toolbar-card .order-search-tools{
    gap:12px !important;
  }

  .order-mobile-icon-actions{
    gap:12px !important;
  }

  .order-mobile-category-tabs{
    gap:26px !important;
  }

  .order-mobile-category-tabs a{
    font-size:16px !important;
  }
}


/* v122 mobile order navigation: restore mode tabs + native anchor offset */
@media (max-width:980px){
  html{
    scroll-behavior:smooth !important;
    scroll-padding-top:198px !important;
  }

  .order-toolbar-card{
    position:sticky !important;
    top:68px !important;
    z-index:180 !important;
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:10px !important;
    margin-left:calc((100vw - 100%) / -2) !important;
    margin-right:calc((100vw - 100%) / -2) !important;
    padding:10px 12px 0 !important;
    border-radius:0 !important;
    border-left:0 !important;
    border-right:0 !important;
    background:rgba(255,250,244,.98) !important;
    box-shadow:0 6px 18px rgba(92,48,24,.08) !important;
    backdrop-filter:blur(12px);
    -webkit-backdrop-filter:blur(12px);
  }

  .order-toolbar-card .order-toolbar-brand,
  .order-desktop-search-box,
  .order-toolbar-card .order-view-toggle{
    display:none !important;
  }

  .order-toolbar-card .order-mode-tabs{
    display:grid !important;
    grid-template-columns:repeat(3, minmax(0,1fr)) !important;
    order:1 !important;
    width:100% !important;
    min-height:44px !important;
    margin:0 !important;
    visibility:visible !important;
    opacity:1 !important;
  }

  .order-toolbar-card .order-search-tools{
    order:2 !important;
    display:flex !important;
    align-items:center !important;
    gap:14px !important;
    min-height:58px !important;
    padding:0 !important;
    border-top:1px solid #ead8c4 !important;
  }

  .order-mobile-icon-actions{
    display:flex !important;
    flex:0 0 auto !important;
    align-items:center !important;
    gap:14px !important;
  }

  .order-mobile-category-open,
  .order-mobile-search-open{
    display:grid !important;
    place-items:center !important;
    width:34px !important;
    height:44px !important;
    border:0 !important;
    background:transparent !important;
    color:#5f5751 !important;
    padding:0 !important;
    box-shadow:none !important;
  }

  .order-mobile-category-open svg,
  .order-mobile-search-open svg{
    width:28px !important;
    height:28px !important;
  }

  .order-mobile-category-tabs{
    position:static !important;
    top:auto !important;
    z-index:auto !important;
    flex:1 1 auto !important;
    min-width:0 !important;
    display:flex !important;
    align-items:center !important;
    gap:30px !important;
    overflow-x:auto !important;
    overflow-y:hidden !important;
    white-space:nowrap !important;
    height:58px !important;
    margin:0 !important;
    padding:0 !important;
    background:transparent !important;
    border:0 !important;
    scrollbar-width:none !important;
    -webkit-overflow-scrolling:touch;
  }

  .order-mobile-category-tabs::-webkit-scrollbar{
    display:none !important;
  }

  .order-mobile-category-tabs a{
    flex:0 0 auto !important;
    position:relative !important;
    display:flex !important;
    align-items:center !important;
    height:58px !important;
    padding:0 0 3px !important;
    color:#5f5751 !important;
    font-size:17px !important;
    font-weight:950 !important;
    line-height:1 !important;
  }

  .order-mobile-category-tabs a.active{
    color:#8f2b21 !important;
  }

  .order-mobile-category-tabs a.active::after{
    content:"" !important;
    position:absolute !important;
    left:0 !important;
    right:0 !important;
    bottom:0 !important;
    height:3px !important;
    border-radius:999px !important;
    background:#8f2b21 !important;
  }

  .order-content-area .ocard-menu-section{
    scroll-margin-top:198px !important;
  }

  .guide-modal{
    z-index:10050 !important;
  }

  .guide-modal-backdrop{
    z-index:10051 !important;
  }

  .guide-modal-card{
    z-index:10052 !important;
  }

  .order-category-backdrop{
    background:rgba(34,24,18,.18) !important;
  }
}

@media (max-width:520px){
  html{
    scroll-padding-top:190px !important;
  }

  .order-toolbar-card{
    top:66px !important;
  }

  .order-toolbar-card .order-mode-tabs{
    min-height:42px !important;
  }

  .order-toolbar-card .order-search-tools{
    min-height:56px !important;
    gap:12px !important;
  }

  .order-mobile-icon-actions{
    gap:12px !important;
  }

  .order-mobile-category-tabs{
    height:56px !important;
    gap:26px !important;
  }

  .order-mobile-category-tabs a{
    height:56px !important;
    font-size:16px !important;
  }

  .order-content-area .ocard-menu-section{
    scroll-margin-top:190px !important;
  }
}


/* v123 mobile: category nav after order settings */
.mobile-menu-nav-card{
  display:none;
}

@media (max-width:980px){
  html{
    scroll-behavior:auto !important;
    scroll-padding-top:0 !important;
  }

  .order-toolbar-card{
    position:sticky !important;
    top:68px !important;
    z-index:170 !important;
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:0 !important;
    margin-left:calc((100vw - 100%) / -2) !important;
    margin-right:calc((100vw - 100%) / -2) !important;
    padding:10px 12px !important;
    border-radius:0 !important;
    border-left:0 !important;
    border-right:0 !important;
    background:rgba(255,250,244,.98) !important;
    box-shadow:0 6px 18px rgba(92,48,24,.08) !important;
    backdrop-filter:blur(12px);
    -webkit-backdrop-filter:blur(12px);
  }

  .order-toolbar-card .order-toolbar-brand,
  .order-toolbar-card .order-search-tools{
    display:none !important;
  }

  .order-toolbar-card .order-mode-tabs{
    display:grid !important;
    grid-template-columns:repeat(3, minmax(0,1fr)) !important;
    width:100% !important;
    min-height:44px !important;
    margin:0 !important;
    visibility:visible !important;
    opacity:1 !important;
  }

  .mobile-menu-nav-card{
    position:sticky !important;
    top:126px !important;
    z-index:168 !important;
    display:flex !important;
    align-items:center !important;
    gap:14px !important;
    min-height:58px !important;
    margin:0 calc((100vw - 100%) / -2) 18px !important;
    padding:0 12px !important;
    background:rgba(255,250,244,.98) !important;
    border-top:1px solid #ead8c4 !important;
    border-bottom:1px solid #ead8c4 !important;
    box-shadow:0 6px 18px rgba(92,48,24,.06) !important;
    backdrop-filter:blur(12px);
    -webkit-backdrop-filter:blur(12px);
  }

  .mobile-menu-nav-card .order-mobile-icon-actions{
    display:flex !important;
    flex:0 0 auto !important;
    align-items:center !important;
    gap:14px !important;
  }

  .mobile-menu-nav-card .order-mobile-category-open,
  .mobile-menu-nav-card .order-mobile-search-open{
    display:grid !important;
    place-items:center !important;
    width:34px !important;
    height:44px !important;
    border:0 !important;
    background:transparent !important;
    color:#5f5751 !important;
    padding:0 !important;
    box-shadow:none !important;
  }

  .mobile-menu-nav-card .order-mobile-category-open svg,
  .mobile-menu-nav-card .order-mobile-search-open svg{
    width:28px !important;
    height:28px !important;
  }

  .mobile-menu-nav-card .order-mobile-category-tabs{
    position:static !important;
    top:auto !important;
    z-index:auto !important;
    flex:1 1 auto !important;
    min-width:0 !important;
    display:flex !important;
    align-items:center !important;
    gap:30px !important;
    overflow-x:auto !important;
    overflow-y:hidden !important;
    white-space:nowrap !important;
    height:58px !important;
    margin:0 !important;
    padding:0 !important;
    background:transparent !important;
    border:0 !important;
    scrollbar-width:none !important;
    -webkit-overflow-scrolling:touch;
  }

  .mobile-menu-nav-card .order-mobile-category-tabs::-webkit-scrollbar{
    display:none !important;
  }

  .mobile-menu-nav-card .order-mobile-category-tabs a{
    flex:0 0 auto !important;
    position:relative !important;
    display:flex !important;
    align-items:center !important;
    height:58px !important;
    padding:0 0 3px !important;
    color:#5f5751 !important;
    font-size:17px !important;
    font-weight:950 !important;
    line-height:1 !important;
  }

  .mobile-menu-nav-card .order-mobile-category-tabs a.active{
    color:#8f2b21 !important;
  }

  .mobile-menu-nav-card .order-mobile-category-tabs a.active::after{
    content:"" !important;
    position:absolute !important;
    left:0 !important;
    right:0 !important;
    bottom:0 !important;
    height:3px !important;
    border-radius:999px !important;
    background:#8f2b21 !important;
  }

  .order-content-area .ocard-menu-section{
    scroll-margin-top:0 !important;
  }

  .guide-modal{
    z-index:10050 !important;
  }

  .guide-modal-backdrop{
    z-index:10051 !important;
  }

  .guide-modal-card{
    z-index:10052 !important;
  }
}

@media (max-width:520px){
  .order-toolbar-card{
    top:66px !important;
  }

  .mobile-menu-nav-card{
    top:122px !important;
    gap:12px !important;
  }

  .mobile-menu-nav-card .order-mobile-icon-actions{
    gap:12px !important;
  }

  .mobile-menu-nav-card .order-mobile-category-tabs{
    gap:26px !important;
  }

  .mobile-menu-nav-card .order-mobile-category-tabs a{
    font-size:16px !important;
  }
}


/* v124: category nav becomes fixed after reaching product list */
@media (max-width:980px){
  .mobile-menu-nav-placeholder{
    display:block !important;
    height:0;
  }

  .mobile-menu-nav-card{
    transition:none !important;
  }

  .mobile-menu-nav-card.is-fixed{
    position:fixed !important;
    left:0 !important;
    right:0 !important;
    top:var(--mobile-menu-top, 126px) !important;
    z-index:220 !important;
    width:100vw !important;
    margin:0 !important;
  }

  .order-content-area .ocard-menu-section{
    scroll-margin-top:0 !important;
  }
}

@media (max-width:520px){
  .mobile-menu-nav-card.is-fixed{
    top:var(--mobile-menu-top, 122px) !important;
  }
}


/* v125: fixed category nav directly below logo/header */
@media (max-width:980px){
  .mobile-menu-nav-card.is-fixed{
    top:var(--mobile-menu-top, 68px) !important;
    z-index:260 !important;
  }

  .order-content-area .ocard-menu-section{
    scroll-margin-top:0 !important;
  }
}

@media (max-width:520px){
  .mobile-menu-nav-card.is-fixed{
    top:var(--mobile-menu-top, 66px) !important;
  }
}


/* v126 desktop category sidebar cleanup */
@media (min-width:981px){
  .order-left-sidebar .order-category-mobile-wrap{
    position:sticky;
    top:130px;
  }

  .order-left-sidebar .order-category-trigger,
  .order-left-sidebar .order-category-backdrop{
    display:none !important;
  }

  .order-left-sidebar .order-category-panel{
    position:static !important;
    inset:auto !important;
    width:100% !important;
    height:auto !important;
    max-width:none !important;
    transform:none !important;
    visibility:visible !important;
    opacity:1 !important;
    pointer-events:auto !important;
    overflow:visible !important;
    padding:22px 22px 24px !important;
    border:1px solid #e7d1b8 !important;
    border-radius:24px !important;
    background:#fffdf8 !important;
    box-shadow:0 18px 42px rgba(88,50,24,.08) !important;
  }

  .order-left-sidebar .order-category-modal-head{
    position:static !important;
    display:block !important;
    min-height:0 !important;
    padding:0 !important;
    margin:0 0 16px !important;
    background:transparent !important;
    border:0 !important;
  }

  .order-left-sidebar .order-category-modal-head button{
    display:none !important;
  }

  .order-left-sidebar .order-category-modal-head h2{
    margin:0 !important;
    text-align:left !important;
    font-size:24px !important;
    line-height:1.2 !important;
    font-weight:950 !important;
    color:#1f1714 !important;
  }

  .order-left-sidebar .order-category-list{
    display:grid !important;
    gap:10px !important;
    padding:0 !important;
  }

  .order-left-sidebar .order-category-list a{
    min-height:52px !important;
    display:flex !important;
    align-items:center !important;
    padding:0 18px !important;
    border:0 !important;
    border-radius:16px !important;
    background:transparent !important;
    color:#2d211b !important;
    font-size:17px !important;
    font-weight:900 !important;
    text-decoration:none !important;
  }

  .order-left-sidebar .order-category-list a.active{
    background:#eadbc6 !important;
    color:#9b2f22 !important;
  }

  .order-left-sidebar .order-guide-card{
    margin-bottom:14px !important;
  }
}


/* v128 mobile main MENU should stay above category nav / cart / modals */
@media (max-width:980px){
  .site-header{
    z-index:30000 !important;
    overflow:visible !important;
  }

  .site-header .nav-wrap{
    overflow:visible !important;
  }

  .site-header .nav{
    z-index:30001 !important;
  }

  .site-header .nav.open{
    display:flex !important;
    position:fixed !important;
    top:68px !important;
    left:14px !important;
    right:14px !important;
    z-index:30001 !important;
    background:#fffaf2 !important;
    border:1px solid #ead8c4 !important;
    box-shadow:0 20px 48px rgba(34,24,18,.20) !important;
  }

  .mobile-menu-nav-card,
  .mobile-menu-nav-card.is-fixed,
  .order-toolbar-card,
  .order-mobile-bar,
  .back-to-top{
    z-index:260 !important;
  }
}

@media (max-width:520px){
  .site-header .nav.open{
    top:66px !important;
  }
}


/* v129 member reward tickets: full-bleed images */
.reward-ticket-v110{
  overflow:hidden !important;
}

.reward-ticket-main-v110{
  grid-template-columns:minmax(150px, 34%) minmax(0,1fr) !important;
  gap:18px !important;
  align-items:stretch !important;
  padding:0 18px 0 0 !important;
  min-height:154px !important;
}

.reward-ticket-main-v110 img{
  width:100% !important;
  height:100% !important;
  min-height:154px !important;
  border-radius:0 !important;
  object-fit:cover !important;
}

.reward-ticket-main-v110 > div{
  align-self:center !important;
  padding:18px 0 !important;
}

@media (min-width:1101px){
  .reward-ticket-v110{
    min-height:180px !important;
  }

  .reward-ticket-main-v110{
    grid-template-columns:minmax(170px, 38%) minmax(0,1fr) !important;
    min-height:180px !important;
    padding:0 20px 0 0 !important;
  }

  .reward-ticket-main-v110 img{
    min-height:180px !important;
  }
}

@media (max-width:760px){
  .reward-ticket-main-v110{
    grid-template-columns:1fr !important;
    gap:0 !important;
    padding:0 !important;
    min-height:0 !important;
  }

  .reward-ticket-main-v110 img{
    width:100% !important;
    height:190px !important;
    min-height:190px !important;
    border-radius:0 !important;
  }

  .reward-ticket-main-v110 > div{
    padding:16px 18px 18px !important;
  }
}


/* v131: group-buy button placed between brand block and mode tabs */
.order-toolbar-card{
  grid-template-columns:minmax(260px,1.25fr) 156px minmax(360px,1.05fr) minmax(250px,.95fr);
}

.order-groupbuy-button{
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  gap:4px;
  min-height:78px;
  border-radius:24px;
  border:2px solid #cf8849;
  background:linear-gradient(180deg,#fff4de 0%, #ffe3bf 100%);
  color:#8a4319;
  box-shadow:0 14px 28px rgba(177,105,39,.14);
  transition:transform .18s ease, box-shadow .18s ease, filter .18s ease;
}

.order-groupbuy-button .order-groupbuy-label{
  font-size:22px;
  font-weight:900;
  line-height:1.1;
  letter-spacing:.06em;
}

.order-groupbuy-button small{
  font-size:12px;
  font-weight:700;
  color:#a76a38;
  letter-spacing:.02em;
}

.order-groupbuy-button:hover,
.order-groupbuy-button:focus-visible{
  transform:translateY(-1px);
  box-shadow:0 18px 34px rgba(177,105,39,.2);
  filter:saturate(1.03);
}

@media (max-width:1100px){
  .order-toolbar-card{
    grid-template-columns:minmax(240px,1.1fr) 138px minmax(320px,1fr) minmax(220px,.9fr);
  }
  .order-groupbuy-button{
    min-height:74px;
    border-radius:22px;
  }
  .order-groupbuy-button .order-groupbuy-label{
    font-size:20px;
  }
}

@media (max-width:980px){
  .order-groupbuy-button{
    display:none;
  }
}


/* v132: make group-buy button same visual scale as mode buttons */
.order-toolbar-card{
  grid-template-columns:minmax(260px,1.25fr) 120px minmax(360px,1.05fr) minmax(250px,.95fr) !important;
}

.order-groupbuy-button{
  min-height:48px !important;
  height:48px !important;
  padding:0 18px !important;
  border-radius:16px !important;
  border:1px solid #d8b994 !important;
  background:linear-gradient(135deg,#c7772c,#a63b2a) !important;
  color:#fff !important;
  box-shadow:0 8px 18px rgba(166,59,42,.14) !important;
  gap:0 !important;
  white-space:nowrap !important;
}

.order-groupbuy-button .order-groupbuy-label{
  font-size:16px !important;
  font-weight:900 !important;
  line-height:1 !important;
  letter-spacing:.04em !important;
}

.order-groupbuy-button small{
  display:none !important;
}

@media (max-width:1100px){
  .order-toolbar-card{
    grid-template-columns:minmax(240px,1.1fr) 112px minmax(320px,1fr) minmax(220px,.9fr) !important;
  }

  .order-groupbuy-button{
    min-height:46px !important;
    height:46px !important;
    padding:0 14px !important;
    border-radius:15px !important;
  }

  .order-groupbuy-button .order-groupbuy-label{
    font-size:15px !important;
  }
}


/* v133: show group-buy button on mobile order page */
@media (max-width:980px){
  .order-toolbar-card{
    gap:10px !important;
  }

  .order-groupbuy-button{
    display:flex !important;
    order:0 !important;
    width:100% !important;
    min-height:44px !important;
    height:44px !important;
    padding:0 14px !important;
    align-items:center !important;
    justify-content:center !important;
    border-radius:14px !important;
    white-space:nowrap !important;
  }

  .order-groupbuy-button .order-groupbuy-label{
    font-size:15px !important;
    letter-spacing:.03em !important;
  }

  .order-groupbuy-button small{
    display:none !important;
  }
}

@media (max-width:520px){
  .order-groupbuy-button{
    min-height:42px !important;
    height:42px !important;
    border-radius:13px !important;
  }

  .order-groupbuy-button .order-groupbuy-label{
    font-size:14px !important;
  }
}


/* v134: mobile group-buy button on its own row */
@media (max-width:980px){
  .order-toolbar-card{
    display:grid !important;
    grid-template-columns:1fr !important;
    align-items:stretch !important;
    gap:10px !important;
  }

  .order-toolbar-card .order-search-tools{
    order:1 !important;
    width:100% !important;
    min-height:52px !important;
  }

  .order-groupbuy-button{
    display:flex !important;
    order:2 !important;
    width:100% !important;
    flex-direction:row !important;
    align-items:center !important;
    justify-content:center !important;
    gap:8px !important;
    margin:0 !important;
    grid-column:1 / -1 !important;
  }

  .order-mobile-category-tabs{
    top:188px !important;
  }

  .order-content-area .ocard-menu-section{
    scroll-margin-top:258px !important;
  }
}

@media (max-width:520px){
  .order-mobile-category-tabs{
    top:182px !important;
  }

  .order-content-area .ocard-menu-section{
    scroll-margin-top:250px !important;
  }
}


/* v136: category > subcategory support */
.order-subcategory-tabs{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin:-4px 0 16px;
}

.order-subcategory-tabs a{
  display:inline-flex;
  align-items:center;
  min-height:34px;
  padding:0 14px;
  border-radius:999px;
  background:#fff6ea;
  border:1px solid #ead5bc;
  color:#8b4e2d;
  font-size:14px;
  font-weight:900;
  text-decoration:none;
}

.order-subcategory-tabs a:hover{
  background:#f3dfc8;
}

.order-subcategory-heading{
  margin:18px 0 12px;
  padding-left:12px;
  border-left:4px solid #b95b33;
  color:#2b1f19;
  font-size:18px;
  font-weight:950;
  scroll-margin-top:180px;
}

.order-category-list .sub-category-link{
  min-height:38px !important;
  margin-left:14px !important;
  padding:0 14px 0 26px !important;
  border-radius:14px !important;
  color:#8a6650 !important;
  font-size:15px !important;
  font-weight:800 !important;
  background:#fff6eb !important;
  position:relative;
}

.order-category-list .sub-category-link::before{
  content:"";
  position:absolute;
  left:12px;
  top:50%;
  width:6px;
  height:6px;
  border-radius:50%;
  background:#c78a55;
  transform:translateY(-50%);
}

.order-category-list .sub-category-link.active{
  background:#eadbc6 !important;
  color:#9b2f22 !important;
}

@media (max-width:980px){
  .order-subcategory-tabs{
    overflow-x:auto;
    flex-wrap:nowrap;
    white-space:nowrap;
    margin:0 0 14px;
    padding-bottom:2px;
    scrollbar-width:none;
    -webkit-overflow-scrolling:touch;
  }

  .order-subcategory-tabs::-webkit-scrollbar{
    display:none;
  }

  .order-subcategory-tabs a{
    flex:0 0 auto;
    min-height:32px;
    padding:0 12px;
    font-size:13px;
  }

  .order-subcategory-heading{
    font-size:17px;
    margin:16px 0 10px;
    scroll-margin-top:150px;
  }

  .order-category-panel .order-category-list .sub-category-link{
    min-height:48px !important;
    margin-left:18px !important;
    font-size:17px !important;
  }
}


/* v137: mobile sub-category horizontal scroll */
@media (max-width:980px){
  .order-subcategory-tabs{
    display:flex !important;
    flex-wrap:nowrap !important;
    align-items:center !important;
    gap:10px !important;
    width:100% !important;
    max-width:100% !important;
    overflow-x:auto !important;
    overflow-y:hidden !important;
    white-space:nowrap !important;
    padding:0 18px 4px 0 !important;
    margin:0 0 14px !important;
    -webkit-overflow-scrolling:touch !important;
    scrollbar-width:none !important;
    overscroll-behavior-x:contain !important;
    touch-action:pan-x !important;
  }

  .order-subcategory-tabs::-webkit-scrollbar{
    display:none !important;
  }

  .order-subcategory-tabs a{
    flex:0 0 auto !important;
    white-space:nowrap !important;
    scroll-snap-align:start;
  }

  .ocard-menu-section{
    overflow:hidden;
  }

  .ocard-menu-section .order-subcategory-tabs{
    overflow-x:auto !important;
  }
}

@media (max-width:520px){
  .order-subcategory-tabs{
    gap:8px !important;
    padding-right:22px !important;
  }
}


/* v138: sub-category changed from pill badges to underline text tabs */
.order-subcategory-tabs{
  gap:22px !important;
  margin:2px 0 18px !important;
  padding:0 0 8px !important;
  border-bottom:1px solid #ead9c7 !important;
}

.order-subcategory-tabs a{
  position:relative !important;
  min-height:34px !important;
  padding:0 2px 8px !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  color:#755845 !important;
  font-size:15px !important;
  font-weight:900 !important;
  letter-spacing:.03em !important;
}

.order-subcategory-tabs a::after{
  content:"" !important;
  position:absolute !important;
  left:0 !important;
  right:0 !important;
  bottom:-9px !important;
  height:3px !important;
  border-radius:99px !important;
  background:transparent !important;
}

.order-subcategory-tabs a:hover{
  background:transparent !important;
  color:#9b2f22 !important;
}

.order-subcategory-tabs a:hover::after{
  background:#d9aa7c !important;
}

.order-subcategory-heading{
  margin:18px 0 12px !important;
  padding:0 0 0 12px !important;
  border-left:4px solid #b95b33 !important;
  border-bottom:0 !important;
  color:#2b1f19 !important;
  font-size:18px !important;
  font-weight:950 !important;
}

@media (max-width:980px){
  .order-subcategory-tabs{
    gap:24px !important;
    padding:0 24px 8px 0 !important;
    margin:0 0 16px !important;
    border-bottom:1px solid #ead9c7 !important;
  }

  .order-subcategory-tabs a{
    min-height:36px !important;
    padding:0 1px 8px !important;
    font-size:15px !important;
    color:#66554a !important;
  }

  .order-subcategory-tabs a::after{
    bottom:-9px !important;
    height:3px !important;
  }

  .order-subcategory-heading{
    font-size:17px !important;
    margin:16px 0 12px !important;
  }
}

@media (max-width:520px){
  .order-subcategory-tabs{
    gap:22px !important;
    padding-right:28px !important;
  }

  .order-subcategory-tabs a{
    font-size:14px !important;
  }
}


/* v139: make sidebar subcategories easier to distinguish */
.order-category-list > a:not(.sub-category-link){
  font-size:15px !important;
  font-weight:900 !important;
  letter-spacing:.01em;
}

.order-category-list .sub-category-link{
  display:flex !important;
  align-items:center !important;
  min-height:36px !important;
  margin:6px 0 6px 22px !important;
  padding:8px 14px 8px 36px !important;
  border:1px dashed #e6ccb1 !important;
  border-radius:12px !important;
  background:linear-gradient(180deg,#fffaf5 0%, #fffdfb 100%) !important;
  color:#7a5a47 !important;
  font-size:13px !important;
  font-weight:800 !important;
  line-height:1.35 !important;
  position:relative !important;
}

.order-category-list .sub-category-link::before{
  content:"" !important;
  position:absolute !important;
  left:14px !important;
  top:50% !important;
  width:8px !important;
  height:8px !important;
  border-radius:50% !important;
  background:#c98349 !important;
  transform:translateY(-50%) !important;
  box-shadow:0 0 0 3px #fff3e6 !important;
}

.order-category-list .sub-category-link::after{
  content:"" !important;
  position:absolute !important;
  left:18px !important;
  top:-7px !important;
  width:1px !important;
  height:calc(50% + 7px) !important;
  background:#e8d1b8 !important;
}

.order-category-list > a:not(.sub-category-link) + .sub-category-link{
  margin-top:10px !important;
}

.order-category-list .sub-category-link + .sub-category-link{
  margin-top:4px !important;
}

.order-category-list .sub-category-link.active,
.order-category-list .sub-category-link:hover{
  background:linear-gradient(180deg,#f7ecdf 0%, #fff8f1 100%) !important;
  border-color:#d8ae83 !important;
  color:#982f22 !important;
  box-shadow:inset 3px 0 0 #b65d34 !important;
}

@media (max-width:980px){
  .order-category-panel .order-category-list .sub-category-link{
    min-height:46px !important;
    margin:8px 0 8px 18px !important;
    padding:10px 16px 10px 38px !important;
    font-size:15px !important;
    border-radius:14px !important;
  }

  .order-category-panel .order-category-list .sub-category-link::before{
    left:15px !important;
    width:9px !important;
    height:9px !important;
  }

  .order-category-panel .order-category-list .sub-category-link::after{
    left:19px !important;
  }
}


/* v140: redesign subcategory as directory-style hierarchy for clearer distinction */
.order-category-list > a:not(.sub-category-link){
  font-size:15px !important;
  font-weight:900 !important;
  letter-spacing:.01em;
}

.order-category-list .sub-category-link{
  display:block !important;
  margin:6px 0 6px 26px !important;
  padding:6px 8px 6px 18px !important;
  min-height:auto !important;
  border:none !important;
  border-left:2px solid #e7d2bd !important;
  border-radius:0 !important;
  background:transparent !important;
  color:#7b5e4b !important;
  font-size:13px !important;
  font-weight:700 !important;
  line-height:1.45 !important;
  position:relative !important;
  box-shadow:none !important;
}

.order-category-list .sub-category-link::before{
  content:"" !important;
  position:absolute !important;
  left:-5px !important;
  top:50% !important;
  width:8px !important;
  height:8px !important;
  border-radius:50% !important;
  background:#d28b50 !important;
  border:2px solid #fff7f0 !important;
  transform:translateY(-50%) !important;
  box-shadow:none !important;
}

.order-category-list .sub-category-link::after{
  content:none !important;
}

.order-category-list > a:not(.sub-category-link) + .sub-category-link{
  margin-top:10px !important;
}

.order-category-list .sub-category-link + .sub-category-link{
  margin-top:2px !important;
}

.order-category-list .sub-category-link.active,
.order-category-list .sub-category-link:hover{
  color:#9a3325 !important;
  border-left-color:#c2693a !important;
  background:linear-gradient(90deg, rgba(234, 212, 188, .22) 0%, rgba(234, 212, 188, 0) 100%) !important;
  padding-left:20px !important;
}

.order-category-list .sub-category-link.active::before,
.order-category-list .sub-category-link:hover::before{
  background:#b95f36 !important;
}

@media (max-width:980px){
  .order-category-panel .order-category-list .sub-category-link{
    margin:8px 0 8px 22px !important;
    padding:8px 10px 8px 18px !important;
    font-size:15px !important;
    border-left-width:2px !important;
  }
}


/* v141: cleaner, less AI-looking subcategory style */
.order-category-list{
  gap:4px !important;
}

.order-category-list > a:not(.sub-category-link){
  display:flex !important;
  align-items:center !important;
  min-height:46px !important;
  padding:0 16px !important;
  margin-top:8px !important;
  border-radius:14px !important;
  background:transparent !important;
  color:#211814 !important;
  font-size:16px !important;
  font-weight:900 !important;
  letter-spacing:.01em !important;
}

.order-category-list > a:not(.sub-category-link):first-child{
  margin-top:0 !important;
}

.order-category-list > a:not(.sub-category-link).active,
.order-category-list > a:not(.sub-category-link):hover{
  background:#eadbc6 !important;
  color:#9b2f22 !important;
}

.order-category-list .sub-category-link{
  display:flex !important;
  align-items:center !important;
  min-height:32px !important;
  margin:0 0 0 20px !important;
  padding:4px 10px 4px 14px !important;
  border:0 !important;
  border-left:2px solid #e5cfb7 !important;
  border-radius:0 8px 8px 0 !important;
  background:transparent !important;
  color:#735f52 !important;
  font-size:14px !important;
  font-weight:700 !important;
  line-height:1.35 !important;
  letter-spacing:.01em !important;
  box-shadow:none !important;
}

.order-category-list .sub-category-link::before,
.order-category-list .sub-category-link::after{
  content:none !important;
  display:none !important;
}

.order-category-list > a:not(.sub-category-link) + .sub-category-link{
  margin-top:2px !important;
}

.order-category-list .sub-category-link + .sub-category-link{
  margin-top:0 !important;
}

.order-category-list .sub-category-link:hover,
.order-category-list .sub-category-link.active{
  color:#9b2f22 !important;
  background:#fff6ec !important;
  border-left-color:#bd7447 !important;
  padding-left:16px !important;
}

/* content subcategory tabs: calmer underline style */
.order-subcategory-tabs{
  gap:22px !important;
  margin:2px 0 18px !important;
  padding:0 0 9px !important;
  border-bottom:1px solid #ead9c7 !important;
}

.order-subcategory-tabs a{
  min-height:30px !important;
  padding:0 0 7px !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  color:#6b5b51 !important;
  font-size:14px !important;
  font-weight:800 !important;
}

.order-subcategory-tabs a::after{
  bottom:-10px !important;
  height:2px !important;
  border-radius:0 !important;
}

.order-subcategory-tabs a:hover{
  color:#9b2f22 !important;
  background:transparent !important;
}

.order-subcategory-heading{
  margin:20px 0 12px !important;
  padding:0 !important;
  border:0 !important;
  color:#1f1714 !important;
  font-size:18px !important;
  font-weight:900 !important;
}

.order-subcategory-heading::before{
  content:"";
  display:inline-block;
  width:5px;
  height:18px;
  margin-right:8px;
  border-radius:99px;
  background:#c8854d;
  vertical-align:-3px;
}

@media (max-width:980px){
  .order-category-panel .order-category-list > a:not(.sub-category-link){
    min-height:48px !important;
    font-size:17px !important;
  }

  .order-category-panel .order-category-list .sub-category-link{
    min-height:38px !important;
    margin-left:22px !important;
    padding:5px 12px 5px 14px !important;
    font-size:15px !important;
  }

  .order-subcategory-tabs{
    gap:24px !important;
    overflow-x:auto !important;
    flex-wrap:nowrap !important;
    white-space:nowrap !important;
    padding-right:24px !important;
    scrollbar-width:none !important;
  }

  .order-subcategory-tabs::-webkit-scrollbar{
    display:none !important;
  }

  .order-subcategory-tabs a{
    flex:0 0 auto !important;
  }

  .order-subcategory-heading{
    font-size:17px !important;
  }
}


/* v142: softer, less AI-looking subcategory active / hover */
.order-category-list .sub-category-link{
  position: relative !important;
  min-height: 30px !important;
  margin: 2px 0 0 22px !important;
  padding: 4px 8px 4px 16px !important;
  border-left: 1px solid #e6d5c4 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: #6f6157 !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  transition: color .18s ease, padding-left .18s ease, border-color .18s ease;
}

.order-category-list .sub-category-link::before{
  content: "" !important;
  display: block !important;
  position: absolute !important;
  left: -5px !important;
  top: 50% !important;
  width: 8px !important;
  height: 8px !important;
  margin-top: -4px !important;
  border-radius: 50% !important;
  background: #dcc2a4 !important;
  box-shadow: 0 0 0 3px #fffaf4 !important;
}

.order-category-list .sub-category-link::after{
  content: "" !important;
  display: block !important;
  position: absolute !important;
  left: 16px !important;
  right: 8px !important;
  bottom: 1px !important;
  height: 1px !important;
  background: transparent !important;
  transition: background .18s ease;
}

.order-category-list .sub-category-link:hover{
  background: transparent !important;
  color: #9b3a28 !important;
  border-left-color: #d0b396 !important;
  padding-left: 18px !important;
}

.order-category-list .sub-category-link:hover::before{
  background: #c7834e !important;
}

.order-category-list .sub-category-link.active{
  background: transparent !important;
  color: #9b2f22 !important;
  border-left-color: #c7834e !important;
  padding-left: 18px !important;
  font-weight: 900 !important;
}

.order-category-list .sub-category-link.active::before{
  background: #c7834e !important;
}

.order-category-list .sub-category-link.active::after{
  background: #d4b08b !important;
}

@media (max-width: 980px){
  .order-category-panel .order-category-list .sub-category-link{
    min-height: 34px !important;
    margin-left: 24px !important;
    padding: 4px 8px 4px 16px !important;
    font-size: 15px !important;
  }
}


/* v143: remove half-moon / node shapes from subcategory active & hover */
.order-category-list .sub-category-link,
.order-category-panel .order-category-list .sub-category-link{
  position:relative !important;
  display:flex !important;
  align-items:center !important;
  min-height:32px !important;
  margin:2px 0 2px 22px !important;
  padding:5px 8px 5px 14px !important;
  border:0 !important;
  border-left:2px solid #e2d2c2 !important;
  border-radius:0 !important;
  background:transparent !important;
  color:#6f6157 !important;
  font-size:14px !important;
  font-weight:700 !important;
  line-height:1.4 !important;
  box-shadow:none !important;
  transition:color .16s ease, border-color .16s ease, padding-left .16s ease !important;
}

.order-category-list .sub-category-link::before,
.order-category-list .sub-category-link::after,
.order-category-panel .order-category-list .sub-category-link::before,
.order-category-panel .order-category-list .sub-category-link::after{
  content:none !important;
  display:none !important;
}

.order-category-list .sub-category-link:hover,
.order-category-panel .order-category-list .sub-category-link:hover{
  background:transparent !important;
  color:#9b3a28 !important;
  border-left-color:#c98652 !important;
  padding-left:17px !important;
}

.order-category-list .sub-category-link.active,
.order-category-panel .order-category-list .sub-category-link.active{
  background:transparent !important;
  color:#9b2f22 !important;
  border-left:3px solid #9b2f22 !important;
  padding-left:16px !important;
  font-weight:900 !important;
}

@media (max-width:980px){
  .order-category-panel .order-category-list .sub-category-link{
    min-height:36px !important;
    margin-left:24px !important;
    padding:5px 10px 5px 14px !important;
    font-size:15px !important;
  }

  .order-category-panel .order-category-list .sub-category-link:hover{
    padding-left:17px !important;
  }

  .order-category-panel .order-category-list .sub-category-link.active{
    padding-left:16px !important;
  }
}


/* v144: dine-in note textarea slightly smaller */
.dinein-note-textarea{
  margin-top: 12px !important;
}
.dinein-note-textarea textarea{
  min-height: 72px !important;
  padding-top: 12px !important;
  padding-bottom: 12px !important;
}
@media (max-width: 760px){
  .dinein-note-textarea textarea{
    min-height: 68px !important;
  }
}


/* v145: dine-in child seat / child tableware fields */
.dinein-subline{
  grid-template-columns:28px 72px minmax(0, 1fr) !important;
}
.dinein-child-item-line .delivery-compact-label{
  letter-spacing:-.02em;
}
@media (max-width:760px){
  .dinein-subline{
    grid-template-columns:24px 68px minmax(0, 1fr) !important;
  }
}

/* v146: fix grid view product alignment
   原本井字瀏覽把次分類 tab / 小標題也當成商品格子，
   造成商品被擠到第 2、3 欄。這裡讓標題元素跨整列，商品才正常排列。 */
.order-content-area.is-grid-view .ocard-menu-section{
  display:grid !important;
  grid-template-columns:repeat(auto-fit, minmax(190px, 1fr)) !important;
  gap:18px !important;
  align-items:start !important;
}

.order-content-area.is-grid-view .ocard-menu-section > h2,
.order-content-area.is-grid-view .ocard-menu-section > .order-subcategory-tabs,
.order-content-area.is-grid-view .ocard-menu-section > .order-subcategory-heading{
  grid-column:1 / -1 !important;
}

.order-content-area.is-grid-view .order-subcategory-tabs{
  width:100% !important;
  margin:2px 0 4px !important;
}

.order-content-area.is-grid-view .order-subcategory-heading{
  width:100% !important;
  margin:12px 0 0 !important;
}

.order-content-area.is-grid-view .hybrid-product{
  width:100% !important;
  min-width:0 !important;
  margin:0 !important;
  box-sizing:border-box !important;
}

.order-content-area.is-grid-view .hybrid-product img{
  display:block !important;
}

@media (min-width:981px){
  .order-content-area.is-grid-view .ocard-menu-section{
    grid-template-columns:repeat(auto-fit, minmax(180px, 1fr)) !important;
  }
}

@media (max-width:760px){
  .order-content-area.is-grid-view .ocard-menu-section{
    grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
    gap:12px !important;
  }

  .order-content-area.is-grid-view .order-subcategory-tabs{
    margin-bottom:2px !important;
  }

  .order-content-area.is-grid-view .order-subcategory-heading{
    margin-top:10px !important;
  }
}

@media (max-width:380px){
  .order-content-area.is-grid-view .ocard-menu-section{
    grid-template-columns:1fr !important;
  }
}

/* =========================================================
   v151 - balanced store hero with branch cover
   ========================================================= */
.store-hero-v151{
  padding:22px !important;
  background:
    radial-gradient(circle at 8% 82%,rgba(232,166,92,.18),transparent 32%),
    linear-gradient(135deg,rgba(255,253,248,.98),rgba(248,237,223,.95));
}

.store-hero-layout-v151{
  display:grid;
  grid-template-columns:minmax(0,.88fr) minmax(460px,1.12fr);
  gap:28px;
  align-items:stretch;
}

.store-hero-intro-v151{
  min-width:0;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  padding:14px 10px 12px 12px;
}

.store-hero-intro-v151 .section-title{
  margin-bottom:0;
}

.store-hero-intro-v151 .section-desc{
  max-width:600px;
  margin:24px 0 0;
  color:#6d5a4f;
  font-size:16px;
  line-height:1.85;
}

.store-hero-services-v151{
  display:flex;
  flex-wrap:wrap;
  gap:9px;
  margin-top:19px;
}

.store-hero-services-v151 span{
  display:inline-flex;
  align-items:center;
  min-height:34px;
  padding:0 13px;
  border:1px solid #e5c7a5;
  border-radius:999px;
  background:rgba(255,255,255,.7);
  color:#98502a;
  font-size:13px;
  font-weight:900;
}

.store-hero-intro-v151 .store-action-row{
  margin-top:auto;
  padding-top:24px;
}

.store-spotlight-v151{
  width:100%;
  max-width:none;
  margin:0;
  align-self:stretch;
}

.store-spotlight-trigger-v151{
  height:100%;
  min-height:330px;
  display:grid;
  grid-template-rows:minmax(190px,1fr) auto;
  gap:0;
  padding:0;
  overflow:hidden;
  border:1px solid #dfbd98 !important;
  border-radius:26px;
  background:#fffaf3;
  box-shadow:0 20px 44px rgba(92,48,24,.14);
}

.store-spotlight-cover-v151{
  position:relative;
  display:block;
  min-height:0;
  overflow:hidden;
  background:#d39a67;
}

.store-spotlight-cover-v151::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(42,23,14,.06),rgba(42,23,14,.42));
}

.store-spotlight-cover-v151 img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  object-position:center;
  transition:transform .35s ease;
}

.store-spotlight-trigger-v151:hover .store-spotlight-cover-v151 img{
  transform:scale(1.025);
}

.store-spotlight-cover-v151 small{
  position:absolute;
  left:18px;
  bottom:16px;
  z-index:1;
  padding:7px 10px;
  border-radius:999px;
  background:rgba(44,28,20,.72);
  color:#fff;
  font-size:11px;
  font-weight:950;
  letter-spacing:.12em;
  backdrop-filter:blur(6px);
}

.store-spotlight-content-v151{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:18px 20px 19px;
  background:linear-gradient(135deg,#fffdf8,#faeddd);
}

.store-spotlight-content-v151 .store-switch-current-v150{
  gap:3px;
}

.store-spotlight-content-v151 .store-switch-current-v150 strong{
  font-size:23px;
}

.store-spotlight-content-v151 .store-switch-current-v150>span{
  color:#756256;
  line-height:1.45;
  white-space:normal;
}

.store-spotlight-content-v151 .store-switch-current-v150 em{
  margin-top:2px;
  color:#a4572e;
  font-size:13px;
  font-style:normal;
  font-weight:900;
}

.store-spotlight-content-v151 .store-switch-action-v150{
  min-width:76px;
  justify-items:center;
  padding:10px 11px;
  border:1px solid #e2bc94;
  border-radius:15px;
  background:#fff8ef;
}

.store-spotlight-v151 .store-switch-menu-v150{
  width:min(470px,calc(100vw - 28px));
}

@media(max-width:940px){
  .store-hero-layout-v151{
    grid-template-columns:1fr;
  }
  .store-hero-intro-v151{
    padding:8px 8px 0;
  }
  .store-hero-intro-v151 .store-action-row{
    margin-top:0;
  }
  .store-spotlight-trigger-v151{
    min-height:350px;
  }
}

@media(max-width:620px){
  .store-hero-v151{
    padding:16px !important;
    border-radius:22px !important;
  }
  .store-hero-layout-v151{
    gap:20px;
  }
  .store-hero-intro-v151{
    padding:3px 3px 0;
  }
  .store-hero-intro-v151 .section-desc{
    margin-top:18px;
    font-size:15px;
    line-height:1.75;
  }
  .store-hero-services-v151{
    margin-top:14px;
    gap:7px;
  }
  .store-hero-services-v151 span{
    min-height:31px;
    padding:0 10px;
    font-size:12px;
  }
  .store-hero-intro-v151 .store-action-row{
    width:100%;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:9px;
    padding-top:18px;
  }
  .store-hero-intro-v151 .store-action-row .btn{
    width:100%;
    justify-content:center !important;
    padding-left:12px !important;
    text-align:center !important;
  }
  .store-spotlight-trigger-v151{
    min-height:315px;
    grid-template-rows:178px auto;
    border-radius:21px;
  }
  .store-spotlight-content-v151{
    align-items:flex-end;
    gap:10px;
    padding:15px;
  }
  .store-spotlight-content-v151 .store-switch-current-v150 strong{
    font-size:20px;
  }
  .store-spotlight-content-v151 .store-switch-current-v150>span{
    font-size:12px;
  }
  .store-spotlight-content-v151 .store-switch-action-v150{
    min-width:62px;
    padding:9px 8px;
    font-size:11px;
  }
}

/* v150 shared branch switcher */
.store-switcher-v150{
  position:relative;
  min-width:0;
  z-index:24;
}

.order-hero-store.store-switcher-v150{
  display:block;
  padding:0;
  overflow:visible;
}

.store-page .store-hero-card{
  overflow:visible !important;
}

.store-page-switcher-v150{
  max-width:520px;
  margin-top:22px;
}

.store-switch-trigger-v150{
  width:100%;
  min-height:108px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:20px 22px;
  border:0;
  border-radius:23px;
  background:rgba(255,253,248,.96);
  color:#241b17;
  text-align:left;
  cursor:pointer;
  box-shadow:0 14px 28px rgba(92,48,24,.06);
  transition:border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.order-hero-store .store-switch-trigger-v150{
  min-height:100%;
  gap:12px;
  padding:18px 20px;
}

.store-page-switcher-v150 .store-switch-trigger-v150{
  border:1px solid #e5c7a4;
  background:linear-gradient(135deg,#fffdf8,#fbefe1);
}

.store-switch-trigger-v150:hover,
.store-switch-trigger-v150:focus-visible,
.store-switcher-v150.is-open .store-switch-trigger-v150{
  outline:none;
  border-color:#c66d33;
  box-shadow:0 16px 34px rgba(125,62,28,.14),0 0 0 3px rgba(216,126,61,.1);
  transform:translateY(-1px);
}

.store-switch-current-v150{
  min-width:0;
  display:grid;
  gap:4px;
}

.store-switch-current-v150 small{
  color:#b15c2b;
  font-size:12px;
  font-weight:900;
  letter-spacing:.08em;
}

.order-hero-store .store-switch-current-v150 strong,
.store-switch-current-v150 strong{
  overflow:hidden;
  color:#241b17;
  font-size:22px;
  line-height:1.25;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.order-hero-store .store-switch-current-v150 span,
.store-switch-current-v150 span{
  color:#8a6b57;
  font-size:14px;
}

.order-hero-store .store-switch-current-v150 span{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.order-hero-store .store-switch-action-v150{
  display:flex;
  align-items:center;
  justify-content:center;
  width:40px;
  height:40px;
  padding:0;
  border:1px solid #e4c5a4;
  border-radius:50%;
  background:#fffdfa;
  color:#9f4b29;
  box-shadow:0 5px 14px rgba(97,55,31,.08);
}

.order-hero-store .store-switch-action-v150 svg{
  width:18px;
  height:18px;
  fill:none;
  stroke:currentColor;
  stroke-width:2;
  stroke-linecap:round;
  stroke-linejoin:round;
  transition:transform .18s ease;
}

.order-hero-store .store-switch-action-text-v166{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}

.order-hero-store.store-switcher-v150.is-open .store-switch-action-v150 svg{
  transform:rotate(180deg);
}

.store-switch-action-v150{
  flex:0 0 auto;
  display:grid;
  justify-items:end;
  gap:4px;
  color:#b45726;
  font-size:12px;
  font-weight:900;
  white-space:nowrap;
}

.store-switch-action-v150 b{
  font-size:18px;
  line-height:1;
  transition:transform .18s ease;
}

.store-switcher-v150.is-open .store-switch-action-v150 b{
  transform:rotate(180deg);
}

.store-switch-menu-v150{
  position:absolute;
  top:calc(100% + 10px);
  right:0;
  width:min(410px,calc(100vw - 28px));
  max-height:min(520px,calc(100vh - 110px));
  overflow:auto;
  padding:10px;
  border:1px solid #e3c5a3;
  border-radius:22px;
  background:#fffdfa;
  box-shadow:0 24px 58px rgba(74,36,16,.2);
  z-index:80;
}

.store-switch-menu-v150[hidden]{display:none;}

.store-switch-menu-head-v150{
  display:grid;
  gap:3px;
  padding:8px 10px 12px;
  border-bottom:1px solid #efe0cf;
}

.store-switch-menu-head-v150 strong{font-size:17px;}
.store-switch-menu-head-v150 small{color:#8b7669;font-size:12px;}

.store-switch-option-v150{
  width:100%;
  display:grid;
  grid-template-columns:28px minmax(0,1fr);
  gap:10px;
  align-items:start;
  padding:13px 10px;
  border:0;
  border-radius:15px;
  background:transparent;
  color:#30231d;
  text-align:left;
  cursor:pointer;
}

.store-switch-option-v150:hover,
.store-switch-option-v150:focus-visible{
  outline:none;
  background:#fbf1e5;
}

.store-switch-option-v150.is-active{
  background:#f8e7d4;
}

.store-switch-check-v150{
  width:24px;
  height:24px;
  display:grid;
  place-items:center;
  border:1px solid #dec5aa;
  border-radius:50%;
  color:transparent;
  font-size:13px;
  font-weight:950;
}

.store-switch-option-v150.is-active .store-switch-check-v150{
  border-color:#c75d28;
  background:#c75d28;
  color:#fff;
}

.store-switch-option-v150>span:last-child{
  min-width:0;
  display:grid;
  gap:3px;
}

.store-switch-option-v150 strong{font-size:16px;}
.store-switch-option-v150 small,
.store-switch-option-v150 em{
  overflow:hidden;
  color:#79685e;
  font-size:12px;
  font-style:normal;
  line-height:1.45;
  text-overflow:ellipsis;
}
.store-switch-option-v150 small{white-space:nowrap;}
.store-switch-option-v150 em{color:#a0522a;}

.store-transit-v150{
  margin-top:8px !important;
  color:#a15a35 !important;
  font-weight:800;
}

@media(max-width:620px){
  .store-page-switcher-v150{max-width:none;}
  .store-switch-trigger-v150{min-height:100px;padding:17px 16px;}
  .order-hero-store .store-switch-current-v150 strong,
  .store-switch-current-v150 strong{font-size:20px;}
  .store-switch-menu-v150{
    position:fixed;
    top:92px;
    left:14px;
    right:14px;
    width:auto;
    max-height:calc(100vh - 112px);
  }
  .store-switch-option-v150{padding:14px 10px;}
}

/* =========================================================
   v149 - multi-store reservation experience
   Store discovery -> store/location detail -> date/time/party
   ========================================================= */
.reservation-modern-page{
  background:#fffaf4;
}

.reservation-page-v149{
  padding-top:42px;
}

.reservation-shell-v149{
  max-width:1220px;
}

.reservation-service-tabs-v149{
  display:flex;
  align-items:center;
  gap:26px;
  margin-bottom:34px;
  border-bottom:1px solid #ead8c4;
}

.reservation-service-tabs-v149 a{
  position:relative;
  display:flex;
  align-items:center;
  gap:9px;
  min-height:58px;
  color:#5e5149;
  font-size:16px;
  font-weight:900;
  text-decoration:none;
}

.reservation-service-tabs-v149 a span{
  color:#c7652e;
  font-size:19px;
}

.reservation-service-tabs-v149 a.active{
  color:#231a16;
}

.reservation-service-tabs-v149 a.active::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:-1px;
  height:4px;
  border-radius:999px 999px 0 0;
  background:#c7652e;
}

.reservation-hero-v149{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:28px;
  margin-bottom:26px;
}

.reservation-hero-v149 .section-title{
  margin-bottom:10px;
}

.reservation-hero-v149 .section-desc{
  max-width:760px;
}

.reservation-fast-rule-v149{
  flex:0 0 auto;
  display:grid;
  gap:4px;
  min-width:230px;
  padding:16px 18px;
  border:1px solid #e7c9a7;
  border-radius:18px;
  background:#fff;
}

.reservation-fast-rule-v149 strong{
  color:#9c3b27;
  font-size:13px;
}

.reservation-fast-rule-v149 span{
  color:#7c695d;
  font-size:12px;
}

.reservation-filter-card-v149,
.reservation-booking-card-v149,
.reservation-form-card-v149,
.reservation-list-card-v149{
  border:1px solid #e7d1b8;
  border-radius:24px;
  background:#fffdf9;
  box-shadow:0 15px 38px rgba(82,48,28,.07);
}

.reservation-filter-card-v149{
  padding:22px 24px 0;
  margin-bottom:8px;
}

.reservation-filter-grid-v149{
  display:grid;
  grid-template-columns:minmax(170px,.7fr) minmax(170px,.7fr) minmax(250px,1.25fr);
  gap:12px;
}

.reservation-filter-grid-v149 label,
.reservation-detail-controls-v149 label,
.reservation-date-control-v149,
.reservation-form-grid-v149 label,
.reservation-note-v149{
  display:grid;
  gap:7px;
}

.reservation-filter-grid-v149 label>span,
.reservation-detail-controls-v149 label>span,
.reservation-date-control-v149>span,
.reservation-form-grid-v149 label>span,
.reservation-note-v149>span{
  color:#392b24;
  font-size:13px;
  font-weight:900;
}

.reservation-filter-grid-v149 select,
.reservation-detail-controls-v149 select,
.reservation-form-grid-v149 input,
.reservation-form-grid-v149 select,
.reservation-note-v149 textarea{
  width:100%;
  min-height:46px;
  padding:10px 13px;
  border:1px solid #ddc8b1;
  border-radius:12px;
  background:#fff;
  color:#2f241e;
  font:inherit;
}

.reservation-filter-help-v149,
.reservation-detail-help-v149{
  margin:9px 0 0;
  color:#827064;
  font-size:12px;
}

.reservation-detail-help-v149 a{
  color:#b64d2b;
  font-weight:900;
}

.reservation-period-tabs-v149{
  display:flex;
  gap:12px;
  margin-top:18px;
  border-top:1px solid #eee0d1;
}

.reservation-period-tabs-v149 button{
  position:relative;
  min-width:110px;
  min-height:54px;
  padding:0 18px;
  border:0;
  background:transparent;
  color:#75655b;
  font-weight:900;
  cursor:pointer;
}

.reservation-period-tabs-v149 button.active{
  color:#bc592c;
}

.reservation-period-tabs-v149 button.active::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:-1px;
  height:3px;
  background:#c7652e;
}

.reservation-store-list-v149{
  display:grid;
  gap:0;
}

.reservation-store-card-v149{
  display:grid;
  grid-template-columns:260px minmax(0,1fr);
  gap:22px;
  align-items:center;
  padding:24px 0;
  border-bottom:1px solid #eadccf;
}

.reservation-store-cover-v149{
  position:relative;
  overflow:hidden;
  min-height:170px;
  border-radius:19px;
  background:#ead9c8;
}

.reservation-store-cover-v149 img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
}

.reservation-store-cover-v149 span{
  position:absolute;
  left:12px;
  bottom:12px;
  padding:6px 9px;
  border-radius:999px;
  background:rgba(43,29,22,.78);
  color:#fff;
  font-size:11px;
  font-weight:900;
  backdrop-filter:blur(8px);
}

.reservation-store-main-v149{
  min-width:0;
}

.reservation-store-title-row-v149{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
}

.reservation-store-title-row-v149 h2{
  margin:0 0 4px;
  color:#241b17;
  font-size:22px;
}

.reservation-store-title-row-v149 p{
  margin:0;
  color:#8a776b;
  font-size:13px;
}

.reservation-store-enter-v149{
  flex:0 0 auto;
  padding:8px 12px;
  border:1px solid #dec2a3;
  border-radius:11px;
  background:#fff8ef;
  color:#75432d;
  font-weight:900;
  cursor:pointer;
}

.reservation-quick-slots-v149{
  display:flex;
  align-items:stretch;
  gap:8px;
  overflow-x:auto;
  margin-top:15px;
  padding:2px 2px 5px;
  scrollbar-width:thin;
  scrollbar-color:#d4ad88 transparent;
}

.reservation-quick-slot-v149{
  flex:0 0 82px;
  min-height:50px;
  padding:7px 8px;
  border:1px solid #c7652e;
  border-radius:10px;
  background:#c7652e;
  color:#fff;
  font-weight:900;
  line-height:1.2;
  cursor:pointer;
}

.reservation-quick-slot-v149 small,
.reservation-quick-slot-v149 strong{
  display:block;
}

.reservation-quick-slot-v149 small{
  margin-bottom:3px;
  font-size:10px;
}

.reservation-quick-slot-v149 strong{
  font-size:13px;
}

.reservation-store-more-v149{
  flex:0 0 48px;
  min-height:50px;
  border:1px solid #d9b796;
  border-radius:10px;
  background:#fff8ef;
  color:#9d4928;
  font-size:20px;
  font-weight:900;
  cursor:pointer;
}

.reservation-empty-v149{
  margin:18px 0;
  padding:22px;
  border:1px dashed #dfc7ad;
  border-radius:16px;
  background:#fff;
  color:#806d61;
  text-align:center;
}

.reservation-detail-view-v149{
  display:grid;
  gap:18px;
}

.reservation-detail-view-v149[hidden]{
  display:none !important;
}

.reservation-back-v149{
  justify-self:start;
  display:flex;
  align-items:center;
  gap:8px;
  padding:9px 13px;
  border:1px solid #e0c8ae;
  border-radius:999px;
  background:#fff;
  color:#6d4c39;
  font-weight:900;
  cursor:pointer;
}

.reservation-store-detail-v149{
  display:grid;
  grid-template-columns:minmax(260px,.9fr) minmax(320px,1.15fr) minmax(230px,.75fr);
  gap:22px;
  padding:22px;
  border:1px solid #e5cdb2;
  border-radius:26px;
  background:#fffdf9;
  box-shadow:0 18px 46px rgba(79,46,26,.08);
}

.reservation-detail-cover-v149{
  position:relative;
  min-height:300px;
  overflow:hidden;
  border-radius:20px;
  background:#eadaca;
}

.reservation-detail-cover-v149 img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
}

.reservation-detail-info-v149>span{
  color:#b25d32;
  font-size:10px;
  font-weight:900;
  letter-spacing:.12em;
}

.reservation-detail-info-v149 h2{
  margin:5px 0 4px;
  font-size:28px;
}

.reservation-detail-address-v149{
  margin:0;
  color:#806d61;
}

.reservation-location-note-v149{
  margin-top:20px;
  padding-top:18px;
  border-top:1px solid #ead9c7;
}

.reservation-location-note-v149 h3{
  margin:0 0 8px;
  font-size:17px;
}

.reservation-location-note-v149 p{
  margin:0 0 8px;
  color:#6f5e54;
  font-size:13px;
}

.reservation-location-note-v149 ul{
  margin:0;
  padding-left:19px;
  color:#7b685c;
  font-size:12px;
}

.reservation-detail-actions-v149{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:15px;
}

.reservation-detail-actions-v149 a{
  padding:8px 11px;
  border-radius:10px;
  background:#f5e7d7;
  color:#74462f;
  font-size:12px;
  font-weight:900;
  text-decoration:none;
}

.reservation-map-card-v149{
  position:relative;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:300px;
  overflow:hidden;
  padding:20px;
  border-radius:20px;
  background:
    linear-gradient(32deg,transparent 46%,rgba(255,255,255,.9) 47% 53%,transparent 54%),
    linear-gradient(-38deg,transparent 43%,rgba(255,255,255,.78) 44% 50%,transparent 51%),
    #e7dfd0;
  color:#48382f;
  text-align:center;
}

.reservation-map-pin-v149{
  display:grid;
  place-items:center;
  width:54px;
  height:54px;
  border-radius:50% 50% 50% 12px;
  background:#a23e2e;
  color:#fff;
  font-size:24px;
  font-weight:900;
  transform:rotate(-45deg);
  box-shadow:0 12px 25px rgba(103,49,35,.22);
}

.reservation-map-pin-v149 span{
  transform:rotate(45deg);
}

.reservation-map-card-v149 strong{
  margin-top:8px;
}

.reservation-map-card-v149 small{
  color:#6f5e54;
  line-height:1.5;
}

.reservation-booking-card-v149,
.reservation-form-card-v149,
.reservation-list-card-v149{
  padding:24px;
}

.reservation-card-head-v149{
  margin-bottom:20px;
}

.reservation-card-head-v149>span{
  color:#b66438;
  font-size:10px;
  font-weight:900;
  letter-spacing:.13em;
}

.reservation-card-head-v149 h2{
  margin:4px 0 5px;
  font-size:24px;
}

.reservation-card-head-v149 p{
  margin:0;
  color:#806d61;
  font-size:13px;
}

.reservation-detail-controls-v149{
  display:grid;
  grid-template-columns:minmax(150px,.65fr) minmax(150px,.65fr) minmax(280px,1.4fr);
  gap:12px;
}

.reservation-date-control-v149 button{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  width:100%;
  min-height:46px;
  padding:10px 13px;
  border:1px solid #ddc8b1;
  border-radius:12px;
  background:#fff;
  color:#2f241e;
  text-align:left;
  cursor:pointer;
}

.reservation-date-control-v149 button i{
  font-style:normal;
  color:#9a8374;
}

.reservation-time-groups-v149{
  display:grid;
  gap:20px;
  margin-top:26px;
}

.reservation-time-group-v149 h3{
  display:flex;
  align-items:center;
  gap:12px;
  margin:0 0 10px;
  color:#7d6a5e;
  font-size:13px;
}

.reservation-time-group-v149 h3::after{
  content:"";
  flex:1;
  height:1px;
  background:#eadbca;
}

.reservation-time-grid-v149{
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:10px;
}

.reservation-time-grid-v149 button{
  min-height:50px;
  border:1px solid #d8c7b7;
  border-radius:11px;
  background:#fff;
  color:#40332c;
  font-size:14px;
  font-weight:900;
  cursor:pointer;
}

.reservation-time-grid-v149 button:hover,
.reservation-time-grid-v149 button.active{
  border-color:#c7652e;
  background:#c7652e;
  color:#fff;
}

.reservation-time-grid-v149 button:disabled{
  border-color:#e4ddd6;
  background:#f4f1ee;
  color:#b7ada6;
  text-decoration:line-through;
  cursor:not-allowed;
}

.reservation-more-date-v149{
  margin-top:18px;
  padding:9px 13px;
  border:1px solid #d9b999;
  border-radius:11px;
  background:#fff8ef;
  color:#86462c;
  font-weight:900;
  cursor:pointer;
}

.reservation-selected-summary-v149,
.reservation-remaining-v149{
  margin-top:14px;
  padding:11px 13px;
  border-radius:12px;
  background:#f4e8d8;
  color:#714d38;
  font-size:13px;
  font-weight:900;
}

.reservation-form-grid-v149{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:13px;
}

.reservation-note-v149{
  margin-top:13px;
}

.reservation-note-v149 textarea{
  min-height:88px;
  resize:vertical;
}

.reservation-submit-v149{
  width:100%;
  min-height:50px;
  margin-top:14px;
  border:0;
  border-radius:13px;
  background:#a23e2e;
  color:#fff;
  font-size:15px;
  font-weight:900;
  cursor:pointer;
}

.reservation-list-card-v149{
  margin-top:24px;
}

.reservation-list-card-v149 [data-reservation-list]{
  display:grid;
  gap:11px;
}

.reservation-record-v149{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  padding:15px;
  border:1px solid #ead8c4;
  border-radius:15px;
  background:#fff;
}

.reservation-record-v149.is-cancelled{
  opacity:.58;
}

.reservation-record-v149>div:first-child{
  display:grid;
  gap:3px;
}

.reservation-record-v149 span{
  color:#b46237;
  font-size:10px;
  font-weight:900;
}

.reservation-record-v149 h3{
  margin:0;
  font-size:17px;
}

.reservation-record-v149 p,
.reservation-record-v149 small{
  margin:0;
  color:#78665b;
  font-size:12px;
}

.reservation-record-actions-v149{
  display:flex;
  align-items:center;
  gap:7px;
  flex-wrap:wrap;
  justify-content:flex-end;
}

.reservation-record-actions-v149 em{
  font-style:normal;
  color:#8f432b;
  font-size:12px;
  font-weight:900;
}

.reservation-record-actions-v149 button{
  padding:7px 9px;
  border:1px solid #dbc0a2;
  border-radius:9px;
  background:#fff7ee;
  color:#684535;
  font-size:11px;
  font-weight:900;
  cursor:pointer;
}

.reservation-record-actions-v149 button.danger{
  border-color:#e4b8b8;
  background:#fff4f4;
  color:#a22d2d;
}

.reservation-calendar-modal-v149{
  position:fixed;
  inset:0;
  z-index:40000;
  display:none;
  align-items:center;
  justify-content:center;
  padding:18px;
}

.reservation-calendar-modal-v149.is-open{
  display:flex;
}

.reservation-calendar-backdrop-v149{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  border:0;
  background:rgba(34,25,20,.54);
  backdrop-filter:blur(3px);
}

.reservation-calendar-card-v149{
  position:relative;
  z-index:1;
  width:min(520px,100%);
  max-height:92dvh;
  overflow:auto;
  border-radius:24px;
  background:#fffdf9;
  box-shadow:0 28px 84px rgba(35,22,15,.3);
}

.reservation-calendar-card-v149>header{
  position:sticky;
  top:0;
  z-index:2;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  padding:19px 21px 16px;
  border-bottom:1px solid #ead8c4;
  background:#fffdf9;
}

.reservation-calendar-card-v149>header span{
  color:#b66236;
  font-size:9px;
  font-weight:900;
  letter-spacing:.12em;
}

.reservation-calendar-card-v149>header h2{
  margin:3px 0;
  font-size:21px;
}

.reservation-calendar-card-v149>header p{
  margin:0;
  color:#806d61;
  font-size:12px;
}

.reservation-calendar-card-v149>header>button{
  flex:0 0 auto;
  width:38px;
  height:38px;
  border:1px solid #e1cdb7;
  border-radius:50%;
  background:#fff;
  color:#4c3c33;
  font-size:24px;
  cursor:pointer;
}

.reservation-calendar-body-v149{
  padding:19px 22px 23px;
}

.reservation-calendar-nav-v149{
  display:grid;
  grid-template-columns:42px 1fr 42px;
  align-items:center;
  margin-bottom:12px;
}

.reservation-calendar-nav-v149 strong{
  text-align:center;
  font-size:19px;
}

.reservation-calendar-nav-v149 button{
  width:38px;
  height:38px;
  border:0;
  border-radius:50%;
  background:transparent;
  color:#8a776b;
  font-size:28px;
  cursor:pointer;
}

.reservation-calendar-week-v149,
.reservation-calendar-grid-v149{
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr));
  gap:7px;
}

.reservation-calendar-week-v149{
  margin-bottom:7px;
}

.reservation-calendar-week-v149 span{
  color:#8d7c71;
  font-size:11px;
  text-align:center;
}

.reservation-calendar-day-v149,
.reservation-calendar-blank-v149{
  aspect-ratio:1;
}

.reservation-calendar-day-v149{
  border:1px solid #ddd0c3;
  border-radius:9px;
  background:#fff;
  color:#42362f;
  font-weight:900;
  cursor:pointer;
}

.reservation-calendar-day-v149:hover,
.reservation-calendar-day-v149.active{
  border-color:#c7652e;
  background:#c7652e;
  color:#fff;
}

.reservation-calendar-day-v149:disabled{
  border-color:transparent;
  background:#f4f1ee;
  color:#c6bdb7;
  cursor:not-allowed;
}

.reservation-calendar-day-v149.is-today::after{
  content:"";
  display:block;
  width:10px;
  height:2px;
  margin:3px auto 0;
  background:#c7652e;
}

.reservation-calendar-day-v149.active.is-today::after{
  background:#fff;
}

.reservation-calendar-or-v149{
  display:flex;
  align-items:center;
  gap:10px;
  margin:18px 0;
  color:#715b4e;
  font-size:11px;
  font-weight:900;
}

.reservation-calendar-or-v149::before,
.reservation-calendar-or-v149::after{
  content:"";
  flex:1;
  height:1px;
  background:#e7d8ca;
}

.reservation-calendar-body-v149 h3{
  margin:0 0 10px;
  font-size:15px;
  text-align:center;
}

.reservation-party-buttons-v149{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;
}

.reservation-party-buttons-v149 button{
  min-height:40px;
  border:1px solid #dbcab9;
  border-radius:9px;
  background:#fff;
  color:#4a3d35;
  font-weight:900;
  cursor:pointer;
}

.reservation-party-buttons-v149 button.active{
  border-color:#c7652e;
  background:#fff5e9;
  color:#b94f29;
}

.reservation-calendar-apply-v149{
  width:100%;
  min-height:46px;
  margin-top:16px;
  border:0;
  border-radius:12px;
  background:#a23e2e;
  color:#fff;
  font-weight:900;
  cursor:pointer;
}

body.reservation-calendar-open-v149{
  overflow:hidden;
}

@media(max-width:1050px){
  .reservation-store-detail-v149{
    grid-template-columns:minmax(250px,.85fr) minmax(0,1.15fr);
  }

  .reservation-map-card-v149{
    grid-column:1 / -1;
    min-height:210px;
  }

  .reservation-time-grid-v149{
    grid-template-columns:repeat(4,minmax(0,1fr));
  }
}

@media(max-width:820px){
  .reservation-page-v149{
    padding-top:28px;
  }

  .reservation-hero-v149{
    display:grid;
    gap:14px;
  }

  .reservation-fast-rule-v149{
    min-width:0;
  }

  .reservation-filter-grid-v149,
  .reservation-detail-controls-v149{
    grid-template-columns:1fr 1fr;
  }

  .reservation-filter-date-v149,
  .reservation-date-control-v149{
    grid-column:1 / -1;
  }

  .reservation-store-card-v149{
    grid-template-columns:210px minmax(0,1fr);
  }

  .reservation-store-detail-v149{
    grid-template-columns:1fr;
  }

  .reservation-detail-cover-v149{
    min-height:280px;
  }

  .reservation-map-card-v149{
    grid-column:auto;
  }
}

@media(max-width:620px){
  .reservation-service-tabs-v149{
    gap:18px;
    margin-bottom:24px;
  }

  .reservation-service-tabs-v149 a{
    min-height:52px;
    font-size:15px;
  }

  .reservation-filter-card-v149,
  .reservation-booking-card-v149,
  .reservation-form-card-v149,
  .reservation-list-card-v149{
    padding:16px;
    border-radius:19px;
  }

  .reservation-filter-card-v149{
    padding-bottom:0;
  }

  .reservation-filter-grid-v149,
  .reservation-detail-controls-v149,
  .reservation-form-grid-v149{
    grid-template-columns:1fr;
  }

  .reservation-filter-date-v149,
  .reservation-date-control-v149{
    grid-column:auto;
  }

  .reservation-period-tabs-v149{
    gap:0;
  }

  .reservation-period-tabs-v149 button{
    flex:1;
    min-width:0;
    padding:0 8px;
  }

  .reservation-store-card-v149{
    grid-template-columns:1fr;
    gap:14px;
    padding:20px 0;
  }

  .reservation-store-cover-v149{
    min-height:210px;
  }

  .reservation-store-title-row-v149{
    gap:10px;
  }

  .reservation-store-title-row-v149 h2{
    font-size:20px;
  }

  .reservation-store-enter-v149{
    padding:7px 10px;
    font-size:12px;
  }

  .reservation-quick-slots-v149{
    margin-right:-14px;
  }

  .reservation-store-detail-v149{
    padding:15px;
    border-radius:20px;
  }

  .reservation-detail-cover-v149{
    min-height:230px;
  }

  .reservation-detail-info-v149 h2{
    font-size:24px;
  }

  .reservation-time-grid-v149{
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:8px;
  }

  .reservation-record-v149{
    display:grid;
  }

  .reservation-record-actions-v149{
    justify-content:flex-start;
  }

  .reservation-calendar-modal-v149{
    align-items:flex-end;
    padding:0;
  }

  .reservation-calendar-card-v149{
    width:100%;
    max-height:94dvh;
    border-radius:24px 24px 0 0;
  }

  .reservation-calendar-body-v149{
    padding:17px 15px calc(20px + env(safe-area-inset-bottom,0px));
  }

  .reservation-calendar-week-v149,
  .reservation-calendar-grid-v149{
    gap:5px;
  }
}

@media(max-width:390px){
  .reservation-time-grid-v149{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .reservation-party-buttons-v149{
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:6px;
  }
}

/* v147: mobile search bar cleanup + cancel button
   手機搜尋改成 header 下方的橫向搜尋列，避免原本 top sheet 被主選單壓住後只露出奇怪的大圓角搜尋框。 */
.order-search-mobile-row,
.order-search-cancel-btn{
  display:none;
}

@media (max-width:980px){
  .order-search-backdrop{
    top:68px !important;
    z-index:29970 !important;
    background:rgba(34,24,18,.10) !important;
    backdrop-filter:none !important;
    -webkit-backdrop-filter:none !important;
  }

  .order-search-modal{
    top:68px !important;
    left:0 !important;
    right:0 !important;
    z-index:29980 !important;
    display:block !important;
    padding:10px 14px 12px !important;
    border-radius:0 0 20px 20px !important;
    border:0 !important;
    border-bottom:1px solid #ead8c4 !important;
    background:rgba(255,250,244,.98) !important;
    box-shadow:0 10px 24px rgba(72,42,25,.10) !important;
    transform:translateY(-120%) !important;
  }

  .order-search-modal.is-open{
    transform:translateY(0) !important;
  }

  .order-search-modal-head{
    display:none !important;
  }

  .order-search-mobile-row{
    display:flex !important;
    align-items:center !important;
    gap:10px !important;
    width:100% !important;
  }

  .order-search-modal-box{
    flex:1 1 auto !important;
    min-width:0 !important;
    min-height:46px !important;
    height:46px !important;
    display:flex !important;
    align-items:center !important;
    gap:10px !important;
    padding:0 14px !important;
    border-radius:999px !important;
    border:1px solid #e3c6a8 !important;
    background:#fffdf8 !important;
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.55) !important;
  }

  .order-search-modal-box svg{
    flex:0 0 auto !important;
    width:20px !important;
    height:20px !important;
    color:#8b7769 !important;
  }

  .order-search-modal-box input{
    min-width:0 !important;
    width:100% !important;
    height:44px !important;
    border:0 !important;
    outline:0 !important;
    background:transparent !important;
    color:#2b211c !important;
    font-size:16px !important;
    font-weight:800 !important;
    line-height:1 !important;
  }

  .order-search-modal-box input::placeholder{
    color:#8a7c70 !important;
    opacity:1 !important;
    font-weight:800 !important;
  }

  .order-search-cancel-btn{
    flex:0 0 auto !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    min-width:48px !important;
    height:46px !important;
    padding:0 2px !important;
    border:0 !important;
    border-radius:0 !important;
    background:transparent !important;
    color:#9b3528 !important;
    font-size:16px !important;
    font-weight:900 !important;
    letter-spacing:.02em !important;
    box-shadow:none !important;
  }

  .order-search-cancel-btn:active{
    transform:translateY(1px);
  }
}

@media (max-width:520px){
  .order-search-backdrop{
    top:64px !important;
  }

  .order-search-modal{
    top:64px !important;
    padding:9px 12px 11px !important;
    border-radius:0 0 18px 18px !important;
  }

  .order-search-modal-box{
    min-height:44px !important;
    height:44px !important;
    padding:0 13px !important;
  }

  .order-search-modal-box input{
    height:42px !important;
    font-size:15px !important;
  }

  .order-search-cancel-btn{
    min-width:44px !important;
    height:44px !important;
    font-size:15px !important;
  }
}


/* v144 persistent fix: 商品彈窗 X 關閉鈕永遠固定在右上角，不跟著內容捲動 */
.product-modal > .modal-close{
  position:fixed !important;
  top:calc(env(safe-area-inset-top, 0px) + 16px) !important;
  right:calc((100vw - min(100vw, 520px)) / 2 + 16px) !important;
  z-index:9999 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:44px !important;
  height:44px !important;
  min-width:44px !important;
  min-height:44px !important;
  border:0 !important;
  border-radius:999px !important;
  background:rgba(255,255,255,.96) !important;
  color:#111 !important;
  font-size:28px !important;
  line-height:1 !important;
  box-shadow:0 8px 26px rgba(34,20,12,.16) !important;
  cursor:pointer !important;
  opacity:1 !important;
  visibility:visible !important;
  pointer-events:auto !important;
}
.product-modal.is-open > .modal-close{
  opacity:1 !important;
  visibility:visible !important;
  pointer-events:auto !important;
}
@media (max-width:760px){
  .product-modal > .modal-close{
    top:calc(env(safe-area-inset-top, 0px) + 14px) !important;
    right:14px !important;
    width:46px !important;
    height:46px !important;
    min-width:46px !important;
    min-height:46px !important;
    font-size:30px !important;
  }
}


/* v145 fix2: 手機商品彈窗 X 使用 body 層固定按鈕，避免被 modal-card / 圖片 / 捲動層蓋掉 */
.product-modal-global-close{
  position:fixed !important;
  top:calc(env(safe-area-inset-top, 0px) + 14px) !important;
  right:14px !important;
  z-index:2147483647 !important;
  display:none !important;
  align-items:center !important;
  justify-content:center !important;
  width:48px !important;
  height:48px !important;
  min-width:48px !important;
  min-height:48px !important;
  padding:0 !important;
  border:0 !important;
  border-radius:999px !important;
  background:rgba(255,255,255,.98) !important;
  color:#111 !important;
  font-size:32px !important;
  line-height:1 !important;
  font-weight:400 !important;
  box-shadow:0 10px 30px rgba(28,18,12,.22) !important;
  opacity:0 !important;
  visibility:hidden !important;
  pointer-events:none !important;
  cursor:pointer !important;
  -webkit-tap-highlight-color:transparent !important;
}
.product-modal-global-close.is-visible,
body.product-modal-open .product-modal-global-close{
  display:flex !important;
  opacity:1 !important;
  visibility:visible !important;
  pointer-events:auto !important;
}
.product-modal.is-open > .modal-close{
  display:flex !important;
}
@media (min-width:761px){
  body.product-modal-open .product-modal-global-close{
    right:calc((100vw - min(100vw, 520px)) / 2 + 16px) !important;
  }
}
@media (max-width:520px){
  .product-modal-global-close{
    top:calc(env(safe-area-inset-top, 0px) + 12px) !important;
    right:12px !important;
    width:50px !important;
    height:50px !important;
    min-width:50px !important;
    min-height:50px !important;
    font-size:34px !important;
  }
}

/* v145 fix3: 商品彈窗 X 僅在商品內容開啟時顯示，且手機版避開上方 header */
.product-modal-global-close{
  display:none !important;
  opacity:0 !important;
  visibility:hidden !important;
  pointer-events:none !important;
}

.product-modal > .modal-close{
  display:none !important;
  opacity:0 !important;
  visibility:hidden !important;
  pointer-events:none !important;
}

.product-modal.is-open > .modal-close{
  position:fixed !important;
  top:calc(env(safe-area-inset-top, 0px) + 16px) !important;
  right:calc((100vw - min(100vw, 560px)) / 2 + 16px) !important;
  z-index:3060 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:46px !important;
  height:46px !important;
  min-width:46px !important;
  min-height:46px !important;
  padding:0 !important;
  border:0 !important;
  border-radius:999px !important;
  background:rgba(255,255,255,.98) !important;
  color:#111 !important;
  font-size:30px !important;
  line-height:1 !important;
  font-weight:400 !important;
  box-shadow:0 10px 28px rgba(28,18,12,.18) !important;
  opacity:1 !important;
  visibility:visible !important;
  pointer-events:auto !important;
  cursor:pointer !important;
  -webkit-tap-highlight-color:transparent !important;
}

@media (max-width:980px){
  .product-modal.is-open > .modal-close{
    top:calc(env(safe-area-inset-top, 0px) + 78px) !important;
    right:14px !important;
    z-index:3060 !important;
    width:48px !important;
    height:48px !important;
    min-width:48px !important;
    min-height:48px !important;
    font-size:32px !important;
  }
}

@media (max-width:520px){
  .product-modal.is-open > .modal-close{
    top:calc(env(safe-area-inset-top, 0px) + 76px) !important;
    right:12px !important;
    width:48px !important;
    height:48px !important;
    min-width:48px !important;
    min-height:48px !important;
  }
}



/* =========================================================
   v146 會員資產、商品規格、分類／時段上下架前台機制
   ========================================================= */
[hidden]{display:none !important;}

.order-product{position:relative;}
.order-product.is-sale-unavailable{
  cursor:not-allowed !important;
  overflow:hidden;
}
.order-product.is-sale-unavailable::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:3;
  background:rgba(250,246,239,.48);
  pointer-events:none;
}
.order-product.is-sale-unavailable img{filter:grayscale(.55); opacity:.7;}
.order-product.is-sale-unavailable .hybrid-plus{
  background:#aaa !important;
  color:#fff !important;
  cursor:not-allowed !important;
}
.product-sale-status-v146{
  position:absolute;
  z-index:5;
  top:12px;
  left:12px;
  max-width:calc(100% - 24px);
  padding:6px 10px;
  border-radius:999px;
  background:#31251f;
  color:#fff;
  font-size:12px;
  font-weight:900;
  line-height:1.2;
  box-shadow:0 5px 16px rgba(0,0,0,.13);
}
.sale-not-started .product-sale-status-v146{background:#9a5b1a;}
.sale-paused .product-sale-status-v146{background:#795548;}
.sale-sold-out .product-sale-status-v146,.sale-ended .product-sale-status-v146{background:#6b625d;}

.asset-checkout-modal{
  position:fixed;
  inset:0;
  z-index:3500;
  display:none;
  align-items:center;
  justify-content:center;
  padding:20px;
}
.asset-checkout-modal.is-open{display:flex;}
.asset-checkout-backdrop{position:absolute;inset:0;background:rgba(28,18,12,.56);backdrop-filter:blur(3px);}
.asset-checkout-card{
  position:relative;
  z-index:1;
  width:min(680px,100%);
  max-height:min(850px,calc(100vh - 40px));
  display:flex;
  flex-direction:column;
  overflow:hidden;
  border:1px solid #ead2b5;
  border-radius:26px;
  background:#fffaf4;
  box-shadow:0 30px 80px rgba(50,28,13,.28);
}
.asset-checkout-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:20px;
  padding:24px 26px 18px;
  border-bottom:1px solid #ead8c2;
}
.asset-checkout-head span,.asset-section-title span{color:#bd6c2b;font-size:11px;font-weight:900;letter-spacing:.15em;}
.asset-checkout-head h2{margin:4px 0 5px;font-size:26px;}
.asset-checkout-head p{margin:0;color:#806f62;font-size:14px;}
.asset-checkout-head>button{
  flex:0 0 42px;width:42px;height:42px;border:0;border-radius:50%;background:#fff;color:#241b17;font-size:28px;box-shadow:0 5px 18px rgba(44,27,16,.12);cursor:pointer;
}
.asset-checkout-scroll{overflow:auto;padding:20px 26px 26px;}
.asset-order-preview{padding:15px 18px;border:1px solid #ecd7bc;border-radius:18px;background:#fff;}
.asset-order-preview>div{display:flex;justify-content:space-between;gap:15px;padding:6px 0;color:#6f5d50;}
.asset-order-preview strong{color:#2d211b;}
.asset-section{margin-top:18px;padding:18px;border:1px solid #ead8c2;border-radius:19px;background:#fff;}
.asset-section-title{display:flex;justify-content:space-between;align-items:flex-end;gap:14px;margin-bottom:13px;}
.asset-section-title h3{margin:3px 0 0;font-size:19px;}
.asset-section-title>small{color:#8a7667;}
.asset-choice-list{display:grid;gap:10px;}
.asset-choice-v146{display:flex;gap:12px;align-items:flex-start;padding:13px;border:1px solid #ead8c2;border-radius:14px;background:#fffaf5;cursor:pointer;}
.asset-choice-v146:has(input:checked){border-color:#d98933;box-shadow:0 0 0 2px rgba(217,137,51,.13);}
.asset-choice-v146 input{margin-top:4px;accent-color:#cf7d2c;}
.asset-choice-v146 span{display:grid;gap:3px;min-width:0;}
.asset-choice-v146 strong{font-size:15px;color:#2e211a;}
.asset-choice-v146 small{color:#857064;line-height:1.45;}
.asset-choice-v146 em{font-style:normal;color:#b65a25;font-size:12px;font-weight:800;}
.asset-choice-v146.is-disabled{opacity:.55;cursor:not-allowed;background:#f6f1eb;}
.asset-point-control{display:grid;grid-template-columns:1fr 1.3fr auto;align-items:end;gap:12px;}
.asset-point-control>div{display:flex;flex-direction:column;gap:2px;}
.asset-point-control>div strong{font-size:28px;color:#a83c27;}
.asset-point-control>div span,.asset-point-control label span{font-size:12px;color:#847064;}
.asset-point-control label{display:grid;gap:5px;}
.asset-point-control input{width:100%;height:44px;padding:0 12px;border:1px solid #dfc5a6;border-radius:11px;background:#fff;font-size:16px;}
.asset-point-control button{height:44px;padding:0 15px;border:0;border-radius:11px;background:#3d2b22;color:#fff;font-weight:900;cursor:pointer;}
.asset-rule-note{margin:10px 0 0;color:#8a7567;font-size:12px;line-height:1.55;}
.asset-checkout-message{min-height:20px;margin-top:12px;color:#ad3e2b;font-weight:800;font-size:13px;}
.asset-checkout-footer{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 26px calc(16px + env(safe-area-inset-bottom,0px));border-top:1px solid #e7d1b6;background:#fff;}
.asset-checkout-footer>div{display:flex;flex-direction:column;}
.asset-checkout-footer>div span{font-size:12px;color:#7d695b;}
.asset-checkout-footer>div strong{font-size:27px;color:#9f2f20;}
.asset-checkout-footer>button{min-height:48px;padding:0 24px;border:0;border-radius:13px;background:#cc7029;color:#fff;font-weight:900;font-size:16px;cursor:pointer;}
body.asset-checkout-open{overflow:hidden;}

.ocard-toast-v146{position:fixed;left:50%;bottom:calc(26px + env(safe-area-inset-bottom,0px));z-index:5000;max-width:min(88vw,420px);padding:12px 18px;border-radius:999px;background:#2e241f;color:#fff;font-weight:800;font-size:14px;box-shadow:0 12px 35px rgba(0,0,0,.25);transform:translate(-50%,20px);opacity:0;transition:.22s ease;pointer-events:none;text-align:center;}
.ocard-toast-v146.is-show{transform:translate(-50%,0);opacity:1;}

.member-tabbar-v110{overflow-x:auto;justify-content:flex-start;scrollbar-width:none;}
.member-tabbar-v110::-webkit-scrollbar{display:none;}
.member-tab-v110{flex:0 0 auto;min-width:88px;}
.member-stat-row-v110{grid-template-columns:repeat(4,minmax(0,1fr));}
.member-level-card-v146{margin:18px 0;padding:20px;border:1px solid #e7c9a7;border-radius:20px;background:linear-gradient(135deg,#fff8ed,#f5e1c8);box-shadow:0 10px 28px rgba(107,66,32,.08);}
.member-level-head-v146{display:flex;justify-content:space-between;align-items:flex-end;gap:18px;}
.member-level-head-v146 span{font-size:11px;letter-spacing:.14em;color:#a55b24;font-weight:900;}
.member-level-head-v146 h2{margin:4px 0 0;font-size:24px;}
.member-level-head-v146>strong{font-size:13px;color:#765b48;}
.member-level-track-v146{height:10px;margin:17px 0 9px;overflow:hidden;border-radius:999px;background:#e7cfb2;}
.member-level-track-v146 i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#bf6729,#e6a44e);transition:width .4s ease;}
.member-level-meta-v146{display:flex;justify-content:space-between;gap:12px;color:#806854;font-size:12px;}
.member-level-benefits-v146{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px;}
.member-level-benefits-v146 span{padding:6px 10px;border-radius:999px;background:rgba(255,255,255,.75);color:#72482d;font-size:12px;font-weight:800;}
.member-asset-wallet-v146{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:22px;border-radius:20px;background:#432d22;color:#fff;}
.member-asset-wallet-v146 small{color:#e6b787;font-weight:900;letter-spacing:.12em;}
.member-asset-wallet-v146 strong{display:block;margin:6px 0;font-size:27px;}
.member-asset-wallet-v146 p{margin:0;color:#eadfd7;}
.member-asset-wallet-v146>a{flex:0 0 auto;padding:11px 16px;border-radius:999px;background:#e5903f;color:#fff;font-weight:900;text-decoration:none;}
.gift-wallet-v146{background:#8b3c2b;}
.member-asset-list-v146{display:grid;gap:13px;margin-top:16px;}
.member-asset-ticket-v146{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px;border:1px solid #e7cfb2;border-radius:18px;background:#fff;box-shadow:0 8px 24px rgba(77,45,23,.06);}
.member-asset-ticket-v146>div{min-width:0;}
.member-asset-ticket-v146 span{color:#b66328;font-size:11px;font-weight:900;letter-spacing:.12em;}
.member-asset-ticket-v146 h3{margin:5px 0;font-size:19px;}
.member-asset-ticket-v146 p{margin:0 0 5px;color:#745f51;}
.member-asset-ticket-v146 small{color:#9a887d;}
.member-asset-ticket-v146>a,.member-asset-ticket-v146>em{flex:0 0 auto;padding:9px 14px;border-radius:999px;background:#d67b31;color:#fff;text-decoration:none;font-style:normal;font-weight:900;}
.member-asset-ticket-v146.is-used{opacity:.55;background:#f3efea;}
.member-asset-ticket-v146.is-used>em{background:#8b817a;}

@media (max-width:760px){
  .product-sale-status-v146{top:8px;left:8px;padding:5px 8px;font-size:11px;}
  .asset-checkout-modal{align-items:flex-end;padding:0;}
  .asset-checkout-card{width:100%;max-height:calc(100dvh - 58px);border-radius:24px 24px 0 0;border-bottom:0;}
  .asset-checkout-head{padding:18px 17px 14px;}
  .asset-checkout-head h2{font-size:22px;}
  .asset-checkout-scroll{padding:15px 14px 22px;}
  .asset-section{padding:15px;}
  .asset-point-control{grid-template-columns:1fr 1fr;}
  .asset-point-control button{grid-column:1/-1;}
  .asset-checkout-footer{padding:13px 15px calc(13px + env(safe-area-inset-bottom,0px));}
  .asset-checkout-footer>button{padding:0 16px;font-size:14px;}
  .member-stat-row-v110{grid-template-columns:repeat(2,minmax(0,1fr));}
  .member-level-head-v146{align-items:flex-start;flex-direction:column;gap:8px;}
  .member-asset-wallet-v146{align-items:flex-start;flex-direction:column;}
  .member-asset-ticket-v146{align-items:flex-start;}
}

/* =========================================================
   v147 - Ocard frontend extensions
   group buy / payment / gift transfer / reservation / orders
   ========================================================= */
.order-quick-actions-v147{display:flex;gap:10px;align-items:stretch;flex-wrap:wrap}
.order-reservation-button-v147{display:flex;flex-direction:column;justify-content:center;min-width:150px;padding:10px 16px;border:1px solid #e3c39d;border-radius:16px;background:#fff9f1;color:#6e3a24;text-decoration:none;box-shadow:0 8px 22px rgba(117,72,43,.08)}
.order-reservation-button-v147 span{font-weight:900;font-size:14px}.order-reservation-button-v147 small{margin-top:2px;color:#8e7667;font-size:11px}
.groupbuy-status-v147{margin:14px 0 18px;padding:14px 16px;border:1px solid #e7c7a1;border-radius:18px;background:linear-gradient(135deg,#fff9ef,#f6ead9);display:flex;align-items:center;justify-content:space-between;gap:14px;box-shadow:0 10px 24px rgba(91,57,35,.08)}
.groupbuy-status-v147[hidden]{display:none!important}.groupbuy-status-v147>div{display:grid;gap:2px}.groupbuy-status-v147 span{font-size:10px;font-weight:900;letter-spacing:.12em;color:#b06a37}.groupbuy-status-v147 strong{font-size:15px}.groupbuy-status-v147 small{color:#7d6a5d}.groupbuy-status-v147 button{border:0;border-radius:12px;background:#9e3c2e;color:#fff;padding:10px 14px;font-weight:900;cursor:pointer}

.v147-modal-backdrop{position:absolute;inset:0;background:rgba(34,24,19,.48);backdrop-filter:blur(3px)}
.groupbuy-modal-v147,.payment-result-modal-v147,.gift-transfer-modal-v147{position:fixed;inset:0;z-index:3500;display:none;align-items:center;justify-content:center;padding:18px}
.groupbuy-modal-v147.is-open,.payment-result-modal-v147.is-open,.gift-transfer-modal-v147.is-open{display:flex}
.v147-modal-card{position:relative;width:min(680px,100%);max-height:min(88vh,820px);overflow:hidden;border-radius:26px;background:#fffaf3;border:1px solid #e5c7a5;box-shadow:0 28px 80px rgba(45,27,18,.28);z-index:1}
.v147-modal-card>header{display:flex;justify-content:space-between;gap:16px;padding:22px 24px 18px;border-bottom:1px solid #ead8c4;background:#fffaf3;position:sticky;top:0;z-index:2}
.v147-modal-card>header span{display:block;color:#bd703a;font-size:10px;font-weight:900;letter-spacing:.14em}.v147-modal-card>header h2{margin:3px 0 4px;font-size:24px}.v147-modal-card>header p{margin:0;color:#846f61;font-size:13px}.v147-modal-card>header>button{width:42px;height:42px;border:1px solid #e7d4bd;border-radius:50%;background:#fff;color:#3b2b24;font-size:26px;line-height:1;cursor:pointer;flex:0 0 auto}
.v147-modal-scroll{padding:22px 24px 26px;overflow:auto;max-height:calc(88vh - 96px)}
.v147-primary-btn{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:14px;background:#a23e2e;color:#fff;padding:12px 18px;font-weight:900;text-decoration:none;cursor:pointer;min-height:44px}.v147-primary-btn:disabled{opacity:.45;cursor:not-allowed}
.v147-form-stack,.group-create-v147{display:grid;gap:15px}.v147-form-stack label,.group-create-v147 label{display:grid;gap:7px}.v147-form-stack label>span,.group-create-v147 label>span{font-weight:900;font-size:13px}.v147-form-stack input,.v147-form-stack textarea,.group-create-v147 input,.group-create-v147 select{width:100%;box-sizing:border-box;border:1px solid #dfc7ad;border-radius:13px;background:#fff;padding:12px 13px;font:inherit;color:#382921}.v147-form-help{margin:0;color:#7f6c60;font-size:12px}.v147-empty{padding:18px;border:1px dashed #ddc4aa;border-radius:14px;background:#fffaf4;color:#887466;text-align:center}

.group-code-card-v147{display:grid;grid-template-columns:1fr 150px;gap:18px;align-items:center;padding:18px;border:1px solid #e4c7a7;border-radius:20px;background:#fff}.group-code-card-v147>div{display:grid;gap:4px}.group-code-card-v147 small{color:#9d6d4e}.group-code-card-v147 strong{font-size:34px;letter-spacing:.12em;color:#8f3024}.group-code-card-v147 span{font-weight:800}.group-code-card-v147 img{width:150px;height:150px;border-radius:10px;background:#fff;object-fit:contain}.group-share-v147{display:flex;gap:8px;margin:14px 0}.group-share-v147 input{flex:1;min-width:0;border:1px solid #dfc6aa;border-radius:12px;padding:11px 12px;background:#fff}.group-share-v147 button,.group-actions-v147 button,.member-order-actions-v147 button,.gift-actions-v147 button{border:1px solid #dcbf9e;border-radius:12px;background:#fff8ef;padding:10px 12px;font-weight:900;color:#70442f;cursor:pointer}.group-meta-v147{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.group-meta-v147 span{padding:7px 10px;border-radius:999px;background:#f5e9d9;color:#6d5547;font-size:12px;font-weight:800}.group-member-list-v147{display:grid;gap:9px}.group-member-v147{display:flex;justify-content:space-between;gap:14px;padding:13px 14px;border:1px solid #ead8c4;border-radius:14px;background:#fff}.group-member-v147>div{display:grid;gap:3px}.group-member-v147 small{color:#806d61}.group-member-v147 em{font-style:normal;font-weight:900;color:#9a3227}.group-actions-v147{display:flex;flex-wrap:wrap;gap:9px;margin-top:16px}.group-actions-v147 .danger,.member-order-actions-v147 .danger{color:#a22929;border-color:#e5b4b4;background:#fff5f5}

.payment-choice-grid-v147{display:grid;grid-template-columns:1fr 1fr;gap:10px}.payment-choice-grid-v147 label{display:flex;gap:10px;align-items:flex-start;border:1px solid #e4d0b9;border-radius:14px;padding:12px;background:#fff;cursor:pointer}.payment-choice-grid-v147 input{margin-top:3px;accent-color:#b14b2f}.payment-choice-grid-v147 span{display:grid;gap:2px}.payment-choice-grid-v147 strong{font-size:13px}.payment-choice-grid-v147 small{font-size:11px;color:#887467}.payment-state-v147{padding:18px;border-radius:18px;background:#fff4e8;border:1px solid #ebcfad;margin-bottom:14px}.payment-state-v147 strong{font-size:20px}.payment-state-v147 p{margin:7px 0 0;color:#765f51}.payment-state-v147.is-success{background:#f3fbf4;border-color:#bbd9bd}.payment-state-v147.is-error{background:#fff4f4;border-color:#e4bcbc}.payment-demo-actions-v147{display:flex;flex-wrap:wrap;gap:9px}.payment-demo-actions-v147>button:not(.v147-primary-btn){border:1px solid #ddc2a5;background:#fff;border-radius:12px;padding:11px 14px;font-weight:800;cursor:pointer}

.option-list label.is-option-disabled-v147{opacity:.46;cursor:not-allowed}.option-dependency-hint-v147{margin-left:auto;color:#a33d2f!important;font-size:10px!important;font-weight:900!important}

.gift-inbox-v147,.gift-transfer-history-v147{margin-top:16px;padding:18px;border:1px solid #e5cdb1;border-radius:20px;background:#fffaf4}.gift-inbox-head-v147{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:12px}.gift-inbox-head-v147 span{font-size:10px;letter-spacing:.12em;color:#b36a36;font-weight:900}.gift-inbox-head-v147 h3,.gift-transfer-history-v147 h3{margin:3px 0 0}.gift-inbox-head-v147 small{color:#887467}.gift-inbox-v147 [data-member-gift-inbox]{display:grid;gap:10px}.gift-inbox-v147 [data-member-gift-inbox]>article{display:flex;justify-content:space-between;gap:12px;border:1px solid #ead7c2;border-radius:14px;background:#fff;padding:13px}.gift-inbox-v147 article p{margin:3px 0;color:#735f52}.gift-inbox-v147 article small{color:#988477}.gift-inbox-v147 article>div:last-child{display:flex;gap:7px;align-items:center}.gift-inbox-v147 button{border:1px solid #d9b894;background:#fff7ed;border-radius:10px;padding:8px 10px;font-weight:900;cursor:pointer}.gift-transfer-history-v147 [data-member-gift-transfer-history]{display:grid;gap:8px;margin-top:12px}.gift-transfer-history-v147 article{display:flex;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px dashed #e4cfb8}.gift-transfer-history-v147 article:last-child{border-bottom:0}.gift-transfer-history-v147 article>div{display:grid;gap:2px}.gift-transfer-history-v147 article small{color:#897568}.gift-transfer-history-v147 article em{font-style:normal;font-size:12px;color:#9a5834}.gift-actions-v147{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.gift-actions-v147 a{white-space:nowrap}.gift-actions-v147 em{font-style:normal;color:#8d786b;font-size:12px}

.member-order-v147{display:block!important;padding:16px!important;border:1px solid #e5cdb2!important;border-radius:18px!important;background:#fffaf4!important;margin-bottom:12px}.member-order-head-v147{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.member-order-head-v147>div{display:grid;gap:4px}.member-order-head-v147 span{color:#79665a;font-size:12px}.member-order-head-v147 em{font-style:normal;padding:6px 9px;border-radius:999px;background:#f2e2ce;color:#8c4328;font-size:12px;font-weight:900;white-space:nowrap}.member-order-items-v147{margin:12px 0 5px;font-weight:800}.member-order-context-v147{margin:0 0 12px;color:#79665a;font-size:12px}.order-status-track-v147{display:flex;gap:7px;overflow:auto;padding:10px 0}.order-status-track-v147 span{flex:0 0 auto;display:grid;gap:2px;min-width:104px;padding:9px 10px;border-radius:12px;background:#fff;border:1px solid #ead8c4}.order-status-track-v147 b{font-size:11px}.order-status-track-v147 small{font-size:9px;color:#938075}.member-order-actions-v147{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:8px}.member-order-actions-v147 small{color:#8c6a56;font-weight:800}

/* Reservation */
.reservation-page-v147{padding-top:42px}.reservation-hero-v147{display:flex;align-items:flex-end;justify-content:space-between;gap:28px;margin-bottom:24px}.reservation-store-v147{min-width:240px;padding:18px 20px;border:1px solid #e4c7a6;border-radius:20px;background:#fff9f0;display:grid;gap:4px}.reservation-store-v147 small{color:#a16a45;font-weight:900}.reservation-store-v147 strong{font-size:20px}.reservation-store-v147 span{color:#7c685c;font-size:12px}.reservation-layout-v147{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(320px,.95fr);gap:22px;align-items:start}.reservation-form-card-v147,.reservation-list-card-v147{border:1px solid #e4c9aa;border-radius:24px;background:#fffaf4;box-shadow:0 16px 38px rgba(83,49,29,.08);padding:22px}.reservation-card-head-v147{margin-bottom:18px}.reservation-card-head-v147>span{font-size:10px;font-weight:900;letter-spacing:.12em;color:#b36c3d}.reservation-card-head-v147 h2{margin:4px 0 6px;font-size:24px}.reservation-card-head-v147 p{margin:0;color:#806d60}.reservation-grid-v147{display:grid;grid-template-columns:1fr 1fr;gap:13px}.reservation-grid-v147 label,.reservation-note-v147{display:grid;gap:7px}.reservation-grid-v147 label span,.reservation-note-v147 span{font-size:12px;font-weight:900}.reservation-grid-v147 input,.reservation-grid-v147 select,.reservation-note-v147 textarea{width:100%;box-sizing:border-box;border:1px solid #dfc7ad;border-radius:13px;background:#fff;padding:11px 12px;font:inherit}.reservation-note-v147{margin-top:13px}.reservation-remaining-v147{margin-top:13px;padding:10px 12px;border-radius:12px;background:#f4e9da;color:#734f38;font-weight:900;font-size:12px}.reservation-submit-v147{width:100%;margin-top:14px}.reservation-list-card-v147 [data-reservation-list]{display:grid;gap:11px}.reservation-item-v147{display:flex;justify-content:space-between;gap:14px;border:1px solid #ead8c3;border-radius:16px;background:#fff;padding:14px}.reservation-item-v147>div:first-child{display:grid;gap:3px}.reservation-item-v147 span{font-size:10px;color:#b06b3f;font-weight:900}.reservation-item-v147 h3{margin:0;font-size:17px}.reservation-item-v147 p{margin:0;color:#715d51;font-size:12px}.reservation-item-v147 small{color:#948074}.reservation-item-v147>div:last-child{display:flex;flex-direction:column;align-items:flex-end;gap:7px}.reservation-item-v147 em{font-style:normal;font-weight:900;color:#8f432b}.reservation-item-v147 button{border:1px solid #dbc0a2;border-radius:10px;background:#fff7ee;padding:7px 9px;font-size:11px;font-weight:900;cursor:pointer}.reservation-item-v147 button.danger{color:#a22d2d;border-color:#e4b8b8;background:#fff4f4}.reservation-item-v147.is-cancelled{opacity:.58}

@media(max-width:900px){.reservation-layout-v147{grid-template-columns:1fr}.reservation-hero-v147{align-items:stretch}.reservation-store-v147{min-width:0}.order-quick-actions-v147{width:100%}.order-groupbuy-button,.order-reservation-button-v147{flex:1}}
@media(max-width:760px){
  .order-quick-actions-v147{display:grid;grid-template-columns:1fr 1fr;gap:8px}.order-reservation-button-v147{min-width:0;padding:10px 12px;border-radius:14px}.order-reservation-button-v147 small{font-size:10px}.groupbuy-status-v147{margin:10px 0 12px;border-radius:15px;padding:11px 12px}.groupbuy-status-v147 small{font-size:10px}.groupbuy-status-v147 button{padding:8px 10px;font-size:11px}
  .groupbuy-modal-v147,.payment-result-modal-v147,.gift-transfer-modal-v147{padding:0;align-items:flex-end}.v147-modal-card{width:100%;max-height:92dvh;border-radius:24px 24px 0 0}.v147-modal-card>header{padding:17px 18px 14px}.v147-modal-card>header h2{font-size:21px}.v147-modal-scroll{padding:17px 18px 24px;max-height:calc(92dvh - 82px)}.group-code-card-v147{grid-template-columns:1fr 96px;padding:14px}.group-code-card-v147 strong{font-size:28px}.group-code-card-v147 img{width:96px;height:96px}.group-share-v147{display:grid;grid-template-columns:1fr auto}.group-share-v147 input{grid-column:1/-1}.payment-choice-grid-v147{grid-template-columns:1fr}.payment-demo-actions-v147{display:grid}.payment-demo-actions-v147>*{width:100%}
  .gift-inbox-head-v147{display:block}.gift-inbox-head-v147 small{display:block;margin-top:5px}.gift-inbox-v147 [data-member-gift-inbox]>article{display:grid}.gift-inbox-v147 article>div:last-child{justify-content:flex-start}.member-order-head-v147{display:grid}.member-order-head-v147 em{justify-self:start}.order-status-track-v147 span{min-width:96px}
  .reservation-page-v147{padding-top:26px}.reservation-hero-v147{display:grid;gap:14px}.reservation-grid-v147{grid-template-columns:1fr 1fr}.reservation-form-card-v147,.reservation-list-card-v147{padding:16px;border-radius:19px}.reservation-item-v147{display:grid}.reservation-item-v147>div:last-child{flex-direction:row;align-items:center;justify-content:flex-start;flex-wrap:wrap}
}
@media(max-width:480px){.reservation-grid-v147{grid-template-columns:1fr}.order-quick-actions-v147{grid-template-columns:1fr 1fr}.group-code-card-v147{grid-template-columns:1fr}.group-code-card-v147 img{width:120px;height:120px}.group-share-v147{grid-template-columns:1fr}.group-share-v147 input{grid-column:auto}.group-share-v147 button{width:100%}}
.group-user-switch-v147{display:flex;align-items:center;gap:7px;padding:4px 5px 4px 10px;border-radius:999px;background:#f5e9d9;color:#6d5547;font-size:12px;font-weight:900}.group-user-switch-v147 select{border:0;border-radius:999px;background:#fff;padding:4px 8px;color:#513c31;font:inherit;font-size:11px}

/* =========================================================
   v148 - unified order primary toolbar
   The v147 quick-action wrapper inherited the narrow legacy
   group-buy column and forced reservation onto a second row.
   Keep every primary action aligned and give tablet its own grid.
   ========================================================= */
.order-toolbar-card > *{
  min-width:0;
}

.order-quick-actions-v147{
  display:grid !important;
  grid-template-columns:repeat(2, minmax(0,1fr)) !important;
  align-items:stretch !important;
  gap:8px !important;
  width:100% !important;
  min-width:0 !important;
}

.order-quick-actions-v147 .order-groupbuy-button,
.order-quick-actions-v147 .order-reservation-button-v147{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:100% !important;
  min-width:0 !important;
  min-height:48px !important;
  height:48px !important;
  margin:0 !important;
  padding:0 12px !important;
  border-radius:14px !important;
  box-sizing:border-box !important;
  white-space:nowrap !important;
  box-shadow:none !important;
}

.order-quick-actions-v147 .order-groupbuy-button{
  border:1px solid #bd5a29 !important;
  background:#bd5a29 !important;
  color:#fff !important;
}

.order-quick-actions-v147 .order-reservation-button-v147{
  flex-direction:row !important;
  border:1px solid #e2c39f !important;
  background:#fffaf3 !important;
  color:#6e3a24 !important;
  text-decoration:none !important;
}

.order-quick-actions-v147 .order-groupbuy-label,
.order-quick-actions-v147 .order-reservation-button-v147 span{
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  font-size:15px !important;
  font-weight:900 !important;
  line-height:1 !important;
  letter-spacing:.01em !important;
}

.order-quick-actions-v147 small{
  display:none !important;
}

.order-toolbar-card .order-mode-tabs{
  width:100% !important;
  min-width:0 !important;
  min-height:48px !important;
  margin:0 !important;
  box-sizing:border-box !important;
}

.order-toolbar-card .order-mode-tabs button{
  min-width:0 !important;
  white-space:nowrap !important;
}

.order-toolbar-card .order-search-tools,
.order-toolbar-card .order-search-box{
  min-width:0 !important;
}

@media (min-width:1201px){
  .order-toolbar-card{
    grid-template-columns:minmax(245px,1.05fr) minmax(238px,.82fr) minmax(350px,1.18fr) minmax(225px,.85fr) !important;
    align-items:center !important;
    gap:14px !important;
    padding:18px 20px !important;
  }
}

@media (min-width:981px) and (max-width:1200px){
  .order-toolbar-card{
    display:grid !important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important;
    align-items:center !important;
    gap:12px 16px !important;
    padding:16px 18px !important;
  }

  .order-toolbar-card .order-toolbar-brand{
    grid-column:1 !important;
    grid-row:1 !important;
  }

  .order-toolbar-card .order-quick-actions-v147{
    grid-column:2 !important;
    grid-row:1 !important;
  }

  .order-toolbar-card .order-mode-tabs{
    grid-column:1 !important;
    grid-row:2 !important;
  }

  .order-toolbar-card .order-search-tools{
    grid-column:2 !important;
    grid-row:2 !important;
  }
}

@media (max-width:980px){
  .order-toolbar-card{
    display:grid !important;
    grid-template-columns:1fr !important;
    align-items:stretch !important;
    gap:8px !important;
    padding:10px 12px !important;
  }

  .order-toolbar-card .order-quick-actions-v147{
    grid-column:1 !important;
    grid-row:1 !important;
    order:1 !important;
  }

  .order-toolbar-card .order-mode-tabs{
    display:grid !important;
    grid-column:1 !important;
    grid-row:2 !important;
    order:2 !important;
    grid-template-columns:repeat(3, minmax(0,1fr)) !important;
    visibility:visible !important;
    opacity:1 !important;
  }

  .order-toolbar-card .order-toolbar-brand,
  .order-toolbar-card .order-search-tools{
    display:none !important;
  }

  .order-quick-actions-v147 .order-groupbuy-button,
  .order-quick-actions-v147 .order-reservation-button-v147{
    min-height:42px !important;
    height:42px !important;
    border-radius:12px !important;
  }

  .order-quick-actions-v147 .order-groupbuy-label,
  .order-quick-actions-v147 .order-reservation-button-v147 span{
    font-size:14px !important;
  }
}

@media (max-width:380px){
  .order-quick-actions-v147{
    gap:6px !important;
  }

  .order-quick-actions-v147 .order-groupbuy-button,
  .order-quick-actions-v147 .order-reservation-button-v147{
    padding:0 8px !important;
  }

  .order-quick-actions-v147 .order-groupbuy-label,
  .order-quick-actions-v147 .order-reservation-button-v147 span,
  .order-toolbar-card .order-mode-tabs button{
    font-size:13px !important;
  }
}

/* v151 cascade guard: keep the visual store card above legacy switcher rules */
.store-page .store-spotlight-v151{
  width:100%;
  max-width:none;
  margin:0;
  align-self:stretch;
}

.store-page .store-spotlight-trigger-v151{
  height:auto;
  min-height:0;
  display:grid;
  grid-template-rows:230px auto;
  align-items:stretch;
  justify-content:stretch;
  gap:0;
  padding:0;
  overflow:hidden;
  border:1px solid #dfbd98;
  border-radius:26px;
  background:#fffaf3;
  box-shadow:0 20px 44px rgba(92,48,24,.14);
}

@media(max-width:940px){
  .store-page .store-spotlight-trigger-v151{
    min-height:0;
    grid-template-rows:190px auto;
  }
}

@media(max-width:620px){
  .store-page .store-spotlight-trigger-v151{
    min-height:0;
    grid-template-rows:178px auto;
    padding:0;
    border-radius:21px;
  }
}

/* =========================================================
   v152 - member notification center
   ========================================================= */
.member-notification-button-v152{
  position:relative;
  display:grid;
  place-items:center;
  flex:0 0 auto;
  cursor:pointer;
  font:inherit;
  font-weight:900;
  transition:border-color .18s ease,background .18s ease,transform .18s ease;
}

.member-notification-button-v152:hover,
.member-notification-button-v152:focus-visible{
  outline:none;
  border-color:#d98a42;
  background:#fff7ed;
  transform:translateY(-1px);
}

.member-notification-button-v152 [data-notification-badge]{
  position:absolute;
  top:-7px;
  right:-7px;
  min-width:22px;
  height:22px;
  display:inline-grid;
  place-items:center;
  padding:0 5px;
  border:2px solid #fffaf4;
  border-radius:999px;
  background:#c94832;
  color:#fff;
  font-size:10px;
  line-height:1;
  box-shadow:0 5px 12px rgba(151,50,34,.24);
}

.member-notification-button-v152 [data-notification-badge][hidden]{display:none;}

.notification-center-v152{
  position:fixed;
  inset:0;
  z-index:4200;
  visibility:hidden;
  pointer-events:none;
}

.notification-center-v152.is-open{
  visibility:visible;
  pointer-events:auto;
}

.notification-backdrop-v152{
  position:absolute;
  inset:0;
  border:0;
  background:rgba(41,27,20,.48);
  opacity:0;
  cursor:pointer;
  backdrop-filter:blur(3px);
  transition:opacity .24s ease;
}

.notification-center-v152.is-open .notification-backdrop-v152{opacity:1;}

.notification-drawer-v152{
  position:absolute;
  top:0;
  right:0;
  width:min(490px,100%);
  height:100dvh;
  display:grid;
  grid-template-rows:auto auto minmax(0,1fr) auto;
  border-left:1px solid #e4c8a9;
  background:#fffaf3;
  box-shadow:-28px 0 70px rgba(52,30,19,.22);
  transform:translateX(105%);
  transition:transform .28s cubic-bezier(.22,.72,.22,1);
}

.notification-center-v152.is-open .notification-drawer-v152{transform:translateX(0);}

.notification-head-v152{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  padding:24px 24px 18px;
  border-bottom:1px solid #ead8c4;
  background:linear-gradient(135deg,#fffdf8,#faead7);
}

.notification-head-v152>div>span{
  display:block;
  color:#b3652e;
  font-size:10px;
  font-weight:950;
  letter-spacing:.15em;
}

.notification-head-v152 h2{
  margin:4px 0 5px;
  color:#281d17;
  font-size:29px;
  line-height:1.15;
}

.notification-head-v152 p{
  margin:0;
  color:#846f61;
  font-size:13px;
}

.notification-close-v152{
  width:42px;
  height:42px;
  flex:0 0 auto;
  border:1px solid #e4ccb1;
  border-radius:50%;
  background:#fff;
  color:#4a352b;
  font-size:27px;
  line-height:1;
  cursor:pointer;
}

.notification-close-v152:hover,
.notification-close-v152:focus-visible{
  outline:none;
  border-color:#cb7134;
  color:#a54b28;
}

.notification-toolbar-v152{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:12px;
  align-items:center;
  padding:13px 18px;
  border-bottom:1px solid #eadbc9;
  background:#fffaf3;
}

.notification-filters-v152{
  display:flex;
  gap:7px;
  min-width:0;
  overflow-x:auto;
  scrollbar-width:none;
}
.notification-filters-v152::-webkit-scrollbar{display:none;}

.notification-filters-v152 button,
.notification-read-all-v152,
.notification-footer-v152 button{
  border:1px solid #e2cbb2;
  border-radius:999px;
  background:#fff;
  color:#765f51;
  font:inherit;
  font-size:12px;
  font-weight:900;
  cursor:pointer;
  white-space:nowrap;
}

.notification-filters-v152 button{
  min-height:34px;
  display:inline-flex;
  align-items:center;
  gap:5px;
  padding:0 11px;
}

.notification-filters-v152 button span{
  min-width:18px;
  height:18px;
  display:grid;
  place-items:center;
  padding:0 4px;
  border-radius:999px;
  background:#f2e4d4;
  color:#8b5839;
  font-size:9px;
}

.notification-filters-v152 button.is-active{
  border-color:#c76831;
  background:#c76831;
  color:#fff;
}
.notification-filters-v152 button.is-active span{background:rgba(255,255,255,.22);color:#fff;}

.notification-read-all-v152{
  min-height:36px;
  padding:0 13px;
  color:#a14d28;
}

.notification-read-all-v152:disabled,
.notification-footer-v152 button:disabled{
  opacity:.42;
  cursor:not-allowed;
}

.notification-list-v152{
  min-height:0;
  overflow-y:auto;
  padding:10px 16px 18px;
  overscroll-behavior:contain;
}

.notification-item-v152{
  position:relative;
  width:100%;
  display:grid;
  grid-template-columns:44px minmax(0,1fr) 8px;
  gap:12px;
  align-items:start;
  padding:15px 10px;
  border:0;
  border-bottom:1px solid #eee0d0;
  background:transparent;
  color:#30231d;
  text-align:left;
  cursor:pointer;
}

.notification-item-v152:hover,
.notification-item-v152:focus-visible{
  outline:none;
  border-radius:16px;
  background:#f9ecdc;
}

.notification-item-v152.is-unread{
  margin:5px 0;
  border:1px solid #ecd2b5;
  border-radius:17px;
  background:#fff4e7;
  box-shadow:0 8px 20px rgba(102,58,31,.06);
}

.notification-icon-v152{
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border-radius:15px;
  background:#efe1d2;
  color:#7b4c33;
  font-size:13px;
  font-weight:950;
}

.notification-icon-v152.notification-order{background:#f8dec8;color:#a54e27;}
.notification-icon-v152.notification-reservation{background:#e3eee4;color:#397443;}
.notification-icon-v152.notification-asset{background:#f3e4ae;color:#85630a;}
.notification-icon-v152.notification-system{background:#e6e2f3;color:#5b4a88;}

.notification-copy-v152{
  min-width:0;
  display:grid;
  gap:5px;
}

.notification-copy-v152>span{
  display:flex;
  justify-content:space-between;
  gap:10px;
  align-items:center;
}

.notification-copy-v152 em{
  color:#b56331;
  font-size:10px;
  font-style:normal;
  font-weight:950;
  letter-spacing:.08em;
}

.notification-copy-v152 time{
  color:#99867a;
  font-size:10px;
  white-space:nowrap;
}

.notification-copy-v152 strong{
  overflow:hidden;
  font-size:15px;
  line-height:1.35;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.notification-copy-v152 small{
  display:-webkit-box;
  overflow:hidden;
  color:#79685d;
  font-size:12px;
  line-height:1.55;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
}

.notification-item-v152>i{
  width:7px;
  height:7px;
  margin-top:8px;
  border-radius:50%;
  background:transparent;
}
.notification-item-v152.is-unread>i{background:#d56f32;box-shadow:0 0 0 4px rgba(213,111,50,.12);}

.notification-empty-v152{
  min-height:250px;
  display:grid;
  place-content:center;
  gap:7px;
  padding:28px;
  text-align:center;
}
.notification-empty-v152 strong{font-size:18px;}
.notification-empty-v152 p{margin:0;color:#88766a;font-size:13px;line-height:1.6;}

.notification-footer-v152{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:14px 18px calc(14px + env(safe-area-inset-bottom,0px));
  border-top:1px solid #ead8c4;
  background:#fffdf9;
}

.notification-footer-v152 p{margin:0;color:#8a7669;font-size:11px;line-height:1.45;}
.notification-footer-v152 button{min-height:36px;padding:0 14px;flex:0 0 auto;}

body.notification-center-open-v152{overflow:hidden;}

@media(max-width:620px){
  .member-notification-button-v152{width:48px;height:48px;border-radius:16px;}
  .notification-drawer-v152{
    top:auto;
    bottom:0;
    width:100%;
    height:calc(100dvh - 58px);
    border:1px solid #e4c8a9;
    border-bottom:0;
    border-radius:25px 25px 0 0;
    transform:translateY(105%);
  }
  .notification-center-v152.is-open .notification-drawer-v152{transform:translateY(0);}
  .notification-head-v152{padding:18px 17px 14px;border-radius:25px 25px 0 0;}
  .notification-head-v152 h2{font-size:25px;}
  .notification-toolbar-v152{grid-template-columns:1fr;padding:10px 13px;}
  .notification-read-all-v152{position:absolute;top:25px;right:70px;min-height:32px;}
  .notification-list-v152{padding:7px 10px 14px;}
  .notification-item-v152{grid-template-columns:40px minmax(0,1fr) 7px;gap:10px;padding:13px 9px;}
  .notification-icon-v152{width:38px;height:38px;border-radius:13px;}
  .notification-footer-v152{padding:12px 14px calc(12px + env(safe-area-inset-bottom,0px));}
  .notification-footer-v152 p{display:none;}
  .notification-footer-v152 button{width:100%;}
}

@media(prefers-reduced-motion:reduce){
  .notification-backdrop-v152,.notification-drawer-v152{transition:none;}
}

/* =========================================================
   v152 - fixed desktop category sidebar
   ========================================================= */
@media (min-width:981px){
  html,body{overflow-x:clip !important;}

  .order-hybrid-page,
  .order-hybrid-page>.section-inner,
  .order-hybrid-grid{
    overflow:visible !important;
  }

  .order-hybrid-grid{align-items:start !important;}

  .order-left-sidebar{
    position:sticky !important;
    top:84px !important;
    align-self:start !important;
    height:max-content !important;
    max-height:calc(100vh - 100px) !important;
    overflow-x:hidden !important;
    overflow-y:auto !important;
    overscroll-behavior:contain;
    scrollbar-width:thin;
    scrollbar-color:#d49a69 transparent;
    z-index:28 !important;
  }

  .order-left-sidebar::-webkit-scrollbar{width:5px;}
  .order-left-sidebar::-webkit-scrollbar-thumb{border-radius:5px;background:#d49a69;}

  .order-left-sidebar .order-category-mobile-wrap,
  .order-left-sidebar .order-category-panel{
    position:static !important;
    top:auto !important;
  }
}

@media (max-width:980px){
  .order-left-sidebar{
    position:static !important;
    top:auto !important;
    max-height:none !important;
    overflow:visible !important;
  }
}

/* =========================================================
   v152 - dedicated checkout page, based on supplied layout
   ========================================================= */
.checkout-page-v152{
  padding:34px 0 90px;
  background:
    radial-gradient(circle at 8% 16%,rgba(239,214,182,.26),transparent 24%),
    linear-gradient(180deg,#fbf7f1 0%,#f8f2e8 100%);
}

.checkout-head-v152{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:24px;
  margin-bottom:22px;
}
.checkout-head-v152 .section-desc{max-width:700px;}
.checkout-back-v152{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  padding:0 16px;
  border:1px solid #dfc5a8;
  border-radius:12px;
  background:#fffaf4;
  color:#6d3b27;
  font-weight:900;
  text-decoration:none;
}

.checkout-layout-v152{
  display:grid;
  grid-template-columns:minmax(0,1fr) 360px;
  align-items:start;
  gap:22px;
}
.checkout-main-column-v152,.checkout-side-v152{display:grid;gap:18px;}
.checkout-panel-v152{
  padding:22px;
  border:1px solid #e6cdb1;
  border-radius:18px;
  background:#fffdf8;
  box-shadow:0 14px 34px rgba(88,50,24,.06);
}
.checkout-panel-v152>h2{margin:0 0 14px;font-size:21px;}
.checkout-section-heading-v152{margin:0;}

.checkout-context-v152{display:grid;gap:9px;}
.checkout-context-v152>div{
  display:grid;
  grid-template-columns:110px minmax(0,1fr);
  gap:12px;
  padding:9px 0;
  border-bottom:1px solid #eee0d0;
}
.checkout-context-v152>div:last-child{border-bottom:0;}
.checkout-context-v152 span{color:#8a7465;font-size:13px;font-weight:800;}
.checkout-context-v152 strong{color:#2b201a;font-size:14px;line-height:1.55;overflow-wrap:anywhere;}

.checkout-items-v152{display:grid;gap:0;}
.checkout-item-v152{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:6px 12px;
  padding:13px 0;
  border-bottom:1px solid #eee0d0;
}
.checkout-item-v152:last-child{border-bottom:0;}
.checkout-item-v152>div{display:grid;gap:4px;min-width:0;}
.checkout-item-v152 strong{font-size:15px;}
.checkout-item-v152 small{color:#806c5f;font-size:12px;line-height:1.55;overflow-wrap:anywhere;}
.checkout-item-v152>span{color:#806c5f;font-size:12px;white-space:nowrap;}
.checkout-item-v152>b{grid-column:2;color:#9a2d22;text-align:right;white-space:nowrap;}
.checkout-empty-v152{display:grid;place-items:center;gap:10px;min-height:120px;padding:18px;color:#865336;text-align:center;}
.checkout-empty-v152 a{color:#a34f2a;font-weight:900;}

.checkout-assets-v152>.asset-section:first-child{margin-top:0;}
.checkout-side-v152{position:sticky;top:88px;}
.checkout-summary-card-v152 .asset-order-preview{margin:0;}
.checkout-summary-card-v152 .asset-checkout-message{margin:10px 0 0;}
.checkout-summary-card-v152 .asset-checkout-footer{
  position:static;
  margin:16px -22px -22px;
  border-radius:0 0 18px 18px;
}
.checkout-submit-v152>button{white-space:nowrap;}

@media (max-width:980px){
  .checkout-page-v152{padding:22px 0 100px;}
  .checkout-head-v152{display:grid;align-items:start;}
  .checkout-back-v152{justify-self:start;}
  .checkout-layout-v152{grid-template-columns:1fr;}
  .checkout-side-v152{position:static;top:auto;}
}

@media (max-width:620px){
  .checkout-panel-v152{padding:16px;border-radius:14px;}
  .checkout-context-v152>div{grid-template-columns:88px minmax(0,1fr);}
  .checkout-summary-card-v152 .asset-checkout-footer{margin:14px -16px -16px;border-radius:0 0 14px 14px;}
  .checkout-assets-v152 .asset-section{padding-left:14px !important;padding-right:14px !important;}
  .checkout-assets-v152 .payment-choice-grid-v147{grid-template-columns:1fr !important;}
  .checkout-item-v152{grid-template-columns:minmax(0,1fr) auto;}
}

/* v152: 商品規格可用狀態需保持清楚，只有真正 disabled 的項目才顯示灰色 */
.product-modal .option-list label.is-option-enabled-v152,
.product-modal .option-list label:not(.is-option-disabled-v147){
  opacity:1 !important;
  color:#2f241e !important;
  cursor:pointer !important;
}

.product-modal .option-list label.is-option-enabled-v152 > span,
.product-modal .option-list label:not(.is-option-disabled-v147) > span{
  color:#2f241e !important;
}

.product-modal .option-list label.is-option-enabled-v152 > em,
.product-modal .option-list label:not(.is-option-disabled-v147) > em{
  color:#a45b2d !important;
  font-weight:800;
}

.product-modal .option-list input:not(:disabled){
  opacity:1 !important;
  filter:none !important;
  cursor:pointer !important;
}

.product-modal .option-list label.is-option-disabled-v147{
  opacity:.48 !important;
  color:#9e958f !important;
  cursor:not-allowed !important;
}

.product-modal .option-list label.is-option-disabled-v147 > span,
.product-modal .option-list label.is-option-disabled-v147 > em{
  color:#a8a09b !important;
}

.product-modal .option-list input:disabled{
  cursor:not-allowed !important;
  filter:grayscale(1);
}

.product-modal .multi-option-list input[type="checkbox"]{
  -webkit-appearance:none !important;
  appearance:none !important;
  display:grid;
  place-content:center;
  flex:0 0 22px;
  width:22px !important;
  height:22px !important;
  margin:0;
  border:2px solid #9f8069;
  border-radius:4px;
  background:#fff;
  transition:background-color .15s ease,border-color .15s ease,box-shadow .15s ease;
}

.product-modal .multi-option-list input[type="checkbox"]::after{
  content:"";
  width:10px;
  height:6px;
  border-left:2px solid #fff;
  border-bottom:2px solid #fff;
  transform:translateY(-1px) rotate(-45deg) scale(0);
  transition:transform .12s ease;
}

.product-modal .multi-option-list input[type="checkbox"]:checked{
  border-color:#c86c27;
  background:#c86c27;
  box-shadow:0 0 0 2px rgba(200,108,39,.14);
}

.product-modal .multi-option-list input[type="checkbox"]:checked::after{
  transform:translateY(-1px) rotate(-45deg) scale(1);
}

.product-modal .multi-option-list input[type="checkbox"]:disabled:not(:checked){
  border-color:#d7cec7;
  background:#eee9e5;
  box-shadow:none;
}

.product-modal .multi-option-list label.is-option-enabled-v152:has(input:checked) > span,
.product-modal .multi-option-list label.is-option-enabled-v152:has(input:checked) > em{
  color:#7f331e !important;
}

.product-modal .option-list label.is-option-limit-disabled-v152 .option-dependency-hint-v147{
  color:#8a6e5c !important;
}

/* v152.3: 手機分店切換改為完整可滑動頁面，避免被固定工具列遮住 */
.store-switch-menu-head-v150{
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:12px;
}

.store-switch-menu-head-v150 > span{
  display:grid;
  gap:3px;
}

.store-switch-close-v152{
  display:none;
}

@media (max-width:620px){
  body.store-switch-open-v152{
    overflow:hidden !important;
  }

  body.store-switch-open-v152 .store-switcher-v150.is-open{
    z-index:32000 !important;
  }

  .store-switcher-v150.is-open .store-switch-menu-v150{
    position:fixed !important;
    inset:0 !important;
    width:100% !important;
    height:100vh !important;
    height:100dvh !important;
    max-height:none !important;
    padding:calc(env(safe-area-inset-top,0px) + 14px) 16px calc(env(safe-area-inset-bottom,0px) + 24px) !important;
    overflow-x:hidden !important;
    overflow-y:auto !important;
    overscroll-behavior:contain !important;
    -webkit-overflow-scrolling:touch !important;
    border:0 !important;
    border-radius:0 !important;
    background:#fffaf4 !important;
    box-shadow:none !important;
    z-index:1 !important;
  }

  .store-switch-menu-head-v150{
    position:sticky;
    top:-14px;
    z-index:3;
    min-height:72px;
    margin:-14px -16px 10px;
    padding:calc(env(safe-area-inset-top,0px) + 14px) 18px 12px;
    background:#fffaf4;
    border-bottom:1px solid #ead7c1;
  }

  .store-switch-menu-head-v150 strong{
    font-size:22px;
  }

  .store-switch-menu-head-v150 small{
    font-size:13px;
  }

  .store-switch-close-v152{
    display:grid;
    place-items:center;
    width:44px;
    height:44px;
    padding:0;
    border:1px solid #dfc5a8;
    border-radius:50%;
    background:#fff;
    color:#2e221c;
    font-size:30px;
    line-height:1;
    cursor:pointer;
  }

  .store-switch-option-v150{
    min-height:112px;
    padding:16px 12px;
    border-bottom:1px solid #ead9c6;
    border-radius:8px;
  }

  .store-switch-option-v150 small{
    white-space:normal;
    overflow:visible;
    text-overflow:clip;
  }
}

/* v152.3: 手機版線上訂位與團購各自滿版一列 */
@media (max-width:980px){
  .order-toolbar-card .order-quick-actions-v147{
    grid-template-columns:1fr !important;
  }

  .order-quick-actions-v147 .order-reservation-button-v147{
    grid-column:1 / -1 !important;
    order:1 !important;
    width:100% !important;
  }

  .order-quick-actions-v147 .order-groupbuy-button{
    grid-column:1 / -1 !important;
    order:2 !important;
    width:100% !important;
  }
}

/* v152.3: 手機購物車明細、數量調整與刪除 */
.cart-qty-control-v152{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:6px;
}

.cart-qty-control-v152 button,
.cart-item-side .cart-remove-v152{
  width:auto;
  min-width:30px;
  height:30px;
  padding:0 8px;
  border:1px solid #dfc6aa;
  border-radius:7px;
  background:#fff;
  color:#743921;
  font-weight:900;
  cursor:pointer;
}

.cart-qty-control-v152 b{
  min-width:18px;
  color:#35261e;
  text-align:center;
}

.cart-item-side .cart-remove-v152{
  color:#a13328;
  background:#fff5f2;
  border-color:#e4beb6;
}

.mobile-cart-drawer-v152{
  display:none;
}

@media (max-width:980px){
  body.mobile-cart-open-v152{
    overflow:hidden !important;
  }

  .order-mobile-actions-v152{
    display:grid !important;
    grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr) !important;
    gap:8px !important;
    width:100% !important;
  }

  .order-mobile-bar .order-mobile-actions-v152 > *{
    grid-column:auto !important;
    width:100% !important;
    min-width:0 !important;
    height:48px !important;
    min-height:48px !important;
    margin:0 !important;
    border-radius:10px !important;
    box-sizing:border-box !important;
  }

  .mobile-cart-open-btn-v152{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:7px;
    padding:0 10px;
    border:1px solid #d8b58e;
    background:#fffaf3;
    color:#713c27;
    font-size:14px;
    font-weight:900;
    cursor:pointer;
  }

  .mobile-cart-open-btn-v152 b{
    display:grid;
    place-items:center;
    min-width:23px;
    height:23px;
    padding:0 6px;
    border-radius:999px;
    background:#a33c2d;
    color:#fff;
    font-size:12px;
  }

  .mobile-cart-drawer-v152{
    position:fixed;
    inset:0;
    z-index:31000;
    display:flex;
    align-items:flex-end;
    justify-content:center;
    visibility:hidden;
    opacity:0;
    pointer-events:none;
    transition:opacity .18s ease,visibility .18s ease;
  }

  .mobile-cart-drawer-v152.is-open{
    visibility:visible;
    opacity:1;
    pointer-events:auto;
  }

  .mobile-cart-backdrop-v152{
    position:absolute;
    inset:0;
    background:rgba(35,25,20,.48);
  }

  .mobile-cart-card-v152{
    position:relative;
    z-index:1;
    width:100%;
    max-height:calc(100vh - 54px);
    max-height:calc(100dvh - 54px);
    display:flex;
    flex-direction:column;
    overflow:hidden;
    border:1px solid #e2c7a8;
    border-bottom:0;
    border-radius:18px 18px 0 0;
    background:#fffaf4;
    box-shadow:0 -22px 60px rgba(44,27,17,.22);
    transform:translateY(24px);
    transition:transform .2s ease;
  }

  .mobile-cart-drawer-v152.is-open .mobile-cart-card-v152{
    transform:translateY(0);
  }

  .mobile-cart-head-v152{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    padding:16px 18px 13px;
    border-bottom:1px solid #ead7c0;
    background:#fffaf4;
  }

  .mobile-cart-head-v152 small{
    color:#b45c2d;
    font-size:10px;
    font-weight:900;
    letter-spacing:.12em;
  }

  .mobile-cart-head-v152 h2{
    margin:2px 0 0;
    font-size:22px;
  }

  .mobile-cart-head-v152 > button{
    display:grid;
    place-items:center;
    flex:0 0 42px;
    width:42px;
    height:42px;
    padding:0;
    border:1px solid #dfc7ab;
    border-radius:50%;
    background:#fff;
    color:#2d211b;
    font-size:28px;
    cursor:pointer;
  }

  .mobile-cart-scroll-v152{
    flex:1 1 auto;
    min-height:120px;
    overflow-y:auto;
    padding:14px 14px 18px;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
  }

  .mobile-cart-items-v152{
    max-height:none !important;
    overflow:visible !important;
    padding:0 !important;
  }

  .mobile-cart-items-v152 .cart-item{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:12px;
    padding:14px;
    border-radius:10px;
    background:#fff;
  }

  .mobile-cart-items-v152 .cart-item-side{
    align-content:start;
  }

  .mobile-cart-items-v152 .cart-item-note{
    line-height:1.45;
  }

  .mobile-cart-footer-v152{
    display:grid;
    grid-template-columns:auto 1fr;
    gap:10px 14px;
    align-items:center;
    padding:13px 14px calc(13px + env(safe-area-inset-bottom,0px));
    border-top:1px solid #e6cfb4;
    background:#fff;
  }

  .mobile-cart-clear-v152{
    min-height:38px;
    padding:0 11px;
    border:1px solid #dfc4a7;
    border-radius:8px;
    background:#fffaf3;
    color:#8c3e2b;
    font-weight:900;
    cursor:pointer;
  }

  .mobile-cart-footer-v152 > div{
    display:flex;
    align-items:baseline;
    justify-content:flex-end;
    gap:9px;
  }

  .mobile-cart-footer-v152 > div span{
    color:#806d60;
    font-size:12px;
  }

  .mobile-cart-footer-v152 > div strong{
    color:#982c22;
    font-size:24px;
  }

  .mobile-cart-footer-v152 > a{
    grid-column:1 / -1;
    width:100%;
    min-height:48px;
    justify-content:center;
    border-radius:10px;
  }
}

@media (max-width:520px){
  .order-mobile-bar .order-mobile-actions-v152 > *{
    height:46px !important;
    min-height:46px !important;
  }

  .mobile-cart-open-btn-v152{
    font-size:13px;
  }
}

/* v153：購物車內容可點擊回到餐點視窗修改 */
.cart-item-edit-v153{
  display:block;
  flex:1 1 auto;
  min-width:0;
  margin:-6px 0 -6px -6px;
  padding:6px;
  border:0;
  border-radius:8px;
  background:transparent;
  color:inherit;
  font:inherit;
  text-align:left;
  cursor:pointer;
  transition:background-color .16s ease, box-shadow .16s ease;
}

.cart-item-edit-v153:hover{
  background:#fff8ef;
}

.cart-item-edit-v153:focus-visible{
  outline:0;
  background:#fff8ef;
  box-shadow:0 0 0 2px #d77a32;
}

.cart-edit-hint-v153{
  display:block;
  margin-top:8px;
  color:#b85a2d;
  font-size:11px;
  font-weight:800;
  line-height:1.3;
}

.product-modal.is-editing-cart-v153 .modal-add-cart{
  background:#b9572a;
}

@media (max-width:980px){
  .mobile-cart-items-v152 .cart-item-edit-v153{
    margin:-4px 0 -4px -4px;
    padding:4px;
  }

  .mobile-cart-items-v152 .cart-edit-hint-v153{
    margin-top:9px;
    font-size:12px;
  }
}
.stock-hold-box-v2{margin:16px 0;padding:14px 16px;border:1px solid #e2c5ad;border-radius:16px;background:#fffaf5;display:grid;grid-template-columns:1fr auto;gap:6px 14px;align-items:center}.stock-hold-box-v2 div{display:grid;gap:3px}.stock-hold-box-v2 span{font-size:12px;color:#765d4c}.stock-hold-box-v2>b{font-size:20px;color:#9b4b24;font-variant-numeric:tabular-nums}.stock-hold-box-v2 button{grid-column:1/-1;border:0;border-radius:10px;padding:9px;background:#9b4b24;color:#fff;font-weight:700}.stock-hold-box-v2.is-ready{border-color:#93c59f;background:#f5fff7}.stock-hold-box-v2.is-error,.stock-hold-box-v2.is-expired{border-color:#e0a49c;background:#fff5f3}.stock-sale-status-v2{position:absolute;inset:10px 10px auto auto;z-index:3;padding:5px 9px;border-radius:999px;background:#7b3027;color:#fff;font-size:12px;font-weight:800}.order-product.is-stock-unavailable{opacity:.58}.product-modal label.is-stock-unavailable{opacity:.42;pointer-events:none}.product-modal label.is-stock-unavailable span:after{content:'（完售）';color:#9b3027;font-size:11px}

/* v173: category image is optional. No image path = no image node / no reserved space. */
.order-category-thumb{
  width:42px;
  height:42px;
  flex:0 0 42px;
  margin-right:10px;
  border-radius:10px;
  object-fit:cover;
  display:block;
}

.order-mobile-category-tabs a{
  display:inline-flex;
  align-items:center;
}

.order-category-thumb-mobile{
  width:28px;
  height:28px;
  flex-basis:28px;
  margin-right:7px;
  border-radius:7px;
}

.order-category-heading-with-image{
  display:flex;
  align-items:center;
}

.order-category-heading-image{
  width:54px;
  height:54px;
  flex:0 0 54px;
  margin-right:12px;
  border-radius:12px;
  object-fit:cover;
  display:block;
}

@media (max-width:980px){
  .order-category-panel .order-category-thumb{
    width:40px;
    height:40px;
    flex-basis:40px;
  }
  .order-category-thumb-mobile{
    width:26px;
    height:26px;
    flex-basis:26px;
  }
  .order-category-heading-image{
    width:46px;
    height:46px;
    flex-basis:46px;
    margin-right:10px;
  }
}

/* v177: larger category cover image in menu section.
   Keep sidebar/mobile navigation thumbnails compact; only the section cover becomes prominent. */
.order-content-area .order-category-heading-with-image{
  display:flex;
  align-items:center;
  gap:18px;
}
.order-content-area .order-category-heading-image{
  width:132px;
  height:88px;
  flex:0 0 132px;
  margin-right:0;
  border-radius:18px;
  object-fit:cover;
  display:block;
  box-shadow:0 8px 22px rgba(66,45,32,.10);
}

@media (max-width:980px){
  .order-content-area .order-category-heading-with-image{
    gap:15px;
  }
  .order-content-area .order-category-heading-image{
    width:112px;
    height:76px;
    flex-basis:112px;
    border-radius:16px;
  }
}

@media (max-width:640px){
  .order-content-area .order-category-heading-with-image{
    gap:12px;
  }
  .order-content-area .order-category-heading-image{
    width:96px;
    height:68px;
    flex-basis:96px;
    border-radius:14px;
  }
}


/* v182 cross-industry dynamic product options */
.product-dynamic-options[hidden]{display:none!important}
.product-modal .dynamic-option-group-v182{
  margin-top:22px;
  padding:18px;
  border:1px solid #ead8c3;
  border-radius:18px;
  background:#fffdf9;
  box-sizing:border-box;
}
.product-modal .dynamic-option-group-v182 h3{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:6px;
  margin:0 0 5px;
}
.product-modal .dynamic-option-group-v182 > p{margin:0 0 12px;color:#856d5d;line-height:1.55}
.product-modal .fixed-mark{
  display:inline-flex;
  align-items:center;
  margin-left:6px;
  padding:3px 7px;
  border-radius:999px;
  background:#edf3e8;
  color:#5e7950;
  font-size:12px;
  line-height:1;
  font-style:normal;
  font-weight:900;
  vertical-align:middle;
}
.product-modal .option-none-v182 span{color:#7e6a5d}
.product-modal .option-none-v182 em{color:#9b897b}
@media (max-width:760px){
  .product-modal .dynamic-option-group-v182{
    margin-top:18px;
    padding:15px 14px;
    border-radius:16px;
  }
  .product-modal .dynamic-option-group-v182 h3{font-size:18px}
  .product-modal .fixed-mark{font-size:11px}
}

/* v185 product gallery: cover + optional gallery images in product modal */
.product-modal-gallery{
  width:100%;
  background:#f5eee7;
}
.product-modal-gallery .modal-img{
  width:100%;
  display:block;
}
.product-modal-gallery-thumbs{
  display:flex;
  gap:9px;
  padding:10px 12px 12px;
  overflow-x:auto;
  overscroll-behavior-inline:contain;
  scrollbar-width:thin;
  background:#fffaf5;
  border-bottom:1px solid #ead8c8;
}
.product-modal-gallery-thumbs[hidden]{display:none!important;}
.product-modal-gallery-thumb{
  flex:0 0 68px;
  width:68px;
  height:54px;
  padding:0;
  border:2px solid transparent;
  border-radius:10px;
  overflow:hidden;
  background:#fff;
  cursor:pointer;
}
.product-modal-gallery-thumb img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.product-modal-gallery-thumb.is-active{
  border-color:#a26848;
}
.product-modal-gallery-thumb:focus-visible{
  outline:3px solid rgba(162,104,72,.28);
  outline-offset:2px;
}
@media(max-width:760px){
  .product-modal-gallery-thumbs{padding:9px 10px 10px;gap:8px;}
  .product-modal-gallery-thumb{flex-basis:62px;width:62px;height:50px;border-radius:9px;}
}


/* v186 商品庫存與購買按鈕狀態 */
.modal-purchase-controls{display:grid;gap:5px;min-width:0;}
.modal-stock-copy{display:block;color:#5f7d4b;font-size:12px;font-weight:900;line-height:1.2;text-align:center;}
.modal-stock-copy[hidden],.modal-unavailable-message[hidden],.modal-purchase-controls[hidden],.modal-add-cart[hidden],.hybrid-plus[hidden]{display:none!important;}
.modal-unavailable-message{grid-column:1/-1;min-height:52px;display:flex;align-items:center;justify-content:center;padding:10px 16px;border-radius:16px;background:#f5eee6;color:#7f4d35;font-weight:900;text-align:center;}
.modal-qty button:disabled{opacity:.38;cursor:not-allowed;}
.stock-sale-status-v2{display:inline-flex;align-items:center;justify-content:center;position:absolute;right:14px;top:14px;min-height:30px;padding:5px 10px;border-radius:999px;background:rgba(255,250,244,.96);border:1px solid #e7d6c6;color:#8b5a42;font-size:12px;font-weight:900;z-index:2;}
@media(max-width:760px){.modal-stock-copy{font-size:11px}.modal-unavailable-message{min-height:48px}}


/* =========================================================
   v188 統一商品不可購買狀態
   人工完售 / 庫存不足 / 未建庫存 / 配料不足 / 非供應時段
   ========================================================= */
.order-product.is-stock-unavailable,
.order-product.is-purchase-unavailable-v188{
  cursor:not-allowed !important;
  overflow:hidden;
}
.order-product.is-stock-unavailable::after,
.order-product.is-purchase-unavailable-v188::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:3;
  background:rgba(250,246,239,.48);
  pointer-events:none;
}
.order-product.is-stock-unavailable img,
.order-product.is-purchase-unavailable-v188 img{
  filter:grayscale(.55);
  opacity:.7;
}
.order-product.is-purchase-unavailable-v188 .product-qty-badge{
  display:none !important;
}
.stock-sale-status-v2{
  position:absolute;
  z-index:5;
  top:12px;
  left:12px;
  right:auto;
  max-width:calc(100% - 24px);
  min-height:0;
  padding:6px 10px;
  border:0;
  border-radius:999px;
  background:#6b625d;
  color:#fff;
  font-size:12px;
  font-weight:900;
  line-height:1.2;
  box-shadow:0 5px 16px rgba(0,0,0,.13);
}


/* v189 - 四種訂購方式最低消費與結帳狀態 */
.cart-minimum-hint-v189{
  display:block;
  margin:0 0 8px;
  padding:8px 10px;
  border-radius:10px;
  font-size:12px;
  line-height:1.45;
  text-align:center;
  font-weight:800;
}
.cart-minimum-hint-v189[hidden]{display:none!important;}
.cart-minimum-hint-v189.is-warning{background:#fff3e6;color:#9b4e1f;border:1px solid #efc79e;}
.cart-minimum-hint-v189.is-ready{background:#f0f6ea;color:#587541;border:1px solid #cdddbc;}
[data-cart-primary-action].is-minimum-disabled-v189,
[data-cart-primary-action][aria-disabled="true"]{
  opacity:.58;
  cursor:not-allowed;
  pointer-events:auto;
  filter:saturate(.55);
  box-shadow:none!important;
}
@media(max-width:760px){
  .cart-minimum-hint-v189{font-size:12px;margin-bottom:7px;padding:7px 8px;}
}

.mobile-cart-footer-v152 > .cart-minimum-hint-v189{grid-column:1 / -1;margin:0;}
@media(max-width:520px){[data-cart-primary-action].is-minimum-disabled-v189{font-size:12px!important;padding-inline:8px!important;}}


/* v193 social login */
.login-auth-error{margin:0 0 18px;padding:13px 15px;border:1px solid #e8b7ad;border-radius:14px;background:#fff3f0;color:#9a3e31;font-size:14px;line-height:1.6}.social-login-btn.is-disabled{opacity:.5;cursor:not-allowed;filter:grayscale(.25)}

/* v198 後台商品同步的會員點數兌換 */
.member-empty-reward-v198{grid-column:1/-1;display:grid;gap:6px;padding:28px 22px;border:1px dashed rgba(143,104,72,.26);border-radius:20px;background:rgba(255,255,255,.5);text-align:center;color:#6f6259}
.member-empty-reward-v198 strong{font-size:18px;color:#30241e}.member-empty-reward-v198 p{margin:0;line-height:1.65}
.reward-redeem-history-v198{margin-top:24px}.reward-redeem-list-v198{display:grid;gap:10px;margin-top:14px}.reward-redeem-list-v198 article{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:15px 17px;border:1px solid rgba(143,104,72,.16);border-radius:16px;background:rgba(255,255,255,.58)}.reward-redeem-list-v198 article>div:first-child{display:grid;gap:4px;min-width:0}.reward-redeem-list-v198 strong{font-size:15px;color:#2d211b}.reward-redeem-list-v198 p,.reward-redeem-list-v198 small{margin:0;color:#806e61;line-height:1.5}.reward-redeem-list-v198 article>div:last-child{display:grid;gap:4px;text-align:right;white-space:nowrap}.reward-redeem-list-v198 em{font-style:normal;font-weight:900;color:#b97549}.reward-redeem-list-v198 span{font-size:12px;color:#74665d}
.reward-ticket-main-v110 p strong{color:#6d5547}
@media(max-width:640px){.reward-redeem-list-v198 article{align-items:flex-start;flex-direction:column}.reward-redeem-list-v198 article>div:last-child{text-align:left;display:flex;align-items:center;gap:9px}.member-empty-reward-v198{padding:22px 16px}}

/* v199｜會員點數兌換訂單與 QR 憑證 */
.reward-ticket-v110.has-voucher-v199{border-color:rgba(169,119,73,.34);background:rgba(255,250,243,.9)}
.reward-voucher-ready-v199{margin-top:6px!important;color:#a2643d!important;font-weight:800!important}
.reward-ticket-side-v110 button.is-voucher-v199{min-width:112px;background:#fff7ec;color:#8b542f;border:1px solid rgba(169,119,73,.35)}
.reward-ticket-side-v110 button.is-voucher-v199:hover{background:#f9ead8}
.reward-history-voucher-btn-v199{border:1px solid rgba(169,119,73,.28);border-radius:999px;background:#fff8ef;color:#8b542f;font-weight:800;font-size:12px;padding:7px 10px;cursor:pointer}
.reward-voucher-modal-v199[hidden]{display:none!important}
.reward-voucher-modal-v199{position:fixed;inset:0;z-index:9998;display:grid;place-items:center;padding:20px}
.reward-voucher-backdrop-v199{position:absolute;inset:0;background:rgba(35,25,20,.58);backdrop-filter:blur(4px)}
.reward-voucher-card-v199{position:relative;z-index:1;width:min(720px,100%);max-height:calc(100% - 20px);overflow:auto;border:1px solid rgba(169,119,73,.28);border-radius:28px;background:#fffaf3;box-shadow:0 24px 70px rgba(47,31,22,.22)}
.reward-voucher-card-v199>header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:22px 24px 18px;border-bottom:1px solid rgba(169,119,73,.16)}
.reward-voucher-card-v199>header span{display:block;font-size:11px;font-weight:900;letter-spacing:.16em;color:#a56d47}
.reward-voucher-card-v199>header h2{margin:5px 0 0;font-size:26px;color:#271b16}
.reward-voucher-card-v199>header button{width:42px;height:42px;border:1px solid rgba(169,119,73,.25);border-radius:50%;background:#fff;color:#6e5242;font-size:24px;cursor:pointer}
.reward-voucher-body-v199{display:grid;grid-template-columns:230px minmax(0,1fr);gap:28px;padding:24px}
.reward-voucher-qr-v199{display:grid;gap:10px;align-content:start;text-align:center}
.reward-voucher-qr-v199 img{display:block;width:220px;max-width:100%;aspect-ratio:1/1;margin:0 auto;border:10px solid #fff;border-radius:20px;box-shadow:0 8px 26px rgba(71,46,31,.08)}
.reward-voucher-qr-v199 small{color:#806b5e;line-height:1.5}
.reward-voucher-info-v199 dl{display:grid;gap:0;margin:0;border:1px solid rgba(169,119,73,.16);border-radius:18px;overflow:hidden;background:rgba(255,255,255,.62)}
.reward-voucher-info-v199 dl>div{display:grid;grid-template-columns:92px minmax(0,1fr);gap:14px;padding:12px 14px;border-bottom:1px solid rgba(169,119,73,.12)}
.reward-voucher-info-v199 dl>div:last-child{border-bottom:0}
.reward-voucher-info-v199 dt{font-size:12px;font-weight:800;color:#8d786a}
.reward-voucher-info-v199 dd{margin:0;font-weight:800;color:#2e211b;word-break:break-word}
.reward-voucher-info-v199>p{margin:14px 0 0;padding:12px 14px;border-radius:14px;background:#f5eadc;color:#735c4d;font-size:13px;line-height:1.65}
body.reward-voucher-open-v199{overflow:hidden}
@media(max-width:640px){
  .reward-voucher-modal-v199{padding:12px}
  .reward-voucher-card-v199{border-radius:22px}
  .reward-voucher-card-v199>header{padding:18px}
  .reward-voucher-card-v199>header h2{font-size:22px}
  .reward-voucher-body-v199{grid-template-columns:1fr;gap:18px;padding:18px}
  .reward-voucher-qr-v199 img{width:190px}
  .reward-voucher-info-v199 dl>div{grid-template-columns:78px minmax(0,1fr)}
  .reward-redeem-list-v198 article>div:last-child{white-space:normal}
}


/* v215：付款送出後明確顯示處理狀態，避免 disabled 看起來仍像可點。 */
[data-checkout-confirm][disabled]{cursor:wait!important;opacity:.72!important;filter:saturate(.75)!important;}
[data-checkout-confirm][data-payment-submitting-v215="1"]{min-width:160px;}


/* v216：分店服務模式與物流電話提示 */
.mode-panel.is-shipping .mode-shipping-card,.order-extra-panel.is-shipping .mode-shipping-card{display:block!important}
.mode-panel.is-shipping .mode-delivery-card,.mode-panel.is-shipping .mode-pickup-card,.mode-panel.is-shipping .mode-dinein-card{display:none!important}
[data-shipping-phone][aria-invalid="true"]{border-color:#b73b2d!important;box-shadow:0 0 0 3px rgba(183,59,45,.10)!important;background:#fff7f5!important}

/* v218 前台店家資料／綠界測試提示 */
.ecpay-test-notice-v218{margin-top:12px;padding:13px 15px;border:1px solid #e6b06f;border-radius:14px;background:#fff8df;color:#6a481f;display:grid;gap:5px;line-height:1.55}.ecpay-test-notice-v218[hidden]{display:none!important}.ecpay-test-notice-v218 strong{font-size:14px}.ecpay-test-notice-v218 span{font-size:13px}.ecpay-test-notice-v218 b{font-variant-numeric:tabular-nums;color:#9e4d1d}.store-map-embed-v218{position:relative;overflow:hidden;min-height:340px;padding:0!important;background:#eee}.store-map-embed-v218 iframe{display:block;width:100%;height:100%;min-height:340px;border:0;background:#eee}.store-map-caption-v218{position:absolute;left:14px;right:14px;bottom:14px;display:flex;flex-direction:column;gap:2px;padding:10px 12px;border-radius:12px;background:rgba(255,255,255,.94);box-shadow:0 6px 22px rgba(0,0,0,.12)}.store-map-caption-v218 strong{font-size:14px}.store-map-caption-v218 span{font-size:12px;color:#77685d}@media(max-width:760px){.store-map-embed-v218,.store-map-embed-v218 iframe{min-height:280px}}
.reservation-map-card-v149.reservation-map-embed-v218{display:grid;grid-template-rows:auto auto minmax(230px,1fr) auto auto;align-items:stretch;justify-content:stretch;gap:8px;min-height:360px;padding:16px;background:#f8f1e8;text-align:left}.reservation-map-card-v149.reservation-map-embed-v218 h3{margin:0;font-size:18px}.reservation-map-card-v149.reservation-map-embed-v218 p{margin:0;color:#77685d;line-height:1.55;font-size:13px}.reservation-map-card-v149.reservation-map-embed-v218 iframe{display:block;width:100%;height:100%;min-height:230px;border:0;border-radius:14px;background:#eee}.reservation-map-card-v149.reservation-map-embed-v218 strong{margin-top:2px}.reservation-map-card-v149.reservation-map-embed-v218 small{display:block}@media(max-width:760px){.reservation-map-card-v149.reservation-map-embed-v218{min-height:330px}.reservation-map-card-v149.reservation-map-embed-v218 iframe{min-height:220px}}


/* v220 訂位送出狀態 */
.reservation-form-message-v220{margin-top:12px;padding:12px 14px;border:1px solid #e4cdb9;border-radius:12px;background:#fffaf5;color:#725d50;font-size:14px;font-weight:800;line-height:1.55}
.reservation-form-message-v220.is-loading{border-color:#d8c4a8;background:#fff9ee;color:#8a5c2f}
.reservation-form-message-v220.is-success{border-color:#9bcbaa;background:#f3fff6;color:#2e7542}
.reservation-form-message-v220.is-error{border-color:#e4a999;background:#fff3ef;color:#a13e2b}
.reservation-submit-v149:disabled{opacity:.65;cursor:wait}


.reservation-empty-v220{display:grid;gap:6px;padding:22px;border:1px dashed #dfc5ae;border-radius:16px;background:#fffaf4;color:#745c4c;text-align:center}
.reservation-empty-v220 strong{font-size:17px;color:#3b2b22}.reservation-empty-v220 span{font-size:13px}

/* V224 member saved addresses */
.member-address-picker-v224{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr) auto;gap:10px;align-items:end;padding:12px;border:1px solid rgba(183,115,48,.28);background:#fffaf3;margin-bottom:12px}
.member-address-picker-v224 label{display:grid;gap:5px;font-size:13px;font-weight:700;color:#5d3b24}
.member-address-picker-v224 select,.member-address-picker-v224 input{width:100%;min-height:42px;border:1px solid #e6c9a8;background:#fff;padding:8px 10px;border-radius:10px}
.member-address-picker-v224 button{min-height:42px;border:0;background:#ce6a22;color:#fff;font-weight:700;padding:0 14px;border-radius:10px;cursor:pointer}
.member-address-picker-v224 button:disabled{opacity:.6;cursor:wait}
@media(max-width:760px){.member-address-picker-v224{grid-template-columns:1fr}.member-address-picker-v224 button{width:100%}}
