/* Poppy Cafe & Market — shared stylesheet, every page (T1 "Billing", R2 craft pass).
   One cream ground, Poppy orange #f8844e as the one accent (fills; #a8431a for text), ink for the close.
   Display: Big Shoulders Display 800/600. Body: Public Sans 400/600 (both OFL). Home-only parts live in home.css.
   One container (.wrap: 1440 incl. gutters, so every left edge is the gutter) and a four-step display scale (--d1..--d4). */

@font-face{font-family:'Big Shoulders Display';font-style:normal;font-weight:800;font-display:swap;src:url('/fonts/big-shoulders-display-800.woff2') format('woff2')}
@font-face{font-family:'Big Shoulders Display';font-style:normal;font-weight:600;font-display:swap;src:url('/fonts/big-shoulders-display-600.woff2') format('woff2')}
@font-face{font-family:'Public Sans';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/public-sans-400.woff2') format('woff2')}
@font-face{font-family:'Public Sans';font-style:normal;font-weight:600;font-display:swap;src:url('/fonts/public-sans-600.woff2') format('woff2')}
/* metric-matched local fallbacks (size-adjust from fontTools advance widths) so the font swap barely reflows */
@font-face{font-family:'BSD Fallback';src:local('Arial Narrow Bold'),local('ArialNarrow-Bold');font-weight:100 900;size-adjust:80%;ascent-override:123%;descent-override:26.6%;line-gap-override:0%}
@font-face{font-family:'Public Sans Fallback';src:local('Arial'),local('ArialMT');font-weight:100 900;size-adjust:102.5%;ascent-override:92.7%;descent-override:21.9%;line-gap-override:0%}

:root{
  --ground:#f6efe1;
  --paper:#fbf8f1;
  --ink:#2b211a;
  --soft:#5e5045;
  --accent:#f8844e;
  --accent-ink:#a8431a;
  --blush:#f4dccf;
  --rule:rgba(43,33,26,.16);
  --rule-ink:rgba(246,239,225,.22);
  --on-ink:#d8cbb8;
  --display:'Big Shoulders Display','BSD Fallback','Arial Narrow',sans-serif;
  --text:'Public Sans','Public Sans Fallback',system-ui,-apple-system,'Segoe UI',sans-serif;
  --gutter:clamp(16px,4vw,56px);
  --section:clamp(64px,8vw,120px);
  /* sleek 04: a 32px contact row (phone + address) sits above the 64px bar on every page */
  --topline-h:32px;
  --bar-h:64px;
  --header-h:calc(var(--topline-h) + var(--bar-h));
  --sticky-action-h:64px;
  --ease:cubic-bezier(.2,.7,.2,1);
  /* display scale: D1 every H1 · D2 every section H2 and the close · D3 item names · D4 small display labels */
  /* sleek 04: calmer section scale; only H1s stay large */
  --d1:clamp(60px,6.2vw,96px);
  --d2:clamp(38px,3.9vw,60px);
  --d3:clamp(26px,2.5vw,38px);
  --d4:clamp(20px,1.6vw,26px);
}
@media (max-width:899px){:root{--topline-h:30px;--bar-h:58px;--d1:clamp(40px,11.6vw,58px);--d2:clamp(30px,8.4vw,38px);--d3:clamp(23px,6.6vw,30px);--d4:clamp(19px,5.2vw,23px)}}

*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--header-h) + 16px)}
body{margin:0;background:var(--ground);color:var(--ink);font:400 17px/1.6 var(--text);overflow-x:clip;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-underline-offset:.2em;text-decoration-thickness:1px}
h1,h2,h3,h4,p,ul,ol,dl,dd,figure,blockquote{margin:0}
ul,ol{padding:0;list-style:none}
button,input{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--ink);outline-offset:3px}
.skip-link{position:absolute;left:12px;top:-80px;z-index:100;background:var(--ink);color:var(--ground);padding:10px 14px;border-radius:4px}
.skip-link:focus{top:12px}
.vh{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}
.nowrap{white-space:nowrap}
.wrap{display:block;width:100%;max-width:1440px;margin-inline:auto;padding-inline:var(--gutter)}
svg{flex:none}
main{padding-bottom:var(--section)}
main:has(> .photo-band:last-child){padding-bottom:0}
main:has(> .find:last-child){padding-bottom:0}
.kicker{font:600 15px/1.35 var(--text);color:var(--soft)}
.lede{max-width:52ch;font-size:clamp(19px,1.6vw,22px);line-height:1.55}
.lede + p,.lede + .lede,p + .lede{margin-top:16px}
.prose{max-width:62ch}
.prose > p + p{margin-top:16px}
.small,.credit{margin-top:16px;font-size:15px;color:var(--soft)}

/* the one stamped truth label */
.stamp{display:inline-block;max-width:100%;padding:6px 10px 5px;text-align:center;border:1.5px solid var(--ink);border-radius:3px;font:600 12px/1.2 var(--text);letter-spacing:.08em;text-transform:uppercase}

/* ---------- actions: one filled button, everything else a text link ---------- */
.actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px 22px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:52px;padding:0 22px;border:2px solid var(--ink);border-radius:4px;background:none;color:var(--ink);font:600 16px/1.1 var(--text);text-decoration:none;cursor:pointer;transition:background-color .2s var(--ease),color .2s var(--ease),border-color .2s var(--ease),transform .15s var(--ease)}
.btn svg{width:18px;height:18px}
.btn--fill{background:var(--accent);border-color:var(--accent)}
.btn:active{transform:scale(.98)}
@media (hover:hover) and (pointer:fine){
  .btn--line:hover{background:var(--ink);color:var(--ground)}
  .btn--fill:hover{background:var(--ink);border-color:var(--ink);color:var(--ground)}
}
.btn--order{min-width:188px;flex-direction:column;align-items:flex-start;justify-content:center;gap:2px;padding:7px 18px}
.ob-l{font-weight:600;font-size:16px}
.ob-s{font:400 12px/1.2 var(--text);white-space:nowrap}
.link{display:inline-flex;align-items:center;gap:8px;min-height:44px;font:600 16px/1.2 var(--text);text-decoration:underline;text-decoration-thickness:2px;text-decoration-color:var(--accent);text-underline-offset:.3em}
.link svg{width:16px;height:16px;transition:transform .2s var(--ease)}
@media (hover:hover) and (pointer:fine){.link:hover svg{transform:translateX(3px)}}

/* ---------- header (Moore house style in T1 tokens) ---------- */
.site-header{position:fixed;inset:0 0 auto;z-index:50;background:var(--ground);border-bottom:1px solid var(--rule)}
/* contact row: phone and address readable on every page, desktop and phone */
.topline{height:var(--topline-h);background:var(--ink);color:var(--ground)}
.topline-in{display:flex;align-items:center;gap:6px 22px;height:100%;max-width:1440px;margin-inline:auto;padding-inline:var(--gutter);font:600 13px/1 var(--text);white-space:nowrap}
.topline a{display:inline-flex;align-items:center;gap:7px;height:100%;color:inherit;text-decoration:none}
.topline a:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.topline svg{width:14px;height:14px;color:var(--accent)}
.tl-hours{margin-left:auto;font-weight:400;color:var(--on-ink)}
.tl-short{display:none}
@media (hover:hover) and (pointer:fine){.topline a:hover{text-decoration:underline;text-decoration-color:var(--accent)}}
@media (max-width:899px){.topline-in{gap:14px;font-size:12.5px}.tl-hours{display:none}}
@media (max-width:379px){.topline-in{gap:10px}.tl-long{display:none}.tl-short{display:inline}.topline svg{display:none}}
.bar{display:flex;align-items:center;gap:20px;height:var(--bar-h);max-width:1440px;margin-inline:auto;padding-inline:var(--gutter)}
.brand{flex:none;display:block;border-radius:2px}
.brand img{width:92px;height:auto}
.bar-nav{display:flex;align-items:center;gap:2px;margin-inline:auto}
.menu-toggle,.bar-link{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 13px;border:0;border-radius:4px;background:none;color:var(--ink);font:600 15px/1 var(--text);text-decoration:none;cursor:pointer}
.bar-link[aria-current="page"]{text-decoration:underline;text-decoration-thickness:3px;text-decoration-color:var(--accent);text-underline-offset:.5em}
.menu-toggle .i-chev{width:12px;height:12px;transition:transform .2s var(--ease)}
.menu-toggle[aria-expanded="true"] .i-chev{transform:rotate(180deg)}
.mt-narrow,.mt-open,.mt-icons{display:none}
.menu-toggle[aria-expanded="true"] .mt-wide,.menu-toggle[aria-expanded="true"] .mt-narrow{display:none}
.menu-toggle[aria-expanded="true"] .mt-open{display:inline}
@media (hover:hover) and (pointer:fine){.menu-toggle:hover,.bar-link:hover{background:var(--blush)}}
.bar-end{display:flex;align-items:center;gap:16px}
.bar-tel{display:inline-flex;align-items:center;gap:8px;min-height:44px;font:600 15px/1 var(--text);text-decoration:none}
.bar-tel svg,.bar-mail svg{width:18px;height:18px}
.bar-mail{display:inline-grid;place-items:center;width:44px;height:44px;border-radius:4px}
.bar-order{min-height:44px;padding:0 18px;font-size:15px}
@media (hover:hover) and (pointer:fine){.bar-mail:hover,.bar-tel:hover{background:var(--blush)}}

