/* The Original Beanery. Design tokens first; every colour on the site comes from here.
   Rules: one accent (terracotta), radius scale = 999px for controls, 16px for cards/photos, 10px for small tiles.
   Premium = restraint: surfaces separate by space and tone, not by hairline borders on every box.
   All :hover rules live inside the (hover:hover) and (pointer:fine) block near the bottom. */
@font-face{font-family:"Young Serif";src:url(../fonts/young-serif.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Figtree";src:url(../fonts/figtree.woff2) format("woff2");font-weight:400 700;font-style:normal;font-display:swap}
@font-face{font-family:"Figtree";src:url(../fonts/figtree-italic.woff2) format("woff2");font-weight:400 700;font-style:italic;font-display:swap}

:root{
  color-scheme:light dark;
  --bg:#fbf3ec; --bg-2:#f5e6da; --surface:#fffaf5; --blush:#f1d6c6;
  --ink:#33221b; --muted:#6e554a; --line:#e6cfc0;
  --accent:#b24c29; --accent-ink:#fff8f2; --accent-strong:#933b1c; --accent-soft:#f6ddd0;
  --deep:#3a2219; --deep-ink:#f8eadf; --deep-muted:#d8bba9;
  --ok:#3f7a4f;
  --shadow:0 34px 60px -38px rgba(90,38,16,.38);
  --r-card:16px; --r-tile:10px; --r-pill:999px;
  --serif:"Young Serif","Iowan Old Style",Georgia,serif;
  --sans:"Figtree",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  --ease:cubic-bezier(.16,1,.3,1);
  --gutter:clamp(16px,4vw,32px);
  --header:64px;
}
@media (prefers-color-scheme:dark){
  :root{
    --bg:#1d1512; --bg-2:#261b17; --surface:#2b201b; --blush:#3a261e;
    --ink:#f6e8de; --muted:#cbb2a4; --line:#46332a;
    --accent:#e38a62; --accent-ink:#2a140b; --accent-strong:#f0a17d; --accent-soft:#40271d;
    --deep:#140e0c; --deep-ink:#f6e8de; --deep-muted:#c8ad9d;
    --ok:#8fd19e;
    --shadow:0 34px 60px -34px rgba(0,0,0,.75);
  }
}

*{box-sizing:border-box}
[hidden]{display:none!important} /* component display rules must never beat the hidden attribute */
html{-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--header) + 16px)}
body{margin:0;background:var(--bg);color:var(--ink);font:17px/1.6 var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img{max-width:100%;display:block;height:auto}
a{color:var(--accent-strong);text-underline-offset:3px;text-decoration-thickness:1px}
button,a,[role=button],.chip{touch-action:manipulation}
button,.btn,.chip,.nav a,.tabbar a{-webkit-user-select:none;user-select:none}
input,select,textarea{font-size:16px}
:focus-visible{outline:3px solid var(--accent);outline-offset:3px;border-radius:6px}
.tile.text :focus-visible,.band :focus-visible{outline-color:var(--accent-ink)}
.site-footer :focus-visible,.press :focus-visible,.quote.accent :focus-visible,dialog.lightbox :focus-visible{outline-color:var(--deep-ink)}
::selection{background:var(--blush)}
.skip{position:absolute;left:-999px;top:8px;background:var(--surface);color:var(--ink);padding:10px 14px;border-radius:10px;z-index:100}
.skip:focus{left:8px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.icon{width:1.15em;height:1.15em;flex:none;vertical-align:-.2em}

h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.06;letter-spacing:-.022em;margin:0 0 .45em;text-wrap:balance}
h1{font-size:clamp(2.5rem,6.2vw,4.3rem)}
h2{font-size:clamp(1.95rem,4.8vw,3.15rem)}
h3{font-size:1.3rem;line-height:1.2}
p{margin:0 0 1em;text-wrap:pretty}
.lead{font-size:clamp(1.08rem,2.2vw,1.25rem);color:var(--muted);max-width:42ch}
.wrap{max-width:1200px;margin:0 auto;padding:0 var(--gutter)}
.eyebrow{display:inline-block;font:600 .74rem/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--accent-strong);margin-bottom:16px}
section.block{padding:clamp(64px,10vw,120px) 0}
.tint{background:var(--bg-2)}
.head{max-width:620px;margin-bottom:clamp(28px,4vw,44px)}
.head p{color:var(--muted);font-size:1.07rem}

