/* ============================================================
   Mr. Pickwick - v4 · dark & gold (inspired by le71.ch)
   ============================================================ */

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --bg:        #ffffff;
  --bg-1:      #faf6f2;
  --bg-2:      #f4ebe2;
  --bg-soft:   #fbf6f0;
  --ink:       #2a1408;
  --ink-dim:   #6b4a35;
  --muted:     #9a8472;
  --line:      rgba(90, 8, 9,0.14);
  --line-d:    rgba(90, 8, 9,0.28);

  --gold:      #5A0809;
  --gold-2:    #7a3e15;
  --gold-soft: rgba(90, 8, 9,0.07);

  --burgundy:  #5A0809;
  --bordeaux:  #5A0809;
  --green:     #305F26;
  --green-2:   #244719;

  /* Guinness palette accents */
  --g-black:   #0b0b0b;
  --g-green:   #1e6b3a;
  --g-green-d: #14512b;
  --g-cream:   #d9b66a;
  --g-cream-l: #e9cf94;

  --script:    'Poppins', system-ui, sans-serif;
  --serif:     'Poppins', system-ui, sans-serif;
  --sans:      'Poppins', system-ui, -apple-system, Segoe UI, sans-serif;

  --r-sm: 6px;
  --r:    10px;
  --r-lg: 16px;
  --nav-h: 76px;
  --nav-h-scrolled: 64px;

  --wrap:    1200px;
  --wrap-w:  1480px;
}

html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  font-family: var(--sans); font-weight: 300;
  background: var(--bg); color: var(--ink);
  font-size: 16px; line-height: 1.7;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
img, video { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; background: none; border: 0; cursor: pointer; }
::selection { background: var(--gold); color: var(--bg); }

.wrap      { max-width: var(--wrap);   margin: 0 auto; padding: 0 22px; }
.wrap-wide { max-width: var(--wrap-w); margin: 0 auto; padding: 0 22px; }

/* ─── Typography system ─── */
.eyebrow {
  font-size: 11px; font-weight: 500;
  letter-spacing: 0.28em; text-transform: uppercase;
  color: var(--ink-dim);
  display: inline-flex; align-items: center; gap: 12px;
  margin-bottom: 12px;
}
.eyebrow::before, .eyebrow::after {
  content: ''; width: 24px; height: 1px;
  background: var(--gold);
}
.eyebrow::after { display: none; }
.eyebrow.gold { color: var(--gold); }
.eyebrow.gold::before { background: var(--gold); }
.eyebrow.green { color: var(--green); }
.eyebrow.green::before { background: var(--green); }

.h-display {
  font-family: var(--sans); font-weight: 700;
  font-size: clamp(30px, 5vw, 48px);
  line-height: 1.1; letter-spacing: -0.015em;
  color: var(--ink);
  max-width: 20ch;
}
.h-display.light { color: var(--ink); }

.h-lead {
  font-size: 16px; color: var(--ink-dim);
  max-width: 60ch; margin-top: 18px; line-height: 1.7;
}
.h-lead.light { color: var(--ink-dim); }

.h-dates {
  font-size: 13px; color: var(--gold);
  letter-spacing: 0.16em; text-transform: uppercase;
  margin-top: 8px;
}

