:root {
  --v18-ink: #281e1e;
  --v18-ink-soft: #3a2d2a;
  --v18-copper: #855135;
  --v18-copper-dark: #673b27;
  --v18-gold: #a27e46;
  --v18-cream: #f4efe8;
  --v18-sand: #e6dacf;
  --v18-white: #fff;
  --v18-muted: #746964;
  --v18-serif: "Iowan Old Style", Baskerville, "Times New Roman", serif;
  --v18-sans: Inter, "Avenir Next", Avenir, "Helvetica Neue", Arial, sans-serif;
  --v18-shell: min(1320px, calc(100vw - 48px));
  --v18-narrow: min(820px, calc(100vw - 48px));
  --v18-header: 88px;
  --v18-radius: 2px;
  --v18-shadow: 0 22px 70px rgba(40, 30, 30, 0.13);
  --v18-ease: cubic-bezier(.2,.75,.2,1);
  --v18-mood-bg: #f4efe8;
  --v18-mood-surface: #fff;
  --v18-mood-accent: #855135;
  --v18-mood-ink: #281e1e;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 110px; }
body {
  margin: 0;
  background: var(--v18-cream);
  color: var(--v18-ink);
  font-family: var(--v18-sans);
  font-size: 16px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
body.menu-open { overflow: hidden; }
body.is-home { transition: background-color .8s var(--v18-ease), color .8s var(--v18-ease); }
body.is-home[data-v18-mood="breakfast"] {
  --v18-mood-bg: #f5f0e8;
  --v18-mood-surface: #fffdf9;
  --v18-mood-accent: #a27e46;
  --v18-mood-ink: #281e1e;
}
body.is-home[data-v18-mood="happy-hour"] {
  --v18-mood-bg: #eee2d6;
  --v18-mood-surface: #fffaf4;
  --v18-mood-accent: #9a5c36;
  --v18-mood-ink: #2c201e;
}
body.is-home[data-v18-mood="blend"] {
  --v18-mood-bg: #e9d8c8;
  --v18-mood-surface: #fff9f2;
  --v18-mood-accent: #8d4d31;
  --v18-mood-ink: #2b1d1b;
}
body.is-home[data-v18-mood="dinner"] {
  --v18-mood-bg: #2f2422;
  --v18-mood-surface: #3a2c29;
  --v18-mood-accent: #c39a5b;
  --v18-mood-ink: #fffaf4;
}
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: .22em; }
a:hover { color: var(--v18-copper); }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 3px solid var(--v18-gold); outline-offset: 4px; }
::selection { background: var(--v18-gold); color: var(--v18-ink); }

.screen-reader-text {
  border: 0; clip: rect(1px,1px,1px,1px); clip-path: inset(50%); height: 1px;
  margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; word-wrap: normal !important;
}
.screen-reader-text:focus {
  background: var(--v18-white); clip: auto !important; clip-path: none; color: var(--v18-ink);
  display: block; font-size: 14px; height: auto; left: 12px; padding: 14px 18px; top: 12px; width: auto; z-index: 100000;
}

.v18-shell { width: var(--v18-shell); margin-inline: auto; }
.v18-narrow { width: var(--v18-narrow); margin-inline: auto; }
.v18-kicker {
  display: inline-flex; gap: .65rem; align-items: center; margin: 0 0 1rem;
  color: var(--v18-copper); font-size: .74rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase;
}
.v18-kicker::before { content: ""; width: 34px; height: 1px; background: currentColor; }
.v18-display, h1, h2, h3, h4 { font-family: var(--v18-serif); font-weight: 500; letter-spacing: -.025em; }
h1, .v18-display { font-size: clamp(3rem, 8vw, 7.4rem); line-height: .92; margin: 0; }
h2 { font-size: clamp(2.4rem, 5.4vw, 5.25rem); line-height: .98; margin: 0 0 1.25rem; }
h3 { font-size: clamp(1.7rem, 3vw, 2.75rem); line-height: 1.05; margin: 0 0 .75rem; }
h4 { font-size: 1.4rem; margin: 0 0 .6rem; }
p { margin: 0 0 1.25rem; }
.v18-lead { font-size: clamp(1.06rem, 1.5vw, 1.3rem); line-height: 1.7; color: var(--v18-muted); max-width: 64ch; }
.v18-rule { border: 0; border-top: 1px solid rgba(40,30,30,.18); margin: 0; }

.v18-button {
  display: inline-flex; min-height: 48px; align-items: center; justify-content: center; gap: .65rem;
  border: 1px solid var(--v18-copper); border-radius: var(--v18-radius); background: var(--v18-copper);
  color: var(--v18-white); padding: .8rem 1.35rem; font-size: .78rem; font-weight: 750;
  letter-spacing: .11em; line-height: 1.2; text-decoration: none; text-transform: uppercase;
  transition: background .25s var(--v18-ease), color .25s var(--v18-ease), transform .25s var(--v18-ease), border-color .25s var(--v18-ease);
}
.v18-button:hover { background: var(--v18-copper-dark); border-color: var(--v18-copper-dark); color: var(--v18-white); transform: translateY(-2px); }
.v18-button--outline { background: transparent; color: var(--v18-ink); border-color: rgba(40,30,30,.45); }
.v18-button--outline:hover { background: var(--v18-ink); border-color: var(--v18-ink); color: var(--v18-white); }
.v18-button--light { background: var(--v18-white); border-color: var(--v18-white); color: var(--v18-ink); }
.v18-text-link { display: inline-flex; align-items: center; gap: .55rem; color: var(--v18-copper); font-weight: 700; letter-spacing: .06em; text-decoration: none; text-transform: uppercase; font-size: .76rem; }
.v18-text-link::after { content: "→"; transition: transform .2s ease; }
.v18-text-link:hover::after { transform: translateX(4px); }

/* Announcement */
.v18-announcement { position: relative; z-index: 1001; padding: .65rem 24px; text-align: center; font-size: .78rem; letter-spacing: .04em; }
.v18-announcement a { font-weight: 750; }
.v18-announcement--notice { background: var(--v18-gold); color: var(--v18-ink); }
.v18-announcement--closure { background: #7a2929; color: var(--v18-white); }
.v18-announcement--promotion { background: var(--v18-copper); color: var(--v18-white); }
.v18-announcement--event { background: var(--v18-ink); color: var(--v18-white); }

/* Header */
.site-header {
  position: fixed; inset: 0 0 auto; z-index: 1000; height: var(--v18-header); color: var(--v18-white);
  transition: transform .38s var(--v18-ease), background .32s ease, color .32s ease, box-shadow .32s ease;
}
.admin-bar .site-header { top: 32px; }
.site-header.is-solid { background: rgba(244,239,232,.96); color: var(--v18-ink); box-shadow: 0 1px 0 rgba(40,30,30,.12); backdrop-filter: blur(16px); }
.site-header.is-hidden { transform: translateY(-110%); }
.header-inner { width: var(--v18-shell); height: 100%; margin-inline: auto; display: grid; grid-template-columns: 220px 1fr auto; align-items: center; gap: 1.5rem; }
.site-logo { display: inline-flex; width: 190px; text-decoration: none; }
.site-logo img { width: 100%; height: auto; filter: brightness(0) invert(1); transition: filter .3s ease; }
.site-header.is-solid .site-logo img, .menu-open .site-logo img { filter: none; }
.primary-nav { display: flex; justify-content: flex-end; }
.primary-nav ul { display: flex; align-items: center; gap: clamp(.8rem, 1.6vw, 1.8rem); list-style: none; padding: 0; margin: 0; }
.primary-nav a { font-size: .76rem; font-weight: 700; letter-spacing: .1em; text-decoration: none; text-transform: uppercase; white-space: nowrap; }
.primary-nav .menu-item-has-children { position: relative; }
.primary-nav .sub-menu { position: absolute; top: calc(100% + 20px); left: -24px; min-width: 230px; padding: 18px 24px; background: var(--v18-cream); color: var(--v18-ink); box-shadow: var(--v18-shadow); display: grid; gap: .65rem; visibility: hidden; opacity: 0; transform: translateY(8px); transition: .2s ease; }
.primary-nav .menu-item-has-children:hover > .sub-menu, .primary-nav .menu-item-has-children:focus-within > .sub-menu { visibility: visible; opacity: 1; transform: translateY(0); }
.header-reserve { margin-left: .35rem; }
.menu-toggle { display: none; border: 0; background: transparent; color: currentColor; padding: 10px; cursor: pointer; }
.menu-toggle span { display: block; width: 25px; height: 1px; margin: 6px 0; background: currentColor; transition: .25s ease; }

/* Hero */
.v18-hero { position: relative; min-height: min(900px, 100svh); display: grid; align-items: end; overflow: hidden; background: var(--v18-ink); color: var(--v18-white); }
.v18-hero__media { position: absolute; inset: 0; background: var(--v18-ink); }
.v18-hero__image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 48%; opacity: 0; transform: scale(1.055); transition: opacity 1.1s var(--v18-ease), transform 7s ease; }
.v18-hero__image.is-active { opacity: 1; transform: scale(1.015); }
.v18-hero__media::after { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, rgba(19,13,12,.25), rgba(19,13,12,.12) 35%, rgba(19,13,12,.82)); transition: background .9s var(--v18-ease); }
body[data-v18-mood="breakfast"] .v18-hero__media::after { background: linear-gradient(180deg, rgba(43,31,23,.08), rgba(43,31,23,.06) 34%, rgba(36,24,20,.72)); }
body[data-v18-mood="happy-hour"] .v18-hero__media::after { background: linear-gradient(180deg, rgba(91,45,22,.16), rgba(135,76,37,.12) 36%, rgba(48,26,20,.78)); }
body[data-v18-mood="blend"] .v18-hero__media::after { background: linear-gradient(135deg, rgba(150,84,40,.20), rgba(28,17,16,.28) 52%, rgba(24,15,15,.80)); }
body[data-v18-mood="dinner"] .v18-hero__media::after { background: linear-gradient(180deg, rgba(13,9,9,.32), rgba(17,11,11,.22) 35%, rgba(15,9,9,.88)); }
.v18-hero__content { position: relative; z-index: 2; width: var(--v18-shell); margin-inline: auto; padding: calc(var(--v18-header) + 80px) 0 clamp(65px, 10vh, 110px); }
.v18-hero__eyebrow { margin: 0 0 1.1rem; font-size: .78rem; letter-spacing: .19em; text-transform: uppercase; }
.v18-hero h1 { max-width: 1000px; text-wrap: balance; }
.v18-hero__tagline { display: flex; align-items: center; gap: 1rem; margin-top: 1.75rem; font-family: var(--v18-serif); font-size: clamp(1.2rem, 2vw, 1.8rem); }
.v18-hero__tagline span:not(:last-child)::after { content: "·"; margin-left: 1rem; color: var(--v18-gold); }
.v18-scroll-cue { position: absolute; right: max(24px, calc((100vw - 1320px)/2)); bottom: 78px; z-index: 2; display: flex; align-items: center; gap: .8rem; font-size: .7rem; letter-spacing: .14em; text-transform: uppercase; transform: rotate(90deg); transform-origin: right center; }
.v18-scroll-cue::after { content: ""; width: 70px; height: 1px; background: currentColor; }

/* Sections */
.v18-section { padding: clamp(75px, 10vw, 145px) 0; }
.v18-section--white { background: var(--v18-white); }
.v18-section--dark { background: var(--v18-ink); color: var(--v18-white); }
.v18-section--copper { background: var(--v18-copper); color: var(--v18-white); }
.v18-home-intro { background: var(--v18-mood-bg); color: var(--v18-mood-ink); transition: background-color .9s var(--v18-ease), color .9s var(--v18-ease); }
.v18-home-intro .v18-lead { color: color-mix(in srgb, var(--v18-mood-ink) 70%, transparent); }
.v18-home-intro .v18-kicker, .v18-home-intro .v18-text-link { color: var(--v18-mood-accent); }
.v18-intro-grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(35px, 8vw, 120px); align-items: end; }
.v18-intro-grid__copy { max-width: 690px; }

/* Immersive service journey */
.v18-services {
  position: relative;
  padding: clamp(70px, 9vw, 130px) 0 0;
  background: var(--v18-mood-bg);
  color: var(--v18-mood-ink);
  transition: background-color .9s var(--v18-ease), color .9s var(--v18-ease);
}
.v18-services__head {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 2rem;
  padding-bottom: clamp(48px, 7vw, 92px);
}
.v18-services__head .v18-lead { color: color-mix(in srgb, var(--v18-mood-ink) 70%, transparent); }
.v18-services .v18-kicker { color: var(--v18-mood-accent); }
.v18-service-journey { position: relative; width: 100%; overflow: clip; }
.v18-service-scene {
  --scene-shift: 0;
  --scene-content-shift: 0;
  position: relative;
  min-height: clamp(720px, 92svh, 980px);
  display: grid;
  overflow: hidden;
  isolation: isolate;
  background: #1b1211;
  color: var(--v18-white);
  border-top: 1px solid rgba(255,255,255,.12);
}
.v18-service-scene__media {
  position: absolute;
  inset: -8% 0;
  z-index: -3;
  overflow: hidden;
  background: var(--v18-ink);
}
.v18-service-scene__media img {
  width: 100%;
  height: 116%;
  object-fit: cover;
  object-position: center;
  transform: translate3d(0, calc(var(--scene-shift) * 1px), 0) scale(1.08);
  filter: saturate(.92) contrast(1.02);
  will-change: transform;
}
.v18-service-scene__veil {
  position: absolute;
  inset: 0;
  z-index: -2;
  background:
    linear-gradient(90deg, rgba(20,13,12,.88) 0%, rgba(20,13,12,.64) 34%, rgba(20,13,12,.18) 68%, rgba(20,13,12,.18) 100%),
    linear-gradient(180deg, rgba(15,10,9,.12), rgba(15,10,9,.24) 55%, rgba(15,10,9,.64));
  transition: background .8s var(--v18-ease);
}
.v18-service-scene--right .v18-service-scene__veil {
  background:
    linear-gradient(270deg, rgba(20,13,12,.88) 0%, rgba(20,13,12,.64) 34%, rgba(20,13,12,.18) 68%, rgba(20,13,12,.18) 100%),
    linear-gradient(180deg, rgba(15,10,9,.12), rgba(15,10,9,.24) 55%, rgba(15,10,9,.64));
}
.v18-service-scene__frame {
  position: relative;
  z-index: 2;
  min-height: inherit;
  display: flex;
  align-items: center;
  padding-block: clamp(110px, 15vh, 175px);
}
.v18-service-scene--right .v18-service-scene__frame { justify-content: flex-end; }
.v18-service-scene__frame::before {
  content: "";
  position: absolute;
  top: clamp(70px, 10vh, 105px);
  left: 0;
  width: 0;
  height: 1px;
  background: rgba(255,255,255,.62);
  transition: width 1.1s .15s var(--v18-ease);
}
.v18-service-scene--right .v18-service-scene__frame::before { left: auto; right: 0; }
.v18-service-scene.is-scene-visible .v18-service-scene__frame::before { width: min(300px, 24vw); }
.v18-service-scene__content {
  width: min(590px, 54vw);
  transform: translate3d(0, calc(var(--scene-content-shift) * 1px), 0);
  will-change: transform;
}
.v18-service-scene__content > * {
  opacity: 0;
  transform: translateY(34px);
  transition: opacity .8s var(--v18-ease), transform .8s var(--v18-ease);
}
.v18-service-scene.is-scene-visible .v18-service-scene__content > * { opacity: 1; transform: none; }
.v18-service-scene.is-scene-visible .v18-service-scene__content > :nth-child(1) { transition-delay: .08s; }
.v18-service-scene.is-scene-visible .v18-service-scene__content > :nth-child(2) { transition-delay: .14s; }
.v18-service-scene.is-scene-visible .v18-service-scene__content > :nth-child(3) { transition-delay: .20s; }
.v18-service-scene.is-scene-visible .v18-service-scene__content > :nth-child(4) { transition-delay: .27s; }
.v18-service-scene.is-scene-visible .v18-service-scene__content > :nth-child(5) { transition-delay: .34s; }
.v18-service-scene.is-scene-visible .v18-service-scene__content > :nth-child(6) { transition-delay: .41s; }
.v18-service-scene__meta { display: flex; align-items: center; gap: 1rem; margin-bottom: 1.35rem; }
.v18-service__status {
  display: inline-flex;
  align-items: center;
  min-height: 31px;
  border: 1px solid rgba(255,255,255,.8);
  padding: .38rem .7rem;
  color: var(--v18-white);
  font-size: .65rem;
  font-weight: 800;
  letter-spacing: .14em;
  line-height: 1;
  text-transform: uppercase;
  backdrop-filter: blur(8px);
}
.v18-service__status[hidden] { display: none; }
.v18-service-scene__index { color: rgba(255,255,255,.68); font-size: .68rem; font-weight: 700; letter-spacing: .16em; }
.v18-service__label { display: inline-flex; margin-bottom: 1.15rem; color: #d4ad73; font-size: .72rem; font-weight: 750; letter-spacing: .18em; text-transform: uppercase; }
.v18-service-scene h3 { max-width: 9ch; margin-bottom: 1.25rem; color: var(--v18-white); font-size: clamp(4.5rem, 9vw, 9rem); line-height: .84; text-shadow: 0 12px 45px rgba(0,0,0,.28); }
.v18-service-scene p { max-width: 39ch; color: rgba(255,255,255,.82); font-size: clamp(1.02rem, 1.35vw, 1.22rem); }
.v18-service__hours { margin: 1rem 0 1.65rem; color: rgba(255,255,255,.82); font-size: .76rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.v18-service-scene__edge {
  position: absolute;
  right: max(18px, calc((100vw - 1320px) / 2));
  bottom: clamp(42px, 7vh, 76px);
  z-index: 2;
  overflow: hidden;
  color: rgba(255,255,255,.62);
  font-size: .65rem;
  font-weight: 750;
  letter-spacing: .2em;
  text-transform: uppercase;
  writing-mode: vertical-rl;
}
.v18-service-scene--right .v18-service-scene__edge { right: auto; left: max(18px, calc((100vw - 1320px) / 2)); transform: rotate(180deg); }
.v18-service-scene__edge span { display: block; transform: translateY(110%); transition: transform .9s .38s var(--v18-ease); }
.v18-service-scene.is-scene-visible .v18-service-scene__edge span { transform: none; }
.v18-service-scene.is-current::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  box-shadow: inset 0 0 0 5px rgba(212,173,115,.88);
}
.v18-service-scene.is-current .v18-service-scene__media img { filter: saturate(1.04) contrast(1.04); }
.v18-service-scene.is-up-next .v18-service__status { border-color: rgba(212,173,115,.9); color: #f0cf98; }
.v18-service-divider {
  min-height: clamp(120px, 19svh, 210px);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(1rem, 3vw, 2.4rem);
  padding: 28px;
  overflow: hidden;
  background: var(--v18-mood-bg);
  color: var(--v18-mood-ink);
  font-size: .68rem;
  font-weight: 750;
  letter-spacing: .2em;
  text-transform: uppercase;
  transition: background-color .9s var(--v18-ease), color .9s var(--v18-ease);
}
.v18-service-divider i {
  width: clamp(70px, 18vw, 270px);
  height: 1px;
  background: currentColor;
  opacity: .5;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 1.2s .18s var(--v18-ease);
}
.v18-service-divider.is-visible i { transform: scaleX(1); }
.v18-service-scene .v18-button--light { background: rgba(255,255,255,.96); border-color: rgba(255,255,255,.96); color: var(--v18-ink); }
.v18-service-scene .v18-button--light:hover { background: #d4ad73; border-color: #d4ad73; color: var(--v18-ink); }

/* Editorial cards */
.v18-editorial-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; }
.v18-editorial-card { position: relative; min-height: 620px; overflow: hidden; color: var(--v18-white); background: var(--v18-ink); text-decoration: none; }
.v18-editorial-card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--v18-ease); }
.v18-editorial-card::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 25%, rgba(20,14,13,.88)); }
.v18-editorial-card__content { position: absolute; inset: auto 0 0; z-index: 2; padding: clamp(30px, 5vw, 60px); }
.v18-editorial-card:hover { color: var(--v18-white); }
.v18-editorial-card:hover img { transform: scale(1.045); }
.v18-editorial-card__links { display: flex; flex-wrap: wrap; gap: .7rem 1.2rem; margin-top: 1.25rem; }
.v18-editorial-card__links span { font-size: .73rem; font-weight: 750; letter-spacing: .09em; text-transform: uppercase; }

