:root {
  --burgundy: #6E0D1F;
  --burgundy-2: #8B0F2A;
  --burgundy-dark: #26060D;
  --ivory: #F3EEE2;
  --charcoal: #383838;
  --sand: #D1C4AA;
  --paper: #FBF7EE;
  --ink: #1F1B18;
  --muted: #6C6256;
  --line: rgba(56, 56, 56, 0.18);
  --white: #FFFFFF;
  --shadow: 0 28px 80px rgba(19, 6, 8, 0.25);
  --radius: 18px;
  --radius-sm: 10px;
  --headline: "Oswald", "Arial Narrow", "Acumin Pro Condensed", sans-serif;
  --serif: "Playfair Display", Georgia, serif;
  --sans: "Inter", Arial, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: var(--sans);
  background: var(--paper);
  color: var(--ink);
  line-height: 1.55;
  text-rendering: optimizeLegibility;
}
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
button, input, textarea, select { font: inherit; }

.container {
  width: min(1180px, calc(100% - 40px));
  margin-inline: auto;
}

.skip-link {
  position: absolute;
  left: -999px;
  top: 12px;
  z-index: 9999;
  background: var(--ivory);
  color: var(--burgundy);
  padding: 10px 14px;
  border-radius: 8px;
}
.skip-link:focus { left: 12px; }

/* Header */
.site-header {
  position: fixed;
  inset: 0 0 auto 0;
  z-index: 1000;
  color: var(--ivory);
  transition: background 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
  border-bottom: 1px solid rgba(243, 238, 226, 0.10);
  background: linear-gradient(180deg, rgba(38, 6, 13, 0.72), rgba(38, 6, 13, 0.08));
}
.site-header.is-scrolled,
.site-header.is-open {
  background: rgba(110, 13, 31, 0.96);
  box-shadow: 0 15px 40px rgba(0,0,0,0.16);
  border-bottom-color: rgba(243, 238, 226, 0.18);
}
.header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  min-height: 88px;
}
.brand {
  display: grid;
  gap: 2px;
  letter-spacing: 0.01em;
  min-width: 150px;
  text-align: center;
}
.brand-mark {
  font-family: var(--headline);
  font-weight: 700;
  font-size: clamp(2rem, 3vw, 3.2rem);
  line-height: 0.86;
  letter-spacing: -0.03em;
  color: var(--ivory);
}
.brand small {
  font-family: var(--serif);
  font-size: 0.79rem;
  color: rgba(243,238,226,0.92);
}
.desktop-nav {
  display: flex;
  align-items: center;
  gap: clamp(18px, 3vw, 42px);
  margin-left: auto;
}
.desktop-nav a,
.mobile-nav a {
  position: relative;
  font-family: var(--serif);
  color: rgba(243,238,226,0.92);
  font-size: 1rem;
  transition: color .18s ease;
}
.desktop-nav a::after,
.mobile-nav a::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -8px;
  height: 1px;
  background: var(--ivory);
  transform: scaleX(0);
  transform-origin: center;
  transition: transform 0.22s ease;
}
.desktop-nav a:hover,
.desktop-nav a.active,
.mobile-nav a.active { color: var(--white); }
.desktop-nav a:hover::after,
.desktop-nav a.active::after,
.mobile-nav a.active::after { transform: scaleX(1); }

.header-actions { display: flex; align-items: center; gap: 14px; }
.nav-toggle {
  display: none;
  width: 48px;
  height: 48px;
  border: 0;
  background: transparent;
  color: var(--ivory);
  cursor: pointer;
  align-items: center;
  justify-content: center;
}
.nav-toggle span {
  width: 30px;
  height: 2px;
  background: currentColor;
  display: block;
  position: relative;
}
.nav-toggle span::before,
.nav-toggle span::after {
  content: "";
  position: absolute;
  left: 0;
  width: 30px;
  height: 2px;
  background: currentColor;
  transition: transform .2s ease, top .2s ease;
}
.nav-toggle span::before { top: -9px; }
.nav-toggle span::after { top: 9px; }
.site-header.is-open .nav-toggle span { background: transparent; }
.site-header.is-open .nav-toggle span::before { top: 0; transform: rotate(45deg); }
.site-header.is-open .nav-toggle span::after { top: 0; transform: rotate(-45deg); }

.mobile-drawer {
  display: none;
  border-top: 1px solid rgba(243,238,226,0.16);
  background: var(--burgundy);
  padding: 20px 20px 28px;
}
.mobile-drawer.is-open { display: block; }
.mobile-nav {
  display: grid;
  gap: 20px;
  max-width: 1180px;
  margin-inline: auto;
}
.mobile-nav a { width: fit-content; font-size: 1.35rem; }

/* Buttons */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 0 24px;
  border: 1px solid currentColor;
  border-radius: 0;
  color: var(--ivory);
  background: transparent;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  font-size: 0.78rem;
  font-weight: 800;
  transition: transform .16s ease, background .16s ease, color .16s ease, border-color .16s ease;
  cursor: pointer;
}
.btn:hover { transform: translateY(-2px); }
.btn-primary { background: var(--burgundy); border-color: var(--burgundy); color: var(--ivory); }
.btn-primary:hover { background: var(--burgundy-2); border-color: var(--burgundy-2); }
.btn-cream { background: var(--ivory); color: var(--burgundy); border-color: var(--ivory); }
.btn-outline-light { color: var(--ivory); border-color: rgba(243,238,226,.78); }
.btn-outline-dark { color: var(--burgundy); border-color: rgba(110,13,31,.55); }
.btn-text {
  display: inline-flex;
  gap: 10px;
  align-items: center;
  color: var(--burgundy);
  text-transform: uppercase;
  font-weight: 800;
  letter-spacing: 0.14em;
  font-size: .78rem;
}
.btn-text::after { content: "→"; font-size: 1.05rem; transition: transform .15s ease; }
.btn-text:hover::after { transform: translateX(5px); }

/* Hero */
.hero {
  position: relative;
  min-height: 720px;
  padding: 150px 0 88px;
  display: flex;
  align-items: flex-end;
  color: var(--ivory);
  background-color: var(--burgundy-dark);
  background-size: cover;
  background-position: center;
  overflow: hidden;
}
.hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(38,6,13,.95) 0%, rgba(72,8,18,.78) 36%, rgba(38,6,13,.22) 100%),
              linear-gradient(180deg, rgba(0,0,0,.24), rgba(0,0,0,.56));
  pointer-events: none;
}
.hero > .container { position: relative; z-index: 1; }
.hero-narrow { min-height: 560px; }
.hero-home { background-image: url("assets/hero-home.jpg"); }
.hero-about { background-image: url("assets/hero-about.jpg"); background-position: center right; }
.hero-experience { background-image: url("assets/hero-experience.jpg"); background-position: center right; }
.hero-menu { background-image: url("assets/hero-menu.jpg"); background-position: center right; }
.hero-news { background-image: url("assets/hero-news.jpg"); background-position: center right; }
.hero-contact { background-image: url("assets/hero-contact.jpg"); background-position: center right; }
.hero-reservation { background-image: url("assets/table-spread.jpg"); background-position: center; }
.hero-content { max-width: 760px; }
.kicker {
  color: var(--sand);
  text-transform: uppercase;
  letter-spacing: 0.18em;
  font-weight: 800;
  font-size: .78rem;
  margin-bottom: 18px;
}
.display {
  font-family: var(--headline);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: -0.04em;
  line-height: 0.92;
  font-size: clamp(4rem, 9vw, 9rem);
  margin: 0;
  max-width: 900px;
}
.display-sm { font-size: clamp(3.8rem, 7vw, 7.2rem); }
.display::after,
.section-title::after,
.card-kicker::after {
  content: "";
  display: block;
  width: 52px;
  height: 2px;
  background: currentColor;
  margin: 24px 0 0;
  opacity: .75;
}
.lede {
  font-family: var(--serif);
  font-size: clamp(1.25rem, 2vw, 1.95rem);
  line-height: 1.35;
  margin: 22px 0 0;
  max-width: 720px;
}
.hero .button-row { margin-top: 32px; }
.button-row { display: flex; flex-wrap: wrap; gap: 14px; }