/* ─── Buttons ─── */
button.btn { -webkit-appearance: none; appearance: none; background: transparent; border: 0; cursor: pointer; font: inherit; }
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  padding: 14px 26px; min-height: 48px;
  font-family: var(--sans); font-size: 12px; font-weight: 600;
  letter-spacing: 0.22em; text-transform: uppercase;
  transition: all 0.3s ease;
  border-radius: 999px;
}
.btn-gold {
  background: var(--gold); color: #fff;
  border: 1px solid var(--gold);
}
.btn-gold:hover { background: #fff; color: var(--gold); }
.btn-gold-outline {
  background: transparent; color: var(--gold);
  border: 1px solid var(--gold);
}
.btn-gold-outline:hover { background: var(--gold); color: #fff; }
.btn-white {
  background: #fff;
  color: var(--ink);
  border: 1px solid #fff;
}
.btn-white:hover { background: var(--g-cream, #f3e9c8); color: var(--ink); border-color: var(--g-cream, #f3e9c8); }
.btn-line {
  background: transparent; color: #fff;
  border: 1px solid rgba(255,255,255,0.7);
}
.btn-line:hover { background: #fff; color: var(--ink); border-color: #fff; }
.btn-line-light {
  background: transparent; color: var(--ink);
  border: 1px solid var(--line-d);
}
.btn-line-light:hover { border-color: var(--gold); color: var(--gold); }
.btn-text-gold {
  font-size: 12px; font-weight: 600;
  letter-spacing: 0.22em; text-transform: uppercase;
  color: var(--gold);
  padding: 0; min-height: 0;
  border-bottom: 1px solid var(--gold);
  padding-bottom: 4px;
}
.btn-text-gold:hover { color: var(--ink); border-color: var(--ink); }

/* ─── Nav ─── */
.nav {
  position: fixed; top: 0; left: 0; right: 0; z-index: 100;
  border-bottom: 0;
  transition: border-color 0.35s, box-shadow 0.35s;
}
/* Blur lives on .nav::before so dropdown menus can escape the header stacking context */
.nav::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(20,10,4,0.55) 0%, rgba(20,10,4,0) 100%);
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
  pointer-events: none;
  z-index: -1;
  transition: background 0.35s, backdrop-filter 0.35s, -webkit-backdrop-filter 0.35s;
}
.nav-row {
  position: relative;
  height: var(--nav-h);
  max-width: var(--wrap-w); margin: 0 auto; padding: 0 16px;
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 8px;
  transition: height 0.45s ease;
}
.nav.is-scrolled {
  border-bottom: 1px solid rgba(255,255,255,0.08);
  box-shadow: 0 6px 20px -10px rgba(0,0,0,0.4);
}
.nav.is-scrolled::before {
  background: rgba(20,10,4,0.88);
  backdrop-filter: blur(16px) saturate(160%);
  -webkit-backdrop-filter: blur(16px) saturate(160%);
}
.nav:has(.nav-drawer.is-open) { z-index: 10000; height: 100%; }
.nav:has(.nav-drawer.is-open)::before {
  background: var(--bg-1);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
.nav .nav-link {
  color: rgba(255,255,255,0.92);
  transition: color 0.45s ease, letter-spacing 0.45s ease, opacity 0.45s ease;
}
.nav .nav-link:hover,
.nav .nav-link.is-active { color: #fff; }
.nav .nav-link::after { background: #fff; transition: width 0.3s ease, background 0.45s ease; }
.nav .nav-burger span { background: #fff; transition: background 0.45s ease; }
.nav-cta-inline {
  background: rgba(255,255,255,0.14) !important;
  color: #fff !important;
  border: 1px solid rgba(255,255,255,0.32);
  transition: background 0.45s ease, color 0.45s ease, border-color 0.45s ease, transform 0.25s ease;
}
.nav-cta-inline:hover { background: #fff !important; color: var(--ink) !important; }

/* Scrolled: dark backdrop + gold accents instead of pure white */
.nav.is-scrolled .nav-link {
  color: rgba(255,255,255,0.78);
  letter-spacing: 0.16em;
}
.nav.is-scrolled .nav-link:hover,
.nav.is-scrolled .nav-link.is-active { color: var(--gold); }
.nav.is-scrolled .nav-link::after { background: var(--gold); }
.nav.is-scrolled .nav-cta-inline {
  background: var(--gold) !important;
  color: #fff !important;
  border-color: var(--gold);
}
.nav.is-scrolled .nav-cta-inline:hover {
  background: #fff !important;
  color: var(--gold) !important;
}
.nav .brand-logo { transition: height 0.45s ease, filter 0.45s ease, opacity 0.45s ease; }
.nav.is-scrolled .nav-row { height: var(--nav-h-scrolled); }
.brand {
  display: flex; align-items: center; justify-content: center;
  height: 100%;
  grid-column: 2;
  padding: 14px 0;
  transition: padding 0.45s ease;
  min-width: 0;
}
.nav.is-scrolled .brand { padding: 0; }
.brand-logo {
  height: 56px; width: auto; display: block;
  object-fit: contain;
  max-width: 100%;
}
.nav.is-scrolled .brand-logo { height: 46px; }

@media (min-width: 1024px) {
  .nav-row {
    grid-template-columns: 1fr auto 1fr;
    gap: 24px;
    padding: 0 22px;
  }
  .brand { padding: 18px 0; }
  .brand-logo { height: 100px; }
  .nav.is-scrolled .brand-logo { height: 68px; }
}

.nav-links {
  display: none;
  align-items: center;
  gap: 4px;
}
.nav-links.nav-left  { justify-content: flex-end; order: 0; }
.nav-links.nav-right { justify-content: flex-start; order: 2; }
.nav-link {
  padding: 10px 18px;
  font-size: 15px; font-weight: 500;
  letter-spacing: 0.06em;
  color: var(--ink);
  transition: color 0.25s;
  position: relative;
}
.nav-link::after {
  content: ''; position: absolute;
  left: 18px; right: 18px; bottom: 4px;
  height: 1.5px; background: var(--gold);
  transform: scaleX(0);
  transform-origin: center;
  opacity: 0;
  transition: transform 0.55s cubic-bezier(.22,.85,.32,1),
              opacity 0.35s ease,
              background 0.45s ease;
}
.nav-link:hover, .nav-link.is-active, .nav-link.active { color: var(--gold); }
.nav-link:hover::after,
.nav-link.is-active::after,
.nav-link.active::after {
  transform: scaleX(1);
  opacity: 1;
}

.nav-cta {
  display: none;
  padding: 13px 28px;
  background: var(--gold); color: #fff;
  font-size: 13px; font-weight: 600;
  letter-spacing: 0.16em; text-transform: uppercase;
  transition: all 0.25s;
}
.nav-cta:hover { background: var(--ink); }

/* ─── Burger (mobile only) ─── */
.nav-burger {
  -webkit-appearance: none; appearance: none;
  background: transparent; border: 0; cursor: pointer;
  width: 44px; height: 44px;
  display: grid; place-items: center;
  grid-column: 1;
  justify-self: start;
  padding: 0;
  z-index: 102;
  position: relative;
}
.nav-burger span {
  display: block; width: 24px; height: 2px;
  background: #fff;
  margin: 3px 0;
  border-radius: 2px;
  transition: transform 0.3s ease, opacity 0.2s ease, background 0.3s ease;
}
.nav.is-scrolled .nav-burger span,
body[data-page="gallery"]  .nav .nav-burger span,
body[data-page="events"]   .nav .nav-burger span,
body[data-page="events-week"] .nav .nav-burger span,
body[data-page="bookings"] .nav .nav-burger span,
body[data-page="sports"]   .nav .nav-burger span,
body[data-page="food"]     .nav .nav-burger span,
body[data-page="drinks"]   .nav .nav-burger span { background: var(--g-cream, #f3e9c8); }
body[data-page="gallery"]  .nav .nav-tel,
body[data-page="events"]   .nav .nav-tel,
body[data-page="events-week"] .nav .nav-tel,
body[data-page="bookings"] .nav .nav-tel,
body[data-page="sports"]   .nav .nav-tel,
body[data-page="food"]     .nav .nav-tel,
body[data-page="drinks"]   .nav .nav-tel { color: var(--g-cream, #f3e9c8); }
.nav-burger.is-open span { background: var(--ink); }
.nav-burger.is-open span:nth-child(1) { transform: translateY(8px) rotate(45deg); }
.nav-burger.is-open span:nth-child(2) { opacity: 0; transform: scaleX(0); }
.nav-burger.is-open span:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }

/* ─── Telephone icon (mobile right) ─── */
.nav-tel {
  display: grid; place-items: center;
  width: 44px; height: 44px;
  grid-column: 3;
  justify-self: end;
  color: #fff;
  border-radius: 999px;
  transition: color 0.3s ease, background 0.3s ease;
}
.nav.is-scrolled .nav-tel { color: var(--g-cream, #f3e9c8); }
.nav-tel:hover { color: var(--gold); }

/* ─── Mobile drawer ─── */
.nav-backdrop {
  position: fixed; inset: 0;
  background: rgba(0,0,0,0.55);
  opacity: 0; visibility: hidden;
  transition: opacity 0.3s ease, visibility 0s linear 0.3s;
  z-index: 9998;
}
.nav-backdrop.is-open {
  opacity: 1; visibility: visible;
  transition: opacity 0.3s ease, visibility 0s linear 0s;
}

.nav-drawer {
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100%;
  background: var(--bg-1);
  color: var(--ink);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.32s ease, visibility 0s linear 0.32s;
  z-index: 9999;
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  padding-top: env(safe-area-inset-top);
}
.nav-drawer.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transition: opacity 0.32s ease, visibility 0s linear 0s;
}
.nav-drawer.is-open .drawer-stage {
  animation: pwDrawerRise 0.45s cubic-bezier(.2,.8,.2,1) both;
}
.drawer-close {
  position: fixed;
  top: calc(env(safe-area-inset-top, 0px) + 10px);
  right: 14px;
  z-index: 10001;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 1px solid var(--line);
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.92);
  color: var(--ink);
  font-size: 28px;
  line-height: 1;
  cursor: pointer;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}
.drawer-close span {
  display: block;
  margin-top: -2px;
}
.drawer-close:hover,
.drawer-close:focus-visible {
  background: var(--ink);
  color: #fff;
  border-color: var(--ink);
  transform: scale(1.04);
}
.drawer-close:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: 2px;
}
@keyframes pwDrawerRise {
  from { opacity: 0; transform: translateY(8px); }
  to   { opacity: 1; transform: translateY(0); }
}
.drawer-stage {
  position: relative;
  width: 100%;
  min-height: 100%;
  overflow: hidden;
}
.drawer-panel {
  position: absolute;
  inset: 0;
  width: 100%;
  min-height: 100%;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  transform: translateX(100%);
  visibility: hidden;
  transition: transform 0.35s cubic-bezier(.65,.05,.36,1), visibility 0s linear 0.35s;
}
.drawer-panel[data-panel="root"] { transform: translateX(-100%); }
.drawer-panel.is-active {
  transform: translateX(0);
  visibility: visible;
  transition: transform 0.35s cubic-bezier(.65,.05,.36,1), visibility 0s linear 0s;
  position: relative;
}
.drawer-stage[data-active-panel="root"] .drawer-panel[data-panel="root"] {
  position: relative;
  transform: translateX(0);
  visibility: visible;
}
.drawer-inner {
  display: flex; flex-direction: column;
  align-items: center;
  text-align: center;
  width: 100%;
  max-width: 420px;
  margin: 0 auto;
  padding: 24px 40px;
  gap: 0;
}
.drawer-link--has-sub {
  background: transparent;
  border: 0;
  border-bottom: 1px solid var(--line);
  cursor: pointer;
  font: inherit;
  font-family: var(--sans);
  font-weight: 500;
  font-size: 18px;
  letter-spacing: 0.02em;
  padding: 14px 4px;
  color: var(--ink);
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  position: relative;
  -webkit-appearance: none;
  appearance: none;
}
.drawer-link--has-sub:hover { color: var(--gold); }
.drawer-link-chev {
  position: absolute;
  right: 4px;
  font-size: 22px;
  font-weight: 300;
  line-height: 1;
  color: var(--muted);
}
.drawer-back {
  align-self: flex-start;
  background: transparent;
  border: 0;
  cursor: pointer;
  font-family: var(--sans);
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--gold);
  padding: 8px 4px 16px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  -webkit-appearance: none;
  appearance: none;
}
.drawer-back-chev { font-size: 22px; line-height: 1; font-weight: 300; }
.drawer-sub-title {
  font-family: var(--serif, var(--sans));
  font-size: 22px;
  font-weight: 700;
  letter-spacing: 0.04em;
  margin: 0 0 12px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--line);
  width: 100%;
  text-align: center;
}
.drawer-brand {
  display: block;
  margin-bottom: 8px;
  border-bottom: none !important;
  padding: 0 4px 16px !important;
}
.drawer-brand .brand-logo {
  height: 120px;
  width: auto;
  display: block;
  margin: 0 auto;
}
.nav-drawer a,
.nav-drawer summary {
  font-family: var(--sans);
  font-weight: 500;
  font-size: 18px;
  letter-spacing: 0.02em;
  padding: 14px 4px;
  border-bottom: 1px solid var(--line);
  color: var(--ink);
  display: block;
  width: 100%;
  text-decoration: none;
}
.nav-drawer a:hover,
.nav-drawer a:focus-visible { color: var(--gold); }

.nav-drawer .drawer-cta {
  margin-top: 24px;
  width: 100%;
  max-width: 280px;
  background: var(--bordeaux);
  color: #fff !important;
  font-weight: 700;
  font-size: 13px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  padding: 16px 18px;
  border: 0;
  border-radius: 999px;
  text-align: center;
  cursor: pointer;
  font-family: inherit;
  -webkit-appearance: none;
  appearance: none;
}
.nav-drawer .drawer-cta:hover { background: var(--ink); color: #fff !important; }

.drawer-foot {
  margin-top: 15px;
  font-size: 13px;
  color: var(--muted);
  line-height: 1.6;
  width: 100%;
}
.drawer-foot a { font-size: 13px; padding: 4px 0; border: 0; color: var(--gold); }
.drawer-foot a:hover { color: var(--ink); }

body.no-scroll { overflow: hidden; }
body.no-scroll .rch-fab {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.2s ease, visibility 0.2s ease;
}
.rch-fab {
  position: relative;
  border-radius: 999px;
}
.rch-fab::before,
.rch-fab::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
  box-shadow: 0 0 0 0 rgba(199, 32, 48, 0);
  animation: rchFabRipple 5s cubic-bezier(0.22, 1, 0.36, 1) infinite;
  z-index: -1;
}
.rch-fab::after {
  animation-delay: 0.6s;
}
@keyframes rchFabRipple {
  0% {
    box-shadow: 0 0 0 0 rgba(199, 32, 48, 0.65);
    opacity: 1;
  }
  30% {
    box-shadow: 0 0 0 24px rgba(199, 32, 48, 0);
    opacity: 0;
  }
  100% {
    box-shadow: 0 0 0 24px rgba(199, 32, 48, 0);
    opacity: 0;
  }
}

/* ─── Hero ─── */
.hero {
  position: relative;
  width: 100vw; height: 100svh; min-height: 580px;
  overflow: hidden; background: #000;
}
.hero-video {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  filter: brightness(0.5) saturate(0.85);
}
.hero-veil {
  position: absolute; inset: 0;
  background:
    linear-gradient(180deg, rgba(42,20,8,0.35) 0%, rgba(42,20,8,0.2) 35%, rgba(255,255,255,0.95) 100%),
    radial-gradient(ellipse at center, transparent 0%, rgba(42,20,8,0.25) 100%);
}
.hero-content {
  position: relative; z-index: 2;
  height: 100%;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  text-align: center;
  padding: var(--nav-h) 22px 100px;
}
.hero-logo {
  display: block;
  width: 100%;
  max-width: min(720px, 88vw);
  margin: 0 auto;
  filter: drop-shadow(0 14px 40px rgba(42,20,8,0.45));
  animation: heroLogoIn 1.1s cubic-bezier(.2,.7,.2,1) both;
}
.hero-logo img {
  width: 100%; height: auto; display: block;
}
@keyframes heroLogoIn {
  from { opacity: 0; transform: translateY(14px) scale(0.97); }
  to   { opacity: 1; transform: none; }
}
.hero-lead {
  margin-top: 24px;
  font-size: 15px; color: #f5e6d8;
  max-width: 42ch;
  letter-spacing: 0.02em;
  text-shadow: 0 2px 12px rgba(0,0,0,0.4);
}
.hero-ctas {
  margin-top: 36px;
  display: flex; flex-wrap: wrap; justify-content: center; gap: 14px;
}
.hero-scroll {
  position: absolute; bottom: 28px; left: 50%; transform: translateX(-50%);
  z-index: 2;
  width: 24px; height: 40px;
  border: 1px solid var(--gold);
  border-radius: 12px;
  display: grid; place-items: flex-start; padding-top: 6px;
  justify-items: center;
}
.hero-scroll span {
  display: block;
  width: 2px; height: 8px;
  background: var(--gold);
  border-radius: 1px;
  animation: scroll-dot 1.8s ease infinite;
}
@keyframes scroll-dot { 0% { transform: translateY(0); opacity: 1; } 80% { transform: translateY(16px); opacity: 0; } 100% { opacity: 0; } }

/* ─── HERO SLIDE (4 random photos, after hero video) ─── */
.hero-slide {
  background: var(--bg);
  padding: 56px 0 64px;
  position: relative;
  border-bottom: 1px solid var(--line);
}
.hero-slide__inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 16px;
}
.hero-slide__stage {
  position: relative;
  aspect-ratio: 16 / 9;
  max-height: 72vh;
  overflow: hidden;
  background: var(--bg-1);
  box-shadow:
    0 24px 48px rgba(0,0,0,0.35),
    0 4px 14px rgba(0,0,0,0.25);
}
@media (max-width: 720px) {
  .hero-slide { padding: 36px 0 44px; }
  .hero-slide__stage { aspect-ratio: 4 / 5; max-height: none; }
}

.hero-slide__item {
  position: absolute; inset: 0;
  opacity: 0;
  transform: scale(1.04);
  transition: opacity 1.1s ease, transform 6s ease;
  pointer-events: none;
  display: block;
}
.hero-slide__item.is-active {
  opacity: 1;
  transform: scale(1);
  pointer-events: auto;
  z-index: 1;
}
.hero-slide__item img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  filter: brightness(0.92) saturate(0.95);
}

.hero-slide__caption {
  position: absolute;
  left: 0; right: 0; bottom: 0;
  padding: 64px 28px 22px;
  font-family: var(--sans);
  font-size: 14px; font-weight: 500;
  letter-spacing: 0.16em; text-transform: uppercase;
  color: #fff;
  background: linear-gradient(180deg, transparent 0%, rgba(13,13,13,0.85) 100%);
  text-align: center;
}
@media (min-width: 720px) {
  .hero-slide__caption { font-size: 16px; padding: 80px 32px 28px; }
}

/* Prev / next */
.hero-slide__nav {
  position: absolute; top: 50%;
  transform: translateY(-50%);
  z-index: 3;
  width: 44px; height: 44px;
  display: inline-flex; align-items: center; justify-content: center;
  background: rgba(13,13,13,0.55);
  color: #fff;
  border: 1px solid rgba(255,255,255,0.25);
  cursor: pointer;
  transition: background 0.25s, border-color 0.25s, transform 0.25s;
}
.hero-slide__nav:hover {
  background: var(--gold);
  color: var(--ink);
  border-color: var(--gold);
}
.hero-slide__nav--prev { left: 14px; }
.hero-slide__nav--next { right: 14px; }
@media (min-width: 720px) {
  .hero-slide__nav { width: 52px; height: 52px; }
  .hero-slide__nav--prev { left: 22px; }
  .hero-slide__nav--next { right: 22px; }
}

/* Dots */
.hero-slide__dots {
  position: absolute; left: 0; right: 0; bottom: 14px;
  z-index: 3;
  display: flex; justify-content: center; gap: 10px;
}
.hero-slide__dot {
  width: 28px; height: 3px;
  background: rgba(255,255,255,0.35);
  border: 0; padding: 0; cursor: pointer;
  transition: background 0.3s, width 0.3s;
}
.hero-slide__dot.is-active {
  background: var(--gold);
  width: 44px;
}

/* ─── POLAROID STRIP ─── */
.polaroid-strip {
  background: linear-gradient(180deg, var(--bg) 0%, var(--bg-1) 100%);
  padding: 56px 0;
  overflow: hidden;
  position: relative;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.polaroid-strip::before,
.polaroid-strip::after {
  content: '';
  position: absolute; top: 0; bottom: 0;
  width: 120px; z-index: 2; pointer-events: none;
}
.polaroid-strip::before { left: 0;  background: linear-gradient(90deg, var(--bg) 0%, transparent 100%); }
.polaroid-strip::after  { right: 0; background: linear-gradient(-90deg, var(--bg) 0%, transparent 100%); }

.polaroid-track {
  display: flex;
  gap: 32px;
  width: max-content;
  padding: 24px 32px;
  animation: polaroidScroll 80s linear infinite;
}
.polaroid-strip:hover .polaroid-track { animation-play-state: paused; }

@keyframes polaroidScroll {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}

.polaroid {
  flex: 0 0 auto;
  display: block;
  text-decoration: none;
  background: #fdf9f2;
  padding: 14px 14px 44px;
  box-shadow:
    0 14px 28px rgba(42,20,8,0.18),
    0 4px 10px rgba(42,20,8,0.12);
  transform: rotate(var(--rot, 0deg));
  transition: transform 0.5s cubic-bezier(.2,.8,.2,1), box-shadow 0.4s;
  cursor: pointer;
  position: relative;
}
.polaroid::before {
  content: '';
  position: absolute; top: -8px; left: 50%; transform: translateX(-50%);
  width: 80px; height: 18px;
  background: rgba(212,183,143,0.45);
  border: 1px dashed rgba(90, 8, 9,0.15);
  border-radius: 1px;
}
.polaroid:hover {
  transform: rotate(0deg) scale(1.08) translateY(-6px);
  box-shadow:
    0 24px 48px rgba(42,20,8,0.28),
    0 8px 20px rgba(42,20,8,0.18);
  z-index: 5;
}
.polaroid-img {
  width: 200px; height: 200px;
  overflow: hidden;
  background: var(--ink);
}
.polaroid-img img {
  width: 100%; height: 100%; object-fit: cover;
  filter: saturate(0.85) contrast(1.05);
  transition: filter 0.4s;
}
.polaroid:hover .polaroid-img img { filter: saturate(1.05) contrast(1.1); }
.polaroid-caption {
  position: absolute; bottom: 12px; left: 14px; right: 14px;
  text-align: center;
  font-family: var(--sans); font-weight: 500;
  font-size: 13px; letter-spacing: 0.04em;
  color: var(--ink);
  font-style: italic;
}

@media (min-width: 720px) {
  .polaroid-img { width: 240px; height: 240px; }
}
@media (min-width: 1024px) {
  .polaroid-img { width: 280px; height: 280px; }
  .polaroid-strip { padding: 80px 0; }
  .polaroid-track { gap: 40px; }
}

@media (prefers-reduced-motion: reduce) {
  .polaroid-track { animation: none; }
}

/* ─── Sections base ─── */
section { padding: 72px 0; position: relative; }
section + section { border-top: 1px solid var(--line); }

/* ─── ABOUT ─── */
.about-grid {
  display: grid; grid-template-columns: 1fr; gap: 32px;
}
@media (max-width: 919px) {
  .about-grid > div { text-align: center; }
  .about-grid .about-body { margin-left: auto; margin-right: auto; }
}
.about-body {
  font-size: 16px; color: var(--ink-dim);
  max-width: 56ch; line-height: 1.8;
}
.about-stats {
  margin-top: 36px;
  display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px 24px;
  padding-top: 32px; border-top: 1px solid var(--line);
}
.about-stats > div { display: flex; flex-direction: column; }
.about-stats strong {
  font-family: var(--sans); font-weight: 700;
  font-size: clamp(40px, 7vw, 56px); line-height: 1;
  letter-spacing: -0.03em;
  color: var(--gold);
}
.about-stats span {
  margin-top: 6px; font-size: 10px; font-weight: 500;
  letter-spacing: 0.22em; text-transform: uppercase;
  color: var(--ink-dim);
}

/* ─── STORY (with beer) ─── */
.story { background: var(--bg); }
.story-grid {
  display: grid; grid-template-columns: 1fr; gap: 48px;
  align-items: center;
}
.story-text { max-width: 56ch; }
@media (max-width: 919px) {
  .story-text { margin-left: auto; margin-right: auto; text-align: center; }
  .story-text .story-meta { justify-items: center; }
  .story-text .story-nav { justify-content: center; }
}
.story h2.h-display em { color: var(--green); font-style: italic; }
.story-body {
  margin-top: 24px;
  font-size: 17px; line-height: 1.75; color: var(--ink-dim);
}
.story-meta {
  margin-top: 32px;
  display: grid; grid-template-columns: 1fr 1fr; gap: 18px;
  padding-top: 28px; border-top: 1px solid var(--line);
}
.story-meta strong {
  display: block;
  font-weight: 700; font-size: clamp(32px, 5vw, 44px);
  color: var(--gold); letter-spacing: -0.025em; line-height: 1;
}
.story-meta span {
  display: block; margin-top: 6px;
  font-size: 11px; font-weight: 500;
  letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--muted);
}

/* Beer SVG animation */
.story-beer {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  padding: 24px 0;
  color: var(--ink);
}
.beer-svg {
  width: 240px; height: auto;
  filter: drop-shadow(0 22px 30px rgba(42,20,8,0.22));
}

/* Pouring stream (visible during phase 1) */
.pour-stream {
  transform-origin: 150px 30px;
  opacity: 0;
}
.pour-drop  { opacity: 0; }
.story-beer.in-view .pour-stream {
  animation:
    pourIn 0.35s ease-out forwards,
    pourOut 0.4s 2.4s ease-in forwards;
}
.story-beer.in-view .pour-drop.d1 { animation: dropFall 1.2s 0.2s ease-in infinite; }
.story-beer.in-view .pour-drop.d2 { animation: dropFall 1.2s 0.7s ease-in infinite; }
@keyframes pourIn  { from { opacity: 0; transform: scaleY(0); } to { opacity: 1; transform: scaleY(1); } }
@keyframes pourOut { from { opacity: 1; transform: scaleY(1); } to { opacity: 0; transform: scaleY(0); } }
@keyframes dropFall {
  0%   { opacity: 0; transform: translateY(-20px); }
  20%  { opacity: 1; }
  100% { opacity: 0; transform: translateY(110px); }
}

/* Liquid fills using transform (cross-browser SVG safe) */
.beer-liquid-rect {
  transform-origin: 150px 320px;  /* anchor at bottom-middle */
  transform: scaleY(0);
}
.story-beer.in-view .beer-liquid-rect {
  animation: beerFill 2.2s 0.4s cubic-bezier(.22,.85,.32,1) forwards;
}
@keyframes beerFill {
  from { transform: scaleY(0); }
  to   { transform: scaleY(1); }
}

/* Bubbles rise during the fill + after */
.b-bub { opacity: 0; }
.story-beer.in-view .b-bub { animation: bubbleRise 3.4s ease-in infinite; }
.story-beer.in-view .b-bub.b1 { animation-delay: 1.2s; }
.story-beer.in-view .b-bub.b2 { animation-delay: 1.8s; }
.story-beer.in-view .b-bub.b3 { animation-delay: 0.9s; }
.story-beer.in-view .b-bub.b4 { animation-delay: 2.5s; }
.story-beer.in-view .b-bub.b5 { animation-delay: 3.0s; }
.story-beer.in-view .b-bub.b6 { animation-delay: 1.5s; }
@keyframes bubbleRise {
  0%   { transform: translateY(0)    scale(0.6); opacity: 0; }
  15%  { opacity: 1; }
  80%  { opacity: 0.9; }
  100% { transform: translateY(-170px) scale(1.2); opacity: 0; }
}

/* Foam appears once the glass is full */
.foam { opacity: 0; transform: translateY(20px); }
.story-beer.in-view .foam {
  animation: foamIn 0.7s 2.6s ease-out forwards;
}
@keyframes foamIn {
  to { opacity: 1; transform: translateY(0); }
}

.beer-label {
  margin-top: 24px;
  font-family: var(--sans); font-weight: 700; font-style: italic;
  font-size: 26px; color: var(--green);
  letter-spacing: -0.01em;
  opacity: 0;
}
.story-beer.in-view .beer-label {
  animation: labelIn 0.6s 3.4s ease-out forwards;
}
@keyframes labelIn {
  from { opacity: 0; transform: translateY(10px); }
  to   { opacity: 1; transform: none; }
}

@media (min-width: 720px) {
  .story-grid { grid-template-columns: 1.3fr 1fr; gap: 64px; }
  .beer-svg { width: 280px; }
}
@media (prefers-reduced-motion: reduce) {
  .beer-liquid-rect { transform: scaleY(1); }
  .foam { opacity: 1; transform: none; }
  .beer-label { opacity: 1; }
}

/* ─── WEEKLY ─── */
.weekly { background: white; }
.weekly-head {
  text-align: center;
  max-width: 760px;
  margin: 0 auto 36px;
}
.weekly-head .eyebrow {
  display: inline-flex;
}
.weekly-head .eyebrow::after {
  display: block;
}
.weekly-head .h-display {
  max-width: 100%;
  margin-left: auto;
  margin-right: auto;
}
.weekly-grid {
  margin-top: 36px;
  display: grid; grid-template-columns: 1fr; gap: 14px;
}
.day-card {
  background: linear-gradient(145deg, var(--bg-2) 0%, var(--bg-1) 100%);
  border: 1px solid var(--line);
  padding: 22px 22px;
  border-radius: var(--r);
  transition: border-color 0.3s, transform 0.3s;
}
.day-card:hover { border-color: var(--gold); transform: translateY(-3px); }
.day-name {
  font-family: var(--sans); font-weight: 600;
  font-size: 14px; letter-spacing: 0.22em; text-transform: uppercase;
  color: var(--green);
  line-height: 1; margin-bottom: 16px;
  text-align: center;
}
.day-dishes {
  list-style: none;
  font-family: var(--sans); font-weight: 400; font-size: 15px;
  color: var(--ink); line-height: 1.5;
}
.day-dishes li { padding: 4px 0; text-align: center; }
.day-dishes { text-align: center; list-style: none; padding-left: 0; }
.weekly-cta {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px 16px;
  margin-top: 32px;
}
.weekly-intro {
  margin: 16px auto 0;
  max-width: 52ch;
  font-size: 16px;
  line-height: 1.55;
  color: var(--muted);
}
.weekly-note {
  margin: 28px auto 0;
  max-width: 52ch;
  text-align: center;
  font-family: var(--serif);
  font-size: 17px;
  font-style: italic;
  line-height: 1.5;
  color: var(--gold);
}
.weekly--page { padding-bottom: 48px; }
.day-dishes .day-dish { padding-bottom: 0; }
.day-dishes .day-price {
  font-size: 14px;
  font-weight: 600;
  color: var(--gold);
  padding: 4px 0 10px;
  text-align: center;
}
.day-dishes .day-or {
  font-family: var(--sans); font-style: normal;
  font-size: 10px; letter-spacing: 0.2em; text-transform: uppercase;
  color: var(--muted); padding: 6px 0;
}

/* ─── SIGNATURES ─── */
.signatures-head {
  text-align: center;
  max-width: 760px;
  margin: 0 auto 36px;
}
.signatures-head .eyebrow {
  display: inline-flex;
}
.signatures-head .eyebrow::after {
  display: block;
}
.signatures-head .h-display,
.signatures-head .h-lead {
  max-width: 100%;
  margin-left: auto;
  margin-right: auto;
}
.signatures-head .h-lead {
  margin-top: 16px;
}
.sig-grid {
  margin-top: 40px;
  display: grid; grid-template-columns: 1fr; gap: 18px;
}
.sig-card {
  border: 1px solid var(--line);
  padding: 24px;
  background: var(--bg-1);
  transition: all 0.3s;
  position: relative;
}
.sig-card:hover {
  border-color: var(--gold);
  background: linear-gradient(145deg, var(--bg-2), var(--bg-1));
}
.sig-name {
  font-family: var(--sans); font-weight: 600;
  font-size: 18px; color: var(--ink);
  letter-spacing: 0.005em;
}
.sig-desc {
  margin-top: 8px;
  font-size: 14px; color: var(--ink-dim);
  line-height: 1.6;
}
.sig-price {
  margin-top: 14px;
  font-family: var(--sans); font-weight: 600;
  font-size: 18px; color: var(--gold);
}
.sig-cta { margin-top: 40px; text-align: center; }

/* ─── FULL MENU ─── */
.menu { background: var(--bg-1); }
.menu-head {
  text-align: center;
  max-width: 760px;
  margin: 0 auto 8px;
}
.menu-head .eyebrow {
  display: inline-flex;
}
.menu-head .eyebrow::after {
  display: block;
}
.menu-head .h-display,
.menu-head .h-lead {
  max-width: 100%;
  margin-left: auto;
  margin-right: auto;
}
.menu-head .h-lead {
  margin-top: 16px;
}
.menu-cards {
  position: sticky; top: var(--nav-h); z-index: 20;
  margin: 32px 0 0;
  padding: 14px 0;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
  background: rgba(250, 246, 242, 0.94);
  backdrop-filter: blur(12px);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  transition: padding 0.3s ease, gap 0.3s ease, box-shadow 0.3s ease;
}
.menu-cards-wrap { position: relative; }
.menu-cards-sentinel {
  height: 1px;
  width: 100%;
  pointer-events: none;
  visibility: hidden;
}
.menu-cards.is-stuck {
  margin-top: 0;
  padding: 6px 0 8px;
  gap: 8px;
  box-shadow: 0 6px 24px rgba(42, 20, 8, 0.1);
}
@media (min-width: 600px)  { .menu-cards.is-stuck { gap: 10px; } }
@media (min-width: 920px)  { .menu-cards.is-stuck { gap: 10px; padding: 8px 0; } }

/* Desktop: horizontal carousel - 5 cards + peek of the 6th, image blocks kept */
@media (min-width: 920px) {
  .menu-cards {
    display: flex;
    flex-wrap: nowrap;
    align-items: stretch;
    gap: 16px;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x proximity;
    scroll-padding-inline: 0;
    grid-template-columns: unset;
    scrollbar-width: none;
  }
  .menu-cards::-webkit-scrollbar { display: none; }
  .menu-card {
    flex: 0 0 calc((100% - 16px * 5) / 5.5);
    width: auto;
    min-width: 0;
    max-width: none;
    aspect-ratio: 4 / 5;
    scroll-snap-align: start;
  }
  button.menu-card,
  a.menu-card {
    aspect-ratio: 4 / 5;
    width: auto;
  }
  .menu-cards.is-stuck .menu-card {
    flex: 0 0 calc((100% - 10px * 5) / 5.5);
  }
}

.menu-card {
  position: relative;
  display: block;
  padding: 0;
  border: 2px solid transparent;
  border-radius: 14px;
  overflow: hidden;
  aspect-ratio: 4 / 5;
  cursor: pointer;
  background: #000;
  text-decoration: none;
  transition: transform 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease, height 0.3s ease, border-radius 0.3s ease;
}
.menu-cards.is-stuck .menu-card {
  aspect-ratio: unset;
  height: 52px;
  border-radius: 10px;
  border-width: 1px;
}
@media (min-width: 600px) {
  .menu-cards.is-stuck .menu-card { height: 56px; }
}
@media (min-width: 900px) {
  .menu-cards.is-stuck .menu-card { height: 60px; }
}
.menu-cards.is-stuck .menu-card:hover {
  transform: none;
  box-shadow: 0 4px 14px rgba(42, 20, 8, 0.14);
}
.menu-cards.is-stuck .menu-card.is-active {
  box-shadow: 0 0 0 1px var(--gold), 0 4px 14px rgba(42, 20, 8, 0.16);
}
.menu-cards.is-stuck .menu-card__label {
  font-size: 8px;
  letter-spacing: 0.12em;
  padding: 18px 6px 6px;
}
@media (min-width: 900px) {
  .menu-cards.is-stuck .menu-card__label {
    font-size: 9px;
    padding: 20px 8px 7px;
  }
}
.menu-cards.is-stuck .menu-card:hover .menu-card__img img,
.menu-cards.is-stuck .menu-card.is-active .menu-card__img img {
  transform: none;
}
button.menu-card,
a.menu-card {
  appearance: none;
  font: inherit;
  color: inherit;
  width: 100%;
  aspect-ratio: 4 / 2.5;
}
.menu-cards { align-items: start; }
.menu-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 28px rgba(42, 20, 8, 0.18);
}
.menu-card.is-active {
  border-color: var(--gold);
  box-shadow: 0 0 0 1px var(--gold), 0 12px 28px rgba(42, 20, 8, 0.2);
}
.menu-card__img {
  display: block;
  width: 100%; height: 100%;
}
.menu-card__img img {
  width: 100%; height: 100%;
  object-fit: cover;
  filter: brightness(0.88) saturate(0.95);
  transition: filter 0.35s, transform 0.5s;
}
.menu-card:hover .menu-card__img img,
.menu-card.is-active .menu-card__img img {
  filter: brightness(1) saturate(1.05);
  transform: scale(1.04);
}
.menu-card__label {
  position: absolute; left: 0; right: 0; bottom: 0;
  padding: 36px 10px 12px;
  text-align: center;
  font-family: var(--sans); font-weight: 600;
  font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase;
  color: #fff;
  background: linear-gradient(180deg, transparent 0%, rgba(13, 13, 13, 0.82) 100%);
  pointer-events: none;
}

/* Mobile: horizontal category chips (food + drinks on home) */
@media (max-width: 919px) {
  .menu-cards-wrap {
    margin-left: -22px;
    margin-right: -22px;
  }
  .menu-cards {
    display: flex;
    flex-wrap: nowrap;
    align-items: stretch;
    gap: 8px;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x proximity;
    scroll-padding-inline: 22px;
    padding: 10px 22px 12px;
    margin-top: 24px;
    grid-template-columns: unset;
    scrollbar-width: none;
  }
  .menu-cards::-webkit-scrollbar { display: none; }
  .menu-card {
    /* ~3 chips visible + peek of the next (scroll hint) */
    flex: 0 0 calc((100% - 16px) / 3.15);
    width: auto;
    min-width: 0;
    max-width: none;
    aspect-ratio: unset;
    height: 40px;
    border-radius: 999px;
    border-width: 1px;
    background: #fff;
    box-shadow: 0 2px 8px rgba(42, 20, 8, 0.08);
    scroll-snap-align: start;
  }
  .menu-card:hover {
    transform: none;
    box-shadow: 0 4px 12px rgba(42, 20, 8, 0.12);
  }
  .menu-card.is-active {
    background: var(--ink);
    border-color: var(--ink);
    box-shadow: 0 4px 14px rgba(42, 20, 8, 0.2);
  }
  .menu-card__img {
    display: none;
  }
  .menu-card__label {
    position: static;
    display: block;
    padding: 0 10px;
    line-height: 40px;
    font-size: 10px;
    letter-spacing: 0.12em;
    color: var(--ink);
    background: none;
    pointer-events: none;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    text-align: center;
  }
  .menu-card.is-active .menu-card__label {
    color: #fff;
  }
  button.menu-card,
  a.menu-card {
    aspect-ratio: unset;
  }
  .menu-panels {
    margin-top: 24px;
  }
}

.menu-panels { margin-top: 36px; }
.menu-panel { display: none; }
.menu-panel.is-active { display: block; animation: fadeUp .35s ease both; }

.menu-panel-card {
  display: grid;
  grid-template-columns: 1fr;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 10px 36px rgba(42, 20, 8, 0.08);
  min-width: 0;
}
.menu-panel-card.is-resizing {
  overflow: hidden;
  transition: height 0.42s cubic-bezier(0.4, 0, 0.2, 1);
}
@media (min-width: 900px) {
  .menu-panel-card {
    grid-template-columns: minmax(240px, 38%) 1fr;
    min-height: 420px;
  }
}
.menu-panel__visual {
  min-height: 200px;
  position: relative;
  overflow: hidden;
  background: var(--bg-1);
  transition:
    min-height 0.42s cubic-bezier(0.4, 0, 0.2, 1),
    height 0.42s cubic-bezier(0.4, 0, 0.2, 1);
}
.menu-panel__photo {
  display: block;
  width: 100%;
  height: 200px;
  object-fit: cover;
  object-position: center;
}
.menu-panel-card.is-resizing .menu-panel__visual {
  transition:
    min-height 0.42s cubic-bezier(0.4, 0, 0.2, 1),
    height 0.42s cubic-bezier(0.4, 0, 0.2, 1);
}
@media (min-width: 900px) {
  .menu-panel__visual {
    min-height: 100%;
  }
  .menu-panel__photo {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    min-height: 100%;
  }
  .menu-panel__visual::after {
    content: '';
    position: absolute; inset: 0;
    z-index: 1;
    background: linear-gradient(90deg, transparent 55%, #fff 100%);
    pointer-events: none;
  }
}
.menu-panel__body {
  padding: 28px 22px 32px;
  min-width: 0;
  max-width: 100%;
}
@media (min-width: 720px) {
  .menu-panel__body { padding: 36px 40px 44px; }
}
.menu-panel__title {
  font-family: var(--sans);
  font-size: clamp(28px, 4vw, 36px);
  font-weight: 700;
  color: var(--ink);
  margin: 0 0 6px;
  letter-spacing: -0.01em;
}
.menu-panel__tagline {
  font-family: 'Berkshire Swash', serif;
  font-size: clamp(20px, 2.8vw, 24px);
  color: var(--gold);
  margin: 0 0 12px;
}
.menu-panel__lead {
  font-size: 15px;
  line-height: 1.65;
  color: rgba(42, 20, 8, 0.78);
  margin: 0 0 24px;
  max-width: 62ch;
}
.menu-panel__head {
  margin-bottom: 8px;
}
.menu-items--cols {
  grid-template-columns: 1fr;
}
@media (min-width: 720px) {
  .menu-items--cols { grid-template-columns: 1fr 1fr; gap: 20px 36px; }
}

/* Legacy text tabs - kept for fallback */
.menu-tabs {
  display: none;
}
.menu-tab { display: none; }
@keyframes fadeUp { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }

.menu-items {
  list-style: none;
  display: grid; grid-template-columns: 1fr; gap: 24px;
}
.menu-item {}
.menu-item-head {
  display: flex; align-items: baseline; gap: 12px;
}
.menu-item-name {
  font-family: var(--sans); font-weight: 500;
  font-size: clamp(15px, 1.8vw, 17px);
  color: var(--ink);
  letter-spacing: 0;
}
.menu-item-name.light { color: var(--ink); }
.menu-item-dots {
  flex: 1;
  background-image: radial-gradient(circle, var(--muted) 1px, transparent 1.2px);
  background-size: 8px 8px;
  background-repeat: repeat-x;
  background-position: 0 80%;
  height: 14px;
  opacity: 0.5;
}
.menu-item-dots.light { background-image: radial-gradient(circle, var(--ink-dim) 1px, transparent 1.2px); }
.menu-item-price {
  font-family: var(--sans); font-weight: 600;
  font-size: clamp(15px, 1.8vw, 17px);
  color: var(--gold);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.menu-item-price.gold { color: var(--gold); }
.menu-item-desc {
  margin-top: 4px;
  font-size: 13px; color: var(--muted);
  line-height: 1.6;
  max-width: 70ch;
}
.menu-item-desc.light { color: var(--ink-dim); }

.menu-group--spaced { margin-top: 28px; }

/* Sub-tabs inside a section (e.g. Burgers → Classics / Originals / Veggie) */
.menu-subtabs {
  margin-top: 4px;
  min-width: 0;
  max-width: 100%;
}
.menu-subtabs__nav {
  display: flex;
  flex-wrap: nowrap;
  gap: 8px;
  margin: 0 0 30px;
  max-width: 100%;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
.menu-subtabs__panels {
  min-width: 0;
  max-width: 100%;
}
.menu-subtabs__nav::-webkit-scrollbar { display: none; }
.menu-subtabs__btn {
  flex: 0 0 auto;
  appearance: none;
  margin: 0;
  padding: 9px 16px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #fff;
  font: inherit;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ink-dim);
  cursor: pointer;
  white-space: nowrap;
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}
.menu-subtabs__btn:hover {
  color: var(--ink);
  border-color: rgba(184, 134, 11, 0.45);
}
.menu-subtabs__btn.is-active {
  background: var(--ink);
  color: #fff;
  border-color: var(--ink);
  box-shadow: 0 4px 14px rgba(42, 20, 8, 0.14);
}
.menu-subtabs__panel { display: none; }
.menu-subtabs__panel.is-active {
  display: block;
  animation: menuSubtabIn 0.32s ease both;
}
@keyframes menuSubtabIn {
  from { opacity: 0; transform: translateY(6px); }
  to { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  .menu-panel-card.is-resizing,
  .menu-panel-card.is-resizing .menu-panel__visual,
  .menu-panel__visual {
    transition: none;
  }
  .menu-subtabs__panel.is-active {
    animation: none;
  }
}

.menu-group__title {
  font-family: var(--sans);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--green);
  margin: 0 0 8px;
}
.menu-group__lead {
  margin: 0 0 16px;
  font-size: 13px;
  line-height: 1.55;
  color: var(--muted);
  max-width: 52ch;
}

/* ─── COCKTAILS / DRINKS (Guinness green section) ─── */
.cocktails {
  --drinks-bg: #336027;
  background: var(--drinks-bg);
  color: #fff;
}
.cocktails .eyebrow.gold { color: var(--g-cream); }
.cocktails .eyebrow.gold::before,
.cocktails .eyebrow.gold::after { background: var(--g-cream); }
.cocktails .menu-head { margin-bottom: 8px; }
.cocktails .h-display { color: #fff; }
.cocktails .h-lead { color: rgba(255, 255, 255, 0.72); }
.cocktails .menu-cards {
  background: transparent;
  border-color: transparent;
}
.cocktails .menu-card.is-active {
  border-color: var(--g-cream);
  box-shadow: 0 0 0 1px var(--g-cream), 0 12px 28px rgba(0, 0, 0, 0.25);
}
.cocktails .menu-panel-card {
  background: rgba(255, 255, 255, 0.06);
  border-color: rgba(255, 255, 255, 0.14);
}
.cocktails .menu-panel__visual::after {
  background: linear-gradient(90deg, transparent 55%, rgba(51, 96, 39, 1) 100%);
}
.cocktails .menu-panel__body { background: transparent; }
.cocktails .menu-panel__title { color: #fff; }
.cocktails .menu-panel__tagline { color: var(--g-cream); }
.cocktails .menu-panel__lead { color: rgba(255, 255, 255, 0.72); }
.cocktails .menu-tabs {
  background: rgba(41, 78, 31, 0.96);
  border-color: rgba(255, 255, 255, 0.16);
}
.cocktails .menu-tab {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.28);
  color: rgba(255, 255, 255, 0.82);
}
.cocktails .menu-tab:hover {
  color: #f5ead0;
  border-color: rgba(233, 207, 148, 0.65);
  background: rgba(255, 255, 255, 0.14);
}
.cocktails .menu-tab.is-active {
  background: var(--g-cream);
  color: #1e3618;
  border-color: var(--g-cream);
}
.cocktails .menu-item-name { color: #fff; }
.cocktails .menu-item-desc { color: rgba(255, 255, 255, 0.68); }
.cocktails .menu-item-dots {
  background-image: radial-gradient(circle, rgba(255, 255, 255, 0.35) 1px, transparent 1.2px);
}
.cocktails .menu-item-price { color: var(--g-cream); }
.cocktails .menu-item-name.light { color: #fff; }
.cocktails .menu-subtabs__btn {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.28);
  color: rgba(255, 255, 255, 0.82);
}
.cocktails .menu-subtabs__btn:hover {
  color: #f5ead0;
  border-color: rgba(233, 207, 148, 0.65);
  background: rgba(255, 255, 255, 0.14);
}
.cocktails .menu-subtabs__btn.is-active {
  background: var(--g-cream);
  color: #1e3618;
  border-color: var(--g-cream);
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.2);
}
.cocktails .menu-group__lead { color: rgba(255, 255, 255, 0.68); }
.cocktails .menu-item-desc.light { color: rgba(255,255,255,0.7); }
.cocktails .menu-item-dots.light { background-image: radial-gradient(circle, rgba(255,255,255,0.4) 1px, transparent 1.2px); }
.cocktails .h-display.light { color: #fff; }
.cocktails .h-lead.light { color: rgba(255,255,255,0.7); }
.cocktails .menu-item-price.gold { color: var(--g-cream); }
.cocktails .col-title { color: var(--g-cream); border-bottom-color: rgba(255,255,255,0.12); }
.cocktails-grid {
  margin-top: 40px;
  display: grid; grid-template-columns: 1fr; gap: 48px;
}
.col-title {
  font-family: var(--sans); font-weight: 600;
  font-size: 13px; letter-spacing: 0.24em; text-transform: uppercase;
  color: var(--gold); margin-bottom: 22px;
  border-bottom: 1px solid var(--line);
  padding-bottom: 14px;
}
.cocktails-list {
  list-style: none;
  display: grid; gap: 20px;
}

/* ─── SPORTS ─── */
.sports { background: var(--bg-1); }
.chips {
  list-style: none;
  margin-top: 36px;
  display: flex; flex-wrap: wrap; gap: 10px;
}
.chips .chip {
  padding: 10px 18px;
  border: 1px solid var(--line-d);
  font-size: 11px; font-weight: 500;
  letter-spacing: 0.2em; text-transform: uppercase;
  color: var(--ink-dim);
  transition: all 0.25s;
}
.chips .chip:hover { background: var(--green); color: #fff; border-color: var(--green); }
.sports-cta { margin-top: 40px; }

/* ─── PREVIEW ─── */
.preview { padding-bottom: 0; }
.preview-head {
  display: flex; justify-content: space-between; align-items: flex-end;
  gap: 16px; flex-wrap: wrap; margin-bottom: 36px;
}
.preview-grid {
  display: grid; grid-template-columns: repeat(2, 1fr); gap: 4px;
}
.preview-tile {
  position: relative; overflow: hidden;
  aspect-ratio: 1; background: var(--bg-2);
}
.preview-tile img {
  width: 100%; height: 100%; object-fit: cover;
  filter: brightness(0.95) saturate(0.9);
  transition: transform 0.6s, filter 0.4s;
}
.preview-tile:hover img { transform: scale(1.06); filter: brightness(1) saturate(1.1); }

/* ─── GROUP BOOKING (home - same layout & typo as weekly / lunch) ─── */
.group-booking-home .gb-home-card__title {
  font-weight: 600;
  color: var(--ink);
}
.group-booking-home .gb-home-card__text {
  font-size: 15px;
  line-height: 1.5;
  color: var(--muted);
}
.group-booking-home .day-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  min-height: 100%;
}
.group-booking-home .weekly-head .h-display,
.group-booking-home .weekly-intro {
  max-width: 100%;
}
@media (min-width: 900px) {
  .group-booking-home .weekly-grid { grid-template-columns: repeat(4, 1fr); }
}

/* ─── HISTORY PAGE ─── */
.history-page { padding: 48px 0 100px; }
@media (min-width: 720px) { .history-page { padding-top: 64px; } }
.history-intro {
  max-width: 62ch;
  margin: 0 auto 48px;
  font-size: 17px;
  line-height: 1.75;
  color: var(--ink);
  text-align: center;
}
.history-timeline {
  list-style: none;
  margin: 0 auto 48px;
  padding: 0;
  max-width: 960px;
  position: relative;
}
.history-timeline::before {
  content: '';
  position: absolute;
  left: 28px;
  top: 8px;
  bottom: 8px;
  width: 2px;
  background: linear-gradient(180deg, var(--gold) 0%, var(--line) 100%);
}
@media (min-width: 900px) {
  .history-timeline::before {
    left: 50%;
    transform: translateX(-50%);
  }
}
.history-milestone {
  position: relative;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 16px 20px;
  padding: 0 0 48px;
  align-items: center;
}
@media (min-width: 900px) {
  .history-milestone {
    grid-template-columns: 1fr auto 1fr;
    gap: 0 28px;
    padding-bottom: 56px;
  }
  .history-milestone__col--text { grid-column: 1; grid-row: 1; }
  .history-year {
    grid-column: 2;
    grid-row: 1;
    justify-self: center;
    align-self: center;
  }
  .history-milestone__media { grid-column: 3; grid-row: 1; }
  .history-milestone--flip .history-milestone__col--text {
    grid-column: 3;
    text-align: left;
  }
  .history-milestone--flip .history-milestone__media { grid-column: 1; }
  .history-milestone--flip .history-milestone__body { text-align: right; }
}
.history-milestone__col--text {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.history-year {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  max-width: 100%;
  font-family: var(--sans);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--gold);
  background: var(--bg-1);
  border: 2px solid var(--gold);
  border-radius: 999px;
  padding: 8px 14px;
  line-height: 1;
  z-index: 1;
  white-space: nowrap;
}
@media (max-width: 899px) {
  .history-milestone {
    grid-template-columns: 1fr;
    gap: 0;
    padding-left: 52px;
  }
  .history-milestone__col--text {
    grid-column: 1;
    grid-row: 1;
    min-width: 0;
  }
  .history-year {
    position: absolute;
    top: 0;
    left: 0;
    transform: translateY(-50%);
    z-index: 3;
    grid-column: unset;
    grid-row: unset;
    align-self: unset;
    margin-top: 0;
    font-size: 10px;
    padding: 6px 10px;
    max-width: min(280px, calc(100vw - 96px));
  }
  .history-milestone__media {
    grid-column: 1;
    grid-row: 2;
    margin-top: 16px;
  }
}
.history-milestone__body {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 22px 24px;
  box-shadow: 0 10px 28px -16px rgba(42, 20, 8, 0.15);
}
@media (max-width: 899px) {
  .history-milestone__body {
    padding-top: 28px;
  }
}
.history-milestone__media {
  margin: 0;
  border-radius: 14px;
  overflow: hidden;
  border: 1px solid var(--line);
  box-shadow: 0 14px 36px -18px rgba(42, 20, 8, 0.22);
  aspect-ratio: 4 / 3;
  background: var(--bg-2);
}
.history-milestone__media--empty { display: none; }
@media (min-width: 900px) {
  .history-milestone__media {
    grid-column: 3;
    grid-row: 1;
    max-width: none;
  }
  .history-milestone__media--empty { display: block; visibility: hidden; }
}
.history-milestone__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.history-milestone__title {
  font-family: var(--sans);
  font-size: 18px;
  font-weight: 600;
  margin: 0 0 8px;
  color: var(--ink);
}
.history-milestone__desc {
  margin: 0;
  font-size: 15px;
  line-height: 1.65;
  color: var(--ink-dim);
}
.history-milestone__desc + .history-milestone__desc {
  margin-top: 12px;
}
.history-closing {
  max-width: 48ch;
  margin: 0 auto;
  text-align: center;
  font-family: 'Berkshire Swash', 'Cormorant Garamond', Georgia, serif;
  font-size: clamp(22px, 4vw, 28px);
  line-height: 1.35;
  color: var(--green);
}

/* ─── THE TEAM ─── */
.team-page { padding: 48px 0 100px; }
@media (min-width: 720px) { .team-page { padding-top: 64px; } }
.team-feature {
  max-width: 960px;
  margin: 0 auto;
  display: grid;
  gap: 36px;
}
@media (min-width: 900px) {
  .team-feature {
    grid-template-columns: 1fr 1.1fr;
    align-items: start;
    gap: 48px;
  }
}
.team-feature__text p {
  margin: 0;
  font-size: 17px;
  line-height: 1.75;
  color: var(--ink-dim);
}
.team-feature__text p + p {
  margin-top: 16px;
}
.team-feature__photo {
  margin: 0;
  border-radius: var(--r);
  overflow: hidden;
  border: 1px solid var(--line);
  background: var(--bg-2);
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.08);
}
.team-feature__photo img {
  display: block;
  width: 100%;
  height: auto;
}
.team-feature__zoom {
  display: block;
  cursor: zoom-in;
}
.team-feature__zoom:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: 3px;
}

/* ─── OUR LEGACY ─── */
.legacy-page {
  --legacy-dark: #241f1a;
  --legacy-cream: #f3ecdf;
  --legacy-gold: #c9a96b;
  --legacy-maroon: #8f3a32;
}
.legacy-intro {
  background: var(--legacy-cream);
  padding: 48px 0 56px;
}
@media (min-width: 900px) { .legacy-intro { padding: 56px 0 72px; } }
.legacy-intro__grid {
  display: grid;
  gap: 20px;
  align-items: center;
  max-width: 920px;
  margin: 0 auto;
}
@media (min-width: 760px) {
  .legacy-intro__grid {
    grid-template-columns: minmax(120px, 180px) minmax(0, 1fr);
    gap: 40px;
  }
}
.legacy-intro__year {
  margin: 0;
  font-family: 'Berkshire Swash', 'Cormorant Garamond', Georgia, serif;
  font-size: clamp(52px, 8vw, 76px);
  line-height: 1;
  color: var(--legacy-maroon);
  text-align: center;
}
@media (min-width: 760px) { .legacy-intro__year { text-align: left; } }
.legacy-intro__text {
  margin: 0;
  font-size: 17px;
  line-height: 1.7;
  color: rgba(36, 31, 26, 0.82);
}
.legacy-dickens {
  background: var(--legacy-cream);
  color: var(--legacy-dark);
  padding: 72px 0;
}
@media (min-width: 900px) { .legacy-dickens { padding: 96px 0; } }
.legacy-dickens__head {
  max-width: 720px;
  margin: 0 auto 40px;
  text-align: center;
}
@media (min-width: 900px) {
  .legacy-dickens__head { margin-bottom: 56px; }
}
.legacy-dickens__layout {
  display: grid;
  gap: 32px;
  max-width: 980px;
  margin: 0 auto;
  align-items: start;
}
@media (min-width: 900px) {
  .legacy-dickens__layout {
    grid-template-columns: minmax(0, 0.88fr) minmax(0, 1.12fr);
    gap: 56px;
    align-items: center;
  }
}
.legacy-dickens__visual {
  margin: 0;
}
.legacy-dickens__frame {
  padding: 12px;
  background: #fff;
  box-shadow: 0 18px 44px rgba(36, 31, 26, 0.12);
}
.legacy-dickens__frame img {
  display: block;
  width: 100%;
  height: auto;
}
.legacy-dickens__caption {
  margin: 14px 0 0;
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: 15px;
  font-style: italic;
  line-height: 1.5;
  text-align: center;
  color: rgba(36, 31, 26, 0.68);
}
@media (min-width: 900px) {
  .legacy-dickens__caption { text-align: left; }
}
.legacy-dickens__zoom {
  display: block;
  cursor: zoom-in;
}
.legacy-dickens__zoom:focus-visible {
  outline: 2px solid var(--legacy-gold);
  outline-offset: 3px;
}
.legacy-eyebrow {
  margin: 0 0 14px;
  font-family: var(--sans);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--legacy-gold);
}
.legacy-eyebrow--light { color: var(--legacy-gold); }
.legacy-dickens__title {
  margin: 0;
  font-family: 'Berkshire Swash', 'Cormorant Garamond', Georgia, serif;
  font-size: clamp(34px, 5vw, 52px);
  font-weight: 400;
  line-height: 1.12;
  color: var(--legacy-dark);
}
.legacy-dickens__body p {
  margin: 0;
  font-size: 17px;
  line-height: 1.75;
  color: rgba(36, 31, 26, 0.82);
}
.legacy-dickens__body p + p { margin-top: 18px; }
.legacy-geneva {
  background: var(--legacy-dark);
  color: #fff;
  padding: 72px 0 80px;
}
@media (min-width: 900px) { .legacy-geneva { padding: 88px 0 96px; } }
.legacy-geneva__head {
  text-align: center;
  max-width: 760px;
  margin: 0 auto 40px;
}
.legacy-geneva__title {
  margin: 0;
  font-family: 'Berkshire Swash', 'Cormorant Garamond', Georgia, serif;
  font-size: clamp(34px, 5vw, 52px);
  font-weight: 400;
  line-height: 1.08;
}
.legacy-geneva__cards {
  display: grid;
  gap: 18px;
}
@media (min-width: 760px) {
  .legacy-geneva__cards { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
}
.legacy-geneva-card {
  border: 1px solid rgba(201, 169, 107, 0.45);
  padding: 28px 24px 32px;
  min-height: 100%;
}
.legacy-geneva-card__title {
  margin: 0 0 14px;
  font-family: 'Berkshire Swash', 'Cormorant Garamond', Georgia, serif;
  font-size: clamp(24px, 3vw, 30px);
  font-weight: 400;
  line-height: 1.15;
  color: var(--legacy-gold);
}
.legacy-geneva-card__text {
  margin: 0;
  font-size: 15px;
  line-height: 1.7;
  color: rgba(255, 255, 255, 0.82);
}
.legacy-showcase {
  background: var(--legacy-dark);
  padding: 0 0 88px;
}
.legacy-showcase__inner {
  text-align: center;
}
.legacy-showcase__frame {
  margin: 0 auto 24px;
  padding: 14px;
  background: var(--legacy-cream);
  max-width: 920px;
  box-shadow: 0 28px 60px rgba(0, 0, 0, 0.28);
}
.legacy-showcase__frame img {
  display: block;
  width: 100%;
  height: auto;
}
.legacy-showcase__zoom {
  display: block;
  cursor: zoom-in;
}
.legacy-showcase__caption {
  margin: 0 auto;
  max-width: 42ch;
  font-family: 'Berkshire Swash', 'Cormorant Garamond', Georgia, serif;
  font-size: clamp(22px, 3.5vw, 30px);
  font-style: italic;
  line-height: 1.35;
  color: rgba(255, 255, 255, 0.92);
}

/* ─── PRIVATE EVENTS PAGE ─── */
.private-events-page { padding: 48px 0 100px; }
.private-events-page--lounge-first { padding-top: 20px; }
.pe-type-ctas {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px 16px;
  margin: 0 auto 48px;
  max-width: 640px;
}
.pe-features-block + .pe-type-ctas {
  margin-top: -8px;
}
.pe-type-ctas + .wrap .pe-form-wrap,
.private-events-page--privatisation > .wrap:last-child .pe-form-wrap {
  margin-top: 0;
}
#booking-form { scroll-margin-top: 88px; }
@media (min-width: 720px) {
  .private-events-page { padding-top: 64px; }
  .private-events-page--lounge-first { padding-top: 28px; }
}

/* ─── Features grid (group booking + privatisation) ─── */
.pe-features-block { margin: 0 auto 56px; }
.pe-features-head {
  text-align: center;
  max-width: 52ch;
  margin: 0 auto 36px;
}
.pe-features-head .h-display {
  font-size: clamp(1.75rem, 4vw, 2.35rem);
  margin-bottom: 12px;
}
.pe-features-head__lead {
  margin: 0;
  font-size: 16px;
  line-height: 1.6;
  color: var(--ink-dim);
}
.pe-features {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
}
@media (min-width: 600px) {
  .pe-features { grid-template-columns: repeat(2, 1fr); gap: 18px; }
}
.pe-feature {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 14px;
  padding: 26px 24px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 16px;
  box-shadow: 0 10px 32px -18px rgba(42, 20, 8, 0.18);
  transition: transform 0.35s ease, box-shadow 0.35s ease, border-color 0.35s ease;
}
.pe-feature:hover {
  transform: translateY(-3px);
  border-color: rgba(90, 8, 9, 0.35);
  box-shadow: 0 18px 40px -16px rgba(42, 20, 8, 0.22);
}
.pe-feature__num { display: none; }
.pe-feature__icon {
  flex: 0 0 auto;
  width: 52px;
  height: 52px;
  display: grid;
  place-items: center;
  border-radius: 14px;
  background: linear-gradient(145deg, var(--bg-2) 0%, var(--bg-1) 100%);
  color: var(--gold);
  border: 1px solid rgba(90, 8, 9, 0.16);
}
.pe-feature__body { flex: 1; min-width: 0; }
.pe-feature__title {
  font-family: var(--sans);
  font-size: 16px;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--ink);
  margin: 0 0 6px;
  line-height: 1.3;
}
.pe-feature__text {
  margin: 0;
  font-size: 14px;
  line-height: 1.55;
  color: var(--ink-dim);
}

/* Privatisation - 4-column showcase cards */
.private-events-page--privatisation .pe-features--privatisation {
  gap: 20px;
}
@media (min-width: 720px) {
  .private-events-page--privatisation .pe-features--privatisation {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
  }
}
@media (min-width: 1024px) {
  .private-events-page--privatisation .pe-features--privatisation {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
  }
}
.private-events-page--privatisation .pe-feature {
  padding: 28px 22px 24px;
  background: linear-gradient(180deg, #fff 0%, var(--bg-1) 100%);
  border-radius: 18px;
  overflow: hidden;
}
.private-events-page--privatisation .pe-feature::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--gold), rgba(90, 8, 9, 0.25));
  opacity: 0.85;
}
.private-events-page--privatisation .pe-feature__num {
  display: block;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.2em;
  color: var(--muted);
}
.private-events-page--privatisation .pe-feature__icon {
  width: 48px;
  height: 48px;
  border-radius: 12px;
  background: var(--gold-soft);
  border-color: rgba(90, 8, 9, 0.12);
}
.private-events-page--privatisation .pe-feature__title {
  font-size: 15px;
  line-height: 1.35;
}
.private-events-page--privatisation .pe-feature__text {
  font-size: 13px;
  line-height: 1.5;
}

/* ─── The Lounge full-width band (privatisation) ─── */
.priv-lounge-band {
  position: relative;
  width: 100%;
  margin: 8px 0 52px;
  padding: clamp(56px, 10vw, 96px) 0;
  background-color: var(--ink);
  overflow: hidden;
}
.priv-lounge-band__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  background-image: var(--lounge-bg, none);
  background-size: cover;
  background-position: center;
}
.priv-lounge-band__overlay {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(120deg, rgba(42, 20, 8, 0.88) 0%, rgba(90, 8, 9, 0.72) 45%, rgba(42, 20, 8, 0.82) 100%),
    linear-gradient(0deg, rgba(0, 0, 0, 0.35) 0%, transparent 50%, rgba(0, 0, 0, 0.25) 100%);
  pointer-events: none;
}
.priv-lounge-band__inner {
  position: relative;
  z-index: 1;
}
.priv-lounge-band__head {
  margin-bottom: 32px;
  text-align: center;
  max-width: 52ch;
  margin-left: auto;
  margin-right: auto;
}
.priv-lounge-band__title {
  margin: 0 0 14px;
  font-family: var(--serif);
  font-size: clamp(2rem, 5vw, 3rem);
  font-weight: 600;
  color: #fff;
  line-height: 1.05;
  letter-spacing: -0.02em;
  text-shadow: 0 2px 24px rgba(0, 0, 0, 0.35);
}
.priv-lounge-band__capacity {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  padding: 9px 16px;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #fff;
  background: rgba(255, 255, 255, 0.12);
  border: 1px solid rgba(255, 255, 255, 0.28);
  border-radius: 999px;
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}
.priv-lounge-band__capacity-icon {
  display: grid;
  place-items: center;
  color: #fff;
}
.priv-lounge-band__perks {
  margin: 0 auto;
  padding: 0;
  list-style: none;
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
  max-width: 920px;
}
@media (min-width: 540px) {
  .priv-lounge-band__perks { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
}
@media (min-width: 900px) {
  .priv-lounge-band__perks { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
.priv-lounge-band__perk {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 16px;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.4;
  color: #fff;
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 12px;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  transition: background 0.25s ease, border-color 0.25s ease, transform 0.25s ease;
}
.priv-lounge-band__perk:hover {
  background: rgba(255, 255, 255, 0.16);
  border-color: rgba(255, 255, 255, 0.32);
  transform: translateY(-2px);
}
.priv-lounge-band__check {
  flex: 0 0 auto;
  width: 26px;
  height: 26px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #fff;
  color: var(--gold);
}
.priv-lounge-band__thumbs {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 14px;
  margin: 28px auto 0;
  max-width: 320px;
}
.priv-lounge-band__thumb {
  flex: 1 1 120px;
  max-width: 148px;
  display: block;
  border-radius: 12px;
  overflow: hidden;
  border: 2px solid rgba(255, 255, 255, 0.55);
  box-shadow: 0 10px 28px -12px rgba(0, 0, 0, 0.45);
  transition: transform 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;
  cursor: pointer;
}
.priv-lounge-band__thumb:hover {
  transform: translateY(-4px) scale(1.02);
  border-color: #fff;
  box-shadow: 0 16px 36px -10px rgba(0, 0, 0, 0.5);
}
.priv-lounge-band__thumb img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  display: block;
}

.party-platters {
  max-width: 920px;
  margin: 0 auto 48px;
}
.party-platters__head {
  text-align: center;
  margin-bottom: 28px;
}
.party-platters__head .eyebrow { display: inline-flex; }
.party-platters__head .eyebrow::after { display: block; }
.party-platters__lead {
  margin: 12px auto 0;
  max-width: 52ch;
  font-size: 15px;
  line-height: 1.55;
  color: var(--ink-dim);
}
.party-platters__grid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 16px;
}
@media (min-width: 720px) {
  .party-platters__grid { grid-template-columns: repeat(3, 1fr); gap: 18px; }
}
.party-platter-card {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 22px 20px;
  background: var(--bg-1);
  border: 1px solid var(--line);
  border-radius: var(--r);
  height: 100%;
}
.party-platter-card__name {
  margin: 0;
  font-family: var(--serif);
  font-size: 1.2rem;
  font-weight: 600;
  color: var(--ink);
  line-height: 1.25;
}
.party-platter-card__serves {
  margin: 4px 0 0;
  font-size: 13px;
  color: var(--ink-dim);
}
.party-platter-card__price {
  margin: 8px 0 0;
  font-family: var(--sans);
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: var(--gold);
}
.party-platter-card__desc,
.party-platter-card__note {
  margin: 0;
  font-size: 14px;
  line-height: 1.55;
  color: var(--ink-dim);
}
.party-platter-card__includes {
  margin-top: 2px;
}
.party-platter-card__includes-label {
  margin: 0 0 6px;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ink-dim);
}
.party-platter-card__includes ul {
  margin: 0;
  padding: 0 0 0 1.1em;
  font-size: 14px;
  line-height: 1.5;
  color: var(--ink);
}
.party-platter-card__includes li + li { margin-top: 2px; }
.gb-qty-meta {
  font-size: 12px;
  font-weight: 500;
  color: var(--ink-dim);
  letter-spacing: 0;
  text-transform: none;
}
.pe-form-wrap { max-width: 820px; margin: 0 auto; }
.pe-form-title {
  font-family: var(--sans);
  font-size: 22px;
  font-weight: 600;
  text-align: center;
  margin: 0 0 8px;
  color: var(--ink);
}
.pe-form-lead {
  text-align: center;
  font-size: 15px;
  color: var(--ink-dim);
  margin: 0 0 24px;
  max-width: 52ch;
  margin-left: auto;
  margin-right: auto;
}

/* ─── GROUP BOOKING FORM ─── */
.group-booking-head {
  text-align: center;
  max-width: 720px;
  margin: 0 auto 36px;
}
.group-booking-head .eyebrow { display: inline-flex; }
.group-booking-head .eyebrow::after { display: block; }
.group-booking-form {
  max-width: 820px;
  margin: 0 auto;
  padding: 32px 28px;
  background: var(--bg-1);
  border: 1px solid var(--line);
  border-radius: var(--r);
}
.gb-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 18px 20px;
}
@media (min-width: 600px) {
  .gb-grid { grid-template-columns: 1fr 1fr; }
}
.gb-field { display: flex; flex-direction: column; gap: 6px; }
.gb-field--full { grid-column: 1 / -1; }
.gb-label {
  font-family: var(--sans);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink-dim);
}
.gb-label em { font-style: normal; color: var(--bordeaux, #a93226); }
.gb-field input:not([type="radio"]):not([type="checkbox"]),
.gb-field textarea {
  font: inherit;
  font-size: 15px;
  padding: 12px 14px;
  border: 1px solid var(--line-d);
  border-radius: 8px;
  background: #fff;
  color: var(--ink);
  transition: border-color 0.2s, box-shadow 0.2s;
}
.gb-field input:not([type="radio"]):not([type="checkbox"]):focus,
.gb-field textarea:focus {
  outline: none;
  border-color: var(--gold);
  box-shadow: 0 0 0 2px rgba(184, 134, 11, 0.15);
}
.gb-field textarea { resize: vertical; min-height: 120px; }
.gb-choice-group {
  border: 0;
  margin: 0;
  padding: 0;
  min-width: 0;
}
.gb-choice-group .gb-label {
  margin-bottom: 10px;
}
.gb-choices {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 18px;
}
.gb-choice {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 15px;
  color: var(--ink);
  cursor: pointer;
}
.gb-choice input {
  width: 18px;
  height: 18px;
  min-width: 18px;
  min-height: 18px;
  margin: 0;
  padding: 0;
  border: none;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  accent-color: var(--gold);
  flex-shrink: 0;
  vertical-align: middle;
}
.gb-choice input:focus {
  outline: 2px solid rgba(184, 134, 11, 0.35);
  outline-offset: 2px;
  box-shadow: none;
}
.gb-choice input:focus-visible {
  outline: 2px solid rgba(184, 134, 11, 0.35);
  outline-offset: 2px;
}
.gb-extra-section {
  display: flex;
  flex-direction: column;
  gap: 22px;
  padding-top: 6px;
}
.gb-section-title {
  margin: 0;
  font-family: var(--serif);
  font-size: 1.35rem;
  font-weight: 600;
  color: var(--ink);
}
.gb-section-lead {
  margin: 6px 0 0;
  font-size: 15px;
  line-height: 1.5;
  color: var(--muted, #6b5f54);
}
.gb-extra-section > .gb-section-lead + .gb-choice-group {
  margin-top: 18px;
}
.gb-extra-section > .gb-section-title + .gb-section-lead + .gb-choice-group {
  margin-top: 18px;
}
.gb-choice-group--nested {
  margin-top: 0;
}
.gb-choices--stack {
  flex-direction: column;
  align-items: flex-start;
  gap: 12px;
}
.gb-qty-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.gb-qty-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 110px;
  gap: 12px;
  align-items: start;
}
.gb-qty-row__choice {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
  min-width: 0;
}
.gb-platter-detail {
  margin: 0 0 0 28px;
  padding: 0;
  border: 0;
  background: none;
  font: inherit;
  font-size: 13px;
  font-weight: 500;
  color: var(--gold);
  text-decoration: underline;
  text-underline-offset: 3px;
  cursor: pointer;
  transition: color 0.2s ease;
}
.gb-platter-detail:hover {
  color: var(--green, #2d5016);
}
.gb-qty-row input[type="number"] {
  font: inherit;
  font-size: 15px;
  padding: 10px 12px;
  border: 1px solid var(--line-d);
  border-radius: 8px;
  background: #fff;
  color: var(--ink);
}
.gb-qty-row input[type="number"]:disabled {
  opacity: 0.45;
  background: var(--bg-2, #f8f6f2);
}
.gb-qty-row input[type="number"]:focus {
  outline: none;
  border-color: var(--gold);
  box-shadow: 0 0 0 2px rgba(184, 134, 11, 0.15);
}
@media (max-width: 479px) {
  .gb-qty-row { grid-template-columns: 1fr; }
}
.gb-field--picker { min-width: 0; }

/* Ultime DatePicker / TimePicker (group booking) */
.ultime-picker-theme {
  --color-primary: #b8860b;
  --color-primary-dark: #8f6a08;
}
.ultime-picker { position: relative; width: 100%; }
.ultime-picker__btn {
  width: 100%;
  padding: 12px 14px;
  background: #fff;
  border: 2px solid #e5e7eb;
  border-radius: 12px;
  text-align: left;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  cursor: pointer;
  font-size: 14px;
  font-weight: 600;
  font-family: inherit;
  color: #1e293b;
  transition: border-color 0.2s;
}
.ultime-picker__btn:hover { border-color: #d1d5db; }
.ultime-picker__btn.is-open {
  border-color: var(--color-primary, #b8860b);
}
.ultime-picker__btn-main {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}
.ultime-picker__icon { color: var(--color-primary, #b8860b); flex-shrink: 0; }
.ultime-picker__chev { color: #cbd5e1; flex-shrink: 0; }
.ultime-picker__value.is-placeholder { color: #94a3b8; font-weight: 600; }
.ultime-picker__popover {
  background: #fff;
  border-radius: 16px;
  border: 2px solid #f1f5f9;
  padding: 16px;
}
.ultime-picker__popover--time {
  padding: 0;
  max-height: 240px;
  overflow-y: auto;
}
.ultime-picker__cal-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 16px;
  gap: 8px;
}
.ultime-picker__cal-title {
  font-weight: 700;
  font-size: 15px;
  color: #1e293b;
}
.ultime-picker__nav {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  border: none;
  background: #f8fafc;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #64748b;
}
.ultime-picker__nav:hover { background: #f1f5f9; }
.ultime-picker__dow {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 4px;
  margin-bottom: 6px;
}
.ultime-picker__dow span {
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 11px;
  font-weight: 700;
  color: #94a3b8;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}
.ultime-picker__days {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 4px;
}
.ultime-picker__days > span { height: 40px; }
.ultime-picker__day {
  width: 40px;
  height: 40px;
  border-radius: 12px;
  border: 2px solid transparent;
  background: transparent;
  color: #1e293b;
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto;
  transition: all 0.15s;
  font-family: inherit;
}
.ultime-picker__day.is-today:not(.is-selected) {
  border-color: var(--color-primary, #b8860b);
  background: rgba(184, 134, 11, 0.08);
  font-weight: 700;
}
.ultime-picker__day.is-selected {
  background: linear-gradient(135deg, var(--color-primary, #b8860b), var(--color-primary-dark, #8f6a08));
  color: #fff;
  font-weight: 700;
}
.ultime-picker__day.is-past {
  color: #cbd5e1;
  cursor: not-allowed;
}
.ultime-picker__slot {
  display: block;
  width: 100%;
  padding: 10px 16px;
  font-size: 14px;
  font-weight: 400;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  border: none;
  border-bottom: 1px solid #f1f5f9;
  background: transparent;
  color: #1e293b;
  cursor: pointer;
  text-align: left;
}
.ultime-picker__slot.is-selected {
  background: linear-gradient(135deg, var(--color-primary, #b8860b), var(--color-primary-dark, #8f6a08));
  color: #fff;
  font-weight: 700;
}
.ultime-picker__slot:hover:not(.is-selected) { background: #f8fafc; }

.gb-hint {
  font-size: 12px;
  color: var(--muted);
}
.gb-hp {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}
.gb-actions {
  display: flex;
  justify-content: center;
  margin-top: 24px;
}
.gb-status {
  text-align: center;
  font-size: 14px;
  margin: 16px 0 0;
  min-height: 1.4em;
}
.gb-status.is-error { color: #a93226; }
.gb-status.is-ok { color: var(--green); }
.group-booking-form.is-loading .hero-cta-book {
  opacity: 0.65;
  pointer-events: none;
}

/* ─── VISIT ─── */
.visit { background: var(--bg-1); }
.visit .h-display.light { color: var(--ink); }
.visit .btn-line-light { color: var(--ink); border-color: var(--line-d); }
.visit .btn-line-light:hover { background: var(--ink); color: #fff; border-color: var(--ink); }
.visit-grid { display: grid; grid-template-columns: 1fr; gap: 36px; }
.visit-dl {
  margin-top: 28px;
  display: grid; grid-template-columns: 90px 1fr; gap: 14px 24px;
  padding-top: 32px; border-top: 1px solid var(--line);
}
.visit-dl dt {
  font-size: 10px; font-weight: 500;
  letter-spacing: 0.22em; text-transform: uppercase;
  color: var(--gold);
}
.visit-dl dd {
  font-family: var(--sans); font-weight: 400; font-size: 15px; color: var(--ink);
  line-height: 1.5;
}
.visit-dl dd a:hover { color: var(--gold); }
.visit-note {
  margin-top: 28px;
  padding: 16px 18px;
  border-left: 2px solid var(--gold);
  background: rgba(212,183,143,0.05);
  font-style: italic; font-size: 14px; color: var(--ink-dim);
}
.visit-ctas {
  margin-top: 28px;
  display: flex; flex-wrap: wrap; gap: 12px;
}
@media (max-width: 919px) {
  .visit-info { text-align: center; }
  .visit-info .visit-dl {
    grid-template-columns: 1fr;
    gap: 4px 0;
    justify-items: center;
    text-align: center;
  }
  .visit-info .visit-dl dt { margin-top: 12px; }
  .visit-info .visit-dl dt:first-of-type { margin-top: 0; }
  .visit-info .visit-ctas { justify-content: center; }
}
.visit-map {
  height: 360px;
  border: 1px solid var(--line);
  overflow: hidden;
}
.visit-map iframe {
  width: 100%; height: 100%; border: 0;
  filter: grayscale(50%) saturate(0.7);
}

/* ─── PAGE HEROES ─── */
.page-hero {
  position: relative;
  overflow: hidden;
  padding: calc(var(--nav-h) + 72px) 0 64px;
  background: linear-gradient(180deg, var(--bg) 0%, var(--bg-1) 100%);
  border-bottom: 1px solid var(--line);
}
.page-hero-bg {
  position: absolute;
  inset: 0;
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  z-index: 0;
}
.page-hero-bg::after {
  content: '';
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(42, 20, 8, 0.72) 0%, rgba(42, 20, 8, 0.55) 45%, rgba(42, 20, 8, 0.82) 100%),
    linear-gradient(90deg, rgba(42, 20, 8, 0.35) 0%, transparent 50%, rgba(42, 20, 8, 0.35) 100%);
}
.page-hero-content {
  position: relative;
  z-index: 1;
  text-align: center;
}
.page-hero-content .page-lead {
  margin-left: auto;
  margin-right: auto;
}
.page-hero--photo .page-title {
  color: #fff;
  text-shadow: 0 2px 24px rgba(0, 0, 0, 0.45);
}
.page-hero--photo .page-lead {
  color: rgba(255, 255, 255, 0.88);
  text-shadow: 0 1px 12px rgba(0, 0, 0, 0.4);
}
.page-hero--photo .page-lead strong { color: #fff; font-weight: 600; }
.crumbs {
  font-size: 10px; font-weight: 500;
  letter-spacing: 0.22em; text-transform: uppercase;
  color: var(--muted); margin-bottom: 18px;
}
.crumbs a { color: var(--gold); }
.crumbs a:hover { color: var(--ink); }
.page-title {
  font-family: 'Berkshire Swash', 'Cormorant Garamond', Georgia, serif;
  font-weight: 400;
  font-size: clamp(48px, 9vw, 88px); letter-spacing: 0;
  color: var(--gold);
  line-height: 1.1;
  margin: 0 0 18px;
}
.page-lead {
  font-size: 16px; color: var(--ink-dim);
  max-width: 56ch; line-height: 1.7;
}
.page-lead strong { color: var(--gold); font-weight: 600; }

/* ─── GALLERY PAGE - albums = stacks of polaroids ─── */
.gallery { padding: 24px 0 96px; background: var(--bg); }

/* Albums grid (cover view) */
.albums-grid {
  display: grid;
  grid-template-columns: repeat(1, 1fr);
  gap: 56px 32px;
  padding: 48px 12px 36px;
  justify-items: center;
}
@media (min-width: 600px)  { .albums-grid { grid-template-columns: repeat(2, 1fr); gap: 64px 40px; } }
@media (min-width: 960px)  { .albums-grid { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1280px) { .albums-grid { grid-template-columns: repeat(4, 1fr); gap: 72px 48px; } }

.album-card {
  appearance: none;
  background: transparent;
  border: 0; padding: 0;
  cursor: pointer;
  font: inherit;
  color: inherit;
  display: flex; flex-direction: column; align-items: center; gap: 18px;
  transform: rotate(var(--tilt, 0deg));
  transition: transform 0.5s cubic-bezier(.2,.8,.2,1);
  animation: albumIn 0.7s cubic-bezier(.22,.85,.32,1) both;
  animation-delay: calc(var(--i, 0) * 70ms);
}
@keyframes albumIn {
  from { opacity: 0; transform: rotate(var(--tilt,0deg)) translateY(30px); }
  to   { opacity: 1; transform: rotate(var(--tilt,0deg)) translateY(0); }
}

.album-card__stack {
  position: relative;
  display: block;
  width: 240px; height: 240px;
}
@media (min-width: 720px) { .album-card__stack { width: 260px; height: 260px; } }

.album-card__polaroid {
  position: absolute; inset: 0;
  display: flex; align-items: stretch; justify-content: center;
  background: #fdf9f2;
  padding: 12px 12px 36px;
  box-shadow:
    0 14px 28px rgba(42,20,8,0.20),
    0 4px 10px rgba(42,20,8,0.14);
  transform: rotate(var(--r, 0deg)) translate(var(--tx, 0), var(--ty, 0));
  transition: transform 0.55s cubic-bezier(.2,.8,.2,1), box-shadow 0.45s;
}
.album-card__polaroid--0 { z-index: 3; }
.album-card__polaroid--1 { z-index: 2; }
.album-card__polaroid--2 { z-index: 1; }

.album-card__img {
  display: block; width: 100%; height: 100%;
  background: var(--ink);
  overflow: hidden;
}
.album-card__img img {
  width: 100%; height: 100%;
  object-fit: cover;
  filter: saturate(0.85) contrast(1.05);
  transition: filter 0.4s, transform 0.6s;
}

.album-card__tape {
  position: absolute; top: -10px; left: 50%;
  width: 84px; height: 20px;
  background: rgba(212,183,143,0.55);
  border: 1px dashed rgba(90,8,9,0.18);
  box-shadow: 0 2px 6px rgba(42,20,8,0.15);
  transform: translateX(-50%) rotate(-3deg);
  z-index: 4;
}

.album-card:hover {
  transform: rotate(0deg) translateY(-6px) scale(1.02);
}
.album-card:hover .album-card__polaroid--0 {
  transform: rotate(0deg) translate(0, -4px);
  box-shadow: 0 24px 48px rgba(42,20,8,0.30), 0 8px 18px rgba(42,20,8,0.18);
}
.album-card:hover .album-card__polaroid--1 {
  transform: rotate(8deg) translate(28px, -2px);
}
.album-card:hover .album-card__polaroid--2 {
  transform: rotate(-10deg) translate(-30px, -4px);
}
.album-card:hover .album-card__img img {
  filter: saturate(1.05) contrast(1.1);
  transform: scale(1.04);
}
.album-card:focus-visible { outline: none; }
.album-card:focus-visible .album-card__polaroid--0 {
  box-shadow: 0 0 0 3px var(--gold), 0 18px 36px rgba(42,20,8,0.28);
}

.album-card__meta {
  text-align: center;
  display: flex; flex-direction: column; gap: 4px;
  margin-top: 4px;
}
.album-card__kicker {
  font-family: var(--sans);
  font-size: 11px; font-weight: 600;
  letter-spacing: 0.32em; text-transform: uppercase;
  color: var(--brand);
}
.album-card__title {
  font-family: var(--display);
  font-size: 22px; font-weight: 700;
  line-height: 1.1;
  color: var(--ink);
}
.album-card__count {
  font-family: var(--sans); font-style: italic;
  font-size: 13px;
  color: var(--ink-dim);
}

/* Album detail */
.album-detail {
  padding: 16px 0 32px;
  scroll-margin-top: 90px;
}
.album-detail__head {
  position: relative;
  max-width: 720px;
  margin: 8px auto 24px;
  text-align: center;
}
.album-detail__back {
  display: inline-flex; align-items: center; gap: 6px;
  appearance: none; background: transparent; border: 0;
  font-family: var(--sans); font-size: 12px; font-weight: 600;
  letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--ink-dim);
  cursor: pointer;
  padding: 8px 4px;
  margin-bottom: 12px;
  transition: color 0.25s;
}
.album-detail__back:hover { color: var(--gold); }
.album-detail__title-wrap {
  position: relative;
  padding: 22px 28px 18px;
  background: #fdf9f2;
  color: var(--ink);
  box-shadow:
    0 14px 28px rgba(42,20,8,0.18),
    0 4px 10px rgba(42,20,8,0.12);
  transform: rotate(-0.5deg);
}
.album-detail__title-wrap::before {
  content: '';
  position: absolute; inset: 5px;
  border: 1px solid rgba(90,8,9,0.18);
  pointer-events: none;
}
.album-detail__title-wrap::after {
  content: '';
  position: absolute; top: -10px; left: 50%;
  transform: translateX(-50%) rotate(-3deg);
  width: 100px; height: 20px;
  background: rgba(212,183,143,0.55);
  border: 1px dashed rgba(90,8,9,0.18);
  box-shadow: 0 2px 6px rgba(42,20,8,0.15);
}
.album-detail__kicker {
  display: block;
  font-family: var(--sans);
  font-size: 11px; font-weight: 600;
  letter-spacing: 0.32em; text-transform: uppercase;
  color: var(--brand);
  margin-bottom: 4px;
}
.album-detail__title {
  font-family: var(--display);
  font-size: clamp(26px, 4.4vw, 38px);
  font-weight: 700;
  line-height: 1.05;
  margin: 0 0 6px;
  color: var(--ink);
}
.album-detail__count {
  font-family: var(--sans); font-style: italic;
  font-size: 13px;
  color: rgba(42,20,8,0.65);
}

.album-detail__grid { padding: 32px 8px 18px; }
@media (min-width: 1280px) {
  .album-detail__grid { grid-template-columns: repeat(5, 1fr); gap: 56px 28px; }
}
@media (min-width: 1600px) {
  .album-detail__grid { grid-template-columns: repeat(6, 1fr); gap: 60px 32px; }
}

.album-detail .polaroid-caption {
  white-space: normal;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  line-height: 1.25;
}
.album-detail .polaroid { padding-bottom: 52px; }

/* When detail is open, hide the cover grid */
.gallery.is-detail .albums-grid { display: none; }
.gallery.is-detail {
  overflow-x: visible;
}
.gallery.is-detail .wrap-wide {
  padding-left: clamp(24px, 5vw, 56px);
  padding-right: clamp(24px, 5vw, 56px);
}
.gallery.is-detail .album-detail {
  padding-left: clamp(4px, 1.5vw, 12px);
  padding-right: clamp(4px, 1.5vw, 12px);
}
.gallery.is-detail .album-detail__head {
  padding-left: 8px;
  padding-right: 8px;
}
.gallery.is-detail .album-detail__grid {
  padding-left: clamp(12px, 3vw, 28px);
  padding-right: clamp(12px, 3vw, 28px);
}

@media (max-width: 599px) {
  .gallery.is-detail .wrap-wide {
    padding-left: 14px;
    padding-right: 14px;
  }
  .gallery.is-detail .album-detail {
    padding-left: 0;
    padding-right: 0;
  }
}

/* ─── EVENTS PAGE ─── */
.events { padding: 32px 0 96px; background: var(--bg); }

.weekly-polaroids {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 32px 28px;
  margin: 0 0 52px;
  padding: 12px 0 8px;
}
.polaroid--weekly {
  flex: 0 1 auto;
  padding: 12px 12px 42px;
  cursor: default;
}
.polaroid-img--weekly {
  width: 152px;
  height: 152px;
  display: grid;
  place-items: center;
  background:
    linear-gradient(145deg, rgba(90,8,9,0.88), rgba(42,20,8,0.96)),
    repeating-linear-gradient(-45deg, transparent, transparent 8px, rgba(255,255,255,0.05) 8px, rgba(255,255,255,0.05) 16px);
}
.weekly-polaroids .polaroid:nth-child(4n+2) .polaroid-img--weekly {
  background:
    linear-gradient(145deg, rgba(26,74,46,0.9), rgba(14,40,26,0.96)),
    repeating-linear-gradient(-45deg, transparent, transparent 8px, rgba(255,255,255,0.05) 8px, rgba(255,255,255,0.05) 16px);
}
.weekly-polaroids .polaroid:nth-child(4n+3) .polaroid-img--weekly {
  background:
    linear-gradient(145deg, rgba(120,78,18,0.92), rgba(62,40,8,0.96)),
    repeating-linear-gradient(-45deg, transparent, transparent 8px, rgba(255,255,255,0.05) 8px, rgba(255,255,255,0.05) 16px);
}
.weekly-polaroids .polaroid:nth-child(4n) .polaroid-img--weekly {
  background:
    linear-gradient(145deg, rgba(58,38,88,0.9), rgba(28,18,48,0.96)),
    repeating-linear-gradient(-45deg, transparent, transparent 8px, rgba(255,255,255,0.05) 8px, rgba(255,255,255,0.05) 16px);
}
.weekly-polaroid__day {
  font-family: var(--sans);
  font-weight: 700;
  font-size: clamp(18px, 4vw, 24px);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--g-cream);
  text-align: center;
  line-height: 1.15;
  padding: 10px;
}
.weekly-polaroids .polaroid-caption {
  font-style: normal;
  font-weight: 600;
  font-size: 14px;
  letter-spacing: 0.02em;
}
.polaroid-detail {
  display: block;
  margin-top: 4px;
  font-size: 12px;
  font-weight: 500;
  color: var(--muted);
  letter-spacing: 0.02em;
}
.polaroid--filter {
  border: none;
  background: none;
  font: inherit;
  text-align: inherit;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
}
.polaroid--filter.is-active .polaroid-img--weekly {
  outline: 3px solid var(--gold);
  outline-offset: 3px;
}
.polaroid-img--this-week {
  background:
    linear-gradient(145deg, rgba(18, 52, 86, 0.92), rgba(10, 28, 48, 0.96)),
    repeating-linear-gradient(-45deg, transparent, transparent 8px, rgba(255,255,255,0.05) 8px, rgba(255,255,255,0.05) 16px);
}
.polaroid-img--this-week .weekly-polaroid__day {
  font-size: clamp(13px, 2.8vw, 17px);
  letter-spacing: 0.06em;
}
.events-filter-empty {
  text-align: center;
  color: var(--muted);
  font-size: 15px;
  margin: 0 0 32px;
  padding: 24px 16px;
  border: 1px dashed rgba(0,0,0,0.12);
  border-radius: 8px;
}
.events-filter-empty.hidden { display: none; }
.event-playbill[hidden] { display: none !important; }
@media (min-width: 720px) {
  .polaroid-img--weekly { width: 168px; height: 168px; }
}
@media (min-width: 1024px) {
  .weekly-polaroids { gap: 40px 36px; }
  .polaroid-img--weekly { width: 180px; height: 180px; }
}
/* Hide Restaurateur.ch widget branding */
[class*="rch-"] [class*="powered"],
[class*="rch-"] [class*="branding"],
[class*="rch-"] [class*="credit"],
[class*="rch-"] [class*="footer"],
[class*="rch-"] a[href*="restaurateur.ch"],
[class*="rch-"] a[href*="restaurateur"],
[class*="rch-powered"],
[id*="rch-"] [class*="powered"],
[id*="rch-"] a[href*="restaurateur"],
.rch-footer,
.rch-branding,
.rch-powered-by,
.rch-credit { display: none !important; }

/* Pickwick custom booking confirmation */
.pw-book-loader {
  position: fixed; inset: 0;
  background: rgba(8, 5, 2, 0.55);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  display: flex; align-items: center; justify-content: center;
  opacity: 0; visibility: hidden;
  transition: opacity 0.25s ease, visibility 0s linear 0.25s;
  z-index: 100000;
}
.pw-book-loader.is-open {
  opacity: 1; visibility: visible;
  transition: opacity 0.25s ease, visibility 0s linear 0s;
}
.pw-book-loader__inner {
  display: flex; flex-direction: column; align-items: center; gap: 16px;
  background: rgba(20, 12, 6, 0.92);
  color: #fff;
  padding: 28px 36px;
  border-radius: 14px;
  border: 1px solid rgba(212, 175, 55, 0.4);
  box-shadow: 0 24px 80px -20px rgba(0,0,0,0.6);
  min-width: 220px;
}
.pw-book-loader__text {
  margin: 0;
  font-family: var(--sans);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.85);
}
.pw-book-spinner {
  width: 44px; height: 44px;
  border-radius: 50%;
  border: 3px solid rgba(255,255,255,0.15);
  border-top-color: var(--gold, #d4af37);
  animation: pwSpin 0.9s linear infinite;
}
@keyframes pwSpin { to { transform: rotate(360deg); } }

.pw-platter-modal {
  position: fixed; inset: 0;
  background: rgba(8, 5, 2, 0.55);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  display: flex; align-items: center; justify-content: center;
  padding: 24px;
  opacity: 0; visibility: hidden;
  transition: opacity 0.25s ease, visibility 0s linear 0.25s;
  z-index: 100001;
}
.pw-platter-modal.is-open {
  opacity: 1; visibility: visible;
  transition: opacity 0.25s ease, visibility 0s linear 0s;
}
.pw-platter-modal__card {
  position: relative;
  width: 100%; max-width: 420px;
  background: #fff;
  color: var(--ink);
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 28px 24px 22px;
  box-shadow: 0 24px 60px -20px rgba(42, 20, 8, 0.35);
  transform: translateY(12px) scale(0.98);
  opacity: 0;
  transition: transform 0.35s cubic-bezier(.2,.8,.2,1), opacity 0.3s ease;
}
.pw-platter-modal.is-open .pw-platter-modal__card {
  transform: translateY(0) scale(1);
  opacity: 1;
}
.pw-platter-modal__close {
  position: absolute; top: 8px; right: 12px;
  background: transparent; border: 0;
  color: var(--muted, #6b5f54);
  font-size: 26px; line-height: 1;
  cursor: pointer; padding: 4px 8px;
  transition: color 0.2s ease;
}
.pw-platter-modal__close:hover { color: var(--ink); }
.pw-platter-modal__title {
  margin: 0 32px 8px 0;
  font-family: var(--serif);
  font-size: 1.35rem;
  font-weight: 600;
  color: var(--ink);
}
.pw-platter-modal__serves {
  margin: 0 0 6px;
  font-size: 14px;
  color: var(--muted, #6b5f54);
}
.pw-platter-modal__price {
  margin: 0 0 14px;
  font-size: 17px;
  font-weight: 700;
  color: var(--gold);
}
.pw-platter-modal__desc,
.pw-platter-modal__note {
  margin: 0;
  font-size: 15px;
  line-height: 1.55;
  color: var(--ink);
}
.pw-platter-modal__includes {
  margin-top: 4px;
}
.pw-platter-modal__includes-label {
  margin: 0 0 6px;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--muted, #6b5f54);
}
.pw-platter-modal__includes ul {
  margin: 0;
  padding: 0 0 0 18px;
  font-size: 15px;
  line-height: 1.5;
  color: var(--ink);
}
.pw-platter-modal__note {
  margin-top: 12px;
  font-style: italic;
  color: var(--muted, #6b5f54);
}

.pw-book-thanks {
  position: fixed; inset: 0;
  background: rgba(8, 5, 2, 0.7);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  display: flex; align-items: center; justify-content: center;
  padding: 24px;
  opacity: 0; visibility: hidden;
  transition: opacity 0.3s ease, visibility 0s linear 0.3s;
  z-index: 100001;
}
.pw-book-thanks.is-open {
  opacity: 1; visibility: visible;
  transition: opacity 0.3s ease, visibility 0s linear 0s;
}
.pw-book-thanks__card {
  position: relative;
  width: 100%; max-width: 460px;
  background: linear-gradient(180deg, #1a0e07 0%, #0e0703 100%);
  color: #fff;
  border: 1px solid rgba(212, 175, 55, 0.35);
  border-radius: 18px;
  padding: 36px 28px 28px;
  text-align: center;
  box-shadow: 0 30px 90px -20px rgba(0,0,0,0.7), 0 0 60px rgba(212, 175, 55, 0.08);
  transform: translateY(20px) scale(0.96);
  opacity: 0;
  transition: transform 0.45s cubic-bezier(.2,.8,.2,1), opacity 0.4s ease;
}
.pw-book-thanks.is-open .pw-book-thanks__card {
  transform: translateY(0) scale(1);
  opacity: 1;
  transition-delay: 0.05s;
}
.pw-book-thanks__close {
  position: absolute; top: 10px; right: 14px;
  background: transparent; border: 0;
  color: rgba(255,255,255,0.55);
  font-size: 28px; line-height: 1;
  cursor: pointer; padding: 4px 10px;
  transition: color 0.2s ease;
}
.pw-book-thanks__close:hover { color: #fff; }
.pw-book-thanks__logo img {
  display: block;
  height: 84px;
  width: auto;
  margin: 0 auto 6px;
  filter: drop-shadow(0 4px 18px rgba(0,0,0,0.5));
}
.pw-book-thanks__check {
  color: var(--gold, #d4af37);
  margin: 8px auto 14px;
  width: 56px; height: 56px;
}
.pw-book-thanks.is-open .pw-check-ring {
  animation: pwRingDraw 0.6s ease-out 0.2s both;
}
.pw-book-thanks.is-open .pw-check-mark {
  animation: pwCheckDraw 0.45s ease-out 0.55s both;
}
.pw-check-ring { stroke-dasharray: 164; stroke-dashoffset: 164; }
.pw-check-mark { stroke-dasharray: 48; stroke-dashoffset: 48; }
@keyframes pwRingDraw { to { stroke-dashoffset: 0; } }
@keyframes pwCheckDraw { to { stroke-dashoffset: 0; } }
.pw-book-thanks__title {
  font-family: var(--serif, var(--sans));
  font-size: 28px;
  font-weight: 700;
  letter-spacing: 0.02em;
  margin: 0 0 8px;
  color: var(--gold, #d4af37);
}
.pw-book-thanks__lead {
  margin: 0 0 8px;
  font-size: 15px;
  font-weight: 500;
  color: rgba(255,255,255,0.92);
}
.pw-book-thanks__sub {
  margin: 0 0 22px;
  font-size: 13px;
  color: rgba(255,255,255,0.65);
}
.pw-book-thanks__cta {
  display: inline-block;
  background: var(--gold, #d4af37);
  color: #1a0e07;
  border: 0; border-radius: 999px;
  padding: 12px 32px;
  font-family: var(--sans);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background 0.25s ease, transform 0.25s ease, box-shadow 0.25s ease;
  box-shadow: 0 8px 24px rgba(212, 175, 55, 0.3);
}
.pw-book-thanks__cta:hover {
  background: #fff;
  transform: translateY(-1px);
  box-shadow: 0 12px 30px rgba(212, 175, 55, 0.45);
}

/* Quote request confirmation - light theme */
.pw-quote-thanks {
  background: rgba(250, 246, 242, 0.88);
}
.pw-quote-thanks .pw-book-thanks__card {
  background: #fff;
  color: var(--ink);
  border: 1px solid var(--line);
  box-shadow: 0 24px 64px -24px rgba(42, 20, 8, 0.18), 0 0 0 1px rgba(42, 20, 8, 0.04);
}
.pw-quote-thanks .pw-book-thanks__close {
  color: var(--ink-dim);
}
.pw-quote-thanks .pw-book-thanks__close:hover {
  color: var(--ink);
}
.pw-quote-thanks .pw-book-thanks__logo img {
  filter: none;
}
.pw-quote-thanks .pw-book-thanks__check {
  color: var(--gold);
}
.pw-quote-thanks .pw-book-thanks__title {
  color: var(--gold);
  font-family: var(--sans);
}
.pw-quote-thanks .pw-book-thanks__lead {
  color: var(--ink);
  font-size: 16px;
  line-height: 1.55;
  max-width: 32ch;
  margin-left: auto;
  margin-right: auto;
}
.pw-quote-thanks .pw-book-thanks__cta {
  background: var(--gold);
  color: #fff;
  box-shadow: 0 8px 24px rgba(90, 8, 9, 0.2);
}
.pw-quote-thanks .pw-book-thanks__cta:hover {
  background: var(--ink);
  color: #fff;
  box-shadow: 0 12px 28px rgba(42, 20, 8, 0.22);
}

.events-credit {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin: 36px auto 8px;
  text-align: center;
}
.events-credit__label {
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--muted);
}
.events-credit__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 0 !important;
  padding: 0 !important;
  transition: opacity 0.25s ease, transform 0.25s ease;
  opacity: 0.85;
}
.events-credit__link:hover { opacity: 1; transform: translateY(-1px); }
.events-credit__logo {
  display: block;
  height: 34px;
  width: auto;
}
.events-frame {
  border: 1px solid var(--line);
  background: var(--bg-1);
  overflow: hidden;
}
.events-frame iframe {
  width: 100%; height: 1100px; border: 0; display: block;
}
.events-note {
  margin-top: 24px;
  text-align: center;
  font-size: 13px; color: var(--ink-dim);
}
.events-note a { color: var(--gold); }

.weekly-polaroids .polaroid--weekly {
  display: block;
  text-decoration: none;
  color: inherit;
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.weekly-polaroids .polaroid--weekly:hover {
  transform: rotate(0deg) scale(1.04) !important;
  z-index: 2;
}

.nav-dd-day,
.drawer-link-day {
  display: inline-block;
  min-width: 4.5em;
  font-weight: 600;
  font-size: 0.92em;
  color: var(--green);
  letter-spacing: 0.02em;
}

/* ─── Recurring event pages ─── */
.events-page { padding: 20px 0 100px; }
.events-page .ev-breadcrumb {
  font-size: 13px;
  color: var(--muted);
  margin-bottom: 24px;
}
.events-page .ev-breadcrumb a { color: var(--gold); }
.events-page--hango .ev-hango-layout {
  display: grid;
  gap: 32px;
  align-items: start;
}
@media (min-width: 900px) {
  .events-page--hango .ev-hango-layout {
    grid-template-columns: minmax(260px, 360px) minmax(0, 1fr);
    gap: 40px;
  }
}
.ev-hango-aside {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
  width: 100%;
}
.ev-hango-aside .ev-hango-poster {
  width: 100%;
}
.events-credit--poster {
  margin: 4px 0 0;
  width: 100%;
}
.ev-hango-poster {
  position: relative;
  margin: 0;
  border-radius: var(--r);
  overflow: hidden;
  border: 1px solid var(--line);
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.12);
}
.ev-hango-poster img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
}
.ev-hango-poster .event-playbill__date-badge {
  top: 14px;
  right: 14px;
}
.ev-hango-head {
  margin-bottom: 20px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--line);
}
.ev-hango-when {
  display: block;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 10px;
}
.ev-hango-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 16px;
  font-size: 14px;
  color: var(--ink-dim);
}
.ev-hango-meta__price {
  font-weight: 700;
  color: var(--ink);
}
.ev-hango-body.prose {
  font-size: 16px;
  line-height: 1.65;
  color: var(--ink);
}
.ev-hango-body.prose p { margin: 0 0 1em; }
.ev-hango-body.prose p:last-child { margin-bottom: 0; }
.ev-hango-body.prose ul,
.ev-hango-body.prose ol { margin: 0 0 1em; padding-left: 1.25em; }
.ev-hango-body.prose a {
  color: var(--gold);
  text-decoration: underline;
  text-underline-offset: 2px;
}
.ev-hango-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 28px;
}
.ev-recurring-intro {
  text-align: center;
  max-width: 52ch;
  margin: 0 auto 32px;
}
.ev-recurring-icon {
  display: block;
  font-size: clamp(48px, 10vw, 72px);
  line-height: 1;
  margin-bottom: 12px;
}
.ev-recurring-when { margin: 0 0 8px; }
.ev-recurring-day {
  display: inline-block;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--green);
}
.ev-recurring-tagline {
  margin: 0;
  font-family: 'Berkshire Swash', serif;
  font-size: clamp(22px, 4vw, 30px);
  color: var(--ink);
  line-height: 1.25;
}
.ev-recurring-body {
  max-width: 62ch;
  margin: 0 auto 32px;
  font-size: 17px;
  line-height: 1.75;
  color: var(--ink-dim);
}
.ev-recurring-body p + p { margin-top: 1em; }
.ev-recurring-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  max-width: 520px;
  margin: 0 auto 40px;
  padding: 0;
  list-style: none;
  text-align: center;
}
.ev-recurring-stats strong {
  display: block;
  font-size: clamp(28px, 5vw, 40px);
  color: var(--gold);
  line-height: 1;
}
.ev-recurring-stats span {
  display: block;
  margin-top: 6px;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--muted);
}
.ev-recurring-subtitle {
  text-align: center;
  font-family: 'Berkshire Swash', serif;
  font-size: clamp(24px, 4vw, 32px);
  color: var(--ink);
  margin: 0 0 24px;
}
.ev-recurring-empty {
  text-align: center;
  max-width: 36ch;
  margin: 32px auto 48px;
  font-size: 16px;
  line-height: 1.6;
  color: rgba(42,20,8,0.75);
}
.ev-recurring-empty a { color: var(--gold); }

/* === Events - This Week page === */
.events-page--week .ev-week-intro {
  text-align: center;
  max-width: 640px;
  margin: 0 auto 40px;
}
.events-page--week .ev-week-range {
  font-family: var(--serif);
  font-size: clamp(22px, 4vw, 32px);
  color: var(--ink);
  margin: 12px 0 8px;
}
.events-page--week .ev-week-lead {
  color: var(--muted);
  font-size: 16px;
  line-height: 1.5;
  margin: 0;
}
.ev-week-groups {
  display: grid;
  gap: 48px;
  margin-bottom: 40px;
}
.ev-week-day__title {
  font-family: var(--sans);
  font-weight: 600;
  font-size: 13px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--green);
  text-align: center;
  margin: 0 0 28px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--line);
}
.ev-week-day .event-board {
  margin-bottom: 0;
}

/* This Week - weekly strip (Mon / Pub Quiz …) */
.ev-week-strip {
  margin: 0 0 40px;
  padding: 20px 22px;
  background: linear-gradient(145deg, rgba(12, 8, 6, 0.96), rgba(22, 14, 10, 0.98));
  border-radius: var(--r);
  border: 1px solid rgba(255, 255, 255, 0.08);
}
.ev-week-strip__title {
  font-family: var(--sans);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(243, 233, 200, 0.55);
  margin: 0 0 14px;
  text-align: center;
}
.ev-week-strip__list {
  list-style: none;
  display: grid;
  gap: 6px;
}
.ev-week-strip__row {
  display: grid;
  grid-template-columns: 72px 1fr auto;
  align-items: center;
  gap: 12px 16px;
  padding: 12px 14px;
  border-radius: 10px;
  text-decoration: none;
  color: inherit;
  transition: background 0.2s;
}
.ev-week-strip__row:hover {
  background: rgba(255, 255, 255, 0.06);
}
.ev-week-strip__day {
  font-family: var(--sans);
  font-weight: 700;
  font-size: 14px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--green);
}
.ev-week-strip__label {
  font-family: var(--sans);
  font-weight: 600;
  font-size: 16px;
  color: var(--g-cream, #f3e9c8);
}
.ev-week-strip__note {
  font-size: 12px;
  color: rgba(243, 233, 200, 0.5);
  white-space: nowrap;
}
@media (max-width: 520px) {
  .ev-week-strip__row {
    grid-template-columns: 56px 1fr;
  }
  .ev-week-strip__note {
    grid-column: 2;
    white-space: normal;
  }
}

.ev-week-schedule { display: grid; gap: 40px; margin-bottom: 36px; }
.ev-week-day-recurring {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 0 0 20px;
}
.ev-week-pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 14px;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: var(--bg-1);
  text-decoration: none;
  color: var(--ink);
  font-size: 14px;
  transition: border-color 0.2s, transform 0.2s;
}
.ev-week-pill:hover {
  border-color: var(--gold);
  transform: translateY(-1px);
}
.ev-week-pill__icon { font-size: 16px; }
.ev-week-pill__label { font-weight: 600; }
.ev-week-pill__meta {
  font-size: 11px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--muted);
}
.ev-week-day-block { margin-top: 8px; }
.ev-week-day-block + .ev-week-day-block { margin-top: 24px; }
.ev-week-day-block__title {
  font-family: var(--sans);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--gold);
  margin: 0 0 12px;
}
.ev-week-fx-list { margin: 0; }
.ev-week-sky-note {
  text-align: center;
  font-size: 14px;
  color: var(--muted);
  margin: 0 0 32px;
}
.ev-week-sky-note a { color: var(--gold); }

/* This Week - polaroid calendar grid */
.ev-week-calendar {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 28px 20px;
  margin: 0 0 48px;
  padding: 8px 0 12px;
  align-items: start;
}
.ev-cal-polaroid {
  width: 100%;
  max-width: 220px;
  margin-inline: auto;
  padding: 12px 12px 18px;
  cursor: default;
  transform: rotate(var(--rot, 0deg));
}
.ev-cal-polaroid:hover {
  transform: rotate(0deg) translateY(-4px) scale(1.02);
}
.ev-cal-polaroid.is-today {
  box-shadow:
    0 16px 32px rgba(42,20,8,0.22),
    0 0 0 2px rgba(201, 162, 39, 0.55);
}
.ev-cal-polaroid__head {
  width: 100%;
  height: auto;
  min-height: 118px;
  aspect-ratio: 1;
  display: grid;
  place-items: center;
  position: relative;
  padding: 14px 10px;
}
.ev-cal-polaroid__head--1 {
  background:
    linear-gradient(145deg, rgba(90,8,9,0.88), rgba(42,20,8,0.96)),
    repeating-linear-gradient(-45deg, transparent, transparent 8px, rgba(255,255,255,0.05) 8px, rgba(255,255,255,0.05) 16px);
}
.ev-cal-polaroid__head--2 {
  background:
    linear-gradient(145deg, rgba(26,74,46,0.9), rgba(14,40,26,0.96)),
    repeating-linear-gradient(-45deg, transparent, transparent 8px, rgba(255,255,255,0.05) 8px, rgba(255,255,255,0.05) 16px);
}
.ev-cal-polaroid__head--3 {
  background:
    linear-gradient(145deg, rgba(120,78,18,0.92), rgba(62,40,8,0.96)),
    repeating-linear-gradient(-45deg, transparent, transparent 8px, rgba(255,255,255,0.05) 8px, rgba(255,255,255,0.05) 16px);
}
.ev-cal-polaroid__head--4 {
  background:
    linear-gradient(145deg, rgba(58,38,88,0.9), rgba(28,18,48,0.96)),
    repeating-linear-gradient(-45deg, transparent, transparent 8px, rgba(255,255,255,0.05) 8px, rgba(255,255,255,0.05) 16px);
}
.ev-cal-polaroid__date {
  display: grid;
  justify-items: center;
  gap: 2px;
  text-align: center;
}
.ev-cal-polaroid__dow {
  font-family: var(--sans);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(243, 233, 200, 0.72);
}
.ev-cal-polaroid__num {
  font-family: var(--serif);
  font-size: clamp(34px, 8vw, 44px);
  line-height: 1;
  color: var(--g-cream);
}
.ev-cal-polaroid__month {
  font-family: var(--sans);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.18em;
  color: rgba(243, 233, 200, 0.82);
}
.ev-cal-polaroid__today {
  position: absolute;
  top: 10px;
  right: 10px;
  padding: 3px 8px;
  border-radius: 999px;
  background: rgba(201, 162, 39, 0.92);
  color: #2a1408;
  font-family: var(--sans);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.ev-cal-polaroid__body {
  padding: 12px 2px 0;
  min-height: 88px;
}
.ev-cal-polaroid__empty {
  margin: 0;
  text-align: center;
  font-size: 13px;
  font-style: italic;
  color: var(--muted);
  padding: 18px 8px 8px;
}
.ev-cal-polaroid__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 8px;
}
.ev-cal-item__link {
  display: block;
  padding: 8px 10px;
  border-radius: 8px;
  background: rgba(42, 20, 8, 0.04);
  text-decoration: none;
  color: inherit;
  transition: background 0.2s, transform 0.2s;
}
a.ev-cal-item__link:hover {
  background: rgba(90, 8, 9, 0.08);
  transform: translateX(2px);
}
.ev-cal-item__time {
  display: block;
  font-family: var(--sans);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: var(--green);
  margin-bottom: 3px;
}
.ev-cal-item__icon {
  display: inline-block;
  margin-right: 4px;
  font-size: 14px;
  vertical-align: middle;
}
.ev-cal-item__label {
  display: inline;
  font-family: var(--sans);
  font-size: 12px;
  font-weight: 600;
  line-height: 1.35;
  color: var(--ink);
}
.ev-cal-item__meta {
  display: block;
  margin-top: 3px;
  font-size: 10px;
  letter-spacing: 0.04em;
  color: var(--muted);
  text-transform: uppercase;
}
@media (min-width: 720px) {
  .ev-week-calendar {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 32px 24px;
  }
  .ev-cal-polaroid { max-width: 240px; }
}
@media (min-width: 1024px) {
  .ev-week-calendar {
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 18px 14px;
  }
  .ev-cal-polaroid {
    max-width: none;
    padding-bottom: 16px;
  }
  .ev-cal-polaroid__head { min-height: 108px; }
}
@media (min-width: 1280px) {
  .ev-week-calendar { gap: 22px 18px; }
}

.weekly-polaroids--compact {
  margin: 32px 0 48px;
}
.polaroid--this-week-link:hover .polaroid-img--weekly {
  outline: 3px solid var(--gold);
  outline-offset: 3px;
}
.ev-recurring-sports { margin-bottom: 40px; }
.ev-recurring-sports-lead {
  text-align: center;
  max-width: 52ch;
  margin: 0 auto 28px;
  font-size: 17px;
  line-height: 1.7;
  color: var(--ink-dim);
}
.ev-recurring-sport-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: 12px;
  list-style: none;
  padding: 0;
  margin: 0 0 24px;
}
.ev-recurring-sport-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  padding: 16px 12px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--bg-1);
  text-decoration: none;
  color: inherit;
  transition: border-color 0.2s, transform 0.2s;
}
.ev-recurring-sport-card:hover {
  border-color: var(--gold);
  transform: translateY(-2px);
}
.ev-recurring-sport-icon { font-size: 28px; }
.ev-recurring-sport-name {
  font-weight: 600;
  font-size: 14px;
  text-align: center;
}
.ev-recurring-sport-more {
  font-size: 11px;
  color: var(--gold);
  letter-spacing: 0.06em;
}
.ev-recurring-sports-cta { text-align: center; }
@media (max-width: 520px) {
  .ev-recurring-stats { grid-template-columns: 1fr; gap: 12px; }
}

/* === Events board - playbill posters (polaroid-adjacent) === */
.event-board {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 40px 32px;
  margin-top: 40px;
  padding: 8px 0 16px;
}
@media (min-width: 900px) {
  .event-board { gap: 48px 36px; }
}

.event-playbill {
  position: relative;
  flex: 0 1 280px;
  max-width: 300px;
  background: #fdf9f2;
  padding: 14px 14px 18px;
  box-shadow:
    0 16px 32px rgba(42, 20, 8, 0.16),
    0 4px 10px rgba(42, 20, 8, 0.1);
  transform: rotate(var(--rot, 0deg));
  transition: transform 0.45s cubic-bezier(.2,.8,.2,1), box-shadow 0.4s;
  animation: eventPlaybillIn 0.65s cubic-bezier(.22,.85,.32,1) both;
  animation-delay: calc(var(--i, 0) * 60ms);
}
@keyframes eventPlaybillIn {
  from { opacity: 0; transform: rotate(var(--rot, 0deg)) translateY(24px); }
  to   { opacity: 1; transform: rotate(var(--rot, 0deg)) translateY(0); }
}
.event-playbill:hover {
  transform: rotate(0deg) translateY(-6px) scale(1.02);
  box-shadow:
    0 24px 48px rgba(42, 20, 8, 0.22),
    0 8px 18px rgba(42, 20, 8, 0.14);
  z-index: 2;
}
.event-playbill__cover-link {
  position: absolute;
  inset: 0;
  z-index: 1;
  border-radius: 0;
  text-decoration: none;
}
.event-playbill__pin {
  position: absolute;
  top: -9px;
  left: 50%;
  transform: translateX(-50%);
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 35%, #e8c97a, var(--gold) 55%, #8a5a08);
  box-shadow: 0 2px 4px rgba(0,0,0,0.25);
  z-index: 3;
}
.event-playbill__pin::after {
  content: '';
  position: absolute;
  inset: 3px;
  border-radius: 50%;
  background: rgba(255,255,255,0.35);
}

.event-playbill__visual {
  display: block;
  position: relative;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  background: var(--ink);
  margin-bottom: 12px;
  text-decoration: none;
}
.event-playbill__visual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(0.9) contrast(1.05);
  transition: transform 0.5s, filter 0.4s;
}
.event-playbill:hover .event-playbill__visual img {
  filter: saturate(1.02) contrast(1.08);
  transform: scale(1.04);
}
.event-playbill__visual--empty {
  background:
    linear-gradient(145deg, rgba(90,8,9,0.85), rgba(42,20,8,0.95)),
    repeating-linear-gradient(-45deg, transparent, transparent 8px, rgba(255,255,255,0.04) 8px, rgba(255,255,255,0.04) 16px);
}

.event-playbill__date-badge {
  position: absolute;
  top: 10px;
  right: 10px;
  display: flex;
  flex-direction: column;
  align-items: center;
  min-width: 54px;
  padding: 6px 8px 8px;
  background: var(--gold);
  color: #fff;
  text-align: center;
  box-shadow: 0 4px 12px rgba(0,0,0,0.25);
  transform: rotate(3deg);
}
.event-playbill__wday {
  font-size: 9px;
  font-weight: 600;
  letter-spacing: 0.14em;
}
.event-playbill__day {
  font-family: var(--display);
  font-size: 26px;
  font-weight: 700;
  line-height: 1;
  margin: 2px 0;
}
.event-playbill__month {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.18em;
}
.event-playbill__time {
  margin-top: 4px;
  padding-top: 4px;
  border-top: 1px solid rgba(255,255,255,0.35);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.08em;
}

.event-playbill__body {
  position: relative;
  z-index: 0;
  padding: 0 2px;
  text-align: center;
}
.event-playbill__when {
  display: block;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ink-dim);
  margin-bottom: 6px;
}
.event-playbill__title {
  font-family: var(--sans);
  font-size: 20px;
  font-weight: 700;
  line-height: 1.15;
  color: var(--ink);
  margin: 0 0 8px;
}
.event-playbill__excerpt {
  font-size: 13px;
  line-height: 1.55;
  color: rgba(42, 20, 8, 0.72);
  margin: 0 0 12px;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.event-playbill__meta {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px 12px;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 10px;
}
.event-playbill__price {
  padding: 3px 10px;
  border: 1px solid var(--gold);
  border-radius: 999px;
}
.event-playbill__cta {
  position: relative;
  z-index: 2;
  display: inline-block;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink);
  text-decoration: none;
  border-bottom: 1px solid var(--gold);
  padding-bottom: 2px;
  transition: color 0.25s, border-color 0.25s;
}
.event-playbill__cta + .event-playbill__cta {
  margin-left: 12px;
}
.event-playbill__cta--detail {
  color: var(--gold);
  border-color: var(--gold);
}
.event-playbill__cta:hover {
  color: var(--gold);
  border-color: var(--ink);
}

@media (prefers-reduced-motion: reduce) {
  .event-playbill { animation: none; }
  .event-playbill:hover { transform: none; }
}

/* Legacy hango blocks (admin preview / fallback) */
.hango-events {
  display: grid;
  gap: 16px;
  margin-top: 32px;
}
.hango-events--cards {
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
}
.hango-events--list {
  grid-template-columns: 1fr;
}
.hango-event {
  border: 1px solid var(--line);
  background: var(--bg-1);
  padding: 20px 22px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.hango-events--list .hango-event {
  flex-direction: row;
  align-items: flex-start;
  gap: 24px;
}
.hango-event__date {
  font-family: var(--sans);
  font-size: 12px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--gold);
  white-space: nowrap;
}
.hango-events--list .hango-event__date {
  min-width: 120px;
  padding-top: 4px;
}
.hango-event__title {
  font-family: var(--serif);
  font-size: 22px;
  font-weight: 400;
  color: var(--ink);
  margin: 0 0 6px;
}
.hango-event__desc {
  font-size: 14px;
  line-height: 1.55;
  color: var(--ink-dim);
  margin: 0;
}
.hango-event__desc--html p { margin: 0 0 8px; }
.hango-event__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 8px;
  font-size: 12px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ink-dim);
}
.hango-event__meta a { color: var(--gold); }

/* ─── Footer ─── */
.foot {
  background: var(--ink);
  color: #fff;
  padding: 64px 0 24px;
  border-top: 1px solid var(--line);
}
.foot .foot-since { color: rgba(255,255,255,0.55); }
.foot .foot-k { color: #e8c9a8; }
.foot .foot-grid p { color: rgba(255,255,255,0.75); }
.foot .foot-grid p a:hover { color: #e8c9a8; }
.foot .foot-bar { color: rgba(255,255,255,0.55); border-top-color: rgba(255,255,255,0.12); }
.foot .foot-bar a { color: rgba(255,255,255,0.8); }
.foot .foot-bar a:hover { color: #e8c9a8; }
.foot .foot-mark { border-color: rgba(255,255,255,0.12) !important; }
.foot .foot-logo { filter: brightness(1.05); }
.foot-wrap {
  max-width: var(--wrap); margin: 0 auto; padding: 0 22px;
  display: grid; grid-template-columns: 1fr; gap: 40px;
}
.foot-mark { text-align: center; padding-bottom: 32px; border-bottom: 1px solid var(--line); }
.foot-logo {
  width: 100%; max-width: 240px; height: auto;
  display: block; margin: 0 auto;
}
@media (min-width: 720px) { .foot-logo { margin: 0; } }
.foot-since {
  margin-top: 6px;
  font-size: 10px; font-weight: 500;
  letter-spacing: 0.28em; text-transform: uppercase;
  color: var(--ink-dim);
}
.foot-grid {
  display: grid; grid-template-columns: repeat(2, 1fr); gap: 28px;
}
.foot-k {
  font-size: 10px; font-weight: 500;
  letter-spacing: 0.22em; text-transform: uppercase;
  color: var(--gold); margin-bottom: 10px;
}
.foot-grid p {
  font-family: var(--sans); font-weight: 400; font-size: 14px;
  color: var(--ink-dim); line-height: 1.6;
}
.foot-grid p a:hover { color: var(--gold); }
.foot-bar {
  max-width: var(--wrap); margin: 32px auto 0;
  padding: 18px 22px 0; border-top: 1px solid var(--line);
  display: flex; flex-direction: column; gap: 8px; align-items: center;
  font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase;
  color: var(--muted);
}
.foot-bar a { color: var(--ink-dim); }
.foot-bar a:hover { color: var(--gold); }

@media (max-width: 719px) {
  .foot-wrap,
  .foot-wrap .foot-grid,
  .foot-wrap .foot-grid > * {
    text-align: center;
  }
  .foot-wrap .foot-grid {
    grid-template-columns: 1fr;
    justify-items: center;
  }
  .foot-wrap .foot-grid p,
  .foot-wrap .foot-k {
    text-align: center;
  }
  .foot-wrap .foot-soc,
  .foot-wrap .foot-socials,
  .foot-wrap .foot-social,
  .foot-wrap .foot-payment-icons,
  .foot-wrap ul {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
  }
  .foot-wrap .foot-pay { display: flex; justify-content: center; }
}

/* ─── Lightbox ─── */
.lb {
  position: fixed; inset: 0; z-index: 200;
  background: rgba(42,20,8,0.96);
  display: none;
  align-items: center; justify-content: center;
  padding: 16px;
}
.lb.is-open { display: flex; }
.lb img {
  max-width: 100vw; max-height: 80vh; object-fit: contain;
  box-shadow: 0 20px 80px rgba(0,0,0,0.6);
}
.lb img[hidden], .lb video[hidden] { display: none !important; }
.lb video {
  max-width: min(100vw - 32px, calc(85vh * 9 / 16));
  max-height: 85vh;
  width: auto;
  height: auto;
  object-fit: contain;
  box-shadow: 0 20px 80px rgba(0,0,0,0.6);
  background: #000;
}
.lb-close, .lb-prev, .lb-next {
  position: absolute;
  width: 48px; height: 48px; border-radius: 50%;
  border: 1px solid rgba(255,255,255,0.3);
  color: #fff; font-size: 22px;
  display: grid; place-items: center; line-height: 1;
  background: rgba(42,20,8,0.6);
}
.lb-close { top: 16px; right: 16px; }
.lb-prev  { left: 12px; top: 50%; transform: translateY(-50%); }
.lb-next  { right: 12px; top: 50%; transform: translateY(-50%); }
.lb-close:hover, .lb-prev:hover, .lb-next:hover { background: var(--gold); color: #fff; border-color: var(--gold); }
.lb-meta {
  position: absolute; bottom: 16px; left: 50%; transform: translateX(-50%);
  font-size: 11px; letter-spacing: 0.22em; text-transform: uppercase;
  color: var(--ink-dim);
}

/* ─── Anchor offsets ─── */
section[id] { scroll-margin-top: calc(var(--nav-h) + 16px); }

/* ===================== TABLET ≥ 720 ===================== */
@media (min-width: 720px) {
  section { padding: 96px 0; }
  .wrap, .wrap-wide { padding: 0 36px; }

  .about-grid    { grid-template-columns: 1fr 1.2fr; gap: 60px; align-items: start; }
  .about-stats   { grid-template-columns: repeat(4, 1fr); gap: 24px; }

  .weekly-grid   { grid-template-columns: repeat(2, 1fr); gap: 18px; }
  .sig-grid      { grid-template-columns: repeat(2, 1fr); gap: 20px; }
  .cocktails-grid{ grid-template-columns: 1fr 1fr; gap: 56px; }
  .preview-grid  { grid-template-columns: repeat(3, 1fr); gap: 8px; }
  .gallery-grid  { grid-template-columns: repeat(3, 1fr); gap: 6px; }

  .visit-grid    { grid-template-columns: 1fr 1fr; gap: 48px; align-items: stretch; }
  .visit-map     { height: 100%; min-height: 460px; }

  .foot-wrap     { grid-template-columns: 1fr 2fr; align-items: start; gap: 48px; }
  .foot-mark     { grid-column: 1; grid-row: 1 / span 2; border-bottom: 0; border-right: 1px solid var(--line); padding: 0 32px 0 0; text-align: left; }
  .foot-grid     { grid-column: 2; grid-row: 1; grid-template-columns: repeat(4, 1fr); gap: 32px; }
  .foot-pay      { grid-column: 2; grid-row: 2; padding-top: 16px; margin-top: 4px; }
  .foot-bar      { flex-direction: row; justify-content: space-between; }
}

/* ===================== DESKTOP ≥ 1024 ===================== */
@media (min-width: 1024px) {
  :root { --nav-h: 120px; --nav-h-scrolled: 84px; }

  .nav-links { display: flex; }
  .nav-cta   { display: none; }
  .nav-burger { display: none !important; }
  .nav-drawer { display: none !important; }
  .nav-backdrop { display: none !important; }
  .nav-tel { display: none !important; }
  .nav-cta-inline {
    margin-left: 12px;
    padding: 10px 22px;
    background: var(--gold); color: #fff !important;
    border-radius: 999px;
    font-weight: 600;
  }
  .nav-cta-inline::after { display: none; }
  .nav-cta-inline:hover { background: var(--ink); color: #fff; }

  section { padding: 120px 0; }

  .weekly-grid  { grid-template-columns: repeat(5, 1fr); }
  .sig-grid     { grid-template-columns: repeat(3, 1fr); gap: 24px; }
  .preview-grid { grid-template-columns: repeat(6, 1fr); gap: 8px; }
  .gallery-grid { grid-template-columns: repeat(4, 1fr); gap: 8px; }

  .menu-items {
    grid-template-columns: 1fr 1fr;
    gap: 28px 56px;
  }
}

@media (min-width: 1280px) {
  .gallery-grid { grid-template-columns: repeat(5, 1fr); }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
  }
  .hero-video { display: none; }
}

/* === Bookings section === */
.bookings {
  padding: clamp(60px, 9vw, 110px) 0;
  background: var(--bg-1);
  border-top: 1px solid rgba(42,20,8,0.08);
  border-bottom: 1px solid rgba(42,20,8,0.08);
}
.bookings-head { max-width: 760px; margin: 0 auto 48px; text-align: center; }
.bookings-head .h-lead { margin-top: 12px; }

.bookings-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px;
}
@media (min-width: 760px)  { .bookings-grid { grid-template-columns: repeat(3, 1fr); gap: 24px; } }

.booking-card {
  background: #fff;
  border: 1px solid rgba(42,20,8,0.10);
  border-radius: 18px;
  padding: 32px 26px;
  display: flex; flex-direction: column;
  gap: 12px;
  transition: transform .35s ease, box-shadow .35s ease, border-color .35s ease;
}
.booking-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 22px 40px -22px rgba(42,20,8,0.25);
  border-color: rgba(90, 8, 9,0.35);
}

.booking-icon {
  width: 54px; height: 54px;
  display: grid; place-items: center;
  border-radius: 14px;
  background: var(--bg-2);
  color: var(--gold);
  margin-bottom: 6px;
}
.booking-title {
  font-family: var(--sans);
  font-size: 20px; font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--ink);
  margin: 0;
}
.booking-desc {
  color: rgba(42,20,8,0.72);
  line-height: 1.55;
  margin: 0;
  flex: 1;
}
.booking-link {
  margin-top: 8px;
  font-weight: 600;
  color: var(--gold);
  letter-spacing: 0.01em;
  word-break: break-all;
}
.booking-link:hover { color: var(--green); }

.bookings-footnote {
  margin-top: 36px;
  text-align: center;
  font-size: 15px;
  color: var(--green);
  font-weight: 500;
}

/* Visit warning callout */
.visit-warning {
  margin-top: 18px;
  padding: 14px 18px;
  border-left: 3px solid var(--green);
  background: rgba(48,95,38,0.08);
  color: var(--ink);
  font-size: 14.5px;
  line-height: 1.55;
  border-radius: 0 10px 10px 0;
}
.visit-warning strong { color: var(--green); font-weight: 700; }

/* === Hero animated tagline === */
.hero-tagline {
  font-family: 'Berkshire Swash', 'Cormorant Garamond', Georgia, serif;
  color: #fff;
  margin: 0 0 28px;
  text-align: center;
  text-shadow: 0 4px 30px rgba(0,0,0,0.4);
  display: flex; flex-direction: column;
  gap: 12px;
}
.ht-line {
  display: block;
  overflow: hidden;
  padding: 0.15em 0.05em 0.25em;
  line-height: 1.15;
}
.ht-inner {
  display: inline-block;
  transform: translateY(110%);
  opacity: 0;
  animation: htReveal 1.1s cubic-bezier(.22,.85,.32,1) forwards;
}
.ht-1 .ht-inner {
  font-weight: 400;
  font-size: clamp(46px, 8vw, 104px);
  letter-spacing: 0.01em;
  animation-delay: 0.35s;
}
.ht-2 .ht-inner {
  font-weight: 400;
  font-size: clamp(26px, 3.6vw, 44px);
  letter-spacing: 0.03em;
  margin-top: 4px;
  animation-delay: 0.75s;
}
.ht-3 .ht-inner {
  font-weight: 400;
  font-size: clamp(30px, 4.2vw, 56px);
  letter-spacing: 0.02em;
  animation-delay: 1.05s;
}
@keyframes htReveal {
  0%   { transform: translateY(110%); opacity: 0; }
  60%  { opacity: 1; }
  100% { transform: translateY(0);    opacity: 1; }
}

/* fade-in CTAs after the tagline */
.hero .hero-ctas {
  opacity: 0;
  animation: htFadeUp 0.9s 1.55s ease-out forwards;
}
.hero-cta-book,
a.btn.hero-cta-book,
button.btn.hero-cta-book {
  position: relative;
  background: rgb(169, 50, 38);
  border: 0;
  color: #fff;
  font-family: var(--sans);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  padding: 14px 26px;
  min-height: 48px;
  box-shadow: none;
}
.hero-cta-book::after { display: none; }
@keyframes heroCtaPulse {
  0%, 100% {
    transform: scale(1);
    box-shadow:
      0 0 0 0 rgba(90, 8, 9, 0.5),
      0 0 18px 2px rgba(214, 70, 80, 0.5),
      0 8px 28px rgba(90, 8, 9, 0.35);
  }
  50% {
    transform: scale(1.04);
    box-shadow:
      0 0 0 14px rgba(90, 8, 9, 0),
      0 0 30px 6px rgba(232, 90, 100, 0.75),
      0 10px 36px rgba(90, 8, 9, 0.45);
  }
}
@keyframes heroCtaRing {
  0%   { opacity: 0.7; transform: scale(1); }
  70%  { opacity: 0; transform: scale(1.12); }
  100% { opacity: 0; transform: scale(1.12); }
}
.hero-cta-book:hover,
a.btn.hero-cta-book:hover,
button.btn.hero-cta-book:hover {
  animation: none;
  transform: scale(1.05);
  background: #fff;
  color: var(--bordeaux);
  border-color: #fff;
  box-shadow: 0 8px 28px rgba(90, 8, 9, 0.35);
}
@keyframes htFadeUp {
  from { opacity: 0; transform: translateY(14px); }
  to   { opacity: 1; transform: none; }
}

@media (prefers-reduced-motion: reduce) {
  .ht-inner, .hero .hero-ctas { transform: none; opacity: 1; animation: none; }
  .hero-cta-book { animation: none; box-shadow: none; }
  .hero-cta-book::after { animation: none; display: none; }
}

/* === Guinness-inspired accent overrides === */

/* Eyebrows green → use richer Guinness green */
.eyebrow.green { color: var(--g-green); }

/* Footer: deep Guinness black + cream accents */
.foot { background: var(--g-black); }
.foot .foot-k       { color: var(--g-cream); }
.foot .foot-grid p a:hover,
.foot .foot-bar a:hover,
.foot-bar-r a:hover { color: var(--g-cream-l); }

/* Sports chips → Guinness green with cream hover */
.sports .chip {
  border-color: rgba(30,107,58,0.35);
  color: var(--g-green-d);
  transition: background .3s ease, color .3s ease, border-color .3s ease, transform .3s ease;
}
.sports .chip:hover {
  background: var(--g-green);
  color: var(--g-cream);
  border-color: var(--g-green);
  transform: translateY(-2px);
}

/* Visit warning callout: switch to Guinness green */
.visit-warning {
  border-left-color: var(--g-green);
  background: rgba(30,107,58,0.10);
}
.visit-warning strong { color: var(--g-green-d); }

/* Bookings icons: Guinness green tint */
.booking-icon {
  background: rgba(30,107,58,0.10);
  color: var(--g-green-d);
}
.booking-link:hover { color: var(--g-green); }
.bookings-footnote  { color: var(--g-green-d); }

/* Nav scrolled state: cream hover instead of brown gold */
.nav.is-scrolled .nav-link:hover,
.nav.is-scrolled .nav-link.is-active { color: var(--g-cream); }
.nav.is-scrolled .nav-link::after    { background: var(--g-cream); }
.nav.is-scrolled .nav-cta-inline {
  background: var(--g-green) !important;
  border-color: var(--g-green);
}
.nav.is-scrolled .nav-cta-inline:hover {
  background: var(--g-cream) !important;
  color: var(--g-black) !important;
}

/* "Cheers." beer label: Guinness green */
.beer-label { color: var(--g-green-d); }

/* Section divider: hint of Guinness green on About eyebrow */

/* === Page enter animation (gallery / events) === */
.page-enter [data-enter] {
  opacity: 0;
  transform: translateY(22px);
  animation: pageEnter 0.9s cubic-bezier(.22,.85,.32,1) forwards;
}
.page-enter [data-enter="0"] { animation-delay: 0.05s; }
.page-enter [data-enter="1"] { animation-delay: 0.20s; }
.page-enter [data-enter="2"] { animation-delay: 0.35s; }
.page-enter [data-enter="3"] { animation-delay: 0.55s; }
@keyframes pageEnter {
  to { opacity: 1; transform: none; }
}

/* Reveal-on-scroll (staggered with --reveal-i 0..11) */
.reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 0.8s cubic-bezier(.22,.85,.32,1), transform 0.8s cubic-bezier(.22,.85,.32,1);
  transition-delay: calc(var(--reveal-i, 0) * 60ms);
  will-change: opacity, transform;
}
.reveal.is-in { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
  .page-enter [data-enter],
  .reveal { opacity: 1; transform: none; animation: none; transition: none; }
}

/* === Nav dropdowns (Food / Drinks) === */
.nav-dd { position: relative; display: inline-block; }
.nav-dd-toggle { display: inline-flex; align-items: center; gap: 6px; }
.nav-dd-caret {
  font-size: 10px;
  transform: translateY(1px);
  transition: transform 0.3s ease;
  opacity: 0.85;
}
.nav-dd:hover .nav-dd-caret,
.nav-dd:focus-within .nav-dd-caret { transform: rotate(180deg) translateY(-1px); }

.nav-dd-menu {
  position: absolute;
  top: calc(100% - 4px);
  left: 50%;
  transform: translate(-50%, -8px);
  min-width: 220px;
  padding: 10px;
  background: rgba(20,10,4,0.94);
  backdrop-filter: blur(18px) saturate(160%);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 14px;
  box-shadow: 0 24px 50px -20px rgba(0,0,0,0.55);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.28s ease, transform 0.28s ease, visibility 0s linear 0.28s;
  z-index: 110;
}
.nav-dd:hover .nav-dd-menu,
.nav-dd:focus-within .nav-dd-menu {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translate(-50%, 0);
  transition: opacity 0.28s ease, transform 0.28s ease, visibility 0s linear 0s;
}
.nav-dd-menu a {
  display: block;
  padding: 10px 14px;
  border-radius: 8px;
  color: rgba(255,255,255,0.88);
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0.02em;
  text-decoration: none;
  transition: background 0.2s ease, color 0.2s ease, padding-left 0.2s ease;
}
.nav-dd-menu a:hover,
.nav-dd-menu a.is-active {
  background: rgba(217,182,106,0.14);
  color: var(--g-cream);
  padding-left: 18px;
}

/* When nav scrolled (dark bg): dropdown card already dark - keep coherent */
.nav.is-scrolled .nav-dd-menu { background: rgba(11,11,11,0.96); }


/* === Story polaroid stack (right of "A pint for every occasion") === */
.story-stack {
  position: relative;
  width: 100%;
  min-height: 460px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 32px;
  perspective: 1400px;
}
.story-pic {
  position: absolute;
  display: block;
  text-decoration: none;
  background: #fdf9f2;
  padding: 14px 14px 44px;
  box-shadow:
    0 18px 36px rgba(42,20,8,0.25),
    0 6px 14px rgba(42,20,8,0.15);
  transform: rotate(var(--rot, 0deg)) translate3d(0,0,0);
  transition: transform 0.55s cubic-bezier(.2,.8,.2,1), box-shadow 0.4s ease;
  cursor: pointer;
  z-index: calc(10 - var(--idx, 0));
}
/* Scotch tape - same as .polaroid */
.story-pic .tape {
  position: absolute;
  top: -10px; left: 50%;
  width: 92px; height: 20px;
  transform: translateX(-50%) rotate(calc(var(--rot, 0deg) * -0.5));
  background: rgba(212,183,143,0.5);
  border: 1px dashed rgba(90, 8, 9,0.18);
  border-radius: 1px;
  box-shadow: 0 1px 2px rgba(0,0,0,0.08);
}
.story-pic-img {
  width: 300px; height: 300px;
  overflow: hidden;
  background: var(--ink);
}
@media (min-width: 960px) {
  .story-pic-img { width: 340px; height: 340px; }
}
.story-pic-img img {
  width: 100%; height: 100%; object-fit: cover;
  filter: saturate(0.9) contrast(1.05);
  transition: filter 0.4s ease;
}
.story-pic-caption {
  position: absolute; bottom: 12px; left: 14px; right: 14px;
  text-align: center;
  font-family: var(--sans); font-weight: 500;
  font-size: 13px; letter-spacing: 0.04em;
  color: var(--ink);
}

/* Stacked positions (closed) */
.story-pic[style*="--idx: 0"] { transform: rotate(var(--rot)) translate(-8px, -6px); }
.story-pic[style*="--idx: 1"] { transform: rotate(var(--rot)) translate(4px, 2px); }
.story-pic[style*="--idx: 2"] { transform: rotate(var(--rot)) translate(10px, 10px); }
.story-pic[style*="--idx: 3"] { transform: rotate(var(--rot)) translate(-2px, 14px); }

/* Fan out on stack hover */
.story-stack:hover .story-pic[style*="--idx: 0"] { transform: rotate(-14deg) translate(-220px, -40px); }
.story-stack:hover .story-pic[style*="--idx: 1"] { transform: rotate(-4deg)  translate(-75px,   14px); }
.story-stack:hover .story-pic[style*="--idx: 2"] { transform: rotate(6deg)   translate(90px,   -14px); }
.story-stack:hover .story-pic[style*="--idx: 3"] { transform: rotate(14deg)  translate(220px,   28px); }

/* Lift hovered photo on top */
.story-pic:hover {
  transform: rotate(0deg) scale(1.06) translateY(-10px) !important;
  z-index: 20;
  box-shadow:
    0 30px 60px rgba(42,20,8,0.35),
    0 10px 24px rgba(42,20,8,0.22);
}
.story-pic:hover .story-pic-img img { filter: saturate(1.05) contrast(1.1); }

@media (max-width: 720px) {
  .story-stack { min-height: 380px; }
  .story-pic-img { width: 240px; height: 240px; }
  .story-stack:hover .story-pic[style*="--idx: 0"] { transform: rotate(-12deg) translate(-110px, -24px); }
  .story-stack:hover .story-pic[style*="--idx: 1"] { transform: rotate(-4deg)  translate(-38px,   8px); }
  .story-stack:hover .story-pic[style*="--idx: 2"] { transform: rotate(6deg)   translate(46px,   -8px); }
  .story-stack:hover .story-pic[style*="--idx: 3"] { transform: rotate(12deg)  translate(118px,  20px); }
}

@media (prefers-reduced-motion: reduce) {
  .story-pic, .story-stack:hover .story-pic { transition: none; }
}

/* === Sports section grid + TV wall === */
.sports-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 48px;
  align-items: start;
}
@media (min-width: 960px) {
  .sports-grid { grid-template-columns: 1.05fr 1fr; gap: 80px; }
}

.sports-screens {
  position: relative;
  width: 100%;
  perspective: 1400px;
}
.screen-wall {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 14px;
  padding: 24px 18px 32px;
  background:
    radial-gradient(120% 60% at 50% 0%, rgba(217,182,106,0.10), transparent 60%),
    linear-gradient(180deg, #1a0f06 0%, #0b0705 100%);
  border-radius: 18px;
  border: 1px solid rgba(217,182,106,0.18);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.04),
    0 30px 60px -30px rgba(0,0,0,0.5);
  transform: rotateY(-2deg) rotateX(2deg);
  transition: transform 0.6s ease;
}
.screen-wall:hover { transform: rotateY(0deg) rotateX(0deg); }

@media (min-width: 560px) {
  .screen-wall { grid-template-columns: repeat(4, 1fr); }
}

.tv {
  display: flex; flex-direction: column; align-items: center;
  transform: translateY(8px);
  opacity: 0;
  animation: tvOn 0.6s cubic-bezier(.22,.85,.32,1) forwards;
  animation-delay: calc(var(--i, 0) * 80ms);
}
@keyframes tvOn { to { opacity: 1; transform: none; } }

.tv-screen {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 11;
  background:
    linear-gradient(180deg, #062919 0%, #04150e 80%);
  border-radius: 6px;
  border: 2px solid #0b0705;
  box-shadow:
    inset 0 0 0 1px rgba(217,182,106,0.18),
    inset 0 0 22px rgba(30,107,58,0.35),
    0 6px 12px rgba(0,0,0,0.45);
  padding: 6px 7px;
  overflow: hidden;
  color: #e9f7ed;
  display: flex; flex-direction: column; justify-content: space-between;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  animation: tvFlicker 5s linear infinite;
  animation-delay: calc(var(--i, 0) * 0.5s);
}
.tv:hover .tv-screen {
  transform: scale(1.06);
  box-shadow:
    inset 0 0 0 1px rgba(217,182,106,0.35),
    inset 0 0 28px rgba(30,107,58,0.5),
    0 12px 24px rgba(0,0,0,0.55),
    0 0 30px -8px rgba(217,182,106,0.3);
  z-index: 2;
}

/* Scanlines + soft CRT noise */
.tv-noise {
  position: absolute; inset: 0;
  pointer-events: none;
  background:
    repeating-linear-gradient(0deg, rgba(255,255,255,0.04) 0 1px, transparent 1px 3px),
    radial-gradient(circle at 30% 30%, rgba(255,255,255,0.06), transparent 60%);
  mix-blend-mode: overlay;
  opacity: 0.7;
}

.tv-top {
  display: flex; align-items: center; justify-content: space-between;
  font-size: 8px; font-weight: 600; letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--g-cream);
  z-index: 1;
}
.tv-sport { display: inline-flex; gap: 3px; align-items: center; }
.tv-live  { display: inline-flex; gap: 4px; align-items: center; color: #ff6464; }
.tv-live .dot {
  width: 6px; height: 6px; border-radius: 50%;
  background: #ff5252;
  box-shadow: 0 0 6px #ff5252;
  animation: liveBlink 1.4s ease-in-out infinite;
}
@keyframes liveBlink { 0%,100% { opacity: 1; } 50% { opacity: 0.35; } }

.tv-score {
  display: flex; align-items: center; justify-content: space-between;
  gap: 4px;
  z-index: 1;
}
.tv-score .team {
  font-weight: 700; font-size: 11px; letter-spacing: 0.06em;
  color: #fff;
  flex: 0 0 auto;
}
.tv-score .num {
  font-family: 'Poppins', monospace;
  font-weight: 700; font-size: 18px;
  color: var(--g-cream-l);
  text-shadow: 0 0 8px rgba(217,182,106,0.6);
  animation: scoreGlow 3s ease-in-out infinite;
}
.tv-score .num .sep { opacity: 0.5; padding: 0 2px; }
@keyframes scoreGlow {
  0%,100% { text-shadow: 0 0 8px rgba(217,182,106,0.6); }
  50%     { text-shadow: 0 0 14px rgba(217,182,106,0.9), 0 0 2px #fff; }
}

.tv-meta {
  font-size: 7.5px; font-weight: 500; letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.6);
  text-align: center;
  z-index: 1;
}

.tv-stand {
  width: 30%;
  height: 5px;
  margin-top: 3px;
  background: linear-gradient(180deg, #2a1408 0%, #0b0705 100%);
  border-radius: 0 0 3px 3px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
}

@keyframes tvFlicker {
  0%, 92%, 100% { filter: brightness(1); }
  93%           { filter: brightness(1.15); }
  94%           { filter: brightness(0.85); }
  95%           { filter: brightness(1.08); }
  96%           { filter: brightness(1); }
}

@media (prefers-reduced-motion: reduce) {
  .tv-screen, .tv-score .num, .tv-live .dot, .tv { animation: none; opacity: 1; transform: none; }
}

/* === Story carousel: arrows + dots + slides === */
.story-nav {
  display: flex; align-items: center; gap: 18px;
  margin-top: 32px;
}
.story-arrow {
  width: 52px; height: 52px;
  border-radius: 999px;
  border: 1px solid var(--gold);
  background: transparent;
  color: var(--gold);
  font-size: 26px; line-height: 1;
  cursor: pointer;
  display: grid; place-items: center;
  transition: background 0.3s ease, color 0.3s ease, transform 0.3s ease, border-color 0.3s ease;
}
.story-arrow:hover {
  background: var(--gold);
  color: #fff;
  transform: scale(1.08);
}
.story-arrow:active { transform: scale(0.95); }

.story-dots {
  display: flex; gap: 10px; align-items: center;
}
.story-dot {
  width: 10px; height: 10px;
  border-radius: 999px;
  background: rgba(90,8,9,0.22);
  cursor: pointer;
  transition: width 0.3s ease, background 0.3s ease;
}
.story-dot.is-active {
  width: 28px;
  background: var(--gold);
}

/* Slides stacking */
.story-stack { position: relative; }
.story-slide {
  position: absolute; inset: 0;
  display: flex; align-items: center; justify-content: center;
  padding: 32px;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.45s ease, visibility 0s linear 0.45s;
}
.story-slide.is-active {
  position: relative;
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transition: opacity 0.45s ease, visibility 0s linear 0s;
}

/* Text crossfade on switch */
.story-text.is-switching .story-eyebrow,
.story-text.is-switching .story-title,
.story-text.is-switching .story-body,
.story-text.is-switching .story-meta {
  opacity: 0;
  transform: translateY(8px);
}
.story-text .story-eyebrow,
.story-text .story-title,
.story-text .story-body,
.story-text .story-meta {
  transition: opacity 0.3s ease, transform 0.3s ease;
}

/* === Sports carousel (single hero TV) === */
.sp-name-txt { font-style: italic; }
.sp-comps-label {
  margin-top: 22px;
  font-size: 11px; font-weight: 700;
  letter-spacing: 0.22em; text-transform: uppercase;
  color: var(--g-green-d);
}
.sp-comps {
  margin-top: 8px;
  flex-wrap: wrap;
}
.sp-name, .sp-tagline, .sp-lead, .sp-comps {
  transition: opacity 0.3s ease, transform 0.3s ease;
}
.sports-text.is-switching .sp-name,
.sports-text.is-switching .sp-tagline,
.sports-text.is-switching .sp-lead,
.sports-text.is-switching .sp-comps {
  opacity: 0;
  transform: translateY(8px);
}

.sp-tv-holder {
  position: relative;
  width: 100%;
  min-height: 360px;
  display: flex; align-items: center; justify-content: center;
}
.sp-slide {
  position: absolute; inset: 0;
  display: flex; align-items: center; justify-content: center;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.45s ease, transform 0.45s ease, visibility 0s linear 0.45s;
  transform: scale(0.95);
}
.sp-slide.is-active {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: scale(1);
  transition: opacity 0.45s ease, transform 0.45s ease, visibility 0s linear 0s;
}

/* Hero TV (much bigger than the wall version) */
.tv-hero { width: min(460px, 100%); }
.tv-hero .tv-screen {
  aspect-ratio: 16 / 10;
  padding: 18px 22px;
  border-radius: 12px;
  border-width: 4px;
  background:
    radial-gradient(120% 70% at 50% 0%, rgba(217,182,106,0.15), transparent 60%),
    linear-gradient(180deg, #0a3422 0%, #04150e 80%);
  box-shadow:
    inset 0 0 0 2px rgba(217,182,106,0.22),
    inset 0 0 40px rgba(30,107,58,0.4),
    0 24px 50px -16px rgba(0,0,0,0.6);
}
.tv-hero .tv-top      { font-size: 11px; }
.tv-hero .tv-live .dot{ width: 8px; height: 8px; }
.tv-hero .tv-bigicon {
  flex: 0 0 auto;
  display: grid; place-items: center;
  font-size: clamp(44px, 7.5vw, 68px);
  line-height: 1;
  margin: 2px 0 6px;
  max-height: 42%;
  text-shadow: 0 0 24px rgba(217,182,106,0.45);
  animation: heroIconFloat 4s ease-in-out infinite;
}
@keyframes heroIconFloat {
  0%,100% { transform: translateY(0); }
  50%     { transform: translateY(-5px); }
}
.tv-hero .tv-score {
  flex-shrink: 0;
  width: 100%;
  padding-top: 2px;
}
.tv-hero .tv-score .team { font-size: 14px; }
.tv-hero .tv-score .num  { font-size: 26px; }
.tv-hero .tv-meta {
  flex-shrink: 0;
  font-size: 10.5px;
  padding-bottom: 2px;
}
.tv-hero .tv-stand       { width: 38%; height: 8px; margin-top: 6px; }

.sp-nav { margin-top: 24px; }

@media (max-width: 720px) {
  .sp-tv-holder { min-height: 300px; }
  .tv-hero { width: 100%; max-width: 380px; }
}

/* === Force nav into "scrolled" style on inner pages (gallery, events) === */
body[data-page="gallery"] .nav,
body[data-page="events"]  .nav,
body[data-page="events-week"] .nav {
  background: rgba(20,10,4,0.88);
  backdrop-filter: blur(16px) saturate(160%);
  border-bottom: 1px solid rgba(255,255,255,0.08);
  box-shadow: 0 6px 20px -10px rgba(0,0,0,0.4);
}
body[data-page="gallery"] .nav .nav-link,
body[data-page="events"]  .nav .nav-link,
body[data-page="events-week"] .nav .nav-link {
  color: rgba(255,255,255,0.78);
  letter-spacing: 0.16em;
}
body[data-page="gallery"] .nav .nav-link:hover,
body[data-page="gallery"] .nav .nav-link.is-active,
body[data-page="events"]  .nav .nav-link:hover,
body[data-page="events"]  .nav .nav-link.is-active,
body[data-page="events-week"] .nav .nav-link:hover,
body[data-page="events-week"] .nav .nav-link.is-active { color: var(--g-cream); }
body[data-page="gallery"] .nav .nav-link::after,
body[data-page="events"]  .nav .nav-link::after,
body[data-page="events-week"] .nav .nav-link::after { background: var(--g-cream); }
body[data-page="gallery"] .nav .brand,
body[data-page="events"]  .nav .brand,
body[data-page="events-week"] .nav .brand { padding: 0; }
body[data-page="gallery"] .nav .nav-row,
body[data-page="events"]  .nav .nav-row,
body[data-page="events-week"] .nav .nav-row { height: var(--nav-h-scrolled); }
body[data-page="gallery"] .nav .brand-logo,
body[data-page="events"]  .nav .brand-logo,
body[data-page="events-week"] .nav .brand-logo { height: 56px; }
@media (min-width: 1024px) {
  body[data-page="gallery"] .nav .brand-logo,
  body[data-page="events"]  .nav .brand-logo,
  body[data-page="events-week"] .nav .brand-logo { height: 68px; }
}

/* === Sports centered layout (overrides grid) === */
.sports-centered .sports-grid { all: unset; }
.sports-centered .wrap { display: block; }

.sp-head {
  text-align: center;
  max-width: 760px;
  margin: 0 auto 36px;
}
.sp-head .eyebrow,
.sp-head .h-display,
.sp-head .h-lead,
.sp-head .sp-name,
.sp-head .sp-tagline { text-align: center !important; }
.sp-head .eyebrow {
  display: inline-block;
  justify-content: center;
}
.sp-head .h-display,
.sp-head .h-lead {
  max-width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
.sp-head .h-display { margin-top: 8px; }
.sp-head .h-lead    { margin-top: 12px; }
.sp-detail-cta {
  margin-top: 20px;
}

.sp-stage {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
  position: relative;
}
.sp-stage .sp-tv-holder {
  flex: 0 0 auto;
  min-height: 360px;
  width: min(540px, 100%);
}
.sp-side-arrow { flex: 0 0 auto; }
@media (max-width: 719px) {
  .sports-centered .sp-side-arrow { display: none !important; }
}

.sp-dots-wrap {
  display: flex; justify-content: center;
  margin-top: 24px;
}
.sp-dots-only { display: flex; gap: 10px; }

.sp-details {
  max-width: 780px;
  margin: 40px auto 0;
  text-align: center;
}
.sp-details .sp-lead {
  font-size: 17px;
  line-height: 1.65;
  color: rgba(42,20,8,0.78);
  margin-bottom: 24px;
}
.sp-details .sp-comps-label { margin-top: 18px; }
.sp-details .sp-comps {
  justify-content: center;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 12px;
}
.sp-details .sports-cta {
  display: flex; justify-content: center;
  margin-top: 32px;
}

/* Section-level switching (replaces .sports-text.is-switching) */
.sports-centered.is-switching .sp-name,
.sports-centered.is-switching .sp-tagline,
.sports-centered.is-switching .sp-lead,
.sports-centered.is-switching .sp-comps {
  opacity: 0;
  transform: translateY(8px);
}

@media (max-width: 720px) {
  .sp-stage { gap: 6px; }
  .sp-side-arrow { width: 44px; height: 44px; font-size: 22px; }
  .sp-stage .sp-tv-holder { min-height: 280px; }
}

/* === Bookings page === */
.bookings-page { padding: 56px 0 100px; }
.bookings-page .bookings-grid { margin-top: 0; }
@media (min-width: 720px) { .bookings-page { padding-top: 72px; } }

.enquiry-page {
  padding: 48px 0 88px;
}
.enquiry-card {
  max-width: 640px;
  margin: 0 auto;
  padding: 40px 32px 36px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 20px;
  box-shadow: 0 18px 48px -24px rgba(42, 20, 8, 0.22);
  text-align: center;
}
.enquiry-card__icon {
  display: inline-grid;
  place-items: center;
  width: 64px;
  height: 64px;
  margin: 0 auto 18px;
  border-radius: 16px;
  background: var(--bg-2);
  color: var(--gold);
}
.enquiry-card__title {
  margin: 0 0 14px;
  font-family: var(--sans);
  font-size: clamp(1.5rem, 3.5vw, 1.85rem);
  font-weight: 700;
  color: var(--ink);
  line-height: 1.2;
}
.enquiry-card__lead {
  margin: 0 0 24px;
  font-size: 16px;
  line-height: 1.65;
  color: var(--ink-dim);
}
.enquiry-card__points {
  margin: 0 auto 28px;
  padding: 0;
  list-style: none;
  max-width: 420px;
  text-align: left;
}
.enquiry-card__points li {
  position: relative;
  padding: 10px 0 10px 22px;
  font-size: 15px;
  line-height: 1.45;
  color: var(--ink);
  border-bottom: 1px solid var(--line);
}
.enquiry-card__points li:last-child { border-bottom: 0; }
.enquiry-card__points li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 1.15em;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--gold);
  transform: translateY(-50%);
}
.enquiry-card__cta {
  display: inline-flex;
  margin: 0 auto;
}
.enquiry-card__note {
  margin: 20px 0 0;
  font-size: 14px;
  font-style: italic;
  color: var(--muted);
}
.enquiry-back {
  margin: 28px 0 0;
  text-align: center;
  font-size: 14px;
}
.enquiry-back a {
  color: var(--gold);
  font-weight: 600;
}
.enquiry-back a:hover { color: var(--green); }

.bookings-info {
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
  margin-top: 56px;
  padding: 36px 32px;
  background: var(--bg-1);
  border: 1px solid var(--line);
  border-radius: 18px;
}
@media (min-width: 720px) {
  .bookings-info { grid-template-columns: 1fr 1fr; padding: 44px 48px; }
}
.bk-info-block .eyebrow { margin-bottom: 8px; }
.bk-info-title {
  font-family: var(--sans);
  font-size: 22px; font-weight: 700;
  color: var(--ink);
  margin: 4px 0 12px;
}
.bk-info-line {
  font-size: 15.5px;
  line-height: 1.65;
  color: rgba(42,20,8,0.78);
  margin-bottom: 8px;
}
.bk-info-line a { color: var(--gold); font-weight: 500; }
.bk-info-line a:hover { color: var(--g-green); }
.bk-fine { font-size: 14px; color: var(--g-green-d); margin-top: 8px; }

.bk-info-warning { border-left: 3px solid var(--g-green); padding-left: 22px; }
.bk-info-warning strong { color: var(--g-green-d); }

/* FAQ */
.bookings-faq {
  margin-top: 64px;
  max-width: 820px;
  margin-left: auto; margin-right: auto;
}
.bk-faq-title {
  font-family: var(--sans);
  font-size: 24px; font-weight: 700;
  color: var(--ink);
  margin-bottom: 18px;
  text-align: center;
}
.bk-faq {
  border-bottom: 1px solid var(--line);
  padding: 18px 4px;
}
.bk-faq summary {
  list-style: none;
  cursor: pointer;
  font-weight: 600;
  font-size: 16.5px;
  color: var(--ink);
  padding-right: 36px;
  position: relative;
  transition: color 0.2s ease;
}
.bk-faq summary::-webkit-details-marker { display: none; }
.bk-faq summary::after {
  content: '+';
  position: absolute;
  right: 4px; top: 50%;
  transform: translateY(-50%);
  font-weight: 300;
  font-size: 26px;
  color: var(--gold);
  transition: transform 0.3s ease;
}
.bk-faq[open] summary { color: var(--gold); }
.bk-faq[open] summary::after { transform: translateY(-50%) rotate(45deg); }
.bk-faq p {
  margin-top: 12px;
  font-size: 15.5px;
  line-height: 1.7;
  color: rgba(42,20,8,0.78);
}
.bk-faq p a { color: var(--gold); font-weight: 500; }

/* Bookings page - force scrolled nav (same as gallery/events) */
body[data-page="bookings"] .nav {
  background: rgba(20,10,4,0.88);
  backdrop-filter: blur(16px) saturate(160%);
  border-bottom: 1px solid rgba(255,255,255,0.08);
  box-shadow: 0 6px 20px -10px rgba(0,0,0,0.4);
}
body[data-page="bookings"] .nav .nav-link {
  color: rgba(255,255,255,0.78);
  letter-spacing: 0.16em;
}
body[data-page="bookings"] .nav .nav-link:hover,
body[data-page="bookings"] .nav .nav-link.is-active { color: var(--g-cream); }
body[data-page="bookings"] .nav .nav-link::after { background: var(--g-cream); }
body[data-page="bookings"] .nav .brand { padding: 0; }
body[data-page="bookings"] .nav .nav-row { height: var(--nav-h-scrolled); }
body[data-page="bookings"] .nav .brand-logo { height: 56px; }
@media (min-width: 1024px) {
  body[data-page="bookings"] .nav .brand-logo { height: 68px; }
}

/* === Contact page === */
.contact-page { padding: 56px 0 100px; }
@media (min-width: 720px) { .contact-page { padding-top: 72px; } }

.contact-layout {
  display: grid;
  grid-template-columns: 1fr;
  gap: 28px;
  align-items: stretch;
}
@media (min-width: 900px) {
  .contact-layout { grid-template-columns: 1fr 1fr; gap: 32px; }
}

.contact-panel {
  padding: 36px 32px;
  background: var(--bg-1);
  border: 1px solid var(--line);
  border-radius: 18px;
}
@media (min-width: 720px) { .contact-panel { padding: 44px 40px; } }

.contact-panel__title {
  font-family: var(--sans);
  font-size: 26px;
  font-weight: 700;
  color: var(--ink);
  margin: 6px 0 24px;
}

.contact-rows { display: flex; flex-direction: column; gap: 18px; }
.contact-row__label {
  display: block;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--g-green-d);
  margin-bottom: 4px;
}
.contact-row__value {
  margin: 0;
  font-size: 16px;
  line-height: 1.6;
  color: rgba(42,20,8,0.82);
}
.contact-row__value a { color: var(--gold); font-weight: 500; }
.contact-row__value a:hover { color: var(--g-green); }

.contact-ctas {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 14px;
  margin-top: 28px;
}

.contact-social {
  display: flex;
  gap: 10px;
  margin-top: 28px;
}
.contact-soc {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  border: 1px solid var(--line);
  color: var(--gold);
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}
.contact-soc:hover {
  background: var(--gold);
  color: #fff;
  border-color: var(--gold);
  transform: translateY(-2px);
}
.contact-soc-icon {
  display: block;
  width: 18px;
  height: 18px;
  background-color: currentColor;
  -webkit-mask: url('icons/linktree.png') center / contain no-repeat;
  mask: url('icons/linktree.png') center / contain no-repeat;
}

.contact-map {
  position: relative;
  min-height: 360px;
  border-radius: 18px;
  overflow: hidden;
  border: 1px solid var(--line);
  background: var(--bg-2);
}
.contact-map iframe {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 360px;
  border: 0;
  filter: grayscale(70%) saturate(0.6) contrast(1.05);
}
.contact-map__link {
  position: absolute;
  right: 14px;
  bottom: 14px;
  padding: 8px 14px;
  font-size: 13px;
  font-weight: 600;
  color: var(--ink);
  background: rgba(255,255,255,0.94);
  border-radius: 999px;
  box-shadow: 0 8px 24px -12px rgba(0,0,0,0.35);
}
.contact-map__link:hover { color: var(--gold); }

.contact-section-title {
  font-family: var(--sans);
  font-size: 22px;
  font-weight: 700;
  color: var(--ink);
  margin: 0 0 20px;
  text-align: center;
}

.contact-depts { margin-top: 64px; }
.contact-dept-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
  max-width: 760px;
  margin-inline: auto;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 18px;
  overflow: hidden;
}
.contact-dept {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 8px 16px;
  padding: 18px 24px;
  border-bottom: 1px solid var(--line);
}
.contact-dept:last-child { border-bottom: 0; }
.contact-dept__label {
  display: block;
  font-weight: 600;
  font-size: 15.5px;
  color: var(--ink);
}
.contact-dept__email {
  font-size: 14.5px;
  color: var(--gold);
  font-weight: 500;
  word-break: break-all;
}
.contact-dept__email:hover { color: var(--g-green); }
.contact-dept__link {
  font-size: 14px;
  font-weight: 600;
  color: var(--g-green-d);
  white-space: nowrap;
}
.contact-dept__link:hover { color: var(--gold); }

.contact-quick { margin-top: 64px; }
.contact-quick-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
}
@media (min-width: 600px) { .contact-quick-grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1024px) { .contact-quick-grid { grid-template-columns: repeat(4, 1fr); } }

.contact-quick-card {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 26px 22px 44px;
  background: #fff;
  border: 1px solid rgba(42,20,8,0.10);
  border-radius: 18px;
  transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}
.contact-quick-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 22px 40px -22px rgba(42,20,8,0.25);
  border-color: rgba(90,8,9,0.35);
}
.contact-quick-card__icon {
  width: 48px;
  height: 48px;
  display: grid;
  place-items: center;
  border-radius: 12px;
  background: var(--bg-2);
  color: var(--gold);
}
.contact-quick-card__title {
  font-family: var(--sans);
  font-size: 17px;
  font-weight: 700;
  color: var(--ink);
}
.contact-quick-card__desc {
  font-size: 14px;
  line-height: 1.5;
  color: rgba(42,20,8,0.72);
}
.contact-quick-card__arrow {
  position: absolute;
  right: 18px;
  bottom: 16px;
  font-size: 18px;
  color: var(--gold);
}

.contact-note {
  margin-top: 56px;
  max-width: 720px;
  margin-inline: auto;
  padding: 24px 28px;
  border-left: 3px solid var(--g-green);
  background: rgba(48,95,38,0.08);
  border-radius: 0 14px 14px 0;
  text-align: center;
}
.contact-note p {
  margin: 0;
  font-size: 15px;
  line-height: 1.6;
  color: rgba(42,20,8,0.82);
}
.contact-note strong { color: var(--g-green-d); }
.contact-note__fine {
  margin-top: 10px !important;
  font-size: 14px !important;
  color: var(--g-green-d) !important;
}

body[data-page="contact"] .nav {
  background: rgba(20,10,4,0.88);
  backdrop-filter: blur(16px) saturate(160%);
  border-bottom: 1px solid rgba(255,255,255,0.08);
  box-shadow: 0 6px 20px -10px rgba(0,0,0,0.4);
}
body[data-page="contact"] .nav .nav-link {
  color: rgba(255,255,255,0.78);
  letter-spacing: 0.16em;
}
body[data-page="contact"] .nav .nav-link:hover,
body[data-page="contact"] .nav .nav-link.is-active { color: var(--g-cream); }
body[data-page="contact"] .nav .nav-link::after { background: var(--g-cream); }
body[data-page="contact"] .nav .nav-burger span,
body[data-page="contact"] .nav .nav-tel { color: var(--g-cream, #f3e9c8); }
body[data-page="contact"] .nav .nav-burger span { background: var(--g-cream, #f3e9c8); }
body[data-page="contact"] .nav .brand { padding: 0; }
body[data-page="contact"] .nav .nav-row { height: var(--nav-h-scrolled); }
body[data-page="contact"] .nav .brand-logo { height: 56px; }
@media (min-width: 1024px) {
  body[data-page="contact"] .nav .brand-logo { height: 68px; }
}

/* === Preview polaroid mosaic === */
.polaroid-mosaic {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 36px 28px;
  padding: 40px 14px 60px;
  justify-items: center;
}
@media (min-width: 600px)  { .polaroid-mosaic { grid-template-columns: repeat(3, 1fr); gap: 44px 32px; } }
@media (min-width: 900px)  { .polaroid-mosaic { grid-template-columns: repeat(4, 1fr); gap: 56px 36px; } }
@media (min-width: 1280px) { .polaroid-mosaic { grid-template-columns: repeat(6, 1fr); gap: 60px 32px; } }

.polaroid-mosaic .mo-pic {
  transform: rotate(var(--rot, 0deg)) translateY(var(--offY, 0));
  transition: transform 0.5s cubic-bezier(.2,.8,.2,1), box-shadow 0.4s;
  animation: moPicIn 0.7s cubic-bezier(.22,.85,.32,1) both;
  animation-delay: calc(var(--i, 0) * 40ms);
}
.polaroid-mosaic .mo-pic:hover {
  transform: rotate(0deg) scale(1.06) translateY(-6px);
  z-index: 5;
}
.polaroid-mosaic .polaroid-img {
  width: 160px !important;
  height: 160px !important;
}
@media (min-width: 600px) {
  .polaroid-mosaic .polaroid-img { width: 180px !important; height: 180px !important; }
}
@media (min-width: 1280px) {
  .polaroid-mosaic .polaroid-img { width: 200px !important; height: 200px !important; }
}

@media (max-width: 599px) {
  .gallery.is-detail .album-detail__grid.polaroid-mosaic {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 28px 10px;
    padding-left: 2px;
    padding-right: 2px;
    justify-items: stretch;
  }
  .gallery.is-detail .album-detail__grid.polaroid-mosaic .mo-pic {
    width: 100%;
    max-width: 100%;
  }
  .gallery.is-detail .album-detail__grid.polaroid-mosaic .polaroid {
    padding: 10px 10px 38px;
  }
  .gallery.is-detail .album-detail__grid.polaroid-mosaic .polaroid-img {
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 1;
  }
  .gallery.is-detail .album-detail__grid.polaroid-mosaic .polaroid-caption {
    left: 8px;
    right: 8px;
    bottom: 10px;
    font-size: 11px;
  }
}

@keyframes moPicIn {
  from { opacity: 0; transform: rotate(var(--rot, 0deg)) translateY(calc(var(--offY, 0px) + 30px)); }
  to   { opacity: 1; transform: rotate(var(--rot, 0deg)) translateY(var(--offY, 0)); }
}

.polaroid-mosaic .mo-pic.is-refresh-out {
  opacity: 0;
  transform: rotate(var(--rot, 0deg)) translateY(calc(var(--offY, 0px) + 20px)) scale(0.94);
  transition: opacity 0.32s ease, transform 0.32s ease;
  animation: none;
}
.polaroid-mosaic .mo-pic.is-refresh-in {
  animation: moPicIn 0.55s cubic-bezier(.22,.85,.32,1) both;
}

.preview-cta {
  display: flex;
  justify-content: center;
  margin-top: 12px;
  padding-bottom: 20px;
}
.preview .preview-head { justify-content: center; text-align: center; }

/* === Sports page === */
.sports-page { padding: 20px 0 100px; }

/* Euro showcase (sports page) */
.euro-showcase {
  padding: 48px 0 56px;
  background:
    radial-gradient(ellipse 80% 60% at 50% 0%, rgba(90, 8, 9, 0.06) 0%, transparent 70%),
    linear-gradient(180deg, var(--bg-1) 0%, var(--bg) 100%);
  border-bottom: 1px solid var(--line);
}
.euro-showcase-head {
  text-align: center;
  max-width: 640px;
  margin: 0 auto 36px;
}
.euro-showcase-title {
  font-family: var(--sans);
  font-size: clamp(28px, 4vw, 42px);
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--ink);
  margin: 8px 0 12px;
}
.euro-showcase-lead {
  font-size: 15px;
  line-height: 1.65;
  color: var(--ink-dim);
  margin: 0;
}
.euro-polaroids {
  margin-bottom: 40px;
  justify-content: center !important;
  flex-wrap: wrap !important;
  overflow-x: visible !important;
}
@media (min-width: 1024px) {
  .euro-polaroids {
    justify-content: center !important;
    flex-wrap: wrap !important;
    overflow-x: visible !important;
  }
}
.euro-polaroids .mo-pic {
  cursor: pointer;
}
.euro-polaroids .polaroid-img {
  width: 200px !important;
  height: 200px !important;
}
@media (min-width: 600px) {
  .euro-polaroids .polaroid-img { width: 240px !important; height: 240px !important; }
}
@media (min-width: 1024px) {
  .euro-polaroids .polaroid-img { width: 280px !important; height: 280px !important; }
}
.euro-videos {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 28px;
  max-width: 980px;
  margin: 0 auto;
  padding: 0 22px;
}
@media (min-width: 720px) {
  .euro-showcase { padding: 64px 0 72px; }
  .euro-videos { gap: 40px; }
}
.polaroid--video {
  flex: 0 1 228px;
  margin: 0;
  padding: 14px 14px 52px;
  border: none;
  background: #fdf9f2;
  text-decoration: none;
  color: inherit;
  cursor: pointer;
  box-shadow:
    0 14px 28px rgba(42,20,8,0.18),
    0 4px 10px rgba(42,20,8,0.12);
  transform: rotate(var(--rot, 0deg));
  transition: transform 0.5s cubic-bezier(.2,.8,.2,1), box-shadow 0.4s;
  position: relative;
}
.polaroid--video::before {
  content: '';
  position: absolute; top: -8px; left: 50%; transform: translateX(-50%);
  width: 80px; height: 18px;
  background: rgba(212,183,143,0.45);
  border: 1px dashed rgba(90, 8, 9, 0.15);
  border-radius: 1px;
}
.polaroid--video:hover {
  transform: rotate(0deg) scale(1.04) translateY(-6px);
  box-shadow:
    0 24px 48px rgba(42,20,8,0.28),
    0 8px 20px rgba(42,20,8,0.18);
  z-index: 5;
}
.polaroid-img--video {
  position: relative;
  width: 200px;
  height: 356px;
  aspect-ratio: 9 / 16;
  overflow: hidden;
  background: var(--ink);
}
.polaroid-img--video video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  filter: saturate(0.9) contrast(1.05);
  transition: filter 0.4s;
}
.polaroid--video:hover .polaroid-img--video video {
  filter: saturate(1.08) contrast(1.1);
}
.polaroid-reel {
  position: absolute;
  top: 10px; right: 10px;
  width: 28px; height: 28px;
  border-radius: 50%;
  background: rgba(90, 8, 9, 0.85);
  box-shadow: 0 2px 8px rgba(0,0,0,0.35);
  pointer-events: none;
}
.polaroid-reel::after {
  content: '';
  position: absolute;
  inset: 7px;
  border: 2px solid rgba(255,255,255,0.9);
  border-radius: 50%;
  border-top-color: transparent;
  animation: euroReelSpin 2s linear infinite;
}
.polaroid-play-hint {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  font-size: 28px;
  color: rgba(255,255,255,0.85);
  text-shadow: 0 2px 12px rgba(0,0,0,0.5);
  opacity: 0;
  transition: opacity 0.3s;
  pointer-events: none;
}
.polaroid--video:hover .polaroid-play-hint { opacity: 1; }
@keyframes euroReelSpin {
  to { transform: rotate(360deg); }
}
@media (min-width: 600px) {
  .polaroid--video { flex-basis: 268px; }
  .polaroid-img--video { width: 240px; height: 427px; }
}
@media (min-width: 720px) {
  .polaroid--video { flex-basis: 288px; }
  .polaroid-img--video { width: 260px; height: 462px; }
}
@media (prefers-reduced-motion: reduce) {
  .polaroid-reel::after { animation: none; }
}

.sp-stats {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 18px;
  margin: 0 0 56px;
  padding: 28px 24px;
  background: var(--bg-1);
  border: 1px solid var(--line);
  border-radius: 18px;
  list-style: none;
  text-align: center;
}
@media (min-width: 720px) { .sp-stats { grid-template-columns: repeat(4, 1fr); padding: 36px 28px; } }
.sp-stats li { display: flex; flex-direction: column; gap: 4px; }
.sp-stats strong {
  font-family: 'Berkshire Swash', serif;
  font-size: 46px;
  font-weight: 400;
  color: var(--gold);
  line-height: 1;
}
.sp-stats span {
  font-size: 11px; font-weight: 600;
  letter-spacing: 0.22em; text-transform: uppercase;
  color: var(--ink-dim);
}

.sp-wall { margin-bottom: 64px; }
.sp-wall .screen-wall { transform: none; }
.sp-wall .screen-wall:hover { transform: none; }
.sp-wall .tv-link { text-decoration: none; color: inherit; }
.sp-wall .tv-link:hover .tv-screen { transform: scale(1.05); }

.sp-section-title {
  font-family: var(--sans);
  font-size: clamp(28px, 4vw, 42px);
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--ink);
  text-align: center;
  margin: 0 0 40px;
}

section.sp-list {
  padding: 0;
  border-top: none;
}
.sp-list {
  display: grid;
  gap: 28px;
}
.sp-row {
  display: grid;
  grid-template-columns: 80px 1fr;
  gap: 24px;
  padding: 28px 24px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 16px;
  scroll-margin-top: 100px;
  transition: transform .35s ease, box-shadow .35s ease, border-color .35s ease;
}
.sp-row:hover,
.sp-row:focus-within {
  transform: translateY(-3px);
  box-shadow: 0 20px 40px -20px rgba(42,20,8,0.2);
  border-color: rgba(90,8,9,0.3);
}
.sp-row--link {
  position: relative;
  cursor: pointer;
}
.sp-row-hit {
  position: absolute;
  inset: 0;
  z-index: 1;
  border-radius: inherit;
}
.sp-row--link .sp-row-body,
.sp-row--link .sp-row-icon {
  position: relative;
  z-index: 0;
}
.sp-fx-list--preview,
.sp-row-more {
  position: relative;
  z-index: 2;
}
.sp-row-more {
  display: inline-block;
  margin-top: 16px;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--g-green-d);
  text-decoration: none;
}
.sp-row-more:hover { text-decoration: underline; }

.sp-breadcrumb {
  font-size: 14px;
  margin: 0 0 28px;
  color: rgba(42,20,8,0.65);
}
.sp-breadcrumb a {
  color: var(--g-green-d);
  text-decoration: none;
  font-weight: 600;
}
.sp-breadcrumb a:hover { text-decoration: underline; }

.sports-page--sport .sp-breadcrumb {
  text-align: center;
  margin-bottom: 8px;
}
.sp-sport-intro {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  max-width: 560px;
  margin: 0 auto 40px;
  padding: 0 12px;
}
.sp-sport-intro-icon {
  font-size: clamp(48px, 10vw, 64px);
  line-height: 1;
  margin-bottom: 12px;
  filter: drop-shadow(0 8px 16px rgba(42, 20, 8, 0.12));
}
.sp-sport-intro-tagline {
  font-family: 'Berkshire Swash', serif;
  font-size: clamp(24px, 5vw, 34px);
  line-height: 1.35;
  color: var(--g-green-d);
  margin: 0 0 20px;
}
.sp-sport-intro-sky {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 6px 10px;
  margin: 0;
  padding: 10px 20px;
  font-size: 12px;
  line-height: 1.4;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.95) 0%, rgba(90, 8, 9, 0.04) 100%);
  border: 1px solid rgba(90, 8, 9, 0.14);
  border-radius: 999px;
  box-shadow: 0 8px 20px -14px rgba(42, 20, 8, 0.25);
}
.sp-sport-intro-sky-label {
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--g-green-d);
}
.sp-sport-intro-sky-dot {
  color: rgba(42, 20, 8, 0.25);
  font-weight: 700;
}
.sp-sport-intro-sky-time {
  font-weight: 500;
  letter-spacing: 0.02em;
  color: rgba(42, 20, 8, 0.55);
  font-variant-numeric: tabular-nums;
}
.sp-empty {
  font-size: 16px;
  line-height: 1.6;
  color: rgba(42,20,8,0.75);
  text-align: center;
  max-width: 36ch;
  margin: 32px auto 48px;
}
.sp-seo-block {
  margin: 48px 0 24px;
  padding: 28px 32px;
  background: rgba(90,8,9,0.04);
  border-radius: 12px;
  border: 1px solid rgba(90,8,9,0.12);
}
.sp-seo-block-title {
  font-size: 22px;
  margin: 0 0 12px;
  color: var(--ink);
}
.sp-seo-block p {
  margin: 0;
  font-size: 15.5px;
  line-height: 1.7;
  color: rgba(42,20,8,0.82);
}