.menu-panel{display:none;position:absolute;left:0;right:0;top:100%;background:var(--paper);border-bottom:1px solid var(--rule)}
.site-header.is-open .menu-panel{display:block;animation:panel-in .22s var(--ease) both}
.site-header.is-closing .menu-panel{animation:panel-out .16s ease both}
@keyframes panel-in{from{opacity:0;transform:translateY(-8px)}}
@keyframes panel-out{to{opacity:0}}
.mp-inner{display:grid;grid-template-columns:minmax(0,4.4fr) minmax(0,2.2fr) minmax(0,2.4fr) minmax(0,2.8fr);gap:40px;max-width:1440px;margin-inline:auto;padding:34px var(--gutter) 40px}
.mp-label{margin-bottom:14px;font:400 13px/1.3 var(--text);color:var(--soft)}
.mp-big{display:grid;gap:2px}
.mp-big a{display:inline-block;padding:3px 0;font:800 40px/1 var(--display);text-transform:uppercase;letter-spacing:.005em;text-decoration:none}
.mp-big a[aria-current="page"],.mp-small a[aria-current="page"]{color:var(--accent-ink)}
@media (hover:hover) and (pointer:fine){.mp-big a:hover{color:var(--accent-ink)}}
.mp-small{display:grid;gap:12px;font:400 15px/1.35 var(--text)}
.mp-small a{text-decoration:none}
@media (hover:hover) and (pointer:fine){.mp-small a:hover{text-decoration:underline}}
.mp-card img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:10px;background:var(--blush)}
.mp-card figcaption{margin-top:10px;font:400 13px/1.4 var(--text);color:var(--soft)}
.mp-actions{display:none}
.menu-scrim{position:fixed;inset:0;z-index:40;background:rgba(43,33,26,.3);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
html.menu-open{overflow:hidden}
@media (min-width:900px) and (max-width:1180px){.bar-tel span,.bar-link--our-story{display:none}.bar-tel{justify-content:center;width:44px}.bar{gap:12px}.menu-toggle,.bar-link{padding:0 10px}}

/* phone: full-screen sheet, Apple-bar entry and exit, the same dark dock as the page */
@media (max-width:899px){
  .bar{gap:12px}
  .bar-link,.bar-end,.menu-toggle .i-chev{display:none}
  .bar-nav{margin:0 0 0 auto}
  .menu-toggle{padding:0 12px;border:1.5px solid var(--ink);gap:8px}
  .mt-wide{display:none}
  .mt-narrow{display:inline}
  .mt-icons{display:inline-block;position:relative;width:18px;height:18px}
  .mt-icons svg{position:absolute;inset:0;width:18px;height:18px;transition:opacity .2s var(--ease),transform .2s var(--ease)}
  .mt-icons .i-close{opacity:0;transform:rotate(-45deg)}
  .menu-toggle[aria-expanded="true"] .i-burger{opacity:0;transform:rotate(45deg)}
  .menu-toggle[aria-expanded="true"] .i-close{opacity:1;transform:none}
  .site-header.is-open .menu-panel{position:fixed;top:var(--header-h);bottom:0;overflow-y:auto;scroll-padding-block:12px calc(var(--sticky-action-h) + 20px + env(safe-area-inset-bottom));overscroll-behavior:contain;background:var(--ground);border:0;animation:sheet-in .26s var(--ease) both}
  .site-header.is-closing .menu-panel{animation:panel-out .16s ease both}
  .site-header.is-open:not(.is-closing) .mp-big li{animation:link-in .3s var(--ease) both;animation-delay:calc(var(--n,0) * 30ms + 40ms)}
  .mp-inner{display:grid;grid-template-columns:1fr 1fr;grid-template-areas:"main main" "a b" "act act";align-content:start;gap:26px 16px;padding:16px var(--gutter) 0}
  .mp-main{grid-area:main}
  .mp-main .mp-label,.mp-card{display:none}
  .mp-col:nth-of-type(2){grid-area:a}
  .mp-col:nth-of-type(3){grid-area:b}
  .mp-big a{font-size:clamp(34px,10.4vw,42px);padding:4px 0}
  .mp-small{gap:4px;font-size:15px}
  .mp-small a,.mp-small span{display:block;padding:12px 0}
  .mp-actions{grid-area:act;display:flex;gap:8px;position:sticky;bottom:0;margin:6px calc(-1 * var(--gutter)) 0;padding:8px 12px calc(8px + env(safe-area-inset-bottom));background:rgba(43,33,26,.96)}
  .mp-actions a{flex:1 1 0;display:flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 12px;border:1.5px solid rgba(246,239,225,.5);border-radius:4px;color:var(--ground);font:600 15px/1.2 var(--text);text-decoration:none}
  .mp-actions a svg{width:17px;height:17px}
  .mp-actions a.mp-offer{background:var(--accent);border-color:var(--accent);color:var(--ink)}
  .menu-scrim{display:none}
}
@keyframes sheet-in{from{opacity:0;transform:translateY(-12px)}}
@keyframes link-in{from{opacity:0;transform:translateY(-8px)}}
html:not(.js) .site-header:focus-within .menu-panel{display:block}

/* ---------- inner openings: text first, the full width ---------- */
.page-top{padding:calc(var(--header-h) + clamp(40px,5vw,84px)) 0 clamp(32px,4vw,56px)}
.page-top h1,.notfound h1{margin-top:14px;max-width:20ch;font:800 var(--d1)/.88 var(--display);text-transform:uppercase;letter-spacing:.003em;text-wrap:balance}
.page-top--long h1{max-width:26ch}
.page-top .lede{margin-top:22px}
.page-top .actions{margin-top:28px}
.photo-wide figcaption,.photo-bleed figcaption,.ph figcaption,.tile figcaption{margin-top:10px;font:400 14px/1.45 var(--text);color:var(--soft)}
.photo-wide{max-width:1440px;margin-inline:auto;padding-inline:var(--gutter)}
.photo-wide img{width:100%;aspect-ratio:16/8;object-fit:cover;border-radius:4px}
.photo-wide figcaption .wrap,.photo-bleed figcaption .wrap{padding-inline:0}
.photo-bleed img{width:100%;height:clamp(360px,62vh,720px);object-fit:cover}
.photo-bleed figcaption{max-width:1440px;margin-inline:auto;padding-inline:var(--gutter)}
.photo-band{margin-top:var(--section);background:var(--ink);color:var(--on-ink)}
.photo-band img{width:100%;height:clamp(320px,56vh,640px);object-fit:cover}
.photo-band figcaption{max-width:1440px;margin-inline:auto;padding:12px var(--gutter) 16px;font:400 14px/1.45 var(--text);color:var(--on-ink)}
.photo-band figcaption .wrap{padding-inline:0}
@media (max-width:899px){
  .page-top{padding-top:calc(var(--header-h) + 32px);padding-bottom:28px}
  .page-top .actions{margin-top:22px}
  .photo-wide{padding-inline:0}
  .photo-wide img{aspect-ratio:4/3;border-radius:0}
  .photo-wide figcaption{padding-inline:var(--gutter)}
  .photo-bleed img{height:auto;aspect-ratio:4/3}
}

/* ---------- inner openings, craft pass 02: each page opens on its own photographs, set like prints on the counter.
   Same grammar as the home counter (TOMO 5/7 split, one print crossing the seam, a Touchy-style label); the photos,
   crop, side and label are each page's own. ---------- */
.lead{padding-top:var(--header-h);background:var(--ground)}
.lead-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);min-height:clamp(520px,70svh,720px)}
.lead-copy{display:flex;flex-direction:column;justify-content:center;min-width:0;padding:clamp(36px,4vw,56px) clamp(84px,7.6vw,124px) clamp(36px,4vw,56px) max(var(--gutter),calc((100vw - 1440px) / 2 + var(--gutter)))}
.lead-copy h1{margin-top:14px;font:800 clamp(52px,5.2vw,84px)/.88 var(--display);text-transform:uppercase;letter-spacing:-.005em;text-wrap:balance}
.lead--long .lead-copy h1{font-size:clamp(40px,3.9vw,60px);line-height:.9}
.lead-copy .lede{margin-top:20px;max-width:34ch}
.lead-copy .actions{margin-top:26px;gap:12px 18px}
.lead-note{margin-top:16px;max-width:42ch;font-size:14px;line-height:1.5;color:var(--soft)}
.lead-stage{position:relative;min-width:0}
.lead-photo{position:absolute;inset:0;margin:0;overflow:hidden;background:var(--ink)}
.lead-photo > a{display:block;height:100%}
.lead-photo a:focus-visible{outline:3px solid var(--ink);outline-offset:-6px}
.lead-photo img{width:100%;height:100%;object-fit:cover}
.lead-inset{position:absolute;z-index:2;left:calc(-1 * clamp(56px,5.6vw,92px));bottom:clamp(28px,4.5vw,64px);width:clamp(180px,16vw,250px);margin:0;padding:8px 8px 0;background:var(--paper);box-shadow:0 18px 40px -18px rgba(43,33,26,.5);transform:rotate(-2deg)}
.lead-inset img{width:100%;aspect-ratio:var(--ar,3/4);object-fit:cover}
.lead-inset figcaption{padding:7px 2px 8px;font:600 12px/1.3 var(--text)}
.lead-tag{position:absolute;z-index:2;right:clamp(16px,2vw,28px);bottom:clamp(16px,2vw,28px);display:grid;gap:5px;max-width:calc(100% - 32px);padding:10px 14px 11px;background:var(--ground);color:var(--ink);border-radius:3px;box-shadow:0 16px 36px -20px rgba(43,33,26,.55)}
.lead-photo > a[data-zoom]{cursor:zoom-in}
.lt-top{font:600 11px/1.2 var(--text);letter-spacing:.12em;text-transform:uppercase;color:var(--soft)}
.lt-name{font:800 clamp(22px,2vw,32px)/.95 var(--display);text-transform:uppercase}
.notfound-lead h1 span{display:block;color:var(--accent-ink)}
/* flipped: the photograph leads from the left edge and the print crosses the seam the other way */
.lead--flip .lead-grid{grid-template-columns:minmax(0,7fr) minmax(0,5fr)}
.lead--flip .lead-stage{order:-1}
.lead--flip .lead-copy{padding:clamp(36px,4vw,56px) max(var(--gutter),calc((100vw - 1440px) / 2 + var(--gutter))) clamp(36px,4vw,56px) clamp(84px,7.6vw,124px)}
.lead--flip .lead-inset{left:auto;right:calc(-1 * clamp(56px,5.6vw,92px));transform:rotate(2deg)}
.lead--flip .lead-tag{right:auto;left:clamp(16px,2vw,28px)}
@media (min-width:900px) and (max-width:1180px){.lead-grid,.lead--flip .lead-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.lead-copy h1{font-size:clamp(46px,5.2vw,60px)}}
@media (max-width:899px){
  .lead-grid,.lead--flip .lead-grid{grid-template-columns:minmax(0,1fr);min-height:0}
  .lead-copy,.lead--flip .lead-copy{padding:28px var(--gutter) 24px}
  .lead--flip .lead-stage{order:0}
  .lead-copy h1{font-size:var(--d1)}
  .lead--long .lead-copy h1{font-size:clamp(32px,9vw,44px)}
  .lead-copy .lede{font-size:17px}
  .lead-stage{height:clamp(300px,82vw,460px)}
  .lead-inset,.lead--flip .lead-inset{left:12px;right:auto;bottom:12px;width:clamp(96px,30vw,150px);padding:4px;transform:rotate(-2deg)}
  .lead-inset figcaption{display:none}
  .lead-tag,.lead--flip .lead-tag{left:auto;right:12px;bottom:12px;padding:7px 10px 8px}
  .lt-top{font-size:9px;letter-spacing:.1em}
  .lt-name{font-size:20px}
}
@media (prefers-reduced-motion:no-preference){
  /* one short arrival, as on the home counter: the photograph settles, never hidden; the print rises */
  .lead-photo img{animation:lead-in 1.1s cubic-bezier(.16,1,.3,1) backwards}
  .lead-inset{animation:lead-rise .7s .3s cubic-bezier(.16,1,.3,1) backwards}
  .lead-tag{animation:lead-rise .5s .6s cubic-bezier(.16,1,.3,1) backwards}
  @keyframes lead-in{from{transform:scale(1.06);clip-path:inset(3% 0 0 0)}}
  @keyframes lead-rise{from{translate:0 22px}}
}