/* Sections */
.section { padding: clamp(64px, 8vw, 112px) 0; }
.section-tight { padding: clamp(44px, 6vw, 72px) 0; }
.section-cream { background: var(--ivory); }
.section-paper { background: var(--paper); }
.section-burgundy { background: var(--burgundy); color: var(--ivory); }
.section-dark { background: var(--charcoal); color: var(--ivory); }
.section-head {
  display: grid;
  grid-template-columns: minmax(200px, 320px) 1fr;
  gap: clamp(28px, 6vw, 70px);
  align-items: start;
  margin-bottom: 34px;
}
.section-title {
  margin: 0;
  color: var(--burgundy);
  font-family: var(--headline);
  text-transform: uppercase;
  font-size: clamp(2.2rem, 4vw, 4rem);
  line-height: .96;
  letter-spacing: -0.02em;
}
.section-title.serif {
  font-family: var(--serif);
  text-transform: none;
  letter-spacing: -0.04em;
  line-height: 1.05;
}
.section-copy { max-width: 680px; color: var(--muted); margin: 0; }
.eyebrow {
  text-transform: uppercase;
  color: var(--burgundy);
  font-weight: 800;
  letter-spacing: .14em;
  font-size: .78rem;
  margin: 0 0 16px;
}

/* Cards and grids */
.card-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}
.card-grid.four { grid-template-columns: repeat(4, 1fr); }
.card-grid.two { grid-template-columns: repeat(2, 1fr); }
.dish-card, .article-card, .info-card, .feature-card {
  background: rgba(243,238,226,.84);
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  overflow: hidden;
  box-shadow: 0 16px 40px rgba(35, 14, 10, 0.08);
}
.dish-card img, .article-card img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.dish-card .card-body, .article-card .card-body, .info-card { padding: 24px; }
.card-kicker {
  color: var(--burgundy);
  text-transform: uppercase;
  font-weight: 800;
  letter-spacing: .15em;
  font-size: .74rem;
  margin: 0 0 14px;
}
.dish-card h3,
.article-card h3,
.info-card h3,
.feature-card h3 {
  margin: 0 0 10px;
  font-family: var(--headline);
  text-transform: uppercase;
  font-size: clamp(1.35rem, 2vw, 1.8rem);
  line-height: 1.05;
  letter-spacing: .01em;
  color: var(--ink);
}
.dish-card p, .article-card p, .info-card p, .feature-card p { color: var(--muted); margin: 0; }
.price {
  font-family: var(--serif);
  color: var(--burgundy);
  font-size: 1.8rem;
  margin-top: 18px;
}

/* Homepage */
.signature-layout {
  display: grid;
  grid-template-columns: 260px 1fr;
  gap: 26px;
  align-items: stretch;
}
.signature-intro {
  background: var(--ivory);
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  padding: 30px;
}
.signature-intro p { color: var(--muted); }
.signature-intro .section-title { font-size: clamp(2.2rem, 3vw, 2.5rem); }
.wine-split {
  display: grid;
  grid-template-columns: .85fr 1.15fr;
  min-height: 430px;
  background: var(--burgundy);
  color: var(--ivory);
  overflow: hidden;
}
.wine-split.reverse { grid-template-columns: 1.15fr .85fr; }
.wine-copy { padding: clamp(40px, 7vw, 88px); display: flex; flex-direction: column; justify-content: center; }
.wine-copy h2 {
  font-family: var(--headline);
  font-size: clamp(3rem, 6vw, 6rem);
  line-height: .95;
  margin: 0 0 22px;
  text-transform: uppercase;
  letter-spacing: -0.03em;
}
.wine-copy p { max-width: 560px; color: rgba(243,238,226,.86); margin: 0 0 28px; }
.wine-image {
  min-height: 420px;
  background-size: cover;
  background-position: center;
}
.wine-wall-img { background-image: url("assets/wine-wall.jpg"); }
.wine-banner-img { background-image: url("assets/wine-wall.jpg"); }
.table-img { background-image: url("assets/table-spread.jpg"); }
.chef-img { background-image: url("assets/chef-carving.jpg"); }

/* About */
.story-split {
  display: grid;
  grid-template-columns: .9fr 1.4fr;
  gap: clamp(26px, 5vw, 60px);
  align-items: center;
}
.story-photo, .wide-photo, .quote-photo {
  border-radius: var(--radius-sm);
  overflow: hidden;
  min-height: 320px;
  background-size: cover;
  background-position: center;
  box-shadow: var(--shadow);
}
.story-photo { background-image: url("assets/table-spread.jpg"); }
.quote-photo { background-image: url("assets/chef-carving.jpg"); }
.philosophy-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: var(--line);
  border: 1px solid var(--line);
}
.philosophy-card {
  padding: 34px;
  background: var(--ivory);
  min-height: 230px;
}
.icon-dot {
  width: 58px;
  height: 58px;
  border-radius: 50%;
  background: var(--burgundy);
  color: var(--ivory);
  display: grid;
  place-items: center;
  font-size: 1.5rem;
  margin-bottom: 18px;
}
.quote-band {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 360px;
  background: var(--charcoal);
  color: var(--ivory);
}
.quote-copy {
  padding: clamp(40px, 6vw, 72px);
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.quote-copy h2 {
  font-family: var(--serif);
  font-size: clamp(2rem, 4vw, 4rem);
  line-height: 1.05;
  margin: 0 0 18px;
}
.quote-copy p { color: rgba(243,238,226,.78); max-width: 560px; }

/* Experience */
.steps {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}
.step-card {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 18px;
  padding: 28px;
  background: var(--ivory);
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
}
.step-number {
  font-family: var(--headline);
  color: var(--burgundy);
  font-size: 4rem;
  line-height: .85;
}
.gallery-strip {
  display: grid;
  grid-template-columns: 1.2fr .8fr .8fr;
  gap: 18px;
}
.gallery-item {
  min-height: 230px;
  border-radius: var(--radius-sm);
  overflow: hidden;
  background-size: cover;
  background-position: center;
  box-shadow: 0 20px 45px rgba(0,0,0,.16);
}
.gallery-table { background-image: url("assets/table-spread.jpg"); }
.gallery-social { background-image: url("assets/social-dining.jpg"); }
.gallery-interior { background-image: url("assets/interior.jpg"); }

/* Menu */
.menu-tabs {
  position: sticky;
  top: 88px;
  z-index: 900;
  display: flex;
  justify-content: center;
  gap: clamp(18px, 7vw, 90px);
  background: var(--burgundy);
  color: var(--ivory);
  padding: 16px 20px;
  overflow-x: auto;
  border-bottom: 1px solid rgba(243,238,226,.12);
}
.menu-tabs button {
  border: 0;
  background: transparent;
  color: inherit;
  text-transform: uppercase;
  font-weight: 800;
  letter-spacing: .16em;
  font-size: .78rem;
  padding: 8px 0;
  cursor: pointer;
  white-space: nowrap;
  border-bottom: 2px solid transparent;
}
.menu-tabs button.active,
.menu-tabs button:hover { border-bottom-color: var(--ivory); }
.menu-feature-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 16px;
}
.menu-list {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 26px;
  border-top: 1px solid var(--line);
  margin-top: 48px;
  padding-top: 42px;
}
.menu-list h3 {
  margin: 0 0 14px;
  color: var(--burgundy);
  text-transform: uppercase;
  font-weight: 800;
  letter-spacing: .14em;
  font-size: .82rem;
}
.menu-list ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 9px; }
.menu-list li { display: flex; justify-content: space-between; gap: 14px; color: var(--ink); }
.menu-list span:last-child { color: var(--burgundy); }
.accordion-list { display: none; margin-top: 28px; border: 1px solid var(--line); }
.accordion-list a {
  display: flex;
  justify-content: space-between;
  padding: 18px 20px;
  border-bottom: 1px solid var(--line);
  color: var(--burgundy);
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .12em;
}
.accordion-list a:last-child { border-bottom: 0; }

/* News */
.news-grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr;
  gap: 20px;
}
.article-card.featured { grid-column: span 1; }
.article-card .meta {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  color: var(--burgundy);
  text-transform: uppercase;
  letter-spacing: .13em;
  font-size: .72rem;
  font-weight: 800;
  margin-bottom: 12px;
}
.newsletter {
  display: grid;
  grid-template-columns: 1fr 1.1fr;
  gap: 34px;
  align-items: center;
  background: var(--burgundy);
  color: var(--ivory);
  padding: clamp(36px, 6vw, 68px);
}
.newsletter h2 {
  margin: 0 0 8px;
  font-family: var(--serif);
  font-size: clamp(2rem, 4vw, 4rem);
}
.newsletter form { display: flex; }
.newsletter input {
  flex: 1;
  min-height: 56px;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(243,238,226,.62);
  color: var(--ivory);
  padding: 0 18px;
}
.newsletter input::placeholder { color: rgba(243,238,226,.7); }
.newsletter button { min-height: 56px; }