.sp-fixture-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 32px;
  max-width: 640px;
  margin: 0 auto;
  padding: clamp(28px, 5vw, 40px) clamp(20px, 4vw, 36px);
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 20px;
  box-shadow: 0 24px 48px -28px rgba(42, 20, 8, 0.22);
}
.sp-fixture-main {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.sp-fixture-matchup {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  justify-items: center;
  gap: 12px 20px;
  width: 100%;
  max-width: 520px;
  margin: 0 auto 24px;
}
@media (max-width: 479px) {
  .sp-fixture-matchup {
    grid-template-columns: 1fr;
    gap: 20px;
  }
  .sp-fx-vs--fixture {
    order: 2;
  }
  .sp-fixture-team--away {
    order: 3;
  }
}
.sp-fixture-team {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: 12px;
  width: 100%;
  max-width: 200px;
}
.sp-fixture-team-name {
  font-size: clamp(18px, 4.5vw, 26px);
  font-weight: 700;
  color: var(--ink);
  line-height: 1.2;
  word-break: break-word;
}
.sp-fx-vs--fixture {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  height: 44px;
  padding: 0 12px;
  font-size: 13px;
  font-weight: 800;
  color: rgba(42, 20, 8, 0.55);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  background: rgba(42, 20, 8, 0.06);
  border-radius: 999px;
}
.sp-fixture-meta {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  width: 100%;
  max-width: 420px;
  margin: 0 auto;
  padding-top: 8px;
  border-top: 1px solid rgba(42, 20, 8, 0.08);
}
.sp-fixture-tags {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
}
.sp-fixture-tag {
  display: inline-block;
  padding: 6px 14px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--g-green-d);
  background: rgba(90, 8, 9, 0.06);
  border: 1px solid rgba(90, 8, 9, 0.12);
  border-radius: 999px;
}
.sp-fixture-tag--muted {
  color: rgba(42, 20, 8, 0.65);
  background: rgba(42, 20, 8, 0.04);
  border-color: rgba(42, 20, 8, 0.1);
  text-transform: none;
  font-weight: 600;
  letter-spacing: 0.02em;
}
.sp-fixture-meta-label {
  display: block;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(42, 20, 8, 0.45);
  margin-bottom: 4px;
}
.sp-team-badge,
.sp-team-flag {
  display: block;
  flex-shrink: 0;
}
.sp-team-badge {
  object-fit: contain;
  filter: drop-shadow(0 4px 10px rgba(0,0,0,0.12));
}
.sp-team-badge--sm { width: 28px; height: 28px; }
.sp-team-badge--md { width: 40px; height: 40px; }
.sp-team-badge--lg { width: clamp(64px, 14vw, 88px); height: clamp(64px, 14vw, 88px); }
.sp-team-flag--sm { font-size: 22px; line-height: 1; }
.sp-team-flag--md { font-size: 32px; line-height: 1; }
.sp-team-flag--lg { font-size: 56px; line-height: 1; filter: drop-shadow(0 4px 10px rgba(0,0,0,0.15)); }
.sp-fx-team {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}
.sp-fx-teams {
  align-items: center;
}
.sp-fixture-h1 {
  font-size: clamp(28px, 5vw, 40px);
  margin: 0 0 8px;
  line-height: 1.15;
}
.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.sp-fixture-when {
  width: 100%;
  margin: 8px 0 4px;
  padding: 20px 24px 22px;
  text-align: center;
  background: linear-gradient(180deg, rgba(90, 8, 9, 0.05) 0%, rgba(90, 8, 9, 0.02) 100%);
  border: 1px solid rgba(90, 8, 9, 0.12);
  border-radius: 14px;
}
.sp-fixture-when .sp-fixture-meta-label {
  margin-bottom: 10px;
  font-size: 11px;
  letter-spacing: 0.16em;
  color: var(--g-green-d);
}
.sp-fixture-when-value {
  display: block;
  font-family: 'Berkshire Swash', serif;
  font-size: clamp(28px, 6vw, 42px);
  font-weight: 400;
  line-height: 1.2;
  color: var(--ink);
  letter-spacing: -0.01em;
}
.sp-fixture-where {
  width: 100%;
  font-size: 15px;
  line-height: 1.55;
  margin: 0;
  color: rgba(42, 20, 8, 0.82);
}
.sp-seo-block--fixture {
  max-width: 640px;
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}
.sports-page--fixture .sp-breadcrumb {
  text-align: center;
}
.sports-page--fixture .sp-fixture-detail {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.sp-cta--inline {
  margin-top: 28px;
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: 640px;
}
@media (min-width: 720px) {
  .sp-row { grid-template-columns: 120px 1fr; gap: 36px; padding: 36px 40px; }
}
.sp-row-icon {
  font-size: 72px;
  line-height: 1;
  display: grid; place-items: center;
  filter: drop-shadow(0 6px 12px rgba(0,0,0,0.15));
}
@media (min-width: 720px) { .sp-row-icon { font-size: 96px; } }
.sp-row-name {
  font-family: var(--sans);
  font-size: 28px; font-weight: 700;
  color: var(--ink);
  margin: 0 0 4px;
}
.sp-row-tagline {
  font-family: 'Berkshire Swash', serif;
  font-size: 22px;
  color: var(--g-green-d);
  margin: 0 0 14px;
}
.sp-row-lead {
  font-size: 15.5px;
  line-height: 1.65;
  color: rgba(42,20,8,0.78);
  margin: 0 0 18px;
}
.sp-row .sp-comps-label { margin-top: 8px; margin-bottom: 10px; }

.sp-sky-note {
  text-align: center;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(42,20,8,0.55);
  margin: -24px 0 36px;
}
.sp-sky-updated {
  font-weight: 500;
  text-transform: none;
  letter-spacing: normal;
  color: rgba(42,20,8,0.45);
}

.sp-row-sky {
  grid-column: 1 / -1;
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px solid rgba(42,20,8,0.08);
}
.sp-sky-league {
  padding: 5px 0;
}
.sp-sky-league + .sp-sky-league {
  margin-top: 32px;
}
.sp-sky-league-name {
  font-family: 'Berkshire Swash', serif;
  font-size: 20px;
  color: var(--ink);
  margin: 0 0 16px;
}
.sp-event-board {
  justify-content: flex-start;
  flex-wrap: wrap;
  gap: 28px 24px;
  margin: 0;
  padding: 4px 0 8px;
}
.event-playbill__visual--sport {
  display: grid;
  place-items: center;
  padding: 16px;
}
.event-playbill__matchup {
  font-size: 13px;
  font-weight: 600;
  line-height: 1.35;
  text-align: center;
  color: rgba(255,252,245,0.88);
  max-width: 90%;
}

/* Sky Sports fixtures - one line per match */
.sp-fx-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.sp-fx-row {
  display: grid;
  grid-template-columns: auto auto 1fr auto auto;
  align-items: center;
  gap: 14px;
  padding: 10px 14px;
  background: rgba(255,255,255,0.7);
  border: 1px solid rgba(42,20,8,0.08);
  border-radius: 8px;
  text-decoration: none;
  color: var(--ink);
  font-size: 14px;
  transition: border-color 0.2s, background 0.2s, transform 0.2s;
}
a.sp-fx-row:hover {
  border-color: rgba(90, 8, 9, 0.4);
  background: #fff;
  transform: translateX(2px);
}
.sp-fx-date {
  display: inline-flex;
  align-items: baseline;
  gap: 4px;
  min-width: 64px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: rgba(42,20,8,0.55);
}
.sp-fx-wday { color: var(--gold); font-weight: 700; }
.sp-fx-day { font-size: 14px; color: var(--ink); }
.sp-fx-month { color: rgba(42,20,8,0.55); }
.sp-fx-time {
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  color: var(--ink);
  min-width: 42px;
}
.sp-fx-teams {
  display: inline-flex;
  align-items: baseline;
  gap: 6px;
  font-weight: 500;
  color: var(--ink);
  flex-wrap: wrap;
}
.sp-fx-vs {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: rgba(42,20,8,0.5);
  font-weight: 600;
}
.sp-fx-comp {
  font-size: 12px;
  color: rgba(42,20,8,0.55);
  text-align: right;
  white-space: nowrap;
}
.sp-fx-cta {
  font-size: 16px;
  color: var(--gold);
  font-weight: 700;
}
@media (max-width: 640px) {
  .sp-fx-row {
    grid-template-columns: auto 1fr;
    gap: 4px 12px;
    padding: 12px;
  }
  .sp-fx-date { grid-row: 1; grid-column: 1; }
  .sp-fx-time { grid-row: 1; grid-column: 2; justify-self: end; }
  .sp-fx-teams { grid-row: 2; grid-column: 1 / -1; font-size: 15px; }
  .sp-fx-comp { grid-row: 3; grid-column: 1 / -1; text-align: left; font-size: 11.5px; }
  .sp-fx-cta { display: none; }
}

.sp-cta {
  margin-top: 72px;
  text-align: center;
}
.sp-cta-actions {
  display: inline-flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 12px;
}
.sp-cta-text {
  font-family: 'Berkshire Swash', serif;
  font-size: 28px;
  color: var(--ink);
  margin-bottom: 18px;
}

/* Force scrolled nav on sports page */
body[data-page="sports"] .nav {
  background: rgba(20,10,4,0.88);
  backdrop-filter: blur(16px) saturate(160%);
  border-bottom: 1px solid rgba(255,255,255,0.08);
  box-shadow: 0 6px 20px -10px rgba(0,0,0,0.4);
}
body[data-page="sports"] .nav .nav-link {
  color: rgba(255,255,255,0.78);
  letter-spacing: 0.16em;
}
body[data-page="sports"] .nav .nav-link:hover,
body[data-page="sports"] .nav .nav-link.is-active { color: var(--g-cream); }
body[data-page="sports"] .nav .nav-link::after { background: var(--g-cream); }
body[data-page="sports"] .nav .brand { padding: 0; }
body[data-page="sports"] .nav .nav-row { height: var(--nav-h-scrolled); }
body[data-page="sports"] .nav .brand-logo { height: 56px; }
@media (min-width: 1024px) { body[data-page="sports"] .nav .brand-logo { height: 68px; } }

/* === Daily specials page === */
.daily-specials-page { padding: 0 0 72px; }
.daily-specials-page .weekly-cta {
  margin-top: 24px;
  margin-bottom: 48px;
}

.dotd-section { padding: 48px 0 0; }
.dotd-section.weekly {
  background: white;
  padding: 64px 0 72px;
}
.dotd-section.weekly .weekly-head {
  margin-bottom: 28px;
}
.dotd-section.weekly .dotd-poster {
  margin-top: 0;
}
.dotd-poster {
  margin-top: 24px;
  --dotd-frame: #305F26;
  --dotd-corner-size: 115px;
  --dotd-line: 2px;
  --dotd-edge-gap: 103px;
  position: relative;
  max-width: 520px;
  margin: 0 auto;
  padding: 56px 36px 40px;
  background: #fff;
  text-align: center;
}
.dotd-edge {
  position: absolute;
  background: var(--dotd-frame);
  pointer-events: none;
}
.dotd-edge--top    { top: 0; left: var(--dotd-edge-gap); right: var(--dotd-edge-gap); height: var(--dotd-line); }
.dotd-edge--bottom { bottom: 0; left: var(--dotd-edge-gap); right: var(--dotd-edge-gap); height: var(--dotd-line); }
.dotd-edge--left   { left: 0; top: var(--dotd-edge-gap); bottom: var(--dotd-edge-gap); width: var(--dotd-line); }
.dotd-edge--right  { right: 0; top: var(--dotd-edge-gap); bottom: var(--dotd-edge-gap); width: var(--dotd-line); }
.dotd-corner {
  position: absolute;
  width: var(--dotd-corner-size);
  height: var(--dotd-corner-size);
  background-image: url("/assets/dotd-corner.svg");
  background-repeat: no-repeat;
  background-position: top left;
  background-size: contain;
  pointer-events: none;
  z-index: 1;
}
.dotd-corner--tl { top: -12px; left: -12px; }
.dotd-corner--tr { top: -12px; right: -12px; transform: scaleX(-1); }
.dotd-corner--bl { bottom: -12px; left: -12px; transform: scaleY(-1); }
.dotd-corner--br { bottom: -12px; right: -12px; transform: scale(-1, -1); }
.dotd-poster > :not(.dotd-edge):not(.dotd-corner) {
  position: relative;
  z-index: 2;
}
.dotd-poster__logo {
  display: flex;
  justify-content: center;
  margin-bottom: 8px;
}
.dotd-poster__logo img {
  width: auto;
  height: 72px;
  margin: 0 auto;
}
.dotd-poster__title {
  font-family: 'Berkshire Swash', 'Cormorant Garamond', Georgia, serif;
  font-size: clamp(26px, 5vw, 32px);
  font-weight: 400;
  line-height: 1.2;
  color: var(--green);
  margin: 0 0 12px;
  padding-inline: 8px;
}
.dotd-poster__days {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.dotd-day {
  margin: 0;
  padding: 10px 0;
}
.dotd-day__name {
  font-family: var(--sans);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--green);
  text-decoration: underline;
  text-underline-offset: 3px;
  margin: 0 0 3px;
}
.dotd-day__dish {
  font-family: 'Berkshire Swash', 'Cormorant Garamond', Georgia, serif;
  font-size: clamp(16px, 3vw, 19px);
  line-height: 1.25;
  color: var(--green);
  margin: 0 auto;
  max-width: 34ch;
}
.dotd-day__price {
  font-family: 'Berkshire Swash', 'Cormorant Garamond', Georgia, serif;
  font-size: clamp(15px, 2.6vw, 17px);
  font-weight: 400;
  color: rgb(169, 50, 38);
  margin: 2px 0 0;
}
.dotd-day__or {
  font-family: var(--sans);
  font-size: 10px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--muted);
  margin: 6px 0;
}
.dotd-poster__foot {
  margin-top: 12px;
  padding: 8px 12px 0;
  border-top: 1px solid rgba(26, 18, 8, 0.12);
}
.dotd-poster__foot p {
  font-family: var(--sans);
  font-size: 12px;
  line-height: 1.45;
  color: var(--ink);
  margin: 0 auto;
  max-width: 36ch;
  overflow-wrap: break-word;
}
.dotd-poster__foot p + p { margin-top: 6px; }

