:root{--ink:#071519;--ink-soft:#10262a;--surface:#0d2024;--paper:#f1e6cc;--paper-dim:#cdbf9e;--red:#c1442d;--gold:#e5b737;--line:rgb(241 230 204/.18);--radius:4px;--ease:cubic-bezier(.16,1,.3,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--ink);color:var(--paper);font-family:Arial,"Helvetica Neue",sans-serif;font-size:16px;line-height:1.55}body:has(.lightbox[open]),body.menu-open{overflow:hidden}.skip-link{position:fixed;top:10px;left:10px;z-index:99;transform:translateY(-200%);padding:10px 14px;background:var(--paper);color:var(--ink)}.skip-link:focus{transform:none}.site-header{position:absolute;z-index:20;top:0;left:0;width:100%;height:78px;padding:14px clamp(18px,4vw,58px);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgb(241 230 204/.24);background:linear-gradient(rgb(4 14 16/.42),transparent)}.brand img{display:block;width:62px;height:48px;object-fit:contain}.desktop-nav{display:flex;gap:27px;margin-left:auto;margin-right:31px}.desktop-nav a,.footer-links a{color:var(--paper);text-decoration:none;font-size:.82rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase}.desktop-nav a:hover,.footer-links a:hover,.text-link:hover{color:var(--gold)}.header-actions{display:flex;gap:10px;align-items:center}.language-picker{position:relative}.language-trigger,.icon-button,.menu-toggle{border:1px solid rgb(241 230 204/.36);background:rgb(7 21 25/.54);color:var(--paper);cursor:pointer;min-height:44px}.language-trigger{display:flex;align-items:center;gap:7px;padding:0 12px;font:inherit;font-size:.78rem}.language-list{position:absolute;right:0;top:calc(100% + 8px);width:180px;padding:6px;background:var(--surface);border:1px solid var(--line);box-shadow:0 15px 35px rgb(0 0 0/.28)}.language-list button,.mobile-language-list button{display:block;width:100%;border:0;background:transparent;color:var(--paper);padding:10px;text-align:left;cursor:pointer;font:inherit}.language-list button:hover,.language-list button:focus-visible,.mobile-language-list button:hover,.mobile-language-list button:focus-visible{background:rgb(229 183 55/.14)}.icon-button{display:grid;place-items:center;width:44px;height:44px}.social-icon svg{width:15px;height:19px;fill:currentColor}.menu-toggle{display:none;width:44px;padding:10px}.menu-toggle span{display:block;width:19px;height:1px;background:currentColor;margin:5px auto}.mobile-shell{display:none}.hero{position:relative;isolation:isolate;min-height:100dvh;display:flex;align-items:flex-end;padding:clamp(110px,15vh,160px) clamp(22px,8vw,135px) clamp(45px,9vh,100px);overflow:hidden}.hero-image,.hero-shade{position:absolute;inset:0;width:100%;height:100%}.hero-image{object-fit:cover;object-position:center}.hero-shade{z-index:1;background:linear-gradient(90deg,rgb(3 12 14/.84) 0%,rgb(3 12 14/.51) 48%,rgb(3 12 14/.17) 100%),linear-gradient(0deg,rgb(3 12 14/.62),transparent 55%)}.hero-copy{position:relative;z-index:2;max-width:660px}.eyebrow{margin:0 0 14px;color:var(--gold);font-size:.75rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase}.hero h1{margin:0;color:#fff7e7;font-size:clamp(4rem,10vw,8.8rem);line-height:.86;letter-spacing:-.075em;font-weight:800}.hero h1 em{font-family:Georgia,serif;font-size:.87em;font-weight:400;letter-spacing:-.09em}.hero-intro{max-width:420px;margin:25px 0 30px;color:#f2ead9;font-size:clamp(1.05rem,1.8vw,1.3rem)}.hero-actions,.visit-actions{display:flex;gap:12px;flex-wrap:wrap}.button{display:inline-flex;justify-content:center;align-items:center;min-height:49px;padding:12px 19px;border:1px solid transparent;text-decoration:none;font-size:.82rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;transition:transform .25s var(--ease),background .25s var(--ease),color .25s var(--ease)}.button:active{transform:scale(.98)}.button-primary{background:var(--red);color:#fff}.button-primary:hover{background:#e15138}.button-quiet{border-color:rgb(255 255 255/.58);background:rgb(7 21 25/.24);color:#fff}.button-quiet:hover{background:rgb(255 255 255/.13)}.button-outline{border-color:var(--gold);background:transparent;color:var(--gold)}.button-outline:hover{background:var(--gold);color:var(--ink)}.section{padding:clamp(76px,10vw,150px) clamp(22px,8vw,135px)}.intro{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(280px,.9fr);gap:clamp(40px,9vw,150px);align-items:center;max-width:1600px;margin:auto}.intro-image-wrap{aspect-ratio:16/10;overflow:hidden;border-radius:var(--radius)}.intro-image-wrap img{width:100%;height:100%;object-fit:cover}.intro-copy{max-width:500px}.intro h2,.section-heading h2,.visit-copy h2{margin:0;color:var(--paper);font-size:clamp(2.25rem,4.1vw,4.2rem);line-height:.98;letter-spacing:-.055em}.intro-copy p:not(.eyebrow),.section-heading>p:not(.eyebrow){color:var(--paper-dim);font-size:1.04rem}.text-link{display:inline-flex;gap:10px;margin-top:12px;color:var(--gold);text-decoration:none;font-weight:700}.menu-section{background:var(--ink-soft)}.section-heading{max-width:620px;margin-bottom:42px}.menu-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);max-width:1330px;margin:auto}.menu-card{min-height:218px;padding:28px;background:var(--ink-soft);display:flex;flex-direction:column;justify-content:space-between}.menu-card .dish-category{margin:0;color:var(--gold);font-size:.72rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase}.menu-card h3{margin:20px 0 9px;font-size:1.5rem;line-height:1.05;letter-spacing:-.035em}.menu-card p:last-child{margin:0;color:var(--paper-dim);font-size:.94rem}.menu-note{display:flex;align-items:center;justify-content:space-between;gap:25px;max-width:1330px;margin:31px auto 0;padding-top:27px;border-top:1px solid var(--line)}.menu-note p{margin:0;color:var(--paper-dim)}.gallery-section{max-width:1600px;margin:auto}.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.gallery-item{display:block;border:0;padding:0;overflow:hidden;background:#061113;cursor:zoom-in;border-radius:var(--radius)}.gallery-item.horizontal{aspect-ratio:3/2}.gallery-item.vertical{aspect-ratio:3/4}.gallery-item img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .55s var(--ease)}.gallery-item:hover img{transform:scale(1.035)}.gallery-item:nth-child(1),.gallery-item:nth-child(6){grid-column:span 2}.gallery-item:nth-child(1) img{object-position:center 58%}.gallery-item:nth-child(2) img{object-position:center}.gallery-item:nth-child(3) img{object-position:center}.gallery-item:nth-child(4) img{object-position:center}.gallery-item:nth-child(5) img{object-position:center}.gallery-item:nth-child(6) img{object-position:center}.gallery-item:nth-child(7) img{object-position:center}.gallery-item:nth-child(8) img{object-position:center}.visit-section{display:grid;grid-template-columns:minmax(330px,.9fr) minmax(0,1.1fr);background:var(--surface)}.visit-copy{padding-right:clamp(22px,5vw,80px);align-self:center}.visit-copy address{margin:34px 0 17px;color:var(--paper);font-style:normal;font-size:1.1rem;line-height:1.75}.phone-link{color:var(--gold);font-size:1.45rem;font-weight:700;text-decoration:none}.hours-note{color:var(--paper-dim);margin:19px 0 28px}.map-wrap{min-height:590px}.map-wrap iframe{border:0;width:100%;height:100%;display:block;filter:grayscale(1) contrast(1.04) brightness(.76)}.site-footer{display:grid;grid-template-columns:1.4fr 1fr auto;gap:30px;padding:47px clamp(22px,8vw,135px);border-top:1px solid var(--line)}.site-footer img{width:80px;height:58px;object-fit:contain;object-position:left}.site-footer p{margin:10px 0 5px;color:var(--paper-dim);font-size:.9rem}.site-footer>div>a{color:var(--paper);font-size:.9rem}.footer-links{display:flex;flex-direction:column;align-items:start;gap:8px}.lightbox{width:min(1100px,calc(100vw - 28px));height:min(90vh,850px);padding:45px 54px 30px;border:1px solid rgb(241 230 204/.22);background:rgb(4 12 14/.97);color:var(--paper)}.lightbox::backdrop{background:rgb(0 0 0/.8)}.lightbox figure{height:100%;margin:0;display:flex;flex-direction:column;justify-content:center;align-items:center}.lightbox img{max-width:100%;max-height:calc(100% - 38px);object-fit:contain}.lightbox figcaption{min-height:24px;margin-top:10px;color:var(--paper-dim);font-size:.86rem}.lightbox-close,.lightbox-arrow{position:absolute;border:0;background:transparent;color:var(--paper);font-size:2rem;cursor:pointer}.lightbox-close{right:16px;top:8px}.lightbox-arrow{top:50%;transform:translateY(-50%)}.previous{left:13px}.next{right:13px}.reveal{animation:rise .7s var(--ease) both}@keyframes rise{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
@media(max-width:760px){.site-header{height:70px;padding:11px 17px}.brand img{width:55px;height:44px}.desktop-nav,.desktop-nav+.header-actions .language-picker,.header-actions>.social-icon{display:none}.menu-toggle{display:block}.mobile-shell{display:block;position:fixed;inset:0;z-index:50;visibility:hidden}.mobile-shell.is-open{visibility:visible}.mobile-backdrop{position:absolute;inset:0;border:0;background:rgb(0 0 0/.64);opacity:0;transition:opacity .3s var(--ease)}.mobile-shell.is-open .mobile-backdrop{opacity:1}.mobile-panel{position:absolute;right:0;top:0;bottom:0;width:min(100%,430px);padding:24px;background:var(--surface);transform:translateX(100%);transition:transform .32s var(--ease);outline:0}.mobile-shell.is-open .mobile-panel{transform:none}.mobile-panel-top{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:17px}.mobile-panel-top img{width:82px;height:54px;object-fit:contain}.panel-close{border:0;background:transparent;color:var(--paper);font-size:2rem;cursor:pointer}.panel-view{padding-top:28px}.panel-view a,.mobile-language-entry{width:100%;display:flex;justify-content:space-between;align-items:center;padding:15px 0;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--paper);text-align:left;text-decoration:none;font:inherit;font-size:1.25rem}.mobile-language-entry span:nth-child(2){margin-left:auto;margin-right:10px;color:var(--gold);font-size:.82rem}.back-to-menu{display:flex;gap:10px;align-items:center;border:0;background:transparent;color:var(--gold);font:inherit;font-weight:700;cursor:pointer}.mobile-language-list{margin-top:24px}.mobile-language-list button{padding:14px 0;border-bottom:1px solid var(--line);font-size:1.05rem}.hero{min-height:760px;padding:115px 22px 47px}.hero-image{object-position:62% center}.hero-shade{background:linear-gradient(90deg,rgb(3 12 14/.78),rgb(3 12 14/.24)),linear-gradient(0deg,rgb(3 12 14/.82),rgb(3 12 14/.1) 65%)}.hero h1{font-size:4.35rem}.hero-intro{font-size:1rem}.button{flex:1;padding:12px 10px;font-size:.74rem}.intro{grid-template-columns:1fr;gap:32px}.intro-image-wrap{aspect-ratio:16/10}.section{padding:74px 20px}.intro h2,.section-heading h2,.visit-copy h2{font-size:2.45rem}.menu-grid{grid-template-columns:1fr}.menu-card{min-height:0;padding:25px 20px}.menu-card h3{margin:15px 0 8px}.menu-note{align-items:flex-start;flex-direction:column;padding-top:23px}.menu-note .button{width:100%;flex:none}.gallery-grid{grid-template-columns:1fr;gap:14px}.gallery-item:nth-child(n){grid-column:auto}.gallery-item.horizontal{aspect-ratio:3/2}.gallery-item.vertical{aspect-ratio:3/4}.visit-section{grid-template-columns:1fr}.visit-copy{padding:75px 20px}.map-wrap{min-height:430px}.site-footer{grid-template-columns:1fr auto;padding:38px 20px}.footer-links{grid-column:1}.site-footer>.social-icon{grid-column:2;grid-row:1;justify-self:end}.lightbox{padding:45px 37px 24px}.lightbox-arrow{font-size:1.45rem}.previous{left:6px}.next{right:6px}}
@media(min-width:761px){.menu-toggle{display:none}}
.gallery-item:nth-child(1),.gallery-item:nth-child(6){grid-column:auto}
@media(max-width:760px){.hero-copy{width:100%!important;min-width:0}.hero-intro{width:100%;max-width:100%;overflow-wrap:anywhere}.hero-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.hero-actions .button{min-width:0}}
/* Hero art direction: the restaurant façade remains unobstructed on the left. */
.hero{align-items:stretch;justify-content:flex-end;padding:0}.hero-image{object-position:center}.hero-shade{background:linear-gradient(0deg,rgb(3 12 14/.34),transparent 46%)}.hero-copy{width:min(42vw,610px);max-width:none;padding:clamp(118px,13vh,155px) clamp(34px,5vw,78px) clamp(52px,9vh,100px);display:flex;flex-direction:column;justify-content:flex-end;background:linear-gradient(90deg,rgb(7 21 25/.42),rgb(7 21 25/.94) 19%,rgb(7 21 25/.98));}.hero h1{font-size:clamp(3.75rem,6.6vw,6rem);line-height:.95;letter-spacing:-.035em;text-wrap:balance}.hero h1 em{display:block;letter-spacing:-.04em}.hero-intro{max-width:34ch}.hero-actions{margin-top:2px}
@media(max-width:760px){.hero{display:block;min-height:0;background:var(--surface)}.hero-image{position:relative;display:block;height:min(54vh,480px);object-position:34% center}.hero-shade{display:none}.hero-copy{width:100%!important;min-width:0;padding:33px 22px 42px;background:var(--surface)}.hero h1{font-size:clamp(3.25rem,15vw,4.35rem);line-height:.98}.hero h1 em{display:inline}.hero-intro{margin:18px 0 26px}}