/* Split section */
.v18-split { display: grid; grid-template-columns: 1fr 1fr; min-height: 700px; background: var(--v18-white); }
.v18-split__media img { width: 100%; height: 100%; object-fit: cover; }
.v18-split__copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(50px, 8vw, 120px); }
.v18-split__actions { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 1rem; }

/* Newsletter and FAQ */
.v18-newsletter { text-align: center; }
.v18-newsletter .v18-lead { margin-inline: auto; }
.v18-faq-list { border-top: 1px solid rgba(40,30,30,.2); }
.v18-faq { border-bottom: 1px solid rgba(40,30,30,.2); }
.v18-faq summary { cursor: pointer; list-style: none; display: flex; justify-content: space-between; gap: 1rem; padding: 1.45rem 0; font-family: var(--v18-serif); font-size: clamp(1.2rem, 2vw, 1.55rem); }
.v18-faq summary::-webkit-details-marker { display: none; }
.v18-faq summary::after { content: "+"; color: var(--v18-copper); font-family: var(--v18-sans); font-size: 1.4rem; font-weight: 300; }
.v18-faq[open] summary::after { content: "−"; }
.v18-faq__answer { max-width: 720px; padding: 0 0 1.5rem; color: var(--v18-muted); }
.v18-faq-actions { margin-top: 2rem; }

/* Page hero */
.v18-page-hero { position: relative; min-height: 480px; display: grid; align-items: end; overflow: hidden; background: var(--v18-ink); color: var(--v18-white); }
.v18-page-hero__media { position: absolute; inset: 0; }
.v18-page-hero__media img { width: 100%; height: 100%; object-fit: cover; }
.v18-page-hero__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(25,18,17,.22), rgba(25,18,17,.82)); }
.v18-page-hero__content { position: relative; z-index: 2; width: var(--v18-shell); margin-inline: auto; padding: calc(var(--v18-header) + 80px) 0 70px; }
.v18-page-hero h1 { font-size: clamp(3.4rem, 8vw, 7rem); }
.v18-page-hero__intro { max-width: 60ch; margin-top: 1.25rem; color: rgba(255,255,255,.82); font-size: 1.1rem; }

/* Content */
.v18-content { padding: clamp(70px, 9vw, 130px) 0; }
.v18-content > *:first-child { margin-top: 0; }
.v18-content :where(.alignwide) { width: var(--v18-shell); max-width: none; margin-left: 50%; transform: translateX(-50%); }
.v18-content :where(.alignfull) { width: 100vw; max-width: none; margin-left: 50%; transform: translateX(-50%); }
.v18-content ul, .v18-content ol { padding-left: 1.25rem; }
.v18-content blockquote { border-left: 2px solid var(--v18-gold); margin: 2rem 0; padding: .5rem 0 .5rem 1.5rem; font-family: var(--v18-serif); font-size: 1.6rem; }

/* Menus */
.v18-menu-page { background: var(--v18-cream); }
.v18-menu-key { display: flex; flex-wrap: wrap; gap: .65rem 1.25rem; align-items: center; padding: 1rem 0 2rem; font-size: .74rem; color: var(--v18-muted); }
.v18-diet { display: inline-flex; align-items: center; justify-content: center; min-width: 27px; height: 27px; border: 1px solid rgba(40,30,30,.32); border-radius: 50%; padding: 0 .35rem; font-size: .6rem; font-weight: 800; letter-spacing: .02em; text-transform: uppercase; }
.v18-menu-nav { position: sticky; top: 76px; z-index: 30; background: rgba(244,239,232,.96); border-block: 1px solid rgba(40,30,30,.15); backdrop-filter: blur(14px); }
.v18-menu-nav[hidden] { display: none; }
.v18-menu-nav__inner { width: var(--v18-shell); margin-inline: auto; display: flex; gap: 1.4rem; overflow-x: auto; scrollbar-width: none; }
.v18-menu-nav__inner::-webkit-scrollbar { display: none; }
.v18-menu-nav a { flex: 0 0 auto; padding: .95rem 0; color: var(--v18-muted); font-size: .72rem; font-weight: 750; letter-spacing: .1em; text-decoration: none; text-transform: uppercase; }
.v18-menu-nav a.is-active, .v18-menu-nav a:hover { color: var(--v18-copper); }
.v18-menu-sections { padding: clamp(55px, 8vw, 110px) 0; }
.v18-menu-section { scroll-margin-top: 150px; padding: 0 0 clamp(65px, 8vw, 100px); }
.v18-menu-section + .v18-menu-section { border-top: 1px solid rgba(40,30,30,.18); padding-top: clamp(65px, 8vw, 100px); }
.v18-menu-section__head { display: grid; grid-template-columns: 1fr 1.2fr; gap: 2rem; margin-bottom: 2rem; }
.v18-menu-section__title { font-size: clamp(2.3rem, 4.5vw, 4.2rem); }
.v18-menu-section__subtitle { align-self: end; color: var(--v18-muted); }
.v18-menu-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 0 4.5rem; }
.v18-menu-item { position: relative; padding: 1.35rem 0; border-top: 1px solid rgba(40,30,30,.13); }
.v18-menu-item__row { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 1rem; align-items: baseline; }
.v18-menu-item__name { margin: 0; font-family: var(--v18-sans); font-size: .92rem; font-weight: 800; letter-spacing: .075em; line-height: 1.35; text-transform: uppercase; }
.v18-menu-item__price { font-size: .9rem; font-variant-numeric: tabular-nums; white-space: nowrap; }
.v18-menu-item__description { margin: .48rem 0 0; color: var(--v18-muted); font-size: .9rem; line-height: 1.55; }
.v18-menu-item__dietary { display: inline-flex; gap: .32rem; margin-left: .35rem; vertical-align: middle; }
.v18-menu-item__dietary .v18-diet { min-width: 22px; height: 22px; font-size: .52rem; }
.v18-menu-item__prices { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(54px,auto); gap: .8rem; text-align: right; }
.v18-menu-item__prices span { display: grid; gap: .15rem; }
.v18-menu-item__prices small { color: var(--v18-muted); font-size: .58rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.v18-menu-item__extras { display: grid; gap: .3rem; margin-top: .65rem; color: var(--v18-muted); font-size: .8rem; }
.v18-menu-item__extra { display: flex; justify-content: space-between; gap: 1rem; }

/* Features */
.v18-feature-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 1.5rem; }
.v18-feature-card { background: var(--v18-white); color: var(--v18-ink); text-decoration: none; overflow: hidden; transition: transform .35s var(--v18-ease), box-shadow .35s var(--v18-ease); }
.v18-feature-card:hover { color: var(--v18-ink); transform: translateY(-7px); box-shadow: var(--v18-shadow); }
.v18-feature-card__media { aspect-ratio: 4/3; overflow: hidden; background: var(--v18-sand); }
.v18-feature-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s var(--v18-ease); }
.v18-feature-card:hover img { transform: scale(1.04); }
.v18-feature-card__content { padding: 1.6rem; }
.v18-feature-card__content h3 { font-size: 2rem; }
.v18-feature-card__content p { margin: 0; color: var(--v18-muted); }

/* Booking */
.v18-booking { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(35px, 7vw, 100px); align-items: start; }
.v18-booking__panel { background: var(--v18-white); padding: clamp(30px, 5vw, 60px); box-shadow: var(--v18-shadow); }
.v18-booking__placeholder { min-height: 250px; display: grid; place-items: center; border: 1px solid rgba(40,30,30,.16); padding: 2rem; text-align: center; }
.v18-booking__widget[hidden] { display: none; }
.v18-booking__meta { display: grid; gap: 1rem; margin-top: 2rem; }
.v18-booking__meta div { border-top: 1px solid rgba(40,30,30,.16); padding-top: 1rem; }
.v18-map { margin-top: clamp(60px, 8vw, 100px); }
.v18-map iframe { display: block; width: 100%; min-height: 480px; border: 0; filter: saturate(.7) contrast(.95); }

/* Footer */
.site-footer { background: var(--v18-ink); color: var(--v18-white); padding: clamp(70px, 9vw, 120px) 0 100px; }
.footer-top { display: grid; grid-template-columns: 1.3fr repeat(3,1fr); gap: clamp(30px, 6vw, 90px); }
.footer-brand .site-logo { width: 230px; }
.footer-brand p { max-width: 34ch; margin-top: 1.4rem; color: rgba(255,255,255,.65); }
.footer-col h2 { font-family: var(--v18-sans); font-size: .7rem; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; margin-bottom: 1.2rem; }
.footer-col p, .footer-col li { color: rgba(255,255,255,.72); font-size: .9rem; }
.footer-col ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .55rem; }
.footer-col a { text-decoration: none; }
.footer-bottom { display: flex; justify-content: space-between; gap: 2rem; border-top: 1px solid rgba(255,255,255,.17); margin-top: 4rem; padding-top: 1.5rem; color: rgba(255,255,255,.52); font-size: .76rem; }
.footer-bottom ul { display: flex; flex-wrap: wrap; gap: 1rem 1.5rem; list-style: none; margin: 0; padding: 0; }

/* Mobile quick actions */
.v18-mobile-actions { display: none; }

/* 404 */
.v18-404 { min-height: 78svh; display: grid; place-items: center; padding: calc(var(--v18-header) + 80px) 24px 100px; text-align: center; }
.v18-404__code { color: var(--v18-gold); font-family: var(--v18-serif); font-size: clamp(6rem, 22vw, 15rem); line-height: .8; opacity: .5; }
.v18-404__links { display: flex; justify-content: center; flex-wrap: wrap; gap: .8rem; margin-top: 2rem; }

/* Reveal motion */
[data-reveal] { opacity: 0; transform: translateY(28px); transition: opacity .75s var(--v18-ease), transform .75s var(--v18-ease); }
[data-reveal].is-visible { opacity: 1; transform: none; }

@media (max-width: 1100px) {
  .header-inner { grid-template-columns: 185px 1fr auto; }
  .primary-nav ul { gap: .8rem; }
  .primary-nav a { font-size: .68rem; }
  .footer-top { grid-template-columns: 1.4fr 1fr 1fr; }
  .footer-brand { grid-row: span 2; }
}