@media (max-width: 540px) {
  .dotd-poster {
    --dotd-edge-gap: 72px;
    padding: 68px 22px 36px;
  }
  .dotd-poster__title {
    font-size: clamp(24px, 7vw, 28px);
    padding-inline: 12px;
  }
  .dotd-poster__foot p {
    font-size: 11px;
    max-width: none;
    padding-inline: 4px;
  }
}

body[data-page="daily-specials"] .page-hero {
  padding-bottom: 36px;
}

.daily-specials-page .weekly--page {
  padding: 0;
  background: transparent;
}
.daily-specials-note {
  margin-top: 8px;
  padding: 32px 28px;
  background: var(--bg-1);
  border: 1px solid var(--line);
  border-radius: var(--r);
  text-align: center;
}
.daily-specials-note p:last-child {
  margin: 12px auto 0;
  max-width: 58ch;
  color: var(--muted);
  line-height: 1.55;
}
.daily-specials-note a { color: var(--gold); }

body[data-page="daily-specials"] .nav .nav-burger span,
body[data-page="daily-specials"] .nav .nav-tel { color: var(--g-cream, #f3e9c8); }
body[data-page="daily-specials"] .nav .nav-burger span { background: var(--g-cream, #f3e9c8); }
body[data-page="daily-specials"] .nav {
  background: rgba(8, 5, 2, 0.92);
  border-bottom-color: rgba(255,255,255,0.08);
}
body[data-page="daily-specials"] .nav .nav-link { color: rgba(243,233,200,0.82); }
body[data-page="daily-specials"] .nav .nav-link:hover,
body[data-page="daily-specials"] .nav .nav-link.is-active { color: var(--g-cream); }
body[data-page="daily-specials"] .nav .nav-link::after { background: var(--g-cream); }
body[data-page="daily-specials"] .nav .brand { padding: 0; }
body[data-page="daily-specials"] .nav .nav-row { height: var(--nav-h-scrolled); }
body[data-page="daily-specials"] .nav .brand-logo { height: 56px; }
@media (min-width: 1024px) {
  body[data-page="daily-specials"] .nav .brand-logo { height: 68px; }
}

/* === Food page === */
.food-page { padding: 20px 0 100px; }

.food-page .menu-cards {
  position: static;
  margin: 0 0 48px;
  background: transparent;
  border: 0;
  padding: 0;
}

.food-sections { display: grid; gap: 40px; }
.menu-section-block,
.food-section.menu-section-block {
  padding: 0;
  background: transparent;
  border: 0;
  border-radius: 0;
  scroll-margin-top: calc(var(--nav-h-scrolled) + 16px);
  min-width: 0;
  max-width: 100%;
}

.food-page .menu-cards-wrap {
  margin-left: 0;
  margin-right: 0;
  max-width: 100%;
}

.food-page .menu-panel-card {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
}

.food-page .menu-panel__body,
.food-page .menu-subtabs,
.food-page .menu-subtabs__panel,
.food-page .menu-group {
  min-width: 0;
  max-width: 100%;
}

.food-page .menu-item-head {
  min-width: 0;
  gap: 8px;
}

.food-page .menu-item-name {
  min-width: 0;
  overflow-wrap: anywhere;
}

.food-page .menu-item-dots {
  min-width: 12px;
  flex-shrink: 1;
}

@media (max-width: 919px) {
  .food-page .menu-cards {
    padding-left: 0;
    padding-right: 0;
    scroll-padding-inline: 0;
  }

  .food-page .menu-panel__body {
    padding: 24px 16px 28px;
  }

  .food-page .menu-subtabs__nav {
    margin-left: -4px;
    margin-right: -4px;
    padding-bottom: 2px;
  }
}

.food-items { margin: 0; }

.food-allergens {
  margin-top: 56px;
  padding: 32px 28px;
  background: var(--bg-1);
  border-left: 3px solid var(--gold);
  border-radius: 0 14px 14px 0;
}
.food-allergens .eyebrow { margin-bottom: 10px; }
.food-allergens p {
  font-size: 15px;
  line-height: 1.65;
  color: rgba(42,20,8,0.78);
}

/* Force scrolled nav on food page */
body[data-page="food"] .nav {
  background: rgba(20,10,4,0.88);
  backdrop-filter: blur(16px) saturate(160%);
  border-bottom: 1px solid rgba(255,255,255,0.08);
  box-shadow: 0 6px 20px -10px rgba(0,0,0,0.4);
}
body[data-page="food"] .nav .nav-link {
  color: rgba(255,255,255,0.78);
  letter-spacing: 0.16em;
}
body[data-page="food"] .nav .nav-link:hover,
body[data-page="food"] .nav .nav-link.is-active { color: var(--g-cream); }
body[data-page="food"] .nav .nav-link::after { background: var(--g-cream); }
body[data-page="food"] .nav .brand { padding: 0; }
body[data-page="food"] .nav .nav-row { height: var(--nav-h-scrolled); }
body[data-page="food"] .nav .brand-logo { height: 56px; }
@media (min-width: 1024px) { body[data-page="food"] .nav .brand-logo { height: 68px; } }

/* === Hero media: video → 4-photo crossfade === */
.hero-media {
  position: absolute; inset: 0;
  overflow: hidden;
  background: #000;
}
.hero-media .hero-video,
.hero-media .hero-photo {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  filter: brightness(0.5) saturate(0.85);
  opacity: 0;
  visibility: hidden;
  transition: opacity 1.4s ease, visibility 1.4s ease;
}
.hero-media .hero-video.is-active,
.hero-media .hero-photo.is-active {
  opacity: 1;
  visibility: visible;
}
.hero-media .hero-photo {
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
.hero-media .hero-photo.is-active {
  animation: kenBurns 9s ease-in-out forwards;
}
@keyframes kenBurns {
  0%   { transform: scale(1.04) translate(0,0); }
  100% { transform: scale(1.14) translate(-1.5%, -1%); }
}

@media (prefers-reduced-motion: reduce) {
  .hero-media .hero-photo.is-active { animation: none; }
}

/* Force scrolled nav on drinks page (same as food/sports) */
body[data-page="drinks"] .nav {
  background: rgba(20,10,4,0.88);
  backdrop-filter: blur(16px) saturate(160%);
  border-bottom: 1px solid rgba(255,255,255,0.08);
  box-shadow: 0 6px 20px -10px rgba(0,0,0,0.4);
}
body[data-page="drinks"] .nav .nav-link {
  color: rgba(255,255,255,0.78);
  letter-spacing: 0.16em;
}
body[data-page="drinks"] .nav .nav-link:hover,
body[data-page="drinks"] .nav .nav-link.is-active { color: var(--g-cream); }
body[data-page="drinks"] .nav .nav-link::after { background: var(--g-cream); }
body[data-page="drinks"] .nav .brand { padding: 0; }
body[data-page="drinks"] .nav .nav-row { height: var(--nav-h-scrolled); }
body[data-page="drinks"] .nav .brand-logo { height: 56px; }
@media (min-width: 1024px) { body[data-page="drinks"] .nav .brand-logo { height: 68px; } }

/* === Polaroid row (full-bleed, edge-to-edge) === */
.polaroid-mosaic.polaroid-row {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 24px;
  padding: 28px 22px;
}
@media (min-width: 600px) {
  .polaroid-mosaic.polaroid-row { gap: 36px; padding: 36px 32px; }
}
@media (min-width: 1024px) {
  .polaroid-mosaic.polaroid-row {
    flex-wrap: nowrap;
    justify-content: flex-start;
    gap: 28px;
    padding: 36px 40px;
    overflow-x: auto;
    overflow-y: visible;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }
  .polaroid-mosaic.polaroid-row::-webkit-scrollbar { display: none; }
}
.polaroid-mosaic.polaroid-row .mo-pic { flex: 0 0 auto; }

/* Full-bleed: escape any container, span the full viewport */
.polaroid-row-full {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  max-width: none;
}

.preview-cta-mid {
  margin-top: 16px;
  margin-bottom: 0;
  padding-bottom: 48px;
}

.sp-detail-wrap {
  display: flex;
  justify-content: center;
  margin-top: 26px;
}

/* === Footer social icons + credit === */
.foot-social {
  display: flex;
  gap: 12px;
  margin-top: 18px;
  justify-content: flex-start;
}
.foot-soc-link {
  width: 44px; height: 44px;
  display: grid; place-items: center;
  border-radius: 999px;
  background: rgba(255,255,255,0.06);
  color: var(--g-cream);
  border: 1px solid rgba(255,255,255,0.10);
  transition: background .25s ease, color .25s ease, transform .25s ease, border-color .25s ease;
}
.foot-soc-link:hover {
  background: var(--g-cream);
  color: var(--g-black);
  border-color: var(--g-cream);
  transform: translateY(-2px);
}
.foot-soc-icon--linktree {
  display: block;
  width: 20px;
  height: 20px;
  background-color: currentColor;
  -webkit-mask: url('icons/linktree.png') center / contain no-repeat;
  mask: url('icons/linktree.png') center / contain no-repeat;
}

.foot-bar {
  display: flex;
  flex-direction: column;
  gap: 6px;
  align-items: center;
  justify-content: space-between;
  padding: 18px 22px 22px;
  font-size: 13px;
  color: rgba(255,255,255,0.55);
  border-top: 1px solid rgba(255,255,255,0.08);
}
@media (min-width: 720px) {
  .foot-bar { flex-direction: row; }
}
.foot-credit a {
  color: var(--g-cream);
  font-weight: 500;
  transition: color .25s ease;
}
.foot-credit a:hover { color: #fff; }

/* The grid is now 3 cols instead of 4 */
.foot-grid-3 { grid-template-columns: 1fr 1fr 1fr; }
@media (max-width: 720px) { .foot-grid-3 { grid-template-columns: 1fr; } }

/* === Footer payment badges === */
.foot-pay {
  margin: 0;
  padding-top: 20px;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
}
.foot-payment-icons {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
}
.foot-payment-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 26px;
  min-width: 40px;
  padding: 3px 8px;
  border-radius: 5px;
  background: rgba(255, 255, 255, 0.92);
  border: 1px solid rgba(255, 255, 255, 0.15);
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.15);
  transition: transform 0.2s ease;
}
.foot-payment-icon:hover {
  transform: translateY(-1px);
}
.foot-payment-icon svg {
  display: block;
  height: 14px;
  width: auto;
}
.foot-payment-icon-text {
  font-family: var(--sans);
  font-weight: 800;
  font-size: 9px;
  letter-spacing: 0.08em;
  color: #111;
  padding: 0 8px;
}

/* === FIFA World Cup 2026 special section === */
.worldcup {
  position: relative;
  padding: clamp(70px, 9vw, 120px) 0;
  background: linear-gradient(180deg, #0b0705 0%, #1a0f06 100%);
  color: #fff;
  overflow: hidden;
}
.wc-bg {
  position: absolute; inset: 0;
  pointer-events: none;
  background:
    radial-gradient(60% 50% at 20% 10%,  rgba(30,107,58,0.22), transparent 60%),
    radial-gradient(60% 50% at 80% 90%,  rgba(217,182,106,0.18), transparent 60%),
    radial-gradient(40% 35% at 50% 50%,  rgba(90,8,9,0.25), transparent 70%);
}
.wc-inner { position: relative; z-index: 1; }

.wc-head { text-align: center; max-width: 760px; margin: 0 auto 48px; }
.wc-eyebrow {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 11px; font-weight: 700;
  letter-spacing: 0.28em; text-transform: uppercase;
  color: var(--g-cream);
  margin-bottom: 14px;
}
.wc-dot {
  width: 9px; height: 9px;
  border-radius: 50%;
  background: #ff5252;
  box-shadow: 0 0 12px #ff5252;
  animation: liveBlink 1.4s ease-in-out infinite;
}
.wc-title {
  font-family: 'Berkshire Swash', serif;
  font-weight: 400;
  font-size: clamp(40px, 7vw, 84px);
  line-height: 1.1;
  margin: 0;
  background: linear-gradient(180deg, #fff 0%, var(--g-cream) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.wc-tm {
  font-size: 0.4em;
  vertical-align: top;
  margin-left: 4px;
  -webkit-text-fill-color: var(--g-cream);
}
.wc-dates {
  margin-top: 10px;
  font-size: 16px; font-weight: 600;
  letter-spacing: 0.06em;
  color: var(--g-cream);
}
.wc-lead {
  margin-top: 18px;
  font-size: 16.5px;
  line-height: 1.7;
  color: rgba(255,255,255,0.78);
}
.wc-ctas {
  margin-top: 28px;
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  justify-content: center;
}
.wc-ctas .btn-gold {
  background: var(--g-green);
  border-color: var(--g-green);
}
.wc-ctas .btn-gold:hover { background: #fff; color: var(--g-green); }
.wc-ctas .btn-gold-outline {
  color: var(--g-cream);
  border-color: var(--g-cream);
}
.wc-ctas .btn-gold-outline:hover {
  background: var(--g-cream);
  color: var(--g-black);
}

.wc-flags.is-collapsed .wc-flag--more-sm { display: none; }
@media (min-width: 900px) {
  .wc-flags.is-collapsed .wc-flag--more-sm { display: flex; }
  .wc-flags.is-collapsed .wc-flag--more-lg { display: none; }
  .wc-flags-more:not(.wc-flags-more--desktop) { display: none; }
}
.wc-flags-more {
  margin-top: 24px;
  text-align: center;
}
.wc-flags-more .wc-flags-toggle {
  color: var(--g-cream);
  border-color: var(--g-cream);
}
.wc-flags-more .wc-flags-toggle:hover,
.wc-flags-more .wc-flags-toggle:focus-visible {
  background: var(--g-cream);
  color: var(--g-black);
  border-color: var(--g-cream);
}

.wc-flags {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(96px, 1fr));
  gap: 10px;
  margin: 0 auto;
  max-width: 1100px;
}
.wc-flag {
  display: flex; flex-direction: column;
  align-items: center;
  gap: 6px;
  padding: 14px 8px 12px;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 12px;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.02em;
  color: rgba(255,255,255,0.78);
  cursor: default;
  transition: transform .35s cubic-bezier(.22,.85,.32,1), background .35s ease, border-color .35s ease, color .35s ease;
  opacity: 0;
  animation: wcFlagIn 0.6s cubic-bezier(.22,.85,.32,1) forwards;
  animation-delay: calc(var(--i, 0) * 25ms);
}
.wc-flag:hover {
  transform: translateY(-4px) scale(1.05);
  background: rgba(217,182,106,0.10);
  border-color: rgba(217,182,106,0.35);
  color: #fff;
}
.wc-flag-emoji {
  font-size: 30px;
  line-height: 1;
  filter: drop-shadow(0 4px 8px rgba(0,0,0,0.35));
}
.wc-flag-name {
  text-align: center;
  line-height: 1.25;
}
@keyframes wcFlagIn {
  from { opacity: 0; transform: translateY(14px) scale(0.92); }
  to   { opacity: 1; transform: translateY(0)   scale(1); }
}

.wc-note {
  margin-top: 28px;
  text-align: center;
  font-size: 12.5px;
  letter-spacing: 0.04em;
  color: rgba(255,255,255,0.5);
  font-style: italic;
}