/* Production refinements: stable navigation, visible-first content, and keyboard clarity. */
body{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.site-header{position:fixed;background:rgb(7 21 25/.88);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
.hero-media{position:absolute;inset:0;display:block;width:100%;height:100%}
.hero-media .hero-image{position:absolute}
#story,#menu,#visit{scroll-margin-top:94px}
.reveal{opacity:1;transform:none;animation:none}
h2{text-wrap:balance}
a:focus-visible,button:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
@media(max-width:760px){.hero-media{position:relative;height:min(54vh,480px)}.hero-media .hero-image{position:relative;height:100%}.site-header{height:70px}.hero-actions{display:grid;grid-template-columns:1fr}.hero-actions .button{width:100%;flex:none;min-width:0}}

/* Photo-led dish cards keep each title tied to the supplied merchant image. */
.menu-card.menu-card--visual{display:block;min-height:0;padding:0;overflow:hidden}
.menu-card--visual>img{display:block;width:100%;height:clamp(210px,20vw,280px);object-fit:cover;border-bottom:1px solid var(--line);transition:transform .45s var(--ease)}
.menu-card--visual>div{padding:25px 28px 29px}
.menu-card--visual h3{margin:16px 0 8px}
.menu-card--visual:hover>img{transform:scale(1.025)}
@media(max-width:760px){.menu-card--visual>img{height:220px}.menu-card--visual>div{padding:21px 20px 25px}}

/* One shorter horizontal opacity ramp: clear storefront at left, full readability at right. */
@media(min-width:761px){.hero-shade{background:linear-gradient(90deg,rgb(3 12 14/0) 45%,rgb(3 12 14/1) 100%)}.hero-copy{background:transparent}}

/* The navigation is transparent while it overlays the homepage hero, then returns to its solid fixed state. */
.site-header{transition:background .24s var(--ease),border-color .24s var(--ease)}
.site-header.is-over-hero{background:transparent;border-bottom-color:transparent;-webkit-backdrop-filter:none;backdrop-filter:none}

/* Reservation request remains a local-only interaction until the restaurant confirms a booking service. */
body:has(.reservation-dialog[open]){overflow:hidden}
.feedback-section{background:var(--ink-soft);border-top:1px solid var(--line)}
.feedback-copy{max-width:690px}
.feedback-copy h2{margin:0;color:var(--paper);font-size:clamp(2.25rem,4.1vw,4.2rem);line-height:.98;letter-spacing:-.055em}
.feedback-copy>p:not(.eyebrow){max-width:57ch;margin:24px 0 0;color:var(--paper-dim);font-size:1.04rem}

/* Preserve Google Maps' native colour rendering. */
.map-wrap iframe{filter:none}

/* Mobile only: nudge the storefront image right while keeping the desktop crop unchanged. */
@media(max-width:760px){.hero-media .hero-image{object-position:24% center}}

@media(max-width:760px){.header-actions{margin-left:auto}.menu-toggle{display:grid;place-items:center;flex:0 0 44px;position:relative;z-index:1}}

/* Guest reviews supplied for this demo: present the source clearly without routing visitors away. */
.feedback-heading{max-width:620px;margin-bottom:42px}
.feedback-heading h2{margin:0;color:var(--paper);font-size:clamp(2.25rem,4.1vw,4.2rem);line-height:1.02;letter-spacing:-.04em}
.feedback-heading>p:not(.eyebrow){max-width:57ch;margin:21px 0 0;color:var(--paper-dim);font-size:1.04rem;line-height:1.65;text-wrap:pretty}
.feedback-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;max-width:1330px;margin:0;padding:1px;overflow:hidden;background:var(--line);border:1px solid var(--line);list-style:none}
.feedback-review{min-width:0;padding:clamp(23px,2.4vw,34px);background:var(--ink-soft);transition:transform 220ms var(--ease-out),background-color 220ms var(--ease-out),border-color 220ms var(--ease-out)}
.review-heading{display:flex;align-items:center;gap:12px}
.review-avatar{display:grid;flex:0 0 auto;place-items:center;width:38px;height:38px;border:1px solid rgb(229 183 55/.58);border-radius:50%;color:var(--gold);font-size:.82rem;font-weight:800;line-height:1}
.review-author,.review-source{margin:0}
.review-author{color:var(--paper);font-size:.98rem;font-weight:700;line-height:1.2}
.review-source{margin-top:3px;color:var(--paper-dim);font-size:.78rem;line-height:1.2}
.review-rating{display:flex;align-items:center;gap:9px;margin:26px 0 13px;color:var(--gold);font-size:.95rem;letter-spacing:.06em;line-height:1}
.review-time{color:var(--paper-dim);font-size:.78rem;font-weight:600;letter-spacing:0}
.feedback-review blockquote{margin:0;color:var(--paper);font-size:1rem;line-height:1.62;text-wrap:pretty}
@media (hover:hover) and (pointer:fine){.feedback-review:hover{z-index:1;background:#10272b;transform:translateY(-4px)}}
@media(max-width:960px){.feedback-list{grid-template-columns:1fr}.feedback-review{padding:28px}.review-rating{margin-top:22px}}
.reservation-dialog{width:min(760px,calc(100vw - 30px));max-height:min(900px,calc(100dvh - 30px));margin:auto;padding:clamp(24px,4vw,44px);border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--paper);overflow:auto;box-shadow:0 24px 80px rgb(0 0 0/.42)}
.reservation-dialog::backdrop{background:rgb(0 0 0/.76)}
.reservation-dialog__head{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;border-bottom:1px solid var(--line);padding-bottom:22px}
.reservation-dialog h2{margin:0;color:var(--paper);font-size:clamp(2.05rem,5vw,3.4rem);line-height:.98;letter-spacing:-.05em}
.dialog-close{display:grid;place-items:center;flex:0 0 auto;width:44px;height:44px;border:1px solid var(--line);border-radius:var(--radius);background:transparent;color:var(--paper);font:inherit;font-size:2rem;line-height:1;cursor:pointer}
.dialog-close:hover{border-color:var(--gold);color:var(--gold)}
.reservation-dialog__intro{max-width:58ch;margin:22px 0 26px;color:var(--paper-dim)}
.reservation-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.reservation-form-grid>label,.reservation-notes{display:grid;gap:8px;color:var(--paper);font-size:.84rem;font-weight:700;letter-spacing:.04em}
.reservation-dialog input:not([type="radio"]),.reservation-dialog select,.reservation-dialog textarea{width:100%;border:1px solid rgb(241 230 204/.28);border-radius:var(--radius);background:rgb(3 12 14/.52);color:var(--paper);font:inherit;font-weight:400;letter-spacing:normal;line-height:1.4;padding:12px 13px}
.reservation-dialog select{min-height:47px}
.reservation-dialog textarea{resize:vertical;min-height:88px}
.reservation-dialog input:not([type="radio"]):focus-visible,.reservation-dialog select:focus-visible,.reservation-dialog textarea:focus-visible{outline:2px solid var(--gold);outline-offset:2px;border-color:var(--gold)}
.reservation-notes{margin-top:18px}
.field-label{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.field-label small{color:var(--paper-dim);font-size:.72rem;font-weight:500;letter-spacing:0}
.guest-picker{min-width:0;margin:0;padding:0;border:0}.guest-picker legend{margin:0 0 8px;padding:0;color:var(--paper);font-size:.84rem;font-weight:700;letter-spacing:.04em}.guest-options{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.guest-options label{position:relative;display:block;cursor:pointer}.guest-options input{position:absolute;inline-size:1px;block-size:1px;opacity:0}.guest-options span{display:grid;min-height:47px;place-items:center;border:1px solid rgb(241 230 204/.28);border-radius:var(--radius);background:rgb(3 12 14/.52);color:var(--paper);font-size:.95rem;font-weight:600;letter-spacing:normal;transition:border-color .2s var(--ease),background .2s var(--ease),color .2s var(--ease)}.guest-options label:hover span{border-color:var(--gold)}.guest-options input:checked+span{border-color:var(--gold);background:var(--gold);color:var(--ink)}.guest-options input:focus-visible+span{outline:2px solid var(--gold);outline-offset:2px}
.reservation-dialog__notice{margin:20px 0 23px;padding:12px 14px;border:1px solid rgb(229 183 55/.38);background:rgb(229 183 55/.08);color:var(--paper-dim);font-size:.92rem}
.reservation-dialog__actions{display:flex;gap:12px;flex-wrap:wrap}
.reservation-dialog__actions .button{font-family:inherit;cursor:pointer}
@media(min-width:1081px){.gallery-item:nth-child(4),.gallery-item:nth-child(7){grid-column:span 2}}
@media(min-width:761px) and (max-width:1080px){.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.gallery-item:nth-child(n){grid-column:auto}}
@media(max-width:760px){.reservation-dialog{width:calc(100vw - 24px);padding:24px 20px}.reservation-form-grid{grid-template-columns:1fr;gap:15px}.reservation-dialog__actions{display:grid;grid-template-columns:1fr}.reservation-dialog__actions .button{width:100%}}

/* Tighter section rhythm keeps the page focused on its imagery and actions. */
.section{padding-block:clamp(56px,7vw,100px)}
.intro{gap:clamp(32px,6vw,88px)}
@media(max-width:760px){.section{padding-block:58px}.visit-copy{padding-block:58px}.map-wrap{min-height:390px}}

/* Search-first reservation flow: choose the visit first, then add contact details. */
.reservation-progress{display:grid;grid-template-columns:repeat(2,1fr);gap:7px;margin:22px 0 28px}.reservation-progress span{height:2px;background:rgb(241 230 204/.18)}.reservation-progress .is-active{background:var(--gold)}
.reservation-view h3{margin:0;color:var(--paper);font-size:clamp(1.55rem,3vw,2.15rem);line-height:1.05;letter-spacing:-.04em}.reservation-view .reservation-dialog__intro{margin:11px 0 25px}
.reservation-search-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.reservation-contact-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.reservation-search-fields>label,.reservation-contact-fields>label{display:grid;gap:8px;color:var(--paper);font-size:.84rem;font-weight:700;letter-spacing:.04em}.reservation-contact-fields>label:last-child{grid-column:span 2}.reservation-contact-fields textarea{height:100%;min-height:100px}
.reservation-search-fields select{min-height:47px}.reservation-next{width:100%;margin-top:26px;font-family:inherit;cursor:pointer}.reservation-summary{display:flex;align-items:center;justify-content:space-between;width:100%;gap:16px;margin:0 0 26px;padding:13px 0;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--paper);font:inherit;text-align:left;cursor:pointer}.reservation-summary span:first-child{font-weight:700}.reservation-summary span:last-child{color:var(--gold);font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.reservation-call{width:100%;flex:1}
.reservation-search-fields select[name="guests"],.reservation-search-fields input[type="date"],.reservation-search-fields input[type="time"]{height:50px;min-height:50px;padding:0 12px;line-height:normal;letter-spacing:normal;appearance:auto;-webkit-appearance:auto}.reservation-search-fields select[name="guests"]{font:inherit;font-weight:400;text-align:left;text-align-last:left}.reservation-search-fields select[name="guests"] option{background:var(--surface);color:var(--paper);font:inherit;line-height:normal}
@media(max-width:760px){.reservation-dialog{position:fixed;inset:auto 0 0 0;width:100%;max-height:calc(100dvh - 18px);margin:0;padding:24px 20px 28px;border-radius:var(--radius) var(--radius) 0 0}.reservation-dialog__head{padding-bottom:17px}.reservation-progress{margin:18px 0 24px}.reservation-search-fields,.reservation-contact-fields{grid-template-columns:1fr;gap:15px}.reservation-contact-fields>label:last-child{grid-column:auto}.reservation-summary{margin-bottom:22px}.reservation-dialog__actions{grid-template-columns:repeat(2,minmax(0,1fr))}.reservation-dialog__actions .reservation-call{grid-column:span 2}.reservation-next{margin-top:22px}}

/* Give the dining-room photograph more presence while retaining a readable copy column. */
@media(min-width:761px){.intro{grid-template-columns:minmax(0,1.3fr) minmax(390px,.7fr);gap:clamp(32px,5vw,72px)}.intro-copy{max-width:none}}

/* The refreshed gallery contains three portrait details followed by three wide room views. */
@media(min-width:761px){.gallery-item:nth-child(n){grid-column:auto}}

/* Motion and interaction polish. All motion is short, interruptible, and limited to meaningful state changes. */
:root{--ease-out:cubic-bezier(.23,1,.32,1);--ease-move:cubic-bezier(.77,0,.175,1)}

.site-header,.site-header .brand img{transition:background-color 220ms var(--ease-out),border-color 220ms var(--ease-out),box-shadow 220ms var(--ease-out),transform 220ms var(--ease-out),-webkit-backdrop-filter 220ms var(--ease-out),backdrop-filter 220ms var(--ease-out)}
.language-list{transform-origin:top right;opacity:0;transform:translateY(-6px) scale(.98);pointer-events:none;transition:opacity 180ms var(--ease-out),transform 180ms var(--ease-out)}
.language-list.is-open{opacity:1;transform:translateY(0) scale(1);pointer-events:auto}

.motion-reveal{animation:none;opacity:0;transform:translateY(16px);transition:opacity 380ms var(--ease-out),transform 380ms var(--ease-out),clip-path 380ms var(--ease-move)}
.motion-reveal--clip{transform:translateY(10px);clip-path:inset(0 0 14% 0)}
.motion-reveal.is-revealed{opacity:1;transform:translateY(0);clip-path:inset(0 0 0 0)}
.motion-reveal--rise{transition-delay:calc(var(--motion-index,0) * 40ms)}
.motion-reveal--clip{transition-delay:calc(var(--motion-index,0) * 30ms)}

body.motion-ready .reveal{animation:none}
body.motion-ready .hero-media{animation:hero-media-enter 380ms var(--ease-move) both}
body.motion-ready .hero-copy>*{animation:hero-copy-enter 320ms var(--ease-out) both}
body.motion-ready .hero-copy>:nth-child(1){animation-delay:50ms}
body.motion-ready .hero-copy>:nth-child(2){animation-delay:110ms}
body.motion-ready .hero-copy>:nth-child(3){animation-delay:170ms}
body.motion-ready .hero-copy>:nth-child(4){animation-delay:230ms}
@keyframes hero-media-enter{from{clip-path:inset(0 0 0 6%);transform:scale(1.025);filter:brightness(.88)}to{clip-path:inset(0);transform:scale(1);filter:brightness(1)}}
@keyframes hero-copy-enter{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}

.button,.icon-button,.menu-toggle,.panel-close,.dialog-close,.gallery-item,.language-trigger,.language-list button,.mobile-language-list button,.mobile-language-entry,.back-to-menu,.reservation-summary,.lightbox-close,.lightbox-arrow{transition:transform 160ms var(--ease-out),background-color 180ms var(--ease-out),border-color 180ms var(--ease-out),color 180ms var(--ease-out),box-shadow 180ms var(--ease-out),opacity 180ms var(--ease-out),filter 180ms var(--ease-out)}
:where(.button,.icon-button,.menu-toggle,.panel-close,.dialog-close,.gallery-item,.language-trigger,.language-list button,.mobile-language-list button,.mobile-language-entry,.back-to-menu,.reservation-summary,.lightbox-close):active{transform:scale(.97)}
.lightbox-arrow:active{transform:translateY(-50%) scale(.97)}
.reservation-dialog input:not([type="radio"]),.reservation-dialog select,.reservation-dialog textarea{transition:border-color 180ms var(--ease-out),background-color 180ms var(--ease-out),box-shadow 180ms var(--ease-out),transform 180ms var(--ease-out)}
.reservation-dialog input.is-invalid,.reservation-dialog select.is-invalid,.reservation-dialog textarea.is-invalid{border-color:var(--red);box-shadow:0 0 0 3px rgb(193 68 45/.16)}

.gallery-item img{transition:transform 300ms var(--ease-out),filter 300ms var(--ease-out)}
.menu-card--visual>img{transition:transform 300ms var(--ease-out),filter 300ms var(--ease-out)}
.text-link>span:first-child{background-image:linear-gradient(currentColor,currentColor);background-repeat:no-repeat;background-position:0 100%;background-size:0 1px;transition:background-size 180ms var(--ease-out)}
.text-link>span:last-child{transition:transform 180ms var(--ease-out)}
.desktop-nav a{position:relative}
.desktop-nav a::after{content:"";position:absolute;right:0;bottom:-7px;left:0;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform 180ms var(--ease-out)}

@media (hover:hover) and (pointer:fine){
  .button:hover,.icon-button:hover,.language-trigger:hover,.dialog-close:hover,.panel-close:hover{transform:translateY(-1px)}
  .gallery-item:hover{box-shadow:0 14px 32px rgb(0 0 0/.2)}
  .gallery-item:hover img,.menu-card--visual:hover>img{transform:scale(1.03);filter:brightness(1.07)}
  .text-link:hover>span:first-child{background-size:100% 1px}
  .text-link:hover>span:last-child{transform:translateX(4px)}
  .desktop-nav a:hover::after,.desktop-nav a:focus-visible::after{transform:scaleX(1);transform-origin:left}
}
@media (hover:none){
  .button:hover{transform:none}
  .button-primary:hover{background:var(--red)}
  .button-quiet:hover{background:rgb(7 21 25/.24)}
  .button-outline:hover{background:transparent;color:var(--gold)}
  .text-link:hover{color:var(--gold)}
  .dialog-close:hover{border-color:var(--line);color:var(--paper)}
  .gallery-item:hover img,.menu-card--visual:hover>img{transform:none;filter:none}
  .language-list button:hover,.mobile-language-list button:hover{background:transparent}
}

.lightbox{isolation:isolate}
.lightbox.is-closing{pointer-events:none}

@media(max-width:760px){
  .site-header:not(.is-over-hero){box-shadow:0 8px 28px rgb(0 0 0/.18)}
  .site-header:not(.is-over-hero) .brand img{transform:scale(.92)}
  .mobile-shell{visibility:visible;pointer-events:none}
  .mobile-shell.is-open{pointer-events:auto}
  .mobile-panel{transition:transform 320ms var(--ease-out)}
  .mobile-panel.skip-motion{transition-duration:1ms}
  .mobile-shell:not(.is-open) .mobile-panel{transition-duration:180ms}
  .mobile-panel .panel-view[data-panel-view="menu"]>:is(a,button){opacity:0;transform:translateX(10px);transition:opacity 180ms var(--ease-out),transform 180ms var(--ease-out)}
  .mobile-shell.is-open .mobile-panel .panel-view[data-panel-view="menu"]>:is(a,button){opacity:1;transform:translateX(0)}
  .mobile-shell.is-open .mobile-panel .panel-view[data-panel-view="menu"]>:nth-child(1){transition-delay:35ms}
  .mobile-shell.is-open .mobile-panel .panel-view[data-panel-view="menu"]>:nth-child(2){transition-delay:70ms}
  .mobile-shell.is-open .mobile-panel .panel-view[data-panel-view="menu"]>:nth-child(3){transition-delay:105ms}
  .mobile-shell.is-open .mobile-panel .panel-view[data-panel-view="menu"]>:nth-child(4){transition-delay:140ms}
  .mobile-shell.is-open .mobile-panel .panel-view[data-panel-view="menu"]>:nth-child(5){transition-delay:175ms}
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:1ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}
  .motion-reveal,.motion-reveal--clip{transition:opacity 140ms linear;transform:none;clip-path:inset(0)}
  .motion-reveal.is-revealed{transform:none}
  body.motion-ready .hero-media,body.motion-ready .hero-copy>*{animation:none}
  .mobile-panel,.language-list,.gallery-item img,.menu-card--visual>img{transition-duration:1ms}
}

/* Final responsive and accessibility hardening. */
body{overflow-x:clip}
img{max-width:100%}
.hero-copy,.intro-copy,.section-heading,.feedback-copy,.visit-copy,.menu-card{min-width:0}
.hero h1,.intro h2,.section-heading h2,.feedback-copy h2,.visit-copy h2,.reservation-dialog h2,.reservation-view h3{overflow-wrap:anywhere;hyphens:auto;text-wrap:balance}
.feedback-copy h2,.reservation-dialog h2{letter-spacing:-.04em;line-height:1.02}
.intro-copy p,.section-heading>p:not(.eyebrow),.feedback-copy>p:not(.eyebrow),.reservation-dialog__intro{line-height:1.65;text-wrap:pretty}
.desktop-nav a,.footer-links a,.text-link,.phone-link{min-height:44px;display:inline-flex;align-items:center}
.phone-link{padding-block:4px}
.reservation-dialog__notice{padding:12px 14px;border:1px solid rgb(229 183 55/.38);background:rgb(229 183 55/.08)}
.motion-reveal{opacity:1;transform:none;clip-path:inset(0);transition:opacity 380ms var(--ease-out),transform 380ms var(--ease-out),clip-path 380ms var(--ease-move)}
body.motion-ready .motion-reveal.is-pending{opacity:0;transform:translateY(16px)}
body.motion-ready .motion-reveal.is-pending.motion-reveal--clip{transform:translateY(10px);clip-path:inset(0 0 14% 0)}

@media(max-width:980px) and (min-width:761px){
  .intro{grid-template-columns:1fr;gap:34px}
  .intro-copy{max-width:65ch}
}
@media(max-width:760px){
  .site-header{height:auto;min-height:calc(70px + env(safe-area-inset-top));padding:max(11px,env(safe-area-inset-top)) max(17px,env(safe-area-inset-right)) 11px max(17px,env(safe-area-inset-left))}
  .mobile-panel{padding:max(24px,env(safe-area-inset-top)) max(20px,env(safe-area-inset-right)) max(24px,calc(20px + env(safe-area-inset-bottom))) max(20px,env(safe-area-inset-left))}
  .reservation-dialog{padding-bottom:max(28px,calc(20px + env(safe-area-inset-bottom)))}
  .site-footer{column-gap:20px}
}