/* ---------- bands: one ground, spacing does the pacing ---------- */
.band{padding-top:var(--section)}
.band-title{margin-bottom:clamp(24px,3vw,44px);font:800 var(--d2)/.9 var(--display);text-transform:uppercase;text-wrap:balance}
.band .actions{margin-top:28px}
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,5vw,88px);align-items:start}
.split-copy > * + *{margin-top:24px}
.ph img{width:100%;aspect-ratio:var(--ar,4/3);object-fit:cover;border-radius:4px}
.duo{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,4vw,64px)}
.duo-item h3{margin-top:22px;font:800 var(--d3)/.92 var(--display);text-transform:uppercase}
.duo-item p{margin-top:10px;max-width:46ch;font-size:18px;color:var(--soft)}
.trio{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(16px,2.4vw,32px);margin-top:clamp(36px,4vw,64px)}
.trio .ph img{--ar:4/5}
@media (max-width:899px){
  .split,.duo{grid-template-columns:1fr}
  .trio{grid-template-columns:1fr 1fr;gap:12px}
}

/* owner words: one quote style, one display line */
.quote{max-width:62ch}
.quote p{font:400 clamp(19px,1.6vw,23px)/1.55 var(--text)}
.quote + .quote{margin-top:24px}
.band--pull .pull{max-width:22ch;font:800 var(--d2)/.92 var(--display);text-transform:uppercase;color:var(--accent-ink);text-wrap:balance}

/* facts on hairlines */
.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:0 32px}
.facts>div{padding:18px 0 22px;border-top:3px solid var(--ink)}
.facts dt{margin-bottom:8px;font:600 13px/1.3 var(--text);color:var(--soft)}
.facts dd{font-size:clamp(18px,1.5vw,21px);line-height:1.45}