/* header */
.site-header{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--bg) 86%,transparent);backdrop-filter:saturate(160%) blur(14px);-webkit-backdrop-filter:saturate(160%) blur(14px);border-bottom:1px solid color-mix(in srgb,var(--line) 70%,transparent);padding-top:env(safe-area-inset-top)}
.bar{display:flex;align-items:center;justify-content:space-between;gap:16px;height:var(--header)}
.brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:var(--ink)}
.brand-mark{width:38px;height:38px;border-radius:50%;background:var(--accent);color:var(--accent-ink);display:grid;place-items:center}
.brand-mark .icon{width:21px;height:21px}
.brand-name{font:1.12rem/1.05 var(--serif)}
.brand-name small{display:block;font:600 .7rem/1.4 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.nav{display:flex;gap:2px}
.nav a{padding:9px 15px;border-radius:var(--r-pill);text-decoration:none;color:var(--ink);font-weight:500;font-size:.97rem;transition:background .2s}
.nav a[aria-current=page]{background:var(--ink);color:var(--bg)}
.header-cta{display:none}

/* bottom tab bar (phones): native-app style navigation */
.tabbar{display:none}
@media (max-width:760px){
  .nav{display:none}
  .header-cta{display:inline-flex}
  .tabbar{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;left:0;right:0;bottom:0;z-index:60;background:color-mix(in srgb,var(--surface) 90%,transparent);backdrop-filter:saturate(160%) blur(16px);-webkit-backdrop-filter:saturate(160%) blur(16px);border-top:1px solid var(--line);padding:6px 6px calc(6px + env(safe-area-inset-bottom))}
  .tabbar a{display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 0;min-height:50px;justify-content:center;border-radius:14px;color:var(--muted);text-decoration:none;font:600 .75rem var(--sans);transition:transform .12s var(--ease),color .2s}
  .tabbar a .icon{width:24px;height:24px}
  .tabbar a[aria-current=page]{color:var(--accent-strong)}
  .tabbar a:active{transform:scale(.92)}
  body{padding-bottom:calc(70px + env(safe-area-inset-bottom))}
}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:50px;padding:12px 24px;border-radius:var(--r-pill);font:600 .98rem var(--sans);letter-spacing:.01em;text-decoration:none;border:1px solid transparent;cursor:pointer;white-space:nowrap;transition:transform .14s var(--ease),background .2s,color .2s,border-color .2s}
.btn:active{transform:scale(.97)}
.btn-primary{background:var(--accent);color:var(--accent-ink);box-shadow:inset 0 1px 0 rgb(255 255 255 / .16)} /* no glow, no fake 3D: quiet and solid */
.btn-ghost{background:transparent;border-color:color-mix(in srgb,var(--ink) 30%,transparent);color:var(--ink)}
.btn-sm{min-height:44px;padding:8px 16px;font-size:.93rem}
.btn-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}

/* open-now status: a real semantic state, the only coloured dot on the site */
.status{display:inline-flex;align-items:center;gap:9px;padding:7px 14px 7px 12px;border-radius:var(--r-pill);background:var(--surface);border:1px solid var(--line);font-size:.92rem;font-weight:550;color:var(--ink);margin-bottom:22px}
.status .dot{width:9px;height:9px;border-radius:50%;background:var(--muted)}
.status.open .dot{background:var(--ok);box-shadow:0 0 0 4px color-mix(in srgb,var(--ok) 22%,transparent)}

/* hero: asymmetric split, photo collage on the right */
.hero{padding:clamp(28px,6vw,72px) 0 clamp(48px,8vw,96px);overflow:hidden}
.hero-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:clamp(32px,5vw,72px);align-items:center}
.hero h1 em{font-style:normal;color:var(--accent-strong)}
.collage{position:relative;aspect-ratio:1/1.08}
.collage img{position:absolute;object-fit:cover;border-radius:var(--r-card)}
.collage .c1{top:0;right:0;width:78%;height:100%;object-position:50% 70%}
.collage .c2{left:0;bottom:9%;width:42%;height:38%;box-shadow:var(--shadow),0 0 0 1px color-mix(in srgb,var(--ink) 6%,transparent)}
@media (max-width:860px){
  .hero-grid{grid-template-columns:1fr}
  .collage{order:-1;aspect-ratio:4/3.3}
  .collage .c1{width:82%;object-position:50% 62%}
  .collage .c2{bottom:7%}
}