/* Contact */
.contact-layout {
  display: grid;
  grid-template-columns: .9fr 1.25fr;
  gap: clamp(30px, 7vw, 80px);
}
.contact-stack { display: grid; gap: 22px; }
.contact-item {
  display: grid;
  grid-template-columns: 58px 1fr;
  gap: 18px;
  padding-bottom: 22px;
  border-bottom: 1px solid var(--line);
}
.contact-item h3 { margin: 0 0 6px; color: var(--burgundy); text-transform: uppercase; letter-spacing: .12em; font-size: .82rem; }
.contact-item p { margin: 0; color: var(--muted); }
.form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
}
.form-field { display: grid; gap: 7px; }
.form-field.full { grid-column: 1 / -1; }
label { color: var(--burgundy); text-transform: uppercase; font-weight: 800; letter-spacing: .13em; font-size: .72rem; }
input, textarea, select {
  width: 100%;
  border: 1px solid var(--line);
  background: rgba(255,255,255,.42);
  min-height: 50px;
  padding: 13px 14px;
  color: var(--ink);
  outline: none;
}
textarea { min-height: 140px; resize: vertical; }
input:focus, textarea:focus, select:focus { border-color: rgba(110,13,31,.65); box-shadow: 0 0 0 3px rgba(110,13,31,.08); }
.form-note { color: var(--burgundy); font-weight: 700; margin: 14px 0 0; display: none; }
.form-note.is-visible { display: block; }
.form-honeypot {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}
button:disabled { cursor: wait; opacity: .7; transform: none; }
.whatsapp-widget {
  position: fixed;
  right: 22px;
  bottom: 22px;
  z-index: 1400;
  display: inline-flex;
  align-items: center;
  gap: 9px;
  min-height: 52px;
  padding: 0 17px;
  border-radius: 999px;
  background: #25d366;
  color: #fff;
  font-weight: 800;
  font-size: .85rem;
  letter-spacing: .02em;
  box-shadow: 0 12px 34px rgba(0,0,0,.28);
  transition: transform .2s ease, box-shadow .2s ease;
}
.whatsapp-widget:hover,
.whatsapp-widget:focus-visible {
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 15px 38px rgba(0,0,0,.34);
}
.whatsapp-widget .whatsapp-mark { width: 30px; height: 30px; object-fit: contain; flex: 0 0 auto; }
.map-panel {
  min-height: 260px;
  background:
    radial-gradient(circle at 45% 45%, rgba(209,196,170,.24), transparent 11%),
    linear-gradient(30deg, transparent 48%, rgba(243,238,226,.09) 48%, rgba(243,238,226,.09) 49%, transparent 49%),
    linear-gradient(120deg, transparent 52%, rgba(243,238,226,.08) 52%, rgba(243,238,226,.08) 53%, transparent 53%),
    var(--charcoal);
  color: var(--ivory);
  display: grid;
  place-items: center;
  text-align: center;
  padding: 40px 20px;
}
.map-pin {
  width: 62px;
  height: 62px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: var(--burgundy);
  color: var(--ivory);
  margin-inline: auto;
  font-family: var(--headline);
  font-size: 2rem;
  box-shadow: 0 20px 50px rgba(0,0,0,.25);
}
.visit-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: var(--line);
  border: 1px solid var(--line);
}
.visit-card {
  background: var(--ivory);
  padding: 28px;
}
.visit-card h3 { color: var(--burgundy); margin: 0 0 8px; text-transform: uppercase; letter-spacing: .11em; font-size: .86rem; }

/* Reservation */
.reservation-panel {
  display: grid;
  grid-template-columns: .9fr 1.2fr;
  gap: 34px;
  align-items: start;
}
.reserve-card {
  background: var(--ivory);
  border: 1px solid var(--line);
  padding: clamp(26px, 5vw, 46px);
  box-shadow: var(--shadow);
}

/* CTA and footer */
.cta-band {
  background: var(--burgundy);
  color: var(--ivory);
  padding: clamp(36px, 5vw, 64px) 0;
}
.cta-band .container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}
.cta-band h2 {
  font-family: var(--serif);
  font-size: clamp(2.2rem, 4.5vw, 5rem);
  line-height: 1.05;
  margin: 0;
  letter-spacing: -.04em;
}
.site-footer {
  background: var(--burgundy-dark);
  color: rgba(243,238,226,.78);
  padding: 48px 0 30px;
}
.footer-grid {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 30px;
  margin-bottom: 38px;
}
.site-footer h3 { color: var(--ivory); margin: 0 0 12px; font-size: .84rem; letter-spacing: .14em; text-transform: uppercase; }
.site-footer p, .site-footer a { margin: 0; color: rgba(243,238,226,.78); }
.footer-bottom {
  border-top: 1px solid rgba(243,238,226,.15);
  padding-top: 22px;
  display: flex;
  justify-content: space-between;
  gap: 18px;
  flex-wrap: wrap;
  font-size: .84rem;
}
.responsible { max-width: 640px; }

/* Utilities */
.text-burgundy { color: var(--burgundy); }
.text-muted { color: var(--muted); }
.mt-0 { margin-top: 0; }
.mt-24 { margin-top: 24px; }
.mt-36 { margin-top: 36px; }
.rounded { border-radius: var(--radius-sm); overflow: hidden; }
.img-cover { width: 100%; height: 100%; object-fit: cover; }

@media (max-width: 1080px) {
  .desktop-nav { display: none; }
  .nav-toggle { display: inline-flex; }
  .header-inner { min-height: 82px; }
  .menu-feature-grid { grid-template-columns: repeat(2, 1fr); }
  .menu-list { grid-template-columns: repeat(2, 1fr); }
  .news-grid { grid-template-columns: 1fr 1fr; }
  .visit-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 760px) {
  .container { width: min(100% - 28px, 560px); }
  .header-inner { min-height: 78px; }
  .brand-mark { font-size: 2.45rem; }
  .brand small { font-size: .72rem; }
  .whatsapp-widget {
    right: 14px;
    bottom: 14px;
    width: 52px;
    padding: 0;
    justify-content: center;
  }
  .whatsapp-widget span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .header-actions .btn { min-height: 42px; padding: 0 13px; font-size: .68rem; letter-spacing: .12em; }
  .hero { min-height: 680px; padding: 120px 0 48px; background-position: center; }
  .hero::before {
    background: linear-gradient(180deg, rgba(38,6,13,.45), rgba(38,6,13,.92) 78%),
                linear-gradient(90deg, rgba(38,6,13,.78), rgba(38,6,13,.05));
  }
  .display { font-size: clamp(4.2rem, 17vw, 6.8rem); }
  .display-sm { font-size: clamp(3.4rem, 15vw, 5.6rem); }
  .lede { font-size: 1.2rem; }
  .button-row .btn { width: 100%; }
  .section-head,
  .signature-layout,
  .story-split,
  .quote-band,
  .wine-split,
  .wine-split.reverse,
  .contact-layout,
  .reservation-panel,
  .newsletter,
  .footer-grid {
    grid-template-columns: 1fr;
  }
  .section { padding: 56px 0; }
  .signature-intro .section-title { font-size: clamp(2.8rem, 12vw, 4rem); }
  .card-grid,
  .card-grid.four,
  .card-grid.two,
  .steps,
  .gallery-strip,
  .philosophy-grid,
  .news-grid,
  .visit-grid { grid-template-columns: 1fr; }
  .menu-feature-grid { grid-template-columns: 1fr; }
  .menu-feature-grid .dish-card {
    display: grid;
    grid-template-columns: 38% 1fr;
  }
  .menu-feature-grid .dish-card img { height: 100%; aspect-ratio: auto; }
  .menu-list { display: none; }
  .accordion-list { display: block; }
  .menu-tabs {
    top: 78px;
    justify-content: flex-start;
    padding-inline: 14px;
  }
  .wine-image, .story-photo, .quote-photo { min-height: 260px; }
  .quote-band .quote-photo { order: -1; }
  .newsletter form { flex-direction: column; gap: 12px; }
  .form-grid { grid-template-columns: 1fr; }
  .cta-band .container { align-items: flex-start; flex-direction: column; }
  .cta-band .btn { width: 100%; }
  .footer-bottom { flex-direction: column; }
}