/* the one question kept on /catering */
.faq{max-width:62ch;border-top:3px solid var(--ink)}
.faq details{border-bottom:1px solid var(--rule)}
.faq summary{display:flex;justify-content:space-between;align-items:center;gap:20px;min-height:64px;padding:16px 0;font:600 clamp(18px,1.6vw,22px)/1.35 var(--text);cursor:pointer;list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";flex:none;width:14px;height:14px;background:linear-gradient(var(--accent-ink),var(--accent-ink)) center/100% 2.5px no-repeat,linear-gradient(var(--accent-ink),var(--accent-ink)) center/2.5px 100% no-repeat;transition:transform .2s var(--ease)}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{padding:0 0 22px;font-size:18px;color:var(--soft)}

/* rows (form fields list) */
.rows{border-top:3px solid var(--ink)}
.rows li{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:6px 32px;padding:18px 0 20px;border-bottom:1px solid var(--rule)}
.rows strong{font:800 var(--d4)/1 var(--display);text-transform:uppercase}
.rows span{font-size:17px;color:var(--soft)}
@media (max-width:699px){.rows li{grid-template-columns:1fr}}

/* /contact: one destination per row */
.routes{border-top:3px solid var(--ink)}
.routes > li{border-bottom:1px solid var(--rule)}
.route{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"t a" "s a";align-items:center;gap:4px 16px;min-height:72px;padding:14px 0;text-decoration:none}
.route strong{grid-area:t;font:800 var(--d4)/1 var(--display);text-transform:uppercase}
.route > span{grid-area:s;font-size:16px;color:var(--soft)}
.route > svg{grid-area:a;width:20px;height:20px;transition:transform .2s var(--ease)}
@media (hover:hover) and (pointer:fine){a.route:hover > svg{transform:translateX(4px)}a.route:hover strong{color:var(--accent-ink)}}
.route--split{grid-template-areas:"t a" "s a"}
.route > .route-acts{grid-area:a;display:flex;gap:8px}
.route-acts .btn{min-height:48px;padding:0 16px}

/* ---------- the sample bill (/menu/) ---------- */
.bill-top{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:clamp(32px,6vw,104px);align-items:end;padding-top:calc(var(--header-h) + clamp(40px,5vw,80px))}
.bill-top h1{margin:14px 0 18px;font:800 var(--d1)/.88 var(--display);text-transform:uppercase}
.bill-tools{display:grid;gap:18px;justify-items:start}
.jump{display:flex;gap:10px}
.jump a{display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:0 10px 0 16px;border:2px solid var(--ink);border-radius:4px;font:800 20px/1 var(--display);text-transform:uppercase;text-decoration:none}
.jump span{display:inline-grid;place-items:center;min-width:26px;height:26px;border-radius:3px;background:var(--ink);color:var(--ground);font:600 13px/1 var(--text)}
@media (hover:hover) and (pointer:fine){.jump a:hover{background:var(--accent);border-color:var(--accent)}}
.bill-cols{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,6vw,104px);margin-top:clamp(40px,5vw,72px)}
.bill-season{scroll-margin-top:calc(var(--header-h) + 12px)}
.bill-s{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:14px 0;border-top:4px solid var(--ink);border-bottom:1px solid var(--rule);font:800 var(--d4)/1 var(--display);text-transform:uppercase}
.bill-s span{font:400 14px/1 var(--text);text-transform:none;color:var(--soft)}
.bill-item{padding:26px 0 28px;border-bottom:1px solid var(--rule)}
.bill-h{font-size:inherit}
.bill-name{display:inline-flex;align-items:baseline;gap:12px;color:var(--ink);font:800 var(--d3)/.94 var(--display);text-transform:uppercase;letter-spacing:.012em;text-decoration:none}
.bill-go svg{width:.5em;height:.5em;opacity:.5;transition:opacity .2s var(--ease),transform .2s var(--ease)}
.bill-name:hover .bill-go svg,.bill-name:focus-visible .bill-go svg{opacity:1;transform:translateX(3px)}
@media (hover:hover) and (pointer:fine){.bill-name:hover{color:var(--accent-ink)}}
.bill-line{margin-top:12px;max-width:52ch;font-size:18px;line-height:1.62;color:var(--soft)}
@media (max-width:899px){
  .bill-top{grid-template-columns:1fr;padding-top:calc(var(--header-h) + 28px)}
  .bill-top h1{margin:10px 0 14px}
  .bill-tools{margin-top:18px}
  .bill-cols{grid-template-columns:1fr;gap:48px;margin-top:28px}
  .bill-item{padding:20px 0 22px}
  .bill-line{font-size:17px}
}

/* ---------- /photos: small title, three short runs ---------- */
.photos-top{padding:calc(var(--header-h) + clamp(28px,3vw,48px)) 0 0}
/* small for an H1 (D2, not D1), but never smaller than the close's D2 heading below it */
.photos-top h1{margin-top:8px;font:800 var(--d2)/.9 var(--display);text-transform:uppercase}
.photos-top .lede{margin-top:16px}
.album-jump{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}
.album-jump a{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 14px;border:1.5px solid var(--ink);border-radius:999px;font:600 15px/1 var(--text);text-decoration:none}
.album-jump a span{color:var(--soft);font-weight:400}
@media (hover:hover) and (pointer:fine){.album-jump a:hover{background:var(--ink);color:var(--ground)}.album-jump a:hover span{color:var(--on-ink)}}

/* ---------- albums (/photos, /our-story): one even grid, every photo opens full size ---------- */
.run{padding-top:clamp(44px,5vw,72px);scroll-margin-top:calc(var(--header-h) + 8px)}
.run-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:18px;padding-top:14px;border-top:3px solid var(--ink)}
.run-title{font:800 var(--d4)/1 var(--display);text-transform:uppercase}
.run-count{font-size:14px;color:var(--soft)}
.album{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:clamp(260px,25vw,420px);grid-auto-flow:dense;gap:clamp(10px,1.2vw,18px)}
.album--four{grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:clamp(220px,21vw,360px)}
.shot{position:relative;min-width:0;min-height:0;margin:0}
.shot--wide{grid-column:span 2}
.shot > a{position:relative;display:block;height:100%;overflow:hidden;border-radius:3px;background:var(--blush);cursor:zoom-in}
.shot img{width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.16,1,.3,1)}
.shot figcaption{position:absolute;left:0;right:0;bottom:0;padding:28px 12px 10px;border-radius:0 0 3px 3px;background:linear-gradient(transparent,rgba(43,33,26,.72));color:var(--ground);font:600 13px/1.35 var(--text);pointer-events:none}
.shot > a:focus-visible{outline:3px solid var(--ink);outline-offset:3px}
/* the enlarge cue on every enlargeable photo: a quiet corner mark (drawn in CSS), always there on touch,
   on hover/focus with a mouse */
