@font-face { font-family:'Merriweather'; font-style:italic; font-weight:400; font-display:swap; src:url('fonts/merriweather-italic-400.ttf') format('truetype'); }
@font-face { font-family:'DM Sans'; font-style:normal; font-weight:100 1000; font-display:swap; src:url('fonts/dm-sans-variable.ttf') format('truetype'); }
@font-face { font-family:'DM Sans'; font-style:italic; font-weight:100 1000; font-display:swap; src:url('fonts/dm-sans-italic-variable.ttf') format('truetype'); }
:root {
  --canvas:#C7E7F3; --paper:#FFFFFF; --cream:#FFF8ED; --ink:#222A2E; --muted:#41494C;
  --red:#E21E27; --blue:#C7E7F3; --blue-dark:#254A5A; --line:#CFC2B1; --wash:#F1E8DC;
  --body:'DM Sans',sans-serif; --heading:Georgia,'Times New Roman',serif;
  --page:1160px; --radius:4px;
}
*,*::before,*::after { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--canvas); font:17px/1.6 var(--body); }
a { color:inherit; text-underline-offset:4px; }
a:hover { text-decoration-thickness:2px; }
a:focus-visible,summary:focus-visible { outline:3px solid var(--blue-dark); outline-offset:5px; }
h1,h2,h3,p,figure { margin:0; }
h1,h2,h3 { font-family:var(--heading); }
main,section,nav,div,figure { min-width:0; }
.container { width:min(var(--page),calc(100% - 80px)); margin-inline:auto; }
.skip-link { position:fixed; top:10px; left:10px; z-index:100; padding:14px 20px; background:var(--ink); color:white; transform:translateY(-180%); }
.skip-link:focus { transform:translateY(0); }
.site-header { position:sticky; top:0; z-index:30; background:var(--canvas); }
.header-inner { position:relative; min-height:163px; display:flex; align-items:center; justify-content:flex-end; }
.brand { position:absolute; left:50%; transform:translateX(-50%); display:flex; text-decoration:none; }
.header-logo { display:block; width:auto; height:147px; }
.desktop-nav { display:flex; align-items:center; gap:26px; }
.desktop-nav a { display:inline-flex; align-items:center; min-height:48px; font-size:14px; font-weight:650; text-decoration:none; }
.desktop-nav a:hover,.desktop-nav a[aria-current="page"] { text-decoration:underline; }
.mobile-menu { display:none; position:relative; margin-right:auto; }
.mobile-menu summary { min-width:64px; min-height:48px; list-style:none; display:flex; align-items:center; justify-content:center; cursor:pointer; }
.mobile-menu summary::-webkit-details-marker { display:none; }
.menu-lines,.menu-lines::before,.menu-lines::after { display:block; width:36px; height:2px; background:var(--ink); }
.menu-lines { position:relative; }
.menu-lines::before,.menu-lines::after { position:absolute; left:0; content:''; }
.menu-lines::before { top:-12px; }
.menu-lines::after { top:12px; }
.mobile-menu nav { position:absolute; top:calc(100% + 10px); left:0; width:min(280px,calc(100vw - 40px)); padding:12px; background:var(--canvas); border:1px solid var(--line); box-shadow:0 8px 24px #222a2e14; }
.mobile-menu nav a { display:flex; align-items:center; min-height:48px; padding:12px 14px; border-bottom:1px solid var(--line); text-decoration:none; font-size:15px; }
.mobile-menu nav a:last-child { border:0; }
.eyebrow { font-size:12px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--red); }
.page-hero { padding-block:58px 42px; }
.page-hero h1 { max-width:820px; margin-top:12px; font:italic 400 clamp(2.7rem,6vw,5.4rem)/1.04 'Merriweather',Georgia,serif; letter-spacing:-.045em; }
.page-hero > .container > p:last-child { max-width:630px; margin-top:22px; font-size:18px; color:var(--muted); }
.page-section { padding-block:46px 88px; }
.button { display:inline-flex; justify-content:center; align-items:center; min-height:52px; padding:13px 23px; border:2px solid transparent; border-radius:var(--radius); background:var(--red); color:white; text-decoration:none; font-size:15px; font-weight:700; }
.text-link { display:inline-flex; align-items:center; min-height:48px; font-weight:700; }
.actions { display:flex; align-items:center; flex-wrap:wrap; gap:14px 24px; margin-top:28px; }
.facts { display:flex; flex-wrap:wrap; gap:9px; margin-bottom:12px; }
.fact { padding:7px 12px; background:var(--wash); font-size:12px; font-weight:650; }
.small { font-size:13px; line-height:1.55; }
.muted { color:var(--muted); }
.menu-page-grid { display:grid; grid-template-columns:1.08fr .92fr; gap:64px; align-items:start; }
.menu-list { margin:25px 0 0; padding:0; list-style:none; border-top:1px solid var(--line); }
.menu-row { display:grid; grid-template-columns:28px minmax(0,1fr) auto; gap:14px; padding-block:21px; border-bottom:1px solid var(--line); }
.menu-index { padding-top:5px; color:var(--muted); font-size:11px; }
.menu-name { font-size:23px; line-height:1.2; }
.menu-description { margin-top:5px; color:var(--muted); font-size:13px; }
.menu-price { color:var(--red); font:700 23px/1.3 var(--heading); }
.menu-extra { display:grid; gap:8px; margin-top:22px; color:var(--muted); font-size:13px; }
.photo-slot { position:relative; min-height:420px; display:flex; flex-direction:column; justify-content:space-between; overflow:hidden; padding:27px; background:var(--wash); border:1px solid #222a2e40; }
.photo-slot::after { position:absolute; inset:58px 27px 72px; content:''; border:1px dashed #222a2e70; }
.slot-kicker,.slot-foot,.slot-center { position:relative; z-index:1; }
.slot-kicker { display:flex; justify-content:space-between; gap:20px; font-size:10px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.slot-center { padding:42px 8px; text-align:center; font:400 clamp(1.8rem,3vw,2.8rem)/1.12 var(--heading); }
.placeholder-label { display:block; margin-bottom:15px; font:700 10px/1.4 var(--body); letter-spacing:.12em; text-transform:uppercase; }
.slot-foot { max-width:350px; font-size:12px; }
.pickup-panel { padding-block:55px 88px; background:var(--blue); border-block:1px solid #254a5a40; }
.steps { display:grid; grid-template-columns:repeat(3,1fr); gap:34px; margin:0; padding:0; list-style:none; }
.step { padding-top:21px; border-top:1px solid #254a5a70; }
.step-number { margin-bottom:21px; color:var(--red); font:italic 400 30px/1 var(--heading); }
.step h2 { margin-bottom:13px; font-size:24px; }
.step p { font-size:14px; }
.pickup-hours { max-width:620px; margin-top:42px; padding-top:30px; border-top:1px solid #254a5a70; }
.hours-heading { margin-bottom:16px; font:700 11px/1.5 var(--body); letter-spacing:.1em; text-transform:uppercase; }
.hours-list { margin:0; font-size:13px; }
.hours-row { display:flex; justify-content:space-between; gap:16px; padding-block:9px; border-bottom:1px solid #254a5a70; }
.hours-row dt,.hours-row dd { margin:0; }
.story-grid { display:grid; grid-template-columns:.75fr 1fr; gap:70px; align-items:center; }
.story-copy h2 { margin-top:12px; font:italic 400 clamp(2.4rem,5vw,4.4rem)/1.08 'Merriweather',Georgia,serif; letter-spacing:-.04em; }
.story-copy p:last-child { max-width:610px; margin-top:22px; color:var(--muted); font-size:18px; }
.contact-grid { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.contact-card { padding:28px; background:var(--blue); border:1px solid #254a5a40; }
.contact-card h2 { margin-bottom:16px; font-size:25px; }
.contact-links { display:grid; gap:6px; }
.contact-links a { display:inline-flex; align-items:center; min-height:44px; width:fit-content; overflow-wrap:anywhere; }
.site-footer { text-align:center; padding-block:58px 26px; border-top:1px solid var(--line); }
.footer-grid { display:grid; grid-template-columns:1fr; justify-items:center; gap:34px; }
.footer-brand-mark { display:inline-flex; justify-content:center; padding:0; background:transparent; border-radius:0; }
.footer-logo { display:block; width:auto; height:180px; }
.footer-tagline { max-width:280px; margin:16px auto 0; color:var(--muted); font-size:14px; }
.footer-label { margin-bottom:18px; font-size:11px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.footer-contact,.footer-explore { display:grid; justify-items:center; gap:4px; }
.footer-contact a,.footer-explore a { display:inline-flex; align-items:center; min-height:44px; width:fit-content; font-size:14px; overflow-wrap:anywhere; text-decoration:none; }
.footer-bottom { display:flex; flex-direction:column; justify-content:center; align-items:center; flex-wrap:wrap; gap:15px; margin-top:28px; padding-top:22px; border-top:1px solid var(--line); color:var(--muted); font-size:11px; }
.footer-bottom a { display:inline-flex; align-items:center; min-height:44px; }
@media (max-width:1050px) {
  .desktop-nav { gap:18px; }
  .menu-page-grid,.story-grid { gap:36px; }
  .footer-grid { grid-template-columns:1fr; gap:34px; }
}
@media (max-width:760px) {
  body { font-size:16px; }
  .container { width:calc(100% - 40px); }
  .header-inner { min-height:112px; }
  .header-logo { height:96px; }
  .desktop-nav { display:none; }
  .mobile-menu { display:block; }
  .page-hero { padding-block:34px 28px; }
  .page-hero h1 { font-size:clamp(2.5rem,11vw,4.2rem); }
  .page-hero > .container > p:last-child { font-size:16px; }
  .page-section,.pickup-panel { padding-block:34px 54px; }
  .menu-page-grid,.story-grid,.contact-grid { grid-template-columns:1fr; gap:30px; }
  .menu-row { grid-template-columns:22px minmax(0,1fr) auto; gap:9px; padding-block:19px; }
  .menu-name,.menu-price { font-size:21px; }
  .menu-description { font-size:12px; }
  .photo-slot { min-height:330px; }
  .steps { grid-template-columns:1fr; gap:25px; }
  .step { display:grid; grid-template-columns:35px minmax(0,1fr); column-gap:16px; }
  .step-number { grid-row:span 2; margin:2px 0 0; font-size:26px; }
  .step h2 { margin-bottom:9px; font-size:23px; }
  .actions .button { width:100%; }
  .footer-grid { grid-template-columns:1fr; gap:34px; }
  .footer-logo { height:150px; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