@media (max-width: 860px) {
  :root { --v18-shell: min(100% - 36px, 720px); --v18-narrow: min(100% - 36px, 720px); --v18-header: 72px; }
  .admin-bar .site-header { top: 46px; }
  .site-header { color: var(--v18-white); }
  .header-inner { grid-template-columns: 1fr auto; }
  .site-logo { width: 155px; }
  .menu-toggle { display: block; z-index: 4; }
  .header-reserve { display: none; }
  .primary-nav { position: fixed; inset: 0; display: flex; align-items: center; justify-content: center; background: var(--v18-cream); color: var(--v18-ink); visibility: hidden; opacity: 0; transition: .28s ease; }
  .menu-open .primary-nav { visibility: visible; opacity: 1; }
  .primary-nav ul { flex-direction: column; gap: 1.15rem; align-items: center; }
  .primary-nav a { font-family: var(--v18-serif); font-size: clamp(1.7rem, 7vw, 2.7rem); font-weight: 500; letter-spacing: -.01em; text-transform: none; }
  .primary-nav .sub-menu { position: static; min-width: 0; padding: .65rem 0 0; box-shadow: none; background: transparent; display: none; visibility: visible; opacity: 1; transform: none; }
  .primary-nav .menu-item-has-children.is-open > .sub-menu { display: grid; }
  .primary-nav .sub-menu a { font-family: var(--v18-sans); font-size: .8rem; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
  .menu-open .menu-toggle span:first-child { transform: translateY(7px) rotate(45deg); }
  .menu-open .menu-toggle span:nth-child(2) { opacity: 0; }
  .menu-open .menu-toggle span:last-child { transform: translateY(-7px) rotate(-45deg); }
  .menu-open .site-header { color: var(--v18-ink); }
  .v18-hero { min-height: 86svh; }
  .v18-hero__content { padding-bottom: 70px; }
  .v18-scroll-cue { display: none; }
  .v18-intro-grid, .v18-menu-section__head, .v18-booking { grid-template-columns: 1fr; }
  .v18-editorial-grid, .v18-split { grid-template-columns: 1fr; }
  .v18-editorial-card { min-height: 520px; }
  .v18-split__media { min-height: 470px; }
  .v18-feature-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .v18-menu-grid { grid-template-columns: 1fr; }
  .v18-menu-nav { top: 64px; }
  .footer-top { grid-template-columns: 1fr 1fr; }
  .footer-brand { grid-column: 1 / -1; grid-row: auto; }
  .footer-bottom { flex-direction: column; }
  .v18-mobile-actions {
    position: fixed; inset: auto 0 0; z-index: 999; display: grid; grid-template-columns: repeat(3,1fr);
    min-height: 62px; background: rgba(40,30,30,.97); color: var(--v18-white); transform: translateY(0);
    transition: transform .32s var(--v18-ease); box-shadow: 0 -8px 25px rgba(40,30,30,.16); backdrop-filter: blur(14px);
  }
  .v18-mobile-actions.is-hidden { transform: translateY(110%); }
  .v18-mobile-actions a { display: grid; place-items: center; padding: .65rem .2rem; border-right: 1px solid rgba(255,255,255,.14); color: var(--v18-white); font-size: .65rem; font-weight: 800; letter-spacing: .08em; text-align: center; text-decoration: none; text-transform: uppercase; }
  .v18-mobile-actions a:first-child { background: var(--v18-copper); }
  .site-footer { padding-bottom: 115px; }
}

@media (max-width: 560px) {
  :root { --v18-shell: calc(100% - 28px); --v18-narrow: calc(100% - 28px); }
  h1, .v18-display { font-size: clamp(2.9rem, 14vw, 5rem); }
  h2 { font-size: clamp(2.35rem, 11vw, 4.2rem); }
  .v18-hero__tagline { flex-wrap: wrap; gap: .2rem .65rem; font-size: 1.12rem; }
  .v18-hero__tagline span:not(:last-child)::after { margin-left: .65rem; }
  .v18-section { padding: 72px 0; }
  .v18-services__head { display: block; }
  .v18-editorial-card { min-height: 470px; }
  .v18-editorial-card__content { padding: 28px; }
  .v18-split__media { min-height: 360px; }
  .v18-split__copy { padding: 58px 24px; }
  .v18-feature-grid { grid-template-columns: 1fr; }
  .v18-menu-item__row { grid-template-columns: minmax(0,1fr) auto; }
  .v18-menu-item__prices { grid-auto-flow: row; grid-auto-columns: auto; gap: .35rem; }
  .v18-menu-item__prices span { display: flex; justify-content: flex-end; gap: .5rem; }
  .footer-top { grid-template-columns: 1fr; }
  .footer-brand { grid-column: auto; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; }
  [data-reveal] { opacity: 1; transform: none; }
}

/* Native block refinements */
.v18-content .wp-block-group { margin-block: clamp(2rem, 5vw, 4.5rem); }
.v18-content .wp-block-columns { gap: clamp(2rem, 6vw, 5rem); margin-block: clamp(2.5rem, 6vw, 5rem); }
.v18-content .wp-block-image img { width: 100%; }
.v18-content .wp-block-gallery { margin-block: clamp(3rem, 7vw, 6rem); gap: .75rem; }
.v18-content .wp-block-gallery img { min-height: 260px; object-fit: cover; }
.v18-content .wp-block-buttons { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.5rem; }
.wp-block-button__link {
  display: inline-flex; min-height: 48px; align-items: center; justify-content: center; border: 1px solid var(--v18-copper);
  border-radius: var(--v18-radius); background: var(--v18-copper); color: var(--v18-white); padding: .8rem 1.35rem;
  font-size: .78rem; font-weight: 750; letter-spacing: .11em; line-height: 1.2; text-decoration: none; text-transform: uppercase;
}
.wp-block-button__link:hover { background: var(--v18-copper-dark); border-color: var(--v18-copper-dark); color: var(--v18-white); }
.wp-block-button.is-style-outline .wp-block-button__link { background: transparent; border-color: rgba(40,30,30,.45); color: var(--v18-ink); }
.wp-block-button.is-style-outline .wp-block-button__link:hover { background: var(--v18-ink); color: var(--v18-white); }
.v18-menu-overview-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1px; background: rgba(40,30,30,.15); margin: 3rem 0; }
.v18-menu-overview-card { display: flex; justify-content: space-between; align-items: center; min-height: 118px; background: var(--v18-white); padding: 1.5rem 1.8rem; font-family: var(--v18-serif); font-size: clamp(1.45rem,3vw,2.5rem); text-decoration: none; transition: background .25s ease, color .25s ease; }
.v18-menu-overview-card:hover { background: var(--v18-copper); color: var(--v18-white); }
.v18-info-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; background: rgba(40,30,30,.15); margin: 3rem 0 5rem; }
.v18-info-grid > div { display: grid; gap: .5rem; min-height: 170px; align-content: center; background: var(--v18-white); padding: 2rem; }
.v18-info-grid strong { font-family: var(--v18-serif); font-size: 2rem; font-weight: 500; }
.v18-info-grid span { color: var(--v18-muted); font-size: .86rem; }
.v18-cta-panel { background: var(--v18-white); padding: clamp(2rem,6vw,5rem); box-shadow: var(--v18-shadow); }
.v18-cta-panel--primary { border-top: 5px solid var(--v18-copper); }
.v18-team-grid .wp-block-column { background: var(--v18-white); padding: clamp(1.4rem,3vw,2.5rem); }
.v18-team-grid .wp-block-image { margin-top: 0; }
.v18-team-grid .wp-block-image img { aspect-ratio: 1/1; object-fit: cover; }
.v18-booking__details { margin: 0 !important; padding: clamp(1.5rem,3vw,2rem); }
.v18-newsletter-form { max-width: 560px; margin: 2.5rem auto 0; background: var(--v18-white); padding: clamp(1.5rem,5vw,3.5rem); box-shadow: var(--v18-shadow); }
.v18-newsletter-form fieldset { border: 0; padding: 0; margin: 0; }
.v18-newsletter-form legend { width: 100%; margin-bottom: 1.5rem; font-family: var(--v18-serif); font-size: 2.2rem; text-align: center; }
.v18-newsletter-form fieldset > div { margin-bottom: 1rem; }
.v18-newsletter-form label { display: block; margin-bottom: .35rem; color: var(--v18-muted); font-size: .72rem; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.v18-newsletter-form input { width: 100%; min-height: 50px; border: 1px solid rgba(40,30,30,.24); border-radius: 0; background: var(--v18-white); color: var(--v18-ink); padding: .75rem .9rem; }
.v18-newsletter-form input:focus { border-color: var(--v18-copper); outline: 2px solid rgba(133,81,53,.2); outline-offset: 0; }
.v18-newsletter-form .v18-button { width: 100%; margin-top: .5rem; }

@media (max-width: 720px) {
  .v18-menu-overview-grid, .v18-info-grid { grid-template-columns: 1fr; }
  .v18-content .wp-block-columns { display: grid; }
  .v18-content .wp-block-gallery { grid-template-columns: 1fr !important; }
  .v18-content .wp-block-gallery img { min-height: 220px; }
}

/* Current Feature card behaviours */
.v18-feature-card--expand { display: block; }
.v18-feature-card--expand > summary { list-style: none; cursor: pointer; }
.v18-feature-card--expand > summary::-webkit-details-marker { display: none; }
.v18-feature-card__toggle { display: inline-flex; margin: 0 1.6rem 1.5rem; color: var(--v18-copper); font-size: .74rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.v18-feature-card__toggle::after { content: "+"; margin-left: .55rem; font-size: 1rem; line-height: .8; }
.v18-feature-card--expand[open] .v18-feature-card__toggle::after { content: "−"; }
.v18-feature-card__expanded { border-top: 1px solid rgba(40,30,30,.13); padding: 1.6rem; }
.v18-feature-card__expanded > :first-child { margin-top: 0; }
.v18-feature-card__expanded > :last-child { margin-bottom: 0; }

/* Instagram feed */
.v18-instagram { background: #eee5da; }
.v18-instagram__head { display: flex; align-items: end; justify-content: space-between; gap: 2rem; margin-bottom: clamp(2rem, 5vw, 4rem); }
.v18-instagram__head h2 { margin-bottom: 0; }
.v18-instagram__feed { min-height: 240px; }

/* Footer refinements */
.footer-brand .footer-reserve { margin-top: 1.25rem; }
.footer-social { border-top: 1px solid rgba(255,255,255,.15); margin-top: 1.25rem !important; padding-top: 1.25rem !important; }

@media (max-width: 860px) {
  .v18-service-scene { min-height: min(860px, 92svh); }
  .v18-service-scene__frame { align-items: end; padding-block: 120px 78px; }
  .v18-service-scene--right .v18-service-scene__frame { justify-content: flex-start; }
  .v18-service-scene__content { width: min(620px, 88vw); }
  .v18-service-scene__veil,
  .v18-service-scene--right .v18-service-scene__veil {
    background: linear-gradient(180deg, rgba(18,12,11,.12) 0%, rgba(18,12,11,.28) 36%, rgba(18,12,11,.90) 100%);
  }
  .v18-service-scene__frame::before,
  .v18-service-scene--right .v18-service-scene__frame::before { top: 92px; left: 0; right: auto; }
  .v18-service-scene.is-scene-visible .v18-service-scene__frame::before { width: min(220px, 55vw); }
  .v18-service-scene__edge { display: none; }
  .v18-service-scene h3 { font-size: clamp(4.2rem, 16vw, 7rem); }
}

@media (max-width: 680px) {
  .v18-service-scene { min-height: 82svh; }
  .v18-service-scene__frame { padding-block: 110px 56px; }
  .v18-service-scene__content { width: 100%; }
  .v18-service-scene h3 { font-size: clamp(3.75rem, 18vw, 5.8rem); }
  .v18-service-scene p { max-width: 32ch; }
  .v18-service-divider { min-height: 112px; gap: .8rem; padding-inline: 18px; font-size: .58rem; letter-spacing: .14em; }
  .v18-service-divider i { width: min(90px, 24vw); }
  .v18-instagram__head { align-items: flex-start; flex-direction: column; }
}

@supports not (color: color-mix(in srgb, white, black)) {
  .v18-home-intro .v18-lead, .v18-services__head .v18-lead { color: var(--v18-muted); }
  body[data-v18-mood="dinner"] .v18-home-intro .v18-lead,
  body[data-v18-mood="dinner"] .v18-services__head .v18-lead { color: rgba(255,255,255,.72); }
}

/* =========================================================
   Vista 18 Elevated 1.4 — consolidated visual QA refinements
   ========================================================= */

/* Safer motion: content is readable before JavaScript. */
[data-reveal], [data-editorial-reveal], [data-cinematic-card], [data-stagger-grid] { opacity: 1; transform: none; }
.v18-ready [data-reveal],
.v18-ready [data-editorial-reveal],
.v18-ready [data-cinematic-card],
.v18-ready [data-stagger-grid] { opacity: 1; transform: translateY(24px); filter: blur(1.5px); }
.v18-ready [data-editorial-reveal] { transform: translateY(36px); }
.v18-ready [data-cinematic-card] { transform: translateY(28px) scale(.988); }
.v18-ready [data-reveal].is-visible,
.v18-ready [data-editorial-reveal].is-visible,
.v18-ready [data-cinematic-card].is-visible,
.v18-ready [data-stagger-grid].is-visible { opacity: 1; transform: none; filter: none; transition: transform .95s var(--v18-ease), filter .75s var(--v18-ease); }

/* Cleaner site-wide typography rhythm. */
h2 { font-size: clamp(2.25rem, 4.15vw, 4.45rem); line-height: 1; }
.v18-content h2 { max-width: 16ch; }
.v18-content p + h2 { margin-top: clamp(2.5rem, 5vw, 4.5rem); }
.v18-page-hero h1 { max-width: 18ch; font-size: clamp(3.25rem, 6.7vw, 6.25rem); line-height: .96; }
.v18-page-hero__intro { max-width: 58ch; }

/* Homepage hero. */
.v18-hero { min-height: 100svh; }
.v18-hero__image { object-position: var(--hero-x, 50%) var(--hero-y, 50%); transform: scale(1.07); }
.v18-hero__image.is-active { transform: scale(1.015); }
.v18-hero__media::after {
  background: linear-gradient(180deg, rgba(16,11,10,.16), rgba(16,11,10,.08) 40%, rgba(16,11,10,var(--hero-overlay,.45)) 100%) !important;
}
.v18-hero__content { display: grid; justify-items: start; max-width: var(--v18-shell); }
.v18-hero[data-hero-align="center"] .v18-hero__content { justify-items: center; text-align: center; }
.v18-hero[data-hero-align="right"] .v18-hero__content { justify-items: end; text-align: right; }
.v18-hero__status { margin: 0 0 1.1rem; font-size: .75rem; font-weight: 750; letter-spacing: .18em; text-transform: uppercase; }
.v18-hero h1 { display: grid; max-width: 1020px; }
.v18-hero h1 span { display: block; }
.v18-hero__tagline { margin-top: 1.45rem; font-size: clamp(1.08rem, 1.55vw, 1.45rem); }
.v18-ready .v18-hero__content > * { opacity: .72; transform: translateY(18px); animation: v18HeroReveal .85s var(--v18-ease) forwards; }
.v18-ready .v18-hero__content > :nth-child(1) { animation-delay: .18s; }
.v18-ready .v18-hero__content > :nth-child(2) { animation-delay: .32s; }
.v18-ready .v18-hero__content > :nth-child(3) { animation-delay: .48s; }
@keyframes v18HeroReveal { to { opacity: 1; transform: none; } }
.v18-scroll-cue { transform: none; writing-mode: vertical-rl; right: max(24px, calc((100vw - 1320px)/2)); bottom: 62px; }
.v18-scroll-cue i { display: block; width: 1px; height: 68px; margin-top: .8rem; background: currentColor; transform-origin: top; animation: v18ScrollCue 1.8s ease-in-out infinite; }
@keyframes v18ScrollCue { 0%,100% { transform: scaleY(.25); opacity: .45; } 50% { transform: scaleY(1); opacity: 1; } }

/* Compact culinary introduction. */
.v18-home-intro { padding: clamp(58px, 6.5vw, 92px) 0; }
.v18-intro-grid { grid-template-columns: repeat(2, minmax(0,1fr)); gap: clamp(44px, 7vw, 100px); align-items: center; }
.v18-intro-grid__title, .v18-intro-grid__copy { max-width: 590px; }
.v18-intro-grid h2 { max-width: 11ch; font-size: clamp(2.65rem, 4.25vw, 4.35rem); }
.v18-mask-heading { overflow: hidden; }
.v18-mask-heading > span { display: block; }
.v18-ready [data-editorial-reveal] .v18-mask-heading > span,
.v18-ready .v18-service-scene .v18-mask-heading > span { transform: translateY(20px); opacity: .72; transition: transform .9s var(--v18-ease), opacity .75s var(--v18-ease); }
.v18-ready [data-editorial-reveal].is-visible .v18-mask-heading > span,
.v18-ready .v18-service-scene.is-scene-visible .v18-mask-heading > span { transform: none; opacity: 1; }
.v18-ready [data-editorial-reveal].is-visible .v18-mask-heading > span:nth-child(2) { transition-delay: .1s; }
.v18-intro-grid__copy { align-self: center; }
.v18-intro-grid__copy .v18-lead { font-size: clamp(1rem, 1.3vw, 1.18rem); }

/* Immersive service chapters. */
.v18-services { padding: 0; }
.v18-service-scene { min-height: clamp(670px, 88svh, 900px); border-top: 0; }
.v18-service-scene__media { inset: -4% 0; }
.v18-service-scene__media img { height: 108%; object-position: var(--service-x,50%) var(--service-y,50%); transform: translate3d(0,calc(var(--scene-shift) * 1px),0) scale(1.035); }
.v18-service-scene__veil {
  background: linear-gradient(90deg, rgba(20,13,12,var(--service-overlay,.62)) 0%, rgba(20,13,12,.46) 34%, rgba(20,13,12,.10) 72%, rgba(20,13,12,.04) 100%), linear-gradient(180deg,rgba(15,10,9,.05),rgba(15,10,9,.46));
}
.v18-service-scene--right .v18-service-scene__veil {
  background: linear-gradient(270deg, rgba(20,13,12,var(--service-overlay,.62)) 0%, rgba(20,13,12,.46) 34%, rgba(20,13,12,.10) 72%, rgba(20,13,12,.04) 100%), linear-gradient(180deg,rgba(15,10,9,.05),rgba(15,10,9,.46));
}
.v18-service-scene__frame { padding-block: clamp(90px, 12vh, 135px); }
.v18-service-scene__content { width: min(var(--service-width,590px), 52vw); }
.v18-service-scene__content > * { opacity: 1; transform: none; }
.v18-ready .v18-service-scene__content > *:not(h3) { opacity: .72; transform: translateY(18px); }
.v18-ready .v18-service-scene.is-scene-visible .v18-service-scene__content > *:not(h3) { opacity: 1; transform: none; transition: opacity .75s var(--v18-ease), transform .75s var(--v18-ease); }
.v18-ready .v18-service-scene.is-scene-visible .v18-service-scene__content > :nth-child(1) { transition-delay: .06s; }
.v18-ready .v18-service-scene.is-scene-visible .v18-service-scene__content > :nth-child(2) { transition-delay: .14s; }
.v18-ready .v18-service-scene.is-scene-visible .v18-service-scene__content > :nth-child(4) { transition-delay: .24s; }
.v18-ready .v18-service-scene.is-scene-visible .v18-service-scene__content > :nth-child(5) { transition-delay: .31s; }
.v18-ready .v18-service-scene.is-scene-visible .v18-service-scene__content > :nth-child(6) { transition-delay: .38s; }
.v18-service-scene h3 { font-size: clamp(4.7rem, 8vw, 8rem); }
.v18-service-scene.is-current::after { display: none; }
.v18-service-scene.is-current .v18-service-scene__media img { filter: saturate(1) contrast(1.02); }
.v18-service-transition { position: relative; height: clamp(74px, 8vw, 118px); overflow: hidden; background: linear-gradient(90deg,#efe2d4 0%,#b06e43 48%,#2b211f 100%); }
.v18-service-transition::before, .v18-service-transition::after { content:""; position:absolute; inset:-18%; background-size:cover; background-position:center; filter:blur(18px) saturate(.8); }
.v18-service-transition::before { background-image:linear-gradient(90deg,rgba(239,226,212,.78),rgba(93,52,37,.46)),var(--from-image); opacity:.42; animation:v18BandFrom 7s ease-in-out infinite alternate; }
.v18-service-transition::after { background-image:linear-gradient(270deg,rgba(43,33,31,.62),rgba(176,110,67,.34)),var(--to-image); opacity:.18; animation:v18BandTo 7s ease-in-out infinite alternate; }
@keyframes v18BandFrom { to { opacity:.18; transform:scale(1.05) translateX(-2%); } }
@keyframes v18BandTo { to { opacity:.46; transform:scale(1.05) translateX(2%); } }

/* Homepage 50/50 dual cards. */
.v18-dual-cards { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); height: 60svh; min-height: 520px; background: var(--v18-ink); }
.v18-dual-card { position: relative; min-width: 0; overflow: hidden; color: var(--v18-white); text-decoration: none; isolation: isolate; }
.v18-dual-card + .v18-dual-card { border-left: 1px solid rgba(255,255,255,.16); }
.v18-dual-card > img { position:absolute; inset:-4%; width:108%; height:108%; object-fit:cover; transition: transform 1.15s var(--v18-ease), filter .8s ease; }
.v18-dual-card::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(15,10,9,.05),rgba(15,10,9,.36)); pointer-events:none; }
.v18-dual-card:hover { color: var(--v18-white); }
.v18-dual-card:hover > img { transform: scale(1.065) translate3d(1.2%,-.8%,0); filter: saturate(1.05); }
.v18-glass-panel { position:absolute; left:clamp(24px,4vw,58px); bottom:clamp(24px,4vw,52px); z-index:2; width:min(480px,calc(100% - 48px)); padding:clamp(22px,3vw,38px); border:1px solid rgba(255,255,255,.28); background:rgba(26,18,17,.46); box-shadow:0 18px 60px rgba(0,0,0,.18); backdrop-filter:blur(18px) saturate(1.1); transition:transform .65s var(--v18-ease),background .4s ease; }
.v18-ready .v18-dual-card .v18-glass-panel { clip-path: inset(100% 0 0); transition: clip-path .95s .18s var(--v18-ease),transform .65s var(--v18-ease); }
.v18-ready .v18-dual-card.is-visible .v18-glass-panel { clip-path: inset(0); }
.v18-dual-card:hover .v18-glass-panel { transform: translateY(-8px); background:rgba(26,18,17,.58); }
.v18-glass-panel h2 { margin-bottom:.75rem; font-size:clamp(2rem,3.6vw,3.8rem); }
.v18-glass-panel .v18-kicker { color:#ead5b7; }
.v18-glass-panel p { color:rgba(255,255,255,.82); }
.v18-drink-links { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1px; margin-top:1.25rem; background:rgba(255,255,255,.25); }
.v18-drink-links a { display:flex; align-items:center; justify-content:space-between; min-height:48px; padding:.7rem .8rem; background:rgba(24,17,16,.54); color:#fff; font-size:.7rem; font-weight:750; letter-spacing:.07em; text-decoration:none; text-transform:uppercase; transition:background .25s ease; }
.v18-drink-links a::after { content:"→"; transition:transform .25s ease; }
.v18-drink-links a:hover { background:rgba(133,81,53,.86); color:#fff; }
.v18-drink-links a:hover::after { transform:translateX(4px); }

/* Compact local-ownership strip. */
.v18-heritage-strip { position:relative; min-height:320px; display:grid; align-items:center; overflow:hidden; color:#fff; background-image:linear-gradient(90deg,rgba(36,24,22,.91),rgba(36,24,22,.67)),var(--heritage-image); background-size:cover; background-position:center; }
.v18-heritage-strip__inner { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:3rem; align-items:end; padding-block:70px; }
.v18-heritage-strip h2 { max-width:22ch; margin:0; font-size:clamp(2rem,3.8vw,3.8rem); }
.v18-heritage-strip .v18-kicker,.v18-heritage-strip .v18-text-link { color:#ead5b7; }

/* Lower homepage spacing. */
.v18-instagram { padding-block:clamp(70px,8vw,110px); }
.v18-newsletter { padding-block:clamp(66px,7vw,98px); }
.v18-newsletter h2 { max-width:15ch; margin-inline:auto; }
.v18-home-faq { padding-block:clamp(70px,8vw,105px); }
.v18-home-faq h2 { font-size:clamp(2.5rem,4.2vw,4rem); }

/* Interior page heroes and content spacing. */
.v18-page-hero { min-height:420px; }
.v18-page-hero__content { padding:calc(var(--v18-header) + 58px) 0 58px; }
.v18-content { padding:clamp(58px,7vw,96px) 0; }

/* Full-width Current Features panels. */
.v18-feature-panels { width:100%; }
.v18-feature-panel { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); min-height:560px; background:var(--v18-white); border-bottom:1px solid rgba(40,30,30,.15); }
.v18-feature-panel__media { min-height:100%; overflow:hidden; background:var(--v18-sand); }
.v18-feature-panel__media img { width:100%; height:100%; object-fit:cover; transition:transform 1s var(--v18-ease); }
.v18-feature-panel:hover .v18-feature-panel__media img { transform:scale(1.035); }
.v18-feature-panel__content { align-self:center; width:min(650px,calc(100% - 80px)); margin-inline:auto; padding:clamp(58px,7vw,110px) 0; }
.v18-feature-panel__content h2 { max-width:12ch; }
.v18-feature-panel__details { color:var(--v18-muted); }
.v18-feature-panel__details .wp-block-buttons { margin-top:1.5rem; }
.v18-feature-panel__details > :last-child { margin-bottom:0; }

/* Text-only Menus overview. */
.v18-menus-overview-content { padding-top:clamp(54px,6vw,84px); }
.v18-menus-overview-intro { max-width:720px; margin-bottom:2.2rem; }
.v18-menu-overview-grid { margin:0 0 clamp(42px,6vw,76px); }
.v18-menu-overview-card { min-height:104px; font-size:clamp(1.4rem,2.4vw,2.15rem); padding:1.35rem 1.55rem; }
.v18-menu-overview-card > :last-child { transition:transform .25s ease; }
.v18-menu-overview-card:hover > :last-child { transform:translateX(6px); }
.v18-menu-overview-card--wide { grid-column:1 / -1; }
.v18-inroom-strip { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) auto; gap:clamp(24px,4vw,54px); align-items:center; padding:clamp(28px,4vw,48px); border-block:1px solid rgba(40,30,30,.18); }
.v18-inroom-strip h2 { margin:0; font-size:clamp(2rem,3.2vw,3.3rem); }
.v18-inroom-strip p { margin:0; color:var(--v18-muted); }

/* Menu pages: accessible guide at bottom and robust category scroller. */
.v18-menu-nav { top:76px; overflow:hidden; }
.v18-menu-nav__inner { position:relative; gap:1.65rem; padding-inline:max(24px,calc((100vw - 1320px)/2)); width:100%; scroll-padding-inline:60px; }
.v18-menu-nav__fade { position:absolute; top:0; bottom:0; z-index:2; width:54px; pointer-events:none; opacity:0; transition:opacity .2s ease; }
.v18-menu-nav__fade--left { left:0; background:linear-gradient(90deg,rgba(244,239,232,1),rgba(244,239,232,0)); }
.v18-menu-nav__fade--right { right:0; background:linear-gradient(270deg,rgba(244,239,232,1),rgba(244,239,232,0)); }
.v18-menu-nav.can-scroll-left .v18-menu-nav__fade--left,.v18-menu-nav.can-scroll-right .v18-menu-nav__fade--right { opacity:1; }
.v18-menu-nav a { position:relative; }
.v18-menu-nav a::after { content:""; position:absolute; left:0; right:0; bottom:0; height:2px; background:var(--v18-copper); transform:scaleX(0); transition:transform .25s ease; }
.v18-menu-nav a.is-active::after { transform:scaleX(1); }
.v18-menu-key-wrap { margin-top:clamp(30px,5vw,70px); padding-top:2rem; border-top:1px solid rgba(40,30,30,.18); }
.v18-menu-key-wrap .v18-menu-key { padding:0; }
.v18-menu-sections .wp-block-gallery { margin-bottom:0; }

/* Reservations. */
.v18-reservation-booking { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); gap:clamp(40px,7vw,100px); align-items:start; }
.v18-reservation-booking__widget .v18-booking__panel { padding:clamp(34px,4.5vw,60px); }
.v18-reservation-booking__widget .v18-booking__panel h2 { max-width:12ch; font-size:clamp(2.5rem,4vw,4rem); }
.v18-booking__placeholder { min-height:190px; padding:1.5rem; }
.v18-plan-visit { padding:clamp(14px,2vw,26px) 0; }
.v18-plan-visit h2 { max-width:10ch; margin-bottom:1.8rem; font-size:clamp(2.5rem,4vw,4rem); }
.v18-plan-visit__grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.5rem 2rem; }
.v18-plan-visit__grid div { display:grid; gap:.18rem; padding-top:1rem; border-top:1px solid rgba(40,30,30,.18); }
.v18-plan-visit__grid span { color:var(--v18-muted); font-size:.91rem; }
.v18-plan-visit__phone { margin-top:2rem; }
.v18-reservation-info-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1px; margin:clamp(60px,8vw,100px) 0; background:rgba(40,30,30,.15); }
.v18-reservation-info-grid section { background:var(--v18-white); padding:clamp(34px,5vw,64px); }
.v18-reservation-info-grid h2 { font-size:clamp(2.2rem,3.5vw,3.6rem); }
.v18-arrival-map { display:grid; grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr); min-height:500px; background:var(--v18-white); }
.v18-arrival-map__copy { align-self:center; padding:clamp(40px,6vw,78px); }
.v18-arrival-map__copy h2 { font-size:clamp(2.4rem,3.8vw,3.8rem); }
.v18-arrival-map__map iframe { display:block; width:100%; height:100%; min-height:500px; border:0; filter:saturate(.78) contrast(.96); }

/* Private Dining. */
.v18-private-intro { max-width:980px; margin-inline:auto; }
.v18-private-intro > .v18-lead { max-width:760px; }
.v18-info-strip { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1px; margin-top:2.5rem; background:rgba(40,30,30,.15); }
.v18-info-strip > div { display:grid; gap:.45rem; align-content:center; min-height:145px; padding:1.8rem; background:var(--v18-white); }
.v18-info-strip strong { font-family:var(--v18-serif); font-size:clamp(1.5rem,2.3vw,2.25rem); font-weight:500; }
.v18-info-strip span { color:var(--v18-muted); font-size:.85rem; }
.v18-private-story { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(260px,.75fr); gap:clamp(50px,8vw,120px); align-items:center; margin:clamp(70px,9vw,120px) 0; }
.v18-private-story__copy h2 { max-width:12ch; font-size:clamp(2.7rem,4.4vw,4.5rem); }
.v18-inline-actions { display:flex; flex-wrap:wrap; gap:.8rem; margin-top:1.7rem; }
.v18-private-story__accent { display:grid; place-items:center; min-height:330px; border:1px solid rgba(40,30,30,.18); color:var(--v18-copper); text-align:center; }
.v18-private-story__accent span { font-family:var(--v18-serif); font-size:9rem; line-height:.75; }
.v18-private-story__accent small { font-size:.7rem; font-weight:750; letter-spacing:.15em; text-transform:uppercase; }
.v18-tour-panel { position:relative; min-height:600px; overflow:hidden; color:#fff; }
.v18-tour-panel > img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform 1.1s var(--v18-ease); }
.v18-tour-panel::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(24,16,15,.86),rgba(24,16,15,.24) 70%); }
.v18-tour-panel:hover > img { transform:scale(1.035); }
.v18-tour-panel__overlay { position:relative; z-index:2; display:flex; min-height:600px; width:min(610px,75%); flex-direction:column; justify-content:center; padding:clamp(45px,7vw,95px); }
.v18-tour-panel__overlay h2 { max-width:12ch; font-size:clamp(2.7rem,4.6vw,4.8rem); }
.v18-tour-panel__overlay .v18-kicker { color:#ead5b7; }
.v18-tour-panel__overlay p { color:rgba(255,255,255,.82); }

/* About page. */
.v18-about-intro { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:clamp(55px,8vw,120px); align-items:start; margin-bottom:clamp(70px,9vw,125px); }
.v18-about-intro h2 { max-width:11ch; font-size:clamp(2.7rem,4.5vw,4.55rem); }
.v18-team-heading { max-width:850px; margin-bottom:2.6rem; }
.v18-team-heading h2 { max-width:15ch; }
.v18-team-panel { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); min-height:560px; margin-bottom:1px; background:var(--v18-white); }
.v18-team-panel__media { overflow:hidden; }
.v18-team-panel__media img { width:100%; height:100%; object-fit:cover; transition:transform 1s var(--v18-ease); }
.v18-team-panel:hover .v18-team-panel__media img { transform:scale(1.03); }
.v18-team-panel__copy { align-self:center; padding:clamp(48px,7vw,90px); }
.v18-team-panel__copy h3 { font-size:clamp(2.4rem,4vw,4.1rem); }
.v18-team-panel--reverse .v18-team-panel__media { order:2; }
.v18-team-panel--reverse .v18-team-panel__copy { order:1; }
.v18-about-content .v18-tour-panel { margin-top:clamp(70px,9vw,120px); }