@media (max-width: 430px) {
  .brand-mark { font-size: 2.05rem; }
  .header-actions .btn { display: none; }
  .display { font-size: clamp(2.8rem, 14vw, 4.4rem); letter-spacing: -0.03em; }
  .display-sm { font-size: clamp(2.6rem, 12vw, 4rem); letter-spacing: -0.03em; }
  .hero { min-height: 620px; }
  .dish-card .card-body, .article-card .card-body, .info-card { padding: 18px; }
  .philosophy-card, .visit-card { padding: 24px; }
}

/* Menu page - showcase-led system */
.signature-showcase {
  display: grid;
  grid-template-columns: 1.25fr 1fr 1fr;
  gap: 18px;
}
.signature-card {
  position: relative;
  min-height: 390px;
  border-radius: var(--radius-sm);
  overflow: hidden;
  background: var(--charcoal);
  box-shadow: 0 22px 56px rgba(35, 14, 10, 0.16);
  border: 1px solid rgba(56, 56, 56, 0.16);
}
.signature-card-large { grid-row: span 2; min-height: 798px; }
.signature-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.02);
  filter: saturate(1.05) contrast(1.04);
}
.signature-card::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(38,6,13,0.05) 20%, rgba(38,6,13,0.88) 100%);
}
.signature-card-copy {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1;
  padding: clamp(22px, 3vw, 34px);
  color: var(--ivory);
}
.signature-card-copy .card-kicker { color: var(--sand); }
.signature-card-copy h3 {
  margin: 0 0 10px;
  font-family: var(--headline);
  font-size: clamp(1.8rem, 3vw, 3rem);
  line-height: .96;
  letter-spacing: -.02em;
  text-transform: uppercase;
  color: var(--ivory);
}
.signature-card-copy p:not(.card-kicker) {
  margin: 0;
  max-width: 480px;
  color: rgba(243,238,226,.86);
}
.menu-story-grid {
  display: grid;
  grid-template-columns: .86fr 1.14fr;
  gap: clamp(28px, 6vw, 72px);
  align-items: center;
}
.menu-story-copy p:not(.eyebrow) { color: var(--muted); max-width: 650px; }
.menu-story-copy .btn { margin-top: 14px; }
.menu-photo-mosaic {
  display: grid;
  grid-template-columns: 1.2fr .8fr;
  grid-template-rows: 220px 220px;
  gap: 14px;
}
.menu-photo-mosaic img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: var(--radius-sm);
  box-shadow: 0 18px 45px rgba(19, 6, 8, 0.18);
}
.menu-photo-mosaic img:first-child { grid-row: span 2; }
.menu-attachment-panel {
  display: grid;
  grid-template-columns: .78fr 1.22fr;
  gap: clamp(28px, 6vw, 72px);
  align-items: start;
}
.download-grid { display: grid; gap: 18px; }
.download-card {
  display: grid;
  grid-template-columns: 76px 1fr;
  gap: 22px;
  padding: clamp(24px, 4vw, 36px);
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  box-shadow: 0 18px 45px rgba(35, 14, 10, 0.08);
}
.download-icon {
  width: 76px;
  height: 96px;
  background: var(--burgundy);
  color: var(--ivory);
  display: grid;
  place-items: center;
  font-family: var(--headline);
  font-size: 1.45rem;
  letter-spacing: .08em;
  clip-path: polygon(0 0, 78% 0, 100% 18%, 100% 100%, 0 100%);
}
.download-card h3 {
  margin: 0 0 8px;
  font-family: var(--headline);
  text-transform: uppercase;
  font-size: clamp(1.6rem, 2.5vw, 2.2rem);
  line-height: 1;
  color: var(--ink);
}
.download-card p { margin: 0 0 18px; color: var(--muted); }
.compact-row { gap: 10px; }
.compact-row .btn { min-height: 42px; padding-inline: 18px; font-size: .72rem; }
.menu-disclaimer {
  margin: 28px 0 0;
  color: var(--muted);
  font-size: .92rem;
  border-top: 1px solid var(--line);
  padding-top: 18px;
}

