:root { color-scheme: light; --cream:#f4ead9; --paper:#fffaf1; --red:#9f211f; --red-dark:#761817; --ink:#211f1a; --olive:#59613c; --gold:#d69a38; --line:#cbbca4; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:82px; }
body { margin:0; background:var(--cream); color:var(--ink); font-family:Arial, Helvetica, sans-serif; }
img { display:block; max-width:100%; }
a { color:inherit; }
.nav { position:sticky; top:0; z-index:20; min-height:78px; display:flex; align-items:center; justify-content:space-between; gap:2rem; padding:0 4.5vw; background:rgba(255,250,241,.94); border-bottom:1px solid rgba(33,31,26,.12); backdrop-filter:blur(14px); }
.brand { display:flex; gap:.24rem; align-items:baseline; text-decoration:none; color:var(--red); font:900 1.7rem/1 Georgia,serif; letter-spacing:-.04em; white-space:nowrap; }
.brand b { color:var(--olive); font-size:1rem; }
.nav nav { display:flex; gap:clamp(1rem,3vw,2.6rem); margin-left:auto; }
.nav nav a { text-decoration:none; font-size:.78rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.nav nav a:hover, .nav nav a:focus-visible { color:var(--red); }
.nav-call { padding:.7rem 1rem; background:var(--red); color:white; text-decoration:none; font-weight:800; }
.open-strip { min-height:42px; display:flex; align-items:center; justify-content:center; gap:1.1rem; padding:.6rem 5vw; background:var(--ink); color:white; font-size:.76rem; letter-spacing:.08em; text-transform:uppercase; text-align:center; }
.open-strip a { text-underline-offset:4px; }
.star { color:var(--gold); }
.hero { min-height:calc(100vh - 120px); display:grid; grid-template-columns:1.08fr .92fr; }
.hero>img { width:100%; height:100%; min-height:660px; object-fit:cover; }
.hero-copy { padding:clamp(3rem,7vw,8rem); align-content:center; background:var(--cream); }
.eyebrow { margin:0 0 .8rem; color:var(--red); text-transform:uppercase; letter-spacing:.16em; font-weight:900; font-size:.72rem; }
h1,h2,h3,p { text-wrap:pretty; }
h1 { margin:.6rem 0 1.3rem; font:700 clamp(3.3rem,6.7vw,7.3rem)/.89 Georgia,serif; letter-spacing:-.06em; }
.hero-copy>p:not(.eyebrow):not(.rating) { max-width:36rem; font-size:clamp(1.05rem,1.5vw,1.3rem); line-height:1.62; }
.actions,.visit-actions { display:flex; align-items:center; gap:1rem; flex-wrap:wrap; margin-top:2rem; }
.actions a,.primary { padding:.98rem 1.25rem; text-decoration:none; font-weight:900; }
.primary { display:inline-block; background:var(--red); color:white; transition:.2s ease; }
.primary:hover,.primary:focus-visible { background:var(--red-dark); transform:translateY(-2px); }
.secondary { color:var(--ink); border:1px solid #a89c88; }
.rating { margin-top:2.3rem; font-size:.82rem; }
.rating span { color:var(--gold); letter-spacing:.12em; margin-right:.65rem; }
.ticker { overflow:hidden; padding:1.15rem 0; background:var(--red); color:white; }
.ticker div { display:flex; justify-content:center; align-items:center; gap:clamp(1rem,3vw,3rem); width:max-content; min-width:100%; padding:0 2rem; white-space:nowrap; text-transform:uppercase; font-weight:900; letter-spacing:.08em; font-size:.76rem; }
.ticker i { color:#f4c069; font-style:normal; }
.section { padding:clamp(5rem,9vw,9rem) 5vw; }
.section-heading { display:grid; grid-template-columns:1fr 1.3fr 1fr; gap:3vw; align-items:end; margin-bottom:4rem; }
.section-heading .eyebrow { align-self:start; }
.section-heading h2,.story-copy h2,.gallery-title h2,.visit-details h2 { margin:0; font:700 clamp(2.8rem,5.2vw,6.2rem)/.94 Georgia,serif; letter-spacing:-.045em; }
.section-heading>p:last-child { margin:0; font-size:1.05rem; line-height:1.75; }
.menu-layout { display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(2rem,6vw,7rem); align-items:start; }
.menu-list { border-top:1px solid var(--line); }
.menu-list article { display:grid; grid-template-columns:3.4rem 1fr; gap:1rem; padding:1.7rem 0; border-bottom:1px solid var(--line); }
.menu-num { color:var(--red); font:italic 1rem Georgia,serif; }
.menu-list h3 { margin:0 0 .45rem; font:700 clamp(1.35rem,2.3vw,2rem) Georgia,serif; }
.menu-list p { margin:0; color:#605a4f; line-height:1.55; }
.oven-card { position:sticky; top:110px; margin:0; background:var(--ink); color:white; }
.oven-card img { width:100%; aspect-ratio:4/5; object-fit:cover; }
.oven-card figcaption { display:flex; justify-content:space-between; gap:1rem; padding:1rem 1.2rem; font-size:.73rem; text-transform:uppercase; letter-spacing:.08em; }
.oven-card figcaption span { color:#c9bda7; }
.story-section { display:grid; grid-template-columns:1.08fr .92fr; background:var(--olive); color:white; }
.story-image img { width:100%; height:100%; min-height:680px; object-fit:cover; }
.story-copy { padding:clamp(4rem,8vw,9rem); align-content:center; }
.story-copy .eyebrow { color:#f3bd5b; }
.story-copy h2 { max-width:10ch; }
.story-copy>p:not(.eyebrow) { max-width:36rem; line-height:1.75; color:#f0eadf; font-size:1.05rem; }
.text-link { display:inline-block; margin-top:1.2rem; color:white; text-decoration:none; border-bottom:1px solid #dcccae; padding-bottom:.4rem; font-weight:800; }
.gallery-section { display:grid; grid-template-columns:repeat(12,1fr); gap:1.2rem; background:var(--paper); }
.gallery-section figure { margin:0; overflow:hidden; background:#d9cebd; }
.gallery-section img { width:100%; height:100%; object-fit:cover; transition:transform .6s ease; }
.gallery-section figure:hover img { transform:scale(1.025); }
.gallery-title { grid-column:1/6; grid-row:1; align-content:end; padding:0 3vw 2rem 0; }
.gallery-main { grid-column:6/13; grid-row:1/3; min-height:800px; }
.gallery-tall { grid-column:1/6; grid-row:2/4; min-height:720px; }
.gallery-small { grid-column:6/10; min-height:450px; }
.gallery-exterior { grid-column:10/13; min-height:450px; }
.review-section { padding:clamp(5rem,10vw,10rem) 8vw; background:var(--red); color:white; text-align:center; }
.review-mark { height:.6em; color:#f0bd66; font:700 8rem/.8 Georgia,serif; }
.review-section blockquote { max-width:1100px; margin:1rem auto 2rem; font:italic 700 clamp(2.2rem,5vw,5.8rem)/1.05 Georgia,serif; letter-spacing:-.035em; }
.review-section p { margin:0 0 2rem; color:#f0d9cd; text-transform:uppercase; letter-spacing:.12em; font-size:.7rem; font-weight:800; }
.review-section a { text-underline-offset:5px; font-weight:800; }
.visit-section { display:grid; grid-template-columns:.85fr 1.15fr; min-height:650px; }
.visit-details { padding:clamp(4rem,7vw,7rem); background:var(--cream); }
.visit-details h2 { max-width:10ch; }
.visit-details dl { margin:3rem 0 0; }
.visit-details dl>div { display:grid; grid-template-columns:8rem 1fr; gap:1rem; padding:1.25rem 0; border-top:1px solid var(--line); }
.visit-details dt { color:var(--red); text-transform:uppercase; letter-spacing:.12em; font-size:.68rem; font-weight:900; }
.visit-details dd { margin:0; line-height:1.55; font-weight:700; }
.instagram { font-weight:900; text-underline-offset:5px; }
.map-wrap { min-height:650px; background:#d8cbb7; }
.map-wrap iframe { display:block; width:100%; height:100%; min-height:650px; border:0; filter:saturate(.65) contrast(.95); }
footer { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:2rem; padding:2rem 4.5vw; background:var(--ink); color:white; }
.footer-brand { color:#f3c263; }
footer p { margin:0; font-size:.72rem; }
footer p:last-child { text-align:right; color:#aaa08f; }
.reveal { opacity:0; transform:translateY(24px); transition:opacity .7s ease, transform .7s ease; }
.reveal.is-visible { opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce){ html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}.gallery-section img,.primary{transition:none} }
@media (max-width:900px){
  .nav nav{display:none}.hero,.story-section,.visit-section{grid-template-columns:1fr}.hero>img{min-height:52vh;max-height:680px}.hero-copy{padding:4rem 7vw 5rem}
  .section-heading{grid-template-columns:1fr}.section-heading>p:last-child{max-width:38rem}.menu-layout{grid-template-columns:1fr}.oven-card{position:relative;top:auto}.oven-card img{aspect-ratio:4/3}
  .story-image img{min-height:58vh}.story-copy{padding:5rem 7vw 6rem}.visit-section{min-height:0}.map-wrap,.map-wrap iframe{min-height:480px}
  .gallery-title{grid-column:1/13}.gallery-main{grid-column:1/9;grid-row:auto;min-height:640px}.gallery-tall{grid-column:9/13;grid-row:auto;min-height:640px}.gallery-small{grid-column:1/7}.gallery-exterior{grid-column:7/13}
}
@media (max-width:620px){
  .nav{min-height:70px;padding:0 5vw}.brand{font-size:1.45rem}.nav-call{font-size:.78rem}.open-strip{font-size:.63rem}.open-strip .star{display:none}
  h1{font-size:clamp(3.15rem,16vw,5.3rem)}.hero>img{min-height:46vh}.section{padding:5rem 6vw}.section-heading{margin-bottom:2.5rem}
  .ticker div{justify-content:flex-start}.oven-card img{aspect-ratio:1/1.15}.story-image img{min-height:460px}
  .gallery-section{display:block}.gallery-title{padding:0 0 2.5rem}.gallery-section figure{min-height:0;height:70vh;margin-bottom:1rem}.gallery-section .gallery-small,.gallery-section .gallery-exterior{height:55vh}
  .visit-details{padding:4.5rem 7vw}.visit-details dl>div{grid-template-columns:1fr;gap:.45rem}.map-wrap,.map-wrap iframe{min-height:420px}
  footer{grid-template-columns:1fr;text-align:center}footer p:last-child{text-align:center}
}