/* Shop. */
.v18-shop-intro { max-width:760px; margin-bottom:clamp(44px,6vw,75px); }
.v18-shop-panel { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); min-height:540px; margin-bottom:1px; background:var(--v18-white); }
.v18-shop-panel__media { overflow:hidden; }
.v18-shop-panel__media img { width:100%; height:100%; object-fit:cover; transition:transform 1s var(--v18-ease); }
.v18-shop-panel:hover .v18-shop-panel__media img { transform:scale(1.035); }
.v18-shop-panel__copy { align-self:center; padding:clamp(48px,7vw,92px); }
.v18-shop-panel__copy h2 { max-width:12ch; font-size:clamp(2.5rem,4.2vw,4.2rem); }
.v18-shop-panel--reverse .v18-shop-panel__media { order:2; }
.v18-shop-panel--reverse .v18-shop-panel__copy { order:1; }

/* FAQ page. */
.v18-page-frequently-asked-questions .v18-content { padding-top:clamp(50px,6vw,76px); }
.v18-page-frequently-asked-questions .v18-content > .v18-narrow > .v18-lead:first-child { display:none; }
.v18-page-frequently-asked-questions .v18-content h2 { max-width:18ch; margin:clamp(2.8rem,5vw,4.8rem) 0 1rem; font-size:clamp(2.25rem,3.8vw,3.9rem); }
.v18-page-frequently-asked-questions .v18-content h2:first-of-type { margin-top:0; }
.v18-page-frequently-asked-questions .v18-faq summary { padding:1.15rem 0; font-size:clamp(1.08rem,1.6vw,1.35rem); }
.v18-faq summary::after { transition:transform .25s ease; }
.v18-faq[open] summary::after { content:"+"; transform:rotate(45deg); }
.v18-faq__answer { display:grid; grid-template-rows:0fr; overflow:hidden; padding:0; transition:grid-template-rows .35s var(--v18-ease),padding .35s var(--v18-ease); }
.v18-faq__answer > * { min-height:0; }
.v18-faq[open] .v18-faq__answer { grid-template-rows:1fr; padding:0 0 1.25rem; }

