﻿:root{--olive:oklch(.30 .03 100);--olive-deep:oklch(.22 .025 93);--paper:oklch(.965 .006 94);--paper-bright:oklch(.992 .003 95);--ink:oklch(.24 .025 77);--muted:oklch(.46 .02 82);--line:oklch(.73 .018 88);--light:oklch(.96 .008 90);--display:"Baskerville","Iowan Old Style","Times New Roman",serif;--sans:"Aptos","Segoe UI",system-ui,sans-serif;--shell:min(100% - 2.5rem,68rem);--space-1:.5rem;--space-2:1rem;--space-3:1.5rem;--space-4:2.5rem;--space-5:clamp(3.5rem,8vw,7rem);--space-6:clamp(5rem,12vw,10rem)}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font:1rem/1.65 var(--sans);font-kerning:normal}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
.skip-link{position:fixed;z-index:30;top:-4rem;left:1rem;padding:.75rem 1rem;background:var(--paper-bright);color:var(--ink)}
.skip-link:focus{top:1rem}
.site-header{position:fixed;z-index:20;top:0;left:50%;display:flex;align-items:center;justify-content:space-between;width:100%;min-height:4rem;padding:max(.5rem,env(safe-area-inset-top)) 1rem .5rem;transform:translateX(-50%);color:var(--light);transition:background .25s ease,color .25s ease,border-color .25s ease}
.site-header.scrolled{background:var(--paper-bright);color:var(--ink);border-bottom:1px solid var(--line)}
.wordmark{color:inherit;text-decoration:none;font:1.12rem/1 var(--display);letter-spacing:-.025em;white-space:nowrap}
.wordmark span{font:700 .58em var(--sans);letter-spacing:.1em;text-transform:uppercase;vertical-align:top}
.wordmark em{font-style:italic}
.header-actions{display:flex;align-items:center;gap:.1rem}
.language-toggle,.menu-toggle{display:flex;align-items:center;justify-content:center;width:3.5rem;min-width:3.5rem;height:3.5rem;min-height:3.5rem;padding:0;border:0;background:transparent;color:inherit;cursor:pointer}
.language-toggle{gap:.42rem;font:800 .74rem var(--sans);letter-spacing:.04em}
.language-toggle i{width:.38rem;height:.38rem;margin-top:-.18rem;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:rotate(45deg)}
.menu-toggle{font-size:0}
.menu-toggle i,.menu-toggle i:before{display:block;width:1.22rem;height:1.5px;background:currentColor;content:"";transition:transform .24s cubic-bezier(.16,1,.3,1)}
.menu-toggle i:before{transform:translateY(.38rem)}
.menu-toggle[aria-expanded=true] i{transform:rotate(45deg)}
.menu-toggle[aria-expanded=true] i:before{transform:rotate(-90deg)}
.drawer-backdrop{position:fixed;z-index:40;inset:0;background:oklch(.12 .015 82/.54);opacity:0;visibility:hidden;transition:opacity .28s ease,visibility 0s linear .28s}
.drawer-backdrop.open{opacity:1;visibility:visible;transition:opacity .28s ease}
nav,.language-drawer{position:fixed;z-index:50;top:0;right:0;bottom:0;display:flex;flex-direction:column;width:80vw;max-width:30rem;margin:0;padding:max(1.25rem,env(safe-area-inset-top)) 1.25rem max(1.5rem,env(safe-area-inset-bottom));overflow-y:auto;background:var(--olive-deep);color:var(--light);opacity:0;visibility:hidden;pointer-events:none;transform:translateX(104%);transition:transform .32s cubic-bezier(.16,1,.3,1),opacity .24s ease,visibility 0s linear .32s}
nav.open,.language-drawer.open{opacity:1;visibility:visible;pointer-events:auto;transform:translateX(0);transition:transform .32s cubic-bezier(.16,1,.3,1),opacity .24s ease}
.drawer-head{display:flex;align-items:center;justify-content:space-between;padding-bottom:1.4rem;border-bottom:1px solid oklch(.96 .008 90/.24)}
.drawer-head p{margin:0;color:oklch(.86 .04 90);font:800 .72rem var(--sans);letter-spacing:.13em;text-transform:uppercase}
.drawer-close{display:flex;align-items:center;justify-content:center;width:3rem;min-width:3rem;height:3rem;padding:0;border:0;background:transparent;color:var(--light);cursor:pointer}
.drawer-close i,.drawer-close i:before{display:block;width:1.15rem;height:1.5px;background:currentColor;content:"";transform:rotate(45deg)}
.drawer-close i:before{transform:rotate(-90deg)}
.drawer-nav{display:grid;align-content:start;gap:.15rem;padding-top:1.35rem}
.drawer-nav a{display:flex;align-items:center;min-height:3.8rem;padding:.7rem 0;border-bottom:1px solid oklch(.96 .008 90/.16);color:var(--light);text-decoration:none;font:500 clamp(1.45rem,6vw,2.15rem)/1.1 var(--display)}
.drawer-nav .nav-cta{margin-top:1rem;padding-left:1rem;border:1px solid oklch(.96 .008 90/.7);color:oklch(.9 .045 90);font-family:var(--sans);font-size:.78rem;font-weight:900;letter-spacing:.09em;text-transform:uppercase}
.language-options{display:grid;padding-top:.9rem}
.language-options button{display:flex;align-items:center;justify-content:space-between;min-height:3.8rem;padding:.6rem 0;border:0;border-bottom:1px solid oklch(.96 .008 90/.16);background:transparent;color:var(--light);font:500 1.2rem var(--display);text-align:left;cursor:pointer}
.language-options button span{color:oklch(.82 .04 90);font:800 .68rem var(--sans);letter-spacing:.12em}
.language-options button[aria-pressed=true]{color:oklch(.86 .05 90)}
body.drawer-open{overflow:hidden}
.site-shell{width:100%;margin:0 auto;background:var(--paper);overflow:hidden}
h1,h2,h3,p{margin-top:0}
h1,h2,h3{font-family:var(--display);font-weight:500;letter-spacing:-.025em;line-height:1.04;text-wrap:balance}
h1{margin:0;font-size:clamp(2.85rem,6vw,5.7rem);color:var(--light);text-transform:uppercase;letter-spacing:.015em}
h1 span,h1 em{font-style:normal}
.hero{position:relative;display:grid;min-height:max(44rem,calc(100svh + 4rem));overflow:hidden;color:var(--light);background:var(--olive-deep)}
.hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}
.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,oklch(.12 .015 82/.63),oklch(.12 .015 82/.09) 68%,oklch(.12 .015 82/.4)),linear-gradient(0deg,oklch(.12 .015 82/.58),transparent 55%)}
.hero-copy{position:relative;z-index:1;align-self:center;width:min(100% - 1rem,48rem);margin:3rem auto 1rem;text-align:center}
.hero-kicker,.section-mark{margin:0 0 1rem;font-size:.68rem;font-weight:800;letter-spacing:.15em;text-transform:uppercase}
.hero-kicker{color:oklch(.84 .045 90)}
.hero-tagline{margin:1.1rem 0 0;font:italic clamp(1.1rem,2vw,1.5rem)/1.35 var(--display);letter-spacing:.01em}
.hero-detail{position:relative;z-index:1;align-self:end;width:min(100% - 3rem,31rem);margin:0 auto 5.25rem;padding:1.5rem 1.6rem 1.6rem;border-top:1px solid oklch(.96 .008 90/.58);background:oklch(.13 .018 82/.78);font-size:.94rem}
.hero-detail p{margin-bottom:1.15rem}
.hero-detail .hero-hours{margin:0 0 1.15rem;padding-top:.9rem;border-top:1px solid oklch(.96 .008 90/.34);color:oklch(.92 .012 90);font-size:.78rem;font-weight:800;letter-spacing:.055em;line-height:1.65;text-transform:uppercase}
.hero-actions{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}
.button{display:inline-flex;align-items:center;justify-content:center;min-height:2.8rem;padding:.7rem 1.1rem;border:1px solid currentColor;text-decoration:none;font-size:.7rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase;transition:background .2s ease,color .2s ease}
.button-light{border-color:var(--paper-bright);background:var(--paper-bright);color:var(--ink)}
.button-dark{border-color:var(--olive-deep);background:var(--olive-deep);color:var(--light)}
.button:hover{border-color:var(--olive);background:var(--olive);color:var(--light)}
.text-link{padding-bottom:.16rem;border-bottom:1px solid currentColor;color:var(--ink);text-decoration:none;font-weight:750}
.text-link.light{color:var(--light)}
.text-link:hover{color:var(--muted)}
.story-panel{position:relative;z-index:2;display:grid;gap:var(--space-4);width:calc(100% - 2.5rem);margin:-4rem auto var(--space-6);padding:1.25rem;background:var(--paper-bright)}
.story-photo{margin:0}
.story-photo img{display:block;width:100%;height:29rem;object-fit:cover;object-position:center}
.story-copy{align-self:center;padding:1rem}
.section-mark{color:var(--muted)}
.story-copy h2,.menu-copy h2,.sunday-copy h2,.visit h2{margin-bottom:1.25rem;font-size:clamp(2.25rem,5vw,4.6rem)}
.story-copy p:not(.section-mark),.sunday-copy p:not(.section-mark){max-width:35ch;margin-bottom:1.65rem}
.place-scene{position:relative;height:34rem;margin-top:-2rem;overflow:hidden}
.place-scene>img{width:100%;height:100%;object-fit:cover;object-position:center 47%;display:block;filter:saturate(.75) contrast(1.04)}
.place-scene:after{position:absolute;inset:0;background:linear-gradient(0deg,oklch(.13 .015 83/.54),transparent 55%);content:""}
.scene-caption{position:absolute;z-index:1;right:1.5rem;bottom:1.5rem;display:flex;align-items:end;gap:.9rem;color:var(--light)}
.scene-caption span{font:clamp(3.5rem,8vw,7rem)/.75 var(--display)}
.scene-caption p{margin:0;font:italic .84rem/1.4 var(--display)}
.menu-panel{position:relative;z-index:2;display:grid;gap:0;width:calc(100% - 2.5rem);margin:-4rem auto var(--space-4);background:var(--paper-bright)}
.menu-photo{margin:0}
.menu-photo img{display:block;width:100%;height:20rem;object-fit:cover}
.menu-copy{padding:var(--space-4) 1.25rem 1.5rem}
.menu-text>.button{display:flex;width:max-content;margin:0 auto}
.menu-intro{max-width:34ch;margin-bottom:2rem}
.menu-gallery{display:grid;grid-template-columns:1.08fr .92fr;grid-template-rows:10rem 10rem 11rem 10rem;gap:.125rem;margin:0 -1.25rem 2.25rem}
.menu-gallery figure{min-width:0;margin:0;overflow:hidden;background:var(--olive-deep)}
.menu-gallery-sandwich{grid-row:span 2}
.menu-gallery-wide{grid-column:span 2}
.menu-gallery img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .45s cubic-bezier(.16,1,.3,1)}
.menu-gallery-sandwich img{object-position:center}
.menu-gallery figure:nth-child(2) img{object-position:center 43%}
.menu-gallery figure:nth-child(3) img{object-position:center 48%}
.sunday{display:grid;background:var(--paper-bright)}
.sunday figure{margin:0;min-height:27rem;overflow:hidden;background:var(--olive-deep)}
.sunday figure img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 38%}
.sunday-copy{align-self:center;padding:var(--space-5) 1.5rem 2rem}
.sunday-copy .section-mark{font:italic 1.02rem/1.35 var(--display);letter-spacing:.01em;text-transform:none}
.sunday-copy p:last-child{margin-bottom:0}
.image-strip{display:grid;grid-template-columns:1fr 1fr;height:16rem;overflow:hidden}
.image-strip .image-frame{min-width:0;overflow:hidden}
.image-strip .image-frame img{display:block;width:100%;height:100%;object-fit:cover}
.image-strip .image-frame:first-child img{object-position:center 28%}
.visit{padding:var(--space-5) 1.25rem var(--space-4);background:var(--paper)}
.visit-intro{max-width:32rem}
.visit-intro .section-mark{display:inline-block;padding-bottom:.55rem;border-bottom:1px solid var(--line)}
.visit-details{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem 1rem;margin:2rem 0}
.visit-details address,.visit-details div{display:grid;gap:.45rem;font-style:normal}
.visit-details span{color:var(--muted);font-size:.67rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase}
.visit-details a{color:var(--ink);text-decoration:none}
.visit-details p{margin:0}
.map{position:relative;height:23rem;margin-top:2.5rem;background:oklch(.9 .01 90)}
.map iframe{width:100%;height:100%;border:0;filter:grayscale(.35) saturate(.55) contrast(1.04)}
.map-link{position:absolute;right:1rem;bottom:1rem;z-index:1;display:inline-flex;align-items:center;min-height:2.75rem;padding:.55rem .8rem;background:var(--olive-deep);color:var(--light);font-size:.68rem;font-weight:900;letter-spacing:.075em;text-decoration:none;text-transform:uppercase;box-shadow:0 5px 18px oklch(.16 .02 82/.18)}
footer{display:grid;gap:1.25rem;padding:2.6rem 1.25rem;background:var(--olive-deep);color:var(--light)}
footer p{margin:0;color:oklch(.83 .015 90);font-size:.9rem}
footer div{display:flex;gap:1.25rem;flex-wrap:wrap}
footer div a{color:var(--light);text-decoration:none;font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
#story,#menu,#visit{scroll-margin-top:5.5rem}
:where(a,button,select):focus-visible{outline:3px solid oklch(.82 .06 90);outline-offset:4px}
.button:active,.menu-toggle:active{transform:translateY(1px)}
@media(min-width:46rem){.site-header{top:0;width:100%;padding:.65rem 3rem}
.header-actions{position:absolute;left:50%;transform:translateX(-50%)}
.menu-toggle{display:none}
nav{position:fixed;z-index:20;top:.65rem;right:3rem;bottom:auto;display:block;width:auto;max-width:none;padding:0;overflow:visible;background:transparent;color:var(--light);opacity:1;visibility:visible;pointer-events:auto;transform:none}
nav.scrolled{color:var(--ink)}
nav .drawer-head{display:none}
.drawer-nav{display:flex;gap:1.5rem;padding:0}
.drawer-nav a{display:block;min-height:0;padding:.25rem 0;border:0;color:inherit;font:800 .76rem var(--sans);letter-spacing:.07em;text-transform:uppercase}
.drawer-nav .nav-cta{margin:0;padding-left:0;border:0;border-bottom:1px solid currentColor;color:inherit;font-family:var(--sans);font-size:.76rem;font-weight:800;letter-spacing:.07em}
.language-drawer{width:min(80vw,26rem)}
.site-shell{margin-top:0}
.hero{min-height:45rem}
.hero-detail{margin:0 3rem 3rem auto}
.story-panel{grid-template-columns:.78fr 1.22fr;gap:clamp(2rem,6vw,6rem);width:calc(100% - 8rem);margin-top:-5.5rem;padding:1.25rem}
.story-photo img{height:34rem}
.story-copy{padding:2rem 1rem}
.place-scene{height:42rem;margin-top:-3rem}
.scene-caption{right:3rem;bottom:3rem}
.menu-panel{grid-template-columns:1fr 1fr;width:calc(100% - 8rem);margin:-6rem auto var(--space-6)}
.menu-photo img{height:100%;min-height:39rem}
.menu-copy{padding:clamp(3rem,7vw,6rem)}
.menu-gallery{grid-template-rows:clamp(10rem,14vw,13rem) clamp(10rem,14vw,13rem) clamp(8rem,11vw,10rem) clamp(10rem,14vw,13rem);gap:.5rem;margin:0 0 3rem}
.sunday{grid-template-columns:1.05fr .95fr}
.sunday figure{min-height:39rem}
.sunday-copy{padding:clamp(4rem,8vw,7rem)}
.image-strip{height:25rem}
.visit{display:grid;grid-template-columns:.8fr 1.2fr;gap:4rem;padding:clamp(4rem,8vw,7rem)}
.visit-details{grid-template-columns:1.2fr 1fr 1fr;grid-column:2;margin:0}
.map{grid-column:2;height:29rem;margin-top:0}
footer{grid-template-columns:1.2fr 1fr 1fr;align-items:center;padding:2.6rem 3rem}
}

/* Desktop: use the wider canvas for a more deliberate reading rhythm without altering the phone layout. */
@media(min-width:64rem){
.hero{min-height:calc(100svh + 5.5rem)}
.hero-copy{position:absolute;top:clamp(8rem,17svh,11rem);left:50%;width:min(100% - 6rem,52rem);margin:0;transform:translateX(-50%) scale(1.14);transform-origin:center top}
.hero-copy h1{font-size:clamp(3.15rem,7vw,6rem)}
.hero-detail{position:absolute;top:clamp(26rem,65svh,38rem);left:50%;align-self:auto;width:min(100% - 6rem,35rem);margin:0;padding:2.1rem 2.6rem 2.2rem;background:oklch(.13 .018 82/.62);font-size:1.08rem;text-align:center;transform:translateX(-50%)}
.hero-detail .hero-hours{text-align:center}
.hero-actions{justify-content:center}
.story-panel,.menu-panel{width:min(100% - 8rem,84rem)}
.story-panel{grid-template-columns:.86fr 1.14fr;gap:clamp(3rem,6vw,6rem)}
.story-photo img{height:36rem}
.story-copy{max-width:38rem;padding:3rem 1rem 3rem 0}
.menu-panel{display:block;margin-bottom:5rem}
.menu-photo img{height:clamp(22rem,31vw,29rem);min-height:0;object-position:center 52%}
.menu-copy{display:grid;grid-template-columns:minmax(19rem,.75fr) minmax(0,1.25fr);align-items:start;column-gap:clamp(3rem,6vw,6rem);padding:clamp(3.5rem,6vw,5.75rem)}
.menu-copy>.menu-text{grid-column:1;align-self:start;max-width:28rem}
.menu-copy>.menu-gallery{grid-column:2;grid-row:1;margin:0}
.menu-text>.button{width:max-content;margin:2rem 0 0}
.menu-intro{font-size:1.08rem}
.weekend-showcase{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:42rem 24rem;background:var(--paper-bright)}
.weekend-showcase .sunday{display:contents}
.weekend-showcase .sunday figure{grid-column:2;grid-row:1;min-height:0;height:auto;margin:0}
.weekend-showcase .sunday-copy{grid-column:1;grid-row:1;min-height:0;padding:clamp(3.5rem,6vw,6rem);background:var(--paper-bright)}
.weekend-showcase .sunday-copy .section-mark{margin-bottom:1.25rem;font-size:1.16rem}
.weekend-showcase .sunday-copy h2{max-width:9ch;margin-bottom:1.7rem;font-size:clamp(3.45rem,5.7vw,5.35rem);letter-spacing:-.03em}
.weekend-showcase .sunday-copy p:not(.section-mark){max-width:30ch;font-size:1.1rem;line-height:1.7}
.weekend-showcase .image-strip{grid-column:1/-1;grid-row:2;height:auto;overflow:visible}
.weekend-showcase .image-strip .image-frame{align-self:start;height:24rem}
.weekend-showcase .image-strip .image-frame-offset img{object-position:center 70%}
.sunday-copy{display:flex;flex-direction:column;justify-content:center;min-height:42rem;padding:clamp(4rem,7vw,6.5rem)}
.visit{display:block;padding:clamp(4.5rem,8vw,7rem) max(4rem,calc((100vw - 84rem)/2))}
.visit-intro{max-width:40rem}
.visit-details{grid-template-columns:1.2fr 1fr 1fr;gap:2.5rem;margin:3rem 0 2.5rem}
.map{height:32rem;margin-top:0}
}

@media(max-width:22rem){h1{font-size:2.5rem}.hero-copy{width:min(100% - 1.25rem,48rem)}}

@media(min-width:23rem) and (max-width:45.99rem){.hero-copy h1{letter-spacing:0}.hero-copy h1 span{white-space:nowrap}}

@media(max-width:45.99rem){.visit-details>div:last-child{display:flex;flex-wrap:wrap;gap:.45rem 1.15rem;grid-column:1/-1}.visit-details>div:last-child span{flex-basis:100%}}

@media(hover:hover){.menu-gallery figure:hover img{transform:scale(1.035)}}

@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}
}
