/* QC venue programme. Existing CMS selectors remain the layout contract. */
:root {
  --black: #111210; --black-2: #181916; --black-3: #20211d; --black-4: #292b25;
  --ivory: #f1eee4; --muted: #b8b6aa; --gold: #c9af77; --gold-2: #dfc48c;
  --gold-3: #eee0bf; --line: #ffffff26; --line-2: #ffffff1c;
  --sc-canvas: var(--black); --sc-surface: var(--black-3); --sc-ink: var(--ivory);
  --sc-ink-soft: var(--muted); --sc-accent: var(--gold); --sc-accent-ink: #171811;
  --sc-font-display: var(--serif); --sc-font-text: var(--sans);
  --gutter: clamp(24px, 5vw, 88px); --section: clamp(64px, 8vw, 128px);
}
html { scroll-padding-top: 100px; }
body { font-weight: 400; }
::selection { background: var(--gold); color: var(--black); }
:focus-visible { outline: 2px solid var(--gold-2); outline-offset: 5px; }
button:disabled { opacity: .55; cursor: wait; }
button, a, input, select, textarea { -webkit-tap-highlight-color: transparent; }
button:active, .btn-primary:active, .btn-ghost:active, .btn-gold:active { transform: translateY(1px); }
h1,h2,h3 { text-wrap: balance; font-weight: 400; }
h2 { font-size: clamp(2.5rem, 4.6vw, 4.8rem); line-height: 1.08; letter-spacing: -.045em; }
p { text-wrap: pretty; }
.grain { opacity: .018; }
.skip-link { position: fixed; top: 8px; left: 12px; z-index: 10001; padding: 12px 20px; background: var(--ivory); color: var(--black); transform: translateY(-150%); }
.skip-link:focus { transform: none; }
.btn-primary,.btn-gold,.btn-ghost { min-height: 48px; border-radius: 0; clip-path: none; font-size: .7rem; letter-spacing: .13em; padding: 15px 24px; transition: background-color 160ms, color 160ms, transform 160ms; }
.btn-gold { background: var(--gold); }
.btn-gold:hover { box-shadow: none; }
.btn-ghost { border-color: currentColor; }
.header { height: 88px; padding-inline: var(--gutter); background: #111210f5; backdrop-filter: blur(12px); border-bottom: 1px solid var(--line); }
.brand-logo { height: 68px; }
.nav { gap: clamp(16px, 2.3vw, 38px); }
.nav a { color: #e4e2d6; font-size: .68rem; letter-spacing: .14em; }
.nav a[aria-current] { color: var(--gold-2); }
.nav-cta { padding: 12px 22px; border-radius: 0; }
.header::after { content: ''; position: absolute; height: 2px; background: var(--gold); bottom: -1px; left: 0; right: 0; transform-origin: left; transform: scaleX(var(--reading-progress,0)); }
.hero { min-height: min(920px, 100svh); padding-top: 88px; background: var(--black); isolation: isolate; }
.hero-bg { inset: 112px var(--gutter) 68px 49%; overflow: hidden; }
.hero-video { filter: none; animation: none; object-position: 50% 50%; transform: scale(1.06) translateY(var(--hero-far,0px)); }
.hero-vignette { display: none; }
.hero-bg::after { content:''; position:absolute; inset:16px; border:1px solid #f1eee444; pointer-events:none; }
.hero-inset { position: absolute; z-index: 1; width: 19%; right: 3%; top: 21%; border: 8px solid var(--black); box-shadow: 0 18px 45px #090b0980; transform: translateY(var(--hero-near,0px)); }
.hero-inset img { width:100%; height:auto; aspect-ratio: 4/3; object-fit:cover; }
.hero-inner { min-height: 700px; width:100%; grid-template-columns: 1.1fr .9fr; gap: 6%; padding: 62px var(--gutter) 54px; align-items: center; }
.hero-left { align-self: center; padding-block: 32px; }
.kicker { font-size: .62rem; letter-spacing: .18em; gap: 12px; margin-bottom: 26px; max-width: 350px; }
.hero-left h1 { font-size: clamp(3.5rem,6.4vw,6.8rem); letter-spacing: -.06em; line-height: 1.02; margin-bottom: 32px; }
.hero-left h1 em { color: var(--ivory); }
.h1-stroke { -webkit-text-stroke: 0; color: var(--gold-2); font-size: .48em; font-style: italic; letter-spacing: -.035em; margin-top: 16px; }
.hero-meta-strip { max-width: 390px; font-size: .68rem; color: var(--muted); letter-spacing: .03em; gap: 8px; margin-bottom: 28px; }
.hero-right { align-self: end; padding-top: 290px; }
.hero-event-card { max-width: 390px; margin: 0 0 -20px auto; padding: 24px 28px; gap: 15px; background: #e9e3d4; color: #20211b; border:0; box-shadow: 0 20px 40px #090b0940; backdrop-filter: none; }
.hero-event-card .hec-label { color: #5c4b29; font-size:.6rem; }
.hero-event-card .hec-day { color:#69552d; border:0; border-right:1px solid #a99f8a; font-family: var(--sans); padding:8px 14px 8px 0; }
.hero-event-card .hec-name { color:#20211b; font-size:1.1rem; font-weight:400; }
.hero-event-card .hec-djs { color:#5b594f; }
.hero-event-card .hec-rule { background:#20211b26; }
.hero-event-card .btn-gold { background:#26291f; color:#f1eee4; min-height:44px; padding:10px; }
.marquee { background:var(--gold); color:#171811; border:0; padding:18px 0; }
.marquee-track { animation:none; transform:translateX(var(--genre-x,0px)); }
.marquee-track span { color:#171811; font-size:.76rem; letter-spacing:.18em; }
.marquee-track .m-sep { font-size:0; }
.marquee-track .m-sep::after { content:'✦'; font-size:.65rem; }
.funnel-section,.events-section,.tickets-section,.vip-section,.menu-section,.gallery-section,.reviews-section,.blog-section,.contact-section { padding:var(--section) var(--gutter); }
.funnel-section { background:var(--black); padding-block:64px; }
.funnel-inner { grid-template-columns: .8fr 1.7fr; gap:64px; }
.funnel-heading h2 { font-size:clamp(1.6rem,2.5vw,2.5rem); }
.funnel-steps { gap:28px; }
.funnel-step { border:0; padding:0; }
.fs-num { color:var(--gold); font-size:.7rem; }
.fs-bar { width:100%; margin:14px 0 20px; background:var(--line); }
.funnel-step h3 { font-size:1.2rem; margin-bottom:10px; }
.funnel-step p { font-size:.8rem; }
.eyebrow { font-size:.61rem; letter-spacing:.15em; font-weight:500; }
/* Existing section descriptors stay visible, but read as captions instead of repeated eyebrows. */
.funnel-heading,.tickets-header,.vip-copy,.menu-header > div,.reviews-header,.blog-header,.contact-copy { display:flex; flex-direction:column; align-items:flex-start; }
.funnel-heading > .eyebrow,.tickets-header > .eyebrow,.vip-copy > .eyebrow,.menu-header > div > .eyebrow,.reviews-header > .eyebrow,.blog-header > .eyebrow,.contact-copy > .eyebrow { order:1; margin:16px 0 24px; font-size:.72rem; text-transform:none; letter-spacing:.03em; color:var(--muted); }
.funnel-heading > h2,.tickets-header > h2,.vip-copy > h2,.menu-header > div > h2,.reviews-header > h2,.blog-header > h2,.contact-copy > h2 { order:0; }
.vip-copy > :not(h2):not(.eyebrow),.contact-copy > :not(h2):not(.eyebrow) { order:2; }
.events-section { background:#1b1d18; }
.events-header { display:block; margin-bottom:48px; }
.events-header h2 br { display:none; }
.eh-desc { max-width:600px; margin-top:24px; font-size:.95rem; }
.events-grid { gap:48px; align-items:start; }
.event-card { border:0; background:none; box-shadow:none; transition:transform 180ms; }
.event-card--featured { margin-top:80px; border:0; }
.event-card:hover { border:0; box-shadow:none; transform:none; }
.ev-img { height:auto; padding:0; background:#111210; }
.ev-img img { height:auto; width:100%; aspect-ratio:4/5; object-fit:contain; transition:transform 220ms; }
.event-card:hover .ev-img img { transform:none; }
.ev-pill { bottom:0; left:0; background:#111210; color:var(--ivory); border:0; backdrop-filter:none; }
.ev-badge { top:0; right:0; }
.ev-body { padding:28px 0 0; gap:14px; }
.ev-body h3 { font-size:clamp(1.7rem,3vw,2.9rem); }
.ev-djs span { border:0; padding:0 14px 0 0; font-size:.64rem; }
.ev-actions { margin-top:12px; }
.tickets-section,.menu-section { --ivory:#24261f; --muted:#595c51; --gold:#796038; --gold-2:#796038; --line:#24261f30; --line-2:#24261f20; background:#e9e5da; color:var(--ivory); }
.tickets-section::before { display:none; }
.tickets-section .btn-primary,.tickets-section .btn-gold { background:#25281f; color:#f1eee4; }
.tickets-header { margin-bottom:32px; }
.tickets-header h2 br { display:none; }
.tickets-grid { display:block; background:none; }
.ticket-card { display:grid; grid-template-columns:1.1fr .6fr 1.3fr minmax(190px,.85fr); align-items:center; gap:32px; padding:32px 0; border:0; border-top:1px solid var(--line); background:transparent; }
.ticket-card:hover { background:transparent; }
.tc-num,.tc-crown { display:none; }
.tc-badge { grid-column:1/-1; margin:0 0 -12px; padding:0; background:none; color:var(--gold); }
.tc-price { font-size:2.8rem; font-weight:400; }
.ticket-card h3 { font-size:1.5rem; }
.ticket-card a,.ticket-card button { margin:0; }
.vip-section { gap:8%; grid-template-columns:1fr 1fr; }
.vip-section::after { display:none; }
.vip-copy { position:sticky; top:130px; }
.vip-copy h2 { margin-bottom:0; }
.vip-perks { width:100%; margin-top:24px; }
.vip-photo { border:0; }
.vip-photo img { height:320px; }
.vip-right { gap:0; }
.booking-form { border:0; padding:36px; background:#24261f; }
.booking-form h3 { font-size:1.8rem; margin-bottom:12px; }
.booking-form input,.booking-form select,.booking-form textarea,.review-form input,.review-form select,.review-form textarea { font-size:16px; border-color:#ffffff40; min-height:48px; }
.field-label { display:flex; flex-direction:column; gap:7px; font-size:.7rem; letter-spacing:.04em; color:var(--muted); }
.menu-header { display:block; margin-bottom:40px; }
.menu-header h2 br { display:none; }
.menu-tagline { max-width:600px; padding:0; }
.menu-grid { display:block; background:none; }
.menu-card { display:grid; grid-template-columns:1fr 2fr; gap:40px; background:none; border:0; border-top:1px solid var(--line); padding:32px 0; }
.menu-card:hover { background:none; }
.mc-top { align-items:flex-start; margin:0; }
.mc-top h3 { font-size:1.6rem; }
.mc-icon { display:none; }
.mc-badge-tag { position:static; grid-column:1/-1; justify-self:start; color:var(--gold); background:none; padding:0; margin-bottom:-26px; }
.mc-row { padding:16px 0; }
.mc-row:first-child { padding-top:0; }
.mc-row p { font-size:1rem; }
.mc-row small { font-size:.8rem; }
.menu-footer { flex-direction:row; justify-content:space-between; border-top:1px solid var(--line); padding-top:24px; margin-top:24px; }
.gallery-section { padding-inline:0; background:#111210; }
.gallery-header { padding-inline:var(--gutter); text-align:center; margin-bottom:48px; }
.gallery-header h2 { font-size:clamp(3rem,6vw,6rem); }
.gallery-room { position:relative; height:clamp(340px,53vw,720px); margin:0 var(--gutter) 12px; overflow:hidden; clip-path:inset(0 var(--room-inset,0%) 0 var(--room-inset,0%)); }
.gallery-room img { width:100%; height:100%; object-fit:cover; transform:scale(var(--room-scale,1)); }
.gallery-room figcaption { position:absolute; bottom:24px; left:24px; background:#111210e8; padding:12px 18px; font-size:.7rem; text-transform:uppercase; letter-spacing:.18em; }
.gallery-mosaic { margin-inline:var(--gutter); grid-template-columns:repeat(4,minmax(0,1fr)); grid-template-rows:320px 280px; gap:12px; }
.gallery-mosaic > div { border:0; }
.gm-label { opacity:1; color:#f1eee4; padding:24px 16px 14px; font-size:.6rem; }
.gallery-submit { margin:64px var(--gutter) 0; border:0; border-block:1px solid var(--line); background:none; padding:40px 0; }
.reviews-section { padding-top:24px; }
.reviews-grid { background:none; grid-template-columns:1fr 1fr 1.2fr; gap:36px; }
.review-card { padding:24px 0; background:none; border-top:1px solid var(--line); }
.review-card blockquote { font-size:1.5rem; line-height:1.5; }
.review-form { padding:28px; background:#24261f; }
.blog-section { background:#1b1d18; }
.blog-grid { display:block; background:none; }
.blog-card { display:grid; grid-template-columns:1fr 1.8fr; gap:20px 64px; background:none; padding:40px 0; border-top:1px solid var(--line); }
.blog-card:hover { background:none; }
.blog-card-top { grid-column:1; align-self:start; flex-wrap:wrap; justify-content:flex-start; }
.blog-card h3 { grid-column:1; font-size:1.65rem; line-height:1.3; }
.blog-card p { grid-column:2; font-size:.92rem; max-width:70ch; }
.blog-card p:first-of-type { grid-row:1 / span 2; }
.blog-card .blog-link { grid-column:2; }
.blog-tag { border:0; padding:0; background:none; }
.blog-date { font-size:.65rem; }
.blog-excerpt { transition:none; }
.contact-section { background:var(--gold); --ivory:#20231b; --muted:#424536; --gold-2:#343b29; --line-2:#20231b33; --line:#20231b33; color:var(--ivory); gap:8%; }
.contact-copy h2 { font-size:clamp(3rem,6vw,6rem); margin-bottom:0; }
.contact-copy .btn-gold { color:#f1eee4; background:#23271e; }
.contact-details { width:100%; margin-bottom:28px; }
.cd-row { font-size:.9rem; gap:16px; }
.cd-row a { overflow-wrap:anywhere; }
.contact-map { border:0; min-height:420px; }
.contact-map iframe { min-height:420px; }
.footer { padding:32px var(--gutter); }
.footer-logo { height:64px; opacity:1; }
.footer-links { gap:20px; flex-wrap:wrap; }
.footer a:hover { text-decoration:underline; }
.reveal { opacity:1; transform:none; transition:none; }
.motion-ready .reveal:not(.active) { opacity:0; transform:translateY(18px); }
.motion-ready .reveal { transition:opacity 500ms ease-out,transform 500ms ease-out; }
.motion-ready .reveal:focus-within { opacity:1; transform:none; }
.motion-ready .ev-img { animation:poster-enter 700ms both; animation-timeline:view(); animation-range:entry 0% entry 70%; }
@keyframes poster-enter { from {clip-path:inset(8% 0 0 0);} to {clip-path:inset(0);} }
.video-toggle { position:absolute; top:24px; left:24px; z-index:3; background:#111210e8; color:#f1eee4; border:1px solid #ffffff70; padding:10px 14px; min-height:44px; font-family:var(--sans); font-size:.65rem; letter-spacing:.1em; cursor:pointer; }
.service-status { font-size:.8rem; color:var(--muted); }
@media(min-width:1600px) { .hero-inner { min-height:780px; } .hero { min-height:920px; } }
@media(max-width:1100px) {
  .hero-inner { grid-template-columns:1.1fr .9fr; gap:24px; min-height:680px; }
  .hero-left h1 { font-size:clamp(3.6rem,7vw,5.2rem); }
  .hero-event-card { padding:24px; }
  .hero-btns { gap:10px; } .hero-btns a { padding-inline:18px; }
  .funnel-inner { grid-template-columns:1fr; gap:32px; }
  .funnel-steps { grid-template-columns:repeat(3,1fr); }
  .events-grid { grid-template-columns:1fr 1fr; gap:28px; }
  .ticket-card { grid-template-columns:1fr .6fr 1.2fr; gap:24px; }
  .ticket-card > .tc-desc { grid-column:1/3; grid-row:2; }
  .ticket-card > :last-child { grid-column:3; grid-row:1/3; }
  .ticket-card--vip > .tc-desc { grid-row:3; }
  .ticket-card--vip > :last-child { grid-row:2/4; }
  .vip-section { gap:40px; } .booking-form { padding:24px; }
  .reviews-grid { grid-template-columns:1fr 1fr; } .review-form { grid-column:1/-1; }
  .blog-card { gap:20px 36px; }
}
@media(max-width:1024px) {
  .nav { top:88px; max-height:calc(100dvh - 88px); overflow-y:auto; background:#111210; }
  .nav a { padding:16px; font-size:.8rem; }
  .nav-cta { margin-top:12px; text-align:center; }
  .menu-btn { border-radius:0; }
  .menu-btn.active span:nth-child(1) { transform:translateY(7.5px) rotate(45deg); }
  .menu-btn.active span:nth-child(2) { opacity:0; }
  .menu-btn.active span:nth-child(3) { transform:translateY(-7.5px) rotate(-45deg); }
  .contact-section { grid-template-columns:1fr 1fr; gap:32px; }
}
@media(max-width:760px) {
  html { scroll-padding-top:88px; }
  .header { height:76px; } .brand-logo { height:58px; } .nav { top:76px; max-height:calc(100dvh - 76px); }
  .hero { padding-top:76px; min-height:0; display:block; }
  .hero-inner { display:contents; }
  .hero-left { padding:42px var(--gutter) 34px; }
  .kicker { font-size:.58rem; margin-bottom:22px; letter-spacing:.12em; }
  .kicker-bar { width:24px; }
  .hero-left h1 { font-size:clamp(3.3rem,12vw,5.4rem); line-height:1.02; margin-bottom:24px; }
  .h1-stroke { font-size:.5em; margin-top:12px; }
  .hero-btns { flex-direction:row; } .hero-btns a { width:auto; flex:1; font-size:.63rem; padding-inline:12px; }
  .hero-meta-strip { max-width:100%; font-size:.66rem; margin-bottom:22px; }
  .hero-bg { position:relative; inset:auto; margin:0 var(--gutter); height:300px; }
  .hero-video { transform:none; object-position:50% 45%; }
  .hero-inset { width:36%; top:auto; right:12px; bottom:220px; border-width:5px; transform:none; }
  .hero-right { position:relative; padding:0 var(--gutter) 32px; margin-top:-32px; z-index:4; }
  .hero-event-card { max-width:none; margin:0 12px; padding:24px; }
  .hero { display:flex; flex-direction:column; }
  .hero-bg { order:2; flex:none; }
  .hero-left { order:1; } .hero-right { order:3; }
  .hero-inset { display:none; }
  .marquee { padding:14px 0; } .marquee-track span { font-size:.65rem; }
  .funnel-section { padding-block:48px; }
  .funnel-steps { grid-template-columns:1fr; gap:24px; }
  .funnel-step { display:grid; grid-template-columns:32px 1fr; gap:8px 16px; padding:20px 0 0; border-top:1px solid var(--line); }
  .fs-bar { display:none; } .fs-num { grid-row:1/3; } .funnel-step h3 { margin:0; } .funnel-step p { grid-column:2; }
  .events-header h2 br { display:block; }
  .events-grid { grid-template-columns:1fr; gap:48px; }
  .event-card--featured { margin-top:0; }
  .ev-img { height:auto; } .ev-img img { max-height:620px; }
  .ev-body { padding-top:24px; }
  .ev-actions { flex-direction:row; } .ev-actions a { width:auto; flex:1; padding-inline:14px; }
  .ticket-card { grid-template-columns:1fr auto; gap:16px; padding:28px 0; }
  .ticket-card > .tc-desc,.ticket-card--vip > .tc-desc { grid-column:1/-1; grid-row:auto; }
  .ticket-card > :last-child,.ticket-card--vip > :last-child { grid-column:1/-1; grid-row:auto; }
  .ticket-card h3 { font-size:1.3rem; } .tc-price { font-size:2.2rem; }
  .vip-section { grid-template-columns:1fr; gap:32px; } .vip-copy { position:static; }
  .vip-copy > p { font-size:.9rem; } .vip-photo img { height:260px; }
  .form-row-2 { grid-template-columns:1fr; }
  .menu-card { grid-template-columns:1fr; gap:24px; } .mc-badge-tag { margin-bottom:0; }
  .menu-footer { align-items:flex-start; gap:20px; flex-direction:column; }
  .gallery-room { height:360px; clip-path:none; }
  .gallery-mosaic { grid-template-columns:1fr 1fr; grid-template-rows:none; gap:8px; }
  .gallery-mosaic > div { grid-column:auto; grid-row:auto; height:220px; }
  .gallery-mosaic .gm-a { grid-column:1/-1; height:420px; }
  .gallery-submit { grid-template-columns:1fr; padding:28px 0; gap:24px; margin-top:40px; }
  .reviews-grid { grid-template-columns:1fr; gap:24px; } .review-form { grid-column:auto; }
  .reviews-header { margin-bottom:24px; } .review-card blockquote { font-size:1.4rem; }
  .blog-card { display:flex; gap:20px; } .blog-card h3 { font-size:1.6rem; }
  .contact-section { grid-template-columns:1fr; gap:36px; }
  .contact-map,.contact-map iframe { min-height:320px; }
  .contact-btns { width:100%; flex-direction:row; } .contact-btns a { width:auto; flex:1; padding-inline:16px; }
  .footer-inner { align-items:flex-start; text-align:left; } .footer p { max-width:45ch; }
  .footer-links { justify-content:flex-start; gap:18px; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation:none !important; transition:none !important; }
  .motion-ready .reveal:not(.active) { opacity:1; transform:none; }
  .hero-video,.hero-inset,.marquee-track,.gallery-room img { transform:none; }
  .gallery-room { clip-path:none; }
}

@media(max-width:760px) { .hero-left { width:100%; } }
