:root{--cream:#f5f0e6;--paper:#fffcf7;--ink:#253029;--muted:#626b60;--olive:#536345;--olive-dark:#364332;--line:#d8d9cf;--sage:#dfe5d6;--gold:#b79057;--shadow:0 20px 44px rgba(54,67,50,.22)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:Arial,Helvetica,sans-serif;line-height:1.55}a{color:inherit}img{max-width:100%;display:block}h1,h2,h3,p{margin-top:0}h1,h2,h3{line-height:1.07}h1,h2{font-family:Georgia,'Times New Roman',serif;font-weight:400;letter-spacing:-.055em}em{font-weight:400}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible{outline:3px solid #b26b2c;outline-offset:4px}.wrap{width:min(100% - 88px,1360px);margin-inline:auto}.skip-link{position:absolute;left:16px;top:-100px;z-index:100;background:#fff;padding:12px 18px}.skip-link:focus{top:10px}.review-ribbon{background:#e9dfc9;text-align:center;font-size:12px;font-weight:700;letter-spacing:.11em;text-transform:uppercase;padding:7px 12px}.site-header{height:91px;display:flex;align-items:center;gap:48px;padding:0 max(44px,calc((100vw - 1360px)/2));border-bottom:1px solid var(--line);background:var(--cream)}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;white-space:nowrap}.brand-mark{font:italic 53px Georgia,serif;line-height:.8;letter-spacing:-.13em}.brand-mark span,.footer-brand span,.period{color:var(--gold)}.brand-name{font-weight:900;font-size:20px;line-height:1;letter-spacing:.28em}.brand-name small{display:block;margin-top:6px;font-size:7px;letter-spacing:.46em}.site-header nav{display:flex;align-items:center;gap:36px;margin-left:auto}.site-header nav a{text-decoration:none;font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.12em}.site-header nav a:hover,.site-header nav a[aria-current=page]{color:var(--olive)}.header-call{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;text-decoration:none;border-bottom:1px solid var(--ink);padding-bottom:3px}.header-call span{margin-left:14px}.hero{display:grid;grid-template-columns:.92fr 1.08fr;min-height:670px;gap:6%;align-items:center;padding-block:56px 64px}.hero-copy{padding-bottom:14px}.eyebrow,.small-label,.feature-index,.menu-number{font-size:11px;font-weight:800;letter-spacing:.22em;text-transform:uppercase}.eyebrow{display:flex;align-items:center;gap:13px;color:var(--olive);margin-bottom:24px}.line{width:34px;height:1px;background:currentColor}.hero h1{font-size:clamp(58px,6.1vw,98px);margin-bottom:27px;white-space:nowrap}.hero h1 em,.visit-copy h2 em{color:var(--olive)}.hero-intro{max-width:480px;font-size:16px;color:var(--muted);line-height:1.78;margin-bottom:30px}.button-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.button{min-height:56px;padding:18px 32px;display:inline-flex;align-items:center;justify-content:center;gap:38px;text-decoration:none;font-size:16px;line-height:1.2;font-weight:700;white-space:nowrap;transition:background-color .18s,color .18s,transform .18s,box-shadow .18s}.button:hover{transform:translateY(-2px)}.button-primary{background:var(--olive);color:#fff;box-shadow:var(--shadow)}.button-primary:hover{background:var(--olive-dark)}.button-light{background:var(--paper);border:1px solid var(--line)}.button-light:hover{background:#e9ece4}.button-dark{background:var(--ink);color:#fff}.button-dark:hover{background:#435448}.button-outline{border:1px solid #738172}.button-outline:hover{background:#e9ece4}.preview-note{font-size:12px;color:#656e63;margin:16px 0 0;max-width:550px}.hero-visual{height:570px;position:relative;padding:18px 35px 20px 0}.photo-placeholder-main{width:100%;height:100%;background:radial-gradient(circle at 65% 22%,#dfd6b7 0 11%,transparent 11.5%),linear-gradient(140deg,#869278 0%,#58664f 46%,#2f3e32 100%);position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;color:#fcf8ec;box-shadow:0 28px 48px rgba(33,49,36,.12)}.photo-placeholder-main:before,.photo-placeholder-main:after{content:"";position:absolute;border:1px solid rgba(255,255,255,.26);border-radius:50%;width:77%;aspect-ratio:1}.photo-placeholder-main:after{width:62%}.photo-placeholder-main span:not(.photo-ornament){font:italic clamp(42px,4.4vw,70px)/1.15 Georgia,serif;letter-spacing:-.06em;z-index:1}.photo-placeholder-main .photo-ornament{position:absolute;top:9%;font-size:25px}.photo-placeholder-main small{z-index:1;text-transform:uppercase;letter-spacing:.22em;font-size:10px;margin-top:26px}.visual-tag{position:absolute;right:0;bottom:0;background:var(--paper);border:1px solid var(--line);padding:20px 27px;display:flex;align-items:center;gap:15px;color:var(--olive);font-size:10px;font-weight:800;line-height:1.5;letter-spacing:.17em}.sun-icon{font-size:41px;line-height:1}.quick-facts{display:grid;grid-template-columns:1.1fr 1fr .8fr;border-block:1px solid var(--line);padding-block:25px;gap:20px}.quick-facts>div{display:flex;gap:15px;align-items:center;border-right:1px solid var(--line);padding-left:18px}.quick-facts>div:first-child{padding-left:0}.quick-facts>div:last-child{border-right:0}.fact-icon{width:38px;height:38px;border:1px solid #b6c1aa;border-radius:50%;display:grid;place-items:center;color:var(--olive);font-size:22px;flex:none}.quick-facts .small-label{color:#677565;margin:0 0 2px}.quick-facts p:not(.small-label),.quick-facts a{font-size:13px;font-weight:700;margin:0;text-decoration:none}.quick-facts a{text-decoration:underline;text-underline-offset:3px}.intro-section{display:grid;grid-template-columns:1fr .62fr;gap:15%;align-items:end;padding-block:145px 62px}.intro-section h2,.gallery-heading h2{font-size:clamp(45px,4.4vw,68px);max-width:750px;margin:0}.intro-section .eyebrow,.gallery-heading .eyebrow{margin-bottom:20px}.section-copy{font-size:15px;line-height:1.9;color:var(--muted);margin-bottom:5px}.features{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;padding-bottom:120px}.feature-card{min-width:0}.feature-index{display:block;margin-bottom:14px;color:var(--olive)}.feature-art{height:clamp(240px,28vw,400px);display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}.feature-art:after{content:"";position:absolute;border:1px solid rgba(255,255,255,.38);inset:17px}.feature-art span{font:italic clamp(33px,3vw,48px)/1.1 Georgia,serif;letter-spacing:-.05em;text-align:center;color:#fff;transform:rotate(-8deg)}.food-art{background:radial-gradient(circle at 65% 32%,#e3d9ad 0 13%,transparent 13.5%),linear-gradient(135deg,#a6916c,#6a764f)}.drink-art{background:radial-gradient(circle at 42% 58%,#ccba85 0 12%,transparent 12.5%),linear-gradient(135deg,#6d7f65,#364534)}.space-art{background:radial-gradient(circle at 76% 26%,#e5d6a7 0 10%,transparent 10.5%),linear-gradient(135deg,#938466,#536b5a)}.feature-caption{padding:22px 4px}.feature-caption h3{font:normal 26px Georgia,serif;letter-spacing:-.04em;margin-bottom:8px}.feature-caption p{font-size:13px;color:var(--muted);line-height:1.65;max-width:330px}.menu-prompt{background:#dde4d6;min-height:250px;padding:48px 6%;display:flex;align-items:center;justify-content:space-between;gap:30px;margin-bottom:125px}.menu-prompt h2{font-size:clamp(40px,4vw,64px);margin:0 0 8px}.menu-prompt p:not(.eyebrow){margin:0;color:#5f6b5e;font-size:14px}.menu-prompt .eyebrow{margin-bottom:12px}.gallery-section{background:#eee9df;padding:104px 0 120px}.gallery-heading{text-align:center;margin-bottom:40px}.gallery-heading .eyebrow{justify-content:center}.gallery-heading h2{margin:0 auto}.gallery-heading p:last-child{font-size:14px;color:var(--muted);margin:14px 0 0}.gallery{display:grid;grid-template-columns:1.55fr 1fr 1fr;gap:15px}.gallery-slot{height:300px;background:#71816e;display:grid;place-items:center;position:relative;color:#f8f7ed}.gallery-slot:nth-child(2){background:#afa680}.gallery-slot:nth-child(3){background:#798e77}.gallery-slot:before{content:"";position:absolute;inset:12px;border:1px solid rgba(255,255,255,.35)}.gallery-slot span{font-size:11px;letter-spacing:.25em;font-weight:800}.visit-section{padding-block:140px;display:grid;grid-template-columns:1fr .85fr;gap:8%;align-items:center}.visit-copy h2{font-size:clamp(54px,5.5vw,82px);margin-bottom:30px}.visit-copy>p:not(.eyebrow):not(.preview-note){font-size:15px;color:var(--muted);margin-bottom:8px}.visit-copy .button-row{margin-top:28px}.map-placeholder{height:410px;background:#e1e6db;position:relative;overflow:hidden;display:grid;place-items:center;text-decoration:none}.map-grid{position:absolute;inset:-20%;background:linear-gradient(72deg,transparent 0 44%,#f6f3e9 44.2% 47%,transparent 47.2%),linear-gradient(18deg,transparent 0 37%,#f6f3e9 37.2% 40%,transparent 40.2%),linear-gradient(117deg,transparent 0 73%,#f6f3e9 73.2% 76%,transparent 76.2%);transform:rotate(-5deg)}.map-pin{z-index:1;width:65px;height:65px;background:var(--olive);border-radius:50%;color:#fff;display:grid;place-items:center;font-size:42px;box-shadow:0 14px 30px rgba(48,68,47,.3)}.map-caption{z-index:1;position:absolute;bottom:30px;background:var(--paper);padding:12px 20px;font-size:11px;font-weight:800;letter-spacing:.13em}.site-footer{background:#26332b;color:#e8ede4;padding:66px 0 22px}.footer-content{display:grid;grid-template-columns:1.7fr 1fr 1fr;gap:40px}.footer-brand{font:italic 52px Georgia,serif;letter-spacing:-.07em}.footer-content p{color:#c1cdbd;font-size:13px}.footer-content .small-label{color:#aabb9c}.footer-content a{display:block;text-decoration:none;font-size:14px;margin:0 0 12px}.footer-content a:hover{text-decoration:underline}.footer-bottom{display:flex;justify-content:space-between;gap:20px;border-top:1px solid #4d5b4f;margin-top:65px;padding-top:18px;font-size:11px;color:#aabb9c}.mobile-actions{display:none}
/* Menu page */
.menu-hero{padding-block:105px 65px}.menu-hero .eyebrow{margin-bottom:22px}.menu-hero h1{font-size:clamp(80px,11vw,160px);margin:0 0 8px}.menu-hero>p:not(.eyebrow){color:var(--muted);font-size:18px;margin-bottom:38px}.menu-status{display:flex;gap:18px;align-items:start;max-width:740px;padding:22px 25px;background:#e8e3d5;border-left:3px solid var(--gold)}.menu-status>span{font-size:26px;color:var(--olive);line-height:1}.menu-status strong{display:block;font-size:14px;margin-bottom:3px}.menu-status p{font-size:13px;line-height:1.6;color:var(--muted);margin:0}.menu-nav{display:flex;gap:8px;border-bottom:1px solid var(--line);padding-bottom:17px}.menu-nav a{text-decoration:none;font-size:13px;font-weight:700;padding:10px 18px;background:#e7e9df}.menu-nav a:hover{background:var(--sage)}.menu-section{padding-block:85px 100px;scroll-margin-top:20px;border-bottom:1px solid var(--line)}.menu-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:30px}.menu-heading .eyebrow{margin-bottom:10px}.menu-heading h2{font-size:clamp(62px,7vw,100px);margin:0}.menu-number{color:var(--olive)}.menu-empty{min-height:260px;background:#eae9df;border:1px dashed #b7bfaf;display:flex;gap:25px;align-items:center;justify-content:center;padding:35px}.menu-empty-symbol{font-size:54px;color:var(--olive)}.menu-empty h3{font:normal 30px Georgia,serif;letter-spacing:-.03em;margin-bottom:8px}.menu-empty p{max-width:400px;color:var(--muted);font-size:14px;line-height:1.7;margin:0}.menu-visit{display:flex;justify-content:space-between;gap:40px;flex-wrap:wrap;align-items:center;background:#dde4d6;padding:55px 6%;margin-block:110px}.menu-visit h2{font-size:clamp(38px,4vw,58px);margin:0 0 10px}.menu-visit p:not(.eyebrow):not(.preview-note){font-size:14px;color:var(--muted);margin:0}.menu-visit .preview-note{width:100%;margin:0}
@media(max-width:1000px){.wrap{width:min(100% - 48px,1360px)}.site-header{padding-inline:24px}.hero{min-height:0;gap:3%;padding-block:50px}.hero h1{font-size:clamp(48px,6vw,74px)}.hero-visual{height:500px}.quick-facts>div{padding-left:8px}.intro-section{padding-top:100px}.features{gap:15px}.feature-caption h3{font-size:23px}.visit-section{gap:4%}.button{gap:20px;padding-inline:32px}}
@media(max-width:700px){.wrap{width:min(100% - 36px,1360px)}.review-ribbon{font-size:9px;line-height:1.3;padding:7px 12px}.site-header{height:72px;padding:0 18px;gap:12px}.brand-mark{font-size:43px}.brand-name{font-size:15px}.brand-name small{font-size:6px}.site-header nav{gap:16px}.site-header nav a{font-size:11px;letter-spacing:.04em}.header-call{display:none}.hero{display:flex;flex-direction:column;align-items:stretch;padding-block:56px 45px;gap:38px}.hero h1{font-size:clamp(49px,10vw,70px);white-space:normal;margin-bottom:20px}.hero-intro{font-size:15px;margin-bottom:25px}.hero .button-row{gap:9px}.button{padding:18px 32px;gap:16px}.hero-visual{height:430px;padding:0 18px 18px 0}.photo-placeholder-main span:not(.photo-ornament){font-size:clamp(42px,10vw,60px)}.quick-facts{display:block;padding:0}.quick-facts>div,.quick-facts>div:first-child{border-right:0;border-bottom:1px solid var(--line);padding:20px 0}.quick-facts>div:last-child{border-bottom:0}.intro-section{display:block;padding-block:90px 36px}.intro-section h2,.gallery-heading h2{font-size:clamp(43px,9vw,60px)}.section-copy{margin-top:22px}.features{grid-template-columns:1fr;gap:18px;padding-bottom:85px}.feature-art{height:350px}.feature-caption{padding:18px 4px 0}.feature-caption p{margin-bottom:8px}.menu-prompt{margin-bottom:80px;padding:36px 25px;display:block}.menu-prompt .button{margin-top:26px}.gallery-section{padding:80px 0}.gallery{grid-template-columns:1fr 1fr;gap:10px}.gallery-slot{height:180px}.gallery-slot-wide{grid-column:1/-1;height:260px}.visit-section{display:block;padding-block:90px}.visit-copy h2{font-size:clamp(52px,10vw,70px)}.map-placeholder{height:300px;margin-top:44px}.site-footer{padding-top:50px;padding-bottom:90px}.footer-content{grid-template-columns:1fr 1fr;gap:25px}.footer-content>div:first-child{grid-column:1/-1}.footer-bottom{margin-top:40px;display:block}.footer-bottom span{display:block;margin-bottom:6px}.mobile-actions{display:grid;grid-template-columns:1fr 1fr;position:fixed;bottom:0;left:0;right:0;z-index:20;background:var(--paper);padding:9px 12px calc(9px + env(safe-area-inset-bottom));gap:8px;box-shadow:0 -6px 20px rgba(24,37,28,.14)}.mobile-actions a{min-height:50px;padding:12px 6px;display:flex;justify-content:center;align-items:center;gap:10px;text-align:center;text-decoration:none;font-size:14px;font-weight:800;background:var(--olive);color:#fff}.mobile-actions a+ a{background:#e6eadf;color:var(--ink)}.menu-hero{padding-block:70px 40px}.menu-hero h1{font-size:clamp(80px,17vw,110px)}.menu-hero>p:not(.eyebrow){font-size:16px}.menu-nav{overflow-x:auto;white-space:nowrap}.menu-section{padding-block:65px 75px}.menu-empty{min-height:250px;display:block;text-align:center;padding:32px 20px}.menu-empty-symbol{margin-bottom:15px}.menu-empty h3{font-size:26px}.menu-visit{margin-block:75px;padding:38px 25px;display:block}.menu-visit .button-row{margin-block:25px}.menu-visit .preview-note{margin-top:0}}
@media(max-width:390px){.site-header nav{gap:10px}.site-header nav a{font-size:10px}.brand-name{font-size:13px}.hero h1{font-size:48px}.button-row .button{width:100%;justify-content:space-between}.hero-visual{height:365px}.feature-art{height:310px}.gallery-slot-wide{height:220px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.button{transition:none}.button:hover{transform:none}}

/* Review contrast corrections. */
.quick-facts .small-label{color:#53634f}.menu-prompt p:not(.eyebrow),.menu-visit p:not(.eyebrow):not(.preview-note){color:#4d5c4c}.gallery-slot{background:#586b56}.gallery-slot:nth-child(2){background:#6d654a}.gallery-slot:nth-child(3){background:#5b7159}

.menu-status p{color:#4d574c}.menu-visit .preview-note{color:#4d574c}

/* Text menus transcribed for client review. */
.menu-section-note{max-width:740px;color:#4d574c;font-size:14px;line-height:1.7;margin:0 0 32px}
.menu-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:38px 52px}
.menu-group{min-width:0;break-inside:avoid}
.menu-group h3{font:normal 32px Georgia,serif;letter-spacing:-.04em;margin:0 0 8px}
.menu-group-note{color:#4d574c;font-size:13px;line-height:1.6;margin:0 0 14px;max-width:540px}
.menu-items{list-style:none;padding:0;margin:0}
.menu-item{display:flex;align-items:baseline;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);padding:12px 0;color:var(--ink);font-size:14px}
.menu-item-name{min-width:0;font-weight:700;overflow-wrap:anywhere}
.menu-item-name small{display:block;font-weight:400;font-size:12px;color:#566255;line-height:1.45;margin-top:3px}
.menu-price{flex:none;font-weight:700;white-space:nowrap;text-align:right}
.food-nav{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 34px}
.food-nav a{padding:9px 14px;background:#e7e9df;text-decoration:none;font-size:13px;font-weight:700}
.food-nav a:hover{background:var(--sage)}
.food-groups .menu-group{scroll-margin-top:24px}
.menu-price-review{font-size:12px;white-space:normal;max-width:110px}
@media(max-width:700px){.menu-groups{grid-template-columns:1fr;gap:42px}.menu-group h3{font-size:29px}.menu-item{gap:12px}}
@media(max-width:390px){.menu-item{font-size:13px}.menu-price{font-size:12px}}

/* Approved The Patio identity. Keep the detailed logo on light surfaces. */
:root{--olive:#185839;--olive-dark:#0f4028;--gold:#c65711}
.brand-logo{width:66px;height:66px;object-fit:contain;flex:none}
.brand-name{font:700 20px/1.1 Arial,Helvetica,sans-serif;letter-spacing:.01em;text-transform:none}
.photo-placeholder-main small{max-width:70%;line-height:1.5}
.footer-logo-panel{width:130px;height:130px;background:var(--cream);padding:7px;display:grid;place-items:center}
.footer-logo-panel img{width:100%;height:100%;object-fit:contain}
.footer-brand{display:block;font:700 19px/1.2 Arial,Helvetica,sans-serif;letter-spacing:.01em;margin-top:14px}
@media(max-width:700px){.brand-logo{width:46px;height:46px}.brand-name{font-size:15px}}
@media(max-width:390px){.brand-logo{width:42px;height:42px}.brand-name{font-size:14px}.site-header .brand{gap:6px}}

/* Photo review treatment and the green/orange palette from the supplied logo. */
:root{--cream:#f7f1e5;--paper:#fffcf6;--ink:#193a2a;--muted:#4f6254;--olive:#185839;--olive-dark:#103f29;--line:#d4d7c8;--sage:#e3eadb;--gold:#a94305;--shadow:0 16px 32px rgba(18,64,40,.18)}
.review-ribbon{background:#fce5c6;color:var(--ink)}
.eyebrow,.feature-index,.period{color:var(--gold)}
.hero h1 em,.visit-copy h2 em{color:var(--olive)}
.visual-tag{border-left:4px solid #f68a1e}.sun-icon{color:var(--gold)}
.menu-prompt,.menu-visit{background:var(--sage)}
.gallery-section{background:#f1eadd}
.menu-status{border-left-color:var(--gold)}
.hero-photo-wrap{position:relative;width:100%;height:100%;overflow:hidden;background:#c7d0b9;box-shadow:0 28px 48px rgba(33,49,36,.16)}
.hero-photo-wrap picture{display:block;width:100%;height:100%}
.hero-photo{width:100%;height:100%;object-fit:cover}
.photo-caption{position:absolute;bottom:22px;left:22px;background:rgba(22,49,34,.9);color:#fff;padding:8px 11px;font:700 10px/1.2 Arial,Helvetica,sans-serif;letter-spacing:.12em;text-transform:uppercase}
.feature-art img{width:100%;height:100%;object-fit:cover}.gallery-slot img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.gallery-slot{margin:0;overflow:hidden;background:#d7ddce}
.gallery-slot:before{z-index:1}.gallery-slot:before,.feature-art:after{pointer-events:none}
.map-card{min-width:0;border:1px solid var(--line);background:var(--paper);box-shadow:0 18px 38px rgba(25,58,42,.1)}
.map-image-frame{position:relative}
.map-image-link{display:block}
.map-image-link img{display:block;width:100%;height:auto;aspect-ratio:5/4;object-fit:cover}
.map-attribution{display:block;width:max-content;min-height:32px;margin-left:auto;padding:7px 10px;color:var(--ink);font-size:11px;line-height:1.6;text-decoration:none}
.map-attribution:hover{text-decoration:underline}
.map-card>a{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;color:var(--olive);font-size:14px;font-weight:800;text-decoration:none}
.map-card>a:hover{text-decoration:underline;text-underline-offset:3px}
.site-footer{background:#e3eadb;color:var(--ink);border-top:5px solid var(--olive)}
.footer-logo-panel{background:none;padding:0}
.footer-content p,.footer-bottom{color:#3d5947}
.footer-content .small-label{color:var(--olive)}
.footer-bottom{border-top-color:#b7c9b8}
@media(max-width:700px){.photo-caption{bottom:18px;left:18px}.map-card{margin-top:44px}}

/* Hero positioning and compact, two-action mobile hierarchy. */
.hero-positioning{color:var(--olive);font-size:clamp(18px,1.6vw,22px);font-weight:700;line-height:1.35;margin:0 0 12px}
@media(max-width:1000px){.photo-caption{top:18px;bottom:auto}}
@media(max-width:700px){.mobile-actions a{min-height:56px;padding:18px 32px;font-size:16px;white-space:nowrap}}

/* Confirmed restaurant and kitchen hours. */
.quick-facts .fact-hours p+p{margin-top:3px}
.hours-range{white-space:nowrap}
.visit-hours{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;border-block:1px solid var(--line);padding-block:18px;margin:22px 0 0}
.visit-hours div{min-width:0}
.visit-hours dt{color:var(--olive);font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;margin-bottom:6px}
.visit-hours dd{color:var(--ink);font-size:14px;line-height:1.5;margin:0}
.menu-visit .menu-hours{padding-top:10px;line-height:1.6}
@media(max-width:1000px){.visit-hours{grid-template-columns:1fr;gap:12px}}
@media(min-width:701px) and (max-width:1000px){.fact-hours .hours-range{display:block}}

/* The current client menus: grouped prices, wine regions, and long names. */
.menu-hero{padding-block:72px 38px}
.menu-hero>p:not(.eyebrow){margin-bottom:0}
.menu-section{padding-block:64px 82px}
.menu-group h3{display:flex;align-items:baseline;justify-content:space-between;gap:14px;flex-wrap:wrap}
.menu-group-price{font:700 17px/1.3 Arial,Helvetica,sans-serif;letter-spacing:0;white-space:nowrap}
.menu-subheading{margin:35px 0 22px;scroll-margin-top:24px}
.menu-subheading h3{font:normal 38px/1.12 Georgia,serif;letter-spacing:-.04em;margin:0}
.menu-tagline{margin-top:32px;font-style:italic}
.menu-price-review{font-weight:400;color:#79501f;white-space:normal;max-width:100px;line-height:1.25}
.wine-region{flex:none;color:#4d5c4c;font-size:11px;font-weight:800;letter-spacing:.12em;text-align:right;white-space:nowrap}
.menu-group,.food-nav>a{scroll-margin-top:24px}
@media(max-width:700px){
  .menu-hero{padding-block:46px 26px}
  .menu-hero h1{font-size:clamp(65px,17vw,100px)}
  .menu-section{padding-block:52px 68px}
  .menu-section-note{margin-bottom:24px}
  .menu-subheading h3{font-size:30px}
  .menu-item{gap:12px}
  .wine-items .menu-item{align-items:flex-start}
  .wine-region{font-size:10px;max-width:98px;white-space:normal}
}

/* Comfortable tap areas for the always-visible mobile header navigation. */
@media(max-width:700px){
  .site-header nav{gap:8px}
  .site-header nav a{display:inline-flex;min-width:44px;min-height:44px;align-items:center;justify-content:center}
}

/* Clear, lightweight feedback for the header links. */
.site-header nav a{position:relative;display:inline-flex;min-height:44px;align-items:center;justify-content:center;transition:color .2s ease,transform .28s cubic-bezier(.16,1,.3,1)}
.site-header nav a::after{content:"";position:absolute;left:0;right:0;bottom:2px;height:4px;border-radius:3px;background:var(--gold);transform:scaleX(0);transform-origin:center;transition:transform .32s cubic-bezier(.16,1,.3,1)}
.site-header nav a:is(:hover,:focus-visible,:active,[aria-current="page"])::after{transform:scaleX(1)}
@media(min-width:701px) and (hover:hover) and (prefers-reduced-motion:no-preference){
  .home-page .site-header nav a:hover{transform:translateY(-2px)}
}
@media(prefers-reduced-motion:reduce){.site-header nav a,.site-header nav a::after{transition:none}}

/* Full-viewport photo hero using the supplied restaurant image. */
.hero--image{position:relative;display:flex;align-items:center;width:100%;min-height:calc(100vh - 91px);min-height:calc(100svh - 91px);padding-block:72px;overflow:hidden;color:#fff}
.hero--image .hero-copy{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;text-align:center;padding:0}
.hero--image .hero-line{display:block}
.hero--image h1{width:min(100%,820px);font-size:clamp(60px,7vw,104px);line-height:1.07;white-space:normal;margin-bottom:32px;text-shadow:0 2px 14px rgba(0,0,0,.18)}
.hero--image h1 em{color:#f68a1e}
.hero--image .eyebrow{justify-content:center;color:#f8ecda;margin-bottom:32px}
.hero--image .hero-positioning{color:#f68a1e;font-size:clamp(19px,1.9vw,24px);font-weight:400;letter-spacing:.05em;margin-bottom:40px}
.hero--image .button-row{justify-content:center}
.hero--image .button-light{color:var(--ink)}
.hero--image .hero-visual{position:absolute;inset:0;z-index:0;width:100%;height:100%;padding:0}
.hero--image .hero-photo-wrap{height:100%;background:#18251c;box-shadow:none}
.hero--image .hero-photo-wrap::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(8,24,17,.82) 0%,rgba(8,24,17,.76) 48%,rgba(8,24,17,.45) 100%);pointer-events:none}
.hero--image .photo-caption{z-index:2;top:auto;left:auto;right:24px;bottom:24px;background:#173923;color:#fff;font-size:11px}
.hero--image a:focus-visible{outline-color:#ffe0b6}
@media(max-width:700px){
  .hero--image{min-height:calc(100vh - 72px);min-height:calc(100svh - 72px);justify-content:center;padding-block:54px 120px}
  .hero--image .eyebrow{margin-bottom:28px}
  .hero--image h1{font-size:clamp(48px,11.3vw,64px);line-height:1.05;margin-bottom:28px}
  .hero--image .hero-positioning{font-size:18px;margin-bottom:32px}
  .hero--image .button-row{width:100%}
  .hero--image .button-row .button{justify-content:center}
  .hero--image .hero-photo-wrap::after{background:rgba(8,24,17,.72)}
  .hero--image .photo-caption{top:18px;right:18px;bottom:auto}
}
@media(max-width:700px) and (max-height:700px){
  .hero--image .eyebrow{margin-bottom:24px}
  .hero--image h1{line-height:1.01;margin-bottom:22px}
  .hero--image .hero-positioning{margin-bottom:24px}
}

/* A compact, JavaScript-free section picker; the original category and mobile bars stay in place. */
.menu-jump{position:fixed;right:20px;bottom:72px;z-index:30}
.menu-jump-toggle{min-width:112px;min-height:48px;padding:11px 18px;display:inline-flex;align-items:center;justify-content:space-between;gap:16px;background:var(--olive);color:#fff;border-radius:24px;box-shadow:0 8px 24px rgba(18,64,40,.24);font-size:14px;font-weight:700;text-decoration:none}
.menu-jump-toggle:hover{background:var(--olive-dark)}
.menu-jump-toggle span{font-size:21px;line-height:1}
.menu-jump-close{display:none}
.menu-jump-options{display:grid;position:absolute;right:0;bottom:calc(100% + 8px);width:172px;padding:6px;background:var(--paper);border:1px solid var(--line);border-radius:12px;box-shadow:0 14px 34px rgba(18,64,40,.2);opacity:0;visibility:hidden;pointer-events:none;transform:translateY(8px) scale(.96);transform-origin:bottom right}
.menu-jump-options:target{opacity:1;visibility:visible;pointer-events:auto;transform:none}
.menu-jump-options a{display:flex;align-items:center;min-height:44px;padding:9px 12px;border-radius:7px;color:var(--ink);font-size:14px;font-weight:700;text-decoration:none}
.menu-jump-options a:hover,.menu-jump-options a:focus-visible{background:var(--sage)}
.menu-jump:has(.menu-jump-options:target) .menu-jump-open{display:none}
.menu-jump:has(.menu-jump-options:target) .menu-jump-close{display:inline-flex}
@media(max-width:700px){.menu-jump{right:12px;bottom:calc(92px + env(safe-area-inset-bottom))}}

/* Home motion gives feedback without hiding text, CTAs, or photographs. */
/* Let Lenis drive wheel scrolling when active; native smooth anchors remain the no-JS fallback. */
html.home-page.lenis{scroll-behavior:auto}
html.home-page.lenis,html.home-page.lenis body{height:auto}
.home-page .button span[aria-hidden="true"],.home-page .map-card>a span[aria-hidden="true"]{display:inline-block;transition:transform .18s ease}
.home-page .button:focus-visible span[aria-hidden="true"],.home-page .map-card>a:focus-visible span[aria-hidden="true"]{transform:translate(2px,-2px)}
@media(hover:hover){
  .home-page .button:hover span[aria-hidden="true"],.home-page .map-card>a:hover span[aria-hidden="true"]{transform:translate(2px,-2px)}
}
@media(prefers-reduced-motion:no-preference){
  .home-page .hero--image .hero-copy > .eyebrow,.home-page .hero--image .hero-line,.home-page .hero--image .hero-positioning{animation:patio-hero-rise .72s cubic-bezier(.16,1,.3,1) both}
  .home-page .hero--image .hero-line:nth-child(1){animation-delay:.09s}
  .home-page .hero--image .hero-line:nth-child(2){animation-delay:.18s}
  .home-page .hero--image .hero-line:nth-child(3){animation-delay:.27s}
  .home-page .hero--image .hero-positioning{animation-delay:.36s}
  .home-page .hero--image .eyebrow .line{transform-origin:left;animation:patio-rule .45s ease-out}
  .home-page .hero--image .eyebrow .line:last-child{transform-origin:right}
  .home-page .button:active{transform:translateY(1px) scale(.99)}
  .home-page .mobile-actions a{transition:transform .15s ease}
  .home-page .mobile-actions a:active{transform:scale(.985)}
}
@media(min-width:701px) and (prefers-reduced-motion:no-preference){
  .home-page [data-photo-reveal].photo-arriving img{animation:patio-photo .32s cubic-bezier(.2,.7,.2,1)}
}
@keyframes patio-hero-rise{from{opacity:0;transform:translate3d(0,22px,0)}to{opacity:1;transform:translate3d(0,0,0)}}
@keyframes patio-rule{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes patio-photo{from{opacity:.84;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}
@keyframes patio-menu-enter{from{opacity:0}to{opacity:1}}
/* Fade in the menu page once; keep its long content and anchor jumps still. */
html.menu-page{scroll-behavior:auto}
html.menu-page *,html.menu-page *::before,html.menu-page *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
html.menu-page .button:hover,html.menu-page .button:active,html.menu-page .button:is(:hover,:focus-visible) span[aria-hidden="true"]{transform:none}
@media(prefers-reduced-motion:no-preference){
  html.menu-page main{animation:patio-menu-enter .62s cubic-bezier(.4,0,.2,1) both!important}
  html.menu-page .menu-jump-options{transition:opacity .24s cubic-bezier(.16,1,.3,1),transform .24s cubic-bezier(.16,1,.3,1),visibility .24s!important}
  html.menu-page .menu-jump-toggle{transition:background-color .18s ease,transform .2s cubic-bezier(.16,1,.3,1)!important}
  html.menu-page .menu-jump-options a{transition:background-color .16s ease!important}
  html.menu-page .menu-jump-toggle:active{transform:scale(.97)}
}
@media(hover:hover) and (prefers-reduced-motion:no-preference){
  html.menu-page .menu-jump-toggle:hover{transform:translateY(-2px)}
}
@media(prefers-reduced-motion:reduce){
  html.home-page{scroll-behavior:auto}
  .home-page .button span[aria-hidden="true"],.home-page .map-card>a span[aria-hidden="true"],.home-page .mobile-actions a{transition:none}
  .home-page .button:is(:hover,:focus-visible) span[aria-hidden="true"],.home-page .map-card>a:is(:hover,:focus-visible) span[aria-hidden="true"]{transform:none}
}

/* Bottle and glass prices remain distinct in the wine menu. */
.wine-items .menu-item{display:grid;grid-template-columns:minmax(0,1fr) 88px;align-items:start;column-gap:20px;padding-block:16px}.wine-items .menu-item-name .wine-region{display:block;margin-top:5px;text-align:left;font-size:10px;font-weight:700;max-width:none;white-space:normal}.wine-pricing{display:grid;gap:7px;text-align:right}

.wine-pricing .menu-price{display:grid;grid-template-columns:18px 1fr;align-items:center;gap:8px;line-height:18px;font-variant-numeric:tabular-nums}.wine-price-icon{flex:none;width:18px;height:18px}.wine-price-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* Draw CTA arrows as vectors so platform emoji fonts cannot change their appearance. */
.button-arrow{display:inline-block;width:1em;height:1em;flex:none;vertical-align:-.125em;line-height:1}
.button-arrow svg{display:block;width:100%;height:100%}

/* Preserve each supplied photograph's proportions in a masonry gallery. */
.gallery--masonry{display:block;column-count:3;column-gap:16px}
.gallery--masonry .gallery-slot{display:block;height:auto;margin:0 0 16px;break-inside:avoid;-webkit-column-break-inside:avoid}
.gallery--masonry .gallery-slot img{position:static;width:100%;height:auto;object-fit:contain}
.quick-facts p.parking-note{margin-top:4px;font-weight:400;color:var(--muted)}
@media(max-width:1000px){.gallery--masonry{column-count:2}}
@media(max-width:700px){.gallery--masonry{column-gap:12px}.gallery--masonry .gallery-slot{margin-bottom:12px}}