@media (max-width: 1080px) {
  .signature-showcase { grid-template-columns: repeat(2, 1fr); }
  .signature-card-large { grid-row: span 1; min-height: 390px; }
  .menu-attachment-panel { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
  .signature-showcase,
  .menu-story-grid,
  .menu-attachment-panel { grid-template-columns: 1fr; }
  .signature-card,
  .signature-card-large { min-height: 430px; }
  .menu-photo-mosaic { grid-template-columns: 1fr 1fr; grid-template-rows: 180px 180px; }
  .menu-photo-mosaic img:first-child { grid-row: auto; grid-column: span 2; }
  .download-card { grid-template-columns: 1fr; }
  .download-icon { width: 64px; height: 82px; }
  .compact-row .btn { width: 100%; }
}

@media (max-width: 430px) {
  .signature-card,
  .signature-card-large { min-height: 360px; }
  .menu-photo-mosaic { grid-template-rows: 150px 150px; gap: 10px; }
}

/* Searchable wine list and wine journal */
.wine-list-section { scroll-margin-top: 132px; }
.wine-list-intro .section-copy p:first-child { margin-top: 0; }
.wine-list-groups { display: grid; gap: 34px; }
.wine-list-group { border: 1px solid var(--line); background: var(--ivory); border-radius: var(--radius-sm); overflow: hidden; box-shadow: 0 16px 40px rgba(35, 14, 10, .07); }
.wine-list-group h3 { margin: 0; padding: 22px 26px; color: var(--ivory); background: var(--burgundy); font-family: var(--headline); font-size: clamp(1.6rem, 3vw, 2.4rem); line-height: 1; letter-spacing: -.01em; text-transform: uppercase; }
.wine-list-table-wrap { overflow-x: auto; }
.wine-list-table { width: 100%; border-collapse: collapse; min-width: 780px; }
.wine-list-table th,
.wine-list-table td { padding: 15px 18px; text-align: left; vertical-align: top; border-bottom: 1px solid var(--line); }
.wine-list-table thead th { background: rgba(110, 13, 31, .06); color: var(--burgundy); font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; white-space: nowrap; }
.wine-list-table tbody th { width: 35%; color: var(--ink); font-size: .94rem; }
.wine-list-table tbody td { color: var(--muted); font-size: .92rem; }
.wine-list-table tbody tr:last-child th,
.wine-list-table tbody tr:last-child td { border-bottom: 0; }
.wine-list-note { margin-top: 34px; padding: 26px 28px; color: var(--ivory); background: var(--burgundy-dark); border-radius: var(--radius-sm); }
.wine-list-note p { margin: 0; }
.wine-list-note a { color: var(--sand); text-decoration: underline; text-underline-offset: 3px; }

.journal-feature-grid { display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(34px, 7vw, 92px); align-items: center; }
.journal-feature-image { min-height: 450px; overflow: hidden; border-radius: var(--radius-sm); box-shadow: 0 24px 58px rgba(35, 14, 10, .16); }
.journal-feature-image img { display: block; width: 100%; height: 100%; min-height: 450px; object-fit: cover; transition: transform .5s ease; }
.journal-feature-image:hover img { transform: scale(1.025); }
.journal-feature-copy > p:not(.eyebrow) { max-width: 590px; color: var(--muted); font-size: 1.08rem; }
.journal-feature-copy .btn-text { margin-top: 16px; }

.article-hero { position: relative; min-height: 720px; padding: 190px 0 90px; display: flex; align-items: flex-end; color: var(--ivory); background: var(--burgundy-dark) url("assets/hero-home.jpg") center / cover no-repeat; }
.article-hero-shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(28,4,10,.94), rgba(37,5,13,.7) 55%, rgba(20,3,7,.2)), linear-gradient(0deg, rgba(20,3,7,.7), transparent 62%); }
.article-hero-content { position: relative; z-index: 1; }
.breadcrumbs { display: flex; gap: 10px; margin-bottom: 28px; color: rgba(243,238,226,.76); font-size: .8rem; letter-spacing: .08em; text-transform: uppercase; }
.breadcrumbs a { color: var(--sand); }
.article-hero h1 { max-width: 980px; margin: 0; font-family: var(--headline); font-size: clamp(3.6rem, 8vw, 8.2rem); font-weight: 700; line-height: .86; letter-spacing: -.045em; text-transform: uppercase; }
.article-deck { max-width: 800px; margin: 28px 0 0; font-family: var(--serif); font-size: clamp(1.18rem, 2vw, 1.55rem); line-height: 1.42; color: rgba(243,238,226,.9); }
.article-meta { margin: 22px 0 0; color: var(--sand); font-size: .78rem; letter-spacing: .08em; text-transform: uppercase; }
.article-layout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: clamp(44px, 8vw, 110px); align-items: start; padding-top: clamp(68px, 9vw, 118px); padding-bottom: clamp(72px, 10vw, 132px); }
.article-body { max-width: 760px; }
.article-body p,
.article-body li { color: #4f4945; font-size: 1.08rem; line-height: 1.78; }
.article-body a:not(.btn) { color: var(--burgundy); text-decoration: underline; text-underline-offset: 3px; }
.article-body .article-lead { margin-top: 0; color: var(--ink); font-family: var(--serif); font-size: clamp(1.4rem, 2.3vw, 1.9rem); line-height: 1.45; }
.article-body h2 { margin: 58px 0 18px; color: var(--ink); font-family: var(--serif); font-size: clamp(2.3rem, 4vw, 3.6rem); line-height: 1.02; letter-spacing: -.035em; }
.article-body ul { padding-left: 24px; }
.article-body li + li { margin-top: 12px; }
.article-callout { margin: 54px 0; padding: clamp(30px, 5vw, 48px); color: var(--ivory); background: var(--burgundy-dark); border-radius: var(--radius-sm); }
.article-callout h2 { margin: 0 0 16px; color: var(--ivory); }
.article-callout p { color: rgba(243,238,226,.84); }
.article-callout .eyebrow { margin-bottom: 10px; color: var(--sand); }
.article-callout .btn { margin-top: 12px; }
.article-sidebar { position: sticky; top: 120px; }
.article-sidebar-card { padding: 30px; border: 1px solid var(--line); background: var(--paper); border-radius: var(--radius-sm); box-shadow: 0 18px 45px rgba(35,14,10,.08); }
.article-sidebar-card h2 { margin: 0 0 18px; font-family: var(--serif); font-size: 2.2rem; line-height: 1; }
.article-sidebar-card p { color: var(--muted); }
.article-sidebar-card .btn { width: 100%; margin: 12px 0 18px; }
.article-sidebar-card .btn-text { font-size: .7rem; }
.article-faq { margin-top: 68px; padding-top: 44px; border-top: 1px solid var(--line); }
.article-faq h2 { margin-top: 0; }
.article-faq details { border-bottom: 1px solid var(--line); }
.article-faq summary { padding: 20px 0; cursor: pointer; color: var(--ink); font-weight: 800; }
.article-faq details p { margin-top: 0; padding-bottom: 18px; }

@media (max-width: 900px) {
  .article-layout { grid-template-columns: 1fr; }
  .article-sidebar { position: static; }
  .article-sidebar-card { max-width: 560px; }
}

@media (max-width: 760px) {
  .wine-list-group h3 { padding: 18px 20px; }
  .wine-list-table th,
  .wine-list-table td { padding: 13px 14px; }
  .journal-feature-grid { grid-template-columns: 1fr; }
  .journal-feature-image,
  .journal-feature-image img { min-height: 320px; }
  .article-hero { min-height: 650px; padding: 150px 0 65px; }
  .article-hero h1 { font-size: clamp(3.2rem, 14vw, 5.3rem); }
  .article-layout { padding-top: 62px; }
}

/* Private events page */
.events-page { background: var(--paper); }
.events-page .site-header { background: linear-gradient(180deg, rgba(20, 4, 8, .82), rgba(20, 4, 8, .08)); }
.events-page .site-header.is-scrolled,
.events-page .site-header.is-open { background: rgba(110, 13, 31, .96); }
.events-hero {
  position: relative;
  min-height: min(840px, 100svh);
  min-height: 760px;
  display: flex;
  align-items: flex-end;
  isolation: isolate;
  overflow: hidden;
  color: var(--ivory);
  background: var(--burgundy-dark) url("assets/events/private-events-hero-poster.jpg") center / cover no-repeat;
}
.events-hero-video,
.events-hero-shade { position: absolute; inset: 0; width: 100%; height: 100%; }
.events-hero-video { z-index: -2; object-fit: cover; object-position: center; }
.events-hero-shade {
  z-index: -1;
  background: linear-gradient(90deg, rgba(30, 5, 11, .94) 0%, rgba(43, 7, 16, .76) 39%, rgba(24, 4, 9, .14) 76%), linear-gradient(0deg, rgba(19, 3, 7, .54), transparent 46%);
}
.events-hero-content { padding-top: 175px; padding-bottom: clamp(92px, 11vw, 150px); }
.events-hero .kicker { margin: 0 0 19px; }
.events-hero h1 {
  max-width: 850px;
  margin: 0;
  font-family: var(--headline);
  font-size: clamp(4.9rem, 10vw, 10.4rem);
  font-weight: 700;
  line-height: .83;
  letter-spacing: -.055em;
  text-transform: uppercase;
}
.events-hero h1::after { content: ""; display: block; width: 58px; height: 2px; margin: 29px 0 0; background: var(--sand); }
.events-hero-lede { max-width: 590px; margin: 25px 0 0; font-family: var(--serif); font-size: clamp(1.2rem, 2vw, 1.65rem); line-height: 1.35; }
.events-hero .button-row { align-items: center; margin-top: 34px; }
.events-text-link { display: inline-flex; align-items: center; gap: 10px; padding: 12px 2px; color: var(--ivory); font-size: .76rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.events-text-link span { font-size: 1.2rem; transition: transform .18s ease; }
.events-text-link:hover span { transform: translateY(4px); }
.events-text-link:focus-visible { outline: 2px solid var(--ivory); outline-offset: 5px; }
.events-hero-caption { position: absolute; right: max(20px, calc((100vw - 1180px) / 2)); bottom: 32px; font-family: var(--serif); font-size: .92rem; color: rgba(243,238,226,.86); writing-mode: vertical-rl; transform: rotate(180deg); }

.events-intro { padding-block: clamp(84px, 11vw, 156px); background: var(--paper); }
.events-intro-grid { display: grid; grid-template-columns: minmax(270px, .9fr) minmax(360px, 1.1fr); gap: clamp(42px, 12vw, 176px); }
.events-intro-title .section-title { font-size: clamp(3.3rem, 5.8vw, 6.4rem); }
.events-intro-copy { max-width: 620px; padding-top: 35px; }
.events-large-copy { margin: 0 0 22px; font-family: var(--serif); font-size: clamp(1.5rem, 2.5vw, 2.3rem); line-height: 1.2; color: var(--ink); }
.events-intro-copy > p:not(.events-large-copy) { margin: 0; max-width: 540px; color: var(--muted); }
.events-intro-copy .btn-text { margin-top: 31px; }

.events-feature-band { padding: clamp(32px, 5vw, 68px) 0; background: var(--burgundy); color: var(--ivory); }
.events-feature-grid { display: grid; grid-template-columns: 1.35fr repeat(3, 1fr); border: 1px solid rgba(243,238,226,.25); }
.events-feature-card { min-height: 340px; padding: clamp(28px, 3.2vw, 46px); border-right: 1px solid rgba(243,238,226,.25); display: flex; flex-direction: column; }
.events-feature-card:last-child { border-right: 0; }
.events-feature-copy { background: rgba(38, 6, 13, .25); }
.events-feature-card .eyebrow { color: var(--sand); }
.events-feature-copy h2 { margin: auto 0 18px; font-family: var(--serif); font-size: clamp(2.2rem, 3.8vw, 4.25rem); line-height: .98; letter-spacing: -.05em; }
.events-feature-card h3 { margin: auto 0 14px; font-family: var(--headline); font-size: clamp(1.65rem, 2.2vw, 2.35rem); text-transform: uppercase; line-height: .97; letter-spacing: -.02em; }
.events-feature-card p { margin: 0; color: rgba(243,238,226,.8); }
.events-feature-number { font-family: var(--serif); font-size: 1rem; color: var(--sand); }

.events-motion { background: var(--ivory); }
.events-section-heading,
.events-gallery-head { display: grid; grid-template-columns: minmax(260px, .92fr) 1.08fr; gap: clamp(32px, 9vw, 150px); align-items: end; margin-bottom: 45px; }
.events-section-heading .section-title,
.events-gallery-head .section-title { font-size: clamp(3rem, 5vw, 5.4rem); }
.events-section-heading > p,
.events-gallery-head > p { max-width: 520px; margin: 0; color: var(--muted); font-family: var(--serif); font-size: 1.22rem; line-height: 1.42; }
.events-video-grid { display: grid; grid-template-columns: 1.2fr .8fr .8fr; gap: 18px; }
.events-video-card,
.events-still-card { position: relative; min-height: 385px; margin: 0; overflow: hidden; background: var(--charcoal); border-radius: var(--radius-sm); }
.events-video-card-tall { min-height: 590px; grid-row: span 2; }
.events-video-card video,
.events-still-card img { width: 100%; height: 100%; object-fit: cover; transition: transform .55s ease; }
.events-video-card video { position: absolute; inset: 0; }
.events-still-card img { position: absolute; inset: 0; }
.events-video-card::after,
.events-still-card::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(22, 3, 8, .76), transparent 53%); pointer-events: none; }
.events-video-card:hover video,
.events-still-card:hover img { transform: scale(1.04); }
.events-video-card figcaption,
.events-still-card figcaption { position: absolute; z-index: 1; right: 24px; bottom: 21px; left: 24px; color: var(--ivory); font-family: var(--serif); font-size: 1.18rem; }
.events-video-card figcaption span,
.events-still-card figcaption span { display: block; margin-bottom: 6px; color: var(--sand); font-family: var(--sans); font-size: .7rem; font-weight: 800; letter-spacing: .14em; }