a[data-zoom]{position:relative;display:block;cursor:zoom-in}
a[data-zoom]::after{content:"";position:absolute;top:10px;right:10px;z-index:2;width:32px;height:32px;border-radius:50%;background:rgba(251,248,241,.92) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M9 15A6 6 0 1 0 9 3a6 6 0 0 0 0 12Zm8 2-3.8-3.8M9 6.5v5M6.5 9h5' fill='none' stroke='%232b211a' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E") center/16px no-repeat;pointer-events:none}
@media (hover:hover) and (pointer:fine){
  a[data-zoom]::after{opacity:0;transform:scale(.9);transition:opacity .2s var(--ease),transform .2s var(--ease)}
  a[data-zoom]:hover::after,a[data-zoom]:focus-visible::after{opacity:1;transform:none}
  .shot > a:hover img{transform:scale(1.03)}
}
@media (max-width:899px){
  .album,.album--four{grid-template-columns:1fr 1fr;grid-auto-rows:clamp(170px,50vw,320px);gap:8px}
  .shot figcaption{padding:22px 8px 7px;font-size:12px}
  a[data-zoom]::after{top:7px;right:7px;width:28px;height:28px;background-size:14px}
}

/* ---------- full-size viewer (dialog): original aspect, never cropped ---------- */
.lb{position:fixed;inset:0;width:100%;max-width:none;height:100%;max-height:none;margin:0;padding:0;border:0;background:rgba(24,18,14,.96);color:var(--ground);overflow:hidden}
.lb::backdrop{background:rgba(24,18,14,.6)}
.lb[open]{display:grid;grid-template-rows:auto minmax(0,1fr) auto}
html.lb-open{overflow:hidden}
.lb-top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px clamp(10px,2vw,24px)}
.lb-count{font:600 13px/1 var(--text);letter-spacing:.06em;color:var(--on-ink);font-variant-numeric:tabular-nums}
.lb-tools{display:flex;gap:8px}
.lb-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-width:44px;min-height:44px;padding:0 14px;border:1.5px solid rgba(246,239,225,.4);border-radius:999px;background:transparent;color:var(--ground);font:600 14px/1 var(--text);text-decoration:none;cursor:pointer}
.lb-btn svg{width:16px;height:16px}
.lb-btn[aria-pressed="true"]{background:var(--ground);color:var(--ink)}
.lb-close{background:var(--ground);color:var(--ink);border-color:var(--ground)}
.lb :focus-visible{outline:3px solid var(--accent);outline-offset:2px}
@media (hover:hover) and (pointer:fine){.lb-btn:hover{border-color:var(--ground)}}
.lb-stage{position:relative;display:grid;place-items:center;min-height:0;overflow:hidden;padding:0 clamp(56px,6vw,96px);touch-action:pan-y pinch-zoom}
.lb-img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;cursor:zoom-in;user-select:none;-webkit-user-drag:none}
.lb.is-zoomed .lb-stage{display:block;overflow:auto;padding:0;touch-action:auto;cursor:zoom-out}
.lb.is-zoomed .lb-img{max-width:none;max-height:none;cursor:zoom-out}
.lb-nav{position:absolute;top:50%;z-index:2;display:grid;place-items:center;width:48px;height:48px;margin-top:-24px;border:0;border-radius:50%;background:rgba(251,248,241,.94);color:var(--ink);cursor:pointer}
.lb-nav svg{width:20px;height:20px}
.lb-prev{left:clamp(6px,1.4vw,24px)}
.lb-next{right:clamp(6px,1.4vw,24px)}
.lb.is-zoomed .lb-nav,.lb.is-single .lb-nav{display:none}
.lb-cap{min-height:44px;padding:10px clamp(16px,4vw,48px) calc(14px + env(safe-area-inset-bottom));text-align:center;font-size:15px;line-height:1.4;color:var(--on-ink)}
@media (max-width:899px){
  .lb-stage{padding:0}
  .lb-nav{top:auto;bottom:calc(64px + env(safe-area-inset-bottom));margin:0;width:44px;height:44px}
  .lb-btn .lb-wide{display:none}
}
@media (prefers-reduced-motion:no-preference){.lb[open] .lb-img{animation:lb-in .28s cubic-bezier(.16,1,.3,1)}@keyframes lb-in{from{opacity:.3;transform:scale(.985)}}}

/* ---------- /our-story: Sisters → Concept → Origins, one reading column and generous photos ---------- */
.chapters{display:flex;flex-wrap:wrap;gap:8px 22px;padding:16px 0;border-bottom:1px solid var(--rule);font:600 15px/1.2 var(--text)}
.chapters a{display:inline-flex;align-items:center;gap:8px;min-height:44px;text-decoration:none}
.chapters a span{color:var(--accent-ink);font-variant-numeric:tabular-nums}
@media (hover:hover) and (pointer:fine){.chapters a:hover{text-decoration:underline;text-decoration-color:var(--accent)}}
.chapter{padding-top:var(--section);scroll-margin-top:calc(var(--header-h) + 8px)}
.chapter-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(28px,5vw,88px);align-items:start}
.chapter-grid--flip > .chapter-copy{order:2}
.chapter-label{font:600 13px/1.3 var(--text);letter-spacing:.08em;text-transform:uppercase;color:var(--accent-ink)}
.chapter-copy h2{margin:10px 0 20px;font:800 var(--d2)/.92 var(--display);text-transform:uppercase}
.chapter-copy p{max-width:60ch;font-size:clamp(17px,1.3vw,19px);line-height:1.65}
.chapter-copy p + p{margin-top:16px}
.chapter-photo{margin:0}
.chapter-photo > a{position:relative;display:block;overflow:hidden;border-radius:3px;cursor:zoom-in}
.chapter-photo img{width:100%;height:auto;max-height:min(76vh,720px);object-fit:cover}
.chapter-photo figcaption{margin-top:10px;font-size:14px;color:var(--soft)}
.origins-wide{margin-top:clamp(32px,4vw,56px)}
.origins-wide img{width:100%;max-height:82vh;object-fit:contain;background:var(--paper)}
.story-close{margin-top:clamp(32px,4vw,52px)}
@media (max-width:899px){
  .chapter-grid{grid-template-columns:1fr;gap:22px}
  .chapter-grid--flip > .chapter-copy{order:0}
  .chapter-copy h2{margin-bottom:14px}
  .chapters{gap:4px 16px;font-size:14px}
}

/* ---------- Set the table (/caterings/, borrowed from T3): the builder is the first screen ---------- */
.set{padding-top:calc(var(--header-h) + clamp(32px,4vw,64px))}
.set-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(20px,3vw,48px);align-items:start}
.set-main h1{margin:12px 0 clamp(20px,2.4vw,32px);font:800 var(--d1)/.88 var(--display);text-transform:uppercase}
.set-pad{display:grid;gap:20px;padding:clamp(20px,2.8vw,40px);background:var(--paper);border:1px solid var(--rule);border-radius:4px}
.sp-row{display:grid;justify-items:start;gap:10px;padding-bottom:20px;border-bottom:1px solid var(--rule)}
.sp-label{font:800 var(--d4)/1 var(--display);text-transform:uppercase}
.stepper{display:grid;grid-template-columns:52px 104px 52px;border:2px solid var(--ink);border-radius:4px;overflow:hidden}
.step{display:grid;place-items:center;height:52px;padding:0;border:0;background:var(--paper);cursor:pointer}
.step svg{width:18px;height:18px}
@media (hover:hover) and (pointer:fine){.step:hover{background:var(--blush)}}
.count{width:100%;height:52px;padding:0;border:0;border-inline:2px solid var(--ink);border-radius:0;background:var(--paper);text-align:center;font:800 30px/1 var(--display);-moz-appearance:textfield;appearance:textfield}
.count::-webkit-inner-spin-button,.count::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.formats{display:grid;grid-template-columns:1fr 1fr;gap:10px;width:100%}
.format{display:grid;align-content:start;gap:4px;padding:14px 16px;border:2px solid var(--rule);border-radius:4px;background:var(--paper);text-align:left;cursor:pointer;transition:background-color .2s var(--ease),border-color .2s var(--ease)}
.format strong{font:800 26px/1 var(--display);text-transform:uppercase}
.format span{font-size:14px;line-height:1.35;color:var(--soft)}
.format[aria-pressed="true"]{border-color:var(--ink);background:var(--accent)}
.format[aria-pressed="true"] span{color:var(--ink)}
@media (hover:hover) and (pointer:fine){.format:not([aria-pressed="true"]):hover{border-color:var(--ink)}}
.date-control{position:relative;width:min(100%,260px)}
.date{display:block;min-height:48px;width:100%;padding:0 12px;border:2px solid var(--ink);border-radius:4px;background:var(--paper);font:400 17px/1.2 var(--text);appearance:none;-webkit-appearance:none}
.date::-webkit-date-and-time-value{text-align:left}
.date-hint{display:block;margin-top:8px;color:var(--soft);font-size:14px;line-height:1.4}
.date-control[data-empty="false"] .date-hint{display:none}
.flag{padding:8px 12px;border-left:4px solid var(--accent-ink);background:var(--blush);font-weight:600}
.sp-facts{display:grid;gap:8px;font-size:15.5px;line-height:1.45;color:var(--soft)}
.sp-facts li{position:relative;padding-left:18px}
.sp-facts li::before{content:"";position:absolute;left:2px;top:.55em;width:7px;height:7px;border-radius:50%;background:var(--rule)}
.sp-facts li.is-on{color:var(--ink);font-weight:600}
.sp-facts li.is-on::before{background:var(--accent-ink)}
.sp-out{padding:14px 16px;border-left:5px solid var(--accent);background:var(--ground);font:600 18px/1.4 var(--text)}
.sp-send{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px}
.sp-nosend{font-size:14.5px;color:var(--soft)}
.sp-note{font-size:15px;color:var(--soft)}
.sp-note .link{color:var(--ink)}
.set-photo img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:4px;animation:tray-in .35s var(--ease)}
.set-photo figcaption{min-height:3em;margin-top:10px;font-size:14px;line-height:1.5;color:var(--soft)}
@keyframes tray-in{from{opacity:.25}}
@media (max-width:899px){
  .set{padding-top:calc(var(--header-h) + 28px)}
  .set-grid{grid-template-columns:1fr}
  .set-photo img{aspect-ratio:16/10}
  .set-pad{gap:16px;padding:18px 16px}
  .format{padding:12px}
  .format strong{font-size:22px}
}

