/* RJK visual refresh — presentation only. Existing behavior remains in app.js. */
:root {
  --rjk-forest: #173c2d;
  --rjk-forest-2: #24513d;
  --rjk-sage: #748c6a;
  --rjk-cream: #f7f2e8;
  --rjk-paper: #fffdf8;
  --rjk-saffron: #d99a39;
  --rjk-coral: #b95f43;
  --rjk-ink: #17221b;
  --rjk-muted: #667068;
  --rjk-line: rgba(23, 60, 45, .13);
  --rjk-shadow: 0 18px 60px rgba(28, 48, 37, .10);
  --rjk-shadow-hover: 0 24px 70px rgba(28, 48, 37, .16);
  --rjk-radius: 24px;
  --rjk-ease: cubic-bezier(.2, .8, .2, 1);
}

html { scrollbar-width:none; -ms-overflow-style:none; }
html::-webkit-scrollbar { width:0; height:0; display:none; }

html.rjk-redesign { scroll-padding-top: 96px; }
body {
  background:
    radial-gradient(circle at 10% 12%, rgba(217, 154, 57, .08), transparent 28rem),
    var(--rjk-cream);
  color: var(--rjk-ink);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
  text-rendering: optimizeLegibility;
}
h1, h2, h3, .brand { font-family: Georgia, "Times New Roman", serif; }
h2 { letter-spacing: -.035em; }
:focus-visible { outline: 3px solid rgba(217, 154, 57, .72); outline-offset: 3px; }
::selection { background: #e9d6a9; color: #173c2d; }

.nav {
  left: max(16px, 3vw); right: max(16px, 3vw); top: 16px;
  min-height: 72px; height: auto; border-radius: 20px;
  border: 1px solid rgba(255,255,255,.22);
  background: rgba(15, 35, 26, .72);
  box-shadow: 0 16px 44px rgba(6, 19, 12, .18);
  backdrop-filter: blur(20px) saturate(130%);
}
.nav.scrolled { top: 8px; background: rgba(15, 35, 26, .92); }
.nav .brand img { border-radius: 13px; box-shadow: 0 5px 16px rgba(0,0,0,.22); }
.nav nav { gap: clamp(14px, 2vw, 28px); }
.nav nav a { position: relative; opacity: .82; font-weight: 650; }
.nav nav a::after { content: ""; position: absolute; left: 0; right: 100%; bottom: -8px; height: 2px; border-radius: 2px; background: #e6ba67; transition: right .25s var(--rjk-ease); }
.nav nav a:hover::after, .nav nav a:focus-visible::after { right: 0; }
.btn, .cart-trigger, .plan-btn, .contact-btn { min-height: 44px; transition: transform .2s var(--rjk-ease), box-shadow .2s, background-color .2s; }
.btn { background: var(--rjk-forest); color: #fff; box-shadow: 0 9px 24px rgba(23, 60, 45, .18); }
.btn:hover, .contact-btn:hover, .plan-btn:hover { transform:translateY(-3px); box-shadow:0 15px 34px rgba(23,60,45,.24); }
.btn:active, .contact-btn:active, .plan-btn:active { transform:translateY(0) scale(.98); box-shadow:0 7px 16px rgba(23,60,45,.18); }
.btn-small { background: #e0a84f; color: #17221b; }
.ui-pressed { transform: translateY(1px) scale(.98) !important; }

.hero { min-height: min(900px, 100svh); isolation: isolate; }
.hero-media img { filter: saturate(.88) contrast(1.04); }
.hero-shade {
  background:
    linear-gradient(90deg, rgba(7, 24, 16, .92) 0%, rgba(9, 29, 19, .73) 47%, rgba(8, 22, 15, .20) 80%),
    linear-gradient(0deg, rgba(6, 20, 13, .82), transparent 54%);
}
.hero::after { content: ""; position: absolute; inset: auto 0 0; height: 26%; z-index: 1; background: linear-gradient(transparent, rgba(10,27,18,.55)); pointer-events: none; }
.hero-content { max-width: 790px; padding-left: clamp(22px, 7vw, 112px); }
.hero .eyebrow { padding: 7px 11px; border: 1px solid rgba(255,255,255,.22); border-radius: 999px; background: rgba(255,255,255,.08); }
.hero h1 { max-width: 760px; text-wrap: balance; text-shadow: 0 4px 34px rgba(0,0,0,.28); }
.hero .lead { max-width: 610px; line-height: 1.65; }
.hero .ghost { border-color: rgba(255,255,255,.34); }
.trust-row { gap: 18px 30px; margin-top: 38px; }
.trust-row span { display: inline-flex; align-items: center; }
.trust-row span::before { display: grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; background: rgba(229,190,111,.16); }
.meal-clock {
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.08), 0 24px 70px rgba(3, 14, 8, .25);
  background: radial-gradient(circle at 50% 50%, rgba(22,61,43,.34), rgba(7,18,12,.38) 59%, rgba(255,255,255,.04) 60%);
}
.meal-clock button[data-clock-meal] { min-width: 112px; text-align: center; }
.meal-clock button[data-clock-meal="breakfast"] { left: 50%; right: auto; top: 14px; bottom: auto; transform: translateX(-50%); }
.meal-clock button[data-clock-meal="lunch"] { right: -28px; left: auto; bottom: 62px; top: auto; }
.meal-clock button[data-clock-meal="dinner"] { left: -24px; right: auto; bottom: 62px; top: auto; }
.meal-clock button[data-clock-meal="breakfast"].active { transform: translateX(-50%) scale(1.08); }
.meal-clock button[data-clock-meal="lunch"].active,
.meal-clock button[data-clock-meal="dinner"].active { transform: scale(1.08); }
.meal-clock button.active {
  background: linear-gradient(135deg, #f6e7bb, #e2bd70);
  color: #173c2d;
  border-color: rgba(255,255,255,.92);
  box-shadow: 0 0 0 7px rgba(226,189,112,.14), 0 12px 34px rgba(0,0,0,.28);
}
.clock-hand { background: linear-gradient(90deg, #e7b84f, #ffe19b); }
.clock-core { background: linear-gradient(145deg, #214d39, #153827); }

.ui-line-icon {
  width: 18px; height: 18px; flex: 0 0 18px;
  display: inline-grid; place-items: center;
  color: currentColor; vertical-align: -3px;
}
.ui-line-icon svg { width: 100%; height: 100%; display: block; }
.filters button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; }
.banner-icon { font-size: 0 !important; }
.banner-icon::before { content: "i"; display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: var(--rjk-forest); color: #fff; font: 800 14px/1 Georgia,serif; }

.section, .section-pad { position: relative; }
.section-head { max-width: 1280px; margin-left: auto; margin-right: auto; }
.section-head h2,
.intro h2,
.process > h2,
.benefits h2,
.contact h2,
.reviews h2 {
  font-family:Georgia,"Times New Roman",serif !important;
  font-weight:500 !important;
  line-height:.98 !important;
  letter-spacing:-.045em !important;
}
.intro { background: var(--rjk-paper); border-bottom: 1px solid var(--rjk-line); }
.intro h2 { color: var(--rjk-forest); max-width: 800px; text-wrap: balance; }
.intro > p { color: var(--rjk-muted); line-height: 1.8; }
.about-points > * { border-color: var(--rjk-line) !important; }

.meal-grid { gap: 18px !important; max-width: 1480px; margin: 0 auto; padding-bottom:48px !important; }
.meal-card { border-radius: var(--rjk-radius) !important; overflow: hidden; min-height: 450px; box-shadow: var(--rjk-shadow); transition: transform .35s var(--rjk-ease), box-shadow .35s; }
.meal-card::after { content: ""; position: absolute; inset: 45% 0 0; background: linear-gradient(transparent, rgba(5, 18, 11, .84)); pointer-events: none; }
.meal-card:hover { transform: translateY(-7px); box-shadow: var(--rjk-shadow-hover); }
.meal-card img { transition: transform .7s var(--rjk-ease), filter .4s; }
.meal-card:hover img { transform: scale(1.045); }
.meal-card-content { z-index: 2; }

.menu-section { padding-top:60px !important; background: linear-gradient(180deg, #f9f5ed 0%, #fffdf8 100%); }
.preorder-notice-banner { border: 1px solid rgba(217,154,57,.22) !important; box-shadow: 0 12px 34px rgba(55,43,21,.06); }
.menu-controls { align-items: end; gap: 18px; }
.menu-controls select { min-height: 48px; border: 1px solid var(--rjk-line); border-radius: 14px; background: #fff; padding: 0 44px 0 14px; font: inherit; color: var(--rjk-ink); }
.filters { background: rgba(23,60,45,.06); border-radius: 15px; padding: 4px; }
.filters button { min-height: 42px; border-radius: 11px !important; }
.filters button.active { background: var(--rjk-forest) !important; color: #fff; box-shadow: 0 6px 18px rgba(23,60,45,.18); }
.enhanced-date-select { margin-bottom: 0 !important; }
.date-rail { display: flex; gap: 10px; overflow-x: auto; max-width: 100%; padding: 4px 2px 12px; scrollbar-width: thin; scroll-snap-type: x proximity; }
.date-rail__item { scroll-snap-align: start; flex: 0 0 90px; min-height: 96px; border: 1px solid var(--rjk-line); border-radius: 18px; background: rgba(255,255,255,.85); color: var(--rjk-ink); display: grid; place-items: center; gap: 0; padding: 10px; cursor: pointer; transition: .22s var(--rjk-ease); }
.date-rail__item span, .date-rail__item small { font-size: 11px; color: var(--rjk-muted); text-transform: uppercase; letter-spacing: .08em; }
.date-rail__item strong { font: 700 27px/1 Georgia, serif; }
.date-rail__item:hover { transform: translateY(-2px); border-color: rgba(23,60,45,.35); }
.date-rail__item.is-active { background: var(--rjk-forest); color: #fff; border-color: var(--rjk-forest); box-shadow: 0 12px 30px rgba(23,60,45,.22); }
.date-rail__item.is-active span, .date-rail__item.is-active small { color: rgba(255,255,255,.72); }
.cutoff-status-card { border: 1px solid var(--rjk-line) !important; border-radius: 22px !important; box-shadow: var(--rjk-shadow); overflow: hidden; }
.cutoff-timer-box { font-variant-numeric: tabular-nums; }
.cutoff-tag.closed,
.food-card.cutoff-closed .add-btn {
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif !important;
  font-weight:750 !important;
  letter-spacing:0 !important;
  text-transform:none !important;
}
.cutoff-tag.closed { font-size:12px; }
.food-card.cutoff-closed .add-btn { font-size:14px; }
.cutoff-tag.closing-soon,
.cutoff-status-pill.closing-soon { animation:rjkUrgencyPulse 1.8s ease-in-out infinite; }
.menu-list { max-width: 1280px; margin-left: auto; margin-right: auto; }
.menu-list > * { border-radius: 20px !important; border: 1px solid var(--rjk-line) !important; box-shadow: 0 8px 26px rgba(22,48,33,.06); transition: transform .25s var(--rjk-ease), box-shadow .25s, border-color .25s; }
.menu-list > *:hover { transform: translateY(-4px); box-shadow: var(--rjk-shadow); border-color: rgba(23,60,45,.25) !important; }
.menu-list img { border-radius: 15px; }

.subscriptions { background: var(--rjk-forest); overflow: hidden; }
.subscriptions::before { content: ""; position: absolute; width: 560px; height: 560px; border-radius: 50%; right: -220px; top: -250px; background: radial-gradient(circle, rgba(219,164,78,.19), transparent 66%); }
.subscriptions::after { content:""; position:absolute; z-index:1; left:0; right:0; top:0; height:34px; background:linear-gradient(174deg,#fffdf8 0 48%,transparent 50%); pointer-events:none; }
.plan-grid { max-width: 1180px; margin-inline: auto; align-items: stretch; }
.plan { border: 1px solid rgba(255,255,255,.14) !important; border-radius: 24px !important; background: rgba(255,255,255,.075) !important; backdrop-filter: blur(12px); transition: transform .3s var(--rjk-ease), background .3s; }
.plan:hover { transform: translateY(-7px); background: rgba(255,255,255,.11) !important; }
.plan.featured {
  border-color: rgba(224,168,79,.82) !important;
  background: linear-gradient(145deg, #f6e8bd 0%, #ead39a 100%) !important;
  color: var(--rjk-forest) !important;
  box-shadow: 0 22px 64px rgba(0,0,0,.20);
}
.plan.featured:hover { background: linear-gradient(145deg, #faedc8 0%, #efd9a3 100%) !important; }
.plan.featured > span,
.plan.featured h3,
.plan.featured p,
.plan.featured li,
.plan.featured strong { color: var(--rjk-forest) !important; opacity: 1; }
.plan.featured p,
.plan.featured li { color: #4d5f50 !important; }
.plan.featured .popular { background: var(--rjk-forest); color: #fff; }
.plan.featured .plan-btn { background: var(--rjk-forest); color: #fff; box-shadow: 0 10px 24px rgba(23,60,45,.20); }
.plan-btn { border-radius: 14px !important; }

.steps { --process-progress:0; position:relative; max-width:1180px; margin-inline:auto; border-top:0 !important; }
.steps::before,
.steps::after { content:""; position:absolute; left:0; right:0; top:0; height:2px; border-radius:999px; transform-origin:left center; pointer-events:none; }
.steps::before { background:var(--rjk-line); }
.steps::after { background:linear-gradient(90deg,#d99a39,#748c6a,#173c2d); transform:scaleX(var(--process-progress)); box-shadow:0 0 16px rgba(217,154,57,.24); }
.steps > * { position:relative; border-top:0 !important; padding-top:28px; }
.steps > *::before { content:""; position:absolute; left:18px; top:-5px; width:10px; height:10px; border:2px solid var(--rjk-cream); border-radius:50%; background:#a9b09c; }
.gallery figure { isolation:isolate; }
.gallery img { border-radius:22px !important; filter:saturate(.9); box-shadow:0 16px 40px rgba(24,42,31,.10); transition:transform .42s var(--rjk-ease),filter .42s; }
.gallery figure:hover img { transform:scale(1.045); filter:saturate(1.05); }
.gallery figcaption { opacity:0; transform:translateY(10px); transition:opacity .28s ease-out,transform .28s ease-out; }
.gallery figure:hover figcaption,
.gallery figure:focus-within figcaption { opacity:1; transform:none; }
.benefits { background: #efe7d8; }
.benefit-list > * { border-color: rgba(23,60,45,.12) !important; }
.reviews-grid > * { border: 1px solid var(--rjk-line) !important; border-radius: 20px !important; box-shadow: 0 12px 36px rgba(21,42,29,.07); }
.reviews-grid { gap: 24px !important; align-items: stretch; }
.review-actions-panel { align-items:flex-start !important; }
.review-actions-panel #openReviewDialogBtn { margin:0 !important; align-self:flex-start; }
.review-card { min-height: 280px; padding: 28px !important; gap: 22px !important; }
.review-card-head { display: flex !important; flex-direction: column; align-items: flex-start !important; justify-content: flex-start !important; gap: 14px; }
.review-stars { white-space: nowrap; line-height: 1; }
.review-meal-tag { max-width: 100%; line-height: 1.35; text-align: left; }
.review-text { margin: 2px 0 !important; }
.review-author { margin-top: auto; }
.contact-card { border-radius: 28px !important; box-shadow: 0 24px 70px rgba(7,28,17,.18); }
.map-preview { overflow: hidden; border-radius: 20px; }
footer { border-top: 1px solid rgba(255,255,255,.1); }

.process { padding-bottom:36px !important; }
.process::before { content:""; position:absolute; z-index:0; left:0; right:0; top:0; height:42px; background:linear-gradient(176deg,rgba(23,60,45,.13) 0 47%,transparent 50%); pointer-events:none; }
.video-wrap { padding-top:36px !important; padding-bottom:24px !important; }
.video-wrap .section-head { margin-bottom:0 !important; }
.contact::before { content:""; position:absolute; z-index:0; left:0; right:0; top:0; height:34px; background:linear-gradient(174deg,#f7f2e8 0 48%,transparent 51%); pointer-events:none; }
.contact > * { position:relative; z-index:1; }

.cart-drawer { box-shadow: -30px 0 80px rgba(10,26,16,.20); }
.cart-drawer, dialog { border-radius: 24px 0 0 24px; }
dialog:not(.cart-drawer) { border-radius: 24px; border: 1px solid var(--rjk-line); box-shadow: 0 28px 100px rgba(8,24,14,.28); }
dialog::backdrop { background: rgba(7,20,13,.62); backdrop-filter: blur(4px); }
input, select, textarea { accent-color: var(--rjk-forest); }

.ui-reveal { opacity:0; transform:translateY(24px); }
.ui-reveal.ui-inview { opacity:1; transform:none; transition:opacity .34s ease-out var(--reveal-delay,0ms),transform .34s ease-out var(--reveal-delay,0ms); }

/* Original cinematic RJK homepage composition */
.hero {
  --hero-x: 0px;
  --hero-y: 0px;
  min-height: clamp(860px, 100svh, 940px);
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(420px, .92fr);
  align-items: center;
  padding: 96px clamp(28px,7vw,112px) 90px;
  overflow: hidden;
  background: #102f23;
}
.hero-media { display:block; z-index:0; opacity:.78; }
.hero-media img { width:100%; height:100%; object-fit:cover; object-position:center 46%; filter:saturate(.82) contrast(1.08) brightness(.82); animation:zoom 16s ease-out both; }
.hero-shade {
  inset: 0;
  background:
    radial-gradient(circle at 72% 28%, rgba(225,175,87,.11), transparent 25rem),
    linear-gradient(90deg, rgba(5,24,16,.92) 0%, rgba(5,24,16,.76) 42%, rgba(5,24,16,.48) 72%, rgba(5,24,16,.38) 100%),
    linear-gradient(0deg, rgba(4,19,13,.72), rgba(4,19,13,.08) 58%, rgba(4,19,13,.28));
}
.hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  opacity: .32;
  pointer-events: none;
  background-image: radial-gradient(rgba(255,255,255,.14) .7px, transparent .7px);
  background-size: 7px 7px;
  mask-image: linear-gradient(90deg, #000, transparent 70%);
}
.hero::after { height: 34%; z-index: 2; background: linear-gradient(transparent, rgba(5,22,14,.72)); }
.hero-content {
  position: relative;
  z-index: 7;
  align-self: start;
  margin-top: 0;
  margin-bottom: 0;
  max-width: 720px;
  padding: 18px 40px 72px 0;
}
.hero .eyebrow {
  width: max-content;
  color: #efd293;
  background: rgba(244,224,178,.08);
  border-color: rgba(244,224,178,.23);
  animation: rjkHeroRise .65s .05s both var(--rjk-ease);
}
.hero h1 {
  margin: 22px 0 24px;
  color: #fffaf0;
  font-size: clamp(58px,6vw,94px);
  line-height: .88;
  letter-spacing: -.065em;
  text-wrap: balance;
  text-shadow: 0 16px 44px rgba(0,0,0,.2);
}
.hero h1 span, .hero h1 em { display: inline-block; animation: rjkHeroRise .78s both var(--rjk-ease); }
.hero h1 span { white-space:nowrap; }
.hero h1 span { animation-delay: .12s; }
.hero h1 em { color: #e5b962; font-style: italic; font-weight: 500; animation-delay: .22s; }
.hero .lead {
  max-width: 580px;
  color: rgba(255,255,255,.74);
  font-size: clamp(16px,1.45vw,20px);
  animation: rjkHeroRise .72s .3s both var(--rjk-ease);
}
.hero-actions { animation: rjkHeroRise .72s .38s both var(--rjk-ease); }
.hero-actions .btn { position: relative; overflow: hidden; min-height: 54px; padding-inline: 22px; }
.hero-order-cta { background: #e5b258 !important; color: #173528 !important; box-shadow: 0 15px 40px rgba(226,174,81,.26) !important; }
.hero-order-cta::after {
  content: ""; position: absolute; inset: -30% auto -30% -40%; width: 28%; transform: skewX(-18deg);
  background: linear-gradient(90deg,transparent,rgba(255,255,255,.55),transparent); transition: left .55s var(--rjk-ease);
}
.hero-order-cta:hover::after { left: 118%; }
.hero-order-cta:hover { transform: translateY(-3px); box-shadow: 0 20px 48px rgba(226,174,81,.34) !important; }
.hero-order-cta > span { display:inline-block; transition:transform .25s ease-out; }
.hero-order-cta:hover > span { transform:translateX(5px); }
.hero .ghost { color: #fff; background: rgba(255,255,255,.04); }
.trust-row { color: rgba(255,255,255,.68); animation: rjkHeroRise .72s .46s both var(--rjk-ease); }
.trust-row span::before { content: ""; width: 7px; height: 7px; margin-right: 9px; border: 1px solid #e5b962; background: transparent; }

.hero-art {
  position: relative;
  z-index: 5;
  align-self: start;
  justify-self: end;
  width: min(47vw,680px);
  height: 600px;
  perspective: 1200px;
  transform: translate3d(var(--hero-x),calc(var(--hero-y) + var(--hero-scroll-y,0px)),0);
  transition: transform .18s linear;
}
.hero-art-panel { position: absolute; border-radius: 42px; box-shadow: 0 28px 80px rgba(2,17,9,.28); }
.hero-art-panel-warm {
  inset: 82px 50px 82px 88px;
  background: linear-gradient(145deg,#c87044,#9e4f35);
  transform: rotate(-7deg) translate3d(calc(var(--hero-x) * -.3),calc(var(--hero-y) * -.3),0);
  animation: rjkPanelIn .9s .2s both var(--rjk-ease);
}
.hero-art-panel-green {
  inset: 42px 16px 118px 126px;
  border: 1px solid rgba(255,255,255,.13);
  background: linear-gradient(145deg,#335f42,#1d4933);
  transform: rotate(5deg) translate3d(calc(var(--hero-x) * .2),calc(var(--hero-y) * .2),0);
  animation: rjkPanelIn .9s .32s both var(--rjk-ease);
}
.hero-main-dish {
  position: absolute;
  inset: 104px 72px 114px 74px;
  margin: 0;
  overflow: hidden;
  border-radius: 48% 48% 38% 38% / 42% 42% 55% 55%;
  border: 1px solid rgba(255,255,255,.3);
  box-shadow: 0 34px 90px rgba(4,20,11,.42), inset 0 0 0 10px rgba(255,255,255,.045);
  transform: translate3d(calc(var(--hero-x) * -.65),calc(var(--hero-y) * -.65),70px) rotate(-1deg);
  animation: rjkDishIn 1s .32s both var(--rjk-ease);
  cursor: pointer;
}
.hero-main-dish::after { content:""; position:absolute; inset:0; z-index:4; pointer-events:none; background:linear-gradient(155deg,rgba(255,255,255,.14),transparent 32%,rgba(7,26,16,.2)); }
.hero-scene { position:absolute; inset:0; margin:0; opacity:0; transform:scale(1.09) rotate(1.2deg); transition:opacity .65s var(--rjk-ease),transform 1.05s var(--rjk-ease); }
.hero-scene.is-active { opacity:1; transform:scale(1.02) rotate(0); z-index:2; }
.hero-scene img,.hero-scene video { display:block; width:100%; height:100%; object-fit:cover; filter:saturate(.96) contrast(1.04); }
.hero-main-dish:focus-visible { outline:3px solid #efd293; outline-offset:7px; }
.hero-scene-control {
  position:absolute; z-index:8; right:44px; top:70px; display:flex; align-items:center; gap:14px;
  padding:10px 11px 10px 15px; border:1px solid rgba(255,255,255,.18); border-radius:17px;
  color:#fff; background:rgba(8,31,21,.76); backdrop-filter:blur(14px); box-shadow:0 14px 38px rgba(0,0,0,.24);
}
.hero-scene-control span { display:grid; gap:2px; min-width:102px; }
.hero-scene-control small { color:#d9bd79; font-size:8px; font-weight:800; letter-spacing:.13em; text-transform:uppercase; }
.hero-scene-control strong { font-size:12px; }
.hero-scene-control button { min-height:38px; padding:0 12px; border:0; border-radius:11px; color:#173c2d; background:#f0dda9; font-weight:850; cursor:pointer; transition:transform .25s var(--rjk-ease),background .25s; }
.hero-scene-control button:hover { transform:translateX(2px); background:#fff1c5; }
.hero-float-dish {
  position: absolute; margin: 0; width: 190px; padding: 8px 8px 12px;
  border: 1px solid rgba(255,255,255,.18); border-radius: 23px; background: rgba(255,252,244,.94);
  box-shadow: 0 22px 55px rgba(3,17,9,.32); color: #173c2d; backdrop-filter: blur(14px);
  animation: rjkFloatDish 7.2s ease-in-out infinite;
}
.hero-float-dish img { display:block; width:100%; height:112px; object-fit:cover; border-radius:16px; }
.hero-float-dish figcaption { display:flex; justify-content:space-between; align-items:end; padding:10px 4px 0; font:700 15px/1.1 Georgia,serif; }
.hero-float-dish small { display:block; font:800 9px/1 Inter,sans-serif; letter-spacing:.1em; text-transform:uppercase; color:#778279; }
.hero-float-breakfast { left:-18px; top:84px; transform:translate3d(calc(var(--hero-x) * -1.1),calc(var(--hero-y) * -1.1),110px) rotate(-7deg); animation-delay:.2s; }
.hero-float-dinner { right:4px; bottom:210px; transform:translate3d(calc(var(--hero-x) * 1.2),calc(var(--hero-y) * 1.2),120px) rotate(6deg); animation-duration:7.8s; animation-delay:1.1s; animation-direction:reverse; }
.hero-fresh-note {
  position:absolute; left:74px; bottom:55px; z-index:4; display:flex; align-items:center; gap:11px;
  padding:12px 15px; border:1px solid rgba(255,255,255,.15); border-radius:16px;
  color:#fff; background:rgba(8,31,21,.76); backdrop-filter:blur(14px); box-shadow:0 12px 35px rgba(0,0,0,.2);
}
.hero-fresh-note > span { width:9px; height:9px; border-radius:50%; background:#86c785; box-shadow:0 0 0 6px rgba(134,199,133,.12); animation:rjkPulse 2s infinite; }
.hero-fresh-note small { display:block; color:rgba(255,255,255,.58); font-size:9px; letter-spacing:.1em; text-transform:uppercase; }
.hero-fresh-note strong { font-size:13px; }
.hero-orbit { position:absolute; border-radius:50%; border:1px solid rgba(237,206,139,.24); pointer-events:none; }
.hero-orbit-one { width:520px; height:520px; left:50%; top:50%; margin:-260px 0 0 -260px; animation:rjkOrbit 18s linear infinite; }
.hero-orbit-two { width:400px; height:400px; left:50%; top:50%; margin:-200px 0 0 -200px; border-style:dashed; animation:rjkOrbit 14s linear infinite reverse; }
.hero-leaf { position:absolute; z-index:9; width:19px; height:42px; border:1px solid rgba(255,255,255,.2); border-radius:100% 0 100% 0; background:#a8ca78; box-shadow:0 10px 24px rgba(0,0,0,.24); pointer-events:none; }
.hero-leaf-one { right:28px; top:82px; transform:rotate(36deg); animation:rjkLeaf 5s ease-in-out infinite; }
.hero-leaf-two { left:24px; bottom:132px; width:16px; height:36px; transform:rotate(-48deg); animation:rjkLeaf 6s 1s ease-in-out infinite reverse; }

.meal-clock {
  left:auto !important; right:clamp(22px,3vw,48px) !important; top:auto !important; bottom:20px !important;
  width:280px !important; height:280px !important; display:block; padding:0 !important;
  border-radius:50% !important; border:1px solid rgba(255,255,255,.28) !important;
  background:radial-gradient(circle,rgba(255,255,255,.13),rgba(255,255,255,.03) 60%,transparent 61%) !important;
  backdrop-filter:blur(10px) saturate(125%); transform:none !important;
  box-shadow:inset 0 0 0 19px rgba(255,255,255,.025),0 24px 70px rgba(0,0,0,.3);
  animation:rjkHeroRise .8s .65s both var(--rjk-ease);
}

@media (min-width:821px) {
  .hero-art { top:0; }
}
.meal-clock::before { display:block !important; content:""; position:absolute; left:50%; top:50%; width:43%; height:1px; transform-origin:left center; background:rgba(255,255,255,.14); }
.clock-hand { display:block !important; position:absolute; left:50%; top:50%; width:94px; height:3px; transform-origin:0 50%; z-index:2; border-radius:999px; background:linear-gradient(90deg,#dcc27e,#ffd76a); box-shadow:0 0 14px rgba(220,194,126,.72); transition:transform .85s cubic-bezier(.34,1.56,.64,1); }
.clock-hand::after { content:""; position:absolute; right:-5px; top:50%; width:10px; height:10px; transform:translateY(-50%); border:2px solid #dcc27e; border-radius:50%; background:#fff; animation:rjkClockDotPulse 2.2s ease-out infinite; }
.meal-clock button[data-clock-meal] {
  position:absolute !important; min-width:90px !important; min-height:48px; padding:8px 10px !important;
  border:1px solid rgba(255,255,255,.22); border-radius:999px !important; background:rgba(10,24,14,.58); color:#fff;
}
.meal-clock button[data-clock-meal="breakfast"] { left:50% !important; top:8px !important; right:auto !important; bottom:auto !important; transform:translateX(-50%) !important; }
.meal-clock button[data-clock-meal="lunch"] { right:0 !important; left:auto !important; bottom:36px !important; top:auto !important; }
.meal-clock button[data-clock-meal="dinner"] { left:0 !important; right:auto !important; bottom:36px !important; top:auto !important; }
.meal-clock button[data-clock-meal].active { color:#173c2d; background:#f0dda9; border-color:#fff; box-shadow:0 0 0 6px rgba(240,221,169,.13),0 10px 28px rgba(0,0,0,.25); }
.meal-clock button[data-clock-meal="breakfast"].active { transform:translateX(-50%) !important; }
.meal-clock button[data-clock-meal="lunch"].active,.meal-clock button[data-clock-meal="dinner"].active { transform:none !important; }
.clock-core {
  position:absolute !important; left:50% !important; top:50% !important; width:118px !important; height:118px !important;
  transform:translate(-50%,-50%) !important; border-radius:50% !important; background:#214d39; box-shadow:0 15px 45px rgba(0,0,0,.35);
}
.clock-core b { font-size:18px; }
.hero-journey {
  position:absolute; z-index:7; left:clamp(28px,7vw,112px); bottom:42px; width:min(46vw,650px);
  padding:20px 22px; border:1px solid rgba(255,255,255,.12); border-radius:24px;
  color:#fff; background:linear-gradient(110deg,rgba(255,255,255,.075),rgba(255,255,255,.025));
  backdrop-filter:blur(14px); box-shadow:0 18px 46px rgba(3,18,11,.14); animation:rjkHeroRise .8s .72s both var(--rjk-ease);
}
.hero-journey-heading { display:flex; align-items:end; justify-content:space-between; gap:16px; padding-bottom:14px; border-bottom:1px solid rgba(255,255,255,.11); }
.hero-journey-heading small { color:#d9bd79; font-size:9px; font-weight:850; letter-spacing:.14em; text-transform:uppercase; }
.hero-journey-heading strong { color:rgba(255,255,255,.72); font:italic 17px Georgia,serif; }
.hero-journey ol { display:grid; grid-template-columns:repeat(3,1fr); gap:0; margin:16px 0 0; padding:0; list-style:none; }
.hero-journey li { position:relative; display:grid; gap:3px; padding:0 18px; }
.hero-journey li:first-child { padding-left:0; }
.hero-journey li:not(:last-child)::after { content:""; position:absolute; right:0; top:4px; bottom:4px; width:1px; background:rgba(255,255,255,.12); }
.hero-journey li > span { color:#d9bd79; font-size:9px; font-weight:850; letter-spacing:.12em; }
.hero-journey li b { font-size:13px; }
.hero-journey li small { color:rgba(255,255,255,.5); font-size:10px; }
.hero-scroll-cue {
  position:absolute; z-index:7; left:clamp(28px,7vw,112px); bottom:35px; display:flex; align-items:center; gap:10px;
  color:rgba(255,255,255,.55); font-size:11px; font-weight:750; letter-spacing:.12em; text-transform:uppercase;
}
.hero-scroll-cue span { width:32px; height:1px; background:#d6b56f; position:relative; overflow:hidden; }
.hero-scroll-cue span::after { content:""; position:absolute; inset:0; background:#fff; transform:translateX(-120%); animation:rjkScrollCue 2.2s infinite; }

.meal-card { transform-style:preserve-3d; isolation:isolate; }
.meal-card:nth-child(2) { transform:translateY(28px); }
.meal-card:hover { transform:translateY(-9px) rotateX(1.5deg) rotateY(-1.5deg); }
.meal-card:nth-child(2):hover { transform:translateY(17px) rotateX(1.5deg) rotateY(1.5deg); }
.meal-card-content { transition:transform .45s var(--rjk-ease); }
.meal-card:hover .meal-card-content { transform:translateY(-7px); }
.food-card { position:relative; }
.food-card::before { content:""; position:absolute; inset:0; z-index:3; border-radius:inherit; pointer-events:none; box-shadow:inset 0 0 0 1px rgba(255,255,255,.48); opacity:0; transition:opacity .3s; }
.food-card:hover::before { opacity:1; }
.food-card:hover img { transform:scale(1.045); }
.food-card img { transition:transform .65s var(--rjk-ease),filter .35s; }

@keyframes rjkHeroRise { from { opacity:0; transform:translateY(28px); } to { opacity:1; transform:translateY(0); } }
@keyframes rjkPanelIn { from { opacity:0; transform:scale(.9) rotate(-12deg); } to { opacity:1; } }
@keyframes rjkDishIn { from { opacity:0; transform:translateY(45px) scale(.88) rotate(-7deg); filter:blur(8px); } to { opacity:1; filter:blur(0); } }
@keyframes rjkFloatDish { 0%,100% { margin-top:0; } 50% { margin-top:-9px; } }
@keyframes rjkOrbit { to { transform:rotate(360deg); } }
@keyframes rjkLeaf { 0%,100% { margin-top:0; } 50% { margin-top:-18px; transform:rotate(58deg); } }
@keyframes rjkPulse { 50% { box-shadow:0 0 0 10px rgba(134,199,133,0); } }
@keyframes rjkClockDotPulse { 0%,100% { box-shadow:0 0 0 0 rgba(255,215,106,.38),0 0 14px rgba(255,215,106,.65); } 60% { box-shadow:0 0 0 9px rgba(255,215,106,0),0 0 18px rgba(255,215,106,.8); } }
@keyframes rjkUrgencyPulse { 0%,100% { transform:scale(1); box-shadow:0 0 0 0 rgba(217,154,57,.16); } 50% { transform:scale(1.018); box-shadow:0 0 0 7px rgba(217,154,57,0); } }
@keyframes rjkScrollCue { 50%,100% { transform:translateX(120%); } }
@keyframes rjkMarquee { from { transform:translateX(100vw); } to { transform:translateX(-100%); } }

@media (max-width: 1040px) {
  .nav nav { gap: 14px; }
  .nav nav a:nth-child(3), .nav nav a:nth-child(4) { display: none; }
}

@media (max-width: 760px) {
  .nav { left: 10px; right: 10px; top: 9px; min-height: 64px; border-radius: 18px; }
  .nav .brand img { width: 46px; height: 46px; }
  .hero { min-height: 760px; padding-top: 104px; justify-content: flex-end; }
  .hero-shade { background: linear-gradient(0deg, rgba(6,22,13,.96) 4%, rgba(7,24,15,.70) 62%, rgba(8,23,15,.24)); }
  .hero-content { margin: auto 0 0; padding: 24px 20px 42px; }
  .hero h1 { font-size: clamp(43px, 13vw, 62px); line-height: .98; }
  .hero .lead { margin: 20px 0; font-size: 16px; }
  .hero-actions .btn { flex: 1 1 145px; }
  .trust-row { margin-top: 28px; display: grid; grid-template-columns: 1fr 1fr; font-size: 12px; }
  .section, .section-pad { padding-left: 18px !important; padding-right: 18px !important; }
  .intro { gap: 28px; }
  .intro h2 { font-size: clamp(39px, 12vw, 54px); }
  .meal-card { min-height: 390px; }
  .menu-controls { display: grid !important; grid-template-columns: 1fr; }
  .menu-controls { grid-template-columns: minmax(0, 1fr) !important; width: 100%; min-width: 0; }
  .menu-controls > * { min-width: 0; max-width: 100%; width: 100%; }
  .enhanced-date-select { width: 100%; }
  .enhanced-date-select select { width: 100%; }
  .date-rail { margin-inline: 0; padding-inline: 0; width: 100%; max-width: 100%; }
  .date-rail__item { flex-basis: 82px; }
  .filters { width: 100%; max-width: 100%; }
  .cutoff-card-content { align-items: flex-start !important; }
  .cutoff-left, .cutoff-right { min-width: 0; width: 100%; max-width: 100%; }
  .plan-grid { gap: 14px; }
  .contact-card { border-radius: 22px !important; }
  .cart-drawer { border-radius: 22px 22px 0 0; }
  dialog:not(.cart-drawer) { width: calc(100% - 20px) !important; max-height: calc(100dvh - 20px); border-radius: 20px; }
}

@media (max-width: 700px) {
  .meal-clock button[data-clock-meal="breakfast"] { top: 4px !important; }
  .meal-clock button[data-clock-meal="lunch"] { right: 0 !important; bottom: 32px !important; }
  .meal-clock button[data-clock-meal="dinner"] { left: 0 !important; bottom: 32px !important; }
}

@media (max-width: 390px) {
  .nav-actions { gap: 5px; }
  .cart-trigger { padding-inline: 11px; }
  .hero { min-height: 720px; }
  .trust-row { grid-template-columns: 1fr; gap: 8px; }
  .section, .section-pad { padding-top: 68px !important; padding-bottom: 68px !important; }
}

@media (max-width: 1120px) {
  .hero { min-height: 970px; grid-template-columns:minmax(0,1fr) minmax(360px,.8fr); padding:96px 34px 90px; }
  .hero-content { padding-right:24px; }
  .hero h1 { font-size:clamp(62px,8vw,94px); }
  .hero-art { width:min(46vw,560px); height:560px; }
  .hero-float-dish { width:158px; }
  .hero-float-dish img { height:90px; }
  .hero-float-breakfast { left:-10px; }
  .hero-float-dinner { right:-8px; }
  .hero-orbit-one { width:450px; height:450px; margin:-225px 0 0 -225px; }
  .hero-orbit-two { width:340px; height:340px; margin:-170px 0 0 -170px; }
  .meal-clock { right:28px !important; width:280px !important; height:280px !important; }
}

@media (min-width: 821px) and (max-width: 980px) {
  .hero-float-breakfast { display:none; }
}

@media (max-width: 820px) {
  .hero {
    display:block; min-height:1320px; padding:112px 20px 205px !important;
    justify-content:initial !important; align-items:initial;
  }
  .hero-content { max-width:650px; margin:0 auto; padding:0; }
  .hero h1 { font-size:clamp(58px,15vw,82px) !important; line-height:.88; }
  .hero .lead { max-width:540px; }
  .hero-art {
    position:absolute; left:50%; right:auto; bottom:288px; width:min(94vw,540px); height:475px;
    transform:translate3d(calc(-50% + var(--hero-x)),calc(var(--hero-y) + var(--hero-scroll-y,0px)),0);
  }
  .hero-art-panel-warm { inset:60px 45px 58px 64px; border-radius:32px; }
  .hero-art-panel-green { inset:35px 25px 82px 92px; border-radius:32px; }
  .hero-main-dish { inset:72px 58px 68px; border-radius:42px; }
  .hero-float-breakfast { left:0; top:52px; }
  .hero-float-dinner { right:0; bottom:92px; }
  .hero-fresh-note { left:34px; bottom:20px; }
  .hero-orbit-one { width:380px; height:380px; left:50%; top:50%; margin:-190px 0 0 -190px; }
  .hero-orbit-two { width:292px; height:292px; left:50%; top:50%; margin:-146px 0 0 -146px; }
  .meal-clock { left:50% !important; right:auto !important; bottom:18px !important; width:260px !important; height:260px !important; transform:translateX(-50%) !important; }
  .meal-clock button[data-clock-meal] { min-width:80px !important; padding-inline:7px !important; font-size:11px; }
  .meal-clock button[data-clock-meal] span { font-size:7px; }
  .clock-core { width:98px !important; height:98px !important; }
  .clock-hand { width:78px; }
  .hero-scene-control { top:46px; right:14px; padding:8px; }
  .hero-scene-control span { display:none; }
  .hero-scroll-cue { display:none; }
  .hero-journey { display:none; }
  .meal-card:nth-child(2), .meal-card:nth-child(2):hover { transform:none; }
}

@media (max-width: 520px) {
  .hero { min-height:1280px; padding-top:98px !important; }
  .hero h1 { font-size:clamp(52px,16vw,70px) !important; }
  .hero .lead { font-size:15px; line-height:1.55; }
  .hero-actions { gap:8px; }
  .hero-actions .btn { min-height:50px; padding-inline:15px; }
  .trust-row { grid-template-columns:1fr 1fr; gap:8px 12px; }
  .hero-art { bottom:350px; height:410px; }
  .hero-art-panel-warm { inset:52px 28px 52px 42px; }
  .hero-art-panel-green { inset:30px 18px 72px 66px; }
  .hero-main-dish { inset:61px 39px 60px; border-radius:36px; }
  .hero-float-dish { width:128px; padding:6px 6px 9px; border-radius:17px; }
  .hero-float-dish img { height:72px; border-radius:12px; }
  .hero-float-dish figcaption { font-size:12px; }
  .hero-float-dinner { display:block; right:-2px; bottom:104px; width:118px; }
  .hero-fresh-note { left:22px; bottom:24px; padding:10px 12px; }
  .hero-orbit-one { width:320px; height:320px; left:50%; top:50%; margin:-160px 0 0 -160px; }
  .hero-orbit-two { display:none; }
  .meal-clock { bottom:86px !important; width:240px !important; height:240px !important; padding:0 !important; }
  .clock-core { width:94px !important; height:94px !important; }
  .clock-core b { font-size:15px; }
  .clock-core small, .clock-core span { font-size:7px; }
}

@media (max-width:600px) {
  .steps { padding-left:18px; }
  .steps::before,
  .steps::after { left:6px; right:auto; top:0; bottom:0; width:2px; height:auto; transform-origin:center top; }
  .steps::after { transform:scaleY(var(--process-progress)); }
  .steps > * { padding-left:24px; }
  .steps > *::before { left:-17px; top:32px; }
  .gallery figcaption { opacity:1; transform:none; }
}

/* Keep the restored desktop artwork fully above the meal clock. */
@media (min-width:821px) {
  .hero-art { height:480px; }
  .hero-art-panel-warm { inset:64px 50px 54px 88px; }
  .hero-art-panel-green { inset:34px 16px 76px 126px; }
  .hero-main-dish { inset:66px 72px 54px 74px; }
  .hero-float-breakfast { top:44px; }
  .hero-float-dinner { bottom:68px; }
  .hero-fresh-note { bottom:12px; }
  .hero-orbit-one, .hero-orbit-two { display:none; }
  .float-wa { right:calc(clamp(22px,3vw,48px) + 300px); }
}

/* Customer phone sign-in and history */
.customer-account-trigger {
  min-height:42px; padding:9px 14px; border:1px solid rgba(255,255,255,.2); border-radius:13px;
  color:#fff; background:rgba(255,255,255,.08); font:750 13px/1 inherit; cursor:pointer;
  transition:background .2s,transform .2s;
}
.customer-account-trigger:hover { background:rgba(255,255,255,.16); transform:translateY(-2px); }
.customer-auth-dialog { width:min(520px,calc(100vw - 28px)); padding:34px; }
.auth-heading h2,.history-heading h2 { margin:3px 0 12px; color:#173c2d; font:700 clamp(34px,6vw,52px)/.98 Georgia,serif; }
.auth-heading>p:last-child { margin:0; color:#68766d; line-height:1.55; }
.customer-auth-form { display:grid!important; grid-template-columns:1fr!important; gap:13px!important; margin-top:24px!important; }
.customer-auth-form[hidden] { display:none!important; }
.customer-auth-form input { min-height:52px; font-size:17px; }
.auth-link { justify-self:center; border:0; padding:2px; color:#194e35; background:transparent; font:inherit; font-weight:800; text-decoration:underline; text-underline-offset:3px; cursor:pointer; }
.auth-forgot-link { justify-self:end; margin-top:-7px; font-size:13px; }
.auth-form-intro { padding:14px 16px; border:1px solid #d8dfd5; border-radius:14px; background:#f4f6f1; }
.auth-form-intro h3 { margin:0 0 4px; color:#123d2c; font-size:20px; }
.auth-form-intro p { margin:0; color:#66756c; font-size:13px; line-height:1.45; }
.auth-tabs { display:grid; grid-template-columns:1fr 1fr; gap:6px; margin-top:24px; padding:5px; border-radius:14px; background:#e9ede5; }
.auth-tabs button { min-height:42px; border:0; border-radius:10px; color:#607066; background:transparent; font-weight:800; cursor:pointer; }
.auth-tabs button.is-active { color:#fff; background:#194e35; box-shadow:0 6px 16px rgba(23,60,45,.18); }
.customer-auth-form input[name="otp"] { letter-spacing:.35em; text-align:center; font-size:23px; font-weight:800; }
.otp-sent-copy { display:flex; align-items:center; flex-wrap:wrap; gap:6px; padding:11px 13px; border-radius:12px; background:#e9eee5; color:#536359; }
.otp-sent-copy strong { color:#173c2d; }
.otp-sent-copy button { margin-left:auto; padding:0; border:0; background:none; color:#276845; font-weight:800; cursor:pointer; }
.development-otp { padding:12px 14px; border:1px dashed rgba(23,60,45,.32); border-radius:12px; color:#365742; background:#f0ead7; text-align:center; }
.development-otp strong { letter-spacing:.16em; color:#173c2d; font-size:18px; }
.auth-status { min-height:22px; margin:12px 0 3px; color:#36714d; font-weight:700; font-size:13px; }
.auth-status.is-error { color:#a43b34; }
.auth-privacy { display:block; color:#7a857e; line-height:1.45; }

.customer-history-dialog { width:min(820px,calc(100vw - 28px)); max-height:calc(100dvh - 28px); padding:34px; }
.history-customer { display:flex; align-items:center; flex-wrap:wrap; gap:8px 14px; margin-top:18px; }
.history-customer strong { font-size:17px; }
.history-customer span { color:#6e7b72; }
.history-customer button { margin-left:auto; border:0; background:none; color:#9b4a3d; font-weight:800; cursor:pointer; }
.history-summary { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin:26px 0; }
.history-summary span { padding:17px; border:1px solid rgba(23,60,45,.13); border-radius:16px; color:#657269; background:#f1eee3; }
.history-summary strong { display:block; color:#173c2d; font:700 30px/1 Georgia,serif; }
.history-section { margin-top:25px; }
.history-section-head { display:flex; align-items:center; justify-content:space-between; gap:15px; margin-bottom:10px; }
.history-section-head h3 { margin:0; color:#173c2d; font-size:25px; }
.history-section-head a { color:#296f49; font-weight:800; font-size:13px; }
.history-list { display:grid; gap:9px; }
.history-card { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:18px; padding:17px 18px; border:1px solid rgba(23,60,45,.12); border-radius:16px; background:rgba(255,255,255,.72); }
.history-card small { color:#7b867f; }
.history-card h4 { margin:3px 0; color:#173c2d; font-size:18px; }
.history-card p { margin:0; color:#69766d; font-size:13px; }
.history-card-meta { display:flex; flex-direction:column; align-items:flex-end; justify-content:space-between; gap:10px; }
.history-status { padding:5px 9px; border-radius:999px; color:#315c43; background:#dcecdf; font-size:10px; font-weight:900; text-transform:uppercase; letter-spacing:.08em; }
.history-status.status-cancelled { color:#8a3c37; background:#f6deda; }
.history-status.status-new { color:#735818; background:#f5e8be; }
.history-empty { margin:0; padding:24px; border:1px dashed rgba(23,60,45,.25); border-radius:16px; color:#718077; text-align:center; }

@media (max-width:1040px) {
  .customer-account-trigger { padding-inline:11px; }
}
@media (max-width:760px) {
  .nav-actions { margin-left:auto; gap:6px; min-width:0; }
  .customer-account-trigger { position:static; right:auto; top:auto; max-width:82px; min-height:42px; padding:8px 10px; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
  .cart-trigger { min-height:42px; padding:8px 10px; gap:7px; }
  .cart-trigger b { width:22px; height:22px; }
  .menu-toggle { width:30px; padding:0; flex:0 0 30px; }
  .nav-actions .btn-small { display:none; }
  .customer-history-dialog,.customer-auth-dialog { padding:27px 20px; }
}
@media (max-width:520px) {
  .customer-account-trigger { max-width:72px; font-size:12px; }
  .customer-auth-dialog { max-height:calc(100dvh - 18px); padding:22px 20px; }
  .customer-auth-dialog .auth-heading h2 { font-size:36px; }
  .customer-auth-dialog .auth-heading>p:last-child { font-size:14px; line-height:1.45; }
  .customer-auth-dialog .auth-tabs { margin-top:16px; }
  .customer-auth-dialog .customer-auth-form { margin-top:16px!important; gap:9px!important; }
  .customer-auth-dialog .customer-auth-form input { min-height:46px; padding-block:10px; }
  .customer-auth-dialog .auth-status { margin-top:8px; min-height:12px; }
  .customer-auth-dialog .auth-privacy { font-size:11px; line-height:1.35; }
  .history-summary { grid-template-columns:1fr 1fr; }
  .history-card { grid-template-columns:1fr; }
  .history-card-meta { flex-direction:row; align-items:center; }
}

@media (max-width:360px) {
  .nav { padding-left:8px; padding-right:8px; }
  .nav .brand img { width:42px; height:42px; }
  .customer-account-trigger { max-width:60px; padding-inline:7px; }
  .cart-trigger { padding-inline:8px; }
  .customer-auth-dialog,.customer-history-dialog { width:calc(100% - 14px)!important; padding:24px 16px; border-radius:18px; }
}

@media (hover:none) {
  .gallery figcaption { opacity:1; transform:none; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; }
  .ui-reveal { opacity: 1; transform: none; }
}

/* Cookie preferences */
.cookie-footer-link {
  appearance:none; border:0; padding:0; background:none; color:inherit; font:inherit;
  text-align:left; cursor:pointer; opacity:.78; transition:opacity .2s,color .2s;
}
.cookie-footer-link:hover,
.cookie-footer-link:focus-visible { color:#f3d995; opacity:1; }

.cookie-banner {
  position:fixed; left:24px; bottom:24px; z-index:1200; width:min(570px,calc(100vw - 48px));
  display:grid; grid-template-columns:auto minmax(0,1fr); gap:16px; padding:20px;
  color:#173524; background:rgba(250,247,238,.97); border:1px solid rgba(31,72,48,.18);
  border-radius:24px; box-shadow:0 24px 70px rgba(5,25,14,.26),0 4px 16px rgba(5,25,14,.12);
  backdrop-filter:blur(18px); transform:translateY(24px); opacity:0; visibility:hidden;
  transition:transform .28s ease-out,opacity .28s ease-out,visibility .28s;
}
.cookie-banner[hidden] { display:none; }
.cookie-banner.is-visible { transform:translateY(0); opacity:1; visibility:visible; }
.cookie-banner__icon,
.cookie-banner-mark {
  display:grid; place-items:center; width:46px; height:46px; border-radius:50%;
  color:#f1d58f; background:#153c29; box-shadow:0 8px 20px rgba(18,58,39,.2);
}
.cookie-banner__icon svg,
.cookie-banner-mark svg { width:27px; height:27px; }
.cookie-banner__copy h2,
.cookie-banner-copy strong { display:block; margin:1px 0 5px; color:#153c29; font:700 22px/1.1 Georgia,serif; }
.cookie-banner__copy p,
.cookie-banner-copy p { margin:0; color:#52675a; font-size:14px; line-height:1.55; }
.cookie-banner__actions,
.cookie-banner-actions { grid-column:1/-1; display:flex; flex-wrap:wrap; gap:9px; }
.cookie-btn {
  min-height:43px; padding:10px 15px; border:1px solid rgba(21,60,41,.2); border-radius:999px;
  color:#173524; background:#fffdf7; font:700 13px/1.1 inherit; cursor:pointer;
  transition:transform .2s ease,box-shadow .2s ease,background .2s ease;
}
.cookie-btn:hover { transform:translateY(-2px); box-shadow:0 8px 18px rgba(10,42,26,.13); }
.cookie-btn:active { transform:translateY(0); }
.cookie-btn--primary,
.cookie-btn-primary { color:#fff; background:#194e35; border-color:#194e35; }
.cookie-btn--dark,
.cookie-btn-dark { color:#fff; background:#102d20; border-color:#102d20; }
.cookie-btn--muted,
.cookie-btn-muted { background:#f1eee4; }

.cookie-preferences-dialog {
  width:min(660px,calc(100vw - 32px)); max-height:min(760px,calc(100dvh - 32px)); padding:34px;
  color:#183526; background:#fbf8ef; border:1px solid rgba(24,53,38,.16); border-radius:28px;
  box-shadow:0 30px 90px rgba(5,24,13,.35); overflow:auto;
}
.cookie-preferences-dialog::backdrop { background:rgba(4,20,12,.68); backdrop-filter:blur(6px); }
.cookie-preferences-dialog__inner { padding:0; }
.cookie-preferences-dialog h2 { margin:0 42px 8px 0; color:#153c29; font:700 clamp(29px,5vw,42px)/1 Georgia,serif; }
.cookie-preferences-dialog__intro,
.cookie-dialog-intro { margin:0 0 25px; color:#617167; line-height:1.6; }
.cookie-choice-list { display:grid; gap:11px; }
.cookie-choice {
  display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:20px; padding:17px 18px;
  border:1px solid rgba(23,53,36,.13); border-radius:17px; background:rgba(255,255,255,.64); cursor:pointer;
}
.cookie-choice strong { display:block; margin-bottom:4px; font-size:15px; }
.cookie-choice small { display:block; color:#68776e; font-size:13px; line-height:1.4; }
.cookie-choice input { position:absolute; opacity:0; pointer-events:none; }
.cookie-choice i {
  position:relative; width:48px; height:28px; border-radius:999px; background:#c7cec9;
  box-shadow:inset 0 0 0 1px rgba(18,52,34,.12); transition:background .22s;
}
.cookie-choice i::after {
  content:""; position:absolute; top:4px; left:4px; width:20px; height:20px; border-radius:50%;
  background:#fff; box-shadow:0 2px 7px rgba(11,37,23,.22); transition:transform .22s;
}
.cookie-choice input:checked + i { background:#287c51; }
.cookie-choice input:checked + i::after { transform:translateX(20px); }

/* Invisible bot trap: kept out of both the visual layout and keyboard order. */
.form-trap {
  position:absolute !important; left:-10000px !important; top:auto !important;
  width:1px !important; height:1px !important; overflow:hidden !important;
  opacity:0 !important; pointer-events:none !important;
}

/* WCAG-friendly footer text without changing the existing palette or layout. */
footer a, footer .cookie-footer-link { color:rgba(255,255,255,.78); }
footer > p { color:rgba(255,255,255,.68); }
.cookie-choice input:focus-visible + i { outline:3px solid rgba(216,167,68,.42); outline-offset:3px; }
.cookie-choice--locked { cursor:default; }
.cookie-choice--locked i { opacity:.68; }
.cookie-preferences-dialog__actions,
.cookie-dialog-actions { display:flex; justify-content:flex-end; flex-wrap:wrap; gap:10px; margin-top:25px; }

@media (max-width:600px) {
  .cookie-banner { left:12px; right:12px; bottom:82px; width:auto; padding:16px; gap:12px; border-radius:20px; }
  .cookie-banner__icon, .cookie-banner-mark { width:40px; height:40px; }
  .cookie-banner__copy h2, .cookie-banner-copy strong { font-size:19px; }
  .cookie-banner__copy p, .cookie-banner-copy p { font-size:13px; }
  .cookie-banner__actions, .cookie-banner-actions { display:grid; grid-template-columns:1fr 1fr; }
  .cookie-banner__actions .cookie-btn--primary, .cookie-banner-actions .cookie-btn-primary { grid-column:1/-1; grid-row:1; }
  .cookie-btn { min-height:40px; padding:9px 11px; font-size:12px; }
  .cookie-preferences-dialog { padding:27px 20px 22px; }
  .cookie-preferences-dialog__inner { padding:0; }
  .cookie-choice { padding:15px 13px; gap:12px; }
  .cookie-preferences-dialog__actions, .cookie-dialog-actions { display:grid; grid-template-columns:1fr 1fr; }
  .cookie-preferences-dialog__actions .cookie-btn--primary, .cookie-dialog-actions .cookie-btn-primary { grid-column:1/-1; grid-row:1; }
}