/* horizontal scroll-snap rail (native scroll physics) */
.rail{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(250px,300px);gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;padding:4px var(--gutter) 22px;margin:0 calc(var(--gutter) * -1);scroll-padding-inline:var(--gutter);overscroll-behavior-x:contain;scrollbar-width:none}
.rail::-webkit-scrollbar{display:none}
.rail>*{scroll-snap-align:start}
.rail-wrap{position:relative}
.rail-nav{display:flex;gap:8px}
.rail-nav button{width:46px;height:46px;border-radius:50%;border:1px solid var(--line);background:var(--surface);color:var(--ink);display:grid;place-items:center;cursor:pointer;transition:transform .14s var(--ease)}
.rail-nav button:active{transform:scale(.92)}
.rail-nav button:first-child .icon{transform:scaleX(-1)}
.row-head{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:28px}
.row-head .head{margin-bottom:0}
@media (max-width:760px){.rail-nav{display:none}}

/* dish card */
.dish-card{display:flex;flex-direction:column;text-decoration:none;color:inherit;transition:transform .3s var(--ease)}
.dish-card .ph{aspect-ratio:4/4.6;overflow:hidden;background:var(--blush);border-radius:var(--r-card)}
.dish-card img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
.dish-card .meta{padding:16px 2px 0;display:grid;grid-template-columns:1fr auto;gap:4px 12px;align-items:baseline}
.dish-card h3{font-size:1.18rem;margin:0}
.dish-card .price{font-weight:500;color:var(--muted);font-variant-numeric:tabular-nums}
.dish-card p{grid-column:1/-1;margin:0;color:var(--muted);font-size:.94rem;line-height:1.45}

/* feature: big photo with copy panel overlapping */
.feature{display:grid;grid-template-columns:1.25fr 1fr;align-items:center}
.feature .ph{border-radius:var(--r-card);overflow:hidden;box-shadow:var(--shadow);aspect-ratio:5/4}
.feature .ph img{width:100%;height:100%;object-fit:cover}
.feature .panel{background:var(--surface);border-radius:var(--r-card);padding:clamp(28px,4.4vw,56px);margin-left:-64px;position:relative;box-shadow:var(--shadow)}
.ticks{list-style:none;padding:0;margin:18px 0 0;display:flex;flex-wrap:wrap;gap:8px}
.ticks li{padding:6px 14px;border-radius:var(--r-pill);border:1px solid var(--line);color:var(--ink);font-weight:500;font-size:.9rem}
@media (max-width:860px){.feature{grid-template-columns:1fr}.feature .panel{margin:-48px 14px 0}}

/* bento for drinks */
.bento{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:minmax(190px,auto);gap:16px}
.tile{position:relative;border-radius:var(--r-card);overflow:hidden;background:var(--blush);min-height:190px}
.tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
.tile .cap{position:absolute;left:0;right:0;bottom:0;padding:44px 18px 16px;background:linear-gradient(to top,rgba(30,14,8,.85),rgba(30,14,8,.6) 70%,transparent);color:#fff6ef;display:flex;justify-content:space-between;align-items:end;gap:10px}
.tile .cap b{font:400 1.2rem/1.15 var(--serif)}
.tile .cap span{font-weight:500;font-size:.95rem;white-space:nowrap}
.tile.big{grid-column:span 2;grid-row:span 2}
.tile.wide{grid-column:span 2}
.tile.text{background:var(--accent);color:var(--accent-ink);padding:24px;display:flex;flex-direction:column;justify-content:space-between}
.tile.text h3{font-size:1.55rem}
.tile.text a{color:var(--accent-ink);font-weight:650;display:inline-flex;gap:8px;align-items:center}
@media (max-width:860px){.bento{grid-template-columns:1fr 1fr}.tile.big{grid-column:span 2;grid-row:span 1;min-height:300px}}
@media (max-width:560px){.tile.text{padding:18px}.tile.text h3{font-size:1.25rem}.tile.text p{font-size:.94rem;line-height:1.45}}

/* quotes: masonry columns */
.quotes{columns:3 280px;column-gap:18px}
.quote{break-inside:avoid;margin:0 0 18px;padding:30px 28px 24px;background:var(--surface);border-radius:var(--r-card)}
.quote p{font:400 1.16rem/1.5 var(--serif);margin:0 0 18px}
.quote footer{font-size:.85rem;color:var(--muted);display:flex;gap:8px;align-items:center}
.quote .stars{color:var(--accent);display:inline-flex;gap:1px}
.quote .stars .icon{width:14px;height:14px}
.quote.accent{background:var(--deep);color:var(--deep-ink);border-color:transparent}
.quote.accent footer{color:var(--deep-muted)}
.quote.accent .stars{color:var(--deep-ink)}

/* visit card */
.visit{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,4vw,56px);align-items:stretch}
.visit .ph{border-radius:var(--r-card);overflow:hidden;min-height:320px}
.visit .ph img{width:100%;height:100%;object-fit:cover}
@media (max-width:860px){.visit{grid-template-columns:1fr}}
.hours{width:100%;border-collapse:collapse;margin:8px 0 4px}
.hours th,.hours td{padding:11px 0;border-bottom:1px solid var(--line)}
.hours th{text-align:left;font-weight:inherit}
.hours tr:last-child :is(th,td){border-bottom:0}
.hours td:last-child{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.hours tr.today :is(th,td){color:var(--accent-strong);font-weight:700}
.facts-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:14px}
.facts-list li{display:flex;gap:14px;align-items:flex-start;padding:20px;background:var(--surface);border-radius:var(--r-tile);font-size:.95rem}
.facts-list .icon{width:22px;height:22px;color:var(--accent-strong);margin-top:1px}
.facts-list b{display:block;font-size:1rem;font-weight:600}
@media (max-width:560px){.facts-list{grid-template-columns:1fr}}