/* ---------- 404: the deliberate exception to the scale ---------- */
.notfound{display:grid;align-content:center;min-height:72svh;padding:calc(var(--header-h) + 48px) 0 0}
.notfound h1{font-size:clamp(64px,13vw,200px);line-height:.84;max-width:none}
.notfound h1 span{display:block;color:var(--accent-ink)}
.notfound .lede{margin-top:18px}
.notfound .actions{margin-top:24px}

/* ---------- one dark close: the hours as billing, the facts once, the links, owner phrase 1 last ---------- */
/* sleek 04: a modest close, not a second hero. Logo + one line, the facts once, the links in one block. */
/* sleek 04 recovery: the operator asked for a quiet cream close, one divider, readable text, no poster type. */
.site-footer{background:var(--ground);color:var(--ink);border-top:1px solid var(--rule);padding:clamp(40px,4.5vw,64px) 0 clamp(24px,3vw,36px)}
.foot{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,5fr) minmax(0,4fr);gap:28px clamp(24px,4vw,64px);align-items:start}
.foot-logo{width:138px;height:auto}
.foot-line{margin-top:12px;max-width:24ch;font-size:15px;line-height:1.5;color:var(--soft)}
.foot-title{margin-bottom:14px;font:600 13px/1.3 var(--text);letter-spacing:.08em;text-transform:uppercase;color:var(--accent-ink)}
.foot-facts{display:grid;gap:14px}
.foot-facts dt{font:600 12px/1.3 var(--text);letter-spacing:.06em;text-transform:uppercase;color:var(--soft)}
.foot-facts dd{margin-top:3px;font-size:16px;line-height:1.5}
.foot-facts a{text-decoration-color:var(--accent)}
.foot-links{display:grid;grid-template-columns:1fr 1fr;gap:0 24px;align-content:start}
.foot-links a{display:block;padding:6px 0;font-size:15.5px;text-decoration:none;color:var(--ink)}
@media (hover:hover) and (pointer:fine){.foot-links a:hover{text-decoration:underline;text-decoration-color:var(--accent)}}
.site-footer :focus-visible{outline-color:var(--accent-ink)}
.foot-note{grid-column:1 / -1;padding-top:18px;border-top:1px solid var(--rule);font-size:13.5px;line-height:1.5;color:var(--soft)}
@media (max-width:899px){
  .foot{grid-template-columns:1fr;gap:26px}
  .foot-logo{width:124px}
  .foot-links a{padding:11px 0;min-height:44px}
}

/* ---------- sticky Call + Order (phones) ---------- */
.sticky-action{position:fixed;left:0;right:0;bottom:0;z-index:45;display:flex;gap:8px;min-height:var(--sticky-action-h);padding:8px 12px calc(8px + env(safe-area-inset-bottom));background:rgba(43,33,26,.96);transition:transform .25s ease,opacity .25s ease}
.sticky-action a{flex:1 1 0;display:flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 12px;border:1.5px solid rgba(246,239,225,.5);border-radius:4px;color:var(--ground);font:600 15px/1.2 var(--text);text-decoration:none}
.sticky-action a svg{width:17px;height:17px}
.sticky-action a.sticky-action__offer{background:var(--accent);border-color:var(--accent);color:var(--ink)}
.menu-toggle,.mp-actions a,.sticky-action a{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
.sticky-action[data-state="hidden"]{transform:translateY(110%);opacity:0;pointer-events:none}
/* the dock's reserved space belongs to the footer's own ink, never a cream strip */
/* The phone header already keeps Call and the menu available. Leave the page unobscured. */
@media (max-width:899px){.date-control{width:100%}.sticky-action{display:none}html.has-sticky-action{scroll-padding-bottom:16px}html.has-sticky-action .site-footer{padding-bottom:calc(32px + env(safe-area-inset-bottom))}}
@media (min-width:900px){.sticky-action{display:none}}

/* ---------- reduced motion: still and complete ---------- */
@media (prefers-reduced-motion:reduce){
  .site-header.is-open .menu-panel,.site-header.is-closing .menu-panel,.site-header.is-open .mp-big li,.set-photo img{animation:none!important}
  .btn,.format,.sticky-action,.menu-toggle svg,.mt-icons svg,.faq summary::after,.link svg,.route > svg,.bill-go svg,.shot img,.zoom-cue{transition:none}
  .shot > a:hover img{transform:none}
}
/* featured05: Google photos link, contact map + outside view */
.g-photos{display:flex;flex-wrap:wrap;align-items:center;gap:12px 16px;margin-top:24px;font:400 15px/1.45 var(--text);color:var(--soft)}
.find{padding-block:var(--section);border-top:1px solid var(--rule);scroll-margin-top:var(--header-h)}
.find-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:12px 32px;margin-bottom:32px}
.find-head h2{font:800 var(--d2)/.95 var(--display);text-transform:uppercase;margin:0}
.find-head p{margin:0;max-width:52ch;font:400 17px/1.5 var(--text)}
.find-head a{text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:.25em}
.find-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.find-frame{margin:0;min-width:0}
.find-frame iframe{display:block;width:100%;aspect-ratio:4/3;border:0;background:var(--blush)}
.find-frame figcaption{margin-top:10px;font:400 14px/1.45 var(--text);color:var(--soft)}
.find-frame figcaption a{color:var(--ink);font-weight:600;text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:.25em}
@media (max-width:899px){.find-grid{grid-template-columns:minmax(0,1fr)}.find-frame iframe{aspect-ratio:1/1}}

/* finish07: a quiet optional email draft, with native controls and visible focus. */
.email-request{margin-block:clamp(32px,5vw,64px)}
.email-request details{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);padding-block:20px}
.email-request summary{cursor:pointer;min-height:44px;font:600 18px/1.5 var(--text);padding-block:8px}
.email-request details > p{max-width:60ch;margin-block:12px 24px;font:400 16px/1.55 var(--text);color:var(--soft)}
.email-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 28px;max-width:800px}
.email-fields label{display:grid;gap:8px;min-width:0;font:600 14px/1.4 var(--text)}
.email-fields input,.email-fields select{min-width:0;width:100%;min-height:48px;padding:10px 12px;border:1px solid var(--rule);border-radius:2px;background:var(--paper);color:var(--ink);font:400 16px/1.4 var(--text)}
.email-fields :focus-visible{outline:2px solid var(--accent-ink);outline-offset:3px}
.email-hint{margin-block:16px;font:400 14px/1.5 var(--text);color:var(--soft)}
.email-request [aria-disabled="true"]{opacity:.65}
.foot-links a{min-height:44px;display:flex;align-items:center}
@media(max-width:599px){.email-fields{grid-template-columns:minmax(0,1fr)}}

