/* The photograph and title arrive; the invitation is readable from the start. */
.hero-photo img{animation-duration:1.65s;transform-origin:58% 63%}
.hero-kicker{animation-delay:40ms;animation-duration:720ms}
.hero h1>span{animation-duration:1.05s;animation-delay:100ms}
.hero h1>span:nth-child(2){animation-delay:240ms}
.hero-description{animation:hero-copy-arrival 650ms var(--table-ease) both;text-shadow:0 1px 12px #14201590}
.hero .hero-actions>.hero-button:not(.is-bouncing),
.hero .hero-actions>.hero-taste-link:not(.is-bouncing){animation:hero-invitation-arrival 650ms var(--table-ease) both;opacity:1;clip-path:none;filter:none}
.hero .hero-actions>.hero-button.hero-arrived:not(.is-bouncing),
.hero .hero-actions>.hero-taste-link.hero-arrived:not(.is-bouncing){animation:none}
.hero-bottom{animation:hero-copy-arrival 800ms var(--table-ease) both}
.hero h1{letter-spacing:.045em}
.hero-italic{font-weight:600;text-shadow:0 2px 24px #15220e24}
.hero-photo::after{content:'';position:absolute;inset:-10%;pointer-events:none;background:linear-gradient(110deg,transparent 30%,#fce8c817 47%,transparent 62%);animation:table-light-arrival 1.6s 80ms var(--table-ease) both}
@keyframes hero-copy-arrival{from{opacity:.82;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes hero-invitation-arrival{from{opacity:1;transform:translateY(9px);box-shadow:0 2px 0 #14251630}to{opacity:1;transform:none}}
@keyframes table-light-arrival{from{opacity:0;transform:translateX(-35%)}30%{opacity:1}to{opacity:0;transform:translateX(35%)}}
.occasion-copy{scroll-margin-top:20px}
.motion-ready .occasion-copy[data-reveal]{transform:none}
.occasion-panel:focus-visible{outline:2px solid var(--gold);border-radius:2px}
@media(min-width:801px){.mobile-nav{display:none!important}}
@media(max-width:600px){
 .hero{min-height:540px;max-height:760px}
 .hero-content{padding-bottom:76px}
 .hero h1{font-size:clamp(35px,10.5vw,62px);line-height:1.6;letter-spacing:.02em}
 .hero h1>span{white-space:nowrap}
 .hero-description{font-size:12px;line-height:2.1;letter-spacing:.015em}
 .hero-actions{margin-top:21px;gap:9px}
 .hero-taste-link{min-height:44px}
 .hero-photo{inset:-28px 0 -4px;height:calc(100% + 32px)}
 .hero-photo img{object-position:58% 58%}
 .hero-photo-trigger .photo-invitation{top:24px;min-height:44px}
 .hero-stamp{top:24px}
 .hero-bottom{bottom:23px}
 #taste-advice{margin-top:20px}
 .occasion-copy{scroll-margin-top:16px}
}
@media(max-width:360px){
 .hero{min-height:540px}
 .hero h1{font-size:clamp(31px,10.2vw,37px)}
 .hero-description{font-size:11px}
 .hero-content{padding-bottom:72px}
 .hero-photo-trigger .photo-invitation{left:18px;padding-inline:10px;gap:9px;font-size:9px}
 .hero-stamp{right:18px;width:75px;height:75px}
 .about-copy h2,.occasion-copy h2,.taste-intro h2,.section-heading h2,.visit-section h2{font-size:28px;letter-spacing:.035em}
 .wine-copy h2{font-size:30px;letter-spacing:.035em}
 .chef-copy h2{font-size:25px;letter-spacing:.03em}
 .dinner-caption h3{font-size:24px;letter-spacing:0}
}
@media(max-height:500px) and (orientation:landscape){
 .hero{min-height:540px}
 .mobile-nav{max-height:calc(100svh - 82px);padding-block:12px 20px}
 .mobile-nav a{padding-block:10px}
}
@media(prefers-reduced-motion:reduce){
 .hero-photo::after{animation:none;display:none}
 .hero .hero-description,.hero .hero-bottom,.hero .hero-actions>.hero-button:not(.is-bouncing),.hero .hero-actions>.hero-taste-link:not(.is-bouncing){animation:none;opacity:1;transform:none;clip-path:none;filter:none}
}

/* Lunch and dinner are two clear entrances to the same original menu. */
.menu-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:-18px 0 34px}
.menu-choice{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 24px;column-gap:12px;row-gap:5px;align-items:center;min-height:82px;padding:15px 20px;border:1px solid #9d8b6166;border-radius:3px;color:var(--green);background:radial-gradient(ellipse at top left,#fffdf7,transparent 80%),linear-gradient(120deg,#f8f2eb,#e8e8df);box-shadow:0 3px 0 #9d8b6138;isolation:isolate;overflow:hidden}
.menu-choice-kicker{grid-column:1;font:600 10px/1.4 var(--sans);letter-spacing:.18em;color:var(--muted)}
.menu-choice-label{grid-column:1;font:400 20px/1.5 var(--serif);letter-spacing:.025em}
.menu-choice-arrow{grid-column:2;grid-row:1/span 2;justify-self:end;font:25px/1 var(--serif);color:var(--gold)}
.menu-choice:last-child{color:var(--paper);border-color:#657b53;background:radial-gradient(ellipse at top right,#65784b55,transparent 75%),linear-gradient(125deg,#41573a,var(--green) 72%);box-shadow:0 3px 0 #1b2c2055}
.menu-choice:last-child .menu-choice-kicker{color:#d3debd}
.menu-choice:last-child .menu-choice-arrow{color:#ddc99f}
#lunch{scroll-margin-top:20px}
.motion-ready #lunch[data-reveal]{transform:none}
@media(hover:hover) and (pointer:fine){.menu-choice:hover{filter:brightness(1.05)}}
.review-highlight{font-weight:600;color:var(--green);padding-inline:.04em;background:linear-gradient(transparent 74%,#9d8b6133 74%,#9d8b6133 94%,transparent 94%);-webkit-box-decoration-break:clone;box-decoration-break:clone}

/* Preserve the existing spacing while keeping text and controls inside safe areas. */
.section-shell{--shell-gutter:56px;--shell-limit:1120px;width:min(var(--shell-limit),calc(100% - max(var(--shell-gutter),env(safe-area-inset-left)) - max(var(--shell-gutter),env(safe-area-inset-right))));margin-left:max(var(--shell-gutter),env(safe-area-inset-left),calc((100% - var(--shell-limit))/2));margin-right:max(var(--shell-gutter),env(safe-area-inset-right),calc((100% - var(--shell-limit))/2))}
.site-header{--header-gutter:3.5%;padding-left:max(var(--header-gutter),env(safe-area-inset-left));padding-right:max(var(--header-gutter),env(safe-area-inset-right))}
.mobile-nav{padding-left:max(30px,env(safe-area-inset-left));padding-right:max(30px,env(safe-area-inset-right))}
.photo-viewer{--viewer-gutter:clamp(22px,4vw,68px);padding-left:max(var(--viewer-gutter),env(safe-area-inset-left));padding-right:max(var(--viewer-gutter),env(safe-area-inset-right))}
.nav-toggle{width:44px}
#image-dialog>.text-link{min-height:44px}
@media(min-width:1500px){.section-shell{--shell-gutter:80px;--shell-limit:1260px}}
@media(max-width:1120px){.section-shell{--shell-gutter:40px}.site-header{--header-gutter:3%}}
@media(max-width:800px){.section-shell{--shell-gutter:32px}.site-header{--header-gutter:24px}}
@media(max-width:650px){.photo-viewer{--viewer-gutter:17px}}
@media(max-width:600px){
 .section-shell{--shell-gutter:21px}
 .site-header{--header-gutter:18px}
 .subpage .subhero h1{font-size:clamp(28px,9vw,36px);line-height:1.6;letter-spacing:.025em}
 .menu-choices{gap:10px;margin:-10px 0 26px}
 .menu-choice{grid-template-columns:minmax(0,1fr) 16px;column-gap:6px;row-gap:5px;min-height:72px;padding:12px 10px}
 .menu-choice-kicker{font-size:9px}
 .menu-choice-label{font-size:clamp(12px,3.5vw,16px);white-space:nowrap}
 .menu-choice-arrow{font-size:21px}
}
@media(max-width:360px){
 .section-shell{--shell-gutter:18px}
 .site-header{--header-gutter:14px}
 .photo-viewer{--viewer-gutter:13px}
 .menu-choice{padding-inline:8px}
}

/* Keep reservations one tap away when a phone is turned sideways. */
@media(max-height:500px) and (orientation:landscape) and (max-width:1024px){
 body{padding-bottom:calc(68px + env(safe-area-inset-bottom))}
 .mobile-dock{position:fixed;inset:auto 0 0;z-index:70;display:flex;align-items:stretch;justify-content:center;gap:10px;height:calc(60px + env(safe-area-inset-bottom));padding:7px max(12px,env(safe-area-inset-right)) calc(7px + env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));border-top:1px solid #9d8b614d;background:#f8f2ebf7;backdrop-filter:blur(12px);box-shadow:0 -5px 25px #1b2c2010}
 .mobile-dock a{position:relative;display:flex;align-items:center;justify-content:center;min-height:44px;border-radius:3px;overflow:hidden}
 .mobile-dock .dock-menu{flex:0 1 150px;min-width:88px;gap:8px;padding-inline:10px;border:1px solid #9d8b6177;background:linear-gradient(135deg,#fffef8,#e8e8df);box-shadow:0 2px 0 #9d8b6166;font:11px/1.4 var(--sans)}
 .dock-menu svg{width:18px;height:18px;flex-shrink:0}
 .mobile-dock .dock-booking{flex:0 1 360px;min-width:0;justify-content:space-between;gap:6px;padding:4px 12px;border:1px solid #658456;background:linear-gradient(135deg,#526c43,#32442d 70%);box-shadow:0 3px 0 #1b2c20;color:var(--paper)}
 .dock-booking>span:first-child{font-size:14px;line-height:1.25;white-space:nowrap}
 .dock-booking small{display:block;font:8px/1.4 var(--sans);letter-spacing:.06em}
 .dock-booking>span:last-child{font-size:23px;flex-shrink:0}
 .mobile-nav{max-height:calc(100svh - 136px - env(safe-area-inset-bottom))}
}

/* Party details read as one reservation guide, with the numbers in view. */
.party-ribbon{display:block}
.party-conditions{display:grid;grid-template-columns:.8fr .8fr 1.35fr 1.35fr;margin:24px 0 0;border-block:1px solid #9d8b616b;background:linear-gradient(100deg,#fffdf630,transparent 48%,#9d8b6109)}
.party-condition{min-width:0;padding:18px 18px 20px;border-right:1px solid #9d8b6140}
.party-condition:first-child{padding-left:0}
.party-condition:last-child{padding-right:0;border-right:0}
.party-condition-label{font:600 13px/1.7 var(--sans);letter-spacing:.025em;color:var(--green)}
.party-condition-value{margin:9px 0 0;font:400 13px/1.85 var(--sans);color:var(--ink);overflow-wrap:break-word}
.party-number{font:400 27px/1.35 var(--serif);letter-spacing:.015em;color:var(--green);white-space:nowrap}
.party-ribbon .party-course-note{margin-top:17px;font:13px/1.9 var(--sans)}
.party-ribbon>.btn{display:flex;width:fit-content;min-width:230px;margin:24px 0 0 auto}
@media(max-width:900px){
 .party-conditions{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:22px}
 .party-condition{padding:16px 16px 18px}
 .party-condition:nth-child(odd){padding-left:0}
 .party-condition:nth-child(even){padding-right:0;border-right:0}
 .party-condition:nth-child(n+3){border-top:1px solid #9d8b6140}
}
@media(max-width:600px){
 .party-condition{padding:14px 12px 16px}
 .party-condition-label{font-size:13px;letter-spacing:0}
 .party-condition-value{margin-top:7px;line-height:1.85}
 .party-number{font-size:clamp(21px,6vw,26px);letter-spacing:0}
 .party-ribbon>.btn{width:100%;min-width:0;margin:22px 0 0}
}

/* Keep the menu names and dining choices readable on small phones. */
@media(max-width:600px){
 .a-la-carte ul,.check-item>span:nth-of-type(2){font-size:13px}
}