/* Stay in Touch form. */
.v18-page-stay-in-touch .v18-content { padding-top:clamp(50px,6vw,76px); }
.v18-page-stay-in-touch .v18-content > .v18-narrow > .v18-lead:first-child { display:none; }
.v18-page-stay-in-touch .v18-newsletter-form { max-width:760px; margin:0 auto; padding:clamp(30px,5vw,54px); box-shadow:0 16px 50px rgba(40,30,30,.09); }
.v18-page-stay-in-touch .v18-newsletter-form legend { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.v18-page-stay-in-touch .v18-newsletter-form fieldset { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem 1.2rem; }
.v18-page-stay-in-touch .v18-newsletter-form fieldset > div { margin:0; }
.v18-page-stay-in-touch .v18-newsletter-form fieldset > div:nth-of-type(5),
.v18-page-stay-in-touch .v18-newsletter-form .v18-button { grid-column:1 / -1; }

/* Footer refinement. */
.site-footer { padding-top:clamp(62px,7vw,92px); }
.footer-brand .site-logo { width:190px; }
.footer-social a { display:inline-flex; align-items:center; gap:.55rem; }
.footer-social__icon { display:inline-flex; width:18px; height:18px; }
.footer-social__icon svg { width:100%; height:100%; }
.footer-bottom { margin-top:3rem; }

@media (max-width: 980px) {
  .v18-feature-panel { min-height:500px; }
  .v18-feature-panel__content { width:calc(100% - 48px); }
  .v18-reservation-booking { gap:40px; }
  .v18-plan-visit__grid { grid-template-columns:1fr; gap:.9rem; }
  .v18-private-story { grid-template-columns:1fr .55fr; gap:45px; }
}

@media (max-width: 860px) {
  .v18-hero { min-height:86svh; }
  .v18-hero h1 { font-size:clamp(3.15rem,10vw,5.5rem); }
  .v18-intro-grid,
  .v18-feature-panel,
  .v18-reservation-booking,
  .v18-reservation-info-grid,
  .v18-arrival-map,
  .v18-private-story,
  .v18-about-intro,
  .v18-team-panel,
  .v18-shop-panel { grid-template-columns:1fr; }
  .v18-service-scene { min-height:82svh; }
  .v18-service-scene__content { width:min(620px,88vw); }
  .v18-dual-cards { height:auto; min-height:0; grid-template-columns:1fr; }
  .v18-dual-card { min-height:62svh; }
  .v18-dual-card + .v18-dual-card { border-left:0; border-top:1px solid rgba(255,255,255,.16); }
  .v18-heritage-strip__inner { grid-template-columns:1fr; align-items:start; }
  .v18-feature-panel__media { min-height:420px; }
  .v18-feature-panel__content { width:var(--v18-shell); padding:60px 0; }
  .v18-inroom-strip { grid-template-columns:1fr; }
  .v18-arrival-map__map iframe { min-height:400px; }
  .v18-private-story__accent { min-height:220px; }
  .v18-tour-panel,.v18-tour-panel__overlay { min-height:520px; }
  .v18-team-panel__media,.v18-shop-panel__media { min-height:440px; }
  .v18-team-panel--reverse .v18-team-panel__media,.v18-shop-panel--reverse .v18-shop-panel__media { order:1; }
  .v18-team-panel--reverse .v18-team-panel__copy,.v18-shop-panel--reverse .v18-shop-panel__copy { order:2; }
  .footer-brand .site-logo { width:170px; }
}

@media (max-width: 680px) {
  .v18-home-intro { padding:58px 0; }
  .v18-intro-grid { grid-template-columns:1fr; gap:26px; }
  .v18-intro-grid h2 { font-size:clamp(2.4rem,12vw,3.7rem); }
  .v18-service-scene { min-height:82svh; }
  .v18-glass-panel { left:18px; bottom:18px; width:calc(100% - 36px); }
  .v18-drink-links { grid-template-columns:1fr 1fr; }
  .v18-menu-overview-card--wide { grid-column:auto; }
  .v18-menu-key { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.75rem 1rem; }
  .v18-menu-key > strong { grid-column:1 / -1; }
  .v18-menu-key > span { display:flex; align-items:center; gap:.45rem; }
  .v18-menu-nav__inner { padding-inline:18px; }
  .v18-reservation-info-grid { background:transparent; gap:1rem; }
  .v18-tour-panel__overlay { width:100%; padding:38px 26px; justify-content:flex-end; }
  .v18-tour-panel::after { background:linear-gradient(180deg,rgba(24,16,15,.12),rgba(24,16,15,.9)); }
  .v18-page-stay-in-touch .v18-newsletter-form fieldset { grid-template-columns:1fr; }
  .v18-page-stay-in-touch .v18-newsletter-form fieldset > div:nth-of-type(5),
  .v18-page-stay-in-touch .v18-newsletter-form .v18-button { grid-column:auto; }
}

@media (prefers-reduced-motion: reduce) {
  .v18-ready [data-reveal], .v18-ready [data-editorial-reveal], .v18-ready [data-cinematic-card], .v18-ready [data-stagger-grid],
  .v18-ready .v18-hero__content > *, .v18-ready .v18-service-scene__content > * { opacity:1 !important; transform:none !important; animation:none !important; clip-path:none !important; }
}

/* Sticky menu navigation clears the fixed site header and WordPress admin bar. */
.v18-menu-nav { top: var(--v18-header); }
.admin-bar .v18-menu-nav { top: calc(var(--v18-header) + 32px); }
@media (max-width: 782px) {
  .admin-bar .v18-menu-nav { top: calc(var(--v18-header) + 46px); }
}


/* v1.5 refinement pass. */
.site-header:not(.is-solid) .site-logo img,
.site-header:not(.is-solid) .custom-logo { filter: brightness(0) invert(1) !important; }
.site-header.is-solid .site-logo img,
.site-header.is-solid .custom-logo,
.menu-open .site-logo img,
.menu-open .custom-logo { filter: none !important; }

/* Homepage hero alignment is intentionally fixed across every service state. */
.v18-hero__content,
.v18-hero[data-hero-align="center"] .v18-hero__content,
.v18-hero[data-hero-align="right"] .v18-hero__content { justify-items: start; text-align: left; }

/* Keep the culinary introduction balanced and within two headline lines on desktop. */
.v18-intro-grid { grid-template-columns: repeat(2,minmax(0,1fr)); align-items: stretch; }
.v18-intro-grid__title,
.v18-intro-grid__copy { display: flex; min-height: 250px; max-width: none; flex-direction: column; justify-content: center; }
.v18-intro-grid h2 { max-width: none; font-size: clamp(2.55rem,3.8vw,4rem); }
.v18-intro-grid h2 > span { white-space: nowrap; }
.v18-intro-grid__copy .v18-text-link { margin-top: 1.1rem; align-self: flex-start; }

/* Typographic service transitions. */
.v18-service-transition { display: grid; place-items: center; min-height: 104px; height: clamp(104px,10vw,150px); }
.v18-service-transition__phrase { position: relative; z-index: 3; margin: 0; padding: 0 24px; color: #fff; font-family: var(--v18-serif); font-size: clamp(1.5rem,2.65vw,2.8rem); line-height: 1.05; text-align: center; text-shadow: 0 2px 24px rgba(0,0,0,.25); }
.v18-service-transition__phrase[data-reveal] { transform: translateY(18px); }
.v18-service-transition__phrase[data-reveal].is-visible { transform: none; }

/* Matching chapter transitions around the dual-card experience. */
.v18-chapter-transition { display: grid; place-items: center; height: clamp(76px,8vw,118px); overflow: hidden; background: var(--v18-ink); }
.v18-chapter-transition span { display: block; width: clamp(90px,12vw,170px); height: 1px; background: linear-gradient(90deg,transparent,#d7b07a 35%,#fff 50%,#d7b07a 65%,transparent); transform-origin: center; animation: v18ChapterLine 2.6s ease-in-out infinite; }
@keyframes v18ChapterLine { 0%,100% { opacity: .38; transform: scaleX(.34); } 50% { opacity: 1; transform: scaleX(1); } }

/* Equal dual-card canvases, glass panels and CTA treatment. */
.v18-dual-card > img { inset: 0; width: 100%; height: 100%; }
.v18-glass-panel { display: flex; width: min(500px,calc(100% - 48px)); height: 320px; flex-direction: column; }
.v18-glass-panel > p:not(.v18-kicker) { max-width: 42ch; }
.v18-dual-card__cta,
.v18-drink-links a { min-height: 50px; border: 1px solid rgba(255,255,255,.16); background: rgba(24,17,16,.58); color: #fff; font-size: .7rem; font-weight: 750; letter-spacing: .07em; text-decoration: none; text-transform: uppercase; }
.v18-dual-card__cta { display: flex; align-items: center; justify-content: space-between; margin-top: auto; padding: .75rem .85rem; }
.v18-dual-card__cta::after { content: "→"; transition: transform .25s ease; }
.v18-dual-card:hover .v18-dual-card__cta::after { transform: translateX(4px); }
.v18-drink-links { margin-top: auto; }
.v18-drink-links a { padding: .75rem .85rem; }

/* Dietary guide sits between menu content and imagery. */
.v18-menu-key-wrap { clear: both; margin-top: clamp(34px,5vw,72px); margin-bottom: clamp(34px,5vw,62px); }
.v18-menu-key-wrap + .wp-block-gallery { margin-top: 0; }

/* Desktop menu navigation arrows for long category lists. */
.v18-menu-nav__shell { position: relative; width: var(--v18-shell); margin-inline: auto; }
.v18-menu-nav__inner { width: 100%; padding-inline: 0; }
.v18-menu-nav.has-overflow .v18-menu-nav__inner { padding-inline: 50px; }
.v18-menu-nav__arrow { position: absolute; top: 50%; z-index: 5; display: grid; width: 36px; height: 36px; place-items: center; border: 1px solid rgba(40,30,30,.2); border-radius: 50%; background: rgba(244,239,232,.96); color: var(--v18-ink); font-size: 1rem; cursor: pointer; opacity: 0; pointer-events: none; transform: translateY(-50%); transition: opacity .2s ease, background .2s ease, color .2s ease; }
.v18-menu-nav__arrow--left { left: 0; }
.v18-menu-nav__arrow--right { right: 0; }
.v18-menu-nav.can-scroll-left .v18-menu-nav__arrow--left,
.v18-menu-nav.can-scroll-right .v18-menu-nav__arrow--right { opacity: 1; pointer-events: auto; }
.v18-menu-nav__arrow:hover { background: var(--v18-copper); color: #fff; }
.v18-menu-nav__arrow:disabled { opacity: 0; pointer-events: none; }
.v18-menu-nav__fade--left { left: 38px; }
.v18-menu-nav__fade--right { right: 38px; }

/* Smaller logos. */
.footer-brand .site-logo { width: 160px; }

@media (max-width: 860px) {
  .site-logo { width: 128px; }
  .footer-brand .site-logo { width: 136px; }
  .v18-intro-grid__title,
  .v18-intro-grid__copy { min-height: 0; }
  .v18-intro-grid h2 > span { white-space: normal; }
  .v18-glass-panel { height: auto; min-height: 0; }
  .v18-menu-nav__arrow { display: none; }
  .v18-menu-nav.has-overflow .v18-menu-nav__inner { padding-inline: 18px; }
  .v18-menu-nav__fade--left { left: 0; }
  .v18-menu-nav__fade--right { right: 0; }
}

@media (max-width: 560px) {
  .site-logo { width: 116px; }
  .footer-brand .site-logo { width: 124px; }
}

@media (prefers-reduced-motion: reduce) {
  .v18-chapter-transition span { animation: none !important; }
}

/* v1.6 refinement pass. */

/* Clean typographic transitions between service chapters. */
.v18-service-transition,
.v18-service-transition::before,
.v18-service-transition::after {
  background-image: none !important;
  filter: none !important;
  animation: none !important;
}
.v18-service-transition {
  min-height: 124px;
  height: clamp(124px, 10vw, 164px);
  padding-inline: 24px;
}
.v18-service-transition--daylight {
  background: #eee5da;
  color: var(--v18-ink);
}
.v18-service-transition--evening {
  background: var(--v18-ink);
  color: #fffaf4;
}
.v18-service-transition__phrase {
  display: grid;
  grid-template-columns: auto minmax(90px, 220px) auto;
  align-items: center;
  gap: clamp(18px, 3vw, 44px);
  width: min(900px, 100%);
  padding: 0;
  color: inherit;
  text-shadow: none;
  font-size: clamp(1.45rem, 2.45vw, 2.65rem);
}
.v18-service-transition__phrase > span:first-child { text-align: right; }
.v18-service-transition__phrase > span:last-child { text-align: left; }
.v18-service-transition__line {
  position: relative;
  display: block;
  height: 1px;
  overflow: visible;
  background: color-mix(in srgb, currentColor 28%, transparent);
}
.v18-service-transition__line b {
  position: absolute;
  inset: -1px auto auto 0;
  display: block;
  width: 100%;
  height: 2px;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: left center;
}
.v18-service-transition__line::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 0;
  width: 10px;
  height: 10px;
  border-top: 1.5px solid currentColor;
  border-right: 1.5px solid currentColor;
  opacity: 0;
  transform: translate(-9px,-50%) rotate(45deg);
}
.v18-service-transition__phrase.is-visible .v18-service-transition__line b {
  animation: v18TransitionLine 1.15s .3s var(--v18-ease) forwards;
}
.v18-service-transition__phrase.is-visible .v18-service-transition__line::after {
  animation: v18TransitionArrow .55s 1.2s var(--v18-ease) forwards;
}
@keyframes v18TransitionLine {
  to { transform: scaleX(1); }
}
@keyframes v18TransitionArrow {
  to { opacity: 1; transform: translate(0,-50%) rotate(45deg); }
}

/* Header logos remain prominent in both transparent and solid states. */
@media (min-width: 861px) {
  .header-inner { grid-template-columns: 235px 1fr auto; }
  .site-header .site-logo { width: 205px; }
}

/* The footer always uses the coloured brand mark. */
.site-footer .site-logo { width: 182px; }
.site-footer .site-logo img,
.site-footer .custom-logo { filter: none !important; }

/* Organized one-line Stay in Touch statement on larger desktop screens. */
@media (min-width: 1100px) {
  .v18-newsletter .v18-narrow { width: min(1240px, calc(100vw - 80px)); }
  .v18-newsletter h2 {
    max-width: none;
    margin-inline: auto;
    white-space: nowrap;
    font-size: clamp(2.8rem, 4vw, 4.4rem);
  }
  .v18-newsletter .v18-lead {
    max-width: none;
    white-space: nowrap;
    font-size: clamp(1rem, 1.2vw, 1.18rem);
  }
}

/* Place the heritage feature within the same warm canvas as Instagram. */
.v18-chapter-transition--heritage {
  height: clamp(58px, 6vw, 86px);
  background: #eee5da;
}
.v18-chapter-transition--heritage span {
  background: linear-gradient(90deg, transparent, rgba(133,81,53,.35) 35%, var(--v18-copper) 50%, rgba(133,81,53,.35) 65%, transparent);
}
.v18-heritage-strip + .v18-instagram { border-top: clamp(48px, 5vw, 76px) solid #eee5da; }

/* The sticky category navigation follows the fixed header without trapping page scroll. */
.v18-menu-nav {
  top: var(--v18-header);
  transition: top .36s var(--v18-ease), box-shadow .25s ease;
}
body.v18-header-hidden .v18-menu-nav { top: 0; }
.admin-bar .v18-menu-nav { top: calc(var(--v18-header) + 32px); }
.admin-bar.v18-header-hidden .v18-menu-nav { top: 32px; }

@media (max-width: 860px) {
  .site-footer .site-logo { width: 150px; }
  .v18-service-transition__phrase {
    grid-template-columns: 1fr;
    justify-items: center;
    gap: 12px;
    text-align: center;
  }
  .v18-service-transition__phrase > span:first-child,
  .v18-service-transition__phrase > span:last-child { text-align: center; }
  .v18-service-transition__line { width: min(180px, 58vw); }
}

@media (max-width: 782px) {
  .admin-bar .v18-menu-nav { top: calc(var(--v18-header) + 46px); }
  .admin-bar.v18-header-hidden .v18-menu-nav { top: 46px; }
}

@media (max-width: 560px) {
  .site-footer .site-logo { width: 142px; }
}

@media (prefers-reduced-motion: reduce) {
  .v18-service-transition__line b { transform: scaleX(1) !important; animation: none !important; }
  .v18-service-transition__line::after { opacity: 1 !important; transform: translate(0,-50%) rotate(45deg) !important; animation: none !important; }
}


/* v1.7 refinement pass. */

/* Scroll-completed dot trails between service dayparts. */
.v18-service-transition__phrase {
  grid-template-columns: auto minmax(150px, 270px) auto;
}
.v18-service-transition__line {
  position: relative;
  display: block;
  height: 1.4em;
  overflow: hidden;
  background: none !important;
  color: currentColor;
  line-height: 1;
}
.v18-service-transition__line::before,
.v18-service-transition__line b::before {
  content: "•  •  •  •  •  •  •  •  •";
  position: absolute;
  top: 50%;
  left: 50%;
  width: max-content;
  white-space: nowrap;
  font-family: var(--v18-sans);
  font-size: .68rem;
  letter-spacing: .16em;
  transform: translate(-50%, -50%);
}
.v18-service-transition__line::before {
  opacity: .22;
}
.v18-service-transition__line b {
  position: absolute;
  inset: 0 auto 0 0;
  display: block;
  width: 100%;
  height: 100%;
  overflow: hidden;
  background: none !important;
  clip-path: inset(0 100% 0 0);
  transform: none !important;
  transform-origin: left center;
}
.v18-service-transition__line b::before {
  color: currentColor;
  opacity: 1;
}
.v18-service-transition__line::after {
  display: none !important;
  content: none !important;
}
.v18-service-transition__phrase.is-visible .v18-service-transition__line b {
  animation: v18DotTrail 1.55s .25s steps(9, end) forwards !important;
}
@keyframes v18DotTrail {
  to { clip-path: inset(0 0 0 0); }
}

/* The two homepage glass panels use identical canvases. */
.v18-dual-card .v18-glass-panel {
  box-sizing: border-box;
  width: min(520px, calc(100% - 64px));
  height: 340px;
  min-height: 340px;
  max-height: 340px;
  padding: clamp(26px, 3vw, 38px);
}
.v18-dual-card .v18-glass-panel h2 {
  min-height: 1.12em;
}

/* Alternating full-width Current Features panels with consistent dimensions. */
.v18-feature-panel {
  min-height: 620px;
  align-items: stretch;
}
.v18-feature-panel:nth-child(odd) {
  background: var(--v18-white);
}
.v18-feature-panel:nth-child(even) {
  background: #eee5da;
}
.v18-feature-panel__media {
  min-height: 620px;
}
.v18-feature-panel__content {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 620px;
}
.v18-feature-panel__content > .v18-button:last-child {
  align-self: flex-start;
}

/* About-page story: one-line desktop heading with uniformly styled copy below. */
.v18-about-intro {
  display: block;
  margin-bottom: clamp(70px, 8vw, 112px);
}
.v18-about-intro__heading {
  max-width: none;
}
.v18-about-intro__heading h2 {
  max-width: none;
  margin-bottom: clamp(34px, 4vw, 54px);
  font-size: clamp(2.65rem, 4.05vw, 4.5rem);
  line-height: .98;
}
.v18-about-intro__body {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(28px, 4vw, 58px);
  padding-top: clamp(28px, 3vw, 42px);
  border-top: 1px solid rgba(40,30,30,.18);
}
.v18-about-intro__body p {
  margin: 0;
  color: var(--v18-muted);
  font-family: var(--v18-sans);
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.72;
}

/* Equal visual dimensions for both team-profile panels. */
@media (min-width: 1101px) {
  .v18-about-intro__heading h2 {
    white-space: nowrap;
  }
  .v18-team-panel {
    height: 660px;
    min-height: 660px;
  }
  .v18-team-panel__media,
  .v18-team-panel__copy {
    height: 660px;
    min-height: 660px;
  }
  .v18-team-panel__copy {
    display: flex;
    flex-direction: column;
    justify-content: center;
  }
}

@media (max-width: 1100px) {
  .v18-about-intro__heading h2 {
    white-space: normal;
  }
  .v18-about-intro__body {
    grid-template-columns: 1fr;
    max-width: 860px;
  }
}

@media (max-width: 860px) {
  .v18-service-transition__phrase {
    grid-template-columns: 1fr;
  }
  .v18-dual-card .v18-glass-panel {
    width: calc(100% - 36px);
    height: auto;
    min-height: 0;
    max-height: none;
  }
  .v18-feature-panel,
  .v18-feature-panel__media,
  .v18-feature-panel__content {
    min-height: 0;
  }
  .v18-feature-panel__media {
    min-height: 420px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .v18-service-transition__line b {
    clip-path: inset(0 0 0 0) !important;
    animation: none !important;
  }
}

/* v1.8 desktop refinement pass. */

/* Keep service-transition storytelling on one line and visually separate it
   from the editorial headline typeface. */
@media (min-width: 861px) {
  .v18-service-transition__phrase {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: clamp(22px, 3vw, 48px);
    width: min(1040px, calc(100vw - 96px));
    max-width: none;
    white-space: nowrap;
    font-family: Candara, "Avenir Next", Avenir, "Helvetica Neue", Arial, sans-serif;
    font-size: clamp(1.05rem, 1.45vw, 1.35rem);
    font-weight: 400;
    line-height: 1.2;
    letter-spacing: .02em;
  }
  .v18-service-transition__phrase > span {
    flex: 0 0 auto;
    white-space: nowrap;
    text-align: left !important;
  }
  .v18-service-transition__line {
    flex: 1 1 260px;
    width: auto;
    min-width: 150px;
    max-width: 340px;
  }
  .v18-service-transition__line::before,
  .v18-service-transition__line b::before {
    content: ".  .  .  .  .  .  .  .  .  .  .  .";
    font-family: Candara, "Avenir Next", Avenir, "Helvetica Neue", Arial, sans-serif;
    font-size: .92rem;
    font-weight: 500;
    letter-spacing: .1em;
  }
}

/* Give Explore Features the same direct CTA feedback as the drink links. */
.v18-dual-card__cta {
  transition: background .25s ease, color .25s ease, border-color .25s ease;
}
.v18-dual-card__cta:hover,
.v18-dual-card__cta:focus-visible {
  border-color: rgba(255,255,255,.32);
  background: rgba(133,81,53,.88);
  color: #fff;
}
.v18-dual-card__cta:hover::after,
.v18-dual-card__cta:focus-visible::after {
  transform: translateX(4px);
}

@media (max-width: 860px) {
  .v18-service-transition__phrase {
    font-family: Candara, "Avenir Next", Avenir, "Helvetica Neue", Arial, sans-serif;
    font-weight: 400;
    letter-spacing: .02em;
  }
  .v18-service-transition__line::before,
  .v18-service-transition__line b::before {
    content: ".  .  .  .  .  .  .  .  .";
    font-family: Candara, "Avenir Next", Avenir, "Helvetica Neue", Arial, sans-serif;
  }
}


/* v2.0 consolidated editability and mobile QA pass. */
.v18-transition-mobile { display:none; }
.footer-accordion-toggle { all:inherit; display:flex; width:100%; align-items:center; justify-content:space-between; color:inherit; cursor:default; }
.footer-accordion-toggle span { display:none; }
.footer-mobile-essentials { display:none; }

@media (max-width: 860px) {
  html { scroll-padding-top: calc(var(--v18-header) + 54px); }
  body { padding-bottom: env(safe-area-inset-bottom); }
  .site-logo { width:146px; }
  .site-header .site-logo { width:146px; }
  .primary-nav { padding:calc(var(--v18-header) + 24px) 24px calc(90px + env(safe-area-inset-bottom)); overflow-y:auto; }
  .primary-nav > ul,.primary-nav .menu { width:100%; max-width:420px; gap:.82rem; }
  .primary-nav a { font-size:clamp(1.48rem,6.2vw,2.25rem); }
  .primary-nav .sub-menu { max-height:42vh; overflow-y:auto; }
  .primary-nav .sub-menu a { font-size:.76rem; min-height:36px; display:flex; align-items:center; justify-content:center; }
  .primary-nav .current-menu-item > a,.primary-nav .current_page_item > a { color:var(--v18-copper); }

  .v18-hero { min-height:84svh; }
  .v18-hero__content { padding-top:calc(var(--v18-header) + 72px); padding-bottom:72px; }
  .v18-hero h1 { max-width:none; font-size:clamp(3rem,12.9vw,4.75rem); line-height:.92; }
  .v18-hero h1 span { display:block; white-space:nowrap; }
  .v18-hero__status { margin-bottom:1.05rem; font-size:.7rem; line-height:1.45; letter-spacing:.1em; }
  .v18-hero__tagline { margin-top:1.25rem; }

  .v18-home-intro { padding:58px 0; }
  .v18-intro-grid { display:grid; grid-template-columns:1fr; gap:22px; }
  .v18-intro-grid__title,.v18-intro-grid__copy { min-height:0; display:block; }
  .v18-intro-grid h2 { max-width:12ch; margin-bottom:0; font-size:clamp(2.55rem,11.5vw,3.8rem); }
  .v18-intro-grid h2 > span { white-space:normal; }
  .v18-intro-grid__copy .v18-lead { margin-bottom:1rem; }

  .v18-service-scene { min-height:82svh; height:auto; }
  .v18-service-scene__frame { min-height:82svh; padding-top:clamp(100px,18vh,145px); padding-bottom:clamp(74px,13vh,115px); align-items:flex-end; }
  .v18-service-scene__content { width:min(100%,560px); transform:none; }
  .v18-service-scene h3 { font-size:clamp(4rem,18vw,6.1rem); }
  .v18-service-scene p { font-size:1rem; line-height:1.62; }
  .v18-service__hours { margin-top:.85rem; }
  .v18-service-scene .v18-button { margin-top:1.25rem; min-height:52px; }
  .v18-service-scene__edge { display:none; }

  .v18-service-transition { min-height:92px; height:92px; padding-inline:14px; }
  .v18-service-transition__phrase { display:flex; width:100%; max-width:420px; flex-wrap:nowrap; align-items:center; justify-content:center; gap:9px; padding:0; white-space:nowrap; font-family:Optima,"Avenir Next",Avenir,"Helvetica Neue",Arial,sans-serif; font-size:clamp(.84rem,3.7vw,1rem); font-weight:400; letter-spacing:.04em; line-height:1; }
  .v18-transition-desktop { display:none; }
  .v18-transition-mobile { display:inline; flex:0 0 auto; white-space:nowrap; }
  .v18-service-transition__line { flex:1 1 72px; min-width:54px; max-width:100px; width:auto; }
  .v18-service-transition__line::before,.v18-service-transition__line b::before { content:". . . . . . ."; font-family:Optima,"Avenir Next",Avenir,"Helvetica Neue",Arial,sans-serif; font-size:.78rem; letter-spacing:.04em; }

  .v18-chapter-transition { height:62px; }
  .v18-dual-card { min-height:58svh; }
  .v18-dual-card .v18-glass-panel { left:18px; right:18px; bottom:18px; width:auto; min-height:280px; height:280px; max-height:280px; padding:26px; }
  .v18-dual-card .v18-glass-panel h2 { font-size:clamp(2.4rem,11vw,3.7rem); }
  .v18-drink-links a,.v18-dual-card__cta { min-height:52px; }

  .v18-heritage-strip { min-height:0; }
  .v18-heritage-strip__inner { padding-block:58px; gap:24px; }
  .v18-heritage-strip h2 { font-size:clamp(2.2rem,10vw,3.35rem); }
  .v18-heritage-strip .v18-text-link { min-height:48px; align-items:center; }
  .v18-instagram__head { align-items:flex-start; gap:16px; }
  .v18-instagram__head .v18-text-link,#sb_instagram .sbi_follow_btn a,#sb_instagram .sbi_load_btn { min-height:46px!important; display:inline-flex!important; align-items:center!important; justify-content:center!important; padding:.7rem 1rem!important; }

  .v18-newsletter { padding-block:60px; }
  .v18-newsletter h2 { white-space:normal; font-size:clamp(2.65rem,11.5vw,4rem); }
  .v18-newsletter .v18-lead { white-space:normal; font-size:1rem; }
  .v18-newsletter .v18-button { min-height:52px; }
  .v18-home-faq { padding-bottom:72px; }
  .v18-faq summary { min-height:54px; align-items:center; padding:1rem 0; }
  .v18-faq__answer { line-height:1.65; }

  .v18-page-hero { min-height:360px; }
  .v18-page-hero__content { padding:calc(var(--v18-header) + 58px) 0 44px; }
  .v18-page-hero h1 { font-size:clamp(3rem,13vw,4.75rem); line-height:.94; }
  .v18-page-hero__intro { margin-top:.9rem; font-size:1rem; line-height:1.55; }
  .v18-content { padding:58px 0; }

  .v18-menu-overview-content { padding-top:46px; }
  .v18-menus-overview-intro { margin-bottom:28px; }
  .v18-menu-overview-grid { grid-template-columns:1fr; margin:1.8rem 0; }
  .v18-menu-overview-card { min-height:82px; padding:1.1rem 1.25rem; font-size:clamp(1.55rem,8vw,2.1rem); touch-action:manipulation; }
  .v18-menu-overview-card:active { background:var(--v18-copper); color:#fff; }
  .v18-inroom-strip { margin-top:32px; gap:18px; padding:28px 0; }
  .v18-inroom-strip .v18-text-link { min-height:48px; }

  .v18-menu-nav { top:var(--v18-header); }
  .v18-menu-nav.is-past-menu { transform:translateY(-115%); pointer-events:none; opacity:0; }
  .v18-menu-nav__inner { gap:1rem; padding-inline:18px!important; scroll-padding-inline:34px; }
  .v18-menu-nav a { min-height:50px; display:flex; align-items:center; padding:.65rem 0; font-size:.76rem; }
  .v18-menu-nav__fade { width:34px; }
  .v18-menu-section { scroll-margin-top:calc(var(--v18-header) + 62px); }
  .v18-menu-section__title { font-size:clamp(2.7rem,13vw,4rem); }
  .v18-menu-item__description { font-size:.94rem; line-height:1.55; }
  .v18-menu-key-wrap { margin-top:38px; margin-bottom:40px; }
  .v18-menu-key { grid-template-columns:repeat(2,minmax(0,1fr)); gap:.85rem .65rem; font-size:.77rem; }
  .v18-menu-key > strong { grid-column:1/-1; margin-bottom:.2rem; }
  .v18-menu-key > span { min-width:0; align-items:flex-start; }
  .v18-menu-page .wp-block-gallery { gap:10px; }
  .v18-menu-page .wp-block-gallery img { min-height:180px; }

  .v18-reservation-content { padding-top:48px; }
  .v18-reservation-booking { gap:32px; }
  .v18-reservation-booking__widget .v18-booking__panel,.v18-plan-visit,.v18-reservation-info-grid section { padding:28px 24px; }
  .v18-plan-visit h2 { white-space:nowrap; font-size:clamp(2.35rem,10.4vw,3.25rem); }
  .v18-plan-visit__grid { gap:.8rem; }
  .v18-reservation-info-grid { margin:38px 0; gap:14px; }
  .v18-reservation-info-grid h2 { font-size:clamp(2.2rem,10vw,3rem); }
  .v18-arrival-map { gap:22px; }
  .v18-arrival-map__copy { padding:28px 24px; }
  .v18-arrival-map__map { margin-inline:0; border-radius:2px; overflow:hidden; }
  .v18-arrival-map__map iframe { min-height:320px; }
  .v18-arrival-map a { min-height:44px; display:inline-flex; align-items:center; }

  .v18-private-content { padding-top:46px; }
  .v18-private-intro > .v18-lead { margin-bottom:28px; }
  .v18-info-strip { grid-template-columns:1fr; gap:1px; }
  .v18-info-strip > div { min-height:0; padding:24px; }
  .v18-private-story { margin:42px 0; gap:28px; }
  .v18-private-story__copy h2 { font-size:clamp(2.65rem,11.5vw,3.75rem); }
  .v18-inline-actions { display:grid; grid-template-columns:1fr; gap:10px; }
  .v18-inline-actions .v18-button { width:100%; min-height:52px; }
  .v18-private-story__accent { min-height:180px; }
  .v18-private-story__accent span { font-size:7rem; }
  .v18-tour-panel,.v18-tour-panel__overlay { min-height:480px; }
  .v18-tour-panel__overlay { padding:34px 24px; }
  .v18-tour-panel__overlay h2 { font-size:clamp(2.6rem,11.5vw,3.8rem); }
  .v18-tour-panel .v18-button { min-height:52px; }

  .v18-about-content { padding-top:46px; }
  .v18-about-intro { margin-bottom:54px; }
  .v18-about-intro__heading h2 { font-size:clamp(2.45rem,10.7vw,3.45rem); line-height:1.02; margin-bottom:28px; text-wrap:balance; }
  .v18-about-intro__body { gap:20px; padding-top:24px; }
  .v18-about-intro__body p { font-size:1rem; line-height:1.68; }
  .v18-team-heading { margin-bottom:28px; }
  .v18-team-heading h2 { font-size:clamp(2.55rem,11vw,3.55rem); }
  .v18-team-panel { margin-bottom:22px; }
  .v18-team-panel__media { min-height:0; aspect-ratio:4/5; }
  .v18-team-panel__copy { padding:34px 24px; }
  .v18-team-panel__copy h3 { font-size:clamp(2.45rem,10.8vw,3.5rem); }
  .v18-team-panel--reverse .v18-team-panel__media { order:1; }
  .v18-team-panel--reverse .v18-team-panel__copy { order:2; }
  .v18-about-content .v18-tour-panel { margin-top:52px; }

  .v18-shop-content { padding-top:46px; }
  .v18-shop-intro { margin-bottom:34px; }
  .v18-shop-panel { margin-bottom:22px; }
  .v18-shop-panel__media { min-height:0; aspect-ratio:4/3; }
  .v18-shop-panel__copy { padding:34px 24px; }
  .v18-shop-panel__copy h2 { font-size:clamp(2.45rem,10.5vw,3.45rem); text-wrap:balance; }
  .v18-shop-panel .v18-button { min-height:52px; }
  .v18-shop-panel--reverse .v18-shop-panel__media { order:1; }
  .v18-shop-panel--reverse .v18-shop-panel__copy { order:2; }

  .v18-feature-panel { grid-template-columns:1fr; min-height:0; }
  .v18-feature-panel__media { min-height:0; aspect-ratio:4/3; }
  .v18-feature-panel__content { min-height:0; width:auto; padding:38px 24px 44px; }
  .v18-feature-panel__content h2 { font-size:clamp(2.55rem,11vw,3.7rem); max-width:none; text-wrap:balance; }
  .v18-feature-panel .v18-button { min-height:52px; }

  .v18-page-frequently-asked-questions .v18-content { padding-top:42px; }
  .v18-page-frequently-asked-questions h2 { font-size:clamp(2.2rem,9.8vw,3.2rem); margin-top:2.2rem; }
  .v18-page-frequently-asked-questions .v18-faq summary { font-size:1.08rem; }
  .v18-page-stay-in-touch .v18-content { padding-top:42px; }
  .v18-page-stay-in-touch .v18-newsletter-form { width:100%; padding:26px 20px; margin:0 auto; }
  .v18-page-stay-in-touch .v18-newsletter-form input { min-height:52px; }
  .v18-page-stay-in-touch .v18-newsletter-form .v18-button { min-height:54px; }

  .site-footer { padding-top:54px; padding-bottom:calc(100px + env(safe-area-inset-bottom)); }
  .footer-top { display:block; }
  .footer-brand { margin-bottom:26px; }
  .site-footer .site-logo,.footer-brand .site-logo { width:148px; }
  .footer-brand p { max-width:34ch; }
  .footer-col { border-top:1px solid rgba(255,255,255,.16); }
  .footer-col h2 { margin:0; }
  .footer-accordion-toggle { min-height:54px; cursor:pointer; font-family:var(--v18-sans); font-size:.75rem; font-weight:750; letter-spacing:.13em; text-transform:uppercase; }
  .footer-accordion-toggle span { display:block; font-size:1.2rem; font-weight:300; transition:transform .25s ease; }
  .footer-accordion-panel { display:grid; grid-template-rows:0fr; overflow:hidden; opacity:0; transition:grid-template-rows .32s var(--v18-ease),opacity .25s ease,padding .32s ease; }
  .footer-accordion-panel > * { min-height:0; }
  .footer-col.is-open .footer-accordion-panel { grid-template-rows:1fr; opacity:1; padding-bottom:22px; }
  .footer-col.is-open .footer-accordion-toggle span { transform:rotate(45deg); }
  .footer-mobile-essentials { display:flex; flex-direction:column; gap:8px; padding:24px 0; border-top:1px solid rgba(255,255,255,.16); }
  .footer-mobile-essentials > a { color:rgba(255,255,255,.82); text-decoration:none; }
  .footer-mobile-social { display:flex; gap:16px; margin-top:10px; }
  .footer-mobile-social a { display:grid; width:44px; height:44px; place-items:center; border:1px solid rgba(255,255,255,.18); }
  .footer-mobile-social svg { width:20px; height:20px; }
  .footer-bottom { margin-top:0; padding-top:22px; gap:16px; }
  .footer-bottom ul { gap:.7rem 1rem; }
  .v18-mobile-actions { padding-bottom:env(safe-area-inset-bottom); }
}

@media (max-width: 560px) {
  .site-logo,.site-header .site-logo { width:140px; }
  .site-footer .site-logo,.footer-brand .site-logo { width:144px; }
  .v18-hero h1 { font-size:clamp(2.85rem,13.2vw,4.25rem); }
  .v18-service-transition__phrase { font-size:clamp(.78rem,3.55vw,.94rem); gap:7px; }
  .v18-service-transition__line { min-width:46px; max-width:82px; }
  .v18-dual-card .v18-glass-panel { min-height:270px; height:270px; max-height:270px; }
  .v18-menu-key { font-size:.72rem; }
}

@media (prefers-reduced-motion: reduce) {
  .footer-accordion-panel { transition:none!important; }
}


/* v2.0.1 footer/mobile navigation safeguards. */
@media (max-width: 860px) {
  .primary-nav a[aria-current="page"] { color:var(--v18-copper); }
  .primary-nav .v18-mobile-reserve-item a { display:inline-flex; min-height:48px; align-items:center; padding:.5rem 1.3rem; background:var(--v18-copper); color:#fff; font-family:var(--v18-sans); font-size:.78rem; font-weight:750; letter-spacing:.1em; text-transform:uppercase; }
  .footer-accordion-panel { display:block; max-height:0; overflow:hidden; opacity:0; transition:max-height .35s var(--v18-ease),opacity .25s ease,padding .35s ease; }
  .footer-col.is-open .footer-accordion-panel { max-height:900px; opacity:1; padding-bottom:22px; }
}


/* v2.1 desktop debugging and layout refinement pass. */

/* Keep the dedicated Reserve CTA on desktop; retain the WordPress menu item in
   the opened mobile navigation. */
@media (min-width: 861px) {
  .primary-nav .v18-nav-reserve-item { display: none; }
}
@media (max-width: 860px) {
  .primary-nav .v18-nav-reserve-item a { display:inline-flex; min-height:48px; align-items:center; justify-content:center; padding:.55rem 1.35rem; background:var(--v18-copper); color:#fff; font-family:var(--v18-sans); font-size:.78rem; font-weight:750; letter-spacing:.1em; text-transform:uppercase; }
}

@media (min-width: 861px) {
  /* Homepage viewport proportions. */
  .v18-hero { height:80svh; min-height:620px; max-height:900px; }
  .v18-service-scene { min-height:clamp(560px,64svh,760px); }
  .v18-service-scene__frame { min-height:clamp(560px,64svh,760px); padding-block:clamp(64px,8vh,96px); }
  .v18-service-scene[data-service="breakfast"] .v18-service-scene__media img { filter:brightness(1.07) saturate(1.03); }

  /* Elegant service-daypart transition composition. */
  .v18-service-transition { min-height:116px; height:clamp(116px,8vw,142px); }
  .v18-service-transition--daylight { background:#eee5da; }
  .v18-service-transition--evening { background:#17253a; color:#f7f2eb; }
  .v18-service-transition__phrase { gap:clamp(22px,3.2vw,52px); width:min(1120px,calc(100vw - 96px)); font-family:var(--v18-sans); }
  .v18-transition-daypart { display:inline-flex; align-items:baseline; gap:.65rem; }
  .v18-transition-daypart small { font-family:var(--v18-sans); font-size:.66rem; font-style:normal; font-weight:750; letter-spacing:.18em; text-transform:uppercase; opacity:.72; }
  .v18-transition-daypart em { font-family:"Palatino Linotype",Palatino,"Book Antiqua",var(--v18-serif); font-size:clamp(1.55rem,2.15vw,2.35rem); font-weight:400; letter-spacing:-.01em; line-height:1; }
  .v18-service-transition__line { flex-basis:230px; max-width:310px; }
  .v18-service-transition__line::before,
  .v18-service-transition__line b::before { font-family:var(--v18-sans); font-size:.86rem; letter-spacing:.13em; }

  /* Both chapter spacers around the dual cards share the same light canvas. */
  .v18-chapter-transition,
  .v18-chapter-transition--heritage { background:#eee5da; }
  .v18-chapter-transition span,
  .v18-chapter-transition--heritage span { background:linear-gradient(90deg,transparent,rgba(133,81,53,.28) 35%,var(--v18-copper) 50%,rgba(133,81,53,.28) 65%,transparent); }

  /* One-line interior hero subheadlines at normal desktop widths. */
  .v18-page-hero__intro { max-width:none; }
}
@media (min-width: 1100px) {
  .v18-page-hero__intro p { white-space:nowrap; font-size:clamp(.96rem,1.05vw,1.08rem); }
}

/* Menus overview: copy aligns to the panel grid and the hotel-guest strip has a
   balanced horizontal hierarchy. */
.v18-menus-overview-intro { width:100%; max-width:none; }
@media (min-width: 1000px) {
  .v18-inroom-strip { grid-template-columns:minmax(410px,1.25fr) minmax(280px,.8fr) auto; padding-inline:0; }
  .v18-inroom-strip h2 { max-width:none; white-space:nowrap; font-size:clamp(2rem,2.7vw,3rem); }
  .v18-inroom-strip > div,.v18-inroom-strip > p,.v18-inroom-strip > a { align-self:center; }
}

/* Menu-category scroller shares the exact menu-content container. Arrows live
   outside it on wide screens and never cover labels. */
.v18-menu-nav__shell { width:var(--v18-shell); }
.v18-menu-nav__inner { padding-inline:0!important; scroll-padding-inline:24px; }
.v18-menu-nav.has-overflow .v18-menu-nav__inner { padding-inline:0!important; }
.v18-menu-nav__fade--left { left:0; }
.v18-menu-nav__fade--right { right:0; }
@media (min-width: 1420px) {
  .v18-menu-nav__arrow--left { left:-50px; }
  .v18-menu-nav__arrow--right { right:-50px; }
}
@media (min-width: 861px) and (max-width: 1419px) {
  .v18-menu-nav.has-overflow .v18-menu-nav__inner { padding-inline:48px!important; }
  .v18-menu-nav__arrow--left { left:4px; }
  .v18-menu-nav__arrow--right { right:4px; }
  .v18-menu-nav__fade--left { left:42px; }
  .v18-menu-nav__fade--right { right:42px; }
}
.v18-menu-section__head { grid-template-columns:minmax(0,1.75fr) minmax(220px,.55fr); gap:clamp(28px,5vw,72px); }
.v18-menu-section__title { max-width:26ch; font-size:clamp(2.8rem,4.15vw,4.5rem); line-height:.98; text-wrap:balance; }

/* Current Features CTA colours follow the alternating panel colour system. */
.v18-feature-panel .v18-button,
.v18-feature-panel .wp-block-button__link { min-height:48px; padding:.78rem 1.3rem; border:1px solid var(--v18-copper); border-radius:var(--v18-radius); font-family:var(--v18-sans); font-size:.75rem; font-weight:750; letter-spacing:.1em; line-height:1.2; text-decoration:none; text-transform:uppercase; transition:background .25s var(--v18-ease),color .25s var(--v18-ease),border-color .25s var(--v18-ease),transform .25s var(--v18-ease); }
.v18-feature-panel:nth-child(odd) .v18-button,
.v18-feature-panel:nth-child(odd) .wp-block-button__link { background:transparent!important; border-color:rgba(40,30,30,.48)!important; color:var(--v18-ink)!important; }
.v18-feature-panel:nth-child(odd) .v18-button:hover,
.v18-feature-panel:nth-child(odd) .wp-block-button__link:hover { background:var(--v18-ink)!important; border-color:var(--v18-ink)!important; color:#fff!important; transform:translateY(-2px); }
.v18-feature-panel:nth-child(even) .v18-button,
.v18-feature-panel:nth-child(even) .wp-block-button__link { background:var(--v18-copper)!important; border-color:var(--v18-copper)!important; color:#fff!important; }
.v18-feature-panel:nth-child(even) .v18-button:hover,
.v18-feature-panel:nth-child(even) .wp-block-button__link:hover { background:var(--v18-copper-dark)!important; border-color:var(--v18-copper-dark)!important; color:#fff!important; transform:translateY(-2px); }

/* Reservations: balanced booking columns, matching information cards and a
   deliberate arrival/map split. */
.v18-reservation-content { padding-top:clamp(52px,6vw,78px); }
.v18-reservation-booking { grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(42px,5vw,72px); align-items:stretch; }
.v18-reservation-booking__widget,.v18-plan-visit { min-width:0; }
.v18-reservation-booking__widget .v18-booking__panel { height:100%; padding:clamp(36px,4.2vw,58px); }
.v18-booking__panel--custom { display:flex; flex-direction:column; }
.v18-booking__panel--custom [data-custom-booking-target] { min-height:380px; }
.v18-booking__fallback { margin-top:auto!important; padding-top:1rem; }
.v18-plan-visit { height:100%; padding:clamp(30px,4vw,52px); }
.v18-plan-visit h2 { max-width:none; }
.v18-reservation-info-grid { margin:clamp(48px,6vw,72px) 0; align-items:stretch; }
.v18-reservation-info-grid section { display:flex; min-height:330px; flex-direction:column; justify-content:center; }
.v18-reservation-info-grid section .v18-text-link { align-self:flex-start; margin-top:auto; }
.v18-arrival-map { grid-template-columns:minmax(0,.95fr) minmax(0,1.15fr); min-height:480px; }
.v18-arrival-map__map { min-height:480px; background:#ddd4ca; }
.v18-arrival-map__map iframe { min-height:480px; }

/* Private Dining alignment and spacing. */
.v18-private-intro { width:min(1080px,100%); max-width:none; }
.v18-private-intro > .v18-lead { width:100%; max-width:none; }
.v18-info-strip > div { min-height:160px; padding:2rem; }
.v18-private-story { grid-template-columns:minmax(0,1.12fr) minmax(300px,.88fr); gap:clamp(46px,6vw,86px); margin:clamp(52px,6vw,82px) 0; }
.v18-private-story__accent { min-height:280px; }
.v18-private-story__accent span { font-size:8rem; }
.v18-inline-actions .v18-button { min-height:50px; }
.v18-tour-panel__overlay .v18-button { align-self:flex-start; width:auto; }

/* About page rhythm and equal team profiles. */
.v18-about-intro { margin-bottom:clamp(52px,6vw,82px); }
.v18-about-intro__body { align-items:start; }
.v18-about-intro__body p { font-size:clamp(.96rem,1vw,1.03rem); }
.v18-team-heading { margin-bottom:2.1rem; }
.v18-about-content .v18-tour-panel { margin-top:clamp(52px,6vw,82px); }
.v18-tour-panel__overlay .v18-button { align-self:flex-start; width:auto; }
@media (min-width: 1101px) {
  .v18-team-panel { height:640px; min-height:640px; }
  .v18-team-panel__media,.v18-team-panel__copy { height:640px; min-height:640px; }
}

/* Shop panels share dimensions and a more intentional text measure. */
.v18-shop-intro { width:100%; max-width:none; }
.v18-shop-panel { min-height:560px; }
.v18-shop-panel__media,.v18-shop-panel__copy { min-height:560px; }
.v18-shop-panel__copy { display:flex; flex-direction:column; justify-content:center; }
.v18-shop-panel__copy h2 { max-width:15ch; font-size:clamp(2.55rem,3.55vw,3.75rem); text-wrap:balance; }
.v18-shop-panel .v18-button { align-self:flex-start; min-height:50px; }

/* FAQ: a wider, tighter and consistently aligned desktop reading column. */
.v18-page-frequently-asked-questions .v18-narrow { width:min(980px,calc(100vw - 48px)); }
.v18-page-frequently-asked-questions .v18-content h2 { max-width:none; margin:clamp(2.2rem,3.2vw,3.2rem) 0 .8rem; font-size:clamp(2.35rem,3.3vw,3.55rem); line-height:1; text-wrap:balance; }
.v18-page-frequently-asked-questions .v18-faq summary { width:100%; }

/* Stay in Touch: proportional form card and stable validation/status space. */
.v18-page-stay-in-touch .v18-content { padding:clamp(48px,5.5vw,72px) 0; }
.v18-page-stay-in-touch .v18-narrow { width:min(900px,calc(100vw - 48px)); }
.v18-page-stay-in-touch .v18-newsletter-form { max-width:800px; padding:clamp(38px,4.5vw,58px); }
.v18-newsletter-form input { transition:border-color .2s ease,box-shadow .2s ease,background .2s ease; }
.v18-newsletter-form input:focus { box-shadow:0 0 0 3px rgba(133,81,53,.12); }
.v18-newsletter-form input[aria-invalid="true"] { border-color:#9d2f2f; background:#fff9f8; }
.v18-form-error { margin:.35rem 0 0; color:#8c2626; font-size:.78rem; line-height:1.4; }
.v18-form-status { grid-column:1/-1; min-height:1.4em; margin:.25rem 0 0; color:var(--v18-muted); font-size:.82rem; text-align:center; }
.v18-newsletter-form.is-submitting .v18-button { cursor:wait; opacity:.72; transform:none; }

/* On mobile, dual-card content sits below its corresponding image instead of
   overlaying it. */
@media (max-width: 860px) {
  .v18-dual-card { display:grid; min-height:0; grid-template-rows:auto auto; background:var(--v18-ink); }
  .v18-dual-card > img { position:relative; inset:auto; width:100%; height:auto; aspect-ratio:4/3; object-fit:cover; }
  .v18-dual-card::after { display:none; }
  .v18-dual-card .v18-glass-panel { position:relative; inset:auto; width:100%; height:auto; min-height:0; max-height:none; padding:32px 24px 36px; border:0; background:var(--v18-ink); box-shadow:none; backdrop-filter:none; clip-path:none!important; transform:none!important; }
  .v18-dual-card + .v18-dual-card { border-top:14px solid #eee5da; }
  .v18-menu-section__head { grid-template-columns:1fr; }
  .v18-menu-section__title { max-width:none; }
  .v18-shop-panel__media,.v18-shop-panel__copy { min-height:0; }
}

/* Final v2.1 micro-refinements. */
@media (min-width:861px) {
  .v18-transition-daypart em { text-transform:capitalize; }
}
.v18-page-stay-in-touch .v18-newsletter-form fieldset > div { position:relative; padding-bottom:1.25rem; }
.v18-page-stay-in-touch .v18-newsletter-form fieldset > div:nth-of-type(5) { padding-bottom:1.25rem; }
.v18-page-stay-in-touch .v18-form-error { position:absolute; left:0; bottom:0; }
@media (max-width:680px) {
  .v18-page-stay-in-touch .v18-newsletter-form fieldset > div { padding-bottom:1.2rem; }
}

/* =========================================================
   Vista 18 Elevated 2.2 — final desktop regression fixes
   ========================================================= */

/* Never show a text-based Reserve item beside the dedicated desktop CTA.
   JavaScript keeps a single Reserve entry inside the mobile menu. */
@media (min-width:861px) {
  .primary-nav .v18-nav-reserve-item,
  .primary-nav .v18-mobile-reserve-item { display:none!important; }
}
@media (max-width:860px) {
  .primary-nav .v18-mobile-reserve-item { display:list-item; }
}

/* Darker, more refined evening colour system. The same near-black navy is
   shared by the Happy Hour-to-Dinner transition and the dinner-state intro. */
body.is-home[data-v18-mood="dinner"] {
  --v18-mood-bg:#0f1722;
  --v18-mood-surface:#172230;
  --v18-mood-accent:#c6a06a;
  --v18-mood-ink:#fbf7f1;
}
.v18-service-transition--evening { background:#0f1722; color:#fbf7f1; }
body.is-home[data-v18-mood="dinner"] .v18-home-intro {
  background:#0f1722;
  color:#fbf7f1;
}
body.is-home[data-v18-mood="dinner"] .v18-home-intro .v18-lead { color:rgba(251,247,241,.74); }
body.is-home[data-v18-mood="dinner"] .v18-home-intro .v18-kicker,
body.is-home[data-v18-mood="dinner"] .v18-home-intro .v18-text-link { color:#c6a06a; }

/* Menus overview: turn the hotel-guest area into a compact, baseline-aligned
   strip rather than a tall open section. */
@media (min-width:1000px) {
  .v18-inroom-strip {
    grid-template-columns:minmax(440px,1.2fr) minmax(250px,.7fr) auto;
    column-gap:clamp(28px,4vw,58px);
    margin-top:clamp(34px,4vw,52px);
    padding:clamp(26px,2.8vw,38px) 0;
    align-items:end;
  }
  .v18-inroom-strip > div { display:grid; gap:.8rem; align-self:end; }
  .v18-inroom-strip .v18-kicker { margin:0; }
  .v18-inroom-strip h2 { margin:0; line-height:1; }
  .v18-inroom-strip > p,
  .v18-inroom-strip > a { align-self:end; margin:0 0 .18rem; }
  .v18-menus-overview-content { padding-bottom:clamp(54px,6vw,78px); }
}

/* Reservations: the live OpenTable widget is the focal point, both lead
   columns share a common height, and the two information cards align from the
   top. */
@media (min-width:861px) {
  .v18-reservation-booking { align-items:stretch; }
  .v18-reservation-booking > * { height:100%; }
  .v18-reservation-booking__widget .v18-booking__panel,
  .v18-plan-visit { min-height:640px; }
  .v18-reservation-booking__widget .v18-booking__panel h2 {
    max-width:none;
    white-space:nowrap;
    font-size:clamp(2.35rem,3.3vw,3.55rem);
  }
  .v18-booking__panel--custom [data-custom-booking-target] {
    display:flex;
    flex:1 1 auto;
    min-height:0;
    align-items:flex-start;
    justify-content:center;
    margin-top:1.4rem;
  }
  .v18-booking__panel--custom [data-custom-booking-target][hidden] { display:none; }
  .v18-plan-visit { display:flex; flex-direction:column; }
  .v18-plan-visit__phone { margin-top:auto; padding-top:1.5rem; }
  .v18-reservation-info-grid section {
    min-height:300px;
    justify-content:flex-start;
    padding:clamp(38px,4.6vw,60px);
  }
  .v18-reservation-info-grid section .v18-kicker { margin-bottom:1.6rem; }
  .v18-reservation-info-grid section h2 {
    min-height:1.08em;
    margin-bottom:1.2rem;
    line-height:1.02;
  }
  .v18-reservation-info-grid section > p { margin-top:0; }
}
.v18-arrival-map__map { position:relative; overflow:hidden; }
.v18-map-fallback {
  position:absolute;
  right:18px;
  bottom:18px;
  z-index:2;
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  padding:.7rem .9rem;
  background:rgba(255,255,255,.94);
  color:var(--v18-ink);
  box-shadow:0 8px 24px rgba(40,30,30,.15);
  font-size:.68rem;
  font-weight:750;
  letter-spacing:.08em;
  text-decoration:none;
  text-transform:uppercase;
}
.v18-map-fallback:hover,.v18-map-fallback:focus-visible { background:var(--v18-copper); color:#fff; }

/* Private Dining: every editorial block now uses the same shell width. */
.v18-private-intro { width:100%; max-width:none; margin-inline:0; }
.v18-private-intro > .v18-lead { width:100%; max-width:none; }
.v18-private-intro .v18-info-strip { width:100%; }
@media (min-width:861px) {
  .v18-private-intro > .v18-lead { margin-bottom:clamp(28px,3vw,42px); }
  .v18-info-strip { margin-top:0; }
}


/* =========================================================
   Vista 18 Elevated 2.3 — final desktop hierarchy refinements
   ========================================================= */

/* Keep editorial eyebrows visually attached to their headlines. This applies
   the same compact heading rhythm across Reservations, Private Dining and
   About without affecting the image-led tour panels. */
@media (min-width:861px) {
  .v18-reservations-page .v18-plan-visit > .v18-kicker,
  .v18-reservations-page .v18-reservation-info-grid section > .v18-kicker,
  .v18-reservations-page .v18-arrival-map__copy > .v18-kicker,
  .v18-private-dining-page .v18-private-story__copy > .v18-kicker,
  .v18-about-page .v18-about-intro__heading > .v18-kicker,
  .v18-about-page .v18-team-heading > .v18-kicker,
  .v18-about-page .v18-team-panel__copy > .v18-kicker {
    margin-bottom:.55rem;
  }

  .v18-reservations-page .v18-plan-visit > h2,
  .v18-reservations-page .v18-reservation-info-grid section > h2,
  .v18-reservations-page .v18-arrival-map__copy > h2,
  .v18-private-dining-page .v18-private-story__copy > h2,
  .v18-about-page .v18-about-intro__heading > h2,
  .v18-about-page .v18-team-heading > h2,
  .v18-about-page .v18-team-panel__copy > h3 {
    margin-top:0;
  }

  /* Rebuild Plan Your Visit as one calm vertical schedule. The grid row still
     stretches to the height of the live OpenTable card beside it. */
  .v18-reservation-booking {
    align-items:stretch;
  }
  .v18-reservation-booking > * {
    min-height:0;
    height:auto;
  }
  .v18-reservation-booking__widget .v18-booking__panel,
  .v18-plan-visit {
    min-height:0;
    height:100%;
  }
  .v18-plan-visit {
    display:flex;
    flex-direction:column;
    padding:clamp(36px,4.2vw,58px);
  }
  .v18-plan-visit > h2 {
    margin-bottom:1.15rem;
    line-height:.98;
  }
  .v18-plan-visit__grid {
    display:flex;
    flex:1 1 auto;
    flex-direction:column;
    gap:0;
  }
  .v18-plan-visit__grid div {
    display:flex;
    flex:1 1 0;
    min-height:76px;
    flex-direction:column;
    justify-content:center;
    gap:.22rem;
    padding:.85rem 0;
    border-top:1px solid rgba(40,30,30,.18);
  }
  .v18-plan-visit__grid strong {
    display:block;
    line-height:1.25;
  }
  .v18-plan-visit__grid span {
    display:block;
    line-height:1.45;
  }
  .v18-plan-visit__phone {
    margin:0;
    padding:1rem 0 .15rem;
    border-top:1px solid rgba(40,30,30,.18);
  }

  /* The paired reservation-information cards use the same compact eyebrow to
     heading spacing and matching copy rhythm. */
  .v18-reservation-info-grid section .v18-kicker {
    margin-bottom:.55rem;
  }
  .v18-reservation-info-grid section h2 {
    min-height:0;
    margin-bottom:1rem;
  }
}

/* Use a soft charcoal-black evening palette rather than blue. The exact same
   surface is shared by the Happy Hour-to-Dinner transition and the homepage
   introduction whenever Dinner controls the hero. */
body.is-home[data-v18-mood="dinner"] {
  --v18-mood-bg:#171719;
  --v18-mood-surface:#222225;
  --v18-mood-accent:#c6a06a;
  --v18-mood-ink:#fbf7f1;
}
.v18-service-transition--evening {
  background:#171719;
  color:#fbf7f1;
}
body.is-home[data-v18-mood="dinner"] .v18-home-intro {
  background:#171719;
  color:#fbf7f1;
}
body.is-home[data-v18-mood="dinner"] .v18-home-intro .v18-lead {
  color:rgba(251,247,241,.76);
}
body.is-home[data-v18-mood="dinner"] .v18-home-intro .v18-kicker,
body.is-home[data-v18-mood="dinner"] .v18-home-intro .v18-text-link {
  color:#c6a06a;
}

/* =========================================================
   Vista 18 Elevated 3.0 — consolidated mobile QA release
   ========================================================= */

/* The service picture element must inherit the full cinematic media canvas so
   optional mobile-specific sources behave exactly like the desktop image. */
.v18-service-scene__media picture {
  display:block;
  width:100%;
  height:100%;
}

/* Slightly reduce the desktop homepage statement so it composes more calmly
   with the service status and the three-part brand line. */
@media (min-width:861px) {
  .is-home .v18-hero h1 {
    max-width:900px;
    font-size:clamp(3.8rem,6.25vw,6.45rem);
    line-height:.92;
  }

  /* Preserve the Private Dining desktop composition after separating the CTA
     row in the markup for a better mobile reading order. */
  .v18-private-story {
    grid-template-areas:
      "copy accent"
      "actions accent";
    grid-template-rows:auto auto;
    align-content:center;
  }
  .v18-private-story__copy { grid-area:copy; }
  .v18-private-story__accent { grid-area:accent; align-self:stretch; }
  .v18-private-story__actions {
    grid-area:actions;
    align-self:start;
    margin-top:1.7rem;
  }
}

/* Use one truly neutral charcoal surface for the evening chapter and the
   dinner-state introduction. */
body.is-home[data-v18-mood="dinner"] {
  --v18-mood-bg:#151515;
  --v18-mood-surface:#202020;
  --v18-mood-accent:#c6a06a;
  --v18-mood-ink:#fbf7f1;
}
.v18-service-transition--evening {
  background:#151515;
  color:#fbf7f1;
}
body.is-home[data-v18-mood="dinner"] .v18-home-intro {
  background:#151515;
  color:#fbf7f1;
}
body.is-home[data-v18-mood="dinner"] .v18-home-intro .v18-lead { color:rgba(251,247,241,.76); }
body.is-home[data-v18-mood="dinner"] .v18-home-intro .v18-kicker,
body.is-home[data-v18-mood="dinner"] .v18-home-intro .v18-text-link { color:#c6a06a; }

@media (max-width:860px) {
  /* Full-screen mobile navigation: all six primary choices remain visible or
     scroll naturally inside the overlay on short Safari viewports. */
  .primary-nav {
    inset:0;
    z-index:2;
    width:100%;
    height:100dvh;
    min-height:100svh;
    align-items:flex-start;
    justify-content:flex-start;
    overflow-x:hidden;
    overflow-y:auto;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
    padding:
      max(92px,calc(env(safe-area-inset-top,0px) + 74px))
      24px
      max(110px,calc(env(safe-area-inset-bottom,0px) + 88px));
  }
  .primary-nav > ul,
  .primary-nav > .menu {
    width:100%;
    min-height:min-content;
    justify-content:flex-start;
    gap:.72rem;
    padding:0;
  }
  .primary-nav > ul > li,
  .primary-nav > .menu > li { width:100%; text-align:center; }
  .primary-nav > ul > li > a,
  .primary-nav > .menu > li > a {
    display:inline-flex;
    min-height:50px;
    align-items:center;
    justify-content:center;
    max-width:100%;
    font-size:clamp(1.85rem,8.5vw,2.55rem);
    line-height:1.05;
  }
  .menu-open .site-header {
    background:transparent;
    box-shadow:none;
    backdrop-filter:none;
  }
  .menu-open .site-logo { visibility:hidden; }
  .menu-open .menu-toggle {
    position:fixed;
    top:max(18px,env(safe-area-inset-top,0px));
    right:18px;
    z-index:5;
  }
  .menu-open .v18-mobile-actions {
    visibility:hidden;
    pointer-events:none;
    transform:translateY(115%);
  }

  /* Mobile homepage hero: each authored line remains within the viewport. */
  .is-home .v18-hero__content {
    width:calc(100% - 36px);
    max-width:none;
    padding-inline:0;
  }
  .is-home .v18-hero h1 {
    width:100%;
    max-width:100%;
    font-size:clamp(1.95rem,10vw,3rem);
    line-height:.92;
    letter-spacing:-.04em;
    text-wrap:nowrap;
  }
  .is-home .v18-hero h1 span {
    width:100%;
    max-width:100%;
    white-space:nowrap;
  }
  .is-home .v18-hero__status {
    max-width:100%;
    font-size:clamp(.61rem,2.7vw,.72rem);
    letter-spacing:.13em;
  }

  /* Keep the introduction as exactly two intentional headline lines. */
  .is-home .v18-intro-grid h2 {
    width:100%;
    max-width:none;
    font-size:clamp(1.9rem,8.6vw,2.7rem);
    line-height:1.01;
    letter-spacing:-.04em;
  }
  .is-home .v18-intro-grid h2 > span {
    display:block;
    white-space:nowrap!important;
  }
  .is-home .v18-intro-grid__title,
  .is-home .v18-intro-grid__copy { width:100%; }

  /* Menus overview: give hotel guests a distinct, compact editorial box. */
  .v18-menus-overview-content { padding-bottom:52px; }
  .v18-inroom-strip {
    display:block;
    width:100%;
    margin-top:32px;
    padding:28px 22px 30px;
    border:0;
    background:#e5d8cc;
  }
  .v18-inroom-strip > div { display:block; }
  .v18-inroom-strip .v18-kicker { margin-bottom:.7rem; }
  .v18-inroom-strip h2 {
    max-width:100%;
    margin:0;
    white-space:nowrap;
    font-size:clamp(1.45rem,6.15vw,1.78rem);
    line-height:1.05;
    letter-spacing:-.035em;
  }
  .v18-inroom-strip > p { margin:1rem 0 1.2rem; }
  .v18-inroom-strip > .v18-text-link { margin:0; }

  /* Reservations: every block becomes a readable full-width mobile chapter. */
  .v18-reservation-content { padding:38px 0 54px; }
  .v18-reservation-content > .v18-shell { width:calc(100% - 28px); }
  .v18-reservation-booking {
    display:flex;
    width:100%;
    flex-direction:column;
    gap:22px;
  }
  .v18-reservation-booking > *,
  .v18-reservation-booking__widget,
  .v18-plan-visit {
    width:100%;
    min-width:0;
    min-height:0;
    height:auto;
  }
  .v18-reservation-booking__widget .v18-booking__panel,
  .v18-booking__panel--custom {
    width:100%;
    min-height:0;
    height:auto;
    padding:28px 20px;
  }
  .v18-reservation-booking__widget .v18-booking__panel h2,
  .v18-booking__panel--custom h2 {
    max-width:none;
    margin:0 0 .8rem;
    white-space:normal;
    font-size:clamp(2rem,9vw,2.65rem);
    line-height:1;
  }
  .v18-booking__panel--custom [data-custom-booking-target] {
    display:flex;
    width:100%;
    min-height:0;
    align-items:flex-start;
    justify-content:center;
    margin-top:1.2rem;
    overflow:hidden;
  }
  .v18-booking__panel--custom [data-custom-booking-target][hidden] { display:none; }
  .v18-booking__panel--custom [data-custom-booking-target] iframe,
  .v18-booking__panel--custom [data-custom-booking-target] > div {
    max-width:100%!important;
  }
  .v18-booking__fallback { margin:1.1rem 0 0!important; padding:0; }

  .v18-plan-visit {
    display:flex;
    flex-direction:column;
    padding:28px 22px;
    background:var(--v18-white);
  }
  .v18-plan-visit > .v18-kicker { margin-bottom:.55rem; }
  .v18-plan-visit > h2 {
    max-width:none;
    margin:0 0 1rem;
    font-size:clamp(2rem,9vw,2.65rem);
    line-height:1;
  }
  .v18-plan-visit__grid {
    display:flex;
    flex-direction:column;
    gap:0;
  }
  .v18-plan-visit__grid div {
    display:flex;
    min-height:0;
    flex-direction:column;
    gap:.18rem;
    padding:1rem 0;
    border-top:1px solid rgba(40,30,30,.16);
  }
  .v18-plan-visit__grid span {
    overflow-wrap:anywhere;
    font-size:.9rem;
    line-height:1.45;
  }
  .v18-plan-visit__phone {
    margin:0;
    padding:1rem 0 0;
    border-top:1px solid rgba(40,30,30,.16);
  }

  .v18-reservation-info-grid {
    display:flex;
    width:100%;
    flex-direction:column;
    gap:18px;
    margin:24px 0;
    background:transparent;
  }
  .v18-reservation-info-grid section {
    display:block;
    width:100%;
    min-height:0;
    padding:28px 22px;
  }
  .v18-reservation-info-grid section > .v18-kicker { margin-bottom:.55rem; }
  .v18-reservation-info-grid h2 {
    min-height:0;
    margin:0 0 1rem;
    font-size:clamp(2rem,8.5vw,2.55rem);
    line-height:1;
  }
  .v18-reservation-info-grid section .v18-text-link { margin-top:1.1rem; }

  .v18-arrival-map {
    display:flex;
    width:100%;
    min-height:0;
    flex-direction:column;
    background:var(--v18-white);
  }
  .v18-arrival-map__copy {
    width:100%;
    padding:30px 22px;
  }
  .v18-arrival-map__copy > .v18-kicker { margin-bottom:.55rem; }
  .v18-arrival-map__copy h2 {
    margin:0 0 1rem;
    font-size:clamp(2.05rem,9vw,2.75rem);
    line-height:1;
  }
  .v18-arrival-map__copy a,
  .v18-plan-visit a { overflow-wrap:anywhere; }
  .v18-arrival-map__map,
  .v18-arrival-map__map iframe {
    width:100%;
    min-height:320px;
    height:320px;
  }
  .v18-map-fallback {
    right:12px;
    bottom:12px;
    max-width:calc(100% - 24px);
  }

  /* Private Dining: deliberate single-column story with the numeric accent
     between the story and the two equal CTAs. */
  .v18-private-content { padding:42px 0 56px; }
  .v18-private-content > .v18-shell { width:calc(100% - 28px); }
  .v18-private-intro,
  .v18-private-intro > .v18-lead { width:100%; max-width:none; }
  .v18-private-intro > .v18-lead { margin-bottom:24px; }
  .v18-info-strip {
    display:flex;
    flex-direction:column;
    gap:12px;
    margin-top:0;
    background:transparent;
  }
  .v18-info-strip > div {
    width:100%;
    min-height:0;
    padding:22px 20px;
  }
  .v18-info-strip strong { font-size:clamp(1.55rem,7.2vw,2rem); }

  .v18-private-story {
    display:flex;
    width:100%;
    flex-direction:column;
    gap:22px;
    margin:42px 0;
  }
  .v18-private-story__copy,
  .v18-private-story__actions,
  .v18-private-story__accent { width:100%; }
  .v18-private-story__copy > .v18-kicker { margin-bottom:.55rem; }
  .v18-private-story__copy h2 {
    max-width:none;
    margin:0 0 1rem;
    font-size:clamp(2.25rem,10.5vw,3.15rem);
    line-height:.98;
    text-wrap:balance;
  }
  .v18-private-story__copy p { max-width:none; overflow-wrap:anywhere; }
  .v18-private-story__accent {
    order:2;
    min-height:170px;
    padding:26px 18px;
  }
  .v18-private-story__accent span { font-size:6rem; }
  .v18-private-story__actions {
    order:3;
    display:grid;
    grid-template-columns:1fr;
    gap:12px;
    margin:0;
  }
  .v18-private-story__actions .v18-button { width:100%; min-height:52px; }

  .v18-private-dining-page .v18-tour-panel {
    width:100%;
    min-height:520px;
  }
  .v18-private-dining-page .v18-tour-panel__overlay {
    width:100%;
    min-height:520px;
    justify-content:flex-end;
    padding:34px 22px;
  }
  .v18-private-dining-page .v18-tour-panel__overlay h2 {
    max-width:10ch;
    font-size:clamp(2.35rem,10.5vw,3.2rem);
    line-height:.98;
  }
  .v18-private-dining-page .v18-tour-panel__overlay .v18-button {
    width:100%;
    align-self:stretch;
  }
}

@media (max-width:380px) {
  .is-home .v18-hero h1 { font-size:9.55vw; }
  .is-home .v18-intro-grid h2 { font-size:8.2vw; }
  .v18-inroom-strip h2 { font-size:5.75vw; }
}


/* v3.2.1: canonical Group Dining route and desktop-only brand correction. */
@media (min-width: 861px) {
  .header-inner { grid-template-columns: 286px 1fr auto; }
  .site-header .site-logo { width: 256px; }
  .site-header .site-logo img,
  .site-header .custom-logo,
  .site-header:not(.is-solid) .site-logo img,
  .site-header:not(.is-solid) .custom-logo,
  .site-header.is-solid .site-logo img,
  .site-header.is-solid .custom-logo { filter: none !important; }
  .site-footer .site-logo,
  .footer-brand .site-logo { width: 228px; }
}


/* =========================================================
   Vista 18 Elevated 3.2.3 — desktop navigation and hero polish
   ========================================================= */

/* Centre the complete “18 Floors Above Victoria” statement as one composed
   unit with natural spacing on desktop and mobile. */
.v18-private-story__accent {
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:1rem;
  padding:clamp(28px,4vw,52px);
  text-align:center;
}
.v18-private-story__accent span {
  display:block;
  margin:0;
  line-height:.78;
}
.v18-private-story__accent small {
  display:block;
  max-width:20ch;
  margin:0;
  line-height:1.5;
  text-align:center;
}

@media (min-width:861px) {
  /* The homepage statement is exactly 15% smaller than the v3.2.2 desktop
     composition while preserving the approved two-line structure. */
  .is-home .v18-hero h1 {
    max-width:900px;
    font-size:clamp(3.23rem,5.3125vw,5.4825rem);
    line-height:.92;
  }

  /* Increase desktop header and footer branding by 10%; mobile stays exactly
     as it was. The first grid track leaves the enlarged mark breathing room. */
  .header-inner {
    grid-template-columns:288px minmax(0,1fr) auto;
    gap:1rem;
  }
  .site-header .site-logo { width:281.6px; }
  .site-footer .site-logo,
  .footer-brand .site-logo { width:250.8px; }

  /* Breakfast and Happy Hour continue to use the coloured mark. When the
     dinner photograph controls the homepage hero—including the blend period—
     the transparent header switches to white for reliable contrast. */
  body.is-home[data-v18-mood="dinner"] .site-header:not(.is-solid) .site-logo img,
  body.is-home[data-v18-mood="dinner"] .site-header:not(.is-solid) .custom-logo,
  body.is-home[data-v18-mood="blend"] .site-header:not(.is-solid) .site-logo img,
  body.is-home[data-v18-mood="blend"] .site-header:not(.is-solid) .custom-logo {
    filter:brightness(0) invert(1) drop-shadow(0 3px 10px rgba(0,0,0,.34)) !important;
  }

  /* Interior heroes retain the coloured logo. A restrained translucent cream
     halo and soft shadow keep the mark legible over every featured image. */
  body:not(.is-home) .site-header:not(.is-solid) .site-logo {
    position:relative;
    isolation:isolate;
  }
  body:not(.is-home) .site-header:not(.is-solid) .site-logo::before {
    content:"";
    position:absolute;
    inset:-9px -13px;
    z-index:-1;
    border-radius:3px;
    background:rgba(244,239,232,.72);
    box-shadow:0 5px 20px rgba(30,20,17,.18);
    -webkit-backdrop-filter:blur(8px);
    backdrop-filter:blur(8px);
  }
  body:not(.is-home) .site-header:not(.is-solid) .site-logo img,
  body:not(.is-home) .site-header:not(.is-solid) .custom-logo {
    position:relative;
    z-index:1;
    filter:drop-shadow(0 1px 1px rgba(255,255,255,.75)) !important;
  }

  /* Keep the complete six-part desktop navigation comfortable after restoring
     Menus and enlarging the logo. */
  .primary-nav ul { gap:clamp(.62rem,1.1vw,1.25rem); }
}

@media (min-width:861px) and (max-width:1100px) {
  .header-inner { grid-template-columns:288px minmax(0,1fr) auto; gap:.75rem; }
  .primary-nav ul { gap:.55rem; }
  .primary-nav a { font-size:.62rem; letter-spacing:.075em; }
  .header-reserve { padding-inline:1rem; }
}


/* =========================================================
   Vista 18 Elevated 3.2.4 — transparent branding and editable heroes
   ========================================================= */

/* Keep every logo container genuinely transparent. The former interior-page
   contrast tile is removed; only a near-imperceptible image shadow remains on
   transparent headers so the coloured artwork does not disappear into a
   detailed photograph. */
.site-header .site-logo,
.site-footer .site-logo,
.footer-brand .site-logo {
  background:transparent !important;
  box-shadow:none !important;
  -webkit-backdrop-filter:none !important;
  backdrop-filter:none !important;
}
.site-header .site-logo::before,
.site-footer .site-logo::before,
.footer-brand .site-logo::before {
  content:none !important;
  display:none !important;
}

@media (min-width:861px) {
  body:not(.is-home) .site-header:not(.is-solid) .site-logo img,
  body:not(.is-home) .site-header:not(.is-solid) .custom-logo {
    filter:drop-shadow(0 1px 1px rgba(24,16,14,.13)) !important;
  }

  body.is-home:not([data-v18-mood="dinner"]):not([data-v18-mood="blend"]) .site-header:not(.is-solid) .site-logo img,
  body.is-home:not([data-v18-mood="dinner"]):not([data-v18-mood="blend"]) .site-header:not(.is-solid) .custom-logo {
    filter:drop-shadow(0 1px 1px rgba(24,16,14,.10)) !important;
  }

  body.is-home[data-v18-mood="dinner"] .site-header:not(.is-solid) .site-logo img,
  body.is-home[data-v18-mood="dinner"] .site-header:not(.is-solid) .custom-logo,
  body.is-home[data-v18-mood="blend"] .site-header:not(.is-solid) .site-logo img,
  body.is-home[data-v18-mood="blend"] .site-header:not(.is-solid) .custom-logo {
    filter:brightness(0) invert(1) drop-shadow(0 1px 3px rgba(0,0,0,.22)) !important;
  }

  .site-header.is-solid .site-logo img,
  .site-header.is-solid .custom-logo,
  .site-footer .site-logo img,
  .site-footer .custom-logo {
    filter:none !important;
  }
}


/* =========================================================
   Vista 18 Elevated 3.2.5 — interior branding and nav reliability
   ========================================================= */

/* The supplied wide copper-and-gold logo is used in every interior-page
   header. It occupies the same logo width as the homepage brand mark; its own
   aspect ratio is preserved so the artwork is never stretched or cropped. */
.site-header .site-logo--subpage img {
  display:block;
  width:100%;
  height:auto;
  object-fit:contain;
  filter:none !important;
}

/* A restrained full-header shade improves both the copper logo and every
   white navigation label over bright or detailed hero photography. It remains
   transparent rather than placing a visible tile behind the logo. */
body:not(.is-home) .site-header:not(.is-solid)::before {
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  background:linear-gradient(180deg,rgba(18,13,11,.34),rgba(18,13,11,.18) 72%,rgba(18,13,11,0));
}
body:not(.is-home) .site-header:not(.is-solid) .header-inner {
  position:relative;
  z-index:1;
}
body:not(.is-home) .site-header:not(.is-solid) .site-logo--subpage img {
  filter:drop-shadow(0 1px 2px rgba(0,0,0,.16)) !important;
}
body:not(.is-home) .site-header:not(.is-solid) .primary-nav a {
  text-shadow:0 1px 3px rgba(0,0,0,.24);
}
.site-header.is-solid .site-logo--subpage img {
  filter:none !important;
}
.site-header.is-solid .primary-nav a {
  text-shadow:none;
}

/* Keep the injected first navigation item renderable even when legacy menu
   CSS or a menu plugin applies state styles to the assigned WordPress menu. */
.primary-nav .v18-injected-menus {
  display:list-item !important;
  visibility:visible !important;
  opacity:1 !important;
}

/* Increase only the mobile header logo by exactly 30% from the v3.2.4 widths.
   Footer branding and every other mobile layout measurement remain unchanged. */
@media (max-width:860px) {
  .site-header .site-logo { width:189.8px; }
  body:not(.is-home) .site-header:not(.is-solid)::before {
    background:linear-gradient(180deg,rgba(18,13,11,.38),rgba(18,13,11,.16) 76%,rgba(18,13,11,0));
  }
}
@media (max-width:560px) {
  .site-header .site-logo { width:182px; }
}
