:root{
  --navy:#1B1A6B;--navy-dk:#1A1A2E;--navy-lt:#2D2FA8;
  --accent:#2D2FA8;--accent-lt:#4F51D4;
  --green:#34D399;--coral:#C87555;--pop:#FCD34D;
  --white:#FFFFFF;--cream:#FAF8F3;--warm:#FAF8F3;
  --text:#2C2C3A;--muted:#6B6B7B;--border:#EDE8DC;
  --gold:#C8A96E;--gold-dark:#BA7517;--terracotta:#C87555;--blue-pale:#C8C9F5;--sand:#EDE8DC;--midnight:#1A1A2E;
  --r:20px;--rs:12px;
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{font-family:'Plus Jakarta Sans','Inter',-apple-system,sans-serif;background:var(--warm);color:var(--text);line-height:1.5;overflow-x:hidden;}
h1,h2,h3,h4{font-family:'Plus Jakarta Sans',sans-serif;}
a{text-decoration:none;color:inherit;}
img{display:block;max-width:100%;}

/* ── LIQUID GLASS ── */
.glass{background:rgba(255,255,255,0.72);backdrop-filter:blur(24px) saturate(180%);-webkit-backdrop-filter:blur(24px) saturate(180%);border:1px solid rgba(255,255,255,0.55);box-shadow:inset 0 1.5px 0 rgba(255,255,255,0.8),0 8px 32px rgba(27,26,107,.09);}
.glass-dark{background:rgba(20,20,104,0.42);backdrop-filter:blur(20px) saturate(160%);-webkit-backdrop-filter:blur(20px) saturate(160%);border:1px solid rgba(255,255,255,0.12);box-shadow:inset 0 1px 0 rgba(255,255,255,0.12),0 8px 32px rgba(0,0,0,.2);}

/* ── NAV floating pill ── */
.nav{position:fixed;top:14px;left:50%;transform:translateX(-50%);width:calc(100% - 28px);max-width:1060px;z-index:300;height:56px;padding:0 18px;display:flex;align-items:center;justify-content:space-between;border-radius:99px;background:rgba(248,249,255,.92);backdrop-filter:blur(28px) saturate(200%);-webkit-backdrop-filter:blur(28px) saturate(200%);border:1px solid rgba(255,255,255,.65);box-shadow:0 2px 24px rgba(27,26,107,.1),inset 0 1px 0 rgba(255,255,255,.92);}
.nav-brand{display:flex;align-items:center;flex-shrink:0;}
.nav-brand img{height:26px;width:auto;}
.nav-brand-text{font-family:'Plus Jakarta Sans',sans-serif;font-size:18px;font-weight:900;color:var(--navy);letter-spacing:-.03em;}
.nav-links{display:none;align-items:center;gap:16px;}
.nav-links a{font-size:12.5px;font-weight:600;color:var(--muted);transition:color .15s;white-space:nowrap;}
.nav-links a:hover{color:var(--navy);}
.nav-bakery,.nav-bakery-mobile{color:#be185d!important;font-weight:800!important;background:linear-gradient(90deg,#be185d,#f472b6,#e11d48,#f472b6,#be185d);background-size:200% auto;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:bakeryShimmer 6s linear infinite;will-change:background-position;transform:translateZ(0);-webkit-transform:translateZ(0);backface-visibility:hidden;-webkit-backface-visibility:hidden;}
@keyframes bakeryShimmer{0%{background-position:0% center;}100%{background-position:200% center;}}
.nav-bakery:hover,.nav-bakery-mobile:hover{-webkit-text-fill-color:#be185d!important;}
.nav-bakery-mobile{background:linear-gradient(90deg,#be185d,#f472b6,#e11d48,#f472b6,#be185d)!important;background-size:200% auto!important;-webkit-background-clip:text!important;-webkit-text-fill-color:transparent!important;background-clip:text!important;animation:bakeryShimmer 6s linear infinite!important;}
.nav-right{display:flex;align-items:center;gap:8px;}
.btn-nav-auth{background:var(--navy);color:#fff;border:none;padding:6px 20px;border-radius:99px;font-size:12.5px;font-weight:700;cursor:pointer;transition:all .2s;white-space:nowrap;box-shadow:0 2px 10px rgba(27,26,107,.2);display:none;align-items:center;justify-content:center;line-height:1;min-height:32px;}
.btn-nav-auth:hover{background:var(--accent);}
.btn-nav-account{width:32px;height:32px;border-radius:50%;background:var(--navy);color:#fff;border:none;cursor:pointer;font-family:'Plus Jakarta Sans',sans-serif;font-size:13px;font-weight:900;display:flex;align-items:center;justify-content:center;transition:all .3s;}
@keyframes founderShine{0%,100%{box-shadow:0 0 8px rgba(200,169,110,.5),0 0 16px rgba(200,169,110,.2);}50%{box-shadow:0 0 14px rgba(232,200,122,.7),0 0 28px rgba(200,169,110,.35);}}
.btn-nav-account.founder{background:linear-gradient(135deg,#8B6914 0%,#C8A96E 45%,#E8C87A 100%);color:#1A1508;animation:founderShine 2.5s ease-in-out infinite;border:1.5px solid rgba(232,200,122,.6);}
.btn-cart{position:relative;width:36px;height:36px;border-radius:50%;background:rgba(27,26,107,.08);border:1.5px solid rgba(27,26,107,.12);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;line-height:1;color:var(--navy);padding:0;}
.btn-cart .cart-svg{width:18px;height:18px;display:block;stroke:currentColor;transition:transform .15s;}
.btn-cart:hover .cart-svg{transform:scale(1.08);}
.btn-nav-donate{display:inline-flex;align-items:center;gap:5px;padding:7px 14px;border-radius:99px;font-size:12px;font-weight:700;color:#C87555;border:1.5px solid rgba(200,117,85,.35);background:rgba(200,117,85,.08);transition:all .2s;white-space:nowrap;text-decoration:none;}
.btn-nav-donate:hover{background:rgba(200,117,85,.16);border-color:#C87555;}
.btn-cart:hover{background:rgba(27,26,107,.14);border-color:rgba(27,26,107,.22);}
.cart-badge{position:absolute;top:-4px;right:-4px;width:16px;height:16px;border-radius:50%;background:var(--coral);color:#fff;font-size:9px;font-weight:900;display:none;align-items:center;justify-content:center;font-family:'Plus Jakarta Sans',sans-serif;}
.hamburger{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;background:none;border:none;cursor:pointer;padding:6px;}
.hamburger span{display:block;width:20px;height:2px;background:var(--navy);border-radius:99px;transition:all .25s;}
.hamburger.open span:nth-child(1){transform:translateY(6px) rotate(45deg);}
.hamburger.open span:nth-child(2){opacity:0;}
.hamburger.open span:nth-child(3){transform:translateY(-6px) rotate(-45deg);}

/* ── MOBILE DRAWER ── */
.nav-drawer{position:fixed;top:0;left:0;right:0;bottom:0;z-index:250;background:rgba(248,249,255,.97);backdrop-filter:blur(32px);-webkit-backdrop-filter:blur(32px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:80px 20px 40px;overflow-y:auto;transform:translateY(-100%);visibility:hidden;transition:transform .3s cubic-bezier(.4,0,.2,1),visibility .3s;will-change:transform;}
.nav-drawer.open{transform:translateY(0);visibility:visible;}
.nav-drawer a{font-family:'Plus Jakarta Sans',sans-serif;font-size:22px;font-weight:800;color:var(--navy);letter-spacing:-.03em;}
@media(max-height:600px){.nav-drawer{gap:12px;padding-top:70px;}.nav-drawer a{font-size:18px;}}
.nav-drawer a:hover{color:var(--accent);}
.drawer-auth{display:flex;gap:10px;margin-top:8px;}

/* ── HERO ── */
/* ── HERO ── */
.hero{background:var(--navy);color:#fff;padding:152px 5% 0;min-height:auto;position:relative;overflow:hidden;}
.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;opacity:.55;transform:scale(1.12);transform-origin:center center;pointer-events:none;}
/* Hide native iOS/Android video chrome — keeps the hero clean when
   the browser's autoplay gate briefly flashes a play button or
   ±10-second seek overlays. */
.hero-video::-webkit-media-controls,
.hero-video::-webkit-media-controls-enclosure,
.hero-video::-webkit-media-controls-panel,
.hero-video::-webkit-media-controls-play-button,
.hero-video::-webkit-media-controls-start-playback-button,
.hero-video::-webkit-media-controls-overlay-play-button,
.hero-video::-webkit-media-controls-overlay-enclosure,
.hero-video::-webkit-media-controls-fullscreen-button,
.hero-video::-webkit-media-controls-seek-back-button,
.hero-video::-webkit-media-controls-seek-forward-button{display:none !important;-webkit-appearance:none !important;opacity:0 !important;}
.hero-bg{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(10,12,40,.55) 0%,rgba(10,12,40,.7) 100%),radial-gradient(ellipse 70% 80% at 100% 0%,rgba(79,81,212,.45) 0%,transparent 60%),radial-gradient(ellipse 60% 40% at 50% 110%,rgba(45,47,168,.25) 0%,transparent 60%);}

/* hero two-col grid */
.hero-grid{position:relative;z-index:2;max-width:1100px;margin:0 auto;width:100%;display:grid;grid-template-columns:1fr;gap:28px;padding-bottom:132px;}/* clears the wave */
.hero-inner{max-width:580px;padding-bottom:8px;}
/* Eyebrow row: meal-prep-minneapolis tag on the left, Google review
   badge floating on the right. Stacks vertically on narrow screens. */
.hero-eyebrow-row{display:flex;align-items:center;justify-content:flex-start;gap:12px;margin-bottom:14px;flex-wrap:wrap;max-width:none;}
.hero-eyebrow-tag{display:inline-flex;align-items:center;gap:6px;font-size:10px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:rgba(200,169,110,.75);}
.hero-eyebrow-rule{width:16px;height:2px;background:rgba(200,169,110,.5);border-radius:99px;}
.hero-greview{display:inline-flex;align-items:center;gap:8px;padding:6px 12px 6px 10px;border-radius:99px;background:linear-gradient(180deg,rgba(255,255,255,.14) 0%,rgba(255,255,255,.06) 100%);border:1px solid rgba(255,255,255,.22);backdrop-filter:blur(14px) saturate(160%);-webkit-backdrop-filter:blur(14px) saturate(160%);color:#fff;text-decoration:none;font-family:'Plus Jakarta Sans',sans-serif;box-shadow:inset 0 1px 0 rgba(255,255,255,.22),0 4px 18px rgba(10,10,40,.18);transition:transform .2s ease,box-shadow .2s ease,background .2s ease;}
.hero-greview:hover{transform:translateY(-1px);background:linear-gradient(180deg,rgba(255,255,255,.20) 0%,rgba(255,255,255,.08) 100%);box-shadow:inset 0 1px 0 rgba(255,255,255,.3),0 8px 24px rgba(10,10,40,.24);}
.hero-greview .hgr-g{width:16px;height:16px;flex-shrink:0;}
.hero-greview .hgr-stars{position:relative;display:inline-block;font-size:11.5px;letter-spacing:1px;line-height:1;height:12px;}
.hero-greview .hgr-star-bg{color:rgba(255,255,255,.28);}
.hero-greview .hgr-star-fill{position:absolute;top:0;left:0;color:#FBBC04;overflow:hidden;white-space:nowrap;}
.hero-greview .hgr-score{font-size:12px;font-weight:900;color:#fff;letter-spacing:-.01em;}
.hero-greview .hgr-count{font-size:10.5px;font-weight:700;color:rgba(255,255,255,.7);letter-spacing:.02em;}
@media (max-width:900px){
  .hero-greview .hgr-count{display:none;}
}
@media (max-width:520px){
  .hero-eyebrow-row{gap:10px;}
  .hero-greview{padding:5px 10px 5px 8px;gap:6px;}
  .hero-greview .hgr-g{width:14px;height:14px;}
  .hero-greview .hgr-stars{font-size:10.5px;height:11px;}
  .hero-greview .hgr-score{font-size:11px;}
}

/* weekly drops badge */
.hero-pill{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;border-radius:99px;margin-bottom:18px;font-size:10.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:rgba(255,255,255,.9);background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);}
/* Compact live countdown to weekly cutoff (under CTAs) */
.hero-countdown{display:inline-flex;align-items:center;gap:7px;padding:5px 11px;margin:14px 0 0;border-radius:99px;background:rgba(200,169,110,.1);border:1px solid rgba(200,169,110,.32);color:#fff;font-family:'Plus Jakarta Sans',sans-serif;}
.hero-countdown .hcd-pulse{width:6px;height:6px;border-radius:50%;background:#C8A96E;box-shadow:0 0 0 0 rgba(200,169,110,.7);animation:hcdPulse 1.6s infinite;flex-shrink:0;}
@keyframes hcdPulse{0%{box-shadow:0 0 0 0 rgba(200,169,110,.65);}70%{box-shadow:0 0 0 6px rgba(200,169,110,0);}100%{box-shadow:0 0 0 0 rgba(200,169,110,0);}}
.hero-countdown .hcd-label{font-size:9px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.7);}
.hero-countdown .hcd-vals{display:inline-flex;align-items:baseline;gap:2px;font-variant-numeric:tabular-nums;}
.hero-countdown .hcd-num{font-size:12px;font-weight:900;color:#C8A96E;letter-spacing:-.01em;min-width:16px;text-align:center;display:inline-block;transition:transform .25s;}
.hero-countdown .hcd-num.tick{transform:translateY(-1px) scale(1.06);}
.hero-countdown .hcd-unit{font-size:9px;font-weight:800;color:rgba(255,255,255,.5);text-transform:uppercase;margin-right:3px;}
.hero-countdown .hcd-unit:last-child{margin-right:0;}
@media(max-width:600px){
  .hero-countdown{padding:4px 9px;gap:6px;margin-top:12px;}
  .hero-countdown .hcd-label{font-size:8.5px;}
  .hero-countdown .hcd-num{font-size:11px;min-width:14px;}
  .hero-countdown .hcd-unit{font-size:8px;margin-right:2px;}
}
/* Mobile sticky CTA — blue liquid glass, compact */
.mobile-sticky-cta{display:none;position:fixed;left:50%;bottom:16px;z-index:200;background:rgba(27,26,107,.55);backdrop-filter:blur(22px) saturate(180%);-webkit-backdrop-filter:blur(22px) saturate(180%);color:#fff;font-family:'Plus Jakarta Sans',sans-serif;font-size:13px;font-weight:800;text-align:center;padding:11px 22px;border-radius:99px;box-shadow:0 10px 28px rgba(27,26,107,.35),inset 0 1px 0 rgba(255,255,255,.22),inset 0 -1px 0 rgba(0,0,0,.18);text-decoration:none;letter-spacing:.01em;border:1px solid rgba(255,255,255,.18);cursor:pointer;align-items:center;justify-content:center;gap:6px;transform:translate(-50%,120%);transition:transform .35s cubic-bezier(.34,1.56,.64,1),opacity .25s;opacity:0;}
.mobile-sticky-cta.show{transform:translate(-50%,0);opacity:1;}
.mobile-sticky-cta::after{content:'→';font-size:14px;color:#C8A96E;}
@media(max-width:768px){.mobile-sticky-cta{display:flex;}body.mb-cta-active{padding-bottom:64px;}}
.hero-pill-dot{width:8px;height:8px;border-radius:50%;background:#34D399;flex-shrink:0;box-shadow:0 0 8px rgba(52,211,153,.9),0 0 16px rgba(52,211,153,.4);}
.pill-dot{width:6px;height:6px;border-radius:50%;background:var(--green);box-shadow:0 0 8px rgba(52,211,153,.6);}

.hero h1{font-size:clamp(30px,5.5vw,52px);font-weight:900;line-height:1.02;letter-spacing:-.04em;margin-bottom:14px;text-transform:lowercase;}
.hero h1 em{font-style:italic;color:var(--gold);-webkit-text-fill-color:var(--gold);}
.hero-sub{font-size:clamp(13px,1.8vw,15px);color:rgba(255,255,255,.62);max-width:460px;line-height:1.65;margin-bottom:22px;}
.hero-sub strong{color:rgba(255,255,255,.92);font-weight:600;}
.hero-actions{display:flex;gap:10px;flex-wrap:nowrap;align-items:flex-start;margin-top:18px;}
.hero-btn-menu{display:inline-flex;align-items:center;padding:13px 28px;border-radius:99px;border:none;background:linear-gradient(135deg,#8B6914 0%,#C8A96E 45%,#E8C87A 100%);color:#1A1508;font-family:'Plus Jakarta Sans',sans-serif;font-size:14px;font-weight:900;cursor:pointer;text-decoration:none;transition:all .2s;white-space:nowrap;box-shadow:0 4px 20px rgba(200,169,110,.45),inset 0 1px 0 rgba(255,255,255,.35);letter-spacing:.01em;}
.hero-btn-menu:hover{transform:translateY(-1px);box-shadow:0 8px 28px rgba(200,169,110,.6),inset 0 1px 0 rgba(255,255,255,.45);filter:brightness(1.05);}
.hero-donate-link{display:inline-flex;align-items:center;gap:6px;margin-top:16px;font-size:12px;font-weight:600;color:rgba(255,255,255,.45);border:1px solid rgba(255,255,255,.12);border-radius:99px;padding:6px 14px;transition:all .2s;letter-spacing:.01em;}
.hero-donate-link:hover{color:rgba(255,255,255,.8);border-color:rgba(255,255,255,.3);background:rgba(255,255,255,.05);}
.hero-capture{max-width:440px;margin-bottom:18px;}
.btn-ghost-dim{color:rgba(255,255,255,.45);font-size:13px;font-weight:600;display:inline-flex;align-items:center;gap:6px;padding:10px 18px;border:1.5px solid rgba(255,255,255,.12);border-radius:99px;transition:all .2s;}
.btn-ghost-dim:hover{border-color:rgba(255,255,255,.28);color:rgba(255,255,255,.72);}
.hero-capture-row{display:flex;gap:8px;flex-wrap:nowrap;}
.hero-capture-input{flex:1;min-width:0;padding:12px 18px;border-radius:99px;border:1.5px solid rgba(255,255,255,.22);background:rgba(255,255,255,.1);color:#fff;font-size:13px;outline:none;font-family:inherit;transition:border-color .2s;}
.hero-capture-input::placeholder{color:rgba(255,255,255,.38);}
.hero-capture-input:focus{border-color:rgba(255,255,255,.5);}
.hero-capture-btn{padding:12px 22px;border-radius:99px;border:none;cursor:pointer;background:var(--gold);color:#fff;font-family:'Plus Jakarta Sans',sans-serif;font-size:13px;font-weight:800;white-space:nowrap;transition:all .2s;box-shadow:0 4px 16px rgba(200,169,110,.4);}
.hero-capture-btn:hover{background:#d4b87a;transform:translateY(-1px);}
.hero-capture-label{font-size:13px;color:rgba(255,255,255,.72);font-weight:600;margin-bottom:10px;line-height:1.5;}
.hero-capture-note{font-size:11px;color:rgba(255,255,255,.28);margin-top:8px;}
.btn-primary{background:linear-gradient(135deg,var(--navy) 0%,var(--accent-lt) 100%);color:#fff;padding:13px 26px;border-radius:99px;font-family:'Plus Jakarta Sans',sans-serif;font-size:14px;font-weight:800;box-shadow:0 6px 24px rgba(27,26,107,.4);transition:all .2s;display:inline-block;border:none;cursor:pointer;}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 10px 32px rgba(27,26,107,.5);}
.btn-ghost{color:rgba(255,255,255,.78);font-size:14px;font-weight:600;display:inline-flex;align-items:center;gap:6px;padding:13px 20px;border:1.5px solid rgba(255,255,255,.2);border-radius:99px;transition:all .2s;}
.btn-ghost:hover{border-color:rgba(255,255,255,.45);color:#fff;background:rgba(255,255,255,.08);}

/* hero status cards (right column) */
.hero-stats{display:flex;flex-direction:row;gap:10px;}
.hero-stat-card{background:rgba(255,255,255,.07);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.11);border-radius:20px;padding:14px 12px;text-align:center;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;}
.hero-stat-val{font-family:'Plus Jakarta Sans',sans-serif;font-size:13px;font-weight:800;color:#fff;line-height:1.2;letter-spacing:-.01em;}
.hero-stat-label{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:rgba(255,255,255,.45);}
.hero-stat-dot{width:9px;height:9px;border-radius:50%;background:#34D399;flex-shrink:0;box-shadow:0 0 8px rgba(52,211,153,.9);display:inline-block;margin-right:5px;vertical-align:middle;}


.hero-wave{position:absolute;bottom:-2px;left:0;right:0;line-height:0;z-index:3;}
.hero-wave svg{display:block;width:100%;}

/* ── HERO CAROUSEL ── */
.hero-carousel{overflow:hidden;height:272px;flex-shrink:0;}
.hero-carousel-track{display:flex;flex-direction:column;will-change:transform;}
.hero-chip{background:rgba(255,255,255,.07);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.11);border-radius:16px;padding:14px 16px;margin-bottom:10px;flex-shrink:0;display:flex;flex-direction:column;gap:5px;text-decoration:none;transition:background .2s,border-color .2s;cursor:default;}
a.hero-chip{cursor:pointer;}
a.hero-chip:hover{background:rgba(255,255,255,.13);border-color:rgba(255,255,255,.28);}
.hero-chip-val{font-family:'Plus Jakarta Sans',sans-serif;font-size:13px;font-weight:800;color:#fff;line-height:1.2;letter-spacing:-.01em;}
.hero-chip-lbl{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:rgba(255,255,255,.45);}
.hero-chip-donate .hero-chip-val{color:#ffa0b8;}
.chip-heart{display:inline-block;animation:chipHeartbeat 1.5s ease-in-out infinite;margin-right:4px;}
.chip-pin{display:inline-block;animation:chipBounce 1.4s ease-in-out infinite;margin-right:4px;transform-origin:bottom center;}
.chip-syringe{display:inline-block;animation:chipSyringe 2s ease-in-out infinite;margin-right:4px;}
.chip-weekly{display:inline-block;animation:chipSparkle 2.2s ease-in-out infinite;margin-right:4px;}
@keyframes chipHeartbeat{0%,100%{transform:scale(1);}14%{transform:scale(1.35);}28%{transform:scale(1);}42%{transform:scale(1.2);}70%{transform:scale(1);}}
@keyframes cartCheckPop{0%{transform:scale(0) rotate(-45deg);opacity:0;}60%{transform:scale(1.3) rotate(0);opacity:1;}100%{transform:scale(1) rotate(0);opacity:1;}}
@keyframes salePulse{0%,100%{box-shadow:0 4px 18px rgba(239,68,68,.55);transform:scale(1);}50%{box-shadow:0 6px 28px rgba(239,68,68,.85);transform:scale(1.07);}}
@keyframes bannerShimmer{0%{background-position:200% center;}100%{background-position:-200% center;}}
@keyframes sparkle{0%,100%{opacity:.55;transform:scale(.85) rotate(-10deg);}50%{opacity:1;transform:scale(1.35) rotate(15deg);}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes scaleIn{from{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}
.hp-sale-badge{position:absolute;top:8px;right:8px;background:linear-gradient(135deg,#EF4444,#FF6A00);color:#fff;font-size:12px;font-weight:900;padding:5px 14px;border-radius:99px;letter-spacing:.07em;text-transform:uppercase;animation:salePulse 1.5s ease-in-out infinite;z-index:3;box-shadow:0 4px 16px rgba(239,68,68,.5);}
.menu-card.on-sale{box-shadow:0 0 0 2px rgba(239,68,68,.35),0 8px 24px rgba(0,0,0,.08)!important;}
@keyframes chipBounce{0%,100%{transform:translateY(0);}40%{transform:translateY(-5px);}60%{transform:translateY(-3px);}}
@keyframes chipSyringe{0%,100%{transform:rotate(-15deg);}50%{transform:rotate(15deg);}}
@keyframes chipSparkle{0%,100%{transform:scale(1);opacity:1;}30%{transform:scale(1.4) rotate(-8deg);opacity:.7;}60%{transform:scale(.85) rotate(6deg);opacity:.9;}}


/* ── STATS ── */
.stats-wrap{background:var(--warm);padding:14px 5%;}
.stats{display:flex;gap:8px;max-width:1060px;margin:0 auto;justify-content:center;flex-wrap:wrap;}
.stat-card{background:#fff;border-radius:99px;padding:7px 18px;border:1px solid var(--border);display:flex;align-items:center;gap:8px;box-shadow:0 1px 4px rgba(0,0,0,.04);}
.stat-num{font-family:'Plus Jakarta Sans',sans-serif;font-size:13px;font-weight:900;letter-spacing:-.02em;}
.stat-label{font-size:12px;font-weight:500;color:var(--muted);}
.stat-card:nth-child(1) .stat-num{color:var(--accent);}
.stat-card:nth-child(2) .stat-num{color:var(--green);}
.stat-card:nth-child(3) .stat-num{color:var(--navy);}
.stat-card:nth-child(4) .stat-num{color:var(--coral);}

/* ── SECTION SHARED ── */
.section{padding:36px 5%;}
.section-inner{max-width:1280px;margin:0 auto;}
@media(max-width:960px){.section-inner{max-width:1060px;}}
.section-tag{display:inline-flex;align-items:center;gap:6px;font-size:10px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:10px;}
.section-tag::before{content:'';width:16px;height:2px;background:var(--accent);border-radius:99px;}
.section-title{font-family:'Plus Jakarta Sans',sans-serif;font-size:clamp(26px,4.5vw,44px);font-weight:900;letter-spacing:-.04em;margin-bottom:10px;line-height:1.05;text-transform:lowercase;}
.section-sub{font-size:14px;color:var(--muted);max-width:500px;line-height:1.65;margin-bottom:24px;}

/* ── REVIEWS CAROUSEL ── */
.reviews-section{background:var(--blue-pale);padding:24px 0 28px;overflow:hidden;}
.reviews-header{font-family:'Plus Jakarta Sans',sans-serif;font-size:11px;font-weight:900;color:var(--navy);letter-spacing:.06em;text-transform:uppercase;padding:0 5%;margin-bottom:18px;}
.reviews-carousel-wrap{overflow:hidden;width:100%;}
.reviews-track{display:flex;gap:0;width:max-content;will-change:transform;}
.review-card{background:#fff;border:1px solid rgba(27,26,107,.1);border-radius:20px;padding:20px 22px;box-shadow:0 2px 12px rgba(27,26,107,.08);width:clamp(270px,82vw,380px);flex-shrink:0;margin-right:14px;display:flex;flex-direction:column;gap:10px;}
.review-stars{font-size:14px;letter-spacing:1px;color:#F59E0B;line-height:1;}
.review-text{font-size:14px;line-height:1.7;color:#374151;font-style:italic;flex:1;}
.review-author{display:flex;align-items:center;gap:9px;padding-top:6px;border-top:1px solid var(--border);}
.review-avatar{width:30px;height:30px;border-radius:50%;background:linear-gradient(135deg,var(--navy),var(--accent-lt));display:flex;align-items:center;justify-content:center;font-family:'Plus Jakarta Sans',sans-serif;font-size:11px;font-weight:900;color:#fff;flex-shrink:0;}
.review-name{font-size:12px;font-weight:800;color:var(--text);}
.review-product{font-size:11px;color:var(--accent);font-weight:600;}
@media(max-width:480px){
  .review-card{padding:14px 16px;width:clamp(240px,86vw,320px);}
  .review-text{font-size:13px;line-height:1.6;}
  .review-stars{font-size:12px;}
  .review-name{font-size:11.5px;}
  .review-product{font-size:10.5px;}
}

/* ── HOW IT WORKS ── */
.how{background:var(--cream);padding:14px 5%;}
.how-title{text-align:center;font-family:'Plus Jakarta Sans',sans-serif;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin-bottom:10px;}
.how-strip{display:flex;align-items:center;justify-content:center;gap:0;flex-wrap:wrap;max-width:860px;margin:0 auto;}
.how-step{display:flex;align-items:center;gap:10px;padding:10px 20px;}
.how-step-num{width:28px;height:28px;border-radius:50%;flex-shrink:0;background:var(--navy);color:#fff;font-family:'Plus Jakarta Sans',sans-serif;font-size:12px;font-weight:900;display:flex;align-items:center;justify-content:center;}
.how-step-body{}
.how-step-when{font-size:10px;font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:.06em;line-height:1;}
.how-step-label{font-family:'Plus Jakarta Sans',sans-serif;font-size:13px;font-weight:800;color:var(--text);letter-spacing:-.02em;text-transform:lowercase;}
.how-arrow{color:var(--border);font-size:18px;font-weight:300;flex-shrink:0;padding:0 4px;}
@media(max-width:600px){.how-arrow{display:none;}.how-step{padding:8px 12px;}}

/* ── MENU ── */
#menu .section-title em{font-style:italic;color:var(--accent);font-weight:inherit;}
#menu .section-sub strong{color:var(--navy);font-weight:700;}
.filter-row{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:24px;overflow-x:auto;padding-bottom:2px;}
.filter-pill{padding:7px 16px;border-radius:99px;font-size:12px;font-weight:700;border:1.5px solid var(--border);background:#fff;color:var(--muted);cursor:pointer;transition:all .2s;white-space:nowrap;text-transform:lowercase;}
@media(hover:hover){.filter-pill:hover{background:var(--navy);color:#fff;border-color:var(--navy);box-shadow:0 3px 10px rgba(27,26,107,.2);}}
/* ── MOBILE NAV OPTIMIZATION (≤720px) ──
   The floating nav pill is elegant on desktop but clunky at phone width
   — padding + blur eat the headline room. Switch to a slim solid header
   bar on mobile, hide nav-links (drawer still available), and pair with
   a bottom tab bar for thumb-zone navigation. */
/* ── MOBILE POLISH (≤720px) — typography bump, thumb-friendly taps ── */
@media(max-width:720px){
  html,body{overflow-x:hidden;}
  /* Premium type scale — bump body + small text for readability */
  body{font-size:15px;}
  .hero-sub{font-size:15px !important;line-height:1.65 !important;}
  .section-sub,.about-body,.card-desc,.product-desc,.review-card p{font-size:14.5px !important;line-height:1.55;}
  .card-hint,.card-macros,.filter-pill,.btn-nav-auth,.nav-links a,.acct-link{font-size:13px !important;}
  .card-cat,.hero-pill,.mc-label,.eyebrow,.section-tag{font-size:11px !important;}

  /* 48×48 minimum tap targets on anything interactive */
  .filter-pill,.card-order,.btn-add,.mc-add,.hero-btn-menu,.btn-primary,
  .btn-auth,.btn-nav-auth,.nav-drawer a,.hamburger,.btn-cart,.btn-nav-account,
  a.card-slide-btn,.faq-q,
  .mc-add,.hh-step,.pc-cta,.ft-cta{min-height:44px;}
  .btn-add,.card-order,.btn-primary,.hero-btn-menu{min-height:48px;padding:12px 22px !important;}
  .card-diet-tag{display:inline-flex !important;align-items:center;justify-content:center;min-height:22px;height:22px;line-height:1 !important;padding:0 10px !important;white-space:nowrap;}
  /* Prevent the input caret from being taller than the field */
  input,textarea{font-size:16px !important;} /* also disables iOS zoom on focus */
}

@media(max-width:720px){
  /* Tighter chrome on mobile — compact banner (~42px) + nav (52px) =
     94px, keep ~12px breathing room above the hero content. */
  .hero{padding-top:106px !important;}
  .hero-grid{padding-bottom:96px !important;}
  /* Nav = floating liquid-glass pill with soft corners. Uses left+right
     margin instead of full-bleed so the edges don't feel sharp. */
  .nav{
    left:8px;right:8px;width:auto;max-width:none;transform:none !important;
    border-radius:22px;height:52px;padding:0 8px 0 14px;
    background:rgba(248,249,255,.62);
    backdrop-filter:blur(28px) saturate(200%);
    -webkit-backdrop-filter:blur(28px) saturate(200%);
    border:1px solid rgba(255,255,255,.45);
    box-shadow:0 8px 28px rgba(27,26,107,.08),inset 0 1px 0 rgba(255,255,255,.55);
    transition:height .3s cubic-bezier(.22,1,.36,1),padding .3s cubic-bezier(.22,1,.36,1),background .3s ease,box-shadow .3s ease;
  }
  /* Shrink = height + padding + stronger glass, no transform.
     Children scale proportionally via their own media rules below. */
  .nav.shrink{
    height:42px;padding:0 6px 0 12px;
    transform:none !important;
    background:rgba(248,249,255,.82);
    box-shadow:0 6px 22px rgba(27,26,107,.14),inset 0 1px 0 rgba(255,255,255,.7);
  }
  .nav img{max-height:26px;width:auto;transition:max-height .3s ease;}
  .nav.shrink img{max-height:22px;}
  .btn-nav-account,#cartBtn{width:34px !important;height:34px !important;min-height:34px !important;min-width:34px !important;flex-shrink:0;aspect-ratio:1/1;border-radius:50%;transition:width .3s,height .3s;}
  .nav.shrink .btn-nav-account,.nav.shrink #cartBtn{width:30px !important;height:30px !important;min-height:30px !important;min-width:30px !important;}
  .btn-nav-auth{padding:6px 18px !important;font-size:12px !important;min-height:32px !important;transition:padding .3s,font-size .3s;}
  .nav.shrink .btn-nav-auth{padding:5px 16px !important;font-size:11.5px !important;min-height:30px !important;}
  .hamburger{transition:width .3s,height .3s;}
  .nav.shrink .hamburger{width:34px;height:34px;}
  .nav-right{gap:6px !important;}

  /* Finer adjustments for smaller phones */
  @media(max-width:400px){
    .nav{padding:0 6px 0 10px;}
    .nav img{max-height:22px;}
    .nav.shrink img{max-height:20px;}
    .btn-nav-auth{padding:5px 14px !important;font-size:11.5px !important;min-height:30px !important;}
  }
}

/* ── FLOATING CART PILL — six-phase state machine, mobile ≤720px ── */
/* Always visible (replaces the legacy qty>0 .show gate). Phase classes
   are toggled by /scripts/cart-pill.js: cp-empty / cp-below-min /
   cp-met / cp-standard / cp-cutoff (+ additive cp-lifted while a toast
   is on screen). cp-standard is the default look; other phases override. */
.cart-pill-mobile{display:none;}
@media(max-width:720px){
  .cart-pill-mobile{
    display:inline-flex;position:fixed;right:12px;bottom:calc(18px + env(safe-area-inset-bottom,0));
    z-index:355;align-items:center;gap:10px;padding:11px 16px 11px 14px;border-radius:99px;
    background:linear-gradient(135deg,#8B6914 0%,#C8A96E 45%,#E8C87A 100%);color:#1A1508;
    font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;font-size:13px;
    box-shadow:0 14px 32px rgba(200,169,110,.5),inset 0 1px 0 rgba(255,255,255,.4);
    text-decoration:none;animation:cartPillIn .45s cubic-bezier(.34,1.56,.64,1);
    max-width:calc(100% - 24px);line-height:1;font-variant-numeric:tabular-nums;
    -webkit-tap-highlight-color:transparent;
    transition:transform .25s cubic-bezier(.2,.9,.2,1.4),box-shadow .25s,background .3s,
               bottom .25s cubic-bezier(.2,.9,.2,1.4),color .3s,opacity .25s;
  }
  .cart-pill-mobile .cp-icon{width:18px;height:18px;flex-shrink:0;color:currentColor;}
  .cart-pill-mobile .cp-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .cart-pill-mobile.cp-empty{
    background:linear-gradient(135deg,rgba(200,169,110,.78),rgba(232,200,122,.78));
    box-shadow:0 6px 18px rgba(200,169,110,.22),0 2px 6px rgba(0,0,0,.08);
    color:rgba(26,21,8,.78);
  }
  .cart-pill-mobile.cp-below-min{
    background:#fff;color:#1B1A6B;
    box-shadow:0 8px 24px rgba(200,169,110,.28),0 2px 6px rgba(27,26,107,.08);
    animation:cartPillPulse 2.4s ease-in-out infinite;
  }
  /* phase: minimum-met — tandoco standard: navy with gold-accent check
     + gold pop/glow ring, transient (~1.8s). No off-palette green. */
  .cart-pill-mobile.cp-met{
    background:linear-gradient(135deg,#1B1A6B 0%,#1A1A2E 100%);color:#fff;
    box-shadow:0 8px 24px rgba(27,26,107,.36),0 0 0 0 rgba(232,200,122,.6),0 2px 6px rgba(0,0,0,.12);
    animation:cartPillBump .6s cubic-bezier(.2,.9,.2,1.4),cartPillGlow 1.2s ease-out;
  }
  .cart-pill-mobile.cp-met .cp-icon{color:#E8C87A;}
  .cart-pill-mobile.cp-cutoff{
    background:linear-gradient(135deg,#c8632e,#d97a3e);color:#fff;
    box-shadow:0 8px 24px rgba(200,99,46,.36),0 2px 6px rgba(0,0,0,.12);
  }
  .cart-pill-mobile.cp-lifted{bottom:calc(96px + env(safe-area-inset-bottom,0));}
  /* legacy hooks — drop the old .show requirement since pill is always rendered.
     `:has()` is supported in every evergreen browser we target. */
  .cart-pill-mobile.near-footer{transform:translateY(160%);opacity:0;pointer-events:none;}
  body:has(#navDrawer.open) .cart-pill-mobile,
  body:has(#tdcoCartDrawer.open) .cart-pill-mobile{transform:translateY(160%);opacity:0;pointer-events:none;}
  @keyframes cartPillIn{0%{opacity:0;transform:translateY(20px) scale(.85);}100%{opacity:1;transform:translateY(0) scale(1);}}
  @keyframes cartPillPulse{
    0%,100%{box-shadow:0 8px 24px rgba(200,169,110,.28),0 0 0 0 rgba(200,169,110,.55),0 2px 6px rgba(27,26,107,.08);}
    50%{box-shadow:0 8px 24px rgba(200,169,110,.4),0 0 0 10px rgba(200,169,110,0),0 2px 6px rgba(27,26,107,.08);}
  }
  @keyframes cartPillBump{0%{transform:scale(1);}45%{transform:scale(1.12);}100%{transform:scale(1);}}
  @keyframes cartPillGlow{
    0%{box-shadow:0 8px 24px rgba(27,26,107,.36),0 0 0 0 rgba(232,200,122,.7),0 2px 6px rgba(0,0,0,.12);}
    60%{box-shadow:0 8px 24px rgba(27,26,107,.36),0 0 0 14px rgba(232,200,122,0),0 2px 6px rgba(0,0,0,.12);}
    100%{box-shadow:0 8px 24px rgba(27,26,107,.36),0 0 0 0 rgba(232,200,122,0),0 2px 6px rgba(0,0,0,.12);}
  }
  @media(prefers-reduced-motion:reduce){
    .cart-pill-mobile,
    .cart-pill-mobile.cp-below-min,
    .cart-pill-mobile.cp-met{animation:none;}
  }
}

/* ── Sticky filter pills on mobile while in the menu section ── */
@media(max-width:720px){
  /* Filter row docks as a sticky glass pill at the nav's bottom edge.
     Same left/right 8px gutters as the nav, matching glass, matching
     shadow. When it actually pins (via JS-added body.command-bar),
     the two pills visually fuse: nav loses its bottom radius, filter
     loses its top radius, they sit flush as one merged pill. */
  #menu .filter-row{
    position:sticky !important;top:98px !important;z-index:49 !important;
    display:flex !important;justify-content:flex-start !important;
    margin:0 calc(-1 * 5% + 12px) 16px calc(-1 * 5% + 12px) !important;
    padding:4px 6px !important;
    background-color:rgba(248,249,255,.82) !important;
    backdrop-filter:blur(24px) saturate(180%);
    -webkit-backdrop-filter:blur(24px) saturate(180%);
    border-radius:99px;
    border:1px solid rgba(255,255,255,.4) !important;
    box-shadow:0 4px 14px rgba(27,26,107,.08),inset 0 1px 0 rgba(255,255,255,.5);
    flex-wrap:nowrap !important;overflow-x:auto;scrollbar-width:none;
    gap:6px !important;
    transition:top .3s cubic-bezier(.22,1,.36,1),border-top-left-radius .25s ease,border-top-right-radius .25s ease,background-color .25s ease,box-shadow .25s ease;
  }
  #menu .filter-row::-webkit-scrollbar{display:none;}
  /* Inside the glass frame, pills go flat — no nested pill-in-pill. */
  #menu .filter-pill{flex-shrink:0;background:transparent;border-color:transparent;box-shadow:none;min-height:34px !important;padding:5px 12px !important;}
  #menu .filter-pill.active{background:var(--navy);color:#fff;border-color:var(--navy);}
  body.nav-shrunk #menu .filter-row{top:88px !important;}

}

/* ── MENU CARD v1 (.tc-card) — hero-photo layout, shared across index + store.
   Dormant until the render loop in renderMenu() switches over. Classes are
   prefixed .tc-* to coexist with the legacy .menu-card during the swap. */
.tc-card{background:#fff;border-radius:22px;overflow:hidden;box-shadow:0 1px 2px rgba(27,26,107,.04),0 8px 28px rgba(27,26,107,.08);position:relative;cursor:pointer;display:flex;flex-direction:column;transition:transform .2s ease,box-shadow .2s ease;}
.tc-card:hover{transform:translateY(-2px);box-shadow:0 2px 4px rgba(27,26,107,.05),0 16px 40px rgba(27,26,107,.14);}
/* Photo slot is locked to 4:3 so every card in the grid reads evenly.
   Photos fill via object-fit:cover and center per-card via object-position
   (matches the menu-modal look). Body absorbs any row-stretch. */
.tc-card-img{position:relative;aspect-ratio:4/3;overflow:hidden;background-color:#e8d4a8;display:flex;align-items:flex-start;justify-content:space-between;padding:12px;flex:0 0 auto;}
.tc-card-img::after{content:'';position:absolute;bottom:0;left:0;right:0;height:45%;background:linear-gradient(180deg,transparent 0%,rgba(0,0,0,.34) 100%);pointer-events:none;z-index:1;}
.tc-card-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;}
.tc-card-cat{position:relative;z-index:2;font-family:'Inter',sans-serif;font-size:9px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--navy);background:rgba(255,255,255,.88);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);padding:6px 12px;border-radius:99px;box-shadow:0 2px 6px rgba(27,26,107,.1);flex-shrink:0;}
.tc-card-badge{position:relative;z-index:2;font-size:9px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;padding:5px 11px;border-radius:99px;box-shadow:0 2px 8px rgba(0,0,0,.18);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);white-space:nowrap;flex-shrink:0;}
.tc-card-badge-special{background:linear-gradient(135deg,#C8A96E,#E8C87A);color:#1A1508;}
.tc-card-badge-fav{background:rgba(27,26,107,.92);color:#fff;}
.tc-card-badge-sale{background:linear-gradient(135deg,#EF4444,#DC2626);color:#fff;}
/* Badged cards get a colored border that matches the badge — same distinction
   the legacy .menu-card.fan-favorite treatment used to give. */
.tc-card.has-badge-fav{border:2px solid var(--navy);}
.tc-card.has-badge-special{border:2px solid #C8A96E;}
.tc-card.has-badge-sale{border:2px solid #DC2626;}
.tc-card-overlay{position:absolute;bottom:12px;left:14px;right:14px;z-index:2;display:flex;justify-content:space-between;align-items:flex-end;gap:10px;}
.tc-card-name{font-family:'Plus Jakarta Sans',sans-serif;font-weight:900;font-size:22px;color:#fff;letter-spacing:-.02em;line-height:1.05;text-shadow:0 2px 8px rgba(0,0,0,.45);max-width:calc(100% - 90px);margin:0;text-transform:lowercase;flex:1 1 auto;min-width:0;}
.tc-card-rating{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:700;color:#fff;background:rgba(0,0,0,.35);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);padding:4px 9px;border-radius:99px;text-shadow:0 1px 2px rgba(0,0,0,.3);white-space:nowrap;flex-shrink:0;}
.tc-card-rating .tc-star{color:#E8C87A;font-size:10px;}
.tc-card-rating .tc-rcount{opacity:.65;font-weight:500;margin-left:1px;}
/* Mobile: keep the review pill inside the card at the bottom-right of the
   picture. The desktop layout reserves 90px for the pill on the name element,
   which a "★4.9(47)"-style pill can exceed and then get clipped by the card's
   overflow:hidden. Shrink the pill and rebalance the reservation on mobile. */
@media(max-width:720px){
  .tc-card-overlay{left:12px;right:12px;bottom:10px;gap:6px;}
  .tc-card-name{font-size:19px;max-width:calc(100% - 72px);}
  .tc-card-rating{font-size:10px;padding:3px 7px;gap:3px;}
  .tc-card-rating .tc-star{font-size:9px;}
}
.tc-card-stripe{height:3px;background:#1d4ed8;}
.tc-card-stripe[data-cat="breakfast"]{background:#d97706;}
.tc-card-stripe[data-cat="bakery"]{background:#be185d;}
.tc-card-stripe[data-cat="smoothies"]{background:#059669;}
.tc-card-body{padding:12px 14px 14px;display:flex;flex-direction:column;flex:1 0 auto;gap:10px;}
/* Macros: inline row, smaller muted labels, dot separators between items */
.tc-card-macros{display:flex;flex-wrap:nowrap;gap:0;align-items:baseline;font-size:12px;line-height:1.2;overflow:hidden;}
.tc-card-macro{display:inline-flex;align-items:baseline;gap:2px;white-space:nowrap;min-width:0;}
.tc-card-macro + .tc-card-macro{margin-left:6px;}
.tc-card-macro + .tc-card-macro::before{content:'·';color:var(--muted);margin-right:6px;opacity:.5;}
.tc-card-macro-val{font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;color:var(--navy);letter-spacing:-.01em;}
.tc-card-macro-val .tc-u{font-size:10px;font-weight:700;color:var(--muted);}
.tc-card-macro-lbl{font-size:11px;font-weight:500;color:var(--muted);}
/* Tags: single compact row for allergens (red) + diet (green), no dots or label */
.tc-card-tags{display:flex;align-items:center;flex-wrap:wrap;gap:5px;min-height:0;}
.tc-card-tags:empty{display:none;}
.tc-aller,
.tc-diet{display:inline-flex;align-items:center;font-size:9.5px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;padding:2px 8px;border-radius:99px;white-space:nowrap;flex-shrink:0;border:none;cursor:pointer;font-family:inherit;transition:transform .12s;}
.tc-aller{color:#DC2626;background:#FEE2E2;}
.tc-diet{color:#065F46;background:#D1FAE5;}
.tc-aller:hover,
.tc-diet:hover{transform:translateY(-1px);}
.tc-aller-more{background:#DC2626;color:#fff;}
.tc-card-cta-wrap{margin-top:auto;position:relative;padding-top:10px;}
.tc-card-cta{width:100%;background:var(--navy);color:#fff;border:none;border-radius:99px;padding:14px 18px;display:flex;justify-content:space-between;align-items:center;gap:8px;font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;font-size:14px;letter-spacing:-.01em;box-shadow:0 4px 14px rgba(27,26,107,.2);cursor:pointer;transition:transform .2s,box-shadow .2s;}
.tc-card-cta:hover{transform:translateY(-1px);box-shadow:0 6px 18px rgba(27,26,107,.28);}
.tc-card-cta-price{font-weight:900;font-size:15px;display:inline-flex;align-items:baseline;gap:4px;flex-shrink:1;min-width:0;}
.tc-card-cta-price .tc-per{font-size:10px;font-weight:600;opacity:.7;}
.tc-card-cta-price .tc-strike{text-decoration:line-through;font-size:12px;opacity:.55;font-weight:600;}
.tc-card-cta-label{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;flex-shrink:0;font-size:13px;}
.tc-card-cta-frame{position:absolute;top:0;left:14px;font-size:9px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#1A1508;background:linear-gradient(135deg,#C8A96E,#E8C87A);padding:2px 9px;border-radius:99px;box-shadow:0 2px 6px rgba(200,169,110,.35);white-space:nowrap;max-width:calc(100% - 28px);overflow:hidden;text-overflow:ellipsis;z-index:2;}
.tc-card.is-unavailable{opacity:.88;}
.tc-card.is-unavailable .tc-card-img{filter:saturate(.55) brightness(.9);}
.tc-card.is-unavailable .tc-card-img::before{content:'';position:absolute;inset:0;z-index:1;background:rgba(255,255,255,.18);pointer-events:none;}
.tc-card-return{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:700;color:var(--navy);background:#F4F1E8;padding:7px 13px;border-radius:99px;margin-bottom:10px;align-self:flex-start;}
.tc-card-return::before{content:'📅';font-size:11px;}
.tc-card-notify{width:100%;background:#fff;color:var(--navy);border:1.5px solid var(--navy);border-radius:99px;padding:12px 18px;text-align:center;font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;font-size:13px;letter-spacing:-.005em;cursor:pointer;transition:all .2s;margin-top:auto;}
.tc-card-notify:hover{background:var(--navy);color:#fff;}
.tc-card-notify.sent{background:#F4F1E8;border-color:var(--gold);color:#A88450;}

/* ── MENU GRID — mobile-first horizontal list ── */
.menu-grid{display:grid;grid-template-columns:1fr;gap:14px;}

/* ── MENU RAILS (mobile only, ≤720px) ──
   Groups cards into horizontal rails by category so the menu fits in
   ~3 screens instead of 20. Desktop ignores .rails entirely. */
@media(max-width:720px){
  .menu-grid.rails{display:block;gap:0;}
  .menu-rail{margin:0 -5% 18px;}
  .menu-rail-head{display:flex;align-items:baseline;justify-content:space-between;padding:0 5% 10px;}
  .menu-rail-head h3{font-family:'Plus Jakarta Sans',sans-serif;font-size:16px;font-weight:900;letter-spacing:-.02em;text-transform:lowercase;color:var(--text);margin:0;}
  .menu-rail-count{font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);}
  .menu-rail-track{display:flex;gap:12px;overflow-x:auto;overflow-y:visible;scroll-snap-type:x mandatory;scroll-padding-left:5%;padding:2px 5% 8px;-webkit-overflow-scrolling:touch;scrollbar-width:none;}
  .menu-rail-track::-webkit-scrollbar{display:none;}
  .menu-rail-track{align-items:stretch;}
  .menu-rail-track > .menu-card,
  .menu-rail-track > .tc-card{flex:0 0 82%;max-width:360px;scroll-snap-align:start;margin:0;position:relative;display:flex;flex-direction:column;}

  /* Card flip (mobile rails only) — ⓘ button toggles back face with
     macros + dietary / allergen tags. Positioned bottom-left over the
     image so it doesn't collide with the top-right category tag. */
  .menu-rail-track > .menu-card .card-flip-btn{
    position:absolute;top:168px;left:10px;z-index:6;
    width:30px;height:30px;min-width:30px;min-height:30px;aspect-ratio:1/1;border-radius:50%;border:0;
    background:rgba(255,255,255,.92);backdrop-filter:blur(10px);
    color:var(--navy);font-family:'Plus Jakarta Sans',sans-serif;font-weight:900;font-size:13px;
    box-shadow:0 4px 12px rgba(27,26,107,.18);cursor:pointer;
    display:flex;align-items:center;justify-content:center;
    -webkit-tap-highlight-color:transparent;
    transition:background .2s,transform .2s;
  }
  .menu-rail-track > .menu-card .card-flip-btn:active{transform:scale(.92);}
  .menu-rail-track > .menu-card.flipped .card-flip-btn{background:var(--navy);color:var(--gold);}
  .card-back{
    position:absolute;inset:0;z-index:5;
    background:linear-gradient(160deg,#1B1A6B 0%,#2D2FA8 100%);
    color:#fff;padding:24px 22px 24px;
    border-radius:22px;
    display:flex;flex-direction:column;gap:14px;
    opacity:0;pointer-events:none;
    transform:rotateY(180deg);transform-origin:center;
    transition:opacity .35s ease,transform .5s cubic-bezier(.22,1,.36,1);
    overflow-y:auto;
  }
  .menu-rail-track > .menu-card.flipped .card-back{opacity:1;pointer-events:auto;transform:none;}
  .menu-rail-track > .menu-card.flipped > :not(.card-back):not(.card-flip-btn){opacity:.15;transition:opacity .3s;}
  .card-back h5{font-family:'Plus Jakarta Sans',sans-serif;font-size:11px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);margin:0 0 6px;}
  .card-back .cb-name{font-family:'Plus Jakarta Sans',sans-serif;font-size:15px;font-weight:900;letter-spacing:-.02em;margin:0;line-height:1.15;}
  .card-back .cb-desc{font-size:12.5px;line-height:1.55;color:rgba(255,255,255,.78);margin:4px 0 0;}
  .card-back .cb-macros{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:4px;}
  .card-back .cb-macro{padding:8px 10px;border-radius:10px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.1);}
  .card-back .cb-macro strong{display:block;font-size:18px;font-weight:900;font-family:'Plus Jakarta Sans',sans-serif;color:var(--gold);}
  .card-back .cb-macro span{font-size:10px;color:rgba(255,255,255,.6);text-transform:uppercase;letter-spacing:.1em;}
  .card-back .cb-tags{display:flex;flex-wrap:wrap;gap:6px;}
  .card-back .cb-tag{padding:4px 9px;border-radius:99px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.12);font-size:10.5px;font-weight:700;}
  .menu-rail-track::after{content:"";flex:0 0 5%;}
  /* Collapse hover lift inside rails (interferes with horizontal scroll) */
  .menu-rail-track > .menu-card:hover{transform:none;}
  /* Clamp descriptions to 3 lines with ellipsis — hints at content
     without eating card height. Nothing ever truncated mid-word. */
  .menu-rail-track > .menu-card .card-desc,
  .menu-rail-track > .menu-card .product-desc{
    display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;
    overflow:hidden;text-overflow:ellipsis;
  }
}
.menu-card{background:rgba(255,255,255,.72);backdrop-filter:blur(24px) saturate(180%);-webkit-backdrop-filter:blur(24px) saturate(180%);border:1px solid rgba(255,255,255,.55);box-shadow:0 8px 32px rgba(27,26,107,.08),inset 0 1.5px 0 rgba(255,255,255,.9);border-radius:22px;overflow:hidden;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column;position:relative;cursor:pointer;}
.menu-card:hover{box-shadow:0 16px 48px rgba(27,26,107,.14),inset 0 1px 0 rgba(255,255,255,.95);transform:translateY(-3px);background:rgba(255,255,255,.78);}
@keyframes goldPulse{0%,100%{box-shadow:0 0 8px rgba(200,169,110,.4),0 0 20px rgba(200,169,110,.15),inset 0 0 0 2px #C8A96E;}50%{box-shadow:0 0 16px rgba(232,200,122,.6),0 0 32px rgba(200,169,110,.25),inset 0 0 0 2px #E8C87A;}}
.menu-card.weekly-special{border:2px solid #C8A96E;animation:goldPulse 2.5s ease-in-out infinite;}
.menu-card.fan-favorite{border:2px solid var(--navy);}
.card-img{height:200px;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;}
.card-img img{width:100%;height:100%;object-fit:cover;}
.card-slides{position:absolute;inset:0;}
.card-slides img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .6s ease;}
.card-slides img.active{opacity:1;}
.card-dots{position:absolute;bottom:8px;left:50%;transform:translateX(-50%);display:flex;gap:5px;z-index:3;}
.card-dot{width:7px !important;height:7px !important;min-width:7px !important;min-height:7px !important;max-height:7px;aspect-ratio:1/1;border-radius:50%;background:rgba(255,255,255,.4);border:1px solid rgba(255,255,255,.5);cursor:pointer;padding:0;transition:all .2s;box-sizing:border-box;flex:0 0 7px;}
.card-dot.active{background:#fff;transform:scale(1.3);}
.card-slide-btn{position:absolute;top:50%;transform:translateY(-50%);width:28px;height:28px;border-radius:50%;background:rgba(0,0,0,.3);backdrop-filter:blur(4px);border:none;color:#fff;font-size:13px;cursor:pointer;z-index:3;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .2s;}
.card-img:hover .card-slide-btn{opacity:1;}
.card-slide-btn.prev{left:6px;}
.card-slide-btn.next{right:6px;}
.card-img-placeholder{font-size:9px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--navy);opacity:.4;padding:8px;text-align:center;}
.card-badge{position:absolute;top:10px;left:10px;padding:4px 10px;border-radius:99px;font-size:9px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;background:rgba(52,211,153,.9);color:#fff;}
.card-cat{position:absolute;top:10px;right:10px;background:rgba(255,255,255,.88);backdrop-filter:blur(8px);color:var(--accent);font-size:9px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;padding:3px 10px;border-radius:99px;}
.card-body{padding:18px 20px 20px;display:flex;flex-direction:column;gap:5px;flex:1;}
.card-name{font-family:'Plus Jakarta Sans',sans-serif;font-size:16px;font-weight:800;color:var(--text);letter-spacing:-.02em;text-transform:lowercase;}
.card-diet-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:2px;}
.card-diet-tag{display:inline-block;padding:2px 8px;border-radius:99px;font-size:8.5px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#fff;cursor:pointer;transition:all .15s;}
.card-diet-tag:hover{transform:scale(1.05);filter:brightness(1.15);}
.card-diet-tag.t-gf{background:#059669;}.card-diet-tag.t-vegan{background:#16a34a;}.card-diet-tag.t-vegetarian{background:#65a30d;}
.card-diet-tag.t-halal{background:#0284c7;}.card-diet-tag.t-kosher{background:#7c3aed;}.card-diet-tag.t-allergen-free{background:#0d9488;}
.card-diet-tag.t-allergen{background:#dc2626;font-size:8px;}
.allergen-modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:1200;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .25s;padding:16px;}
.allergen-modal-overlay.open{opacity:1;pointer-events:all;}
.allergen-modal{background:#fff;width:100%;max-width:520px;max-height:88vh;overflow-y:auto;border-radius:24px;transform:translateY(20px) scale(.97);transition:transform .3s cubic-bezier(.4,0,.2,1);position:relative;padding:32px 28px 28px;}
.allergen-modal-overlay.open .allergen-modal{transform:none;}
.allergen-modal-close{position:absolute;top:14px;right:14px;width:36px;height:36px;min-width:36px;min-height:36px;max-height:36px;aspect-ratio:1/1;border-radius:50%;background:var(--cream);border:none;cursor:pointer;font-size:18px;display:flex;align-items:center;justify-content:center;color:var(--muted);transition:all .15s;padding:0;}
.allergen-modal-close:hover{background:var(--border);color:var(--text);}
.allergen-modal h2{font-family:'Plus Jakarta Sans',sans-serif;font-size:22px;font-weight:900;color:var(--navy);margin-bottom:6px;letter-spacing:-.02em;text-transform:lowercase;}
.allergen-modal .subtitle{font-size:13px;color:var(--muted);line-height:1.6;margin-bottom:20px;}
.allergen-item-summary{background:#F4F1E8;border:1px solid #EDE8DC;border-radius:16px;padding:16px 18px;margin-bottom:22px;}
.allergen-item-summary[data-empty]{display:none;}
.allergen-item-summary h3{font-family:'Plus Jakarta Sans',sans-serif;font-size:16px;font-weight:800;color:var(--navy);text-transform:lowercase;letter-spacing:-.01em;margin:0 0 10px;}
.allergen-item-summary .s-row{display:flex;align-items:center;gap:8px;margin-top:8px;flex-wrap:wrap;}
.allergen-item-summary .s-row:first-of-type{margin-top:0;}
.allergen-item-summary .s-lbl{font-size:10px;font-weight:700;color:var(--muted);letter-spacing:.1em;text-transform:uppercase;flex-shrink:0;}
.allergen-item-summary .s-pill{display:inline-flex;align-items:center;font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:lowercase;padding:3px 10px;border-radius:99px;white-space:nowrap;}
.allergen-item-summary .s-pill.s-aller{color:#DC2626;background:#FEE2E2;}
.allergen-item-summary .s-pill.s-diet{color:#065F46;background:#D1FAE5;}
.allergen-item-summary .s-ok{font-size:12px;color:#065F46;font-weight:700;display:inline-flex;align-items:center;gap:5px;}
.allergen-section{margin-bottom:18px;}
.allergen-section h3{font-size:13px;font-weight:800;color:var(--accent);text-transform:lowercase;letter-spacing:.02em;margin-bottom:10px;}
.allergen-card{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;background:var(--cream);border:1px solid var(--border);border-radius:14px;margin-bottom:8px;}
.allergen-icon{font-size:22px;flex-shrink:0;width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:#fff;border-radius:10px;border:1px solid var(--border);}
.allergen-info h4{font-size:13px;font-weight:800;color:var(--text);margin-bottom:2px;text-transform:lowercase;}
.allergen-info p{font-size:11.5px;color:var(--muted);line-height:1.5;}
.allergen-commitment{background:linear-gradient(135deg,rgba(45,47,168,.06),rgba(45,47,168,.02));border:1px solid rgba(45,47,168,.1);border-radius:16px;padding:18px;margin-top:20px;}
.allergen-commitment h3{font-size:13px;font-weight:800;color:var(--navy);margin-bottom:8px;text-transform:lowercase;letter-spacing:0;}
.allergen-commitment p{font-size:12px;color:var(--muted);line-height:1.65;}
.allergen-commitment ul{font-size:12px;color:var(--muted);line-height:1.65;margin:8px 0 0 16px;}
.allergen-commitment li{margin-bottom:4px;}
/* Descriptions moved to the back face (tap ⓘ to reveal) so the front
   of every card focuses on photo + name + macros + price. */
.menu-card .card-desc{display:none !important;}
.card-desc{font-size:12px;color:var(--muted);line-height:1.6;}
.card-macros{display:flex;gap:12px;margin-top:4px;flex-wrap:wrap;font-size:11px;color:var(--muted);}
.macro{padding:4px 10px;font-size:11px;text-align:center;border-right:1px solid var(--border);}
.macro:last-child{border-right:none;}
.macro-val{font-family:'Plus Jakarta Sans',sans-serif;font-weight:900;color:var(--navy);font-size:13px;}
.macro-key{font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-weight:600;}
.card-footer{display:flex;justify-content:space-between;align-items:center;margin-top:auto;padding-top:12px;border-top:1px solid rgba(27,26,107,.06);}
.card-price{font-family:'Plus Jakarta Sans',sans-serif;font-size:18px;font-weight:900;color:var(--text);letter-spacing:-.02em;}
body:not(.prices-ready) .card-price,body:not(.prices-ready) .card-hint,body:not(.prices-ready) .pc-price,body:not(.prices-ready) .pc-per,body:not(.prices-ready) .pc-savings,body:not(.prices-ready) .prepay-opt-price,body:not(.prices-ready) .prepay-opt-per,body:not(.prices-ready) .prepay-opt-saving{visibility:hidden;}
.card-order{background:linear-gradient(135deg,var(--navy) 0%,var(--accent-lt,#4F51D4) 100%);color:#fff;border:none;padding:9px 18px;border-radius:99px;font-size:12px;font-weight:800;cursor:pointer;transition:all .2s;font-family:'Plus Jakarta Sans',sans-serif;text-transform:lowercase;box-shadow:0 3px 12px rgba(45,47,168,.3);}
.card-order:hover{transform:translateY(-1px);box-shadow:0 6px 20px rgba(45,47,168,.4);}
.card-order:hover{background:var(--accent);transform:translateY(-1px);box-shadow:0 4px 12px rgba(27,26,107,.2);}
.card-hint{font-size:10px;color:var(--muted);text-align:center;padding:4px 0 2px;font-weight:600;opacity:.6;}
.card-stars{display:flex;align-items:center;gap:4px;padding:0 0 4px;cursor:pointer;}
.card-stars-icons{color:var(--gold);font-size:11px;letter-spacing:1px;line-height:1;}
.card-stars-count{font-size:10px;color:var(--muted);font-weight:600;}
/* Plan Picker Bottom-Sheet */
.hp-picker-ov{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:9999;display:flex;align-items:flex-end;justify-content:center;padding:0;-webkit-overflow-scrolling:touch;}
@media(min-width:600px){.hp-picker-ov{align-items:center;padding:24px;}}
.hp-picker-card{background:rgba(255,255,255,.92);backdrop-filter:blur(32px) saturate(180%);-webkit-backdrop-filter:blur(32px) saturate(180%);border:1px solid rgba(255,255,255,.6);width:100%;max-width:440px;border-radius:24px;padding:28px 22px 22px;box-shadow:0 24px 80px rgba(27,26,107,.18),inset 0 1.5px 0 rgba(255,255,255,.9);font-family:'Plus Jakarta Sans',-apple-system,sans-serif;max-height:calc(100vh - 32px);overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;position:relative;}
@media(max-width:480px){.hp-picker-card{padding:20px 18px calc(20px + env(safe-area-inset-bottom,0));}}
/* Bottom-sheet mode: square off bottom corners when card is flush to viewport bottom */
@media(max-width:599px){.hp-picker-ov .hp-picker-card{border-radius:24px 24px 0 0;}}
/* Menu Item Modal */
.menu-modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:500;display:flex;align-items:flex-end;justify-content:center;opacity:0;pointer-events:none;transition:opacity .25s;padding:0;}
@media(min-width:600px){.menu-modal-overlay{align-items:center;padding:16px;}}
.menu-modal-overlay.open{opacity:1;pointer-events:all;}
.menu-modal{background:#fff;width:100%;max-width:640px;max-height:92vh;display:flex;flex-direction:column;border-radius:24px 24px 0 0;transform:translateY(32px) scale(.98);transition:transform .3s cubic-bezier(.4,0,.2,1);position:relative;box-shadow:0 24px 64px rgba(27,26,107,.18);}
@media(min-width:600px){.menu-modal{border-radius:24px;transform:translateY(20px) scale(.97);}}
.menu-modal-overlay.open .menu-modal{transform:none;}
.menu-modal-close{position:absolute;top:14px;right:14px;width:36px;height:36px;min-width:36px;min-height:36px;max-height:36px;aspect-ratio:1/1;border-radius:50%;background:rgba(0,0,0,.45);border:none;cursor:pointer;font-size:18px;color:#fff;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(4px);z-index:2;transition:background .15s;padding:0;}
.menu-modal-close:hover{background:rgba(0,0,0,.65);}
.menu-modal-img{width:100%;aspect-ratio:4/3;height:auto;min-height:360px;max-height:60vh;object-fit:cover;border-radius:24px 24px 0 0;display:block;}
.menu-modal-body{padding:24px 24px 0;}
.menu-modal-cat{display:inline-block;background:rgba(45,47,168,.08);color:var(--accent);font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;padding:4px 12px;border-radius:99px;margin-bottom:10px;}
.menu-modal-name{font-family:'Plus Jakarta Sans',sans-serif;font-size:24px;font-weight:900;color:var(--navy);letter-spacing:-.03em;text-transform:lowercase;margin-bottom:6px;}
.menu-modal-desc{font-size:13px;color:var(--muted);line-height:1.7;margin-bottom:16px;}
.menu-modal-macros{display:flex;gap:0;background:rgba(27,26,107,.04);border-radius:14px;overflow:hidden;margin-bottom:20px;}
.menu-modal-macro{flex:1;padding:14px 8px;text-align:center;border-right:1px solid rgba(27,26,107,.06);}
.menu-modal-macro:last-child{border-right:none;}
.mmm-val{font-family:'Plus Jakarta Sans',sans-serif;font-size:20px;font-weight:900;color:var(--navy);}
.mmm-key{font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-weight:700;margin-top:2px;}
.menu-modal-scroll{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;}
.menu-modal-footer{flex-shrink:0;background:#fff;padding:16px 24px;border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:14px;box-shadow:0 -4px 20px rgba(0,0,0,.07);}
.menu-modal-price{font-family:'Plus Jakarta Sans',sans-serif;font-size:22px;font-weight:900;color:var(--navy);}
.menu-modal-cart-btn{background:linear-gradient(135deg,var(--navy) 0%,var(--accent-lt) 100%);color:#fff;border:none;padding:14px 28px;border-radius:99px;font-size:13px;font-weight:800;cursor:pointer;transition:all .2s;font-family:'Plus Jakarta Sans',sans-serif;box-shadow:0 4px 14px rgba(27,26,107,.3);white-space:nowrap;}
.menu-modal-cart-btn:hover{transform:translateY(-1px);box-shadow:0 7px 22px rgba(27,26,107,.4);}
/* Glass Nutrition Label */
.glass-nutrition{background:rgba(27,26,107,.04);border:1px solid rgba(27,26,107,.08);border-radius:18px;padding:20px;margin-bottom:18px;}
.glass-nutrition-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:12px;}
.glass-nutrition-title{font-family:'Plus Jakarta Sans',sans-serif;font-size:16px;font-weight:900;color:var(--navy);letter-spacing:-.02em;}
.glass-nutrition-serving{font-size:11px;color:var(--muted);font-weight:600;}
.glass-nutrition-cal{margin-bottom:16px;padding-bottom:14px;border-bottom:1px solid rgba(27,26,107,.06);}
.gnc-num{font-family:'Plus Jakarta Sans',sans-serif;font-size:40px;font-weight:900;color:var(--navy);letter-spacing:-.04em;}
.gnc-label{font-size:12px;color:var(--muted);font-weight:600;margin-left:6px;text-transform:lowercase;}
.glass-nutrition-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:8px;margin-bottom:14px;}
.glass-nutrition-item{background:rgba(27,26,107,.03);border:1px solid rgba(27,26,107,.06);border-radius:12px;padding:10px;text-align:center;transition:all .15s;}
.glass-nutrition-item.highlight{background:rgba(45,47,168,.08);border-color:rgba(45,47,168,.15);}
.gni-val{font-family:'Plus Jakarta Sans',sans-serif;font-size:18px;font-weight:900;color:var(--navy);}
.gni-label{font-size:9px;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.04em;margin-top:2px;}
.glass-nutrition-ings{font-size:11px;color:var(--muted);line-height:1.6;padding-top:12px;border-top:1px solid rgba(27,26,107,.06);}
.nutr-ings{font-size:12.5px;line-height:1.55;color:var(--muted);margin:4px 0 16px;}
.nutr-ings span{font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:lowercase;color:var(--navy);margin-right:4px;}
@keyframes skel{0%{background-position:200% 0}100%{background-position:-200% 0}}
.skel{background:linear-gradient(90deg,#eef2ff 25%,#e0e7ff 50%,#eef2ff 75%);background-size:200% 100%;animation:skel 1.4s ease infinite;border-radius:8px;}
.menu-card-skel{background:#fff;border-radius:16px;overflow:hidden;border:1px solid var(--border);display:flex;flex-direction:row;height:88px;}
.skel-img{width:92px;min-width:92px;flex-shrink:0;background:linear-gradient(90deg,#e0e7ff 25%,#c7d2fe 50%,#e0e7ff 75%);background-size:200% 100%;animation:skel 1.4s ease infinite;}
.skel-body{flex:1;padding:12px 14px;display:flex;flex-direction:column;gap:8px;justify-content:center;}
.skel-line{height:11px;border-radius:6px;}
.skel-short{width:45%;}
.skel-med{width:70%;}
.skel-long{width:90%;}

/* ── SUBSCRIPTION / PRICING ── */
.sub{background:#fff;padding:40px 5%;position:relative;overflow:hidden;}
.sub .section-tag{color:var(--accent);}
.sub .section-tag::before{background:var(--accent);}
.sub .section-title{color:var(--text);}
.sub .section-sub{color:var(--muted);}
/* Toggle row — iOS-style small switch */
.pricing-tog-row{display:flex;align-items:center;gap:10px;margin-bottom:20px;}
.pricing-tog-label{font-size:13px;color:var(--muted);font-weight:500;cursor:pointer;transition:color .2s;}
.pricing-tog-label.active-label{color:var(--navy);font-weight:700;}
.pricing-tog{position:relative;width:38px;height:22px;flex-shrink:0;}
.pricing-tog input{opacity:0;width:0;height:0;}
.pricing-tog-slide{position:absolute;cursor:pointer;inset:0;background:#ccc;border-radius:22px;transition:.25s;}
.pricing-tog-slide:before{content:'';position:absolute;width:16px;height:16px;left:3px;bottom:3px;background:#fff;border-radius:50%;transition:.25s;box-shadow:0 1px 3px rgba(0,0,0,.15);}
.pricing-tog input:checked+.pricing-tog-slide{background:var(--navy);}
.pricing-tog input:checked+.pricing-tog-slide:before{transform:translateX(16px);}
.pricing-tog.gold-tog input:checked+.pricing-tog-slide{background:linear-gradient(135deg,#C8A96E,#E8C87A);box-shadow:0 0 12px rgba(200,169,110,.4);}
.pricing-save-pill{font-size:11px;background:rgba(200,169,110,.1);color:var(--gold);padding:3px 10px;border-radius:8px;font-weight:600;display:none;}
.pricing-save-pill.visible{display:inline-block;}
/* Monthly prepay banner */
.prepay-banner{background:rgba(200,169,110,.06);border:1px solid rgba(200,169,110,.2);border-radius:14px;padding:18px 22px;display:none;margin-bottom:20px;max-width:960px;margin-left:auto;margin-right:auto;}
.prepay-banner.visible{display:block;}
.prepay-banner.gold-glow-banner{background:linear-gradient(135deg,rgba(200,169,110,.1),rgba(200,169,110,.03));border-color:rgba(200,169,110,.35);box-shadow:0 4px 24px rgba(200,169,110,.12),0 0 40px rgba(200,169,110,.06);animation:bannerGlow 3s ease-in-out infinite;}
@keyframes bannerGlow{0%,100%{box-shadow:0 4px 24px rgba(200,169,110,.12),0 0 40px rgba(200,169,110,.06);}50%{box-shadow:0 6px 32px rgba(200,169,110,.2),0 0 60px rgba(200,169,110,.1);}}
.prepay-banner-title{font-family:'Plus Jakarta Sans',sans-serif;font-size:15px;font-weight:800;margin-bottom:4px;}
.prepay-banner-sub{font-size:12.5px;color:var(--muted);margin-bottom:14px;}
.prepay-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;}
.prepay-opt{background:#fff;border:1px solid rgba(200,169,110,.2);border-radius:10px;padding:12px 14px;display:flex;justify-content:space-between;align-items:center;}
.prepay-opt-left .prepay-opt-label{font-size:13px;color:var(--muted);margin-bottom:2px;}
.prepay-opt-left .prepay-opt-saving{font-size:11px;color:var(--gold);font-weight:600;}
.prepay-opt-right .prepay-opt-price{font-family:'Plus Jakarta Sans',sans-serif;font-size:17px;font-weight:800;color:var(--navy);text-align:right;}
.prepay-opt-right .prepay-opt-per{font-size:11px;color:var(--muted);text-align:right;}
.prepay-opt.baked-opt .prepay-opt-right .prepay-opt-price{color:var(--terracotta);}
.prepay-opt.baked-opt{border-color:rgba(200,135,85,.2);}
@media(max-width:640px){.prepay-grid{grid-template-columns:1fr;}}
/* Pricing cards */
.pricing-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;max-width:960px;margin:0 auto 28px;align-items:start;}
.pricing-card{background:rgba(255,255,255,.72);backdrop-filter:blur(24px) saturate(180%);-webkit-backdrop-filter:blur(24px) saturate(180%);border:1.5px solid rgba(255,255,255,.55);box-shadow:inset 0 1.5px 0 rgba(255,255,255,.8),0 8px 32px rgba(27,26,107,.07);border-radius:22px;padding:24px 22px;transition:all .3s;}
.pricing-card:hover{transform:translateY(-4px) scale(1.01);box-shadow:inset 0 1.5px 0 rgba(255,255,255,.8),0 16px 48px rgba(27,26,107,.12);transition:transform .3s cubic-bezier(.4,0,.2,1),box-shadow .3s;}
.pricing-card.featured{border:2px solid var(--navy);box-shadow:inset 0 1.5px 0 rgba(255,255,255,.8),0 12px 40px rgba(27,26,107,.15);}
.pricing-card.baked{border:2px solid var(--gold);}
.pricing-card.gold-glow{border:2px solid var(--gold);box-shadow:inset 0 1.5px 0 rgba(255,255,255,.8),0 8px 32px rgba(200,169,110,.25),0 0 50px rgba(200,169,110,.12);background:linear-gradient(135deg,rgba(200,169,110,.06),rgba(255,255,255,.72));animation:cardGoldPulse 3s ease-in-out infinite;}
@keyframes cardGoldPulse{0%,100%{box-shadow:inset 0 1.5px 0 rgba(255,255,255,.8),0 8px 32px rgba(200,169,110,.25),0 0 50px rgba(200,169,110,.12);}50%{box-shadow:inset 0 1.5px 0 rgba(255,255,255,.8),0 12px 40px rgba(200,169,110,.35),0 0 70px rgba(200,169,110,.18);}}
.pc-badge{display:inline-block;font-family:'Plus Jakarta Sans',sans-serif;font-size:10px;font-weight:800;padding:4px 12px;border-radius:99px;text-transform:uppercase;letter-spacing:.06em;margin-bottom:12px;}
.pc-badge-navy{background:rgba(27,26,107,.08);color:var(--navy);}
.pc-badge-popular{background:var(--navy);color:#fff;}
.pc-badge-terra{background:linear-gradient(135deg,#C8A96E,#E8C87A);color:#1A1508;}
.pc-badge-gold{background:linear-gradient(135deg,#C8A96E,#E8C87A);color:#1A1508;}
.pc-title{font-family:'Plus Jakarta Sans',sans-serif;font-size:24px;font-weight:900;color:var(--navy);letter-spacing:-.03em;margin-bottom:3px;text-transform:lowercase;}
.pc-label{font-size:12px;color:var(--muted);margin-bottom:16px;}
.pc-price{font-family:'Plus Jakarta Sans',sans-serif;font-size:28px;font-weight:900;color:var(--navy);letter-spacing:-.02em;margin-bottom:2px;}
.pc-price .was{font-size:15px;color:var(--muted);text-decoration:line-through;font-weight:600;margin-right:6px;}
.pc-per{font-size:12px;color:var(--muted);margin-bottom:16px;}
.pc-divider{border:none;border-top:1px solid var(--border);margin:14px 0;}
.pc-features{list-style:none;padding:0;margin:0 0 18px;}
.pc-features li{font-size:12.5px;color:var(--muted);padding:4px 0;display:flex;align-items:center;gap:8px;}
.pc-check{width:16px;height:16px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.pc-check-navy{background:rgba(27,26,107,.08);}
.pc-check-navy svg{stroke:var(--navy);}
.pc-check-fill{background:var(--navy);}
.pc-check-fill svg{stroke:#fff;}
.pc-check-terra{background:var(--gold);}
.pc-check-terra svg{stroke:#1A1508;}
.pc-check-gold{background:var(--gold);}
.pc-check-gold svg{stroke:#1A1508;}
.pc-cta{width:100%;padding:12px;border-radius:99px;font-family:'Plus Jakarta Sans',sans-serif;font-size:13px;font-weight:800;cursor:pointer;border:1.5px solid var(--border);background:transparent;color:var(--navy);transition:all .25s;text-transform:lowercase;}
.pc-cta:hover{background:var(--cream);}
.pc-cta-navy{background:var(--navy);color:#fff;border-color:var(--navy);}
.pc-cta-navy:hover{background:var(--navy-lt);}
.pc-cta-terra{background:linear-gradient(135deg,#C8A96E,#E8C87A);color:#1A1508;border-color:var(--gold);font-weight:900;}
.pc-cta-terra:hover{box-shadow:0 4px 16px rgba(200,169,110,.4);}
.pc-cta-gold{background:linear-gradient(135deg,#C8A96E,#E8C87A);color:#1A1508;border-color:var(--gold);font-weight:900;}
.pc-cta-gold:hover{box-shadow:0 4px 16px rgba(200,169,110,.4);}
.pc-savings{font-size:11px;color:var(--gold);font-weight:700;text-align:center;margin-top:8px;}
/* Baked goods detail */
.pc-baked-items{margin-bottom:16px;}
.pc-baked-row{display:flex;justify-content:space-between;align-items:center;padding:5px 0;border-bottom:1px solid rgba(0,0,0,.04);}
.pc-baked-row:last-child{border-bottom:none;}
.pc-baked-name{font-size:12.5px;color:var(--muted);}
.pc-baked-price{font-size:12.5px;font-weight:700;color:var(--gold);}
/* Savings hero for baked recurring */
.pc-savings-hero{text-align:center;padding:16px 0;}
.pc-savings-pct{font-family:'Plus Jakarta Sans',sans-serif;font-size:56px;font-weight:900;color:var(--gold);line-height:1;}
.pc-savings-label{font-size:12px;color:var(--muted);margin-top:4px;}
/* First-time offer */
.ft-offer{max-width:960px;margin:0 auto 28px;background:rgba(255,255,255,.72);backdrop-filter:blur(24px) saturate(180%);-webkit-backdrop-filter:blur(24px) saturate(180%);border:1.5px solid rgba(200,169,110,.25);box-shadow:inset 0 1.5px 0 rgba(255,255,255,.8),0 8px 32px rgba(200,169,110,.08);border-radius:22px;padding:28px 24px;display:grid;grid-template-columns:1fr auto;gap:24px;align-items:center;}
.ft-eyebrow{font-family:'Plus Jakarta Sans',sans-serif;font-size:10px;font-weight:800;letter-spacing:.12em;color:var(--gold);text-transform:uppercase;margin-bottom:6px;}
.ft-headline{font-family:'Plus Jakarta Sans',sans-serif;font-size:24px;font-weight:900;color:var(--navy);letter-spacing:-.03em;line-height:1.15;margin-bottom:8px;}
.ft-sub{font-size:13px;color:var(--muted);line-height:1.65;margin-bottom:14px;max-width:420px;}
.ft-ladder{display:flex;flex-direction:column;gap:8px;min-width:200px;}
.ft-tier{background:var(--cream);border-radius:14px;border:1.5px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:12px;transition:all .2s;}
.ft-tier-1{padding:16px 18px;}
.ft-tier-2{padding:12px 16px;}
.ft-tier-3{padding:10px 14px;}
.ft-tier-badge{background:linear-gradient(135deg,#C8A96E,#E8C87A);color:#1A1508;font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;border-radius:99px;white-space:nowrap;}
.ft-tier-1 .ft-tier-badge{font-size:13px;padding:5px 14px;}
.ft-tier-2 .ft-tier-badge{font-size:11px;padding:4px 12px;}
.ft-tier-3 .ft-tier-badge{font-size:10px;padding:3px 10px;}
.ft-tier-label{font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;color:var(--navy);}
.ft-tier-1 .ft-tier-label{font-size:14px;}
.ft-tier-2 .ft-tier-label{font-size:12px;}
.ft-tier-3 .ft-tier-label{font-size:11px;color:var(--muted);}
.ft-tier-price{font-family:'Plus Jakarta Sans',sans-serif;font-weight:700;color:var(--muted);white-space:nowrap;}
.ft-tier-1 .ft-tier-price{font-size:12px;}
.ft-tier-2 .ft-tier-price{font-size:11px;}
.ft-tier-3 .ft-tier-price{font-size:10px;}
.ft-cta{width:100%;padding:11px 20px;background:linear-gradient(135deg,#C8A96E,#E8C87A);color:#1A1508;border:none;border-radius:99px;font-family:'Plus Jakarta Sans',sans-serif;font-size:13px;font-weight:800;cursor:pointer;transition:all .2s;margin-top:4px;}
.ft-cta:hover{box-shadow:0 4px 16px rgba(200,169,110,.4);transform:translateY(-1px);}
.ft-note{font-size:10px;color:var(--muted);margin-top:6px;text-align:center;}
/* Welcome popup */
.welcome-ov{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:9999;display:flex;align-items:center;justify-content:center;padding:16px;}
.welcome-popup{background:#fff;border-radius:24px;max-width:480px;width:100%;overflow:hidden;box-shadow:0 24px 80px rgba(0,0,0,.3);font-family:'Plus Jakarta Sans',-apple-system,sans-serif;position:relative;}
.welcome-close{position:absolute;top:14px;right:14px;width:32px;height:32px;border-radius:50%;background:rgba(0,0,0,.06);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:16px;color:#666;transition:all .15s;z-index:2;}
.welcome-close:hover{background:rgba(0,0,0,.12);}
.welcome-hero{background:linear-gradient(135deg,#1B1A6B 0%,#2D2FA8 100%);padding:32px 28px;color:#fff;text-align:center;}
.welcome-body{padding:24px 28px;}
@media(max-width:480px){.welcome-popup{border-radius:18px;}.welcome-hero{padding:24px 20px;}.welcome-body{padding:20px;}.welcome-popup{max-width:calc(100% - 24px);}}
@media(max-width:768px){
  .pricing-cards{grid-template-columns:1fr;}
  .ft-offer{grid-template-columns:1fr;}
  .ft-ladder{min-width:unset;}
}

/* ── ABOUT ── */
.about{background:var(--cream);padding:32px 5%;}
.about-inner{max-width:900px;margin:0 auto;}
.about-grid{display:grid;grid-template-columns:1fr;gap:24px;align-items:start;}
.about-text .section-tag{display:inline-flex;}
.about-title{font-family:'Plus Jakarta Sans',sans-serif;font-size:clamp(26px,4.5vw,42px);font-weight:900;letter-spacing:-.04em;margin-bottom:14px;line-height:1.06;text-transform:lowercase;}
.about-title em{font-style:italic;color:var(--accent);}
.about-body{font-size:13.5px;color:var(--muted);line-height:1.7;margin-bottom:16px;}
.about-body strong{color:var(--text);font-weight:700;}

/* ── SCROLL REVEAL (float-up) ── */
.float-up{opacity:0;transform:translateY(40px);will-change:opacity,transform;transition:opacity .9s cubic-bezier(.22,1,.36,1),transform .9s cubic-bezier(.22,1,.36,1);}
.float-up.in{opacity:1;transform:translateY(0);}
.float-up.d1{transition-delay:.08s;}.float-up.d2{transition-delay:.16s;}.float-up.d3{transition-delay:.24s;}.float-up.d4{transition-delay:.32s;}
.scroll-fx{--tx:0px;will-change:transform;transform:translate3d(0,var(--tx),0);transition:transform .2s cubic-bezier(.22,1,.36,1);}
@media (prefers-reduced-motion: reduce){.float-up{opacity:1!important;transform:none!important;}.scroll-fx{transform:none!important;}.hh-list::after,.hh-step.current .hh-dot::after,.hero-how-card{animation:none!important;}}

/* ── PREMIUM LAYER (2026-04) ── */
/* Focus dim — when hovering a menu/price/FAQ card, siblings fade back
   slightly so the hovered card reads as "forward." */
@media(hover:hover){
  .menu-grid:hover .menu-card{opacity:.72;transition:opacity .35s var(--ease),transform .35s var(--ease),box-shadow .35s var(--ease);}
  .menu-grid:hover .menu-card:hover{opacity:1;}
  .pricing-cards:hover .pc-card{opacity:.8;transition:opacity .35s var(--ease);}
  .pricing-cards:hover .pc-card:hover{opacity:1;}
  .faq-grid:hover .faq-item{opacity:.8;transition:opacity .35s var(--ease);}
  .faq-grid:hover .faq-item:hover{opacity:1;}
}

/* Section vignettes — soft dark fade at the bottom edge of dark sections
   so the transition into the next section reads layered rather than abrupt. */
.hero::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:120px;z-index:2;pointer-events:none;
  background:linear-gradient(180deg,transparent 0%,rgba(0,0,0,.22) 100%);
}

/* Slow-breathing gold indicator — "live" / countdown moments */
.breathe-gold{position:relative;}
.breathe-gold::after{
  content:"";position:absolute;inset:-6px;border-radius:inherit;pointer-events:none;
  box-shadow:0 0 0 0 rgba(232,200,122,.4);
  animation:breatheGold 3.4s ease-in-out infinite;
}
@keyframes breatheGold{
  0%,100%{box-shadow:0 0 0 0 rgba(232,200,122,.4);}
  50%{box-shadow:0 0 0 12px rgba(232,200,122,0);}
}

/* ── MOTION IMMERSIVE (2026-04) ── */
/* Section depth reveal — sections enter with a subtle zoom + fade */
.depth{
  opacity:0;transform:scale(.965) translateY(24px);
  transition:opacity .9s cubic-bezier(.22,1,.36,1),transform 1.1s cubic-bezier(.22,1,.36,1);
  will-change:opacity,transform;
}
.depth.in{opacity:1;transform:none;}

/* Layered parallax speeds — different strata drift at different rates */
.layer-slow{--ly:0;transform:translate3d(0,calc(var(--ly) * -.3px),0);will-change:transform;transition:transform .15s linear;}
.layer-fast{--ly:0;transform:translate3d(0,calc(var(--ly) * .55px),0);will-change:transform;transition:transform .15s linear;}

/* Kinetic headline — hero h1 word-by-word reveal. padding-bottom keeps
   descenders (the "g" in "satisfying"/"cravings") from being clipped
   by the overflow mask needed for the rise animation. */
.hero h1{overflow:hidden;padding-bottom:.24em;}
.hero h1 .w{display:inline-block;transform:translateY(110%) skewY(6deg);opacity:0;animation:wordRise .9s cubic-bezier(.22,1,.36,1) forwards;}
.hero h1 .w:nth-child(1){animation-delay:.1s;}
.hero h1 .w:nth-child(2){animation-delay:.2s;}
.hero h1 .w:nth-child(3){animation-delay:.3s;}
.hero h1 .w:nth-child(4){animation-delay:.4s;}
.hero h1 .w:nth-child(5){animation-delay:.5s;}
.hero h1 .w:nth-child(6){animation-delay:.6s;}
@keyframes wordRise{
  0%{transform:translateY(110%) skewY(6deg);opacity:0;}
  60%{opacity:1;}
  100%{transform:translateY(0) skewY(0);opacity:1;}
}

/* Section-tint transition — ambient background temperature shifts
   subtly as you move between dark and light sections. Handled by JS
   setting --amb-tint on body. */
body{transition:background-color 1.2s cubic-bezier(.22,1,.36,1);}

/* Float-in on scroll — broader, more elements, with a touch of horizontal
   variance so the reveal feels like content is *flowing* in rather than
   mechanically appearing. Each element sets --fx (horizontal offset) and
   --fd (delay) at page load. */
.float-in{
  opacity:0;
  transform:translate3d(var(--fx,0px), 34px, 0) scale(.985);
  transition:opacity .85s cubic-bezier(.22,1,.36,1),transform .95s cubic-bezier(.22,1,.36,1);
  transition-delay:var(--fd,0s);
  will-change:opacity,transform;
}
.float-in.in{opacity:1;transform:none;}

@media (prefers-reduced-motion: reduce){
  .depth,.layer-slow,.layer-fast,.hero h1 .w,.float-in{animation:none!important;transition:none!important;transform:none!important;opacity:1!important;}
  .scroll-progress{display:none;}
}

/* ── MOTION DEEPER (2026-04) ── */
/* Subtle film grain on everything — warms up flats */
body::after{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:999;
  opacity:.028;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/></filter><rect width='240' height='240' filter='url(%23n)'/></svg>");
}

/* Ambient drifting color orbs for cream sections */
.orb-field{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0;}
.orb{position:absolute;border-radius:50%;filter:blur(72px);opacity:.38;will-change:transform;}
.orb-a{width:420px;height:420px;background:radial-gradient(circle,#C8A96E 0%,transparent 70%);top:-120px;left:-60px;animation:orbDrift 22s ease-in-out infinite;}
.orb-b{width:360px;height:360px;background:radial-gradient(circle,#9298E8 0%,transparent 70%);bottom:-100px;right:-40px;animation:orbDrift 28s ease-in-out infinite reverse;}
.orb-c{width:280px;height:280px;background:radial-gradient(circle,#E8C87A 0%,transparent 70%);top:40%;right:20%;animation:orbDrift 34s ease-in-out infinite;}
@keyframes orbDrift{
  0%,100%{transform:translate3d(0,0,0) scale(1);}
  25%{transform:translate3d(60px,-40px,0) scale(1.08);}
  50%{transform:translate3d(-30px,50px,0) scale(.96);}
  75%{transform:translate3d(-50px,-30px,0) scale(1.04);}
}
.sub,.email-capture,.reviews-section{position:relative;}
.sub > *,.email-capture > *,.reviews-section > *{position:relative;z-index:1;}

/* Kinetic hero content lift — subtle parallax as you scroll */
.hero-grid{transition:transform .1s linear;will-change:transform;}

/* CTA sheen sweep — subtle specular highlight sweeping ~every 8s */
.hero-btn-menu,.btn-primary,.btn-gold,.ft-cta,.pc-cta{position:relative;overflow:hidden;}
.hero-btn-menu::before,.btn-primary::before,.btn-gold::before,.ft-cta::before,.pc-cta::before{
  content:"";position:absolute;top:0;left:-120%;width:60%;height:100%;
  background:linear-gradient(100deg,transparent 0%,rgba(255,255,255,.42) 50%,transparent 100%);
  transform:skewX(-18deg);pointer-events:none;
  animation:ctaSheen 8s ease-in-out infinite;
}
.btn-primary::before{background:linear-gradient(100deg,transparent 0%,rgba(255,255,255,.22) 50%,transparent 100%);}
@keyframes ctaSheen{
  0%,90%,100%{left:-120%;}
  55%,65%{left:160%;}
}

/* Gold-thread underline — draws left→right on hover for text links and nav */
.nav-links a,.acct-link,.faq-q,a.text-link,.hero-donate-link,.nav-brand-text,.pc-card a{
  position:relative;
}
.nav-links a::after,a.text-link::after,.hero-donate-link::after{
  content:"";position:absolute;left:0;right:0;bottom:-3px;height:1px;
  background:linear-gradient(90deg,#C8A96E 0%,#E8C87A 50%,#C8A96E 100%);
  transform:scaleX(0);transform-origin:left;
  transition:transform .4s cubic-bezier(.22,1,.36,1);
  opacity:.9;
}
.nav-links a:hover::after,a.text-link:hover::after,.hero-donate-link:hover::after{transform:scaleX(1);}

/* Countdown under 24h — subtle breathing halo to say "now." */
.hero-countdown.under-24h{border-color:rgba(232,200,122,.55);background:rgba(232,200,122,.14);}
.hero-countdown.under-24h .hcd-pulse{animation:hcdPulse .9s infinite;}
.hero-countdown.under-24h::after{
  content:"";position:absolute;inset:-4px;border-radius:99px;pointer-events:none;
  box-shadow:0 0 0 0 rgba(232,200,122,.5);
  animation:breatheGold 3s ease-in-out infinite;
}
.hero-countdown{position:relative;}

@media (prefers-reduced-motion: reduce){
  body::after,.orb,.trust-track,.hero-btn-menu::before{animation:none!important;}
  .orb{opacity:.2;}
}

/* ── MOTION STARTER (2026-04) ── */
/* Tier 1: nav compresses once you scroll past the hero header */
.nav{transition:transform .4s cubic-bezier(.22,1,.36,1),box-shadow .4s cubic-bezier(.22,1,.36,1);}
.nav.shrink{transform:translateX(-50%) scale(.93);box-shadow:0 4px 32px rgba(27,26,107,.14),inset 0 1px 0 rgba(255,255,255,.92);}

/* Tier 2: menu-card 3D tilt on mousemove (desktop only) */
.menu-card{transform-style:preserve-3d;transition:transform .35s cubic-bezier(.22,1,.36,1);will-change:transform;}
@media(hover:hover){
  .menu-card:hover{
    transform:perspective(900px) rotateX(calc(var(--ry,0) * 1deg)) rotateY(calc(var(--rx,0) * -1deg)) translateY(-4px);
  }
}

/* Tier 1: extend parallax drift to more sections via scroll-fx class */
@media (prefers-reduced-motion: reduce){
  .hero-glow{display:none!important;}
  .menu-card{transform:none!important;}
}

/* ── animated how-it-works stepper (horizontal, on background) ── */
.how-head{display:flex;align-items:center;justify-content:center;gap:12px;margin:0 auto 34px;flex-wrap:wrap;}
.how-head .label{font-family:'Plus Jakarta Sans',sans-serif;font-size:11px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);}
.how-head .pace{font-family:'Plus Jakarta Sans',sans-serif;font-size:11px;font-weight:700;color:var(--accent);display:inline-flex;align-items:center;gap:6px;}
.how-head .pace::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 10px var(--accent);animation:bpulse 1.6s ease-in-out infinite;}
@keyframes bpulse{0%,100%{opacity:.5;}50%{opacity:1;}}
.hh-list{position:relative;display:flex;flex-direction:row;justify-content:space-between;align-items:flex-start;gap:14px;max-width:1100px;margin:0 auto;padding:0 32px;}
.hh-list::before{content:"";position:absolute;left:calc(32px + 27px);right:calc(32px + 27px);top:27px;height:2px;z-index:0;background:linear-gradient(90deg,rgba(27,26,107,.18) 0%,rgba(27,26,107,.06) 50%,rgba(27,26,107,.18) 100%);border-radius:2px;opacity:.6;}
.hh-list::after{content:"";position:absolute;left:calc(32px + 27px);top:27px;height:2px;width:0;z-index:1;background:linear-gradient(90deg,var(--navy) 0%,var(--accent) 45%,#9298E8 85%,#E8C87A 100%);background-size:200% 100%;border-radius:2px;box-shadow:0 0 12px rgba(79,81,212,.55),0 0 28px rgba(79,81,212,.35),0 0 52px rgba(188,190,255,.28);transition:width 1s cubic-bezier(.22,1,.36,1),box-shadow .6s ease;animation:railShimmer 3.2s ease-in-out infinite;}
@keyframes railShimmer{0%,100%{background-position:0% 0%;box-shadow:0 0 12px rgba(79,81,212,.55),0 0 28px rgba(79,81,212,.35),0 0 52px rgba(188,190,255,.28);}50%{background-position:100% 0%;box-shadow:0 0 18px rgba(79,81,212,.75),0 0 36px rgba(79,81,212,.5),0 0 68px rgba(188,190,255,.4);}}
.hh-list.advancing::after{box-shadow:0 0 22px rgba(255,255,255,.85),0 0 40px rgba(188,190,255,.8),0 0 80px rgba(79,81,212,.55);}
.hh-list[data-step="1"]::after{width:0;}
.hh-list[data-step="2"]::after{width:calc((100% - 64px - 54px) / 3);}
.hh-list[data-step="3"]::after{width:calc((100% - 64px - 54px) * 2 / 3);}
.hh-list[data-step="4"]::after{width:calc(100% - 64px - 54px);background:linear-gradient(90deg,var(--navy) 0%,var(--accent) 30%,#E8C87A 65%,#C8A96E 100%);box-shadow:0 0 22px rgba(232,200,122,.85),0 0 48px rgba(200,169,110,.55);}
.hh-step{position:relative;z-index:2;flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;transition:transform .35s cubic-bezier(.22,1,.36,1);cursor:pointer;}
.hh-step.current{transform:translateY(-4px);}
.hh-dot{flex:0 0 auto;width:54px;height:54px;border-radius:50%;background:rgba(255,255,255,.85);-webkit-backdrop-filter:blur(22px) saturate(180%);backdrop-filter:blur(22px) saturate(180%);border:1px solid rgba(255,255,255,.9);color:var(--navy);font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;font-size:17px;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 16px rgba(27,26,107,.08),0 18px 36px rgba(27,26,107,.08),inset 0 1.2px 0 rgba(255,255,255,1),inset 0 -1px 0 rgba(27,26,107,.03);transition:transform .35s cubic-bezier(.22,1,.36,1),background .3s,color .2s,border-color .2s,box-shadow .3s;position:relative;}
.hh-step.current .hh-dot{background:linear-gradient(135deg,var(--navy),#4F51D4);color:#fff;border-color:rgba(255,255,255,.3);transform:scale(1.12);box-shadow:0 14px 28px rgba(27,26,107,.4),inset 0 1px 0 rgba(255,255,255,.3);}
.hh-step.current .hh-dot::after{content:"";position:absolute;inset:-6px;border-radius:50%;border:2px solid rgba(79,81,212,.5);animation:hhHalo 1.2s ease-out infinite;pointer-events:none;}
@keyframes hhHalo{0%{transform:scale(.9);opacity:.85;}100%{transform:scale(1.45);opacity:0;}}
.hh-step.past .hh-dot{background:linear-gradient(135deg,var(--accent),#9298E8);color:#fff;border-color:rgba(255,255,255,.45);}
.hh-step.past .hh-dot .num{display:none;}
.hh-step.past .hh-dot .check{display:inline;}
.hh-step .hh-dot .check{display:none;font-size:20px;font-weight:700;}
.hh-body h6{font-family:'Plus Jakarta Sans',sans-serif;font-size:14px;font-weight:800;color:var(--text);text-transform:lowercase;letter-spacing:-.02em;margin-bottom:3px;line-height:1.15;}
.hh-body p{font-size:12px;color:var(--muted);line-height:1.45;max-width:220px;margin:0 auto;}

/* ── step 4: gold TandoCoin with coin-burst explosion ── */
.hh-step.coin .hh-dot{background:linear-gradient(135deg,#8B6914 0%,#C8A96E 45%,#E8C87A 100%);border:1.5px solid rgba(232,200,122,.7);box-shadow:0 6px 20px rgba(200,169,110,.45),inset 0 1px 0 rgba(255,255,255,.45);}
.hh-step.coin.current .hh-dot{background:linear-gradient(135deg,#E8C87A 0%,#FFD98A 45%,#FFE9A8 100%);transform:scale(1.18);box-shadow:0 0 0 6px rgba(232,200,122,.25),0 14px 30px rgba(200,169,110,.6),0 0 48px rgba(255,217,138,.7),inset 0 1px 0 rgba(255,255,255,.6);animation:coinSpin 2.4s ease-in-out infinite;}
.hh-step.coin.current .hh-dot::after{border-color:rgba(232,200,122,.7);}
@keyframes coinSpin{0%,100%{transform:scale(1.18) rotateY(0);}50%{transform:scale(1.18) rotateY(180deg);}}
.coin-burst{position:absolute;inset:-4px;pointer-events:none;z-index:3;}
.coin-burst .spark{position:absolute;left:50%;top:50%;width:10px;height:10px;margin:-5px 0 0 -5px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#FFE9A8 0%,#E8C87A 55%,#8B6914 100%);box-shadow:0 0 8px rgba(232,200,122,.9),0 0 16px rgba(200,169,110,.55);opacity:0;}
.hh-step.coin.current .coin-burst .spark{animation:coinBurst 1.4s cubic-bezier(.2,.8,.3,1) infinite;}
.hh-step.coin.current .coin-burst .spark:nth-child(1){--ang:  0deg;animation-delay:0s;}
.hh-step.coin.current .coin-burst .spark:nth-child(2){--ang: 45deg;animation-delay:.1s;}
.hh-step.coin.current .coin-burst .spark:nth-child(3){--ang: 90deg;animation-delay:.2s;}
.hh-step.coin.current .coin-burst .spark:nth-child(4){--ang:135deg;animation-delay:.3s;}
.hh-step.coin.current .coin-burst .spark:nth-child(5){--ang:180deg;animation-delay:.4s;}
.hh-step.coin.current .coin-burst .spark:nth-child(6){--ang:225deg;animation-delay:.5s;}
.hh-step.coin.current .coin-burst .spark:nth-child(7){--ang:270deg;animation-delay:.6s;}
.hh-step.coin.current .coin-burst .spark:nth-child(8){--ang:315deg;animation-delay:.7s;}
@keyframes coinBurst{
  0%{opacity:0;transform:rotate(var(--ang)) translateX(0) scale(.6);}
  15%{opacity:1;}
  70%{opacity:.9;}
  100%{opacity:0;transform:rotate(var(--ang)) translateX(78px) scale(.3);}
}
.hh-step.coin.current .hh-body h6{background:linear-gradient(135deg,#8B6914 0%,#C8A96E 45%,#E8C87A 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:#C8A96E;}

@media(max-width:720px){
  #how{padding:40px 5% !important;}
  .how-head{margin-bottom:20px;}
  .hh-list{flex-wrap:wrap;gap:18px 10px;padding:0 8px;}
  .hh-list::before,.hh-list::after{display:none;}
  .hh-step{flex:0 0 calc(50% - 5px);gap:8px;}
  .hh-dot{width:44px;height:44px;font-size:15px;}
  .hh-body h6{font-size:13px;}
  .hh-body p{font-size:11.5px;line-height:1.4;max-width:none;}
}
.profiles{display:flex;flex-direction:column;gap:16px;}
.profile-card{background:#fff;border-radius:16px;padding:14px;border:1px solid var(--border);display:flex;gap:12px;align-items:flex-start;box-shadow:0 2px 8px rgba(0,0,0,.04);}
.profile-avatar{width:56px;height:56px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-family:'Plus Jakarta Sans',sans-serif;font-size:18px;font-weight:900;color:#fff;}
.profile-name{font-family:'Plus Jakarta Sans',sans-serif;font-size:15px;font-weight:800;color:var(--text);margin-bottom:2px;}
.profile-role{font-size:11.5px;color:var(--accent);font-weight:700;letter-spacing:.04em;text-transform:uppercase;margin-bottom:6px;}
.profile-bio{font-size:13px;color:var(--muted);line-height:1.65;}
.pillars{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:16px;}
.pillar{background:#fff;border:1px solid var(--border);border-radius:14px;padding:13px 12px;text-align:center;transition:all .2s;box-shadow:0 1px 4px rgba(0,0,0,.04);}
.pillar:hover{box-shadow:0 6px 20px rgba(27,26,107,.09);transform:translateY(-2px);}
.pillar-accent{width:28px;height:3px;border-radius:99px;margin:0 auto 10px;}
.pillar-title{font-family:'Plus Jakarta Sans',sans-serif;font-size:12px;font-weight:800;color:var(--text);text-transform:lowercase;margin-bottom:4px;}
.pillar-sub{font-size:11.5px;color:var(--muted);line-height:1.5;}

/* ── PERSONAL TRAINING ── */
.pt{background:linear-gradient(140deg,#1A1A2E 0%,#1B1A6B 55%,#1B1A6B 100%);padding:32px 5%;color:#fff;position:relative;overflow:hidden;}
.pt::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 55% 60% at 85% 15%,rgba(79,81,212,.38) 0%,transparent 70%);}
.pt-inner{max-width:1060px;margin:0 auto;position:relative;z-index:1;}
.pt-grid{display:grid;grid-template-columns:1fr;gap:32px;}
.pt-info .section-tag{color:var(--blue-pale);}
.pt-info .section-tag::before{background:var(--blue-pale);}
.pt-info .section-title{color:#fff;}
.pt-info .section-sub{color:rgba(255,255,255,.52);}
.pt-profile{display:flex;align-items:center;gap:14px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.1);border-radius:18px;padding:16px;margin-bottom:18px;}
.pt-avatar{width:52px;height:52px;border-radius:50%;flex-shrink:0;background:linear-gradient(135deg,var(--accent) 0%,var(--green) 100%);display:flex;align-items:center;justify-content:center;font-family:'Plus Jakarta Sans',sans-serif;font-size:17px;font-weight:900;color:#fff;}
.pt-name{font-family:'Plus Jakarta Sans',sans-serif;font-size:15px;font-weight:800;color:#fff;margin-bottom:2px;}
.pt-title{font-size:11.5px;color:rgba(255,255,255,.45);}
.pt-services{display:grid;grid-template-columns:1fr;gap:8px;}
.pt-service{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.09);border-radius:14px;padding:14px 16px;display:flex;align-items:flex-start;gap:12px;transition:all .2s;}
.pt-service:hover{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.16);}
.pt-service-icon{width:34px;height:34px;border-radius:10px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-family:'Plus Jakarta Sans',sans-serif;font-size:10px;font-weight:900;color:#fff;}
.pt-service-name{font-family:'Plus Jakarta Sans',sans-serif;font-size:13px;font-weight:800;color:#fff;margin-bottom:2px;text-transform:lowercase;}
.pt-service-desc{font-size:12px;color:rgba(255,255,255,.48);line-height:1.55;}
.pt-notify{background:rgba(255,255,255,.07);border:1.5px solid rgba(255,255,255,.14);border-radius:20px;padding:18px 16px;text-align:center;}
.pt-discount-badge{display:inline-block;background:linear-gradient(135deg,var(--green) 0%,#059669 100%);color:#fff;font-size:10px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;padding:5px 14px;border-radius:99px;margin-bottom:14px;}
.pt-notify h3{font-family:'Plus Jakarta Sans',sans-serif;font-size:17px;font-weight:900;color:#fff;text-transform:lowercase;letter-spacing:-.03em;margin-bottom:6px;}
.pt-notify p{font-size:12.5px;color:rgba(255,255,255,.48);line-height:1.55;margin-bottom:14px;}
.notify-form{display:flex;flex-direction:column;gap:10px;}
.notify-input{width:100%;padding:12px 16px;border-radius:99px;border:1.5px solid rgba(255,255,255,.14);background:rgba(255,255,255,.07);color:#fff;font-size:14px;outline:none;transition:border-color .2s;font-family:inherit;}
.notify-input::placeholder{color:rgba(255,255,255,.3);}
.notify-input:focus{border-color:var(--accent);}
.btn-notify{padding:12px 22px;border-radius:99px;border:none;cursor:pointer;background:linear-gradient(135deg,var(--navy) 0%,var(--accent-lt) 100%);color:#fff;font-family:'Plus Jakarta Sans',sans-serif;font-size:13px;font-weight:800;box-shadow:0 5px 18px rgba(45,47,168,.35);transition:all .2s;text-transform:lowercase;white-space:nowrap;}
.btn-notify:hover{transform:translateY(-1px);box-shadow:0 7px 24px rgba(45,47,168,.45);}
.notify-success{display:none;background:rgba(52,211,153,.12);border:1px solid rgba(52,211,153,.28);border-radius:14px;padding:12px;font-size:13.5px;color:rgba(255,255,255,.85);margin-top:10px;}

/* ── SOCIAL ── */
.social-section{background:var(--midnight);padding:32px 5%;}
.social-section .section-tag::before{background:var(--blue-pale);}
.social-cta-wrap{max-width:1060px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:40px;flex-wrap:wrap;}
.social-cta-left{flex:1;min-width:260px;}
.social-cta-right{flex-shrink:0;text-align:right;}
.social-follow-btns{display:flex;gap:10px;flex-wrap:wrap;}
.btn-follow-cta{display:inline-flex;align-items:center;padding:11px 22px;border-radius:99px;font-family:'Plus Jakarta Sans',sans-serif;font-size:13px;font-weight:800;text-transform:lowercase;transition:all .2s;background:#fff;color:var(--navy);}
.btn-follow-cta:hover{transform:translateY(-1px);box-shadow:0 6px 20px rgba(0,0,0,.2);}
.btn-follow-cta.dim{background:rgba(255,255,255,.1);color:rgba(255,255,255,.75);border:1px solid rgba(255,255,255,.2);}
.btn-follow-cta.dim:hover{background:rgba(255,255,255,.18);}
.social-chip-row{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;}
.social-chip{display:inline-block;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);border-radius:99px;padding:5px 12px;font-size:11px;font-weight:700;color:rgba(255,255,255,.55);letter-spacing:.02em;}
.social-grid{display:grid;grid-template-columns:1fr;gap:16px;}
.social-card{border-radius:18px;padding:18px 16px;position:relative;overflow:hidden;transition:all .2s;display:flex;flex-direction:column;}
.social-card:hover{transform:translateY(-3px);}
.social-card.instagram{background:linear-gradient(135deg,rgba(214,41,118,.22) 0%,rgba(255,100,50,.16) 50%,rgba(255,220,80,.12) 100%);border:1px solid rgba(214,41,118,.28);}
.social-card.tiktok{background:linear-gradient(135deg,rgba(10,10,10,.6) 0%,rgba(37,244,238,.08) 50%,rgba(255,0,80,.08) 100%);border:1px solid rgba(255,255,255,.1);}
.social-platform{display:flex;align-items:center;gap:12px;margin-bottom:16px;}
.social-icon{width:40px;height:40px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-family:'Plus Jakarta Sans',sans-serif;font-size:12px;font-weight:900;color:#fff;}
.social-icon.ig{background:linear-gradient(135deg,#833ab4 0%,#E1306C 40%,#F77737 80%,#FCAF45 100%);}
.social-icon.tt{background:#010101;border:1px solid rgba(255,255,255,.15);}
.social-name{font-family:'Plus Jakarta Sans',sans-serif;font-size:15px;font-weight:800;color:#fff;}
.social-handle{font-size:12px;color:rgba(255,255,255,.4);}
.social-stat-row{display:flex;gap:20px;margin-bottom:16px;}
.social-stat-val{font-family:'Plus Jakarta Sans',sans-serif;font-size:20px;font-weight:900;color:#fff;letter-spacing:-.03em;}
.social-stat-lbl{font-size:9px;color:rgba(255,255,255,.4);font-weight:700;text-transform:uppercase;letter-spacing:.06em;}
.social-preview{height:64px;background:rgba(255,255,255,.05);border-radius:14px;margin-bottom:18px;display:flex;align-items:center;justify-content:center;font-size:10px;color:rgba(255,255,255,.28);font-weight:700;letter-spacing:.04em;text-transform:uppercase;}
.btn-follow{display:block;text-align:center;padding:12px;border-radius:99px;font-family:'Plus Jakarta Sans',sans-serif;font-size:13px;font-weight:800;border:1.5px solid rgba(255,255,255,.22);color:#fff;background:rgba(255,255,255,.08);transition:all .2s;text-transform:lowercase;}
.btn-follow:hover{background:rgba(255,255,255,.18);border-color:rgba(255,255,255,.4);}
.social-cta-box{text-align:center;margin-top:20px;padding:18px;background:rgba(255,255,255,.04);border:1px dashed rgba(255,255,255,.1);border-radius:18px;}
.social-cta-box h3{font-family:'Plus Jakarta Sans',sans-serif;font-size:16px;font-weight:800;color:#fff;text-transform:lowercase;letter-spacing:-.03em;margin-bottom:4px;}
.social-cta-box p{font-size:12.5px;color:rgba(255,255,255,.42);margin-bottom:12px;line-height:1.55;}
.social-cta-chips{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;}
.social-chip{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12);border-radius:99px;padding:7px 16px;font-size:12px;font-weight:700;color:rgba(255,255,255,.7);display:inline-block;}

/* ── EMAIL CAPTURE ── */
.email-capture{background:var(--cream);padding:56px 5%;position:relative;overflow:hidden;}
.email-inner{max-width:560px;margin:0 auto;text-align:center;position:relative;z-index:1;}
.email-inner .section-tag{justify-content:center;background:rgba(200,169,110,.15);color:var(--gold);border:1px solid rgba(200,169,110,.35);border-radius:99px;padding:5px 14px;letter-spacing:.08em;}
.email-inner .section-tag::before{display:none;}
.email-inner .section-title{color:var(--navy);}
.email-inner .section-sub{color:var(--muted);}
.email-founding-perks{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin:16px 0 24px;}
.email-perk{display:inline-flex;align-items:center;gap:6px;background:#fff;border:1px solid var(--border);border-radius:99px;padding:6px 14px;font-size:12px;font-weight:700;color:var(--text);}
.email-perk-dot{width:6px;height:6px;border-radius:50%;background:var(--green);flex-shrink:0;}
.email-form{display:flex;flex-direction:column;gap:10px;margin-top:0;}
.email-row{display:flex;flex-direction:column;gap:10px;}
.email-input{flex:1;padding:13px 18px;border-radius:99px;border:1.5px solid var(--border);background:#fff;font-size:14px;outline:none;color:var(--text);transition:border-color .2s;font-family:inherit;}
.email-input::placeholder{color:var(--muted);}
.email-input:focus{border-color:var(--accent);}
.btn-subscribe{padding:13px 24px;border-radius:99px;border:none;cursor:pointer;background:var(--gold);color:#fff;font-family:'Plus Jakarta Sans',sans-serif;font-size:13px;font-weight:800;box-shadow:0 4px 20px rgba(200,169,110,.45);transition:all .2s;white-space:nowrap;}
.btn-subscribe:hover{transform:translateY(-1px);background:#d4b87a;box-shadow:0 8px 28px rgba(200,169,110,.55);}
.email-note{font-size:11px;color:var(--muted);margin-top:8px;}
.email-success{display:none;background:rgba(52,211,153,.1);border:1px solid rgba(52,211,153,.3);border-radius:14px;padding:12px;font-size:13.5px;color:#065f46;font-weight:600;}

/* ── PICKUP ── */
.pickup-section{background:#fff;padding:28px 5%;}
.pickup-inner{max-width:1060px;margin:0 auto;}
.pickup-grid{display:grid;grid-template-columns:1fr;gap:16px;margin-top:18px;}
.pickup-card{border-radius:22px;overflow:hidden;border:1px solid var(--border);box-shadow:0 2px 12px rgba(0,0,0,.06);}
.pickup-map{height:180px;position:relative;overflow:hidden;border-radius:0;}
.pickup-map iframe{width:100%;height:100%;border:none;display:block;}
.pickup-info{padding:14px 16px;}
.pickup-name{font-family:'Plus Jakarta Sans',sans-serif;font-size:17px;font-weight:800;color:var(--text);margin-bottom:6px;}
.pickup-detail{font-size:13px;color:var(--muted);line-height:1.7;margin-bottom:14px;}
.pickup-schedule{display:flex;flex-direction:column;gap:8px;}
.pickup-time{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--warm);border-radius:12px;border:1px solid var(--border);}
.pickup-time-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;}
.pickup-time-label{font-size:12px;font-weight:700;color:var(--text);}
.pickup-time-val{font-size:12px;color:var(--muted);margin-left:auto;}

/* ── CONTACT ── */
.contact-section{background:var(--navy);padding:48px 5%;}
.contact-section .section-tag{color:var(--blue-pale);}
.contact-section .section-tag::before{background:var(--blue-pale);}
.contact-section .section-title{color:#fff;}
.contact-section .section-sub{color:rgba(255,255,255,.55);}
.contact-grid{display:grid;grid-template-columns:1fr;gap:10px;margin-bottom:20px;}
.contact-card{background:#fff;border-radius:16px;padding:18px;display:flex;align-items:flex-start;gap:12px;border:1px solid var(--border);box-shadow:0 1px 5px rgba(0,0,0,.04);transition:all .2s;}
.contact-card:hover{box-shadow:0 5px 20px rgba(27,26,107,.09);}
.contact-icon{width:38px;height:38px;border-radius:10px;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:center;font-family:'Plus Jakarta Sans',sans-serif;font-size:10px;font-weight:900;flex-shrink:0;}
.contact-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);margin-bottom:2px;}
.contact-val{font-size:14px;font-weight:600;color:var(--text);}

/* footer rules live in /styles/footer.css */

/* ── AUTH MODAL ── */
.modal-overlay{display:none;position:fixed;inset:0;z-index:500;background:rgba(10,10,40,.5);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);align-items:center;justify-content:center;padding:16px;}
.modal-overlay.open{display:flex;}
.auth-modal{width:100%;max-width:420px;border-radius:28px;padding:28px 24px;background:rgba(248,249,255,.97);backdrop-filter:blur(32px) saturate(200%);-webkit-backdrop-filter:blur(32px) saturate(200%);border:1px solid rgba(255,255,255,.72);box-shadow:0 24px 80px rgba(27,26,107,.18),inset 0 1.5px 0 rgba(255,255,255,.92);position:relative;max-height:90vh;overflow-y:auto;}
.modal-close{position:absolute;top:14px;right:14px;width:30px;height:30px;min-width:30px;min-height:30px;max-height:30px;aspect-ratio:1/1;border-radius:99px;background:rgba(0,0,0,.06);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:17px;color:var(--muted);padding:0;}
.modal-close:hover{background:rgba(0,0,0,.1);}
.auth-logo{font-family:'Plus Jakarta Sans',sans-serif;font-size:20px;font-weight:900;color:var(--navy);letter-spacing:-.03em;margin-bottom:3px;}
.auth-tabs{display:flex;background:rgba(0,0,0,.05);border-radius:12px;padding:3px;gap:3px;margin-bottom:22px;}
.auth-tab{flex:1;padding:8px;border-radius:10px;border:none;background:transparent;font-size:13px;font-weight:700;color:var(--muted);cursor:pointer;transition:all .2s;}
.auth-tab.active{background:#fff;color:var(--navy);box-shadow:0 2px 6px rgba(0,0,0,.07);}
.auth-form{display:flex;flex-direction:column;gap:11px;}
.field-group{display:flex;flex-direction:column;gap:4px;}
.field-label{font-size:11.5px;font-weight:700;color:var(--text);}
.field-input{padding:12px 14px;border-radius:12px;border:1.5px solid var(--border);background:#fff;font-size:14px;color:var(--text);outline:none;transition:border-color .2s;font-family:inherit;}
.field-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(45,47,168,.09);}
.field-input::placeholder{color:var(--muted);}
.auth-divider{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:12px;font-weight:600;}
.auth-divider::before,.auth-divider::after{content:'';flex:1;height:1px;background:var(--border);}
.phone-row{display:flex;gap:7px;}
.phone-code{width:60px;flex-shrink:0;}
.btn-auth{width:100%;padding:13px;border-radius:99px;border:none;cursor:pointer;background:linear-gradient(135deg,var(--navy) 0%,var(--accent) 100%);color:#fff;font-family:'Plus Jakarta Sans',sans-serif;font-size:14px;font-weight:800;box-shadow:0 5px 18px rgba(27,26,107,.22);transition:all .2s;text-transform:lowercase;margin-top:4px;}
.btn-auth:hover{transform:translateY(-1px);box-shadow:0 7px 26px rgba(27,26,107,.32);}
.btn-auth:disabled{opacity:.6;transform:none;cursor:not-allowed;}
.btn-auth-phone{background:linear-gradient(135deg,var(--navy) 0%,var(--accent-lt) 100%);}
.auth-footer-note{text-align:center;font-size:12px;color:var(--muted);margin-top:4px;}
.auth-error{display:none;background:#FEF2F2;border:1px solid rgba(239,68,68,.2);border-radius:10px;padding:9px 12px;font-size:12.5px;color:#DC2626;margin-bottom:4px;}
.phone-verify-step{display:none;flex-direction:column;gap:11px;}
.otp-input{text-align:center;font-size:20px;font-weight:800;letter-spacing:.1em;font-family:'Plus Jakarta Sans',sans-serif;}

/* ── FAQ ── */
.faq-section{background:var(--cream);padding:32px 5%;}
.faq-inner{max-width:1060px;margin:0 auto;}
.faq-header{margin-bottom:20px;}
.faq-header .section-title{font-size:clamp(20px,3vw,30px);margin-bottom:4px;}
.faq-grid{display:grid;grid-template-columns:1fr;}
.faq-item{border-bottom:1px solid var(--border);padding:14px 0;}
.faq-q{font-family:'Plus Jakarta Sans',sans-serif;font-size:14px;font-weight:800;color:var(--text);cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:12px;}
.faq-q::after{content:'+';font-size:18px;color:var(--accent);flex-shrink:0;transition:transform .2s;}
.faq-item.open .faq-q::after{transform:rotate(45deg);}
.faq-a{max-height:0;overflow:hidden;transition:max-height .3s ease;font-size:13px;color:var(--muted);line-height:1.75;}
.faq-item.open .faq-a{max-height:200px;padding-top:8px;}
@media(min-width:720px){.faq-grid{grid-template-columns:1fr 1fr;gap:0 48px;}}

/* ── ACCOUNT DROPDOWN ── */
.acct-wrap{position:relative;}
.acct-dropdown{position:absolute;top:calc(100% + 10px);right:0;background:rgba(248,249,255,.97);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:1px solid rgba(255,255,255,.6);border-radius:18px;box-shadow:0 8px 36px rgba(27,26,107,.14),inset 0 1px 0 rgba(255,255,255,.8);width:210px;padding:7px;display:none;z-index:400;}
.acct-dropdown.open{display:block;}
.acct-info{padding:10px;border-bottom:1px solid var(--border);margin-bottom:5px;}
.acct-name{font-family:'Plus Jakarta Sans',sans-serif;font-size:13px;font-weight:800;color:var(--navy);}
.acct-email{font-size:11.5px;color:var(--muted);}
.acct-link{display:block;padding:8px 10px;border-radius:10px;font-size:13px;font-weight:600;color:var(--text);cursor:pointer;transition:all .15s;background:none;border:none;width:100%;text-align:left;}
.acct-link:hover{background:rgba(45,47,168,.08);color:var(--navy);}
.acct-link.danger{color:#DC2626;}
.acct-link.danger:hover{background:#FEF2F2;}

/* ── RESPONSIVE ── */
@media(min-width:600px){
  .stats{flex-wrap:nowrap;}

  .menu-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;}
  .card-img{height:160px;}
  .card-name{font-size:15px;}
  .plan-teaser{grid-template-columns:repeat(3,1fr);}
  .pillars{grid-template-columns:repeat(4,1fr);}
  .pt-services{grid-template-columns:repeat(2,1fr);}
  .social-grid{grid-template-columns:repeat(2,1fr);}
  .email-row{flex-direction:row;}
  .contact-grid{grid-template-columns:repeat(2,1fr);}
  .notify-form{flex-direction:row;}
  .btn-notify{width:auto;}
  .pickup-grid{grid-template-columns:repeat(1,1fr);}
  .waitlist-form{flex-direction:row;}
  .btn-waitlist{align-self:auto;}
}
@media(min-width:780px){
  .about-grid{grid-template-columns:1fr 1fr;}
}
@media(min-width:960px){
  .nav-links{display:flex;}
  .hamburger{display:none;}
  .menu-grid{grid-template-columns:repeat(3,1fr);}
  .card-img{height:200px;}
  .pt-grid{grid-template-columns:1fr 1fr;align-items:start;}
  .section,.sub,.about,.pt,.social-section,.email-capture,.contact-section,.pickup-section{padding-top:28px;padding-bottom:28px;}
  .how{padding-top:32px;padding-bottom:32px;}
  .stats-wrap{padding:16px 5%;}
}

/* ── SMALL PHONE FIXES (standard iPhones, 390px–430px) ── */
@media(max-width:959px){.btn-nav-auth{display:none;}}
@media(max-width:430px){
  /* Nav */
  .nav{padding:0 12px;}

  /* Hero */
  .hero{padding:128px 4% 0;}
  .hero-grid{gap:28px;padding-bottom:124px;}
  .hero h1{font-size:clamp(30px,8.5vw,38px);}
  .hero-sub{font-size:13px;margin-bottom:18px;}
  .hero-actions{gap:8px;justify-content:flex-start;flex-wrap:wrap;}
  .hero-btn-menu{padding:11px 22px;font-size:12.5px;flex:0 0 auto;align-self:flex-start;width:auto;max-width:max-content;}

  /* Sections — tighter padding */
  .section{padding:32px 4%;}
  .sub,.about{padding:28px 4%;}
  .pt{padding:28px 4%;}
  .social-section{padding:28px 4%;}
  .email-capture{padding:36px 4%;}
  .contact-section{padding:32px 4%;}
  .faq-section{padding:28px 4%;}
  .pickup-section{padding:22px 4%;}

  /* Section headings */
  .section-title{font-size:clamp(22px,7vw,32px);}
  .section-sub{font-size:13px;margin-bottom:18px;}

  /* How it works strip */
  .how{padding:12px 4%;}
  .how-step{padding:6px 10px;}
  .how-step-label{font-size:12px;}

  /* Reviews */
  .reviews-section{padding:20px 0 24px;}

  /* Menu section */
  .filter-pill{font-size:11.5px;padding:6px 13px;}

  /* FAQ */
  .faq-q{font-size:13.5px;}
  .faq-a{font-size:12.5px;}

  /* Footer mobile rules live in /styles/footer.css */
}

/* ── VERY SMALL PHONES (iPhone SE 375px, 360px Android) ── */
@media(max-width:380px){
  /* Hero — scale down for tiny screens */
  .hero{padding:120px 4% 0;}
  .hero-grid{padding-bottom:116px;}
  .hero-pill{margin-bottom:10px;padding:4px 10px;font-size:9px;}
  .hero h1{font-size:clamp(28px,8vw,34px);}
  .hero-sub{font-size:12.5px;}
  .hero-actions{gap:6px;}
  .hero-btn-menu{padding:10px 11px;font-size:11.5px;}
  .hero-capture-label{font-size:11.5px;}
  .hero-capture-btn{padding:8px 12px;font-size:11px;}
  .hero-capture-input{padding:8px 12px;font-size:11.5px;}

  /* Sections */
  .section{padding:28px 4%;}
  .sub,.about,.pt,.social-section,.email-capture,.contact-section,.faq-section{padding:24px 4%;}
  .section-title{font-size:clamp(20px,6.5vw,28px);}
  .section-sub{font-size:12.5px;}

  /* How it works */
  .how-step{padding:5px 8px;}
  .how-step-label{font-size:11.5px;}
  .how-step-num{width:24px;height:24px;font-size:11px;}

  /* Pillars */
  .pillar{padding:11px 10px;}
  .pillar-title{font-size:11.5px;}
  .pillar-sub{font-size:11px;}

  /* PT section */
  .pt-notify{padding:14px 12px;}
  .pt-notify h3{font-size:15px;}

  /* FAQ */
  .faq-q{font-size:13px;}

}