/* page title */
.page-title{padding:clamp(36px,7vw,80px) 0 clamp(24px,4vw,40px)}
.page-title p{color:var(--muted);font-size:1.12rem;max-width:52ch;margin:0}

/* menu */
.menu-tools{position:sticky;top:calc(var(--header) + env(safe-area-inset-top));z-index:20;background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);padding:12px 0;border-bottom:1px solid var(--line)}
.tools-row{display:flex;gap:12px;align-items:center}
.chips{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;flex:1;overscroll-behavior-x:contain}
.chips::-webkit-scrollbar{display:none}
.chip{flex:none;min-height:44px;padding:8px 17px;border-radius:var(--r-pill);border:1px solid var(--line);background:var(--surface);color:var(--ink);font:500 .94rem var(--sans);cursor:pointer;transition:transform .12s var(--ease),background .2s}
.chip:active{transform:scale(.95)}
.chip[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--bg)}
.search{position:relative;flex:0 1 300px}
.search input{width:100%;min-height:44px;padding:10px 16px 10px 42px;border:1px solid color-mix(in srgb,var(--muted) 70%,var(--surface));border-radius:var(--r-pill);background:var(--surface);color:var(--ink);font:16px var(--sans);-webkit-appearance:none;appearance:none}
.search input::placeholder{color:var(--muted)}
.search .icon{position:absolute;left:15px;top:50%;transform:translateY(-50%);color:var(--muted)}
@media (max-width:760px){.tools-row{flex-direction:column-reverse;align-items:stretch}.search{flex:auto}}
.menu-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:40px;align-items:start;padding-top:30px;padding-bottom:80px}
@media (max-width:1000px){.menu-layout{grid-template-columns:minmax(0,1fr)}}
.menu-group{margin-bottom:64px}
.menu-group h2{font-size:clamp(1.7rem,3.6vw,2.2rem);display:flex;align-items:center;gap:12px}
.menu-group h2 .icon{color:var(--accent)}
.dishes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 44px;border-top:1px solid var(--line)}
@media (max-width:640px){.dishes{grid-template-columns:minmax(0,1fr)}.dish.star .thumb{width:84px;height:84px}}
.dish{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-rows:1fr auto auto auto 1fr;gap:0 16px;align-items:center;padding:18px 0;border-bottom:1px solid var(--line)}
.dish.no-ph{grid-template-columns:minmax(0,1fr) auto}
/* placed from the right so rows with and without a photo share one rule: name, description, price stacked; + beside them */
.dish .add{grid-column:-2;grid-row:1/-1}
.dish .thumb{grid-column:1;grid-row:1/-1;width:76px;height:76px;border-radius:var(--r-tile);overflow:hidden;background:var(--blush)}
.dish .thumb img{width:100%;height:100%;object-fit:cover}
.dish-name{font:400 1.16rem/1.25 var(--serif);grid-column:-3;grid-row:2}
.dish-price{font-weight:500;color:var(--ink);font-variant-numeric:tabular-nums;font-size:.95rem;grid-column:-3;grid-row:4;margin-top:4px}
.dish-desc{grid-column:-3;grid-row:3;margin:4px 0 0;color:var(--muted);font-size:.9rem;line-height:1.4}
.dish.star{grid-column:1/-1;background:var(--accent-soft);border-radius:var(--r-card);border-bottom:0;padding:18px;margin:18px 0}
.dish.star .thumb{width:112px;height:112px}
.add{width:44px;height:44px;border-radius:50%;border:1px solid color-mix(in srgb,var(--accent) 55%,var(--line));background:transparent;color:var(--accent-strong);display:grid;place-items:center;cursor:pointer;transition:transform .14s var(--ease),background .2s,color .2s}
.add:active{transform:scale(.88)}
.dish-card:active,.gallery button:active{transform:scale(.98)}
.qty button:active{transform:scale(.9)}
.add.done{background:var(--accent);color:var(--accent-ink)}
.no-js .add,.no-js .tray{display:none}
.empty{padding:40px 20px;text-align:center;color:var(--muted);background:var(--surface);border-radius:var(--r-card);border:1px dashed var(--line)}
.empty .icon{width:36px;height:36px;color:var(--accent);margin:0 auto 10px;display:block}
.menu-note{font-size:.88rem;color:var(--muted)}

