:root { color-scheme:light; --cream:#FFFDAF; --paper:#FFFFFF; --red:#C90613; --red-dark:#9f0710; --orange:#FF8427; --ink:#000000; --gold:#FF8427; --line:#ded67b; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:82px; }
body { margin:0; background:var(--cream); color:var(--ink); font-family:"League Spartan",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,253,175,.96); border-bottom:1px solid rgba(0,0,0,.16); backdrop-filter:blur(14px); }
.brand { display:inline-flex; align-items:center; text-decoration:none; flex:none; }
.brand-logo-crop { position:relative; display:block; width:168px; aspect-ratio:550/187; overflow:hidden; background:var(--cream); }
.brand-logo-crop img { position:absolute; width:179.45%; max-width:none; left:-37.64%; top:-10.7%; }
.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:.76rem 1.05rem; background:var(--red); color:white; border:2px solid var(--red); text-decoration:none; font-weight:900; text-transform:uppercase; letter-spacing:.04em; }
.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:900 clamp(3.3rem,6.7vw,7.3rem)/.88 "Tan Nimbus","Cooper Black",Georgia,serif; letter-spacing:-.055em; color:var(--red); text-shadow:3px 3px 0 var(--orange); }
.hero-copy>p:not(.eyebrow):not(.rating):not(.payment-note) { 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; border:2px solid var(--red); transition:.2s ease; text-transform:uppercase; letter-spacing:.035em; }
.primary:hover,.primary:focus-visible { background:var(--orange); border-color:var(--ink); color:var(--ink); transform:translateY(-2px); }
.secondary { color:var(--ink); border:1px solid #a89c88; }
.payment-note { margin:1rem 0 0; color:#625b50; font-size:.78rem; font-weight:800; letter-spacing:.02em; }
.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; border-block:4px solid var(--orange); }
.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; }
.menu-section { background:var(--paper); }
.menu-intro { display:grid; grid-template-columns:1.25fr .75fr; gap:clamp(2rem,8vw,8rem); align-items:end; margin-bottom:4rem; }
.menu-intro h2,.story-copy h2,.gallery-title h2,.visit-details h2 { margin:0; font:900 clamp(2.8rem,5.2vw,6.2rem)/.92 "Tan Nimbus","Cooper Black",Georgia,serif; letter-spacing:-.045em; }
.menu-intro-copy p { margin:0 0 1.5rem; max-width:38rem; font-size:1.05rem; line-height:1.75; }
.full-menu { display:grid; grid-template-columns:minmax(0,1.12fr) minmax(320px,.88fr); gap:1.5rem; align-items:start; }
.menu-category { padding:clamp(1.4rem,2.4vw,2.2rem); border:2px solid var(--ink); background:var(--paper); box-shadow:8px 8px 0 var(--orange); }
.menu-category-wide { grid-column:1/-1; }
.menu-category-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:1rem; padding-bottom:1rem; border-bottom:4px solid var(--red); }
.menu-category-heading h3 { margin:0; color:var(--red); font:900 clamp(1.85rem,3vw,3.2rem)/.95 "Tan Nimbus","Cooper Black",Georgia,serif; letter-spacing:-.035em; }
.menu-kicker { margin:0 0 .35rem; color:#766d60; font-size:.68rem; font-weight:900; letter-spacing:.13em; text-transform:uppercase; }
.menu-legend { display:flex; gap:1rem; color:#6b6459; font-size:.68rem; font-weight:800; text-transform:uppercase; letter-spacing:.06em; }
.leaf,.veg { color:#538249; font-style:normal; }.pepper,.spicy { color:var(--red); font-style:normal; }
.house-table-wrap { overflow-x:auto; }
.house-table { width:100%; border-collapse:collapse; min-width:720px; }
.house-table th,.house-table td { padding:1rem .85rem; border-bottom:1px solid #ded3c1; text-align:center; }
.house-table thead th { color:#756b5c; font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; }
.house-table thead th:first-child,.house-table tbody th { text-align:left; }
.house-table tbody th { width:48%; font-weight:400; }
.house-table tbody strong { display:block; color:var(--red); font:900 1rem/1.2 "Tan Nimbus","Cooper Black",Georgia,serif; }
.house-table small { display:block; margin-top:.3rem; color:#696155; font-size:.77rem; line-height:1.45; }
.house-table td { font-weight:900; }
.menu-note { margin:1rem 0 0; padding:.85rem 1rem; background:var(--red); color:white; font-size:.72rem; line-height:1.45; }
.pizza-menu { grid-column:1; }
.menu-side-stack { display:grid; grid-column:2; gap:1.5rem; }
.menu-items article { display:flex; justify-content:space-between; align-items:start; gap:1.2rem; padding:1rem 0; border-bottom:1px solid #e1d7c7; }
.menu-items article:last-child { border-bottom:0; }
.menu-items h4 { margin:0; color:var(--red); font:900 1rem/1.2 "Tan Nimbus","Cooper Black",Georgia,serif; }
.menu-items p { margin:.32rem 0 0; color:#6a6257; font-size:.78rem; line-height:1.45; }
.menu-items article>strong { flex:none; color:var(--red); font-size:.9rem; }
.menu-items.compact article { align-items:center; padding:.78rem 0; }
.menu-items.compact h4 { color:var(--ink); font-family:"League Spartan",Arial,Helvetica,sans-serif; font-size:.82rem; }
.menu-mini-grid { display:grid; grid-template-columns:1fr 1fr; gap:1.5rem; }
.menu-mini-grid .menu-category-heading h3 { font-size:2rem; }
.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(--red); 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:var(--cream); }
.story-copy h2 { max-width:10ch; }
.story-copy>p:not(.eyebrow) { max-width:36rem; line-height:1.75; color:white; 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(--ink); color:white; text-align:center; border-block:8px solid var(--orange); }
.review-mark { height:.6em; color:#f0bd66; font:700 8rem/.8 Georgia,serif; }
.review-section blockquote { max-width:1100px; margin:1rem auto 2rem; font:900 clamp(2.2rem,5vw,5.8rem)/1.02 "Tan Nimbus","Cooper Black",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 { padding:.2rem; background:var(--cream); }
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}
  .menu-intro{grid-template-columns:1fr}.full-menu{grid-template-columns:1fr}.menu-category-wide,.pizza-menu,.menu-side-stack{grid-column:1}.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-logo-crop{width:132px}.nav-call{font-size:.72rem;padding:.62rem .75rem}.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}.menu-intro{margin-bottom:2.5rem}.menu-mini-grid{grid-template-columns:1fr}.menu-category{padding:1.25rem}.menu-legend{display:none}
  .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}
}