/* Request first: a short handoff to Poppy, distinct from the catering photo page. */
.request-intro{padding-top:var(--header-h)}
.request-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:28px clamp(32px,4vw,56px);max-width:1440px;align-items:center;padding-block:clamp(44px,5vw,72px)}
.request-copy{grid-column:1;grid-row:1}
.request-photo{grid-column:2;grid-row:1;margin:0;align-self:center;transform:rotate(1deg);padding:8px 8px 0;background:var(--paper)}
.request-photo a{display:block;cursor:zoom-in}
.request-photo img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;object-position:50% 30%}
.request-photo figcaption{margin:0;padding:10px 4px 12px;font:400 14px/1.5 var(--text);color:var(--soft)}
.request-copy h1{font:800 clamp(56px,5.8vw,88px)/.9 var(--display);text-transform:uppercase;margin:18px 0 22px;text-wrap:balance;max-width:11ch}
.request-copy .lede{max-width:38ch}
.request-copy .actions{margin-top:28px}
.request-copy .lead-note{max-width:52ch}
.request-ready{grid-column:1;grid-row:2;align-self:start;border-top:3px solid var(--accent-ink);padding-top:20px}
.request-ready h2{font:800 var(--d3)/1 var(--display);text-transform:uppercase;margin-bottom:20px}
.request-ready ol{list-style:none;counter-reset:request;display:grid;gap:0}
.request-ready li{counter-increment:request;display:grid;grid-template-columns:24px 1fr;gap:14px;padding:16px 0;border-top:1px solid var(--rule);font:400 16px/1.55 var(--text);color:var(--soft)}
.request-ready li::before{content:"0" counter(request);font:600 12px/1.5 var(--text);color:var(--accent-ink);padding-top:3px}
.request-ready strong{display:block;color:var(--ink);font-weight:600}
body[data-page="caterings"] .email-request{margin-top:0;margin-bottom:clamp(40px,5vw,64px)}
.email-request summary{display:flex;align-items:center;justify-content:space-between;gap:20px;list-style:none}
.email-request summary::-webkit-details-marker{display:none}
.email-request summary::after{content:"";flex:none;width:14px;height:14px;background:linear-gradient(var(--accent-ink),var(--accent-ink)) center/100% 2px no-repeat,linear-gradient(var(--accent-ink),var(--accent-ink)) center/2px 100% no-repeat}
.email-request details[open] summary::after{transform:rotate(45deg)}
.catering-faq{padding-bottom:clamp(56px,6vw,88px)}
.catering-faq .split{grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:clamp(28px,4vw,64px)}
.catering-faq .band-title{max-width:10ch;margin-bottom:20px}
.catering-faq .faq{max-width:none}
.catering-faq .split-copy p{max-width:30ch;font:400 17px/1.5 var(--text);color:var(--soft)}
.catering-faq .split-copy .link{margin-top:16px}
body[data-page="catering"] main{padding-bottom:0}
body[data-page="caterings"] main{padding-bottom:0}
@media(max-width:899px){
  .request-grid,.catering-faq .split{grid-template-columns:minmax(0,1fr);gap:32px}
  .request-copy,.request-photo,.request-ready{grid-column:1;grid-row:auto}
  .request-photo{transform:none}
  .request-photo img{aspect-ratio:4/3;object-position:50% 30%}
  .request-copy h1{font-size:clamp(52px,15vw,72px)}
  .request-grid{padding-block:36px}
  .request-ready li{padding-block:12px}
}

/* Catering carries the same photographic seam, clear of copy and food. */
@media(min-width:900px){[data-page="catering"] .lead-inset{top:32px;bottom:auto;width:clamp(180px,16vw,230px)}[data-page="catering"] .lead-inset img{aspect-ratio:3/4;object-position:50% 30%}}
@media(max-width:899px){[data-page="catering"] .lead-inset{display:none}}

/* Composition04: catering is presented as photographs and an order sheet. */
.catering-formats .duo{align-items:center}
.catering-formats .format-print{padding:8px 8px 0;background:var(--paper);transform:rotate(2deg);box-shadow:0 16px 32px -22px rgba(43,33,26,.45)}
.catering-formats .format-print img{border-radius:0}
.catering-formats .format-print figcaption{margin:0;padding:10px 4px 12px}
.catering-prep-head{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:end;gap:20px 56px;margin-bottom:28px}
.catering-prep-head .band-title{margin:0;max-width:12ch}
.catering-prep-head .lede{max-width:42ch;margin:0}
.catering-prep .rows{counter-reset:request-field}
.catering-prep .rows li{grid-template-columns:minmax(180px,4fr) minmax(0,8fr);gap:16px 56px;counter-increment:request-field}
.catering-prep .rows strong::before{content:counter(request-field,decimal-leading-zero);display:inline-block;min-width:28px;margin-right:16px;color:var(--accent-ink);font:600 13px/1.4 var(--text);vertical-align:middle}
.catering-prep .prep-link{margin-top:22px}
@media(min-width:900px){
 .catering-formats .duo{grid-template-columns:minmax(0,8fr) minmax(0,4fr);gap:clamp(40px,5vw,72px)}
 .catering-formats .duo-item:last-child{width:min(100%,420px);justify-self:end}
 .catering-formats .duo-item:first-child .ph img{aspect-ratio:3/2}
}
@media(max-width:899px){
 .catering-formats .duo{grid-template-columns:minmax(0,1fr);gap:40px}
 .catering-formats .format-print{padding:0;background:none;transform:none;box-shadow:none}
 .catering-formats .format-print figcaption{margin-top:10px;padding:0}
 .catering-prep-head{grid-template-columns:minmax(0,1fr);gap:16px;margin-bottom:24px}
 .catering-prep .rows li{grid-template-columns:minmax(0,1fr);gap:10px;padding-block:20px}
}

/* /menu/ page layer: the shared Poppy header, footer and type tokens stay in poppy.css. */