.events-occasion { overflow: hidden; }
.events-occasion-grid { display: grid; grid-template-columns: 1.08fr .92fr; gap: clamp(40px, 9vw, 144px); align-items: center; }
.events-occasion-image { min-height: 620px; overflow: hidden; }
.events-occasion-image img { width: 100%; height: 100%; object-fit: cover; }
.events-occasion-copy { max-width: 500px; }
.events-occasion-copy .section-title { font-size: clamp(3rem, 4.6vw, 5.1rem); }
.events-occasion-copy > p:not(.eyebrow) { margin: 28px 0 0; color: var(--muted); font-size: 1.08rem; }
.events-occasion-list { display: grid; gap: 12px; margin: 29px 0 32px; padding: 0; list-style: none; color: var(--ink); }
.events-occasion-list li { padding-bottom: 12px; border-bottom: 1px solid var(--line); }
.events-occasion-list li::before { content: "—"; margin-right: 10px; color: var(--burgundy); }

.events-gallery-section { background: var(--paper); }
.events-gallery {
  display: block;
  column-count: 3;
  column-gap: 16px;
}
.events-gallery-item {
  display: inline-block;
  width: 100%;
  margin: 0 0 16px;
  overflow: hidden;
  background: var(--ivory);
  border-radius: var(--radius-sm);
  break-inside: avoid;
  vertical-align: top;
  box-shadow: 0 12px 32px rgba(35, 14, 10, .08);
}
.events-gallery-item img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
}

.events-enquiry { padding: clamp(70px, 9vw, 130px) 0; color: var(--ivory); background: var(--burgundy-dark); }
.events-enquiry-grid { display: grid; grid-template-columns: .86fr 1.14fr; gap: clamp(42px, 9vw, 145px); align-items: start; }
.events-enquiry .eyebrow { color: var(--sand); }
.events-enquiry-intro h2 { max-width: 500px; margin: 0; font-family: var(--serif); font-size: clamp(3rem, 5vw, 5.5rem); line-height: .98; letter-spacing: -.055em; }
.events-enquiry-intro > p:not(.eyebrow) { max-width: 420px; margin: 25px 0 32px; color: rgba(243,238,226,.76); font-size: 1.05rem; }
.events-enquiry-photo { height: 188px; max-width: 410px; overflow: hidden; opacity: .86; }
.events-enquiry-photo img { width: 100%; height: 100%; object-fit: cover; }
.events-form { padding: clamp(25px, 4vw, 47px); background: rgba(243,238,226,.08); border: 1px solid rgba(243,238,226,.25); }
.events-form label { color: var(--sand); }
.events-form input,
.events-form textarea,
.events-form select { border-color: rgba(243,238,226,.42); background: rgba(255,255,255,.06); color: var(--ivory); }
.events-form select { color: var(--ivory); }
.events-form select option { color: var(--ink); background: var(--paper); }
.events-form input::placeholder,
.events-form textarea::placeholder { color: rgba(243,238,226,.55); }
.events-form input:focus,
.events-form textarea:focus,
.events-form select:focus { border-color: var(--sand); box-shadow: 0 0 0 3px rgba(209,196,170,.16); }
.events-form .form-note { color: var(--sand); }
.events-form .btn { min-width: min(100%, 240px); }
.events-final-cta .eyebrow { margin-bottom: 10px; color: var(--sand); }
.events-final-cta h2 { font-size: clamp(2.6rem, 4.5vw, 5rem); }

@media (max-width: 1080px) {
  .events-feature-grid { grid-template-columns: 1fr 1fr; }
  .events-feature-card:nth-child(2) { border-right: 0; }
  .events-feature-card:nth-child(-n+2) { border-bottom: 1px solid rgba(243,238,226,.25); }
  .events-video-grid { grid-template-columns: 1fr 1fr; }
  .events-video-card-tall { grid-row: span 1; min-height: 490px; }
  .events-video-card,
  .events-still-card { min-height: 330px; }
  .events-still-card,
  .events-video-card-settle { grid-column: span 2; }
  .events-gallery { column-count: 2; }
}

@media (max-width: 760px) {
  .events-hero { min-height: 690px; align-items: flex-end; }
  .events-hero-video { object-position: 60% center; }
  .events-hero-shade { background: linear-gradient(180deg, rgba(23, 4, 8, .32), rgba(27, 4, 10, .91) 78%), linear-gradient(90deg, rgba(37, 5, 13, .74), transparent); }
  .events-hero-content { padding-top: 130px; padding-bottom: 73px; }
  .events-hero h1 { font-size: clamp(4.15rem, 17.5vw, 6.5rem); line-height: .85; }
  .events-hero h1::after { margin-top: 23px; }
  .events-hero-lede { font-size: 1.16rem; }
  .events-hero .button-row { align-items: stretch; margin-top: 27px; }
  .events-hero .btn { width: 100%; }
  .events-text-link { justify-content: center; }
  .events-hero-caption { display: none; }
  .events-intro { padding-block: 71px; }
  .events-intro-grid,
  .events-occasion-grid,
  .events-enquiry-grid { grid-template-columns: 1fr; }
  .events-intro-copy { padding-top: 0; }
  .events-intro-title .section-title { font-size: clamp(3.2rem, 14vw, 5.2rem); }
  .events-feature-band { padding-block: 0; }
  .events-feature-grid { grid-template-columns: 1fr; border-inline: 0; }
  .events-feature-card { min-height: 235px; border-right: 0; border-bottom: 1px solid rgba(243,238,226,.25); }
  .events-feature-card:nth-child(2) { border-right: 0; }
  .events-feature-card:last-child { border-bottom: 0; }
  .events-feature-copy h2 { margin-top: 35px; }
  .events-section-heading,
  .events-gallery-head { grid-template-columns: 1fr; gap: 21px; margin-bottom: 30px; }
  .events-video-grid { grid-template-columns: 1fr; gap: 12px; }
  .events-video-card-tall,
  .events-video-card,
  .events-still-card { min-height: 410px; grid-column: auto; }
  .events-video-card figcaption,
  .events-still-card figcaption { right: 19px; bottom: 17px; left: 19px; }
  .events-occasion-image { min-height: 390px; }
  .events-occasion-copy { max-width: none; }
  .events-gallery { column-count: 2; column-gap: 10px; }
  .events-gallery-item { margin-bottom: 10px; }
  .events-enquiry { padding-block: 70px; }
  .events-enquiry-intro h2 { font-size: clamp(3rem, 14vw, 4.7rem); }
  .events-enquiry-photo { max-width: none; height: 200px; }
  .events-form { padding: 24px 18px; }
  .events-form .btn { width: 100%; }
}

