:root {
  --paper: #f4eee6;
  --paper-strong: #fffaf4;
  --ink: #16110f;
  --muted: #6a5f59;
  --wine: #701b2d;
  --wine-deep: #2c0712;
  --wine-soft: #9b3a4d;
  --ember: #f07f1f;
  --sand: #e4c9ae;
  --line: rgba(45, 20, 22, .16);
  --shadow: 0 24px 64px rgba(48, 15, 22, .14);
  --radius-lg: 32px;
  --radius-md: 22px;
  --radius-sm: 14px;
  --content: min(1180px, calc(100vw - 40px));
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  line-height: 1.5;
  min-width: 320px;
}
body::before {
  background-image: radial-gradient(rgba(95, 28, 42, .08) .55px, transparent .55px);
  background-size: 7px 7px;
  content: "";
  inset: 0;
  opacity: .38;
  pointer-events: none;
  position: fixed;
  z-index: -1;
}
a { color: inherit; text-decoration: none; }
button, input, select { font: inherit; }
button { cursor: pointer; }
img { display: block; max-width: 100%; }
.shell { width: var(--content); margin: 0 auto; }
.eyebrow {
  align-items: center;
  color: var(--wine);
  display: inline-flex;
  font-size: .72rem;
  font-weight: 800;
  gap: .55rem;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.eyebrow::before { background: currentColor; content: ""; height: 1px; width: 28px; }
.display {
  font-family: Impact, Haettenschweiler, "Arial Narrow Bold", sans-serif;
  font-weight: 400;
  letter-spacing: -.035em;
  line-height: .88;
  text-transform: uppercase;
}
.section { padding: 104px 0; }
.section-top { align-items: end; display: flex; gap: 2rem; justify-content: space-between; margin-bottom: 34px; }
.section h2 { font-size: clamp(2.7rem, 6vw, 5.75rem); margin: 12px 0 0; max-width: 11ch; }
.section-intro { color: var(--muted); font-size: 1.05rem; margin: 0; max-width: 33rem; }
.text-link { border-bottom: 1px solid currentColor; font-size: .85rem; font-weight: 800; letter-spacing: .06em; padding-bottom: 2px; text-transform: uppercase; }
.pill { align-items: center; border: 1px solid var(--line); border-radius: 999px; display: inline-flex; font-size: .74rem; font-weight: 750; gap: .45rem; letter-spacing: .08em; padding: .48rem .8rem; text-transform: uppercase; }
.pill::before { background: var(--ember); border-radius: 50%; content: ""; height: 6px; width: 6px; }

/* Navigation */
.site-header {
  background: rgba(244, 238, 230, .87);
  backdrop-filter: blur(18px);
  border-bottom: 1px solid rgba(45, 20, 22, .08);
  position: sticky;
  top: 0;
  z-index: 20;
}
.nav { align-items: center; display: flex; height: 80px; justify-content: space-between; }
.brand { align-items: center; display: inline-flex; font-family: Impact, Haettenschweiler, "Arial Narrow Bold", sans-serif; gap: .75rem; letter-spacing: -.01em; text-transform: uppercase; }
.brand-logo { height: 38px; object-fit: contain; width: 38px; }
.brand-wordmark { font-size: 1.2rem; line-height: .8; }
.brand-wordmark small { display: block; font-family: Inter, ui-sans-serif, sans-serif; font-size: .43rem; font-weight: 800; letter-spacing: .19em; margin-top: .35rem; }
.nav-links { align-items: center; display: flex; gap: 1.5rem; }
.nav-links a { color: #4a3b37; font-size: .76rem; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.nav-links a:hover { color: var(--wine); }
.nav-book { background: var(--wine); border-radius: 999px; color: #fff; font-size: .74rem; font-weight: 850; letter-spacing: .09em; padding: .7rem 1rem; text-transform: uppercase; }
.menu-button { background: none; border: 0; color: var(--ink); display: none; font-size: .82rem; font-weight: 850; letter-spacing: .08em; padding: .45rem 0; text-transform: uppercase; }

/* Buttons */
.button-row { display: flex; flex-wrap: wrap; gap: .75rem; }
.button {
  align-items: center;
  border: 0;
  border-radius: 999px;
  display: inline-flex;
  font-size: .78rem;
  font-weight: 850;
  gap: .7rem;
  justify-content: center;
  letter-spacing: .09em;
  min-height: 52px;
  padding: 0 1.25rem;
  text-transform: uppercase;
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}
.button:hover { transform: translateY(-2px); }
.button-primary { background: var(--ember); box-shadow: 0 10px 24px rgba(240, 127, 31, .24); color: #20100a; }
.button-dark { background: var(--ink); color: white; }
.button-ghost { background: transparent; border: 1px solid rgba(255,255,255,.42); color: white; }
.button-light { background: var(--paper-strong); color: var(--wine-deep); }
.arrow { font-size: 1.2em; line-height: 1; }

/* Hero */
.hero { background: var(--wine-deep); color: white; overflow: hidden; padding: 30px 0 0; position: relative; }
.hero::after { background: radial-gradient(circle at 81% 14%, rgba(240,127,31,.23), transparent 31%), radial-gradient(circle at 62% 92%, rgba(154, 57, 76, .42), transparent 38%); content: ""; inset: 0; pointer-events: none; position: absolute; }
.hero-inner { min-height: 650px; padding: 62px 0 0; position: relative; z-index: 1; }
.hero-grid { align-items: stretch; display: grid; gap: 26px; grid-template-columns: minmax(0, 1.25fr) minmax(280px, .75fr); }
.hero .eyebrow { color: #f4cf9a; }
.hero h1 { font-size: clamp(4.25rem, 10.4vw, 9.1rem); margin: 18px 0 25px; max-width: 9ch; }
.hero-copy { color: rgba(255,255,255,.77); font-size: 1.08rem; margin: 0 0 31px; max-width: 34rem; }
.hero-meta { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 37px; }
.hero-meta span { align-items: center; color: #eedbd0; display: flex; font-size: .72rem; font-weight: 750; gap: .5rem; letter-spacing: .07em; text-transform: uppercase; }
.hero-meta span::before { background: var(--ember); border-radius: 50%; content: ""; height: 7px; width: 7px; }
.hero-stage { align-self: end; background: linear-gradient(152deg, rgba(248,228,208,.15), rgba(99,15,36,.4)); border: 1px solid rgba(255,255,255,.22); border-bottom: 0; border-radius: 34px 34px 0 0; min-height: 570px; overflow: hidden; padding: 25px; position: relative; }
.hero-stage::before { background: linear-gradient(128deg, transparent 9%, rgba(255,255,255,.12) 9.5%, transparent 10%, transparent 36%, rgba(255,255,255,.08) 36.4%, transparent 37%); content: ""; inset: 0; opacity: .9; position: absolute; }
.hero-logo-wrap { align-items: center; background: rgba(12, 5, 8, .56); border: 1px solid rgba(255,255,255,.13); border-radius: 50%; display: flex; height: min(27vw, 276px); justify-content: center; left: 50%; padding: 24px; position: absolute; top: 47%; transform: translate(-50%, -50%); width: min(27vw, 276px); }
.hero-logo-wrap::before { border: 1px solid rgba(240,127,31,.75); border-radius: 50%; content: ""; inset: 11px; position: absolute; }
.hero-logo-wrap img { position: relative; width: 75%; z-index: 1; }
.stage-chip { backdrop-filter: blur(10px); background: rgba(23, 7, 12, .58); border: 1px solid rgba(255,255,255,.18); border-radius: 16px; color: #fff1e6; font-size: .72rem; font-weight: 800; letter-spacing: .08em; padding: .82rem .95rem; position: absolute; text-transform: uppercase; }
.stage-chip strong { color: var(--ember); display: block; font-family: Impact, Haettenschweiler, sans-serif; font-size: 1.75rem; font-weight: 400; letter-spacing: 0; line-height: .9; margin-top: .22rem; }
.stage-chip.top { right: 24px; top: 24px; }
.stage-chip.bottom { bottom: 29px; left: 24px; }
.scroll-prompt { align-items: center; bottom: 28px; color: rgba(255,255,255,.55); display: flex; font-size: .68rem; font-weight: 800; gap: .65rem; letter-spacing: .1em; position: absolute; right: 0; text-transform: uppercase; writing-mode: vertical-rl; }
.scroll-prompt::before { background: var(--ember); height: 34px; width: 1px; }

/* Booking */
.booking-band { margin-top: -1px; padding: 0 0 80px; }
.booking-card { background: var(--paper-strong); border-radius: var(--radius-lg); box-shadow: var(--shadow); display: grid; grid-template-columns: .88fr 1.12fr; overflow: hidden; }
.booking-intro { background: var(--wine); color: white; padding: 42px; position: relative; }
.booking-intro::after { border: 1px solid rgba(255,255,255,.16); border-radius: 50%; content: ""; height: 250px; position: absolute; right: -100px; top: -76px; width: 250px; }
.booking-intro h2 { font-size: clamp(2.5rem, 4vw, 4.5rem); margin: .5rem 0 1rem; position: relative; }
.booking-intro p { color: rgba(255,255,255,.77); margin: 0; max-width: 23rem; position: relative; }
.booking-note { border-top: 1px solid rgba(255,255,255,.24); color: #ffe8d4; font-size: .78rem; margin-top: 42px; padding-top: 19px; position: relative; }
.booking-form { padding: 32px; }
.mode-tabs { background: #eee4db; border-radius: 16px; display: grid; gap: 4px; grid-template-columns: 1fr 1fr; padding: 4px; }
.mode-tab { background: transparent; border: 0; border-radius: 12px; color: #675a55; font-size: .78rem; font-weight: 850; letter-spacing: .07em; min-height: 48px; text-transform: uppercase; }
.mode-tab.active { background: var(--paper-strong); box-shadow: 0 4px 10px rgba(30, 12, 17, .09); color: var(--wine); }
.field-grid { display: grid; gap: 14px; grid-template-columns: 1fr 1fr; margin-top: 21px; }
.field { display: grid; gap: .42rem; }
.field.full { grid-column: 1 / -1; }
.field label { color: #574b46; font-size: .67rem; font-weight: 850; letter-spacing: .09em; text-transform: uppercase; }
.field input, .field select { background: #fcf8f3; border: 1px solid #ddcec3; border-radius: 12px; color: var(--ink); min-height: 49px; outline: none; padding: 0 .85rem; }
.field input:focus, .field select:focus { border-color: var(--wine); box-shadow: 0 0 0 3px rgba(112,27,45,.1); }
.booking-summary { align-items: center; background: #f5ede5; border-radius: 16px; display: flex; justify-content: space-between; margin-top: 18px; padding: 14px 17px; }
.booking-summary small { color: var(--muted); display: block; font-size: .66rem; font-weight: 850; letter-spacing: .07em; text-transform: uppercase; }
.booking-summary strong { color: var(--wine); font-family: Impact, Haettenschweiler, sans-serif; font-size: 2rem; font-weight: 400; line-height: 1; }
.booking-action { display: flex; gap: .7rem; margin-top: 16px; }
.booking-action .button { flex: 1; }
.form-disclaimer { color: var(--muted); font-size: .71rem; margin: 13px 0 0; }
.form-disclaimer a { color: var(--wine); text-decoration: underline; }

/* Experience / stats */
.experience { background: #19100f; color: white; overflow: hidden; position: relative; }
.experience::before { background: radial-gradient(circle at 6% 80%, rgba(240,127,31,.2), transparent 26%), radial-gradient(circle at 86% 25%, rgba(112,27,45,.9), transparent 33%); content: ""; inset: 0; position: absolute; }
.experience .shell { position: relative; }
.experience .eyebrow { color: #f9c58b; }
.experience h2 { font-size: clamp(3.1rem, 7.1vw, 7rem); margin: 12px 0 47px; max-width: 10ch; }
.format-grid { display: grid; gap: 16px; grid-template-columns: repeat(3, 1fr); }
.format-card { background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.15); border-radius: var(--radius-md); min-height: 300px; overflow: hidden; padding: 26px; position: relative; }
.format-card::after { background: linear-gradient(145deg, transparent, rgba(240,127,31,.15)); content: ""; inset: 0; position: absolute; }
.format-card > * { position: relative; z-index: 1; }
.format-number { color: var(--ember); font-family: Impact, Haettenschweiler, sans-serif; font-size: 4.4rem; line-height: .8; }
.format-card h3 { font-size: 1.35rem; letter-spacing: -.03em; margin: 30px 0 .6rem; text-transform: uppercase; }
.format-card p { color: rgba(255,255,255,.69); font-size: .91rem; margin: 0; max-width: 21rem; }
.format-card:nth-child(2) { transform: translateY(34px); }
.format-card:nth-child(3) { background: var(--ember); color: #251005; }
.format-card:nth-child(3)::after { background: linear-gradient(150deg, rgba(255,255,255,.25), transparent); }
.format-card:nth-child(3) .format-number { color: var(--wine-deep); }
.format-card:nth-child(3) p { color: rgba(37,16,5,.72); }
.stat-row { border-top: 1px solid rgba(255,255,255,.18); display: grid; grid-template-columns: repeat(4, 1fr); margin-top: 83px; }
.stat { border-right: 1px solid rgba(255,255,255,.18); padding: 21px 20px 0 0; }
.stat:not(:first-child) { padding-left: 24px; }
.stat:last-child { border-right: 0; }
.stat strong { color: #fff3e8; display: block; font-family: Impact, Haettenschweiler, sans-serif; font-size: clamp(2.4rem,4vw,4rem); font-weight: 400; line-height: .85; }
.stat span { color: rgba(255,255,255,.57); display: block; font-size: .68rem; font-weight: 850; letter-spacing: .08em; margin-top: .68rem; text-transform: uppercase; }

/* Pricing */
.pricing-wrap { background: #e8d6c4; }
.price-grid { display: grid; gap: 18px; grid-template-columns: repeat(3, 1fr); }
.price-card { background: var(--paper-strong); border: 1px solid rgba(64,23,27,.12); border-radius: var(--radius-md); display: flex; flex-direction: column; padding: 29px; }
.price-card.featured { background: var(--wine); color: white; transform: translateY(-18px); }
.price-card .price-label { color: var(--wine); font-size: .69rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.price-card.featured .price-label { color: #ffc98c; }
.price-card h3 { font-size: 1.45rem; letter-spacing: -.04em; margin: 12px 0 22px; text-transform: uppercase; }
.price { font-family: Impact, Haettenschweiler, sans-serif; font-size: clamp(3.8rem,5vw,5.8rem); font-weight: 400; letter-spacing: -.045em; line-height: .8; }
.price small { font-family: Inter, ui-sans-serif, sans-serif; font-size: .78rem; font-weight: 800; letter-spacing: .03em; margin-left: .25rem; }
.price-card p { color: var(--muted); font-size: .89rem; margin: 22px 0; }
.price-card.featured p { color: rgba(255,255,255,.74); }
.included { border-top: 1px solid rgba(74,45,35,.15); list-style: none; margin: auto 0 0; padding: 16px 0 0; }
.included li { align-items: baseline; display: flex; font-size: .8rem; gap: .55rem; padding: .42rem 0; }
.included li::before { color: var(--ember); content: "✦"; }
.price-card.featured .included { border-color: rgba(255,255,255,.18); }

/* Content cards */
.content-grid { display: grid; gap: 18px; grid-template-columns: 1.1fr .9fr; }
.game-rail, .food-card { border-radius: var(--radius-lg); overflow: hidden; position: relative; }
.game-rail { background: var(--ink); color: white; min-height: 480px; padding: 32px; }
.game-rail::after { background: repeating-linear-gradient(130deg, transparent 0 31px, rgba(240,127,31,.12) 32px 33px), radial-gradient(circle at 72% 30%, rgba(240,127,31,.34), transparent 24%); content: ""; inset: 0; position: absolute; }
.game-rail > * { position: relative; z-index: 1; }
.game-rail h3, .food-card h3 { font-size: clamp(2.2rem,4vw,4.2rem); margin: .6rem 0 14px; }
.game-rail p, .food-card p { font-size: .95rem; margin: 0; max-width: 27rem; }
.game-chips { bottom: 31px; display: flex; flex-wrap: wrap; gap: .55rem; left: 32px; position: absolute; z-index: 1; }
.game-chips span { background: rgba(255,255,255,.11); border: 1px solid rgba(255,255,255,.17); border-radius: 999px; font-size: .69rem; font-weight: 800; letter-spacing: .06em; padding: .55rem .78rem; text-transform: uppercase; }
.food-card { background: var(--ember); color: #2a1003; min-height: 480px; padding: 32px; }
.food-card::after { background: linear-gradient(145deg, rgba(255,255,255,.25), transparent 55%); content: ""; inset: 0; position: absolute; }
.food-card > * { position: relative; z-index: 1; }
.food-icons { bottom: 22px; display: flex; gap: 14px; position: absolute; right: 24px; }
.food-icons span { align-items: center; background: rgba(50,17,4,.14); border: 1px solid rgba(50,17,4,.15); border-radius: 50%; display: flex; font-size: 1.55rem; height: 68px; justify-content: center; transform: rotate(var(--r, 0deg)); width: 68px; }

/* Find / footer */
.find-panel { background: var(--paper-strong); border: 1px solid rgba(62,29,29,.12); border-radius: var(--radius-lg); display: grid; grid-template-columns: 1fr 1fr; overflow: hidden; }
.find-copy { padding: 43px; }
.find-copy h2 { font-size: clamp(2.8rem,5vw,5.3rem); margin: .6rem 0 22px; }
.find-copy address { color: var(--muted); font-size: 1rem; font-style: normal; line-height: 1.7; margin: 0 0 22px; max-width: 28rem; }
.find-meta { display: grid; gap: 12px; margin-top: 29px; }
.find-meta div { border-top: 1px solid var(--line); padding-top: 11px; }
.find-meta span { color: var(--muted); display: block; font-size: .65rem; font-weight: 850; letter-spacing: .09em; text-transform: uppercase; }
.find-meta strong { display: block; font-size: .92rem; margin-top: 4px; }
.map-art { background: var(--wine-deep); min-height: 380px; overflow: hidden; position: relative; }
.map-art::before { background: repeating-linear-gradient(33deg, transparent 0 39px, rgba(255,255,255,.11) 40px 41px), repeating-linear-gradient(133deg, transparent 0 66px, rgba(255,255,255,.07) 67px 68px); content: ""; inset: -50px; position: absolute; transform: rotate(-8deg); }
.map-pin { align-items: center; background: var(--ember); border: 8px solid rgba(255,255,255,.15); border-radius: 50% 50% 50% 0; color: var(--wine-deep); display: flex; font-family: Impact, Haettenschweiler, sans-serif; font-size: 1.5rem; height: 96px; justify-content: center; left: 50%; position: absolute; top: 48%; transform: translate(-50%, -50%) rotate(-45deg); width: 96px; }
.map-pin span { transform: rotate(45deg); }
.map-route { bottom: 34px; color: rgba(255,255,255,.7); font-size: .72rem; font-weight: 850; left: 34px; letter-spacing: .08em; position: absolute; text-transform: uppercase; }
.site-footer { background: #13080b; color: white; margin-top: 104px; padding: 60px 0 90px; }
.footer-grid { display: grid; gap: 2rem; grid-template-columns: 1.25fr .75fr .75fr; }
.footer-blurb { color: rgba(255,255,255,.62); font-size: .9rem; margin: 1.25rem 0 0; max-width: 24rem; }
.footer-heading { color: #f2b878; font-size: .67rem; font-weight: 850; letter-spacing: .1em; margin-bottom: 1rem; text-transform: uppercase; }
.footer-links { display: grid; gap: .65rem; }
.footer-links a { color: rgba(255,255,255,.8); font-size: .86rem; }
.footer-bottom { border-top: 1px solid rgba(255,255,255,.14); color: rgba(255,255,255,.42); display: flex; font-size: .68rem; justify-content: space-between; letter-spacing: .04em; margin-top: 46px; padding-top: 19px; }
.footer-bottom a { color: rgba(255,255,255,.65); }
.mobile-book { display: none; }

/* Internal pages */
.page-hero { background: var(--wine-deep); color: white; padding: 94px 0 77px; position: relative; overflow: hidden; }
.page-hero::after { background: radial-gradient(circle at 75% 10%, rgba(240,127,31,.24), transparent 27%); content: ""; inset: 0; position: absolute; }
.page-hero .shell { position: relative; z-index: 1; }
.page-hero h1 { font-size: clamp(4rem,9vw,8rem); margin: 16px 0 0; max-width: 10ch; }
.page-hero p { color: rgba(255,255,255,.71); font-size: 1.08rem; margin: 23px 0 0; max-width: 36rem; }
.page-content { padding: 84px 0; }
.prose { max-width: 52rem; }
.prose h2 { font-size: clamp(2rem,4vw,3.8rem); letter-spacing: -.05em; line-height: .95; margin: 2.7rem 0 1rem; text-transform: uppercase; }
.prose h3 { font-size: 1.25rem; margin: 1.8rem 0 .55rem; }
.prose p, .prose li { color: #584d48; }
.prose ul { padding-left: 1.15rem; }
.info-callout { background: #f2e4d7; border-left: 5px solid var(--ember); border-radius: 0 var(--radius-sm) var(--radius-sm) 0; color: #4d2d25; margin: 2rem 0; padding: 1rem 1.2rem; }
.route-grid { display: grid; gap: 18px; grid-template-columns: repeat(3, 1fr); }
.route-card { background: var(--paper-strong); border: 1px solid var(--line); border-radius: var(--radius-md); min-height: 220px; padding: 24px; }
.route-card h3 { font-size: 1.35rem; margin: 0 0 .65rem; text-transform: uppercase; }
.route-card p { color: var(--muted); font-size: .88rem; }
.route-card .text-link { color: var(--wine); display: inline-block; margin-top: 1.1rem; }

@media (max-width: 860px) {
  .nav-links { display: none; }
  .menu-button { display: inline-block; }
  .nav.open { align-items: flex-start; height: auto; padding: 19px 0; position: relative; }
  .nav.open .nav-links { align-items: stretch; display: grid; gap: 0; left: 0; position: absolute; right: 0; top: 78px; }
  .nav.open .nav-links a { background: var(--paper-strong); border-bottom: 1px solid var(--line); padding: 1rem; }
  .nav.open .nav-book { display: none; }
  .hero-grid, .booking-card, .find-panel, .content-grid { grid-template-columns: 1fr; }
  .hero-inner { min-height: 0; }
  .hero-stage { min-height: 420px; margin-top: 22px; }
  .hero-logo-wrap { height: min(54vw, 250px); width: min(54vw, 250px); }
  .scroll-prompt { display: none; }
  .booking-intro { padding: 34px; }
  .format-grid, .price-grid, .route-grid { grid-template-columns: 1fr; }
  .format-card:nth-child(2), .price-card.featured { transform: none; }
  .format-card { min-height: 220px; }
  .stat-row { grid-template-columns: 1fr 1fr; margin-top: 52px; }
  .stat { border-bottom: 1px solid rgba(255,255,255,.18); padding: 17px 0; }
  .stat:nth-child(2) { border-right: 0; padding-left: 20px; }
  .stat:nth-child(3) { padding-left: 0; }
  .section-top { align-items: start; flex-direction: column; }
  .find-copy { padding: 34px; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .footer-grid > :first-child { grid-column: 1 / -1; }
  .mobile-book { background: var(--ember); bottom: 16px; border-radius: 999px; box-shadow: 0 12px 26px rgba(43,10,19,.28); color: #2a1003; display: flex; font-size: .75rem; font-weight: 900; justify-content: center; left: 50%; letter-spacing: .1em; padding: 15px 22px; position: fixed; transform: translateX(-50%); text-transform: uppercase; z-index: 25; }
}

@media (max-width: 560px) {
  :root { --content: min(100vw - 28px, 1180px); }
  .nav { height: 69px; }
  .brand-logo { height: 32px; width: 32px; }
  .brand-wordmark { font-size: 1rem; }
  .brand-wordmark small { font-size: .38rem; }
  .hero { padding-top: 10px; }
  .hero-inner { padding-top: 45px; }
  .hero h1 { font-size: clamp(3.7rem, 18.6vw, 5.2rem); }
  .hero-copy { font-size: .98rem; }
  .hero-stage { min-height: 340px; padding: 18px; }
  .stage-chip { font-size: .6rem; padding: .63rem .7rem; }
  .stage-chip strong { font-size: 1.35rem; }
  .booking-form, .booking-intro { padding: 23px; }
  .field-grid { grid-template-columns: 1fr; }
  .field.full { grid-column: auto; }
  .booking-action { flex-direction: column; }
  .section { padding: 76px 0; }
  .section h2 { max-width: 13ch; }
  .price-card { padding: 24px; }
  .game-rail, .food-card { min-height: 390px; padding: 25px; }
  .game-chips { bottom: 21px; left: 25px; }
  .map-art { min-height: 290px; }
  .footer-grid { grid-template-columns: 1fr; }
  .footer-grid > :first-child { grid-column: auto; }
  .footer-bottom { flex-direction: column; gap: .5rem; }
  .page-hero { padding: 72px 0 61px; }
  .page-content { padding: 58px 0; }
}