/* counter list tray: sidebar on desktop, bottom sheet on phones */
.tray{position:sticky;top:calc(var(--header) + 90px);background:var(--surface);border-radius:var(--r-card);padding:22px;box-shadow:var(--shadow)}
.tray h2{font-size:1.45rem;margin-bottom:4px}
.tray small{display:block;color:var(--muted);margin-bottom:14px;line-height:1.45}
.tray ul{list-style:none;margin:0 0 10px;padding:0}
.tray li{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line);font-size:.95rem}
.qty{display:inline-flex;align-items:center;gap:6px}
.qty button{width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:var(--bg);color:var(--ink);display:grid;place-items:center;cursor:pointer;transition:transform .14s var(--ease)}
.qty button .icon{width:16px;height:16px}
.qty b{min-width:18px;text-align:center}
.tray-total{display:flex;justify-content:space-between;font:400 1.25rem var(--serif);margin:12px 0 16px}
.tray-actions{display:grid;grid-template-columns:1fr auto;gap:8px}
.tray-empty{color:var(--muted);font-size:.95rem}
.tray.is-empty .tray-total{display:none}
.tray-handle{display:none}
@media (max-width:1000px){
  .tray{position:fixed;left:8px;right:8px;top:auto;bottom:calc(76px + env(safe-area-inset-bottom));z-index:55;max-height:min(70dvh,560px);overflow:auto;overscroll-behavior:contain;padding:0 20px 20px;transform:translateY(calc(100% - 60px));transition:transform .45s var(--ease);border-radius:20px}
  .tray.open{transform:none}
  .tray.is-empty{display:none}
  .tray-handle{display:flex;position:sticky;top:0;align-items:center;justify-content:space-between;width:100%;min-height:60px;background:var(--surface);border:0;font:700 1rem var(--sans);color:var(--ink);cursor:pointer;padding:0}
  .tray-handle .icon{transition:transform .3s var(--ease);transform:rotate(-90deg)}
  .tray.open .tray-handle .icon{transform:rotate(90deg)}
  .tray .tray-handle~*{transition:visibility 0s .45s}
  .tray:not(.open) .tray-handle~*{visibility:hidden}
  .tray.open .tray-handle~*{transition:none}
}
@media (min-width:761px) and (max-width:1000px){.tray{bottom:12px}}