.menu-page{padding-bottom:clamp(72px,10vw,144px)}
.menu-hero{padding:calc(var(--header-h) + 28px) 0 24px;background:var(--paper)}
.menu-hero__grid{display:grid;grid-template-columns:minmax(0,1fr) clamp(260px,26vw,380px);gap:clamp(40px,5vw,88px);align-items:center}
.menu-hero__copy{min-width:0}
.menu-hero h1{margin:12px 0;font:800 clamp(64px,7vw,100px)/.9 var(--display);letter-spacing:.003em;text-transform:uppercase}
.menu-hero__lede{max-width:50ch;font:400 17px/1.4 var(--text)}
.menu-hero__actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px;margin-top:20px}
.menu-hero__actions .stamp{width:100%;max-width:max-content}
.menu-jump{display:flex;flex-wrap:wrap;gap:7px}
html.js .menu-jump{display:none}
.menu-jump a{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:8px 11px;border:1.5px solid var(--ink);border-radius:4px;font:600 14px/1 var(--text);text-decoration:none}
.menu-jump a span{display:inline-grid;place-items:center;min-width:21px;height:21px;border-radius:3px;background:var(--ink);color:var(--ground);font-size:12px}
.menu-jump a:hover{background:var(--accent);border-color:var(--accent)}
/* craft pass 02: the cast photo is a print laid on the bill (paper border, -1.5deg), not a thumbnail */
.menu-hero__media{margin:0 0 -8px;padding:8px 8px 0;background:var(--ground);box-shadow:0 18px 40px -18px rgba(43,33,26,.45);transform:rotate(-1.5deg)}
.menu-hero__media>a{display:block}
.menu-hero__media a:focus-visible{outline:3px solid var(--ink);outline-offset:4px}
.menu-hero__media img{width:100%;aspect-ratio:4/5;object-fit:cover}
.menu-hero__media figcaption{padding:8px 2px 9px;color:var(--ink);font:600 13px/1.3 var(--text)}
.menu-hero__media > a{position:relative;cursor:zoom-in}
.menu-hero__media{transform:none}
.menu-hero__actions .btn svg{width:18px;height:18px}
.menu-status{width:100%;max-width:56ch;font-size:14px;line-height:1.5;color:var(--soft)}
/* the current menu, shown on the page on wide screens (on request), always one tap from full size */
.pdf-view{margin-top:20px}
.pdf-view[hidden]{display:none}
.pdf-frame{display:block;width:100%;height:min(86vh,1100px);border:1.5px solid var(--ink);border-radius:3px;background:var(--ground)}
.pdf-note{margin-top:10px;font-size:14px;color:var(--soft)}
.pdf-show{min-height:44px;padding:10px 0;border:0;background:none;color:var(--ink);font:600 15px/1.3 var(--text);text-decoration:underline;text-decoration-color:var(--accent);text-decoration-thickness:2px;text-underline-offset:.3em;cursor:pointer}
.pdf-show[hidden]{display:none}
.pdf-show:focus-visible{outline:3px solid var(--ink);outline-offset:3px}
/* food photos on the menu page: four generous frames, each opens full size */
.menu-photos{padding-top:clamp(40px,5vw,72px)}
.menu-photos__head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:6px 20px;padding-bottom:16px}
.menu-photos__head h2{font:800 var(--d4)/1 var(--display);text-transform:uppercase}
.menu-photos__head p{color:var(--soft);font-size:15px}
.menu-photos__row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(10px,1.2vw,18px)}
.menu-photos figure{margin:0}
.menu-photos a{display:block;cursor:zoom-in;border-radius:3px;overflow:hidden}
.menu-photos a:focus-visible{outline:3px solid var(--ink);outline-offset:3px}
.menu-photos img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;transition:transform .5s var(--ease)}
@media (hover:hover) and (pointer:fine){.menu-photos a:hover img{transform:scale(1.03)}}
.menu-photos figcaption{padding-top:8px;font-size:14px;line-height:1.4;color:var(--soft)}
.menu-index{padding-top:clamp(48px,6vw,88px)}
.menu-sample-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:12px 48px;align-items:end;padding-bottom:8px}
.menu-sample-head h2{font:800 var(--d3,clamp(36px,4vw,56px))/.95 var(--display);text-transform:uppercase}
.menu-index__note{max-width:60ch;color:var(--soft);font-size:16px;line-height:1.55}
.menu-back{margin-top:32px}
.menu-tools{display:none}
html.js .menu-tools{display:grid;grid-template-columns:auto minmax(220px,1fr) auto;gap:12px 18px;align-items:center;padding:20px 0;border-bottom:1px solid var(--rule)}
.menu-filters{display:flex;flex-wrap:wrap;gap:6px}
.menu-filter,.menu-reset{min-height:44px;padding:8px 13px;border:1.5px solid var(--ink);border-radius:4px;background:transparent;color:var(--ink);font:600 14px/1 var(--text);cursor:pointer}
.menu-filter{display:inline-flex;align-items:center;gap:8px}
.menu-filter span{display:inline-grid;place-items:center;min-width:21px;height:21px;border-radius:3px;background:var(--ink);color:var(--ground);font-size:12px}
.menu-filter.is-active,.menu-filter:hover,.menu-reset:hover{background:var(--accent);border-color:var(--accent)}
.menu-filter:focus-visible,.menu-reset:focus-visible,.menu-search input:focus-visible{outline:3px solid var(--ink);outline-offset:3px}
.menu-search{display:flex;align-items:center;gap:10px;min-height:48px;padding:0 13px;border:1.5px solid var(--ink);border-radius:4px;background:var(--ground)}
.menu-search span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
.menu-search input{width:100%;min-width:0;padding:0;border:0;outline:0;background:transparent;color:var(--ink);font:400 15px/1.2 var(--text)}
.menu-reset:disabled{opacity:.42;cursor:default}
.menu-count{grid-column:1 / -1;color:var(--soft);font-size:14px;line-height:1.3}
.menu-empty{max-width:58ch;margin:24px 0 0;padding:18px 20px;border:1.5px solid var(--ink);background:var(--blush);font-size:16px}
.menu-season{margin-top:24px;scroll-margin-top:calc(var(--header-h) + 16px)}
.menu-season[hidden]{display:none}
.menu-season__head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:14px 0 16px;border-top:4px solid var(--ink);border-bottom:1px solid var(--rule)}
.menu-season__head h3{font:800 var(--d4)/1 var(--display);letter-spacing:.01em;text-transform:uppercase}
.menu-season__head span{color:var(--soft);font-size:14px}
.menu-list{max-width:100%;margin:0;list-style:none}
.menu-item{border-bottom:1px solid var(--rule)}
.menu-item[hidden]{display:none}
.menu-item details{margin:0}
.menu-item summary{display:grid;grid-template-columns:clamp(32px,4vw,60px) minmax(0,1fr) auto 24px;align-items:center;gap:16px;min-height:72px;padding:14px 0;cursor:pointer;list-style:none}
.menu-item summary::-webkit-details-marker{display:none}
.menu-number{color:var(--accent-ink);font:600 14px/1 var(--text);font-variant-numeric:tabular-nums}
.menu-name{color:var(--ink);font:800 clamp(24px,2.3vw,36px)/.95 var(--display);letter-spacing:.01em;text-decoration:none;text-transform:uppercase;text-wrap:balance}
.menu-name:hover{color:var(--accent-ink)}
.menu-item-season{color:var(--soft);font-size:13px;text-transform:uppercase;letter-spacing:.08em}
.menu-chevron{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--accent);font:600 18px/1 var(--text);transition:transform .2s var(--ease)}
.menu-item details[open] .menu-chevron{transform:rotate(90deg)}
.menu-detail{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:end;padding:0 40px 28px clamp(48px,8vw,120px)}
.menu-detail p{max-width:64ch;color:var(--soft);font-size:clamp(16px,1.4vw,19px);line-height:1.6}
.menu-cut{min-height:44px;padding:11px 0;color:var(--ink);font:600 14px/1.3 var(--text);text-decoration-color:var(--accent);text-decoration-thickness:2px;text-underline-offset:.3em}
.menu-cut:hover{color:var(--accent-ink)}
@media (max-width:899px){
  .menu-hero{padding-top:calc(var(--header-h) + 16px);padding-bottom:20px}
  .menu-hero__grid{grid-template-columns:minmax(0,1fr) 104px;gap:10px 20px;align-items:start}
  .menu-hero__copy{display:contents}
  .menu-hero .kicker{grid-column:1 / -1;grid-row:1;font-size:12px}
  .menu-hero h1{grid-column:1;grid-row:2;font-size:clamp(40px,12vw,62px);margin:0;max-width:7ch}
  .menu-hero__lede{grid-column:1 / -1;grid-row:3;max-width:50ch;font-size:13px;line-height:1.4}
  .menu-hero__actions{grid-column:1 / -1;grid-row:4;margin-top:8px;gap:12px 16px}
  .menu-hero__actions .stamp{font-size:10px;line-height:1.4}
  .menu-jump{width:100%}
  .menu-jump a{flex:1;justify-content:space-between}
  .menu-hero__actions .btn{min-width:0}
  .menu-hero__media{grid-column:2;grid-row:2;align-self:center;margin:0;padding:4px;transform:rotate(-2deg)}
  .menu-hero__media img{aspect-ratio:1;object-fit:cover}
  .menu-hero__media figcaption{display:none}
  .menu-photos__row{grid-template-columns:repeat(2,minmax(0,1fr))}
  .menu-sample-head{grid-template-columns:1fr;gap:10px;padding-bottom:4px}
  .menu-sample-head h2{font-size:clamp(30px,9vw,40px)}
  .menu-index__note{font-size:15px}
  .menu-hero__lede{font-size:15px;line-height:1.5}
  .menu-status{font-size:13.5px}
  .menu-season{margin-top:12px}
  html.js .menu-tools{grid-template-columns:1fr auto;gap:8px;padding:12px 0}
  .menu-filters{grid-column:1 / -1}
  .menu-search{grid-column:1 / -1;grid-row:2}
  .menu-reset{grid-column:2;grid-row:3;min-height:44px;padding-block:4px}
  .menu-count{grid-column:1;grid-row:3;align-self:center}
  .menu-item summary{grid-template-columns:30px minmax(0,1fr) 22px;gap:10px;min-height:76px;padding:13px 0}
  .menu-item-season{grid-column:2;grid-row:2;font-size:11px}
  .menu-chevron{grid-column:3;grid-row:1 / span 2}
  .menu-name{font-size:clamp(23px,6.8vw,30px)}
  .menu-hero__actions .btn{flex:1 1 auto}
  .menu-detail{grid-template-columns:1fr;gap:12px;padding:0 0 24px 40px}
  .menu-detail p{font-size:16px;line-height:1.55}
}
@media (prefers-reduced-motion:reduce){.menu-chevron{transition:none}}
@media (max-width:360px){
  .menu-hero{padding-top:calc(var(--header-h) + 12px);padding-bottom:16px}
  .menu-hero__grid{grid-template-columns:minmax(0,1fr) 96px;gap:8px 16px}
  .menu-hero__actions .btn--order{flex:1 1 0;min-width:0}
  .menu-hero__actions .ob-s{white-space:normal}
  .menu-filters{flex-wrap:nowrap}
  .menu-filter{gap:6px;padding-inline:8px;font-size:13px}
  html.js .menu-tools{padding-block:6px}
  .menu-season{margin-top:8px}
}
