/* V14 · focused refinements to the approved V13 design. */
:root { --motion-ease: cubic-bezier(.22,1,.36,1); --anchor-offset: 96px; }
html { scrollbar-gutter: stable; scroll-padding-top: var(--anchor-offset); }
:where(button,a,input,select,textarea,[tabindex]):focus-visible { outline: 2px solid #b69040; outline-offset: 5px; }
:where(h1,h2,h3,main)[tabindex="-1"]:focus { outline: none; }
:where(input,select,textarea) { scroll-margin-top: calc(var(--anchor-offset) + 20px); }
:where(button,a) { -webkit-tap-highlight-color: transparent; }
[hidden] { display: none !important; }

/* Content remains readable with disabled, failed or slow JavaScript. */
html:not(.js) .entrance-curtain, .skip-intro .entrance-curtain { display:none; }
html:not(.js) :is(.hero-line,.hero__description,.hero__actions,.hero__eyebrow,.hero__side-note) { opacity:1;transform:none; }
.entrance-curtain { pointer-events:none; transition:transform .65s var(--motion-ease),visibility 0s .65s; }
.entrance-curtain__seal { animation:sealSettle .55s var(--motion-ease) both; transition:opacity .25s,transform .5s var(--motion-ease); }
@keyframes sealSettle { from{opacity:0;transform:translateY(12px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)} }
body.is-ready .entrance-curtain { visibility:hidden; }
.hero-line { transform:translateY(30px); transition:transform .85s var(--motion-ease),opacity .65s ease; }
.hero-line:nth-child(2) { transition-delay:.07s; }
.hero-line:nth-child(3) { transition-delay:.14s; }
.hero__description { transition-duration:.7s; transition-delay:.18s; }
.hero__actions { transition-duration:.7s; transition-delay:.25s; }
.hero__visual img { transition-duration:1.5s; }
.skip-intro :is(.hero-line,.hero__description,.hero__actions,.hero__eyebrow,.hero__visual img) { transition:none !important; }
.js .reveal { transform:translateY(22px); transition:opacity .7s var(--motion-ease),transform .7s var(--motion-ease); }
.js .reveal.is-visible { transform:translateY(0); }
.js .reveal.anchor-visible { transition:none; }
.image-reveal img { transition:transform 1.1s var(--motion-ease); }
.js .image-reveal.reveal:not(.is-visible) { clip-path:inset(0 0 5% 0); }
.js .image-reveal.reveal { transition:opacity .7s var(--motion-ease),transform .7s var(--motion-ease),clip-path 1s var(--motion-ease); clip-path:inset(0); }
.mobile-nav { overscroll-behavior:contain; }
.mobile-nav nav a { transition:color .2s, padding-left .25s var(--motion-ease); }
.mobile-nav nav a:is(:hover,:focus-visible), .mobile-nav nav a[aria-current] { color:var(--gold); padding-left:8px; }

/* All four preview panels share a grid cell: no height jump between categories. */
.menu-preview { display:grid; min-height:0; }
.preview-panel { grid-area:1/1; display:grid; grid-template-rows:repeat(4,1fr); visibility:hidden; opacity:0; pointer-events:none; transform:translateY(5px); transition:opacity .25s ease,transform .35s var(--motion-ease),visibility 0s .25s; }
.preview-panel.is-active { visibility:visible; opacity:1; pointer-events:auto; transform:none; transition-delay:0s; }
.preview-panel .menu-item { animation:none; align-items:center; }
.menu-visual > img { position:absolute; inset:0; }
.media-ghost { position:absolute !important; inset:0; pointer-events:none; }
.menu-visual > img.media-ghost { transform:scale(1); }
.menu-tabs { overscroll-behavior-x:contain; }
.menu-tab { scroll-margin-inline:12px; }

/* The menu header, category tabs and close control stay in place. */
.menu-dialog { height:min(92dvh,960px); overflow:hidden; }
.menu-dialog[open], .lightbox[open] { animation:none; }
.menu-dialog__shell { display:flex; flex-direction:column; height:100%; min-height:0; padding:clamp(22px,3vw,40px); }
.menu-dialog__header { flex:none; padding-bottom:22px; }
.menu-dialog__categories { flex:none; overscroll-behavior-x:contain; }
.menu-dialog__items { flex:1; min-height:0; overflow-y:auto; overscroll-behavior:contain; padding-right:10px; scrollbar-width:thin; scrollbar-color:#a4ad99 transparent; }
.menu-dialog__footer { flex:none; margin-top:16px; padding-top:12px; max-width:none; }
.full-tab { min-height:44px; }
.full-menu-row { min-height:63px; }

/* A fixed gallery stage prevents portrait / landscape controls from jumping. */
.lightbox { height:100dvh; max-height:100dvh; overflow:hidden; }
.lightbox__wrap { padding:76px max(20px,5vw) max(24px,env(safe-area-inset-bottom)); }
.lightbox__figure { flex:1; width:min(100%,1150px); display:grid; grid-template-columns:minmax(0,1fr); grid-template-rows:minmax(0,1fr) 44px; justify-content:stretch; align-items:stretch; }
.lightbox__stage { position:relative; min-height:0; width:100%; height:100%; touch-action:pan-y pinch-zoom; }
.lightbox__stage img { position:absolute; inset:0; width:100%; height:100%; max-width:100%; max-height:100%; object-fit:contain; box-shadow:none; user-select:none; -webkit-user-drag:none; }
.lightbox__figure figcaption { margin:0; align-self:center; line-height:1.5; padding:6px 0; }
.lightbox__controls { flex:none; padding-top:8px; min-height:56px; }
.lightbox__controls button { width:48px; height:48px; }
.lightbox__close { top:max(18px,env(safe-area-inset-top)); }

.reservation-form__feedback { scroll-margin-block:calc(var(--anchor-offset) + 10px) 30px; }
.reservation-form__feedback p { margin:8px 0 0; }
.reservation-form__feedback a { display:inline-block; padding:6px 0; text-decoration:underline; text-underline-offset:3px; }
.reservation-form__submit[disabled] { cursor:wait; opacity:.65; }
.reservation-form input:disabled,.reservation-form select:disabled,.reservation-form textarea:disabled { opacity:.75; }

@media(max-width:800px) {
  :root { --anchor-offset:88px; }
  .menu-dialog__shell { padding:26px 24px max(20px,env(safe-area-inset-bottom)); }
  .menu-dialog__header { padding-bottom:18px; }
}
@media(max-width:600px) {
  :root { --anchor-offset:84px; }
  html { scrollbar-gutter:auto; }
  .menu-dialog { height:100dvh; max-height:100dvh; }
  .menu-dialog__shell { padding:max(24px,env(safe-area-inset-top)) 20px max(20px,env(safe-area-inset-bottom)); }
  .menu-dialog__header { padding-bottom:18px; }
  .menu-dialog__categories { padding-bottom:12px; }
  .menu-dialog__items { padding-right:4px; }
  .menu-dialog__footer { margin-top:10px; padding-top:10px; font-size:10px; line-height:1.6; }
  .lightbox__wrap { padding:76px 15px max(24px,env(safe-area-inset-bottom)); }
  .lightbox__figure { grid-template-rows:minmax(0,1fr) 52px; }
  .preview-panel .menu-item { min-height:81px; }
}
@media(max-height:540px) and (max-width:800px) {
  .mobile-nav { padding-top:90px; }
  .mobile-nav__inner { min-height:0; }
  .mobile-nav nav { display:grid; grid-template-columns:1fr 1fr; column-gap:24px; }
  .mobile-nav nav a { font-size:24px; min-height:48px; }
  .mobile-nav__footer { padding-top:18px; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  .js .image-reveal.reveal { clip-path:none; }
  .hero__visual img,.visit__image img,.image-reveal img { transform:none !important; }
  .preview-panel { transform:none; transition:none; }
  .booking__paper-symbol,.scroll-line,.signature-strip__track { animation:none !important; }
}