/* gallery: masonry + native dialog lightbox */
.gallery{columns:3 260px;column-gap:14px}
.gallery button{display:block;width:100%;margin:0 0 14px;padding:0;border:0;background:var(--blush);border-radius:var(--r-tile);overflow:hidden;cursor:zoom-in;break-inside:avoid;transition:transform .14s var(--ease)}
.gallery img{width:100%;transition:transform .6s var(--ease)}
dialog.lightbox{border:0;padding:0;background:transparent;max-width:min(94vw,1100px);max-height:92dvh;overflow:visible}
dialog.lightbox::backdrop{background:rgba(20,10,6,.86);backdrop-filter:blur(4px)}
dialog.lightbox img{max-height:82dvh;width:auto;margin:0 auto;border-radius:var(--r-tile)}
dialog.lightbox p{color:#f6e8de;text-align:center;margin:12px 0 0;font-size:.95rem}
dialog.lightbox .close{position:absolute;top:-8px;right:-8px;width:44px;height:44px;border-radius:50%;border:0;background:#fff6ef;color:#33221b;display:grid;place-items:center;cursor:pointer}
@keyframes pop{from{opacity:0;transform:scale(.96)}}

/* about */
.story{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(28px,5vw,72px);align-items:center}
.story .ph{border-radius:var(--r-card);overflow:hidden;box-shadow:var(--shadow);aspect-ratio:4/3}
.story .ph img{width:100%;height:100%;object-fit:cover}
@media (max-width:860px){.story{grid-template-columns:1fr}}
.press{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px}
.press figure{margin:0;padding:28px;border-radius:var(--r-card);background:var(--deep);color:var(--deep-ink)}
.press blockquote{margin:0 0 16px;font:400 1.2rem/1.45 var(--serif)}
.press figcaption{font-size:.9rem;color:var(--deep-muted)}
.press figcaption a{color:var(--deep-ink)}

/* closing band */
.band{background:var(--accent);color:var(--accent-ink);border-radius:var(--r-card);padding:clamp(32px,6vw,64px);display:grid;grid-template-columns:1fr auto;gap:24px;align-items:center}
.band h2{margin:0}
.band .btn-primary{background:var(--accent-ink);color:var(--accent-strong)}
@media (max-width:760px){.band{grid-template-columns:1fr}}

/* footer */
.site-footer{background:var(--deep);color:var(--deep-muted);padding:56px 0 36px;margin-top:clamp(64px,10vw,120px)}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:32px}
.site-footer h2{font:400 1.3rem var(--serif);color:var(--deep-ink);margin-bottom:12px}
.site-footer p{margin:0 0 .4em;font-size:.95rem}
.site-footer a{color:var(--deep-ink)}
.fine{border-top:1px solid color-mix(in srgb,var(--deep-ink) 15%,transparent);margin-top:32px;padding-top:18px;font-size:.84rem}
@media (max-width:760px){.foot-grid{grid-template-columns:1fr}}

/* scroll reveal: CSS scroll-driven where supported, nothing otherwise */
@media (prefers-reduced-motion:no-preference){
  @supports (animation-timeline:view()){
    .reveal{animation:rise linear both;animation-timeline:view();animation-range:entry 0% entry 40%}
  }
  .hero .rise{animation:rise .9s var(--ease) both}
  .hero .rise:nth-child(2){animation-delay:.08s}.hero .rise:nth-child(3){animation-delay:.16s}.hero .rise:nth-child(4){animation-delay:.24s}
  .collage img{animation:settle 1.1s var(--ease) both}
  .collage .c2{animation-delay:.2s}.collage .c3{animation-delay:.35s}
  dialog[open].lightbox{animation:pop .35s var(--ease)}
}
@keyframes rise{from{opacity:0;transform:translateY(22px)}}
@keyframes settle{from{opacity:0;transform:translateY(18px) scale(.97)}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition-duration:0s!important}}

/* hover only on real pointers, so taps never leave a stuck hover state */
@media (hover:hover) and (pointer:fine){
  .nav a:hover{background:var(--bg-2)}
  .nav a[aria-current=page]:hover{background:var(--ink)}
  .btn-primary:hover{background:var(--accent-strong);color:var(--accent-ink)}
  .btn-ghost:hover{border-color:var(--ink)}
  a.dish-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
  .dish-card:hover img,.tile:hover img,.gallery button:hover img{transform:scale(1.04)}
  .chip:hover{border-color:var(--ink)}
  .add:hover{background:var(--accent);color:var(--accent-ink)}
  .rail-nav button:hover{border-color:var(--ink)}
  a:hover{color:var(--accent)}
}

/* phone tweaks */
@media (max-width:760px){
  .brand-name{font-size:1rem;white-space:nowrap}
  .tile .cap{flex-direction:column;align-items:flex-start;gap:2px}
  .tile .cap b{font-size:1.05rem}
}
@media (min-width:761px){.rail{-webkit-mask-image:linear-gradient(to right,#000 88%,transparent);mask-image:linear-gradient(to right,#000 88%,transparent)}}