@media (max-width: 430px) {
  .events-hero { min-height: 650px; }
  .events-hero h1 { font-size: clamp(3.5rem, 16.5vw, 4.7rem); }
  .events-gallery { column-count: 1; }
  .events-large-copy { font-size: 1.42rem; }
}

@media (prefers-reduced-motion: reduce) {
  .events-video-card:hover video,
  .events-still-card:hover img { transform: none; }
  .events-text-link span { transition: none; }
}

/* Promotions page */
.promotions-page { background: var(--paper); }
.promotions-page .site-header { background: linear-gradient(180deg, rgba(21, 3, 8, .88), rgba(21, 3, 8, .12)); }
.promotions-page .site-header.is-scrolled,
.promotions-page .site-header.is-open { background: rgba(110, 13, 31, .97); }

.promo-hero {
  position: relative;
  min-height: 820px;
  display: flex;
  align-items: center;
  overflow: hidden;
  isolation: isolate;
  color: var(--ivory);
  background: var(--burgundy-dark);
}
.promo-hero-photo,
.promo-hero-shade { position: absolute; inset: 0; z-index: -2; }
.promo-hero-photo {
  left: 46%;
  background: url("assets/hero-home.jpg") center / cover no-repeat;
}
.promo-hero-shade {
  z-index: -1;
  background:
    linear-gradient(90deg, rgba(30, 4, 11, 1) 0%, rgba(49, 7, 17, .98) 39%, rgba(36, 5, 12, .73) 61%, rgba(26, 4, 9, .28) 100%),
    linear-gradient(0deg, rgba(19, 3, 7, .5), transparent 52%);
}
.promo-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(330px, .68fr);
  gap: clamp(40px, 8vw, 124px);
  align-items: center;
  padding-top: 155px;
  padding-bottom: 82px;
}
.promo-status {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 27px;
  padding: 9px 14px;
  border: 1px solid rgba(243, 238, 226, .32);
  font-size: .69rem;
  font-weight: 800;
  letter-spacing: .15em;
  text-transform: uppercase;
}
.promo-status span { width: 7px; height: 7px; border-radius: 50%; background: #e0a362; box-shadow: 0 0 0 5px rgba(224,163,98,.15); }
.promo-hero .kicker { margin: 0 0 18px; color: var(--sand); }
.promo-hero h1 {
  margin: 0;
  font-family: var(--headline);
  font-size: clamp(5.4rem, 9.2vw, 9.7rem);
  font-weight: 700;
  line-height: .79;
  letter-spacing: -.058em;
  text-transform: uppercase;
}
.promo-hero h1 em { color: var(--sand); font-style: normal; }
.promo-hero-lede { max-width: 570px; margin: 28px 0 0; font-family: var(--serif); font-size: clamp(1.2rem, 2vw, 1.55rem); line-height: 1.4; }
.promo-hero .button-row { align-items: center; margin-top: 36px; }
.promo-text-link { display: inline-flex; align-items: center; gap: 10px; padding: 12px 2px; font-size: .72rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.promo-text-link span { font-size: 1.15rem; transition: transform .18s ease; }
.promo-text-link:hover span { transform: translateY(4px); }

.promo-price-card {
  position: relative;
  width: min(100%, 430px);
  margin-left: auto;
  padding: clamp(30px, 4.2vw, 54px);
  color: var(--burgundy-dark);
  background: rgba(243, 238, 226, .96);
  box-shadow: 0 35px 90px rgba(12, 2, 5, .38);
}
.promo-price-card::before { content: "32"; position: absolute; top: -63px; right: -2px; color: rgba(243,238,226,.13); font-family: var(--headline); font-size: 9rem; font-weight: 700; line-height: 1; }
.promo-price-kicker { margin: 0 0 6px; color: var(--burgundy); font-size: .72rem; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.promo-price { display: flex; align-items: flex-start; margin: 0 0 4px; color: var(--burgundy); font-family: var(--headline); line-height: .8; letter-spacing: -.06em; }
.promo-price strong { font-size: clamp(7rem, 11vw, 10rem); }
.promo-currency { margin: 14px 1px 0 0; font-size: clamp(2.5rem, 4vw, 4.4rem); }
.promo-cents { margin-top: 14px; font-size: clamp(2.5rem, 4vw, 4.4rem); }
.promo-cents sup { margin-left: 3px; font-size: .3em; letter-spacing: 0; vertical-align: top; }
.promo-price-rule { width: 46px; height: 2px; margin: 26px 0 23px; background: var(--burgundy); }
.promo-price-duration { display: grid; gap: 8px; margin: 0; }
.promo-duration-line { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.promo-price-duration strong { font-family: var(--serif); font-size: 1.55rem; }
.promo-price-duration > span { color: var(--muted); font-size: .85rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.promo-unlimited { display: inline-flex; align-items: center; min-height: 24px; padding: 5px 8px 4px; color: var(--ivory); background: var(--burgundy); font-size: .58rem; font-weight: 900; line-height: 1; letter-spacing: .11em; text-transform: uppercase; white-space: nowrap; }
.promo-price-daily { margin: 25px 0 0; padding-top: 18px; border-top: 1px solid rgba(110,13,31,.18); color: var(--burgundy); font-size: .67rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }

.promo-windows { scroll-margin-top: 85px; padding: clamp(82px, 11vw, 150px) 0; background: var(--paper); }
.promo-section-head { display: grid; grid-template-columns: 1fr .8fr; gap: clamp(38px, 10vw, 145px); align-items: end; margin-bottom: 52px; }
.promo-section-head .section-title { font-size: clamp(3.5rem, 6vw, 6.3rem); }
.promo-section-head > p { max-width: 500px; margin: 0 0 10px; color: var(--muted); font-family: var(--serif); font-size: 1.2rem; line-height: 1.5; }
.promo-window-grid { display: grid; grid-template-columns: repeat(3, 1fr); align-items: stretch; gap: 17px; }
.promo-window-card { position: relative; min-height: 420px; padding: clamp(25px, 3vw, 39px); border: 1px solid var(--line); background: var(--ivory); display: flex; flex-direction: column; }
.promo-window-featured { color: var(--ivory); border-color: var(--burgundy); background: var(--burgundy); box-shadow: 0 25px 60px rgba(69, 8, 20, .2); transform: translateY(-13px); }
.promo-window-badge { position: absolute; top: 0; right: 0; padding: 8px 13px; color: var(--burgundy); background: var(--sand); font-size: .61rem; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
.promo-window-top { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding-bottom: 20px; border-bottom: 1px solid var(--line); }
.promo-window-featured .promo-window-top { border-color: rgba(243,238,226,.25); }
.promo-window-time { margin: 0; color: var(--burgundy); font-size: .75rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.promo-window-featured .promo-window-time { color: var(--sand); }
.promo-window-top > span { color: var(--muted); font-family: var(--serif); font-size: .82rem; }
.promo-window-featured .promo-window-top > span { color: rgba(243,238,226,.68); }
.promo-window-card h3 { margin: 38px 0 7px; font-family: var(--headline); font-size: clamp(2.2rem, 3vw, 3.4rem); line-height: .95; letter-spacing: -.03em; text-transform: uppercase; }
.promo-window-note { margin: 0 0 31px; color: var(--muted); font-size: .78rem; }
.promo-window-featured .promo-window-note { color: rgba(243,238,226,.68); }
.promo-package { display: flex; justify-content: space-between; align-items: baseline; gap: 20px; margin-top: auto; padding-top: 19px; border-top: 1px solid var(--line); }
.promo-window-featured .promo-package { border-color: rgba(243,238,226,.25); }
.promo-package + .promo-package { margin-top: 0; }
.promo-package-duration { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.promo-package-duration strong { font-family: var(--serif); font-size: 1.08rem; }
.promo-package p { flex: 0 0 auto; margin: 0; color: var(--burgundy); font-family: var(--headline); font-size: 2rem; font-weight: 700; line-height: 1; }
.promo-window-featured .promo-package p { color: var(--sand); }
.promo-window-featured .promo-unlimited { color: var(--burgundy); background: var(--sand); }
.promo-package sup { font-size: .4em; vertical-align: top; }
.promo-windows-footer { display: flex; justify-content: space-between; align-items: center; gap: 35px; margin-top: 43px; padding-top: 25px; border-top: 1px solid var(--line); }
.promo-windows-footer p { max-width: 750px; margin: 0; color: var(--muted); font-size: .79rem; }
.promo-windows-footer .btn { flex: 0 0 auto; }

.promo-artwork { padding: clamp(75px, 10vw, 135px) 0; background: var(--paper); }
.promo-artwork-grid { display: grid; grid-template-columns: minmax(0, .78fr) minmax(420px, .72fr); align-items: center; gap: clamp(55px, 9vw, 130px); }
.promo-artwork-copy { max-width: 590px; }
.promo-artwork-copy .section-title { margin: 12px 0 26px; }
.promo-artwork-copy > p:not(.eyebrow) { max-width: 510px; margin: 0; color: var(--muted); font-size: 1.03rem; }
.promo-artwork-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 25px; margin-top: 35px; }
.promo-artwork-frame { position: relative; width: min(100%, 545px); margin: 0; padding: 16px; background: var(--ivory); box-shadow: 0 28px 75px rgba(38,6,13,.18); transform: rotate(1deg); }
.promo-artwork-frame::before { content: ""; position: absolute; inset: -14px 14px 14px -14px; z-index: -1; border: 1px solid rgba(110,13,31,.25); }
.promo-artwork-frame a { display: block; overflow: hidden; }
.promo-artwork-frame img { width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: contain; background: #eadfc7; transition: transform .4s ease; }
.promo-artwork-frame:hover img { transform: scale(1.015); }
.promo-artwork-frame figcaption { padding: 14px 3px 1px; color: var(--muted); font-size: .7rem; font-weight: 700; letter-spacing: .08em; text-align: center; text-transform: uppercase; }

.promo-experience { display: grid; grid-template-columns: 1.08fr .92fr; min-height: 690px; color: var(--ivory); background: var(--burgundy-dark); }
.promo-experience-image { min-height: 590px; background: url("assets/wine-wall.jpg") center / cover no-repeat; }
.promo-experience-copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(50px, 7vw, 110px); }
.promo-experience-copy .eyebrow { color: var(--sand); }
.promo-experience-copy h2 { margin: 0; font-family: var(--serif); font-size: clamp(3.5rem, 5.2vw, 6rem); line-height: .92; letter-spacing: -.055em; }
.promo-experience-copy > p:not(.eyebrow) { max-width: 530px; margin: 27px 0 0; color: rgba(243,238,226,.75); font-size: 1.03rem; }
.promo-steps { display: grid; gap: 0; margin: 39px 0 0; padding: 0; list-style: none; }
.promo-steps li { display: grid; grid-template-columns: 48px 1fr; gap: 16px; padding: 18px 0; border-top: 1px solid rgba(243,238,226,.19); }
.promo-steps li > span { color: var(--sand); font-family: var(--serif); font-size: .8rem; }
.promo-steps strong { display: block; margin-bottom: 2px; font-family: var(--headline); font-size: 1.25rem; letter-spacing: .01em; text-transform: uppercase; }
.promo-steps p { margin: 0; color: rgba(243,238,226,.62); font-size: .88rem; }

.promo-final-cta { padding: clamp(78px, 11vw, 145px) 0; text-align: center; color: var(--ivory); background: var(--burgundy); }
.promo-final-cta .eyebrow { color: var(--sand); }
.promo-final-cta h2 { max-width: 900px; margin: 12px auto 38px; font-family: var(--headline); font-size: clamp(4rem, 8vw, 8.5rem); line-height: .84; letter-spacing: -.05em; text-transform: uppercase; }

@media (max-width: 1080px) {
  .promotions-page .desktop-nav { gap: 18px; }
  .promo-hero-grid { grid-template-columns: minmax(0, 1fr) 330px; gap: 35px; }
  .promo-price-card { padding: 32px; }
  .promo-window-card { min-height: 390px; }
  .promo-experience { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 900px) {
  .promo-hero { min-height: auto; }
  .promo-hero-photo { left: 38%; }
  .promo-hero-grid { grid-template-columns: 1fr; padding-top: 155px; padding-bottom: 72px; }
  .promo-hero-copy { max-width: 690px; }
  .promo-price-card { width: min(100%, 470px); margin: 25px 0 0; }
  .promo-price-card::before { display: none; }
  .promo-window-grid { grid-template-columns: 1fr; gap: 12px; }
  .promo-window-card { min-height: 330px; }
  .promo-window-featured { transform: none; }
  .promo-artwork-grid { grid-template-columns: 1fr; gap: 50px; }
  .promo-artwork-copy { max-width: 680px; }
  .promo-artwork-frame { width: min(100%, 580px); justify-self: center; }
}

@media (max-width: 760px) {
  .promo-hero-photo { left: 0; opacity: .55; }
  .promo-hero-shade { background: linear-gradient(180deg, rgba(25,4,9,.78), rgba(37,5,14,.98) 58%, rgba(28,4,10,1)); }
  .promo-hero-grid { padding-top: 130px; padding-bottom: 64px; }
  .promo-hero h1 { font-size: clamp(4.5rem, 19vw, 6.6rem); }
  .promo-hero-lede { font-size: 1.14rem; }
  .promo-hero .button-row { align-items: stretch; }
  .promo-hero .btn { width: 100%; }
  .promo-text-link { justify-content: center; }
  .promo-price-card { margin-top: 13px; }
  .promo-price strong { font-size: clamp(6.5rem, 31vw, 9rem); }
  .promo-section-head { grid-template-columns: 1fr; gap: 20px; margin-bottom: 35px; }
  .promo-section-head .section-title { font-size: clamp(3.25rem, 15vw, 5.3rem); }
  .promo-window-card { min-height: 320px; }
  .promo-windows-footer { align-items: stretch; flex-direction: column; }
  .promo-windows-footer .btn { width: 100%; }
  .promo-artwork-grid { gap: 38px; }
  .promo-artwork-actions { align-items: stretch; flex-direction: column; gap: 18px; }
  .promo-artwork-actions .btn { width: 100%; }
  .promo-artwork-actions .btn-text { align-self: center; }
  .promo-artwork-frame { width: calc(100% - 10px); padding: 10px; transform: none; }
  .promo-artwork-frame::before { inset: -9px 9px 9px -9px; }
  .promo-experience { grid-template-columns: 1fr; }
  .promo-experience-image { min-height: 420px; }
  .promo-experience-copy { padding: 65px 20px; }
  .promo-experience-copy h2 { font-size: clamp(3.5rem, 15vw, 5.2rem); }
  .promo-final-cta .btn { width: 100%; }
}

@media (max-width: 430px) {
  .promo-hero h1 { font-size: clamp(4rem, 18.5vw, 5.2rem); }
  .promo-price-card { padding: 27px 22px; }
  .promo-price strong { font-size: 7.1rem; }
  .promo-currency, .promo-cents { margin-top: 12px; font-size: 2.75rem; }
  .promo-window-card { padding: 25px 22px; }
  .promo-experience-image { min-height: 340px; }
}

/* Search-focused editorial sections */
.seo-intro { padding-block: clamp(72px, 9vw, 120px); }
.seo-intro-grid { display: grid; grid-template-columns: minmax(0, .82fr) minmax(0, 1fr); gap: clamp(45px, 9vw, 130px); align-items: start; }
.seo-intro .section-title { margin-top: 12px; font-size: clamp(3.5rem, 6vw, 6.2rem); }
.seo-intro-copy { max-width: 650px; color: var(--muted); font-size: 1.05rem; }
.seo-intro-copy p { margin: 0 0 18px; }
.seo-intro-copy a,
.faq-card a { color: var(--burgundy); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.promo-faq { padding-block: clamp(75px, 10vw, 135px); }
.faq-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.faq-card { padding: clamp(27px, 4vw, 44px); border: 1px solid var(--line); background: var(--ivory); }
.faq-card h3 { margin: 0 0 15px; color: var(--burgundy); font-family: var(--serif); font-size: clamp(1.45rem, 2.2vw, 2rem); line-height: 1.15; }
.faq-card p { margin: 0; color: var(--muted); }

@media (max-width: 760px) {
  .seo-intro-grid,
  .faq-grid { grid-template-columns: 1fr; }
  .seo-intro-grid { gap: 25px; }
}
