/*
  Time & Tempo — UX consolidation pass
  Principle: personality comes from artwork, typography and colour; motion is reserved for direct interaction and live state.
*/
:root{
  --tt-bg:#050609;
  --tt-surface:#0b0d12;
  --tt-surface-2:#10131a;
  --tt-line:rgba(255,255,255,.13);
  --tt-line-strong:rgba(255,255,255,.22);
  --tt-muted:#969ca6;
  --tt-violet:#7b2cff;
  --tt-cyan:#00dff5;
  --tt-radius:8px;
  --tt-shadow:0 18px 50px rgba(0,0,0,.32);
}

/* ---------------- Motion policy ---------------- */
.cursor-glow,.tempo-trace,.tempo-divider{display:none!important}
.showcase::after,.wave-active i,.ticker>div,.signal-channel>span::after,.signal-channel i,.contact-dial span,.contact-dial.is-pulsing,.request-live i,.request-eq i{animation:none!important}
.showcase::after{transform:none!important;opacity:.72!important}
.request-eq{display:none!important}
.wave i{transform:scaleY(.68);box-shadow:none}
.night-takeover,.booking,.night-takeover.is-opening,.night-takeover.is-opening .takeover-image,.night-takeover.is-opening .takeover-shade,.night-takeover.is-opening .takeover-copy>*,.journey-step{animation:none!important}

/* ---------------- Shared navigation and controls ---------------- */
.topbar{
  height:82px;
  padding-inline:clamp(20px,4vw,64px);
  background:rgba(5,6,9,.94);
  border-bottom:1px solid rgba(255,255,255,.08);
  backdrop-filter:blur(14px);
}
.logo{width:clamp(205px,21vw,315px);height:48px}
.topbar nav{gap:clamp(17px,2vw,34px);font-size:.68rem;letter-spacing:.13em}
.topbar nav>a{position:relative;color:#a9afb8;transition:color .16s ease}
.topbar nav>a:hover,.topbar nav>a.active{color:#fff}
.topbar nav>a:not(.nav-book)::after{content:"";position:absolute;left:0;right:100%;bottom:-9px;height:1px;background:var(--tt-cyan);transition:right .16s ease}
.topbar nav>a:hover::after,.topbar nav>a.active::after{right:0}
.topbar nav>.nav-book,.topbar nav>button{
  min-height:42px;height:42px;padding:0 16px;border:1px solid rgba(255,255,255,.2);border-image:none;
  background:#0b0d12;color:#fff;
}
.primary,.request-submit,.login-form button,.create-event button,.event-code-gate button{
  border-radius:var(--tt-radius)!important;
  box-shadow:none!important;
  transition:background .16s ease,border-color .16s ease,transform .16s ease!important;
}
.primary:hover,.request-submit:hover{transform:translateY(-1px)!important;box-shadow:none!important}
.line-link{font-size:.69rem;letter-spacing:.11em}

/* ---------------- Homepage: one focal idea at a time ---------------- */
.showcase{
  min-height:720px;height:min(900px,100svh);
  grid-template-columns:minmax(320px,34%) 1fr;
  padding-top:82px;
  background:linear-gradient(120deg,#07080b,#030406);
}
.showcase::before{opacity:.07;background-size:120px 120px}
.manifesto{padding:clamp(42px,6vh,72px) 28px 64px clamp(24px,5vw,76px)}
.manifesto h1{margin:22px 0 22px;font-size:clamp(3.4rem,5.8vw,6.6rem);line-height:.82;letter-spacing:-.062em}
.lede{max-width:390px;color:#b0b5bd;line-height:1.65}
.manifesto-foot>span{font-size:clamp(3.5rem,5vw,5.5rem)}
.stage-label{top:24px;color:#7f858e}
.poster-stage,.poster-rail{perspective:none!important;transform-style:flat!important}
.poster-rail{
  height:min(66vh,650px);gap:14px;padding:34px 0 28px;
  scroll-snap-type:x mandatory;scroll-padding-inline:5vw;
}
.poster-stage .poster,.poster{
  --tilt:0deg!important;
  flex:0 0 clamp(225px,18vw,300px);
  height:clamp(440px,57vh,600px);
  margin-right:0;
  transform:none!important;
  filter:saturate(.9) brightness(.84)!important;
  opacity:.78!important;
  border-color:rgba(255,255,255,.16);
  border-radius:6px;
  box-shadow:0 16px 38px rgba(0,0,0,.34)!important;
  transition:filter .2s ease,opacity .2s ease,border-color .2s ease,transform .2s ease!important;
  will-change:auto!important;
  scroll-snap-align:center;
}
.poster-stage .poster::before{display:none}
.poster-stage .poster.is-active,.poster:hover,.poster:focus-visible{
  transform:translateY(-5px)!important;
  filter:saturate(1.02) brightness(1)!important;
  opacity:1!important;
  border-color:var(--accent)!important;
  box-shadow:0 18px 46px rgba(0,0,0,.46)!important;
}
.poster img{transition:none;filter:saturate(.98) contrast(1.05)}
.poster:hover img,.poster.is-active img{transform:none;filter:saturate(1.03) contrast(1.05)}
.poster-open{opacity:.9;transform:none}
.rail-nav{bottom:8px;gap:12px}.rail-nav button{border-radius:6px;background:#0b0d12}
.scroll-note{bottom:14px}
.ticker{height:46px;border-color:rgba(123,44,255,.45);background:#08090d}
.ticker>div{transform:none!important}
.ticker span{padding:0 22px;gap:16px;font-size:.59rem;color:#aab0b9}
.ticker .wave{display:none}

/* ---------------- General page rhythm ---------------- */
.page-hero{min-height:610px;padding:142px clamp(24px,6vw,92px) 78px}
.page-hero::after{opacity:.07!important}
.page-hero .hero-number{opacity:.55}
.page-hero h1{max-width:1000px;margin:20px 0 22px;font-size:clamp(3.7rem,8vw,7.8rem);line-height:.8;letter-spacing:-.065em}
.page-hero .hero-intro{max-width:720px;font-size:1.06rem;line-height:1.7}
.content-section{padding:clamp(78px,8vw,110px) clamp(24px,6vw,92px)}
.section-title{margin-bottom:48px;font-size:clamp(2.8rem,5.5vw,5.9rem);line-height:.88}
.quote-banner{padding:clamp(78px,8vw,105px) 24px;background:linear-gradient(120deg,#5c20c4,#3139bd 65%,#007f9c)}
.quote-banner p{font-size:clamp(2.6rem,5.8vw,5.9rem);line-height:.9}
.feature-card,.dark-card,.coverage-grid article,.mini-theme,.service-signal{box-shadow:none!important}
.theme-entry img,.campaign-posters article,.campaign-posters img,.night-builder button,.music-picker button,.music-picker img{transition-duration:.2s!important}
.theme-entry:hover img{transform:scale(1.015)}

/* Themed-night page: cards, not a stack of full-screen tricks */
.themed-page #all-nights{padding-top:80px}
.themed-page .theme-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.themed-page .theme-entry{
  position:relative;top:auto;min-height:620px;margin:0;padding:clamp(28px,4vw,50px);
  align-items:flex-start!important;text-align:left!important;
  border:1px solid rgba(255,255,255,.15);box-shadow:none;
}
.themed-page .theme-entry:nth-child(even) .theme-tags{justify-content:flex-start}
.themed-page .theme-entry:nth-child(even) .theme-no{left:clamp(25px,4vw,50px);right:auto}
.themed-page .theme-entry h2{max-width:720px;font-size:clamp(3.1rem,6vw,6.5rem)}
.themed-page .theme-entry:nth-child(even) .theme-listening{grid-template-columns:62px minmax(0,1fr)}
.themed-page .theme-entry:nth-child(even) .theme-listening span,.themed-page .theme-entry:nth-child(even) .theme-listening p{order:initial}
.themed-page .theme-entry img{transform:none;filter:saturate(.96) contrast(1.06)}
.themed-page .theme-entry:hover img{transform:scale(1.015)}

/* Services: show the system, don't animate it */
.service-signal{min-height:320px;margin-bottom:62px;padding:42px}
.signal-channel>span::after{display:none}
.signal-channel i{left:72%!important;opacity:.85}
.campaign-posters{perspective:none;gap:14px}
.campaign-posters article,.campaign-posters article:nth-child(even){margin:0;transform:none;box-shadow:0 16px 32px #0004}
.campaign-posters article:hover{transform:translateY(-4px) scale(1.01);box-shadow:0 20px 42px #0005}
.contact-dial span{transform:none!important}

/* ---------------- Guest request experience ---------------- */
.request-body::before{background:radial-gradient(circle at 16% 5%,#7b2cff1f,transparent 30%),linear-gradient(180deg,#08090d,#050609 58%)}
.request-body::after{opacity:.035;background-size:96px 96px}
.request-topbar{min-height:74px;padding:14px clamp(18px,4vw,48px);background:rgba(5,6,9,.95);backdrop-filter:blur(12px)}
.request-topbar .request-logo{width:clamp(180px,21vw,275px)}
.request-live{letter-spacing:.12em;color:#9ca3ad}.request-live b{font-size:.56rem}.request-live i{box-shadow:none}
.request-guest-main{
  width:min(1050px,100%);padding:clamp(34px,5vw,62px) clamp(18px,4vw,48px) 64px;
  grid-template-columns:minmax(0,.78fr) minmax(420px,1.22fr);gap:clamp(34px,6vw,72px)
}
.request-intro{top:108px;padding-top:6px}
.request-intro h1{font-size:clamp(3.2rem,6.4vw,6rem);line-height:.84;letter-spacing:-.06em}
.request-intro .request-lede{margin-top:22px;max-width:410px;font-size:.95rem;line-height:1.65}
.request-kicker{margin-bottom:15px;letter-spacing:.18em}
.request-panel{border-color:var(--tt-line);border-radius:10px;background:#0a0c11;box-shadow:var(--tt-shadow);overflow:hidden}
.request-panel::before{height:1px}
.request-panel-head{padding:25px 26px 18px}.request-panel-head h2{font-size:clamp(1.8rem,3vw,2.7rem)}
.request-panel-head em{padding:6px 8px;border:1px solid rgba(0,223,245,.25);border-radius:999px;background:rgba(0,223,245,.06);font-size:.52rem}
.request-form{padding:24px 26px 26px;gap:16px}
.request-form label span{letter-spacing:.12em}
.request-form input,.request-form textarea{border-color:rgba(255,255,255,.15);border-radius:7px;background:#06080c;padding:14px 15px}
.request-form input{height:50px}
.request-form textarea{min-height:78px}
.request-form input:focus,.request-form textarea:focus{border-color:rgba(0,223,245,.75);box-shadow:0 0 0 3px rgba(0,223,245,.08);background:#080b10}
.request-form .request-submit{min-height:54px;letter-spacing:.11em}
.request-rules{color:#747b84}
.request-popular{margin-top:18px;padding-top:18px}
.request-popular-head{margin-bottom:10px}.request-popular-head h3{font-size:.66rem}.request-popular-head span{letter-spacing:.1em}
.popular-request{padding:12px 13px;border-color:rgba(255,255,255,.11);border-radius:7px;background:#080a0e;transition:border-color .15s ease,background .15s ease}
.popular-request:hover{border-color:rgba(0,223,245,.4);background:#0a0d12}
.popular-request b{height:34px;border-radius:6px;background:#0c0e14}
.request-success{background:rgba(2,3,4,.9);backdrop-filter:blur(8px)}
.request-success-card{padding:40px 32px;border-radius:10px;background:#0a0c11;box-shadow:0 24px 70px rgba(0,0,0,.55)}
.request-success-card .tick{width:60px;height:60px;margin-bottom:22px;box-shadow:none}
.request-success-card h2{font-size:clamp(2.4rem,7vw,4.2rem)}
.request-success-card button{border-radius:7px}
.request-mini-footer{padding-bottom:30px}

/* ---------------- DJ / event control surfaces ---------------- */
.dj-shell{grid-template-columns:300px minmax(0,1fr)}
.dj-sidebar{padding:22px;gap:16px;background:#07090d;border-color:rgba(255,255,255,.1)}
.dj-logo img{max-width:225px}
.dj-label{letter-spacing:.12em}
.dj-qr-card{margin-top:2px;padding:15px;border-color:rgba(255,255,255,.13);border-radius:9px;background:#0a0c11;box-shadow:none}
.dj-qr-frame{max-width:190px;margin-inline:auto;padding:10px;border-radius:6px}
.dj-qr-card h2{font-size:1.13rem}.dj-qr-card p{font-size:.61rem}
.dj-qr-actions{gap:6px}.dj-qr-actions a,.dj-qr-actions button{min-height:38px;border-radius:6px;border-color:rgba(255,255,255,.13);letter-spacing:.08em}
.dj-stats{border-color:rgba(255,255,255,.11);border-radius:7px;overflow:hidden}
.dj-main{padding:24px clamp(22px,3.7vw,50px) 60px}
.dj-header{padding-bottom:22px}.dj-header h1{font-size:clamp(2.8rem,5.2vw,5.6rem);line-height:.82}
.dj-clock b{font-size:1.55rem}
.dj-toolbar{padding:14px 0}.dj-filter{min-height:36px;border-radius:6px;letter-spacing:.08em;transition:border-color .15s ease,color .15s ease,background .15s ease}
.dj-request-list{padding-top:14px;gap:8px}
.dj-request{grid-template-columns:62px minmax(0,1.4fr) minmax(130px,.58fr) auto;gap:15px;padding:14px 15px;border:1px solid rgba(255,255,255,.11);border-left:3px solid var(--status);border-radius:8px;background:#090b0f;transition:border-color .15s ease,background .15s ease}
.dj-request:hover{transform:none;border-color:rgba(255,255,255,.2);border-left-color:var(--status);background:#0b0d12}
.dj-votes{width:52px;height:52px;border-radius:7px}
.dj-track strong{font-size:clamp(1rem,1.6vw,1.28rem);text-transform:none;letter-spacing:-.015em}
.dj-track>span{font-size:.7rem}.dj-track small{margin-top:6px}
.dj-actions button{min-width:60px;height:36px;border-radius:6px;letter-spacing:.06em;transition:border-color .15s ease,color .15s ease,background .15s ease}
.dj-actions .queue{border-color:rgba(155,98,255,.5);color:#d1bdff}.dj-actions .queue:hover{background:rgba(155,98,255,.09)}
.dj-actions .played{color:#a8b0ba}.dj-actions .skip{color:#777e87}
.dj-toast{border-radius:7px;transition:opacity .15s ease,transform .15s ease}

.events-top{min-height:72px;padding:12px clamp(18px,4vw,48px);background:rgba(5,6,9,.95);backdrop-filter:blur(12px)}
.events-top img{width:200px}
.events-main{width:min(1160px,100%);padding:clamp(38px,5vw,64px) clamp(20px,5vw,56px) 72px}
.events-hero{grid-template-columns:minmax(0,1fr) minmax(350px,.7fr);gap:clamp(34px,6vw,72px)}
.events-hero h1{font-size:clamp(3.7rem,7.5vw,7rem);line-height:.8}
.create-event{padding:24px;border-radius:9px;border-color:rgba(255,255,255,.13);background:#0a0c11;box-shadow:none}
.create-event input{border-radius:6px}.create-event button{min-height:50px}
.events-list-head{margin-top:60px}.event-card{grid-template-columns:115px minmax(0,1fr) minmax(235px,.58fr);gap:20px;padding:21px 0}
.event-main h2{font-size:clamp(1.5rem,2.5vw,2.35rem)}
.event-actions a,.event-actions button{border-radius:6px}
.login-shell{width:min(1050px,100%);grid-template-columns:1fr minmax(380px,.7fr);gap:60px}
.login-card{padding:clamp(30px,4vw,46px);border-radius:10px;background:#0a0c11;box-shadow:var(--tt-shadow)}
.login-card .request-kicker{margin-top:38px}.login-card h1{font-size:clamp(3rem,6vw,5.5rem)}
.login-form input{border-radius:6px}.login-form button{min-height:52px}

/* ---------------- Responsive ---------------- */
@media(max-width:1000px){
  .showcase{grid-template-columns:minmax(280px,38%) 1fr}
  .themed-page .theme-list{grid-template-columns:1fr}
  .themed-page .theme-entry{min-height:600px}
  .request-guest-main{grid-template-columns:1fr;max-width:760px}
  .request-intro{position:relative;top:auto;max-width:620px}
  .request-intro h1{font-size:clamp(3.3rem,10vw,5.5rem)}
  .dj-shell{grid-template-columns:270px minmax(0,1fr)}
}
@media(max-width:760px){
  .topbar{height:72px;padding:0 18px}.logo{width:190px;height:44px}
  .showcase{height:auto;min-height:auto;padding-top:72px;display:block}
  .manifesto{min-height:520px;padding:62px 22px 42px;justify-content:center}
  .manifesto h1{font-size:clamp(3.5rem,16vw,5.5rem)}
  .manifesto-foot{margin-top:42px}
  .poster-stage{min-height:580px}.poster-rail{height:540px;padding:24px 22px 52px;gap:12px}
  .poster-stage .poster,.poster{flex-basis:min(74vw,275px);height:455px;opacity:.88!important}
  .stage-label{left:22px;transform:none}.rail-nav{left:22px;right:22px}.scroll-note{display:none}
  .page-hero{min-height:540px;padding:118px 20px 58px}.page-hero h1{font-size:clamp(3.25rem,15vw,5.5rem)}
  .content-section{padding:72px 20px}.section-title{font-size:clamp(2.8rem,12vw,4.7rem)}
  .themed-page .theme-entry{min-height:540px;margin:0;padding:24px}.themed-page .theme-entry h2{font-size:clamp(3rem,13vw,5.2rem)}
  .campaign-posters{gap:10px}
  .request-topbar{min-height:68px}.request-guest-main{padding-top:28px}.request-intro h1{font-size:clamp(3.1rem,14vw,5rem)}
  .request-panel-head{padding:22px 19px 16px}.request-form{padding:20px 19px 22px;grid-template-columns:1fr}.request-form label.wide,.request-form .request-submit,.request-rules{grid-column:auto}
  .request-popular-head{align-items:flex-start;flex-direction:column;gap:4px}
  .dj-shell{display:block}.dj-sidebar{position:relative;height:auto;padding:16px;border-right:0;border-bottom:1px solid rgba(255,255,255,.1)}
  .dj-qr-card{grid-template-columns:105px 1fr}.dj-qr-frame{padding:6px}.dj-sidebar-foot{display:flex;gap:6px;flex-wrap:wrap}.dj-sidebar-foot a,.dj-sidebar-foot button{flex:1;min-width:110px}
  .dj-main{padding:22px 14px 48px}.dj-header h1{font-size:clamp(2.8rem,13vw,4.6rem)}
  .dj-request{grid-template-columns:48px minmax(0,1fr);gap:11px;padding:12px}.dj-votes{width:44px;height:46px}.dj-requester{display:none}.dj-actions{grid-column:1/-1;margin-left:59px}.dj-actions button{flex:1}
  .events-hero{grid-template-columns:1fr}.events-hero h1{font-size:clamp(3.5rem,15vw,5.8rem)}
}
@media(max-width:460px){
  .request-live .event-label{display:none}.request-live b{display:block;font-size:.49rem}
  .request-intro h1{font-size:clamp(3rem,15vw,4.6rem)}
  .request-panel-head em{display:none}.request-success-card{padding:34px 22px}
  .dj-qr-card{grid-template-columns:90px 1fr}.dj-qr-actions{grid-template-columns:1fr 1fr}
  .dj-actions{margin-left:55px}.dj-actions button{font-size:.47rem;padding:0 5px}
  .events-top img{width:175px}
}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition-duration:.01ms!important}}

/* ================================================================
   UX polish pass 2 — screen-by-screen hierarchy
   The site should feel like one confident product, not a collection
   of separate visual experiments.
   ================================================================ */

/* ---------- Global rhythm ---------- */
body{line-height:1.45}
.content-inner{width:min(1180px,100%);margin-inline:auto}
.page-actions{gap:22px;align-items:center}
.page-actions .line-link{color:#a8aeb7}
.page-actions .line-link:hover{color:#fff}
.page-footer{min-height:220px;border-top:1px solid rgba(255,255,255,.08)}

/* ---------- Homepage: reduce the number of competing statements ---------- */
.ticker{display:none}
.showcase{min-height:700px}
.manifesto-foot{margin-top:46px;gap:0}
.manifesto-foot>span{display:none}
.manifesto-foot p{padding-top:14px;border-top:1px solid rgba(255,255,255,.13);color:#858b94}
.scroll-note{display:none}
.production{min-height:auto;padding-block:clamp(88px,9vw,125px)}
.production-title{grid-template-columns:minmax(190px,.42fr) minmax(0,1fr);gap:clamp(28px,5vw,70px)}
.production-title h2{font-size:clamp(3.5rem,6.3vw,7rem);line-height:.8}
.production-grid{margin-top:clamp(58px,7vw,84px)}
.production-grid article{min-height:260px;margin-right:28px;padding-right:28px}
.production-grid article>span{margin-top:36px}
.production-cta{margin-top:48px}
.about{
  min-height:620px;
  background:radial-gradient(circle at 78% 34%,rgba(0,223,245,.09),transparent 24%),#080a0f;
  border-top:1px solid rgba(255,255,255,.08);border-bottom:1px solid rgba(255,255,255,.08)
}
.about::after{background:radial-gradient(circle at 14% 88%,rgba(123,44,255,.16),transparent 30%)}
.big-word{top:9%;color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.055)}
.about-inner{width:min(1180px,calc(100% - 48px));grid-template-columns:minmax(0,1.15fr) minmax(300px,.62fr);gap:clamp(42px,8vw,100px)}
.about h2{font-size:clamp(3.4rem,6.3vw,7rem);line-height:.84}
.about-inner>p:not(.kicker){color:#b0b6bf;font-size:1rem;line-height:1.75}
.about-inner>a{grid-column:2;width:max-content;margin-top:24px;padding-bottom:7px;border-bottom:1px solid var(--tt-cyan);color:#fff;text-transform:uppercase;letter-spacing:.12em;font-size:.68rem;font-weight:850}
.local-home{padding-block:clamp(80px,9vw,115px)}
.local-home h2{font-size:clamp(3.1rem,5.8vw,6.5rem)}

/* ---------- Themed nights: editorial rows, not seven mini hero screens ---------- */
.themed-page #all-nights{background:#06070a;padding-top:74px}
.themed-page .theme-list{display:grid!important;grid-template-columns:1fr!important;gap:18px;max-width:1180px}
.themed-page .theme-entry,
.themed-page .theme-entry:nth-child(even){
  display:grid;grid-template-columns:minmax(260px,34%) minmax(0,1fr);grid-template-rows:auto;
  min-height:420px;margin:0!important;padding:0!important;position:relative;top:auto!important;
  align-items:start!important;text-align:left!important;overflow:hidden;
  background:#0a0c11;border:1px solid rgba(255,255,255,.12);border-top:2px solid var(--chapter);box-shadow:none!important
}
.themed-page .theme-entry::before,.themed-page .theme-entry::after{display:none}
.themed-page .theme-entry img{
  position:relative;inset:auto;z-index:0;grid-column:1;grid-row:1/7;width:100%;height:100%;min-height:420px;
  object-fit:cover;object-position:center;filter:saturate(.94) contrast(1.04);transform:none!important
}
.themed-page .theme-entry .theme-no,
.themed-page .theme-entry:nth-child(even) .theme-no{
  position:relative;inset:auto;grid-column:2;margin:30px 34px 0;color:var(--chapter);font-size:.61rem;line-height:1;
  letter-spacing:.16em;font-weight:850;-webkit-text-stroke:0
}
.themed-page .theme-entry h2{grid-column:2;max-width:none;margin:11px 34px 0;font-size:clamp(2.5rem,4.7vw,5rem);line-height:.86}
.themed-page .theme-entry h3{grid-column:2;margin:10px 34px 0;font-size:.69rem;letter-spacing:.14em}
.themed-page .theme-entry .theme-summary{grid-column:2;max-width:720px;margin:18px 34px 0!important;color:#b8bec7;font-size:.92rem;line-height:1.62}
.themed-page .theme-entry .theme-listening,
.themed-page .theme-entry:nth-child(even) .theme-listening{
  grid-column:2;grid-template-columns:54px minmax(0,1fr);width:auto;max-width:720px;margin:18px 34px 0;padding-top:14px
}
.themed-page .theme-entry:nth-child(even) .theme-listening span,
.themed-page .theme-entry:nth-child(even) .theme-listening p{order:initial}
.themed-page .theme-entry .theme-tags,
.themed-page .theme-entry:nth-child(even) .theme-tags{grid-column:2;justify-content:flex-start;max-width:none;margin:18px 34px 30px;gap:6px}
.themed-page .theme-entry .theme-tags span{padding:6px 8px;border-color:rgba(255,255,255,.17);color:#aeb4bd;font-size:.52rem}
.mini-themes{gap:12px;margin-top:34px}.mini-theme{min-height:250px;padding:28px;border-radius:8px}.mini-theme h3{font-size:1.9rem}
.quote-banner{background:#0a0c11;border-top:1px solid rgba(255,255,255,.08);border-bottom:1px solid rgba(255,255,255,.08)}
.quote-banner p{font-size:clamp(2.4rem,4.6vw,4.8rem)}

/* ---------- Services: explain the service instead of visualising a 'signal' ---------- */
.services-page .service-signal{display:none}
.services-page #what-we-do .section-title{margin-bottom:42px}
.services-page .feature-grid{gap:14px;border:0}
.services-page .feature-card{
  min-height:330px;margin:0;padding:28px;border:1px solid rgba(7,8,11,.15)!important;border-top:3px solid #7b2cff!important;background:#f7f6f3
}
.services-page .feature-card:nth-child(2){border-top-color:#405dff!important}
.services-page .feature-card:nth-child(3){border-top-color:#00a9c0!important}
.services-page .feature-card>span{margin:0 0 58px;color:#676d76}
.services-page .feature-card h2{font-size:clamp(1.9rem,3vw,3rem);line-height:.92}
.services-page .dark-card-grid{gap:14px}
.services-page .dark-card{min-height:390px;padding:32px;border-color:rgba(255,255,255,.12);box-shadow:none}
.services-page .dark-card h2{margin-top:58px;font-size:clamp(2rem,3.4vw,3.7rem)}
.request-feature-inner{width:min(1180px,100%);gap:clamp(40px,6vw,76px)}
.request-feature-screen{transform:none!important;border-radius:9px;box-shadow:none!important;background:#090b0f}
.steps{gap:0}.step{padding-right:26px}.step::before{width:7px;height:7px;box-shadow:none}

/* ---------- Guest requests: two-second comprehension ---------- */
.request-guest-main{width:min(980px,100%);grid-template-columns:minmax(0,.7fr) minmax(420px,1.3fr);gap:clamp(32px,5vw,58px)}
.request-intro h1{font-size:clamp(3rem,5.5vw,5.2rem)}
.request-intro .request-lede{font-size:.9rem}
.request-panel-head{align-items:center}
.request-panel-head em{white-space:nowrap;color:#94e9f3}
.request-form{gap:14px}
.request-form label span small{color:#646c76;font-size:.86em;font-weight:700;text-transform:none;letter-spacing:0}
.request-note-details{grid-column:1/-1;border:1px solid rgba(255,255,255,.12);border-radius:7px;background:#07090d;overflow:hidden}
.request-note-details summary{padding:14px 15px;cursor:pointer;list-style:none;color:#9ca3ad;text-transform:uppercase;letter-spacing:.1em;font-size:.56rem;font-weight:800}
.request-note-details summary::-webkit-details-marker{display:none}
.request-note-details summary::after{content:"+";float:right;color:#00dff5;font-size:.9rem;line-height:.7}
.request-note-details[open] summary{border-bottom:1px solid rgba(255,255,255,.1);color:#fff}
.request-note-details[open] summary::after{content:"−"}
.request-note-details summary small{color:#646b74;text-transform:none;letter-spacing:0}
.request-note-details label{padding:14px 15px 16px}
.request-note-details textarea{min-height:72px}
.request-rules{font-size:.63rem;line-height:1.45}
.request-popular{margin-top:20px}.popular-request{min-height:58px}
.request-success-card span{letter-spacing:.14em}.request-success-card p{font-size:.82rem}

/* ---------- DJ control: keep setup visible without letting it dominate ---------- */
.dj-shell{grid-template-columns:270px minmax(0,1fr)}
.dj-sidebar{padding:18px;gap:12px}
.dj-logo img{max-width:205px}
.dj-qr-card{
  display:grid;grid-template-columns:92px minmax(0,1fr);gap:12px;padding:12px;align-items:start
}
.dj-qr-frame{grid-column:1;grid-row:1/3;width:92px;max-width:none;margin:0;padding:6px}
.dj-qr-card>div:nth-child(2){grid-column:2;min-width:0}
.dj-qr-card h2{margin:2px 0 5px;font-size:.94rem}.dj-qr-card p{display:-webkit-box;overflow:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.55rem;line-height:1.4}
.dj-qr-actions{grid-column:1/-1;margin-top:0;grid-template-columns:repeat(2,1fr);gap:5px}
.dj-qr-actions a,.dj-qr-actions button{min-height:34px;font-size:.49rem}
.dj-stats{margin-top:0}.dj-stat{padding:10px 6px}.dj-stat b{font-size:1.1rem}
.dj-main{padding-top:20px}
.dj-header h1{font-size:clamp(2.6rem,4.7vw,5rem)}
.dj-filter{display:inline-flex;align-items:center;gap:7px;padding-inline:11px}
.dj-filter b{min-width:19px;height:19px;padding:0 5px;display:grid;place-items:center;border-radius:999px;background:rgba(255,255,255,.08);color:#aeb5be;font-size:.5rem;letter-spacing:0}
.dj-filter.is-active b{background:rgba(0,223,245,.12);color:#dffcff}
.dj-toolbar-note{text-transform:none;letter-spacing:.02em;font-size:.62rem}
.dj-request{min-height:78px}
.dj-track small{padding-left:9px;border-left:2px solid rgba(255,255,255,.12);color:#828993;font-style:italic}
.dj-actions .queue{background:rgba(155,98,255,.06)}
.dj-actions .played{border-color:rgba(85,245,122,.22)}
.dj-actions .skip{border-color:rgba(255,98,116,.14)}

/* ---------- Event manager / login: quieter setup surfaces ---------- */
.events-main{width:min(1100px,100%)}
.events-hero{grid-template-columns:minmax(0,1fr) minmax(330px,.62fr)}
.events-hero h1{font-size:clamp(3.4rem,6.5vw,6.2rem)}
.create-event h2{font-size:1.65rem}.create-event>small{font-size:.54rem}
.events-list-head{margin-top:50px}
.event-card{grid-template-columns:105px minmax(0,1fr) minmax(220px,.55fr);padding:18px 0}
.event-actions{gap:5px}.event-actions a,.event-actions button{min-height:36px}
.login-shell{width:min(940px,100%);grid-template-columns:minmax(220px,.8fr) minmax(360px,.9fr);gap:50px}
.login-logo{width:min(300px,72vw)}
.login-card h1{font-size:clamp(2.8rem,5vw,4.7rem)}

@media(max-width:900px){
  .production-title{grid-template-columns:1fr}.production-title p{margin-bottom:18px}.production-grid{grid-template-columns:1fr}.production-grid article{min-height:auto;margin:0;padding:28px 0;border-right:0;border-bottom:1px solid #111}.production-grid article>span{margin:16px 0 10px}.production-grid article:last-child{border-bottom:0}
  .about-inner{grid-template-columns:1fr;align-items:start}.about-inner>a{grid-column:1}.about{min-height:auto;padding-block:84px}
  .themed-page .theme-entry,.themed-page .theme-entry:nth-child(even){grid-template-columns:minmax(220px,37%) minmax(0,1fr)}
  .request-feature-inner{grid-template-columns:1fr}.request-feature-screen{max-width:700px}
  .events-hero{grid-template-columns:1fr}
}

@media(max-width:760px){
  /* The home poster section is a simple swipe rail on phones, not a seven-poster vertical wall. */
  .poster-stage{height:auto;min-height:auto;padding:26px 0 72px;display:block}
  .stage-label{position:relative;top:auto;left:auto;margin:0 20px 16px;transform:none}
  .poster-rail{height:auto!important;display:flex!important;grid-template-columns:none!important;gap:12px;overflow-x:auto!important;overflow-y:hidden!important;padding:0 20px 12px!important;scroll-snap-type:x mandatory!important;cursor:auto;touch-action:pan-x pan-y}
  .rail-spacer{display:block!important;flex:0 0 1px}.rail-spacer.end{flex-basis:7px}
  .poster-stage .poster,.poster-stage .poster:nth-of-type(even),.poster{flex:0 0 min(72vw,278px)!important;width:auto!important;height:auto!important;aspect-ratio:2/3;margin:0!important;scroll-snap-align:center!important}
  .rail-nav{display:flex!important;left:20px;right:20px;bottom:20px}
  .manifesto{min-height:480px}.manifesto-foot{display:none}
  .themed-page .theme-entry,.themed-page .theme-entry:nth-child(even){display:grid;grid-template-columns:1fr;min-height:0!important}
  .themed-page .theme-entry img{grid-column:1;grid-row:1;width:100%;height:auto;min-height:0;aspect-ratio:16/10;object-position:center 36%}
  .themed-page .theme-entry .theme-no,.themed-page .theme-entry:nth-child(even) .theme-no{grid-column:1;margin:22px 22px 0}
  .themed-page .theme-entry h2{grid-column:1;margin:10px 22px 0;font-size:clamp(2.8rem,12vw,4.6rem)}
  .themed-page .theme-entry h3{grid-column:1;margin:8px 22px 0}
  .themed-page .theme-entry .theme-summary{grid-column:1;margin:16px 22px 0!important;font-size:.88rem}
  .themed-page .theme-entry .theme-listening,.themed-page .theme-entry:nth-child(even) .theme-listening{grid-column:1;margin:16px 22px 0}
  .themed-page .theme-entry .theme-tags,.themed-page .theme-entry:nth-child(even) .theme-tags{grid-column:1;margin:16px 22px 24px}
  .services-page .feature-grid{grid-template-columns:1fr}.services-page .feature-card{min-height:auto;padding:24px}.services-page .feature-card>span{margin-bottom:32px}
  .request-guest-main{grid-template-columns:1fr;max-width:680px;gap:24px}.request-intro{max-width:520px}.request-intro .request-lede{margin-top:16px}
  .request-note-details{grid-column:auto}
  .dj-qr-card{grid-template-columns:82px minmax(0,1fr)}.dj-qr-frame{width:82px}.dj-sidebar{gap:10px}
  .dj-requester{display:block!important;grid-column:2}.dj-requester span{display:none}.dj-requester b{margin-top:0;font-size:.61rem;color:#7f8790}.dj-requester b::before{content:"Requested by ";font-weight:500;color:#59616b}.dj-requester small{display:inline;margin-left:6px}
  .dj-actions{margin-left:59px}
  .dj-toolbar{align-items:flex-start;flex-direction:column}.dj-toolbar-note{display:none}
  .event-card{grid-template-columns:1fr;gap:10px}.event-actions{grid-template-columns:1fr 1fr}.event-status{margin-top:4px}
  .login-shell{display:flex;flex-direction:column;justify-content:center;gap:30px;padding-block:34px}.login-logo{align-self:center;width:min(260px,70vw)}
}

@media(max-width:460px){
  .request-form{gap:12px}.request-panel{border-radius:8px}.request-panel-head h2{font-size:1.75rem}
  .dj-filter{padding-inline:9px}.dj-filter b{min-width:17px;height:17px;padding-inline:4px}
  .dj-requester{grid-column:2}.dj-actions{margin-left:55px}
}

/* ============================================================
   Third polish pass — micro UX, feedback, keyboard and mobile
   ============================================================ */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:2px solid var(--tt-cyan);outline-offset:3px}
:where(button,input,select,textarea):disabled{cursor:not-allowed!important;opacity:.52!important}
.menu-open{overflow:hidden}
.request-panel.is-disabled{opacity:.72}
.request-live.is-closed{color:#8a919b}
.request-live.is-closed i{background:#747b85!important;box-shadow:none!important}
.request-state.closed{border-color:#ffffff26;background:#ffffff08;color:#cbd0d7}
.request-change-event{display:block;margin:0 26px 24px;width:max-content;max-width:calc(100% - 52px);color:#7e8792;text-transform:uppercase;letter-spacing:.1em;font-size:.52rem;border-bottom:1px solid rgba(255,255,255,.16);padding-bottom:4px}
.request-change-event:hover{color:#fff;border-color:var(--tt-cyan)}
.request-popular-empty{display:grid;gap:4px}.request-popular-empty b{color:#aab0b8;font-size:.68rem}.request-popular-empty span{color:#666e78;font-size:.68rem}
.popular-request:disabled{border-color:rgba(85,245,122,.18);background:rgba(85,245,122,.03)}
.request-submit[aria-busy="true"],.create-event button[aria-busy="true"],.login-form button[aria-busy="true"]{background:#181b22!important;color:#aab0b8!important}

.dj-dialog{width:min(460px,calc(100% - 32px));padding:0;border:1px solid rgba(255,255,255,.2);border-radius:10px;background:#0a0c11;color:#fff;box-shadow:0 35px 100px rgba(0,0,0,.72)}
.dj-dialog::backdrop{background:rgba(2,3,5,.82);backdrop-filter:blur(6px)}
.dj-dialog form{padding:28px}.dj-dialog span{color:#ff7f8d;text-transform:uppercase;letter-spacing:.14em;font-size:.54rem;font-weight:850}.dj-dialog h2{margin:9px 0 10px;text-transform:uppercase;font-size:clamp(1.9rem,5vw,2.8rem);line-height:.92;letter-spacing:-.045em}.dj-dialog p{margin:0;color:#8c939d;font-size:.75rem;line-height:1.6}.dj-dialog form>div{display:flex;justify-content:flex-end;gap:8px;margin-top:24px}.dj-dialog button{min-height:42px;padding:0 14px;border:1px solid rgba(255,255,255,.18);border-radius:6px;background:#0d1016;color:#aab0b8;text-transform:uppercase;letter-spacing:.09em;font-size:.52rem;font-weight:850;cursor:pointer}.dj-dialog .dialog-danger{border-color:rgba(255,98,116,.38);background:rgba(255,98,116,.08);color:#ff9ba6}.dj-dialog .dialog-danger:hover{border-color:#ff6274;color:#fff}
.dj-request-list[aria-busy="true"],.event-list[aria-busy="true"]{cursor:progress}
.dj-actions button{border-radius:5px}.dj-actions button:disabled{transform:none!important}
.dj-actions .queue{min-width:72px}.dj-actions .queue:last-child{white-space:nowrap}
.event-actions button:disabled{border-color:rgba(255,255,255,.12);color:#656c75}
.login-message.success{border-color:rgba(85,245,122,.35);background:rgba(85,245,122,.06);color:#9bf9ae}

@media(hover:hover){
  .poster-stage .poster:hover{transform:translateY(-4px)!important}
  .dj-request:hover{transform:translateX(2px)}
}
@media(hover:none){
  .poster-stage .poster:hover{transform:none!important}
  .dj-request:hover{transform:none}
}
@media(max-width:760px){
  .request-change-event{margin-inline:20px;max-width:calc(100% - 40px)}
  .dj-dialog form{padding:24px 20px}.dj-dialog form>div{display:grid;grid-template-columns:1fr 1fr}.dj-dialog button{width:100%}
  .dj-actions .queue:last-child{grid-column:1/-1}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}

/* ==========================================================
   CONTENT + ENQUIRY JOURNEY PASS
   ========================================================== */
.contact-layout-v2{align-items:start}
.contact-reassurance{max-width:390px;margin:24px auto 0;padding:18px 0;border-top:1px solid rgba(255,255,255,.18)}
.contact-reassurance b{display:block;margin-bottom:7px;color:#fff;text-transform:uppercase;letter-spacing:.12em;font-size:.62rem}
.contact-reassurance p{margin:0;color:#9fa5ae;font-size:.78rem;line-height:1.55}
.journey-progress-4{grid-template-columns:repeat(4,1fr)}
.event-choice-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.event-choice-grid button{min-height:118px;padding:20px;display:flex;flex-direction:column;justify-content:flex-end;align-items:flex-start;gap:8px;border:1px solid rgba(255,255,255,.14);border-radius:7px;background:linear-gradient(145deg,rgba(255,255,255,.035),rgba(255,255,255,.012));color:#fff;text-align:left;cursor:pointer;position:relative;overflow:hidden}
.event-choice-grid button::before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:var(--choice,#7b2cff);opacity:.45}
.event-choice-grid button b{font-size:1rem;line-height:1.05;text-transform:uppercase;letter-spacing:-.01em}
.event-choice-grid button small{max-width:220px;color:#858c96;font-size:.64rem;line-height:1.45}
.event-choice-grid button:hover,.event-choice-grid button.is-selected{border-color:color-mix(in srgb,var(--choice,#7b2cff) 66%,#fff 12%);background:color-mix(in srgb,var(--choice,#7b2cff) 9%,#0a0c11)}
.event-choice-grid button.is-selected::after{content:"Selected";position:absolute;top:12px;right:12px;color:var(--choice,#00e5ff);font-size:.5rem;text-transform:uppercase;letter-spacing:.12em;font-weight:850}
.field-error,.form-submit-error{margin:14px 0 0;padding:11px 13px;border:1px solid rgba(255,98,116,.3);border-radius:6px;background:rgba(255,98,116,.06);color:#ff9ba6;font-size:.7rem;line-height:1.45}
.event-panel{margin-top:8px}.event-panel[hidden]{display:none!important}.panel-lede{max-width:660px;margin:0 0 20px;color:#9fa5ae;line-height:1.65}
.choice-question>span,.event-panel>label>span,.theme-inline>p{display:block;margin-bottom:12px;color:#b6bcc5;text-transform:uppercase;letter-spacing:.11em;font-size:.61rem;font-weight:800}
.option-chips{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.option-chips label{padding:0!important}.option-chips input{position:absolute;opacity:0;pointer-events:none}.option-chips b{min-height:50px;padding:0 14px;display:flex;align-items:center;border:1px solid rgba(255,255,255,.14);border-radius:6px;background:#090b10;color:#aeb4bd;font-size:.68rem;text-transform:uppercase;letter-spacing:.07em;cursor:pointer}
.option-chips input:checked+b{border-color:rgba(0,229,255,.48);background:rgba(0,229,255,.06);color:#fff}
.compact-details{margin-top:22px;gap:16px}.compact-details label{min-width:0}.compact-details textarea{resize:vertical}
.theme-choice-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.theme-choice-grid button{min-height:145px;padding:10px;position:relative;overflow:hidden;display:flex;align-items:flex-end;border:1px solid rgba(255,255,255,.14);border-radius:6px;background:#0a0c11;color:#fff;text-align:left;cursor:pointer}
.theme-choice-grid button img{position:absolute;z-index:0;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.8) brightness(.58)}
.theme-choice-grid button::after{content:"";position:absolute;z-index:1;inset:38% 0 0;background:linear-gradient(transparent,#050609ed)}
.theme-choice-grid button b,.theme-choice-grid button small{position:relative;z-index:2}.theme-choice-grid button b{font-size:.72rem;text-transform:uppercase;letter-spacing:.04em}.theme-choice-grid button.is-selected{border-color:#00e5ff;box-shadow:inset 0 0 0 1px #00e5ff}.theme-choice-grid button.is-selected b{color:#baf9ff}
.theme-choice-grid .theme-text-choice{min-height:145px;align-content:end;display:grid;background:linear-gradient(145deg,#121622,#080a0f)}.theme-choice-grid .theme-text-choice::after{display:none}.theme-choice-grid .theme-text-choice small{display:block;margin-top:6px;color:#757d88;font-size:.56rem;line-height:1.35}
.music-mode-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.music-mode-grid button{min-height:120px;padding:20px;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;border:1px solid rgba(255,255,255,.14);border-radius:7px;background:#090b10;color:#fff;text-align:left;cursor:pointer}
.music-mode-grid button:last-child{grid-column:1/-1;min-height:96px}
.music-mode-grid button b{font-size:1rem;text-transform:uppercase}.music-mode-grid button small{margin-top:7px;max-width:480px;color:#7f8791;font-size:.65rem;line-height:1.5}
.music-mode-grid button:hover,.music-mode-grid button.is-selected{border-color:rgba(0,229,255,.42);background:rgba(0,229,255,.045)}.music-mode-grid button.is-selected b{color:#baf9ff}
.music-extra{margin-top:24px;padding-top:24px;border-top:1px solid rgba(255,255,255,.12)}
.request-system-note{margin-top:18px;padding:18px 20px;display:grid;grid-template-columns:120px minmax(0,1fr) auto;gap:18px;align-items:center;border:1px solid rgba(0,229,255,.16);border-radius:7px;background:rgba(0,229,255,.025)}
.request-system-note span{color:#00e5ff;font-size:.58rem;font-weight:850;letter-spacing:.13em}.request-system-note p{margin:0;color:#8e959f;font-size:.7rem;line-height:1.5}.request-system-note a{color:#d7fbff;font-size:.62rem;text-transform:uppercase;letter-spacing:.08em;border-bottom:1px solid rgba(0,229,255,.28)}
.theme-inline{margin-top:24px;padding-top:24px;border-top:1px solid rgba(255,255,255,.12)}.theme-inline[hidden]{display:none!important}.compact-theme-grid{grid-template-columns:repeat(5,minmax(0,1fr))}
.form-privacy{margin-top:22px;padding:14px 16px;display:flex;gap:10px;align-items:baseline;border-left:2px solid rgba(0,229,255,.4);background:rgba(255,255,255,.025);font-size:.65rem;line-height:1.45}.form-privacy b{color:#fff}.form-privacy span{color:#7f8791}
.enquiry-sent{max-width:760px}.enquiry-sent .eyebrow{color:#00e5ff}.enquiry-sent h2{max-width:700px}.sent-actions{margin-top:28px;display:flex;align-items:center;gap:20px;flex-wrap:wrap}

/* Content depth */
.content-band{padding:clamp(70px,9vw,120px) clamp(24px,6vw,90px);background:#080a0f;border-top:1px solid rgba(255,255,255,.08);border-bottom:1px solid rgba(255,255,255,.08)}
.content-band-inner{width:min(1180px,100%);margin:auto}.content-band-head{display:grid;grid-template-columns:minmax(0,.8fr) minmax(300px,1.2fr);gap:clamp(40px,8vw,100px);align-items:end;margin-bottom:42px}.content-band-head h2{margin:0;font-size:clamp(3rem,6.4vw,6.3rem);line-height:.88;letter-spacing:-.06em;text-transform:uppercase}.content-band-head h2 span{color:transparent;-webkit-text-stroke:1px #fff}.content-band-head>p{margin:0;color:#9ca3ad;font-size:1rem;line-height:1.7}
.inclusion-grid,.booking-flow-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid rgba(255,255,255,.16)}
.inclusion-grid article,.booking-flow-grid article{min-height:230px;padding:24px 22px 22px 0;border-bottom:1px solid rgba(255,255,255,.16)}.inclusion-grid article+article,.booking-flow-grid article+article{padding-left:22px;border-left:1px solid rgba(255,255,255,.12)}
.inclusion-grid span,.booking-flow-grid span{color:#00e5ff;font-size:.57rem;letter-spacing:.15em;font-weight:850}.inclusion-grid h3,.booking-flow-grid h3{margin:28px 0 10px;font-size:1.15rem;text-transform:uppercase}.inclusion-grid p,.booking-flow-grid p{margin:0;color:#858d97;font-size:.76rem;line-height:1.58}
.faq-home{padding:clamp(70px,9vw,115px) clamp(24px,6vw,90px);background:#f1f0eb;color:#0b0d12}.faq-home-inner{width:min(1060px,100%);margin:auto;display:grid;grid-template-columns:minmax(220px,.6fr) minmax(0,1.4fr);gap:clamp(40px,7vw,90px)}.faq-home h2{margin:8px 0 0;font-size:clamp(3rem,5.5vw,5.4rem);line-height:.87;letter-spacing:-.055em;text-transform:uppercase}.faq-home h2 span{color:#7b2cff}.faq-home .eyebrow{color:#616773}.faq-home details{border-top:1px solid #0b0d1220}.faq-home details:last-child{border-bottom:1px solid #0b0d1220}.faq-home summary{padding:20px 34px 20px 0;cursor:pointer;font-weight:850;text-transform:uppercase;font-size:.76rem;letter-spacing:.04em;position:relative}.faq-home summary::after{content:"+";position:absolute;right:0;font-size:1.2rem;color:#7b2cff}.faq-home details[open] summary::after{content:"−"}.faq-home details p{margin:0 0 22px;max-width:720px;color:#545b65;font-size:.82rem;line-height:1.65}
.theme-entry .theme-book-link{display:inline-block;margin:18px 34px 0;color:#dffcff;text-transform:uppercase;letter-spacing:.1em;font-size:.58rem;border-bottom:1px solid rgba(0,229,255,.32);padding-bottom:4px}.theme-entry .theme-book-link:hover{color:#00e5ff}.mini-theme .theme-book-link{display:inline-block;margin-top:18px;color:#dffcff;font-size:.58rem;text-transform:uppercase;letter-spacing:.1em;border-bottom:1px solid rgba(255,255,255,.22)}

/* DJ enquiry inbox */
.enquiries-shell{position:relative;z-index:1;min-height:100svh}.enquiries-main{width:min(1180px,100%);margin:auto;padding:54px clamp(18px,4vw,52px) 90px}.enquiries-hero{display:flex;align-items:end;justify-content:space-between;gap:30px;padding-bottom:28px;border-bottom:1px solid rgba(255,255,255,.12)}.enquiries-hero h1{margin:8px 0 0;font-size:clamp(3.2rem,7vw,6.8rem);line-height:.8;letter-spacing:-.065em;text-transform:uppercase}.enquiries-hero h1 span{color:transparent;-webkit-text-stroke:1px #fff}.enquiry-filters{display:flex;gap:6px;flex-wrap:wrap}.enquiry-filters button{min-height:38px;padding:0 12px;border:1px solid rgba(255,255,255,.14);border-radius:5px;background:#0b0d12;color:#88909a;text-transform:uppercase;letter-spacing:.08em;font-size:.54rem;font-weight:850;cursor:pointer}.enquiry-filters button.is-active{border-color:rgba(0,229,255,.35);color:#dffcff;background:rgba(0,229,255,.04)}
.enquiry-list{margin-top:22px;display:grid;gap:10px}.enquiry-card{padding:22px;display:grid;grid-template-columns:minmax(180px,.55fr) minmax(0,1.2fr) minmax(210px,.55fr);gap:22px;border:1px solid rgba(255,255,255,.12);border-radius:7px;background:#080a0f}.enquiry-card.is-new{border-left:3px solid #00e5ff}.enquiry-card small{color:#6f7781;font-size:.57rem;text-transform:uppercase;letter-spacing:.1em}.enquiry-card h2{margin:5px 0 7px;font-size:1.25rem;text-transform:uppercase}.enquiry-card p{margin:0;color:#8d949e;font-size:.7rem;line-height:1.55}.enquiry-meta{display:grid;align-content:start;gap:8px}.enquiry-meta b{color:#d8dde4;font-size:.68rem}.enquiry-details{display:grid;gap:10px}.enquiry-detail-row{display:grid;grid-template-columns:120px minmax(0,1fr);gap:14px;padding-bottom:8px;border-bottom:1px solid rgba(255,255,255,.07)}.enquiry-detail-row span{color:#626a74;text-transform:uppercase;letter-spacing:.08em;font-size:.52rem}.enquiry-detail-row b{color:#b9c0c9;font-size:.66rem;font-weight:650}.enquiry-actions{display:grid;align-content:start;gap:6px}.enquiry-actions a,.enquiry-actions button{min-height:38px;padding:0 10px;display:flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.13);border-radius:5px;background:#0c0f14;color:#9ca4ae;text-transform:uppercase;letter-spacing:.07em;font-size:.5rem;font-weight:850;cursor:pointer}.enquiry-actions a{border-color:rgba(0,229,255,.26);color:#cffaff}.enquiry-actions .booked{border-color:rgba(85,245,122,.25);color:#9affb1}.enquiry-empty{padding:54px 20px;text-align:center;border:1px dashed rgba(255,255,255,.14);color:#7c848e}.enquiry-empty b{display:block;margin-bottom:6px;color:#c2c7ce;text-transform:uppercase}.events-top nav{display:flex;align-items:center;gap:14px}.events-top nav a.active{color:#00e5ff}

@media(max-width:1050px){
  .event-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.theme-choice-grid,.compact-theme-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .inclusion-grid,.booking-flow-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.inclusion-grid article:nth-child(3),.booking-flow-grid article:nth-child(3){padding-left:0;border-left:0}.content-band-head{grid-template-columns:1fr}.faq-home-inner{grid-template-columns:1fr}.enquiry-card{grid-template-columns:1fr 1.4fr}.enquiry-actions{grid-column:1/-1;grid-template-columns:repeat(4,1fr)}
}
@media(max-width:720px){
  .journey-progress-4 button b{font-size:.52rem}.event-choice-grid{grid-template-columns:1fr}.event-choice-grid button{min-height:96px}.option-chips{grid-template-columns:1fr}.music-mode-grid{grid-template-columns:1fr}.music-mode-grid button:last-child{grid-column:auto}.theme-choice-grid,.compact-theme-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.request-system-note{grid-template-columns:1fr;gap:8px}.form-privacy{align-items:flex-start;flex-direction:column;gap:4px}.contact-reassurance{margin-left:0}.inclusion-grid,.booking-flow-grid{grid-template-columns:1fr}.inclusion-grid article,.booking-flow-grid article,.inclusion-grid article+article,.booking-flow-grid article+article{min-height:0;padding:22px 0;border-left:0}.content-band-head{margin-bottom:26px}.faq-home{padding-inline:20px}.enquiry-card{grid-template-columns:1fr}.enquiry-actions{grid-column:auto;grid-template-columns:1fr 1fr}.enquiries-hero{align-items:flex-start;flex-direction:column}.enquiry-detail-row{grid-template-columns:90px minmax(0,1fr)}
}

/* ========================================================================== 
   V5 — themed-night poster + content system
   ========================================================================== */

/* Homepage poster rail: let the finished artwork speak for itself. */
.poster-stage .poster,.poster-stage .poster:nth-of-type(even){
  flex-basis:clamp(245px,21vw,355px);height:auto;aspect-ratio:4/5;margin-right:14px;
  border:1px solid rgba(255,255,255,.14);background:#08090c;box-shadow:0 18px 46px #0009;
  transform:none!important;filter:none!important;opacity:.78!important
}
.poster-stage .poster.is-active,.poster-stage .poster:hover,.poster-stage .poster:focus-visible{
  opacity:1!important;transform:translateY(-5px)!important;border-color:var(--accent);box-shadow:0 24px 54px #000b,0 0 28px color-mix(in srgb,var(--accent) 16%,transparent)
}
.poster-stage .poster img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#06070a;filter:saturate(.96) contrast(1.02)!important;transform:none!important}
.poster-stage .poster::after{display:none}
.poster-stage .poster .poster-shade,.poster-stage .poster .poster-no,.poster-stage .poster .poster-type,.poster-stage .poster strong,.poster-stage .poster small{display:none!important}
.poster-stage .poster-open{left:12px;right:12px;bottom:12px;padding:10px 12px;border:1px solid rgba(255,255,255,.2);background:rgba(5,6,9,.88);backdrop-filter:blur(8px);opacity:0;transform:translateY(6px);font-size:.52rem}
.poster-stage .poster:hover .poster-open,.poster-stage .poster:focus-visible .poster-open,.poster-stage .poster.is-active .poster-open{opacity:1;transform:none}

/* The complete collection uses uncropped 4:5 artwork and real HTML for detail. */
.theme-collection-intro{max-width:820px;margin:-18px 0 42px;color:#aeb4bd;font-size:1rem;line-height:1.75}
.themed-page .theme-list{gap:24px!important}
.themed-page .theme-entry,.themed-page .theme-entry:nth-child(even){
  grid-template-columns:minmax(300px,40%) minmax(0,1fr);align-items:start!important;overflow:visible;
  border-top:2px solid var(--chapter);background:linear-gradient(135deg,color-mix(in srgb,var(--chapter) 5%,#0a0c11),#0a0c11 42%)
}
.themed-page .theme-entry img{
  grid-column:1;grid-row:1/10;width:100%;height:auto;min-height:0;aspect-ratio:4/5;object-fit:contain;object-position:center;
  position:sticky;top:104px;background:#050609;border-right:1px solid rgba(255,255,255,.08);filter:none!important
}
.themed-page .theme-entry .theme-no{margin-top:30px}
.themed-page .theme-entry h2{font-size:clamp(2.4rem,4.1vw,4.5rem);line-height:.88}
.themed-page .theme-entry h3{color:var(--chapter);font-size:.72rem;line-height:1.45}
.themed-page .theme-entry .theme-summary{max-width:760px;color:#c0c5cd;font-size:.98rem;line-height:1.72}
.theme-spec-grid{grid-column:2;margin:22px 34px 0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid rgba(255,255,255,.11);background:#07090d}
.theme-spec-grid>div{min-height:142px;padding:18px;border-right:1px solid rgba(255,255,255,.09)}
.theme-spec-grid>div:last-child{border-right:0}
.theme-spec-grid span{display:block;margin-bottom:10px;color:var(--chapter);text-transform:uppercase;letter-spacing:.13em;font-size:.55rem;font-weight:900}
.theme-spec-grid p{margin:0;color:#aeb5bf;font-size:.76rem;line-height:1.58}
.themed-page .theme-entry .theme-listening{margin-top:20px}
.themed-page .theme-entry .theme-tags{margin-bottom:12px}
.theme-entry .theme-book-link{grid-column:2;width:max-content;margin:0 34px 32px;padding:10px 0 7px;font-size:.61rem}
.theme-lighting-note{margin:34px 0 0;padding:24px 28px;display:grid;grid-template-columns:170px minmax(0,1fr);gap:26px;border:1px solid rgba(255,255,255,.12);border-left:3px solid #00e5ff;background:#090b0f}
.theme-lighting-note span{text-transform:uppercase;letter-spacing:.15em;color:#00e5ff;font-size:.62rem;font-weight:900}
.theme-lighting-note p{margin:0;color:#aeb4bd;font-size:.86rem;line-height:1.65}

/* Takeover dialog gains practical context rather than just genre tags. */
.takeover-spec-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;max-width:760px;margin:18px 0 0}
.takeover-spec-grid>div{padding:14px 16px;border:1px solid rgba(255,255,255,.18);background:rgba(4,5,8,.54)}
.takeover-spec-grid span{display:block;margin-bottom:7px;color:var(--accent);text-transform:uppercase;letter-spacing:.13em;font-size:.55rem;font-weight:900}
.takeover-spec-grid p{margin:0!important;color:#d6d9df!important;font-size:.74rem!important;line-height:1.55!important}

/* The contact journey now gives every named night equal visual weight. */
.contact-page .theme-choice-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:9px}
.contact-page .theme-choice-grid button{aspect-ratio:4/5;padding:10px;justify-content:flex-end}
.contact-page .theme-choice-grid img{object-fit:cover;filter:saturate(.9) brightness(.78)}
.contact-page .theme-choice-grid button b{padding:6px 8px;background:rgba(5,6,9,.82);backdrop-filter:blur(6px);font-size:.64rem}

@media(max-width:980px){
  .theme-spec-grid{grid-template-columns:1fr}.theme-spec-grid>div{min-height:0;border-right:0;border-bottom:1px solid rgba(255,255,255,.09)}.theme-spec-grid>div:last-child{border-bottom:0}
  .contact-page .theme-choice-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:720px){
  .poster-stage .poster,.poster-stage .poster:nth-of-type(even),.poster{flex:0 0 min(78vw,310px)!important;aspect-ratio:4/5!important;height:auto!important;opacity:.92!important}
  .poster-stage .poster-open{opacity:1;transform:none}
  .themed-page .theme-entry,.themed-page .theme-entry:nth-child(even){grid-template-columns:1fr}
  .themed-page .theme-entry img{grid-column:1;grid-row:1;position:relative;top:auto;width:100%;height:auto;aspect-ratio:4/5;object-fit:contain;border-right:0;border-bottom:1px solid rgba(255,255,255,.08)}
  .themed-page .theme-entry .theme-no{grid-column:1;margin:22px 22px 0}
  .themed-page .theme-entry h2,.themed-page .theme-entry h3,.themed-page .theme-entry .theme-summary,.themed-page .theme-entry .theme-listening,.themed-page .theme-entry .theme-tags{grid-column:1}
  .theme-spec-grid{grid-column:1;margin:18px 22px 0}
  .theme-entry .theme-book-link{grid-column:1;margin:0 22px 26px}
  .theme-lighting-note{grid-template-columns:1fr;gap:10px;padding:20px}
  .takeover-spec-grid{grid-template-columns:1fr}
  .contact-page .theme-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* V5 service-level lighting guide */
.lighting-direction-section{background:#07090d}
.lighting-direction-intro{max-width:760px;margin:-16px 0 36px;color:#9da4ae;font-size:.98rem;line-height:1.72}
.lighting-direction-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid rgba(255,255,255,.14);border-bottom:1px solid rgba(255,255,255,.14)}
.lighting-direction-grid article{min-height:275px;padding:25px 22px 26px 0;position:relative}
.lighting-direction-grid article+article{padding-left:22px;border-left:1px solid rgba(255,255,255,.1)}
.lighting-direction-grid article::before{content:"";position:absolute;left:0;top:-2px;width:52px;height:3px;background:var(--light)}
.lighting-direction-grid span{color:var(--light);text-transform:uppercase;letter-spacing:.14em;font-size:.56rem;font-weight:900}
.lighting-direction-grid h3{margin:64px 0 14px;font-size:1.25rem;line-height:1.05;text-transform:uppercase}
.lighting-direction-grid p{margin:0;color:#858d97;font-size:.76rem;line-height:1.62}
.lighting-direction-note{margin-top:26px;padding:20px 0;display:grid;grid-template-columns:160px minmax(0,1fr) auto;gap:24px;align-items:start;border-bottom:1px solid rgba(255,255,255,.1)}
.lighting-direction-note b{color:#fff;text-transform:uppercase;letter-spacing:.11em;font-size:.6rem}.lighting-direction-note p{margin:0;color:#8f96a0;font-size:.77rem;line-height:1.6}.lighting-direction-note .line-link{white-space:nowrap;font-size:.59rem}
@media(max-width:1000px){.lighting-direction-grid{grid-template-columns:1fr 1fr}.lighting-direction-grid article:nth-child(3){padding-left:0;border-left:0;border-top:1px solid rgba(255,255,255,.1)}.lighting-direction-grid article:nth-child(4){border-top:1px solid rgba(255,255,255,.1)}.lighting-direction-note{grid-template-columns:1fr}.lighting-direction-note .line-link{width:max-content}}
@media(max-width:650px){.lighting-direction-grid{grid-template-columns:1fr}.lighting-direction-grid article,.lighting-direction-grid article+article{min-height:0;padding:24px 0;border-left:0;border-top:1px solid rgba(255,255,255,.1)}.lighting-direction-grid article:first-child{border-top:0}.lighting-direction-grid h3{margin:38px 0 12px}.lighting-direction-note{gap:8px}}

/* v6 — packages, trust, availability and enquiry workflow */
.package-section{background:#07090d}.package-intro{max-width:820px;margin:-4px 0 34px;color:#8f97a2;line-height:1.75}.package-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.package-grid article{position:relative;min-height:430px;padding:30px;border:1px solid rgba(255,255,255,.12);border-radius:8px;background:linear-gradient(145deg,#0b0e13,#07090d);display:flex;flex-direction:column}.package-grid article.featured{border-color:rgba(0,229,255,.32);box-shadow:inset 0 1px rgba(255,255,255,.04)}.package-grid article>span{color:#00e5ff;font-size:.58rem;letter-spacing:.16em;font-weight:900}.package-grid h3{max-width:520px;margin:16px 0 14px;font-size:clamp(1.6rem,3vw,2.7rem);line-height:.95;text-transform:uppercase;letter-spacing:-.035em}.package-grid p{margin:0 0 18px;color:#8f97a2;line-height:1.65}.package-grid ul{margin:0 0 28px;padding:0;list-style:none;display:grid;gap:9px}.package-grid li{position:relative;padding-left:18px;color:#b8bec6;font-size:.74rem}.package-grid li::before{content:"+";position:absolute;left:0;color:#00e5ff;font-weight:900}.package-grid a{margin-top:auto;color:#fff;text-transform:uppercase;letter-spacing:.08em;font-size:.63rem;font-weight:900}.package-grid a:hover{color:#00e5ff}.package-pricing-note{margin-top:18px;padding:24px 28px;display:grid;grid-template-columns:180px 1fr;gap:22px;border:1px solid rgba(255,255,255,.12);border-radius:8px;background:#0a0d12}.package-pricing-note b{text-transform:uppercase;letter-spacing:.1em;color:#fff}.package-pricing-note p{margin:0;color:#9098a3;line-height:1.65}
.trust-confirm-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:34px 0 46px;border-top:1px solid #111;border-bottom:1px solid #111}.trust-confirm-grid article{padding:26px 22px 28px 0}.trust-confirm-grid article+article{padding-left:22px;border-left:1px solid #ddd}.trust-confirm-grid b{display:block;color:#6f2cff;font-size:.66rem;letter-spacing:.16em}.trust-confirm-grid h3{margin:12px 0 9px;color:#090a0c;text-transform:uppercase;font-size:1.05rem}.trust-confirm-grid p{margin:0;color:#626872;line-height:1.6;font-size:.74rem}.availability-public-card{display:grid;grid-template-columns:1fr minmax(320px,.75fr);gap:36px;align-items:center;padding:30px;border-radius:9px;background:#090b10;color:#fff}.availability-public-card .eyebrow{color:#00e5ff}.availability-public-card h3{margin:9px 0 10px;font-size:clamp(2rem,4vw,3.5rem);text-transform:uppercase;line-height:.9}.availability-public-card>div>p:not(.eyebrow){max-width:580px;color:#8e96a1;line-height:1.65}.availability-public-control{display:grid;grid-template-columns:1fr auto;gap:8px}.availability-public-control input{min-height:48px;padding:0 13px;border:1px solid rgba(255,255,255,.16);border-radius:5px;background:#050609;color:#fff}.availability-public-control button{min-height:48px;padding:0 18px;border:1px solid rgba(0,229,255,.32);border-radius:5px;background:#0b1217;color:#d8fbff;text-transform:uppercase;letter-spacing:.08em;font-size:.58rem;font-weight:900;cursor:pointer}.availability-public-control button:disabled{opacity:.55}.availability-public-control p{grid-column:1/-1;margin:4px 0 0;display:grid;gap:3px;color:#7d858f;font-size:.66rem;line-height:1.5}.availability-public-control p b{color:#fff;text-transform:uppercase;font-size:.6rem;letter-spacing:.08em}.availability-public-control p[data-state="open"] b{color:#8bffad}.availability-public-control p[data-state="provisional"] b{color:#ffd76b}.availability-public-control p[data-state="booked"],.availability-public-control p[data-state="unavailable"]{color:#a88e95}.availability-public-control .line-link{grid-column:1/-1;margin-top:4px;color:#00e5ff}
.home-booking-confidence{padding:86px clamp(20px,5vw,72px);background:#f4f2ee;color:#08090b}.home-booking-confidence-inner{width:min(1180px,100%);margin:auto;display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,.65fr);gap:72px;align-items:end}.home-booking-confidence .kicker{color:#7b2cff}.home-booking-confidence h2{margin:10px 0 20px;font-size:clamp(3rem,6vw,6.3rem);line-height:.82;letter-spacing:-.06em;text-transform:uppercase}.home-booking-confidence h2 span{color:#7b2cff}.home-booking-confidence p{max-width:700px;color:#5f646c;line-height:1.75}.confidence-links{margin-top:28px;display:flex;gap:20px;align-items:center;flex-wrap:wrap}.home-booking-confidence .line-link{color:#16181c;border-color:#666}.confidence-list{display:grid;border-top:1px solid #bfc0c2}.confidence-list span{padding:18px 0;border-bottom:1px solid #c9c9cb;text-transform:uppercase;font-size:.67rem;letter-spacing:.09em;font-weight:850}.confidence-list b{display:inline-block;width:42px;color:#7b2cff}
.availability-date-field{display:grid;gap:8px}.availability-inline{display:grid;gap:6px}.availability-inline button{justify-self:start;padding:8px 0;border:0;border-bottom:1px solid rgba(0,229,255,.4);background:transparent;color:#bff9ff;text-transform:uppercase;letter-spacing:.08em;font-size:.56rem;font-weight:900;cursor:pointer}.availability-inline p{margin:0!important;color:#6f7781!important;font-size:.62rem!important;line-height:1.5!important;text-transform:none!important;letter-spacing:0!important}.availability-inline p b{display:block;color:#fff;text-transform:uppercase;letter-spacing:.08em;font-size:.57rem}.availability-inline p span{display:block;margin-top:2px}.availability-inline p[data-state="open"] b{color:#8bffad}.availability-inline p[data-state="provisional"] b{color:#ffd76b}.availability-inline p[data-state="booked"] b,.availability-inline p[data-state="unavailable"] b{color:#ff9da9}
.enquiry-toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.enquiry-toolbar input{width:min(340px,72vw);height:42px;padding:0 12px;border:1px solid rgba(255,255,255,.14);border-radius:5px;background:#080a0e;color:#fff;outline:none}.enquiry-toolbar input:focus{border-color:#00e5ff}.export-enquiries{height:42px;padding:0 13px;display:flex;align-items:center;border:1px solid rgba(255,255,255,.14);border-radius:5px;color:#9ca4ae;text-transform:uppercase;letter-spacing:.08em;font-size:.52rem;font-weight:850}.enquiry-filters{margin:18px 0 0}.enquiry-card-v2{grid-template-columns:minmax(190px,.5fr) minmax(0,1.2fr) minmax(190px,.42fr)}.enquiry-card-v2.is-overdue{box-shadow:inset 3px 0 #ff9d4d}.enquiry-state-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.enquiry-state,.followup-overdue{display:inline-flex;width:max-content;padding:5px 7px;border-radius:4px;background:#11151b;color:#aab2bc;text-transform:uppercase;letter-spacing:.08em;font-size:.48rem;font-weight:900}.status-new{color:#9af8ff;background:rgba(0,229,255,.08)}.status-booked{color:#97ffaf;background:rgba(85,245,122,.08)}.status-quoted{color:#ddc6ff;background:rgba(123,44,255,.11)}.status-lost{color:#ffb3bd;background:rgba(255,90,110,.08)}.followup-overdue{color:#ffc384;background:rgba(255,157,77,.09)}.enquiry-date-callout{margin-top:8px;padding:10px;border-left:2px solid #7b2cff;background:#0c0e14}.enquiry-date-callout small{display:block;margin-bottom:3px}.enquiry-date-callout b{font-size:.72rem}.enquiry-workbench{grid-column:1/-1;padding-top:20px;border-top:1px solid rgba(255,255,255,.1)}.enquiry-workbench-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.enquiry-workbench-grid label{display:grid;gap:6px}.enquiry-workbench-grid label.wide{grid-column:1/-1}.enquiry-workbench-grid span{color:#6f7781;text-transform:uppercase;letter-spacing:.08em;font-size:.52rem}.enquiry-workbench-grid input,.enquiry-workbench-grid select,.enquiry-workbench-grid textarea{width:100%;padding:10px;border:1px solid rgba(255,255,255,.13);border-radius:5px;background:#05070a;color:#fff;outline:none}.enquiry-workbench-grid input:focus,.enquiry-workbench-grid select:focus,.enquiry-workbench-grid textarea:focus{border-color:#00e5ff}.enquiry-workbench-actions{margin-top:12px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}.enquiry-workbench-actions button{min-height:39px;padding:0 12px;border:1px solid rgba(255,255,255,.14);border-radius:5px;background:#0c0f14;color:#aab2bb;text-transform:uppercase;letter-spacing:.07em;font-size:.51rem;font-weight:900;cursor:pointer}.enquiry-workbench-actions .save-enquiry{border-color:rgba(0,229,255,.3);color:#c8fbff}.enquiry-workbench-actions .create-booking{border-color:rgba(85,245,122,.3);color:#9dffb3}.booking-hint{color:#646d77;font-size:.6rem}.enquiry-actions [data-manage]{border-color:rgba(123,44,255,.3);color:#d8c7ff}
.availability-shell{min-height:100svh}.availability-main{width:min(1320px,100%);margin:auto;padding:54px clamp(18px,4vw,52px) 90px}.availability-hero{display:flex;align-items:end;justify-content:space-between;gap:30px;padding-bottom:28px;border-bottom:1px solid rgba(255,255,255,.12)}.availability-hero h1{margin:8px 0 0;font-size:clamp(3.2rem,7vw,6.8rem);line-height:.8;letter-spacing:-.065em;text-transform:uppercase}.availability-hero h1 span{color:transparent;-webkit-text-stroke:1px #fff}.availability-hero>div:first-child>p:last-child{max-width:620px;color:#7f8791;line-height:1.6}.availability-legend{display:flex;gap:6px;flex-wrap:wrap}.availability-legend span{padding:6px 8px;border-radius:4px;background:#0e1116;text-transform:uppercase;letter-spacing:.08em;font-size:.48rem;font-weight:900}.availability-legend .provisional{color:#ffd76b}.availability-legend .booked{color:#8cffaa}.availability-legend .unavailable{color:#ff9da9}.availability-legend .enquiry{color:#a9bcff}.availability-workspace{margin-top:24px;display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:16px}.availability-calendar-panel,.availability-day-panel{border:1px solid rgba(255,255,255,.12);border-radius:7px;background:#080a0e}.availability-calendar-panel{padding:16px}.calendar-toolbar{display:grid;grid-template-columns:auto auto 1fr auto;align-items:center;gap:8px;margin-bottom:12px}.calendar-toolbar button{height:36px;padding:0 11px;border:1px solid rgba(255,255,255,.12);border-radius:4px;background:#0d1015;color:#9fa7b1;cursor:pointer}.calendar-toolbar h2{text-align:center;margin:0;text-transform:uppercase;font-size:.9rem;letter-spacing:.11em}.calendar-weekdays,.availability-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.calendar-weekdays span{padding:8px 6px;color:#5e6670;text-align:center;text-transform:uppercase;letter-spacing:.08em;font-size:.46rem}.calendar-day{position:relative;min-height:108px;padding:9px;border:1px solid rgba(255,255,255,.08);border-radius:5px;background:#0a0c10;color:#d6dbe2;text-align:left;cursor:pointer}.calendar-day:hover,.calendar-day.is-selected{border-color:rgba(0,229,255,.38);background:#0b1116}.calendar-day.is-outside{opacity:.38}.calendar-day.is-today .calendar-day-number{color:#00e5ff}.calendar-day-number{font-size:.72rem;font-weight:850}.calendar-day-flags{margin-top:8px;display:flex;gap:4px;flex-wrap:wrap}.calendar-day-flags i{width:8px;height:8px;border-radius:50%;background:#777}.calendar-day-flags i.provisional{background:#ffd76b}.calendar-day-flags i.booked{background:#62f487}.calendar-day-flags i.unavailable{background:#ff8292}.calendar-day-flags i.enquiry{background:#829dff}.calendar-day small{position:absolute;left:9px;bottom:8px;color:#77808b;font-size:.48rem}.availability-day-panel{padding:22px;align-self:start;position:sticky;top:18px}.availability-day-panel h2{margin:8px 0 8px;text-transform:uppercase;font-size:1.5rem;line-height:1}.availability-day-panel>p:not(.request-kicker){color:#78818c;font-size:.66rem;line-height:1.55}.selected-date-items{margin:18px 0;display:grid;gap:7px}.availability-item{padding:12px;display:grid;grid-template-columns:1fr auto;gap:8px;border-left:2px solid #777;background:#0d1015}.availability-item.provisional{border-color:#ffd76b}.availability-item.booked{border-color:#62f487}.availability-item.unavailable{border-color:#ff8292}.availability-item.enquiry{border-color:#829dff}.availability-item span{display:block;color:#707985;text-transform:uppercase;letter-spacing:.08em;font-size:.48rem}.availability-item b{display:block;margin-top:3px;color:#d6dbe2;font-size:.68rem}.availability-item p{margin:4px 0 0;color:#737c86;font-size:.58rem}.availability-item button,.availability-item a{align-self:start;border:0;background:transparent;color:#8e97a2;font-size:.52rem;text-transform:uppercase;letter-spacing:.06em;cursor:pointer}.availability-item a{color:#a9bcff}.availability-day-panel form{display:grid;gap:11px;padding-top:17px;border-top:1px solid rgba(255,255,255,.1)}.availability-day-panel form label{display:grid;gap:6px}.availability-day-panel form label span{color:#6f7781;text-transform:uppercase;letter-spacing:.08em;font-size:.5rem}.availability-day-panel form input,.availability-day-panel form select,.availability-day-panel form textarea{width:100%;padding:10px;border:1px solid rgba(255,255,255,.13);border-radius:5px;background:#05070a;color:#fff}.availability-day-panel .primary{width:100%;min-height:42px}
@media(max-width:980px){.trust-confirm-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.trust-confirm-grid article:nth-child(3){padding-left:0;border-left:0}.home-booking-confidence-inner{grid-template-columns:1fr;gap:36px}.availability-workspace{grid-template-columns:1fr}.availability-day-panel{position:static}.enquiry-workbench-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.package-grid{grid-template-columns:1fr}.package-grid article{min-height:0}.package-pricing-note{grid-template-columns:1fr;gap:8px}.trust-confirm-grid{grid-template-columns:1fr}.trust-confirm-grid article,.trust-confirm-grid article+article{padding:20px 0;border-left:0;border-bottom:1px solid #ddd}.availability-public-card{grid-template-columns:1fr;padding:22px}.availability-public-control{grid-template-columns:1fr}.availability-public-control button{width:100%}.home-booking-confidence{padding:70px 20px}.enquiry-card-v2{grid-template-columns:1fr}.enquiry-workbench-grid{grid-template-columns:1fr}.enquiry-workbench-grid label.wide{grid-column:auto}.availability-hero{align-items:flex-start;flex-direction:column}.availability-workspace{margin-top:14px}.availability-calendar-panel{padding:8px}.calendar-toolbar{grid-template-columns:auto auto 1fr auto}.calendar-toolbar h2{font-size:.72rem}.calendar-weekdays span{font-size:.4rem}.availability-calendar{gap:3px}.calendar-day{min-height:72px;padding:6px}.calendar-day small{display:none}.calendar-day-flags{gap:2px}.calendar-day-flags i{width:6px;height:6px}.availability-day-panel{padding:18px}.events-top nav{gap:8px;overflow:auto;padding-bottom:3px}.events-top nav a,.events-top nav button{white-space:nowrap}}
.enquiry-workbench-actions .create-hold{border-color:rgba(255,215,107,.3);color:#ffe6a2}

/* v6.3 — broader service-first homepage */
.home-hero-simple{grid-template-columns:minmax(0,1.05fr) minmax(300px,.95fr);min-height:min(760px,88svh);height:auto;padding-top:84px;background:#050609}
.home-hero-simple .manifesto{min-height:0;justify-content:center;padding-top:70px;padding-bottom:70px}
.home-hero-simple .manifesto h1{max-width:780px}
.home-hero-side{align-self:stretch;display:flex;flex-direction:column;justify-content:center;padding:70px clamp(28px,5vw,80px);border-left:1px solid #ffffff18;background:radial-gradient(circle at 55% 35%,#7b2cff26,transparent 34%),radial-gradient(circle at 70% 70%,#00e5ff18,transparent 30%)}
.home-hero-side span{display:block;padding:14px 0;border-bottom:1px solid #ffffff18;font-size:clamp(1.6rem,3vw,3.4rem);font-weight:900;letter-spacing:-.04em;color:#fff}
.home-hero-side span:last-child{color:#00e5ff}
.home-services{min-height:auto}
.home-service-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:0}
.home-service-grid article{margin-right:24px;padding-right:24px}
.home-service-grid article:last-child{margin-right:0;padding-right:0}
.home-service-grid .themed-service-card{background:linear-gradient(180deg,transparent,#7b2cff0d)}
.home-service-grid .planning-service-card{background:linear-gradient(180deg,transparent,rgba(0,229,255,.045))}
.service-link{margin-top:auto;padding-top:28px;font-size:.72rem;font-weight:900;text-transform:uppercase;letter-spacing:.11em;color:#15171b;text-decoration:none}
.service-link:hover{color:#7b2cff}
.home-nights-section{padding:clamp(80px,10vw,130px) 0 70px;background:#08090c;overflow:hidden}
.home-nights-heading{width:min(1180px,calc(100% - 48px));margin:0 auto 28px}
.home-nights-heading h2{margin:8px 0 12px;font-size:clamp(3rem,7vw,7rem);line-height:.85;letter-spacing:-.06em;text-transform:uppercase}
.home-nights-heading>p:not(.kicker){max-width:600px;margin:0 0 18px;color:#9da3ad;font-size:1rem;line-height:1.65}
.home-nights-section .poster-stage{min-height:610px}
@media(max-width:1050px){.home-hero-simple{grid-template-columns:1fr}.home-hero-side{display:none}.home-service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.home-service-grid article:nth-child(2){border-right:0}.home-service-grid article{border-bottom:1px solid #111}}
@media(max-width:720px){.home-hero-simple{display:block;min-height:auto;padding-top:72px}.home-hero-simple .manifesto{min-height:520px;padding-top:65px}.home-service-grid{grid-template-columns:1fr}.home-service-grid article{margin:0;padding:28px 0;border-right:0;border-bottom:1px solid #111}.home-nights-heading{width:calc(100% - 40px)}.home-nights-section{padding-top:74px}.home-nights-section .poster-stage{height:auto;min-height:560px}}

/* Simple public request message: keep the live request system, remove the demo-style sales UI. */
.request-feature-promo.simple-requests .request-feature-inner{grid-template-columns:minmax(0,760px);justify-content:start}
.request-feature-promo.simple-requests .request-feature-copy{max-width:720px}

/* v6.5 — solid heading treatment: remove fragile outlined type */
.manifesto h1 em,
.page-hero h1 em,
.local-home h2 span,
.request-intro h1 span,
.event-code-gate h1 span,
.dj-header h1 span,
.events-hero h1 span,
.availability-hero h1 span,
.request-feature-copy h2 span{
  color:#00e5ff !important;
  -webkit-text-stroke:0 !important;
  text-stroke:0 !important;
}
.production-title h2 span{
  color:#7b2cff !important;
  -webkit-text-stroke:0 !important;
  text-stroke:0 !important;
}
.quote-banner p span{
  color:#fff !important;
  -webkit-text-stroke:0 !important;
  text-stroke:0 !important;
}
.manifesto-foot>span{
  color:#7b2cff38 !important;
  -webkit-text-stroke:0 !important;
  text-stroke:0 !important;
}
.big-word{
  color:#ffffff0b !important;
  -webkit-text-stroke:0 !important;
  text-stroke:0 !important;
}
.themed-page .theme-entry .theme-no{
  color:color-mix(in srgb,var(--chapter) 26%,transparent) !important;
  -webkit-text-stroke:0 !important;
  text-stroke:0 !important;
}
.campaign-marquee span{
  -webkit-text-stroke:0 !important;
  text-stroke:0 !important;
}
.content-band-head h2 span,
.enquiries-hero h1 span{
  color:#00e5ff !important;
  -webkit-text-stroke:0 !important;
  text-stroke:0 !important;
}

/* v6.6 — clearer page roles, more real imagery, rebuilt venue page */
.home-hero-with-photo{grid-template-columns:minmax(0,.88fr) minmax(460px,1.12fr);min-height:min(820px,92svh)}
.home-hero-with-photo .manifesto{padding-right:clamp(24px,4vw,56px)}
.home-hero-photo{position:relative;min-width:0;height:100%;min-height:670px;margin:0;overflow:hidden;border-left:1px solid rgba(255,255,255,.12);background:#090a0d}
.home-hero-photo img{width:100%;height:100%;display:block;object-fit:cover;object-position:63% center;filter:saturate(.94) contrast(1.05)}
.home-hero-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#050609 0,transparent 22%),linear-gradient(0deg,#050609b0 0,transparent 35%);pointer-events:none}
.home-hero-photo figcaption{position:absolute;z-index:2;left:clamp(22px,4vw,52px);right:clamp(22px,4vw,52px);bottom:34px;padding-top:15px;display:flex;justify-content:space-between;gap:20px;border-top:1px solid rgba(255,255,255,.5);text-transform:uppercase;letter-spacing:.14em}
.home-hero-photo figcaption span{color:#00e5ff;font-size:.58rem;font-weight:900}.home-hero-photo figcaption b{font-size:.58rem;color:#fff}

/* Services page should add depth instead of repeating the homepage cards. */
.service-detail-hero{min-height:720px}
.service-story-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(420px,1.1fr);gap:clamp(44px,7vw,100px);align-items:center}
.service-story-copy .section-title{margin-bottom:26px}.service-story-copy .lead{font-size:1.1rem;line-height:1.75;color:#333840}
.service-story-photo{margin:0;overflow:hidden;min-height:520px;background:#111}.service-story-photo img{width:100%;height:100%;min-height:520px;display:block;object-fit:cover;object-position:center}
.service-detail-list{margin-top:34px;border-top:1px solid #bfc2c6}.service-detail-list>div{padding:18px 0;display:grid;grid-template-columns:110px 1fr;gap:20px;border-bottom:1px solid #c8cacc}.service-detail-list b{text-transform:uppercase;letter-spacing:.12em;font-size:.63rem;color:#6f2cff}.service-detail-list p{margin:0;color:#5f656d;line-height:1.55}
.service-kit-section{background:#07090d}.service-kit-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:40px;border-top:1px solid rgba(255,255,255,.15);border-bottom:1px solid rgba(255,255,255,.15)}.service-kit-grid article{min-height:300px;padding:28px 28px 32px 0}.service-kit-grid article+article{padding-left:28px;border-left:1px solid rgba(255,255,255,.12)}.service-kit-grid span{color:#00e5ff;font-size:.58rem;letter-spacing:.15em;font-weight:900}.service-kit-grid h3{margin:90px 0 14px;font-size:clamp(1.7rem,3vw,3rem);text-transform:uppercase;line-height:.9}.service-kit-grid p{max-width:420px;margin:0;color:#8f97a2;line-height:1.65}
.service-night-photo-band{min-height:620px;position:relative;display:grid;align-items:end;overflow:hidden;background:#050609}.service-night-photo-band>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:58% center}.service-night-photo-band::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#050609e8 0,#050609b0 43%,transparent 78%),linear-gradient(0deg,#050609a8,transparent 55%)}.service-night-photo-band>div{position:relative;z-index:2;width:min(1180px,calc(100% - 48px));margin:0 auto;padding:90px 0}.service-night-photo-band h2{max-width:750px;margin:12px 0 20px;font-size:clamp(3.4rem,7vw,7.8rem);line-height:.8;letter-spacing:-.065em;text-transform:uppercase}.service-night-photo-band p:not(.eyebrow){max-width:560px;color:#d0d4da;line-height:1.7}

/* Venue page: remove the campaign-wall collage and make it a clean service page. */
.venues-clean .venue-clean-hero{min-height:730px}
.venues-clean .venue-clean-hero::before{background:linear-gradient(90deg,#050609f4 0,#050609d9 39%,#05060962 70%,#05060915),linear-gradient(150deg,#7b2cff22,#00e5ff12),url("photos/pub-bar-venue-dj-hero.webp") 62% center/cover no-repeat!important}
.venues-clean .venue-clean-hero::after{opacity:.08}
.venue-option-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:42px;border-top:1px solid #c7c9cb;border-bottom:1px solid #c7c9cb}.venue-option-grid article{min-height:330px;padding:26px 28px 30px 0}.venue-option-grid article+article{padding-left:28px;border-left:1px solid #d3d4d5}.venue-option-grid span{font-size:.58rem;letter-spacing:.14em;color:#6f2cff;font-weight:900}.venue-option-grid h3{margin:92px 0 14px;font-size:clamp(1.6rem,2.8vw,2.8rem);line-height:.95;text-transform:uppercase;color:#0a0b0d}.venue-option-grid p{margin:0;color:#60666e;line-height:1.65}
.venue-photo-section{position:relative;min-height:650px;display:grid;align-items:end;overflow:hidden;background:#050609}.venue-photo-section>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}.venue-photo-section::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#050609e8 0,#050609b8 42%,transparent 78%),linear-gradient(0deg,#050609aa,transparent 55%)}.venue-photo-section>div{position:relative;z-index:2;width:min(1180px,calc(100% - 48px));margin:0 auto;padding:90px 0}.venue-photo-section h2{max-width:760px;margin:12px 0 20px;font-size:clamp(3.8rem,8vw,8rem);line-height:.78;letter-spacing:-.065em;text-transform:uppercase}.venue-photo-section p:not(.eyebrow){max-width:560px;color:#d4d8dd;line-height:1.72}
.venue-theme-section{background:#08090d}.venue-theme-heading{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,.55fr);gap:50px;align-items:end}.venue-theme-heading>div:last-child p{margin:0 0 18px;color:#949ba5;line-height:1.68}.venue-poster-grid{margin-top:50px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.venue-poster-grid a{display:block;min-width:0;color:#fff}.venue-poster-grid img{width:100%;aspect-ratio:4/5;display:block;object-fit:cover;border:1px solid rgba(255,255,255,.12);background:#111;transition:transform .25s,border-color .25s}.venue-poster-grid span{display:block;padding:11px 0;text-transform:uppercase;letter-spacing:.1em;font-size:.62rem;font-weight:900;color:#b9c0c9}.venue-poster-grid a:hover img{transform:translateY(-4px);border-color:#00e5ff}.venue-poster-grid a:hover span{color:#00e5ff}
.venue-simple-info .copy-grid{align-items:start}

@media(max-width:1050px){
  .home-hero-with-photo{grid-template-columns:1fr;min-height:auto}.home-hero-photo{min-height:500px;border-left:0;border-top:1px solid rgba(255,255,255,.12)}
  .service-story-grid{grid-template-columns:1fr}.service-story-photo{min-height:440px}.service-story-photo img{min-height:440px}
  .venue-option-grid{grid-template-columns:1fr}.venue-option-grid article,.venue-option-grid article+article{min-height:0;padding:24px 0;border-left:0;border-bottom:1px solid #d3d4d5}.venue-option-grid article:last-child{border-bottom:0}.venue-option-grid h3{margin:44px 0 12px}
  .venue-theme-heading{grid-template-columns:1fr}.venue-poster-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:760px){
  .home-hero-with-photo{padding-top:72px!important}.home-hero-with-photo .manifesto{min-height:auto!important;padding:58px 20px 45px!important}.home-hero-with-photo .manifesto h1{font-size:clamp(3.5rem,16vw,5.8rem)!important}.home-hero-photo{min-height:330px;height:44svh}.home-hero-photo img{object-position:63% center}.home-hero-photo figcaption{left:20px;right:20px;bottom:18px}.home-hero-photo figcaption b{display:none}
  .service-story-section{padding-top:60px}.service-story-photo,.service-story-photo img{min-height:300px}.service-detail-list>div{grid-template-columns:82px 1fr}.service-kit-grid{grid-template-columns:1fr}.service-kit-grid article,.service-kit-grid article+article{min-height:0;padding:24px 0;border-left:0;border-bottom:1px solid rgba(255,255,255,.12)}.service-kit-grid article:last-child{border-bottom:0}.service-kit-grid h3{margin:38px 0 10px}.service-night-photo-band{min-height:520px}.service-night-photo-band>img{object-position:70% center}.service-night-photo-band>div{width:calc(100% - 40px);padding:65px 0}.service-night-photo-band h2{font-size:clamp(3.2rem,14vw,5rem)}
  .venues-clean .venue-clean-hero{min-height:620px;padding-bottom:55px}.venues-clean .venue-clean-hero::before{background-position:66% center!important}.venue-photo-section{min-height:560px}.venue-photo-section>img{object-position:62% center}.venue-photo-section>div{width:calc(100% - 40px);padding:65px 0}.venue-photo-section h2{font-size:clamp(3.4rem,15vw,5.4rem)}
  .venue-theme-section{padding-left:20px;padding-right:20px}.venue-poster-grid{grid-template-columns:1fr;gap:26px}.venue-poster-grid a{width:min(100%,380px);margin:0 auto}.venue-poster-grid img{object-fit:contain}.venue-theme-heading{gap:20px}.venue-theme-heading .section-title{margin-bottom:10px}
}

/* v6.8 — homepage hero and section colour cleanup */
.home-hero-with-photo{
  min-height:min(820px,92svh);
  display:flex;
  align-items:flex-end;
  padding-top:88px;
  background:#050609 url("photos/mobile-dj-party-dorset-hampshire.webp") 64% center/cover no-repeat;
}
.home-hero-with-photo::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  opacity:1;
  background:
    linear-gradient(90deg,#050609f8 0,#050609e7 35%,#0506098f 58%,#05060920 82%),
    linear-gradient(0deg,#050609d8 0,transparent 46%),
    linear-gradient(180deg,#050609b8 0,transparent 27%);
  mask-image:none;
}
.home-hero-with-photo .manifesto{
  width:min(760px,100%);
  min-height:680px;
  padding:clamp(120px,16vh,175px) clamp(24px,5vw,82px) 95px;
  justify-content:flex-end;
}
.home-hero-with-photo .lede{max-width:560px;color:#d0d4da}
.home-hero-with-photo .home-hero-actions{margin-top:30px}
.home-hero-photo{display:none!important}

.home-services{
  background:#050609;
  color:#f4f3f1;
}
.home-services::before{color:#ffffff05}
.home-services .production-title p{color:#9aa1ab}
.home-services .production-title h2{color:#fff}
.home-services .production-title h2 span{color:#7b2cff!important}
.home-services .production-grid{border-top-color:#ffffff1f}
.home-services .production-grid article{border-right-color:#ffffff1f}
.home-services .production-grid article>span{color:#777f89}
.home-services .production-grid h3{color:#fff}
.home-services .production-grid p{color:#9ca3ad}
.home-services .service-link{color:#d8dce2}
.home-services .service-link:hover{color:#00e5ff}
.home-services .themed-service-card{background:linear-gradient(180deg,transparent,#7b2cff0c)}
.home-services .planning-service-card{background:linear-gradient(180deg,transparent,rgba(0,229,255,.04))}

@media(max-width:1050px){
  .home-hero-with-photo{display:flex;min-height:700px;background-position:68% center}
  .home-hero-with-photo .manifesto{min-height:620px;width:min(680px,100%)}
  .home-services .home-service-grid article:nth-child(2){border-right-color:#ffffff1f}
}
@media(max-width:760px){
  .home-hero-with-photo{
    min-height:680px;
    padding-top:72px!important;
    background-position:68% center;
  }
  .home-hero-with-photo::before{
    background:
      linear-gradient(0deg,#050609f8 0,#050609d7 47%,#05060945 78%),
      linear-gradient(90deg,#050609b8 0,transparent 74%),
      linear-gradient(180deg,#0506099c 0,transparent 30%);
  }
  .home-hero-with-photo .manifesto{
    min-height:608px!important;
    padding:145px 20px 54px!important;
    justify-content:flex-end;
  }
  .home-hero-with-photo .manifesto h1{font-size:clamp(3.5rem,16vw,5.8rem)!important}
  .home-hero-with-photo .lede{max-width:360px;color:#e1e4e8}
  .home-services .production-grid article{border-bottom-color:#ffffff1f}
}

/* V6.10 — Mobile DJ page structure */
.service-kit-grid-two{grid-template-columns:repeat(2,minmax(0,1fr));}
.service-topic-block+.service-topic-block{margin-top:clamp(72px,8vw,112px);padding-top:clamp(64px,7vw,92px);border-top:1px solid rgba(255,255,255,.14);}
.service-topic-block .lighting-direction-intro{margin:-14px 0 34px;}
.service-venue-setup .service-story-grid{align-items:center;}
@media(max-width:650px){.service-kit-grid-two{grid-template-columns:1fr}.service-topic-block+.service-topic-block{margin-top:58px;padding-top:52px}.service-venue-setup .service-story-photo{order:2}.service-venue-setup .service-story-copy{order:1}}

/* --- Simple enquiry page v6.11 --- */
.contact-simple-page{background:#050609;color:#fff}
.contact-simple-page .topbar{background:#050609}
.simple-enquiry-wrap{min-height:calc(100vh - 86px);display:grid;grid-template-columns:minmax(300px,.7fr) minmax(520px,1.3fr);gap:0;padding-top:86px;background:#050609}
.simple-enquiry-intro{padding:clamp(70px,8vw,120px) clamp(24px,6vw,88px);border-right:1px solid #ffffff18;display:flex;flex-direction:column;justify-content:flex-start}
.simple-enquiry-intro h1{max-width:760px;margin:18px 0 24px;font-size:clamp(3.4rem,6.8vw,7.4rem);line-height:.88;letter-spacing:-.06em;text-transform:uppercase}
.simple-enquiry-intro>p:not(.eyebrow){max-width:470px;margin:0;color:#b8bdc5;font-size:clamp(1.05rem,1.5vw,1.25rem);line-height:1.65}
.simple-enquiry-note{margin-top:54px;padding-top:22px;border-top:1px solid #ffffff22;display:grid;gap:8px;max-width:500px}
.simple-enquiry-note b{font-size:.82rem;letter-spacing:.07em;color:#fff}
.simple-enquiry-note span{color:#8f959e;font-size:.9rem;line-height:1.5}
.simple-enquiry-panel{padding:clamp(64px,7vw,110px) clamp(24px,6vw,90px);background:#090b0f}
.simple-enquiry-form{max-width:820px;margin:0 auto}
.simple-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.simple-form-grid label{display:grid;gap:9px;min-width:0}
.simple-form-grid label.wide{grid-column:1/-1}
.simple-form-grid label>span{color:#c1c5cb;font-size:.72rem;letter-spacing:.09em;text-transform:uppercase}
.simple-form-grid label>span small{color:#747b85;font-size:.65rem;text-transform:none;letter-spacing:0}
.simple-form-grid input,.simple-form-grid select,.simple-form-grid textarea{width:100%;min-width:0;padding:16px 0;border:0;border-bottom:1px solid #ffffff30;border-radius:0;background:transparent;color:#fff;font:inherit;outline:none;transition:border-color .2s}
.simple-form-grid input:focus,.simple-form-grid select:focus,.simple-form-grid textarea:focus{border-color:#00e5ff}
.simple-form-grid input::placeholder,.simple-form-grid textarea::placeholder{color:#5f6670}
.simple-form-grid select{appearance:auto;color-scheme:dark}
.theme-field[hidden]{display:none!important}
.simple-enquiry-help{margin:24px 0 0;color:#858c95;font-size:.88rem;line-height:1.55}
.simple-enquiry-submit{margin-top:34px;padding-top:24px;border-top:1px solid #ffffff20;display:flex;align-items:center;justify-content:space-between;gap:24px}
.simple-enquiry-submit>span{max-width:350px;color:#727985;font-size:.78rem;line-height:1.5}
.simple-enquiry-submit .primary{min-width:190px}
.simple-enquiry-sent{max-width:620px;padding-top:30px}
.simple-enquiry-sent>span{display:grid;place-items:center;width:48px;height:48px;margin-bottom:24px;border:1px solid #00e5ff;border-radius:50%;color:#00e5ff;font-size:1.25rem}
.simple-enquiry-sent h2{margin:18px 0 16px;font-size:clamp(2.8rem,5vw,5rem);line-height:.9;text-transform:uppercase;letter-spacing:-.05em}
.simple-enquiry-sent>p:not(.eyebrow){margin-bottom:30px;color:#aeb4bc}
@media(max-width:900px){
  .simple-enquiry-wrap{grid-template-columns:1fr;padding-top:72px}
  .simple-enquiry-intro{padding:60px 22px 42px;border-right:0;border-bottom:1px solid #ffffff18}
  .simple-enquiry-intro h1{font-size:clamp(3.2rem,14vw,5.4rem)}
  .simple-enquiry-note{margin-top:34px}
  .simple-enquiry-panel{padding:44px 22px 70px}
}
@media(max-width:620px){
  .simple-form-grid{grid-template-columns:1fr;gap:22px}
  .simple-form-grid label.wide{grid-column:auto}
  .simple-enquiry-submit{align-items:stretch;flex-direction:column}
  .simple-enquiry-submit .primary{width:100%}
}

/* Venue setup page */
.venue-setup-page, .venue-event-planning-page .venue-setup-hero, .venue-event-planning-hero{min-height:730px}
.venue-setup-page, .venue-event-planning-page .venue-setup-hero, .venue-event-planning-hero::before{background:linear-gradient(90deg,#050609f6 0,#050609dc 40%,#05060970 68%,#05060920),linear-gradient(150deg,#7b2cff20,#00e5ff10),url("photos/dj-event-planning-venue.webp") 62% center/cover no-repeat!important;filter:saturate(.98) contrast(1.03)}
.venue-setup-page, .venue-event-planning-page .venue-setup-hero, .venue-event-planning-hero::after{opacity:.08}
@media(max-width:650px){.venue-setup-page, .venue-event-planning-page .venue-setup-hero, .venue-event-planning-hero{min-height:620px;padding-bottom:55px}.venue-setup-page, .venue-event-planning-page .venue-setup-hero, .venue-event-planning-hero::before{background-position:58% center!important}}

/* V6.23 — Music & requests: readable white-on-black treatment */
.services-page .service-story-section{
  background:#050609;
  color:#fff;
}
.services-page .service-story-section .section-title,
.services-page .service-story-section .service-story-copy,
.services-page .service-story-section .service-story-copy p,
.services-page .service-story-section .service-detail-list p{
  color:#fff;
}
.services-page .service-story-section .service-story-copy .lead{
  color:#e1e4e8;
}
.services-page .service-story-section .service-detail-list{
  border-top-color:rgba(255,255,255,.20);
}
.services-page .service-story-section .service-detail-list>div{
  border-bottom-color:rgba(255,255,255,.16);
}
.services-page .service-story-section .service-detail-list b{
  color:#00e5ff;
}

/* Venue & Event Planning card photography */
.venue-event-planning-page .planning-card{padding-top:0}
.venue-event-planning-page .planning-card-image{display:block;width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:18px;margin:0 0 24px;border:1px solid rgba(255,255,255,.12);box-shadow:0 20px 55px rgba(0,0,0,.22)}
.venue-event-planning-page .planning-card h3{margin:18px 0 14px}
@media(max-width:650px){.venue-event-planning-page .planning-card-image{aspect-ratio:4/3;border-radius:14px;margin-bottom:20px}.venue-event-planning-page .planning-card h3{margin:16px 0 10px}}


/* V6.40 — social proof + Wedding DJ landing page */
.home-proof-section{position:relative;overflow:hidden;padding:clamp(82px,9vw,132px) clamp(24px,6vw,90px);background:#07090d;border-top:1px solid rgba(255,255,255,.07);border-bottom:1px solid rgba(255,255,255,.07)}
.home-proof-section::before{content:"";position:absolute;inset:-30% 45% 20% -18%;background:radial-gradient(circle at center,rgba(123,44,255,.16),transparent 68%);pointer-events:none}
.home-proof-section::after{content:"";position:absolute;inset:35% -18% -45% 52%;background:radial-gradient(circle at center,rgba(0,229,255,.1),transparent 66%);pointer-events:none}
.home-proof-shell{position:relative;z-index:1;width:min(1280px,100%);margin:auto}
.home-proof-head{display:grid;grid-template-columns:minmax(0,.9fr) minmax(320px,.65fr);gap:clamp(40px,8vw,120px);align-items:end;margin-bottom:48px}
.home-proof-head h2{max-width:760px;margin:12px 0 0;color:#fff;font-size:clamp(3.2rem,6.4vw,6.5rem);line-height:.86;letter-spacing:-.06em;text-transform:uppercase}
.home-proof-head h2 span{color:#00e5ff}.home-proof-intro>p{max-width:560px;margin:0 0 28px;color:#aeb5bf;line-height:1.75}
.home-proof-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.home-proof-grid article{position:relative;min-height:360px;padding:28px;display:flex;flex-direction:column;border:1px solid rgba(255,255,255,.11);border-radius:24px;background:linear-gradient(160deg,rgba(255,255,255,.055),rgba(255,255,255,.018));box-shadow:0 28px 70px rgba(0,0,0,.22);overflow:hidden}
.home-proof-grid article::before{content:"";position:absolute;left:0;top:0;width:100%;height:2px;background:linear-gradient(90deg,#7b2cff,#00e5ff,transparent 78%)}
.home-proof-grid article:nth-child(2)::before{background:linear-gradient(90deg,#00e5ff,#7b2cff,transparent 78%)}
.home-proof-grid blockquote{margin:auto 0 30px;color:#f7f7f8;font-size:clamp(1.25rem,2vw,1.65rem);line-height:1.48;letter-spacing:-.02em}
.home-proof-grid article>p{margin:0;color:#7f8792;font-size:.72rem;letter-spacing:.11em;text-transform:uppercase}
.sample-review-label{display:block;color:#00e5ff;font-size:.6rem;font-weight:900;letter-spacing:.13em;text-transform:uppercase}
.home-proof-grid article:nth-child(2) .sample-review-label{color:#a874ff}.sample-review-note{margin:22px 0 0;color:#6e7580;font-size:.72rem;line-height:1.5}.sample-review-note strong{color:#a3a9b2}

.wedding-dj-page{background:#050609;color:#fff}.wedding-dj-hero{min-height:760px;display:flex;align-items:flex-end;overflow:hidden;background:#050609}
.wedding-dj-hero::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#050609fa 0,#050609ea 34%,#0506099d 56%,#05060938 84%),linear-gradient(0deg,#050609ec 0,transparent 40%),url("photos/wedding-dj-reception.webp") 68% center/cover no-repeat!important;filter:saturate(1.02) contrast(1.03)}
.wedding-dj-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(150deg,rgba(123,44,255,.14),transparent 38%,rgba(0,229,255,.07));opacity:1!important}
.wedding-dj-hero .page-hero-inner{position:relative;z-index:2;max-width:900px;padding-bottom:clamp(70px,9vw,120px)}
.wedding-dj-hero h1{max-width:900px}.wedding-dj-hero h1 span{color:#00e5ff}
.wedding-shell{width:min(1280px,calc(100% - 48px));margin:auto}
.wedding-pillars-section,.wedding-night-section,.wedding-proof-section{position:relative;overflow:hidden;padding:clamp(82px,9vw,130px) 0;background:#07090d}
.wedding-pillars-section::before,.wedding-proof-section::before{content:"";position:absolute;inset:-20% 48% 28% -18%;background:radial-gradient(circle,rgba(123,44,255,.13),transparent 68%);pointer-events:none}
.wedding-section-head{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,.95fr) minmax(300px,.65fr);gap:clamp(40px,8vw,110px);align-items:end;margin-bottom:46px}
.wedding-section-head h2{max-width:800px;margin:12px 0 0;font-size:clamp(3.2rem,6vw,6.4rem);line-height:.87;letter-spacing:-.06em;text-transform:uppercase}.wedding-section-head h2 span{color:#7b2cff}.wedding-section-head>p{max-width:560px;margin:0;color:#a6adb7;line-height:1.75}
.wedding-pillars-grid{position:relative;z-index:1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.wedding-pillars-grid article{position:relative;min-height:390px;padding:30px;border:1px solid rgba(255,255,255,.11);border-radius:24px;background:linear-gradient(160deg,rgba(255,255,255,.05),rgba(255,255,255,.016));overflow:hidden}
.wedding-pillars-grid article::before{content:"";position:absolute;left:0;top:0;width:100%;height:2px;background:linear-gradient(90deg,var(--card-accent),transparent 78%);box-shadow:0 0 26px var(--card-accent)}
.wedding-pillars-grid article>span{color:var(--card-accent);font-size:.62rem;font-weight:900;letter-spacing:.15em}.wedding-pillars-grid h3{margin:118px 0 18px;font-size:clamp(1.7rem,2.7vw,2.75rem);line-height:.95;text-transform:uppercase;letter-spacing:-.035em}.wedding-pillars-grid p{margin:0;color:#929aa5;line-height:1.68}.wedding-pillars-grid .service-link{display:inline-block;margin-top:22px}

.wedding-planning-feature{display:grid;grid-template-columns:minmax(0,1.06fr) minmax(380px,.94fr);min-height:720px;background:#050609;border-top:1px solid rgba(255,255,255,.07);border-bottom:1px solid rgba(255,255,255,.07)}
.wedding-planning-photo{position:relative;min-height:620px;overflow:hidden}.wedding-planning-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 60%,#050609 100%),linear-gradient(0deg,#05060990,transparent 32%)}.wedding-planning-photo img{width:100%;height:100%;object-fit:cover;object-position:center;display:block}
.wedding-planning-copy{align-self:center;padding:clamp(58px,7vw,105px) clamp(30px,7vw,105px) clamp(58px,7vw,105px) clamp(38px,5vw,78px);background:radial-gradient(circle at 25% 40%,rgba(123,44,255,.1),transparent 48%)}
.wedding-planning-copy h2{margin:14px 0 24px;font-size:clamp(3rem,5vw,5.5rem);line-height:.88;letter-spacing:-.055em;text-transform:uppercase}.wedding-planning-copy h2 span{color:#00e5ff}.wedding-planning-copy .lead{color:#eceef1;font-size:1.1rem;line-height:1.7}.wedding-planning-copy>p:not(.eyebrow):not(.lead){max-width:620px;color:#9ca3ad;line-height:1.72}.wedding-planning-copy .page-actions{margin-top:32px}

.wedding-night-section{background:#080a0f}.wedding-night-section::after{content:"";position:absolute;right:-18%;bottom:-30%;width:58%;height:74%;background:radial-gradient(circle,rgba(0,229,255,.08),transparent 68%);pointer-events:none}.wedding-night-grid{position:relative;z-index:1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.wedding-night-grid article{min-height:300px;padding:30px;border:1px solid rgba(255,255,255,.1);border-radius:22px;background:linear-gradient(145deg,rgba(255,255,255,.045),rgba(255,255,255,.012))}.wedding-night-grid article:nth-child(2),.wedding-night-grid article:nth-child(3){background:linear-gradient(145deg,rgba(0,229,255,.035),rgba(255,255,255,.012))}.wedding-night-grid span{color:#00e5ff;font-size:.6rem;font-weight:900;letter-spacing:.14em;text-transform:uppercase}.wedding-night-grid h3{margin:82px 0 14px;font-size:clamp(1.7rem,2.8vw,2.9rem);line-height:.95;text-transform:uppercase}.wedding-night-grid p{max-width:540px;margin:0;color:#929aa5;line-height:1.68}

.wedding-proof-section{background:#050609}.wedding-proof-grid{position:relative;z-index:1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.wedding-proof-grid article{min-height:360px;padding:32px;border:1px solid rgba(255,255,255,.11);border-radius:24px;background:linear-gradient(145deg,rgba(123,44,255,.07),rgba(255,255,255,.018));display:flex;flex-direction:column}.wedding-proof-grid article:nth-child(2){background:linear-gradient(145deg,rgba(0,229,255,.055),rgba(255,255,255,.018))}.wedding-proof-grid span{color:#a874ff;font-size:.6rem;font-weight:900;letter-spacing:.14em;text-transform:uppercase}.wedding-proof-grid article:nth-child(2) span{color:#00e5ff}.wedding-proof-grid blockquote{margin:auto 0 26px;font-size:clamp(1.4rem,2.3vw,2rem);line-height:1.45;letter-spacing:-.025em}.wedding-proof-grid p{margin:0;color:#7f8792;font-size:.72rem;letter-spacing:.11em;text-transform:uppercase}.wedding-faq{background:#090b0f!important;color:#fff!important}.wedding-faq .eyebrow{color:#9198a2!important}.wedding-faq h2{color:#fff}.wedding-faq details{border-top-color:rgba(255,255,255,.12)}.wedding-faq details:last-child{border-bottom-color:rgba(255,255,255,.12)}.wedding-faq summary{color:#fff}.wedding-faq details p{color:#969da7}.wedding-cta{background:linear-gradient(120deg,#0b0d13,#211041 48%,#063d49)!important}

@media(max-width:920px){.home-proof-head,.wedding-section-head{grid-template-columns:1fr}.home-proof-grid,.wedding-pillars-grid{grid-template-columns:1fr 1fr}.home-proof-grid article:last-child,.wedding-pillars-grid article:last-child{grid-column:1/-1}.wedding-planning-feature{grid-template-columns:1fr}.wedding-planning-photo{min-height:520px}.wedding-planning-photo::after{background:linear-gradient(0deg,#050609 0,transparent 30%)}}
@media(max-width:650px){.home-proof-section{padding:72px 20px}.home-proof-grid,.wedding-pillars-grid,.wedding-night-grid,.wedding-proof-grid{grid-template-columns:1fr}.home-proof-grid article:last-child,.wedding-pillars-grid article:last-child{grid-column:auto}.home-proof-grid article{min-height:300px}.wedding-dj-hero{min-height:700px}.wedding-dj-hero::before{background:linear-gradient(0deg,#050609fa 0,#050609dc 46%,#05060963 76%),linear-gradient(90deg,#050609c0 0,#05060960 42%,transparent 82%),url("photos/wedding-dj-reception.webp") 61% center/cover no-repeat!important}.wedding-dj-hero .page-hero-inner{padding-bottom:58px}.wedding-shell{width:calc(100% - 40px)}.wedding-pillars-section,.wedding-night-section,.wedding-proof-section{padding:72px 0}.wedding-pillars-grid article{min-height:320px}.wedding-pillars-grid h3{margin-top:72px}.wedding-planning-photo{min-height:430px}.wedding-planning-copy{padding:58px 20px 72px}.wedding-night-grid article{min-height:260px}.wedding-night-grid h3{margin-top:58px}.wedding-proof-grid article{min-height:300px}}

/* V6.41 — remove hard mobile colour seams and tighten proof cards */
.home-proof-section{
  background:
    radial-gradient(ellipse 78% 58% at 12% 22%,rgba(123,44,255,.16),transparent 68%),
    radial-gradient(ellipse 72% 55% at 90% 78%,rgba(0,229,255,.095),transparent 70%),
    #07090d;
}
.home-proof-section::before,.home-proof-section::after{display:none!important}
.wedding-pillars-section,.wedding-proof-section{
  background:
    radial-gradient(ellipse 76% 54% at 8% 18%,rgba(123,44,255,.13),transparent 70%),
    radial-gradient(ellipse 68% 52% at 94% 82%,rgba(0,229,255,.075),transparent 72%),
    #07090d;
}
.wedding-pillars-section::before,.wedding-proof-section::before{display:none!important}
.wedding-night-section{
  background:
    radial-gradient(ellipse 72% 54% at 92% 72%,rgba(0,229,255,.075),transparent 72%),
    radial-gradient(ellipse 64% 48% at 8% 18%,rgba(123,44,255,.075),transparent 72%),
    #080a0f;
}
.wedding-night-section::after{display:none!important}

@media(max-width:650px){
  .home-proof-section{
    background:
      radial-gradient(ellipse 120% 42% at 0% 18%,rgba(123,44,255,.14),transparent 72%),
      radial-gradient(ellipse 110% 40% at 100% 78%,rgba(0,229,255,.08),transparent 74%),
      #07090d;
  }
  .home-proof-grid article{min-height:0;padding:26px 24px 28px}
  .home-proof-grid blockquote{margin:62px 0 26px;font-size:1.32rem;line-height:1.44}
  .sample-review-note{margin-top:18px}
  .wedding-pillars-section,.wedding-proof-section{
    background:
      radial-gradient(ellipse 120% 40% at 0% 16%,rgba(123,44,255,.115),transparent 74%),
      radial-gradient(ellipse 115% 42% at 100% 82%,rgba(0,229,255,.065),transparent 75%),
      #07090d;
  }
  .wedding-night-section{
    background:
      radial-gradient(ellipse 115% 42% at 100% 72%,rgba(0,229,255,.065),transparent 75%),
      radial-gradient(ellipse 105% 38% at 0% 18%,rgba(123,44,255,.06),transparent 75%),
      #080a0f;
  }
  .wedding-night-grid article{min-height:0;padding:28px 24px 30px}
  .wedding-night-grid h3{margin-top:54px}
}

/* V6.42 — Bournemouth business Christmas party landing page */
.christmas-party-page{background:#050609;color:#fff}.christmas-shell{width:min(1280px,calc(100% - 48px));margin:auto}
.christmas-hero{position:relative;min-height:760px;display:flex;align-items:flex-end;overflow:hidden;background:#050609}
.christmas-hero::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#050609fa 0,#050609e9 37%,#05060995 63%,#0506093a 88%),linear-gradient(0deg,#050609ef 0,transparent 40%),url("photos/christmas-party-dj-dancefloor.webp") 58% center/cover no-repeat!important;filter:saturate(1.03) contrast(1.03)}
.christmas-hero::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 78% 25%,rgba(232,184,95,.15),transparent 24%),radial-gradient(circle at 66% 52%,rgba(0,229,255,.09),transparent 34%),linear-gradient(145deg,rgba(123,44,255,.16),transparent 40%);opacity:1!important}
.christmas-hero .page-hero-inner{position:relative;z-index:2;max-width:980px;padding-bottom:clamp(70px,9vw,120px)}
.christmas-hero h1{max-width:980px}.christmas-hero h1 span{color:#e8b85f}.christmas-hero .eyebrow{color:#e8b85f}
.christmas-intro,.christmas-flow,.christmas-festive,.christmas-local{position:relative;overflow:hidden;padding:clamp(82px,9vw,130px) 0;background:radial-gradient(ellipse 74% 55% at 8% 18%,rgba(123,44,255,.11),transparent 72%),radial-gradient(ellipse 64% 52% at 95% 78%,rgba(0,229,255,.07),transparent 72%),#07090d}
.christmas-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.68fr);gap:clamp(40px,8vw,110px);align-items:end;margin-bottom:46px}.christmas-head h2,.christmas-festive-grid h2,.christmas-local-card h2{margin:12px 0 0;font-size:clamp(3.1rem,6vw,6.3rem);line-height:.88;letter-spacing:-.055em;text-transform:uppercase}.christmas-head h2 span,.christmas-local-card h2 span{color:#00e5ff}.christmas-head>p,.christmas-festive-grid>div:last-child,.christmas-local-card>div:last-child{color:#9da5af;line-height:1.75}.christmas-head .eyebrow,.christmas-festive .eyebrow,.christmas-local .eyebrow{color:#e8b85f}
.christmas-card-grid,.christmas-flow-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.christmas-card-grid article,.christmas-flow-grid article{position:relative;min-height:350px;padding:30px;border:1px solid rgba(255,255,255,.1);border-radius:24px;background:linear-gradient(150deg,rgba(255,255,255,.05),rgba(255,255,255,.014));overflow:hidden}.christmas-card-grid article::before{content:"";position:absolute;left:0;top:0;width:100%;height:2px;background:linear-gradient(90deg,var(--xmas-accent),transparent 76%);box-shadow:0 0 28px color-mix(in srgb,var(--xmas-accent) 55%,transparent)}.christmas-card-grid article>span,.christmas-flow-grid article>span{color:var(--xmas-accent,#e8b85f);font-size:.62rem;font-weight:900;letter-spacing:.15em;text-transform:uppercase}.christmas-card-grid h3,.christmas-flow-grid h3{margin:110px 0 16px;font-size:clamp(1.55rem,2.2vw,2.4rem);line-height:.96;text-transform:uppercase;letter-spacing:-.035em}.christmas-card-grid p,.christmas-flow-grid p{margin:0;color:#929aa5;line-height:1.68}
.christmas-planning-feature{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(390px,.92fr);min-height:720px;background:#050609;border-top:1px solid rgba(255,255,255,.07);border-bottom:1px solid rgba(255,255,255,.07)}.christmas-planning-photo{position:relative;min-height:620px;overflow:hidden}.christmas-planning-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 58%,#050609 100%),linear-gradient(0deg,#0506099a,transparent 34%)}.christmas-planning-photo img{width:100%;height:100%;display:block;object-fit:cover;object-position:center}.christmas-planning-copy{align-self:center;padding:clamp(58px,7vw,105px) clamp(30px,7vw,105px) clamp(58px,7vw,105px) clamp(38px,5vw,78px);background:radial-gradient(circle at 28% 42%,rgba(232,184,95,.08),transparent 46%),radial-gradient(circle at 70% 70%,rgba(123,44,255,.09),transparent 52%)}.christmas-planning-copy h2{margin:14px 0 24px;font-size:clamp(3rem,5vw,5.5rem);line-height:.88;letter-spacing:-.055em;text-transform:uppercase}.christmas-planning-copy h2 span{color:#e8b85f}.christmas-planning-copy .lead{color:#eceef1;font-size:1.1rem;line-height:1.7}.christmas-planning-copy>p:not(.eyebrow):not(.lead){max-width:620px;color:#9ca3ad;line-height:1.72}.christmas-planning-copy .page-actions{margin-top:32px}
.christmas-disco-feature .christmas-planning-photo::after{background:linear-gradient(90deg,transparent 54%,#050609 100%),linear-gradient(0deg,#05060992,transparent 28%)}
.christmas-disco-feature .christmas-planning-copy{background:radial-gradient(circle at 22% 30%,rgba(0,229,255,.08),transparent 42%),radial-gradient(circle at 72% 74%,rgba(123,44,255,.12),transparent 50%),radial-gradient(circle at 46% 54%,rgba(232,184,95,.06),transparent 38%)}
@media(max-width:1050px){.christmas-disco-feature .christmas-planning-photo::after{background:linear-gradient(0deg,#050609 0,transparent 30%)}}

.christmas-flow{background:radial-gradient(ellipse 68% 54% at 92% 70%,rgba(0,229,255,.075),transparent 72%),radial-gradient(ellipse 62% 48% at 8% 18%,rgba(232,184,95,.055),transparent 72%),#080a0f}.christmas-flow-grid article:nth-child(2){--xmas-accent:#00e5ff}.christmas-flow-grid article:nth-child(3){--xmas-accent:#9f63ff}.christmas-flow-grid article:nth-child(4){--xmas-accent:#e8b85f}
.christmas-festive{background:linear-gradient(120deg,#080a0e,#171021 46%,#08171b)}.christmas-festive-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.65fr);gap:clamp(40px,8vw,110px);align-items:center}.christmas-festive-grid h2 span{color:#e8b85f}.christmas-festive-grid p{margin:0 0 18px}
.christmas-local{background:#050609}.christmas-local-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(330px,.72fr);gap:clamp(38px,8vw,105px);align-items:center;padding:clamp(36px,5vw,68px);border:1px solid rgba(255,255,255,.1);border-radius:28px;background:radial-gradient(circle at 0 10%,rgba(123,44,255,.11),transparent 46%),radial-gradient(circle at 100% 90%,rgba(0,229,255,.075),transparent 48%),rgba(255,255,255,.025)}.christmas-local-card p{margin:0 0 18px}.christmas-local-card .line-link{display:inline-block;margin-top:10px}
.christmas-faq{background:#090b0f!important;color:#fff!important}.christmas-faq .eyebrow{color:#e8b85f!important}.christmas-faq h2{color:#fff}.christmas-faq details{border-top-color:rgba(255,255,255,.12)}.christmas-faq details:last-child{border-bottom-color:rgba(255,255,255,.12)}.christmas-faq summary{color:#fff}.christmas-faq details p{color:#969da7}
.christmas-cta{padding:clamp(90px,10vw,150px) 24px;text-align:center;background:radial-gradient(circle at 50% 0,rgba(232,184,95,.1),transparent 36%),linear-gradient(120deg,#0b0d13,#211041 48%,#063d49)}.christmas-cta>div{max-width:900px;margin:auto}.christmas-cta h2{margin:12px 0 22px;font-size:clamp(3.2rem,7vw,7rem);line-height:.86;letter-spacing:-.06em;text-transform:uppercase}.christmas-cta h2 span{color:#e8b85f}.christmas-cta>div>p:not(.eyebrow){max-width:650px;margin:0 auto 30px;color:#b0b6bf;line-height:1.7}.christmas-cta .eyebrow{color:#e8b85f}
.home-christmas-strip{position:relative;overflow:hidden;padding:34px 24px;background:radial-gradient(circle at 12% 50%,rgba(232,184,95,.11),transparent 28%),radial-gradient(circle at 90% 50%,rgba(0,229,255,.07),transparent 34%),#090a0e;border-top:1px solid rgba(255,255,255,.07);border-bottom:1px solid rgba(255,255,255,.07)}.home-christmas-strip-inner{width:min(1280px,100%);margin:auto;display:grid;grid-template-columns:auto 1fr auto;gap:24px;align-items:center}.home-christmas-strip .season-mark{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(232,184,95,.35);color:#e8b85f;font-size:1.2rem;background:rgba(232,184,95,.05);box-shadow:0 0 28px rgba(232,184,95,.08)}.home-christmas-strip h3{margin:0 0 6px;font-size:clamp(1.3rem,2.1vw,2rem);text-transform:uppercase;letter-spacing:-.02em}.home-christmas-strip p{margin:0;color:#8f97a2;line-height:1.5}.home-christmas-strip .line-link{white-space:nowrap}
@media(max-width:1050px){.christmas-card-grid,.christmas-flow-grid{grid-template-columns:1fr 1fr}.christmas-planning-feature{grid-template-columns:1fr}.christmas-planning-photo{min-height:520px}.christmas-planning-photo::after{background:linear-gradient(0deg,#050609 0,transparent 30%)}}
@media(max-width:720px){.christmas-shell{width:calc(100% - 40px)}.christmas-hero{min-height:720px}.christmas-hero::before{background:linear-gradient(0deg,#050609fb 0,#050609df 48%,#05060962 78%),linear-gradient(90deg,#050609a8 0,transparent 78%),url("photos/christmas-party-dj-dancefloor.webp") 54% center/cover no-repeat!important}.christmas-hero .page-hero-inner{padding-bottom:58px}.christmas-intro,.christmas-flow,.christmas-festive,.christmas-local{padding:72px 0}.christmas-head,.christmas-festive-grid,.christmas-local-card{grid-template-columns:1fr}.christmas-card-grid,.christmas-flow-grid{grid-template-columns:1fr}.christmas-card-grid article,.christmas-flow-grid article{min-height:0;padding:28px 24px 30px}.christmas-card-grid h3,.christmas-flow-grid h3{margin-top:56px}.christmas-planning-photo{min-height:420px}.christmas-planning-copy{padding:58px 20px 72px}.christmas-local-card{padding:28px 24px;border-radius:22px}.home-christmas-strip{padding:28px 20px}.home-christmas-strip-inner{grid-template-columns:auto 1fr}.home-christmas-strip .line-link{grid-column:1/-1;margin-left:76px}}
@media(max-width:430px){.home-christmas-strip-inner{grid-template-columns:1fr}.home-christmas-strip .season-mark{display:none}.home-christmas-strip .line-link{margin-left:0}.christmas-cta{padding-left:20px;padding-right:20px}}


/* V6.43 NAV + FESTIVE POLISH */
.topbar nav>a.nav-seasonal{color:#d9b56b}
.topbar nav>a.nav-seasonal::after{background:linear-gradient(90deg,#e8b85f,#9f63ff 55%,#00e5ff)}
.topbar nav>a.nav-seasonal:hover,.topbar nav>a.nav-seasonal.active{color:#fff;text-shadow:0 0 18px rgba(232,184,95,.28)}
.page-footer .footer-links a[href="christmas-party.html"],footer>.footer-links a[href="christmas-party.html"]{color:#c9aa70}
.page-footer .footer-links a[href="christmas-party.html"]:hover,footer>.footer-links a[href="christmas-party.html"]:hover{color:#f2d596}
.christmas-party-page .christmas-hero .page-hero-inner::before{content:"✦  ✧  ✦";display:block;margin:0 0 22px;color:#e8b85f;font-size:.7rem;letter-spacing:.65em;opacity:.78}
.christmas-party-page .christmas-festive::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 12% 22%,rgba(232,184,95,.10) 0 1px,transparent 2px),radial-gradient(circle at 82% 70%,rgba(255,255,255,.08) 0 1px,transparent 2px);background-size:95px 95px,140px 140px;opacity:.55}
.christmas-party-page .christmas-festive-grid{position:relative;z-index:1}
@media(max-width:1500px){
  .topbar nav{position:absolute;top:78px;left:18px;right:18px;padding:14px 18px;display:none;align-items:stretch;flex-direction:column;gap:0;background:#08090df7;border:1px solid rgba(255,255,255,.12);border-radius:18px;box-shadow:0 24px 60px rgba(0,0,0,.45);max-height:calc(100vh - 100px);overflow-y:auto}
  .topbar nav.open{display:flex}
  .topbar nav>a:not(.nav-book){padding:13px 10px;border-bottom:1px solid rgba(255,255,255,.06)}
  .topbar nav>a:not(.nav-book)::after{bottom:7px}
  .topbar nav>.nav-book{margin-top:12px;justify-content:center}
  .menu{display:block}
}
@media(min-width:1501px){
  .topbar{padding-left:clamp(22px,2.8vw,54px);padding-right:clamp(22px,2.8vw,54px)}
  .logo{width:clamp(220px,18vw,310px)}
  .topbar nav{gap:clamp(11px,1.15vw,22px);font-size:.61rem;letter-spacing:.105em}
  .topbar nav>.nav-book{padding-left:15px;padding-right:15px}
}

/* v6.48 wedding photo story */
.wedding-photo-story{position:relative;overflow:hidden;padding:clamp(76px,8vw,118px) 0;background:linear-gradient(180deg,#050609 0,#080a0f 100%)}
.wedding-photo-story::before{content:"";position:absolute;inset:-18% 40% 30% -16%;background:radial-gradient(circle,rgba(123,44,255,.12),transparent 68%);pointer-events:none}
.wedding-photo-story::after{content:"";position:absolute;right:-18%;bottom:-28%;width:58%;height:68%;background:radial-gradient(circle,rgba(0,229,255,.08),transparent 70%);pointer-events:none}
.wedding-photo-story .wedding-section-head{position:relative;z-index:2}
.wedding-photo-grid{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);gap:18px;align-items:stretch}
.wedding-photo-card{position:relative;margin:0;min-height:540px;border-radius:24px;overflow:hidden;border:1px solid rgba(255,255,255,.11);background:#090b0f;box-shadow:0 26px 70px rgba(0,0,0,.35)}
.wedding-photo-card img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.2,.75,.2,1),filter .7s ease}
.wedding-photo-card--first img{object-position:center 54%}
.wedding-photo-card--late img{object-position:center 45%}
.wedding-photo-card::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 52%,rgba(3,4,7,.12) 68%,rgba(3,4,7,.9) 100%);pointer-events:none}
.wedding-photo-card::before{content:"";position:absolute;z-index:2;left:0;right:35%;top:0;height:2px;background:linear-gradient(90deg,#7b2cff,#00e5ff,transparent);box-shadow:0 0 24px rgba(0,229,255,.35);pointer-events:none}
.wedding-photo-card--late::before{left:35%;right:0;background:linear-gradient(90deg,transparent,#7b2cff,#00e5ff)}
.wedding-photo-card figcaption{position:absolute;z-index:3;left:28px;right:28px;bottom:26px;display:flex;flex-direction:column;gap:7px}
.wedding-photo-card figcaption span{font-size:.62rem;font-weight:900;letter-spacing:.16em;text-transform:uppercase;color:#00e5ff}
.wedding-photo-card figcaption strong{font-size:clamp(1.6rem,2.5vw,2.5rem);line-height:1;text-transform:uppercase;letter-spacing:-.035em;color:#fff}
@media(hover:hover){.wedding-photo-card:hover img{transform:scale(1.025);filter:saturate(1.05) contrast(1.02)}}
@media(max-width:920px){.wedding-photo-grid{grid-template-columns:1fr 1fr}.wedding-photo-card{min-height:460px}}
@media(max-width:650px){.wedding-photo-story{padding:68px 0}.wedding-photo-grid{grid-template-columns:1fr;gap:16px}.wedding-photo-card{min-height:420px;border-radius:20px}.wedding-photo-card--late{min-height:500px}.wedding-photo-card figcaption{left:22px;right:22px;bottom:21px}}
@media(prefers-reduced-motion:reduce){.wedding-photo-card img{transition:none!important}.wedding-photo-card:hover img{transform:none!important}}


/* v6.90 themed-night photos: copy first, atmosphere image below with a soft page blend */
.themed-page .theme-entry.has-night-photo,
.themed-page .theme-entry.has-night-photo:nth-child(even){
  display:grid!important;grid-template-columns:1fr!important;grid-template-rows:auto!important;overflow:hidden;
  background:linear-gradient(180deg,color-mix(in srgb,var(--chapter) 5%,#0a0c11),#0a0c11 62%,#06070a 100%)
}
.themed-page .theme-entry.has-night-photo .theme-no,
.themed-page .theme-entry.has-night-photo h2,
.themed-page .theme-entry.has-night-photo h3,
.themed-page .theme-entry.has-night-photo .theme-summary,
.themed-page .theme-entry.has-night-photo .theme-spec-grid,
.themed-page .theme-entry.has-night-photo .theme-listening,
.themed-page .theme-entry.has-night-photo .theme-tags,
.themed-page .theme-entry.has-night-photo .theme-book-link{grid-column:1!important}
.themed-page .theme-entry.has-night-photo .theme-night-photo{
  order:20;grid-column:1!important;grid-row:auto!important;position:relative!important;top:auto!important;inset:auto!important;
  width:100%!important;height:auto!important;min-height:0!important;aspect-ratio:16/9!important;object-fit:cover!important;object-position:center!important;
  margin:0!important;border:0!important;background:#06070a!important;filter:saturate(.96) contrast(1.03)!important;transform:none!important;
  -webkit-mask-image:linear-gradient(to bottom,transparent 0%,#000 10%,#000 88%,transparent 100%);
  mask-image:linear-gradient(to bottom,transparent 0%,#000 10%,#000 88%,transparent 100%);
}
.themed-page .theme-entry.has-night-photo .theme-night-photo:hover{transform:none!important}
.themed-page .theme-entry.has-night-photo .theme-book-link{margin-bottom:8px}
.themed-page .theme-entry.has-night-photo .theme-tags{margin-bottom:10px}
@media(max-width:720px){
  .themed-page .theme-entry.has-night-photo .theme-night-photo{aspect-ratio:4/3!important;object-fit:cover!important;
    -webkit-mask-image:linear-gradient(to bottom,transparent 0%,#000 8%,#000 90%,transparent 100%);
    mask-image:linear-gradient(to bottom,transparent 0%,#000 8%,#000 90%,transparent 100%)}
}

/* v6.94 — restore polished desktop controls for the homepage themed-night rail. */
@media (min-width:761px){
  .home-nights-section .poster-stage{position:relative}
  .home-nights-section .rail-nav{
    display:flex!important;
    position:absolute;
    left:auto;
    right:clamp(28px,4vw,64px);
    bottom:24px;
    z-index:12;
    align-items:center;
    justify-content:flex-end;
    gap:10px;
    pointer-events:none;
  }
  .home-nights-section .rail-nav button{
    width:42px;
    height:42px;
    padding:0;
    display:grid;
    place-items:center;
    border:1px solid rgba(255,255,255,.18);
    border-radius:50%;
    background:rgba(8,9,12,.78);
    color:#fff;
    font:500 1.6rem/1 system-ui,sans-serif;
    box-shadow:0 10px 30px rgba(0,0,0,.28);
    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);
    cursor:pointer;
    pointer-events:auto;
    transition:transform .2s ease,border-color .2s ease,background .2s ease,box-shadow .2s ease;
  }
  .home-nights-section .rail-nav button:hover,
  .home-nights-section .rail-nav button:focus-visible{
    transform:translateY(-2px);
    border-color:rgba(183,108,255,.68);
    background:rgba(18,14,28,.92);
    box-shadow:0 12px 34px rgba(0,0,0,.34),0 0 0 3px rgba(183,108,255,.08);
    outline:none;
  }
  .home-nights-section .rail-nav span{
    min-width:70px;
    text-align:center;
    color:#777d87;
    font-size:.62rem;
    letter-spacing:.12em;
  }
  .home-nights-section .rail-nav b{color:#fff;font-size:.8rem;font-weight:800}
}
@media (max-width:760px){
  .home-nights-section .rail-nav{display:none!important}
}

/* V6.98 — Wedding page editorial / premium visual redesign */
.wedding-dj-page{
  --wedding-bg:#f6f0e8;
  --wedding-surface:#fffaf4;
  --wedding-surface-2:#f2e8dc;
  --wedding-ink:#251d1a;
  --wedding-muted:#6b625b;
  --wedding-accent:#c6a168;
  --wedding-accent-2:#b88ea5;
  --wedding-accent-3:#8f7a87;
  --wedding-rule:rgba(116,93,73,.18);
  background:linear-gradient(180deg,#1b1414 0 760px,var(--wedding-bg) 760px 100%);
  color:var(--wedding-ink);
}
.wedding-dj-page .cursor-glow{display:none!important}
.wedding-dj-page .topbar{background:linear-gradient(180deg,rgba(5,6,9,.78),rgba(5,6,9,.38));backdrop-filter:blur(14px)}
.wedding-dj-page #nav a.active,
.wedding-dj-page #nav a[aria-current="page"]{color:#f2dec0;border-color:rgba(230,198,145,.75)!important}
.wedding-dj-page .page-footer{border-top:1px solid rgba(255,255,255,.08)}
.wedding-dj-page .eyebrow{color:#b08954!important;letter-spacing:.24em}
.wedding-dj-page .page-hero h1,
.wedding-dj-page .wedding-section-head h2,
.wedding-dj-page .wedding-planning-copy h2,
.wedding-dj-page .wedding-faq h2,
.wedding-dj-page .wedding-cta p{
  font-family:Georgia,"Times New Roman",serif;
  text-transform:none;
  letter-spacing:-.04em;
  line-height:.92;
}
.wedding-dj-page .page-hero h1{font-size:clamp(3.7rem,8vw,7.3rem)}
.wedding-dj-page .wedding-section-head h2,
.wedding-dj-page .wedding-planning-copy h2,
.wedding-dj-page .wedding-faq h2{font-size:clamp(2.9rem,5.6vw,5.4rem)}
.wedding-dj-page .page-hero h1 span,
.wedding-dj-page .wedding-section-head h2 span,
.wedding-dj-page .wedding-planning-copy h2 span,
.wedding-dj-page .wedding-faq h2 span,
.wedding-dj-page .wedding-cta p span{color:var(--wedding-accent)!important}
.wedding-dj-page .hero-intro,
.wedding-dj-page .wedding-section-head>p,
.wedding-dj-page .wedding-pillars-grid p,
.wedding-dj-page .wedding-planning-copy>p:not(.eyebrow):not(.lead),
.wedding-dj-page .wedding-night-grid p,
.wedding-dj-page .wedding-faq details p{color:var(--wedding-muted)!important}
.wedding-dj-page .line-link{
  color:var(--wedding-ink)!important;
  border-bottom-color:rgba(198,161,104,.6)!important;
  letter-spacing:.11em;
}
.wedding-dj-page .line-link:hover,
.wedding-dj-page .line-link:focus-visible{color:#8f6d3a!important}
.wedding-dj-hero .line-link{color:#f4e9db!important;border-bottom-color:rgba(244,233,219,.82)!important}
.wedding-dj-hero .line-link:hover,.wedding-dj-hero .line-link:focus-visible{color:#fff7ee!important}
.wedding-dj-page .primary{
  color:var(--wedding-ink)!important;
  background:linear-gradient(135deg,#fffaf3 0,#f0dfc8 55%,#dec3a2 100%)!important;
  border:1px solid rgba(125,97,60,.14)!important;
  box-shadow:0 16px 38px rgba(89,64,35,.12)!important;
  letter-spacing:.09em;
}
.wedding-dj-page .primary:hover,
.wedding-dj-page .primary:focus-visible{
  box-shadow:0 22px 50px rgba(89,64,35,.16)!important;
  filter:brightness(1.02);
}
.wedding-dj-hero{
  min-height:790px;
  background:#1a1312!important;
}
.wedding-dj-hero::before{
  background:
    linear-gradient(90deg,rgba(25,18,17,.92) 0,rgba(25,18,17,.82) 34%,rgba(25,18,17,.44) 60%,rgba(25,18,17,.18) 86%),
    linear-gradient(0deg,rgba(25,18,17,.78) 0,rgba(25,18,17,.18) 42%,rgba(25,18,17,.06) 100%),
    url("photos/wedding-dj-reception.webp") 68% center/cover no-repeat!important;
  filter:saturate(1.02) contrast(1.02);
}
.wedding-dj-hero::after{
  background:
    radial-gradient(circle at 18% 22%,rgba(239,224,200,.14),transparent 25%),
    radial-gradient(circle at 86% 22%,rgba(184,142,165,.10),transparent 18%),
    linear-gradient(140deg,rgba(198,161,104,.06),transparent 38%,rgba(184,142,165,.08));
}
.wedding-dj-hero .page-hero-inner{max-width:820px;padding-bottom:clamp(64px,8vw,110px)}
.wedding-hero-note{margin:24px 0 0;color:#ebdfcf;font-size:.76rem;letter-spacing:.18em;text-transform:uppercase;font-weight:800}
.wedding-intro-strip{position:relative;z-index:2;background:var(--wedding-bg);padding:0 0 18px}
.wedding-intro-strip .wedding-shell{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:-46px}
.wedding-intro-strip article{
  padding:22px 24px;
  border:1px solid var(--wedding-rule);
  border-radius:20px;
  background:linear-gradient(180deg,rgba(255,250,244,.98),rgba(247,239,229,.96));
  box-shadow:0 24px 45px rgba(41,28,22,.08);
}
.wedding-intro-strip span{display:block;margin-bottom:10px;color:#9d7950;font-size:.62rem;letter-spacing:.16em;font-weight:900;text-transform:uppercase}
.wedding-intro-strip strong{display:block;color:var(--wedding-ink);font-size:1rem;line-height:1.45;font-weight:700}
.wedding-pillars-section,
.wedding-night-section,
.wedding-faq{
  background:var(--wedding-bg)!important;
  color:var(--wedding-ink)!important;
}
.wedding-pillars-section{padding-top:76px}
.wedding-pillars-section,
.wedding-night-section{
  border-top:1px solid rgba(116,93,73,.10);
}
.wedding-pillars-grid article,
.wedding-night-grid article{
  border:1px solid var(--wedding-rule)!important;
  border-radius:24px;
  box-shadow:0 24px 48px rgba(52,37,28,.07);
  background:linear-gradient(180deg,rgba(255,251,247,.98),rgba(247,239,230,.94))!important;
}
.wedding-pillars-grid article::before{height:3px;box-shadow:none;background:linear-gradient(90deg,var(--card-accent),rgba(255,255,255,0) 82%)!important}
.wedding-pillars-grid article>span{color:var(--card-accent)!important}
.wedding-pillars-grid h3,
.wedding-night-grid h3{
  color:var(--wedding-ink);
  text-transform:none;
  letter-spacing:-.03em;
  line-height:1.03;
  font-family:Georgia,"Times New Roman",serif;
}
.wedding-pillars-grid h3{margin-top:104px}
.wedding-pillars-grid .service-link{color:#8f6d3a!important;border-bottom-color:rgba(198,161,104,.55)!important}
.wedding-planning-feature{
  grid-template-columns:minmax(0,1fr) minmax(380px,.95fr);
  min-height:720px;
  background:linear-gradient(180deg,#f9f4ee 0,#f5eee6 100%);
  border-top:1px solid rgba(116,93,73,.10);
  border-bottom:1px solid rgba(116,93,73,.10);
}
.wedding-planning-photo{min-height:640px}
.wedding-planning-photo::after{background:linear-gradient(90deg,transparent 54%,rgba(246,240,232,.94) 100%),linear-gradient(0deg,rgba(255,252,247,.06),rgba(255,252,247,.06))}
.wedding-planning-copy{
  background:
    radial-gradient(circle at 18% 26%,rgba(198,161,104,.10),transparent 26%),
    radial-gradient(circle at 90% 18%,rgba(184,142,165,.08),transparent 18%),
    transparent;
}
.wedding-planning-copy .lead{color:#403531!important}
.wedding-photo-story{
  position:relative;
  overflow:hidden;
  padding:clamp(82px,8vw,118px) 0;
  background:linear-gradient(180deg,#281f1c 0,#1c1514 100%);
  color:#fff;
}
.wedding-photo-story::before{content:"";position:absolute;inset:-12% auto auto -10%;width:44%;height:60%;background:radial-gradient(circle,rgba(198,161,104,.15),transparent 68%);pointer-events:none}
.wedding-photo-story .wedding-section-head>p,
.wedding-photo-story .wedding-section-head h2,
.wedding-photo-story .wedding-section-head .eyebrow{position:relative;z-index:1}
.wedding-photo-story .wedding-section-head h2{color:#fff}
.wedding-photo-story .wedding-section-head>p{color:#d9ccc1!important}
.wedding-photo-story .eyebrow{color:#c9ae84!important}
.wedding-photo-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:20px}
.wedding-photo-card{position:relative;overflow:hidden;border-radius:26px;border:1px solid rgba(255,255,255,.12);background:#120e0d;box-shadow:0 28px 60px rgba(0,0,0,.22)}
.wedding-photo-card img{display:block;width:100%;height:100%;object-fit:cover}
.wedding-photo-card--first{min-height:520px}
.wedding-photo-card--late{min-height:520px}
.wedding-photo-card figcaption{position:absolute;left:24px;right:24px;bottom:24px;padding:20px 22px;border-radius:18px;background:linear-gradient(180deg,rgba(12,9,9,.38),rgba(12,9,9,.74));backdrop-filter:blur(8px)}
.wedding-photo-card figcaption span{display:block;margin-bottom:8px;color:#d4b27c;font-size:.62rem;font-weight:900;letter-spacing:.16em;text-transform:uppercase}
.wedding-photo-card figcaption strong{font-size:1.42rem;line-height:1.1;font-family:Georgia,"Times New Roman",serif}
.wedding-night-section{padding-top:88px;padding-bottom:118px}
.wedding-night-grid article:nth-child(2),
.wedding-night-grid article:nth-child(3){background:linear-gradient(180deg,rgba(251,246,240,.98),rgba(242,232,220,.96))!important}
.wedding-night-grid span{color:#9d7950!important;letter-spacing:.16em}
.wedding-night-grid h3{margin-top:64px}
.wedding-faq{padding:0 0 clamp(88px,8vw,118px)!important}
.wedding-faq .faq-home-inner{width:min(1180px,calc(100% - 48px));margin:auto;padding:clamp(84px,8vw,116px) clamp(26px,3vw,36px) 0;border-top:1px solid rgba(116,93,73,.12)}
.wedding-faq summary{color:var(--wedding-ink)!important}
.wedding-faq details{border-top-color:rgba(116,93,73,.14)!important}
.wedding-faq details:last-child{border-bottom-color:rgba(116,93,73,.14)!important}
.wedding-cta{
  background:linear-gradient(135deg,#2b211d 0,#59453a 52%,#b69068 140%)!important;
  color:#fff!important;
}
.wedding-cta .page-actions .line-link{color:#fff!important;border-bottom-color:rgba(240,223,198,.8)!important}
.wedding-cta .primary{background:linear-gradient(135deg,#fffaf4 0,#f2e1cb 60%,#e0c6a7 100%)!important}
@media(max-width:920px){
  .wedding-dj-page{background:linear-gradient(180deg,#1b1414 0 700px,var(--wedding-bg) 700px 100%)}
  .wedding-intro-strip .wedding-shell{grid-template-columns:1fr;gap:14px;margin-top:-34px}
  .wedding-planning-feature{grid-template-columns:1fr}
  .wedding-planning-photo::after{background:linear-gradient(0deg,#f7f0e8 0,rgba(247,240,232,.18) 40%,transparent 100%)}
  .wedding-photo-grid{grid-template-columns:1fr}
  .wedding-photo-card--first,.wedding-photo-card--late{min-height:420px}
}
@media(max-width:650px){
  .wedding-dj-page{background:linear-gradient(180deg,#1b1414 0 660px,var(--wedding-bg) 660px 100%)}
  .wedding-dj-hero{min-height:710px}
  .wedding-dj-hero::before{background:linear-gradient(0deg,rgba(25,18,17,.82) 0,rgba(25,18,17,.46) 52%,rgba(25,18,17,.18) 86%),linear-gradient(90deg,rgba(25,18,17,.76),rgba(25,18,17,.20)),url("photos/wedding-dj-reception.webp") 60% center/cover no-repeat!important}
  .wedding-hero-note{font-size:.68rem;line-height:1.55}
  .wedding-intro-strip{padding-bottom:0}
  .wedding-intro-strip article{padding:20px 20px 21px}
  .wedding-pillars-section{padding-top:54px}
  .wedding-pillars-grid article,
  .wedding-night-grid article{padding:26px 22px 28px;min-height:0}
  .wedding-pillars-grid h3{margin-top:74px}
  .wedding-planning-copy{padding:54px 20px 68px}
  .wedding-photo-card--first,.wedding-photo-card--late{min-height:340px}
  .wedding-faq .faq-home-inner{width:calc(100% - 40px);padding-top:66px}
}


/* V7.50 — Wedding booth style selector */
.wedding-booth-selector-section{
  position:relative;
  overflow:hidden;
  padding:clamp(84px,8vw,120px) 0;
  background:linear-gradient(180deg,#fbf6f0 0,#f6efe6 100%);
  border-top:1px solid rgba(116,93,73,.10);
  border-bottom:1px solid rgba(116,93,73,.10);
}
.wedding-booth-selector-section::before{
  content:"";position:absolute;inset:-10% auto auto -8%;width:38%;height:46%;
  background:radial-gradient(circle,rgba(198,161,104,.11),transparent 68%);pointer-events:none
}
.wedding-booth-selector-intro{position:relative;z-index:1;max-width:900px;margin:0 auto 34px;text-align:center}
.wedding-booth-selector-intro h2{
  margin:12px 0 18px;color:var(--wedding-ink);font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(2.9rem,5.5vw,5.1rem);line-height:.95;letter-spacing:-.04em
}
.wedding-booth-selector-intro h2 span{color:var(--wedding-accent)}
.wedding-booth-selector-intro .lead{max-width:860px;margin:0 auto;color:#5d524c;font-size:1.08rem;line-height:1.8}
.wedding-booth-selector-intro .supporting{margin:16px auto 0;color:#847469;line-height:1.7}
.wedding-booth-selector-visual{
  margin:0 auto;max-width:1160px;border-radius:28px;overflow:hidden;border:1px solid rgba(122,98,77,.16);
  background:linear-gradient(180deg,rgba(255,252,248,.98),rgba(244,236,227,.96));box-shadow:0 28px 60px rgba(52,37,28,.09)
}
.wedding-booth-selector-visual img{display:block;width:100%;height:auto}
.wedding-booth-selector-controls{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;max-width:1060px;margin:28px auto 0
}
.wedding-booth-selector-controls button{
  appearance:none;border:1px solid rgba(122,98,77,.18);background:linear-gradient(180deg,rgba(255,252,248,.96),rgba(245,236,226,.92));
  color:var(--wedding-ink);padding:17px 18px;border-radius:18px;font:inherit;font-weight:700;letter-spacing:.02em;cursor:pointer;
  box-shadow:0 14px 28px rgba(52,37,28,.06);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease,background .18s ease
}
.wedding-booth-selector-controls button:hover,.wedding-booth-selector-controls button:focus-visible{
  transform:translateY(-1px);box-shadow:0 18px 34px rgba(52,37,28,.09);border-color:rgba(176,131,77,.45);outline:none
}
.wedding-booth-selector-controls button.is-active{
  background:linear-gradient(180deg,#fffaf3 0,#f1e1cb 100%);border-color:rgba(176,131,77,.55);box-shadow:0 18px 36px rgba(96,71,43,.12)
}
.wedding-booth-selector-details{max-width:820px;margin:28px auto 0;text-align:center}
.wedding-booth-selector-details h3{margin:0 0 10px;color:var(--wedding-ink);font-family:Georgia,"Times New Roman",serif;font-size:clamp(2rem,3.4vw,2.8rem);line-height:1}
.wedding-booth-selector-details p{margin:0;color:#665851;line-height:1.8;font-size:1.03rem}
.wedding-booth-selector-cta{max-width:860px;margin:30px auto 0;text-align:center}
.wedding-booth-selector-cta .cta-title{margin:0 0 12px;color:var(--wedding-ink);font-family:Georgia,"Times New Roman",serif;font-size:clamp(1.6rem,2.8vw,2.2rem)}
.wedding-booth-selector-cta>p:not(.cta-title){margin:0 auto 18px;color:#6d5f58;line-height:1.8;max-width:760px}
.wedding-booth-selector-cta .page-actions{justify-content:center}
.wedding-dj-page .wedding-booth-selector-section .line-link{color:#8f6d3a!important}
@media(max-width:920px){
  .wedding-booth-selector-controls{grid-template-columns:repeat(2,minmax(0,1fr));max-width:760px}
  .wedding-booth-selector-section{padding:76px 0}
}
@media(max-width:650px){
  .wedding-booth-selector-section{padding:64px 0}
  .wedding-booth-selector-visual{border-radius:22px}
  .wedding-booth-selector-controls{grid-template-columns:1fr;gap:12px;margin-top:22px}
  .wedding-booth-selector-controls button{padding:15px 16px}
  .wedding-booth-selector-details,.wedding-booth-selector-cta{margin-top:22px}
}


/* V7.51 — Interactive wedding lighting colour preview */
.wedding-booth-selector-visual{position:relative;isolation:isolate}
#wedding-booth-style-image{position:relative;z-index:1}
#wedding-booth-lighting-overlay{
  position:absolute;inset:0;z-index:2;width:100%;height:100%;pointer-events:none;
  mix-blend-mode:multiply;
}
.wedding-lighting-selector{max-width:1060px;margin:32px auto 0;padding:28px;border:1px solid rgba(122,98,77,.15);border-radius:24px;background:rgba(255,252,248,.72);box-shadow:0 18px 38px rgba(52,37,28,.055)}
.wedding-lighting-selector-head{display:grid;grid-template-columns:minmax(180px,.34fr) minmax(0,1fr);gap:28px;align-items:end;margin-bottom:20px}
.wedding-lighting-selector-head .eyebrow{margin:0!important}
.wedding-lighting-selector-head>p:last-child{margin:0;color:#75665e;line-height:1.65}
.wedding-lighting-selector-controls{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px}
.wedding-lighting-selector-controls button,.wedding-lighting-custom{
  min-height:58px;display:flex;align-items:center;gap:10px;padding:12px 14px;border:1px solid rgba(122,98,77,.16);border-radius:16px;
  background:#fffaf5;color:var(--wedding-ink);font:inherit;font-size:.86rem;font-weight:750;cursor:pointer;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease,background .18s ease
}
.wedding-lighting-selector-controls button:hover,.wedding-lighting-selector-controls button:focus-visible,.wedding-lighting-custom:hover,.wedding-lighting-custom:focus-within{transform:translateY(-1px);border-color:rgba(176,131,77,.45);box-shadow:0 12px 24px rgba(52,37,28,.08);outline:none}
.wedding-lighting-selector-controls button.is-active,.wedding-lighting-custom.is-active{border-color:rgba(176,131,77,.58);background:linear-gradient(180deg,#fff8ef,#f1e1cb);box-shadow:0 12px 28px rgba(96,71,43,.10)}
.lighting-swatch{width:22px;height:22px;flex:0 0 22px;border-radius:50%;background:var(--swatch);border:1px solid rgba(53,40,31,.16);box-shadow:inset 0 0 0 2px rgba(255,255,255,.65),0 2px 6px rgba(52,37,28,.10)}
.wedding-lighting-custom{justify-content:space-between}
.wedding-lighting-custom input[type="color"]{width:30px;height:30px;padding:0;border:0;border-radius:50%;overflow:hidden;background:transparent;cursor:pointer}
.wedding-lighting-custom input[type="color"]::-webkit-color-swatch-wrapper{padding:0}
.wedding-lighting-custom input[type="color"]::-webkit-color-swatch{border:1px solid rgba(53,40,31,.16);border-radius:50%}
.wedding-lighting-custom input[type="color"]::-moz-color-swatch{border:1px solid rgba(53,40,31,.16);border-radius:50%}
.wedding-lighting-status{margin:13px 0 0!important;color:#9d7950!important;font-size:.72rem!important;font-weight:900!important;letter-spacing:.13em;text-transform:uppercase}
@media(max-width:920px){
  .wedding-lighting-selector-controls{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:650px){
  .wedding-lighting-selector{margin-top:24px;padding:20px;border-radius:20px}
  .wedding-lighting-selector-head{grid-template-columns:1fr;gap:10px}
  .wedding-lighting-selector-controls{grid-template-columns:1fr}
}


/* V7.52 — refined wedding booth demo with stronger colour rendering and side layout */
.wedding-booth-selector-section .wedding-shell{
  display:grid;
  grid-template-columns:minmax(0,1.06fr) minmax(360px,420px);
  grid-template-areas:
    "intro intro"
    "visual booth"
    "visual lighting"
    "visual ambience"
    "visual details"
    "visual cta";
  gap:22px 30px;
  align-items:start;
}
.wedding-booth-selector-intro{grid-area:intro;max-width:980px;margin:0 auto 6px}
.wedding-booth-selector-intro h2{font-size:clamp(2.55rem,4.2vw,4.2rem)}
.wedding-booth-selector-intro .lead{font-size:1.02rem;line-height:1.72}
.wedding-booth-selector-intro .supporting{margin-top:10px;font-size:.98rem}
.wedding-booth-selector-visual{grid-area:visual;max-width:none;margin:0}
#wedding-booth-style-image,#wedding-booth-lighting-overlay{display:block;width:100%;height:auto}
#wedding-booth-lighting-overlay{position:absolute;inset:0;z-index:2;pointer-events:none;mix-blend-mode:normal;opacity:1}
.wedding-booth-selector-section.is-enhanced #wedding-booth-style-image{opacity:0}
.wedding-booth-selector-controls{grid-area:booth;grid-template-columns:repeat(2,minmax(0,1fr));max-width:none;margin:0}
.wedding-lighting-selector{grid-area:lighting;max-width:none;margin:0;padding:22px 22px 18px;border-radius:22px}
.wedding-ambience-selector{grid-area:ambience;max-width:none;margin:0;padding:18px 18px 16px;border:1px solid rgba(147,111,67,.18);border-radius:20px;background:linear-gradient(120deg,rgba(255,255,255,.84),rgba(255,250,243,.76) 46%,rgba(234,219,198,.50)),#fffaf4;box-shadow:0 18px 36px rgba(60,43,31,.055),inset 0 1px 0 rgba(255,255,255,.9)}
.wedding-ambience-selector-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:12px}
.wedding-ambience-selector-label{margin:0;font-size:.8rem;letter-spacing:.18em;text-transform:uppercase;color:#a47d49;font-weight:700}
.wedding-ambience-selector-hint{margin:0;color:#75665e;font-size:.84rem;line-height:1.45;text-align:right}
.wedding-ambience-selector-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.wedding-ambience-selector-controls button{min-height:52px;padding:12px 10px;border:1px solid rgba(147,111,67,.20);border-radius:14px;background:rgba(255,250,245,.7);font-size:.9rem;font-weight:600;letter-spacing:.01em;color:#352b23;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease,background .2s ease}
.wedding-ambience-selector-controls button:hover,.wedding-ambience-selector-controls button:focus-visible{transform:translateY(-1px);border-color:rgba(176,131,77,.45);box-shadow:0 12px 24px rgba(52,37,28,.08);outline:none}
.wedding-ambience-selector-controls button.is-active{border-color:rgba(167,124,68,.52);background:linear-gradient(135deg,#fffdf8 0%,#f4e7d5 55%,#e6d0ae 100%);box-shadow:0 12px 28px rgba(101,72,39,.095),inset 0 1px 0 rgba(255,255,255,.95)}
.wedding-ambience-copy{margin:12px 0 0;color:#6a5d55;font-size:.92rem;line-height:1.58}
.wedding-lighting-selector-head{grid-template-columns:1fr;gap:8px;align-items:start;margin-bottom:16px}
.wedding-lighting-selector-head>p:last-child{font-size:.96rem;line-height:1.55}
.wedding-lighting-selector-controls{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.wedding-lighting-selector-controls button,.wedding-lighting-custom{min-height:54px;font-size:.85rem}
.wedding-booth-selector-details{grid-area:details;max-width:none;margin:0;text-align:left;padding:4px 2px 0}
.wedding-booth-selector-details h3{font-size:clamp(1.85rem,2vw,2.35rem);margin-bottom:8px}
.wedding-booth-selector-details p{font-size:.98rem;line-height:1.7}
.wedding-booth-selector-cta{grid-area:cta;max-width:none;margin:0;text-align:left;padding:0 2px}
.wedding-booth-selector-cta .cta-title{font-size:clamp(1.4rem,1.8vw,1.9rem);margin-bottom:8px}
.wedding-booth-selector-cta>p:not(.cta-title){margin:0 0 14px;max-width:none;font-size:.97rem;line-height:1.7}
.wedding-booth-selector-cta .page-actions{justify-content:flex-start;gap:10px;flex-wrap:wrap}
.wedding-lighting-status{margin-top:10px!important}
@media(max-width:1080px){
  .wedding-booth-selector-section .wedding-shell{
    grid-template-columns:1fr;
    grid-template-areas:
      "intro"
      "visual"
      "ambience"
      "booth"
      "lighting"
      "details"
      "cta";
  }
  .wedding-booth-selector-visual{max-width:960px;margin:0 auto}
  .wedding-booth-selector-controls,.wedding-lighting-selector,.wedding-ambience-selector,.wedding-booth-selector-details,.wedding-booth-selector-cta{max-width:960px;width:100%;margin-left:auto;margin-right:auto}
  .wedding-booth-selector-details,.wedding-booth-selector-cta{text-align:center;padding-left:0;padding-right:0}
  .wedding-booth-selector-cta .page-actions{justify-content:center}
}
@media(max-width:760px){
  .wedding-booth-selector-intro h2{font-size:clamp(2.2rem,9vw,3rem)}
  .wedding-booth-selector-controls,.wedding-lighting-selector-controls{grid-template-columns:1fr}
  .wedding-lighting-selector{padding:20px 18px 18px}
  .wedding-ambience-selector-head{display:block}
  .wedding-ambience-selector-hint{text-align:left;margin-top:4px}
  .wedding-ambience-selector-controls{grid-template-columns:1fr}
}


/* V7.55 — Wedding hero blend and intro-card breathing room */
.wedding-dj-page .wedding-dj-hero::before{
  background:
    linear-gradient(0deg,
      var(--wedding-bg) 0%,
      rgba(246,240,232,.96) 5%,
      rgba(246,240,232,.68) 11%,
      rgba(246,240,232,.24) 18%,
      rgba(246,240,232,0) 29%),
    linear-gradient(90deg,rgba(25,18,17,.92) 0,rgba(25,18,17,.82) 34%,rgba(25,18,17,.44) 60%,rgba(25,18,17,.18) 86%),
    linear-gradient(0deg,rgba(25,18,17,.55) 0,rgba(25,18,17,.12) 42%,rgba(25,18,17,.06) 100%),
    url("photos/wedding-dj-reception.webp") 68% center/cover no-repeat!important;
}
.wedding-dj-page .wedding-intro-strip article{
  padding-top:32px;
  padding-bottom:28px;
}
@media(max-width:650px){
  .wedding-dj-page .wedding-dj-hero::before{
    background:
      linear-gradient(0deg,
        var(--wedding-bg) 0%,
        rgba(246,240,232,.96) 5%,
        rgba(246,240,232,.62) 12%,
        rgba(246,240,232,.18) 20%,
        rgba(246,240,232,0) 31%),
      linear-gradient(0deg,rgba(25,18,17,.72) 0,rgba(25,18,17,.42) 52%,rgba(25,18,17,.18) 86%),
      linear-gradient(90deg,rgba(25,18,17,.76),rgba(25,18,17,.20)),
      url("photos/wedding-dj-reception.webp") 60% center/cover no-repeat!important;
  }
  .wedding-dj-page .wedding-intro-strip article{
    padding-top:28px;
    padding-bottom:24px;
  }
}


/* V7.57 — smooth 0.5s fade for wedding booth selector */
.wedding-booth-selector-visual{position:relative;overflow:hidden}
.wedding-booth-style-image{display:block;width:100%;height:auto;transition:opacity .5s ease;will-change:opacity}
.wedding-booth-style-image--active{position:relative;z-index:1;opacity:0}
.wedding-booth-style-image--active.is-visible{opacity:1}
.wedding-booth-style-image--overlay{position:absolute;inset:0;z-index:2;opacity:0;pointer-events:none}
.wedding-booth-style-image--overlay.is-visible{opacity:1}


/* V7.58 — plain-white lighting preview only */
@media(min-width:1081px){
  .wedding-booth-selector-section .wedding-shell{
    grid-template-areas:
      "intro intro"
      "visual lighting"
      "visual details"
      "visual cta";
  }
}


/* V7.59 — wedding booth style overlays over the 7 lighting renders */
@media(min-width:1081px){
  .wedding-booth-selector-section .wedding-shell{
    grid-template-areas:
      "intro intro"
      "visual booth"
      "visual lighting"
      "visual details"
      "visual cta";
  }
}
.wedding-booth-selector-controls{align-self:start}
.wedding-booth-selector-visual{position:relative;overflow:hidden}
.wedding-booth-base-image,
.wedding-booth-front-image{
  display:block;
  width:100%;
  height:auto;
  transition:opacity .5s ease;
  will-change:opacity;
}
#wedding-booth-style-image.wedding-booth-base-image--active{position:relative;z-index:1;opacity:0!important}
#wedding-booth-style-image.wedding-booth-base-image--active.is-visible{opacity:1!important}
.wedding-booth-base-image--swap{position:absolute;inset:0;z-index:2;opacity:0;pointer-events:none}
.wedding-booth-base-image--swap.is-visible{opacity:1}
.wedding-booth-front-image{position:absolute;inset:0;pointer-events:none}
.wedding-booth-front-image--active{z-index:3;opacity:0}
.wedding-booth-front-image--active.is-visible{opacity:1}
.wedding-booth-front-image--swap{z-index:4;opacity:0}
.wedding-booth-front-image--swap.is-visible{opacity:1}
.wedding-booth-selector-details .wedding-lighting-status{margin-top:12px!important}

/* V7.63 — lock wedding booth selector layers to one exact 3:2 pixel frame */
.wedding-booth-selector-visual{
  aspect-ratio:3 / 2;
}
.wedding-booth-selector-visual .wedding-booth-base-image,
.wedding-booth-selector-visual .wedding-booth-front-image{
  width:100%;
  height:100%;
  object-fit:fill;
  object-position:50% 50%;
}
.wedding-booth-selector-visual .wedding-booth-base-image,
.wedding-booth-selector-visual .wedding-booth-front-image{filter:var(--wedding-ambience-filter,brightness(1) saturate(1) contrast(1));transition:opacity .5s ease,filter .35s ease}
.wedding-booth-ambience-effects{position:absolute;inset:0;z-index:5;pointer-events:none;border-radius:inherit;overflow:hidden}
.wedding-booth-ambience-layer{position:absolute;inset:0;opacity:0;transition:opacity .35s ease,transform .6s ease}
.wedding-booth-ambience-wash{mix-blend-mode:soft-light}
.wedding-booth-ambience-beams,.wedding-booth-ambience-glow,.wedding-booth-ambience-floor-spots{mix-blend-mode:screen}
.wedding-booth-ambience-floor-spots{inset:auto 4% 0 4%;height:42%;filter:blur(.15px)}

.wedding-booth-selector-visual[data-ambience="reception"]{--wedding-ambience-filter:brightness(1.02) saturate(.98) contrast(1)}
.wedding-booth-selector-visual[data-ambience="reception"] .wedding-booth-ambience-wash{opacity:.24;background:radial-gradient(circle at 50% 20%,rgba(255,244,223,.26),transparent 40%),linear-gradient(180deg,rgba(255,255,255,.10),rgba(115,84,55,.03) 100%)}
.wedding-booth-selector-visual[data-ambience="reception"] .wedding-booth-ambience-beams{opacity:.11;background:radial-gradient(ellipse 22% 54% at 23% 14%,rgba(255,252,244,.24),transparent 71%),radial-gradient(ellipse 22% 54% at 77% 14%,rgba(255,252,244,.24),transparent 71%)}
.wedding-booth-selector-visual[data-ambience="reception"] .wedding-booth-ambience-glow{opacity:.08;background:radial-gradient(ellipse 42% 18% at 50% 100%,rgba(255,226,181,.12),transparent 74%)}
.wedding-booth-selector-visual[data-ambience="reception"] .wedding-booth-ambience-floor-spots{opacity:0}

.wedding-booth-selector-visual[data-ambience="first-dance"]{--wedding-ambience-filter:brightness(.88) saturate(1.01) contrast(1.04)}
.wedding-booth-selector-visual[data-ambience="first-dance"] .wedding-booth-ambience-wash{opacity:.66;background:radial-gradient(circle at 50% 33%,rgba(255,236,203,.56),transparent 30%),radial-gradient(circle at 50% 82%,rgba(255,202,142,.20),transparent 20%),linear-gradient(180deg,rgba(39,24,18,.24) 0%,rgba(39,24,18,.05) 28%,rgba(24,14,10,.22) 100%)}
.wedding-booth-selector-visual[data-ambience="first-dance"] .wedding-booth-ambience-beams{opacity:.34;background:radial-gradient(ellipse 24% 52% at 24% 14%,rgba(255,248,228,.22),transparent 72%),radial-gradient(ellipse 24% 52% at 76% 14%,rgba(255,247,225,.22),transparent 72%),radial-gradient(circle at 50% 46%,rgba(255,224,176,.24),transparent 18%)}
.wedding-booth-selector-visual[data-ambience="first-dance"] .wedding-booth-ambience-glow{opacity:.42;background:radial-gradient(circle at 50% 50%,rgba(255,241,221,.20),transparent 18%),radial-gradient(circle at 50% 92%,rgba(255,192,112,.22),transparent 26%),radial-gradient(ellipse 52% 16% at 50% 100%,rgba(255,214,156,.16),transparent 66%)}
.wedding-booth-selector-visual[data-ambience="first-dance"] .wedding-booth-ambience-floor-spots{opacity:.08;background:radial-gradient(ellipse 10% 12% at 50% 76%,rgba(255,222,189,.20),transparent 68%)}

.wedding-booth-selector-visual[data-ambience="party"]{--wedding-ambience-filter:brightness(.98) saturate(1.14) contrast(1.05)}
.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-wash{opacity:.58;background:linear-gradient(180deg,rgba(13,9,24,.24) 0%,rgba(18,11,26,.06) 34%,rgba(11,8,18,.20) 100%),radial-gradient(circle at 18% 52%,rgba(192,112,255,.22),transparent 24%),radial-gradient(circle at 82% 52%,rgba(192,112,255,.20),transparent 24%),radial-gradient(circle at 50% 22%,rgba(255,205,145,.10),transparent 18%),radial-gradient(circle at 50% 88%,rgba(98,188,255,.08),transparent 24%)}
.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-beams{opacity:.96;background:radial-gradient(ellipse 12% 52% at 22% 14%,rgba(77,184,255,.96),transparent 72%),radial-gradient(ellipse 12% 52% at 78% 14%,rgba(77,184,255,.94),transparent 72%),radial-gradient(ellipse 18% 14% at 22% 13%,rgba(167,228,255,.42),transparent 64%),radial-gradient(ellipse 18% 14% at 78% 13%,rgba(167,228,255,.40),transparent 64%)}
.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-glow{opacity:.66;background:radial-gradient(circle at 26% 62%,rgba(255,95,206,.30),transparent 11%),radial-gradient(circle at 74% 62%,rgba(255,95,206,.28),transparent 11%),radial-gradient(circle at 18% 52%,rgba(173,102,255,.18),transparent 24%),radial-gradient(circle at 82% 52%,rgba(173,102,255,.16),transparent 24%),radial-gradient(circle at 50% 66%,rgba(208,170,255,.12),transparent 18%),radial-gradient(ellipse 55% 18% at 50% 100%,rgba(118,196,255,.12),transparent 70%);animation:weddingPartyAmbienceFloat 14s ease-in-out infinite alternate}
.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-floor-spots{opacity:.82;background:radial-gradient(ellipse 26% 10% at 50% 88%,rgba(120,212,255,.18),transparent 72%),radial-gradient(circle at 50% 85%,rgba(191,236,255,.72),transparent 4.6%),radial-gradient(ellipse 11% 5.2% at 50% 76%,rgba(191,236,255,.56),transparent 72%),radial-gradient(ellipse 11% 5.2% at 61% 80%,rgba(191,236,255,.52),transparent 72%),radial-gradient(ellipse 11% 5.2% at 69% 87%,rgba(191,236,255,.48),transparent 72%),radial-gradient(ellipse 11% 5.2% at 61% 94%,rgba(191,236,255,.52),transparent 72%),radial-gradient(ellipse 11% 5.2% at 50% 98%,rgba(191,236,255,.56),transparent 72%),radial-gradient(ellipse 11% 5.2% at 39% 94%,rgba(191,236,255,.52),transparent 72%),radial-gradient(ellipse 11% 5.2% at 31% 87%,rgba(191,236,255,.48),transparent 72%),radial-gradient(ellipse 11% 5.2% at 39% 80%,rgba(191,236,255,.52),transparent 72%),radial-gradient(ellipse 10% 4.5% at 50% 87%,rgba(160,220,255,.36),transparent 72%);animation:weddingPartyFloorDrift 15s ease-in-out infinite alternate,weddingPartyFloorPulse 8.4s ease-in-out infinite}
@keyframes weddingPartyAmbienceFloat{from{transform:translate3d(-.5%,0,0) scale(1)}to{transform:translate3d(.5%,-.4%,0) scale(1.016)}}
@keyframes weddingPartyFloorDrift{from{transform:translate3d(-.3%,0,0) scale(1)}to{transform:translate3d(.4%,-.25%,0) scale(1.01)}}
@keyframes weddingPartyFloorPulse{0%{opacity:.74}50%{opacity:.86}100%{opacity:.78}}
@media (prefers-reduced-motion:reduce){.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-glow,.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-floor-spots{animation:none}}
.wedding-ambience-status,.wedding-setup-summary{margin-top:10px!important}
.wedding-setup-summary{font-size:.95rem;color:#7a613f;font-weight:600}

/* V7.64 — booth-front artwork normalised to the Plain White booth panel geometry.
   The three transparent front assets are pre-warped to the same panel corners,
   so no per-style CSS crop/scale adjustment is required. */


/* V7.65 — never render source-less selector layers. Chrome/Safari can show a
   broken-image glyph at the top-left of a sized <img> with no source. */
.wedding-booth-selector-visual .wedding-booth-base-image--swap:not([src]),
.wedding-booth-selector-visual .wedding-booth-front-image:not([src]),
.wedding-booth-selector-visual .wedding-booth-base-image--swap[hidden],
.wedding-booth-selector-visual .wedding-booth-front-image[hidden]{
  display:none!important;
}

/* V7.72 — show the full wedding planning image on stacked/mobile layouts */
@media(max-width:920px){
  .wedding-planning-photo{
    min-height:0;
    aspect-ratio:1672 / 941;
    background:#ebe4da;
  }
  .wedding-planning-photo::after{
    background:linear-gradient(0deg,rgba(5,6,9,.26) 0,rgba(5,6,9,.08) 20%,transparent 52%);
  }
  .wedding-planning-photo img{
    width:100%;
    height:auto;
    object-fit:contain;
    object-position:center center;
    display:block;
  }
}

/* V7.73 — Luxury ivory-silk wedding refinement */
.wedding-dj-page{
  --wedding-bg:#f5efe7;
  --wedding-surface:#fffaf3;
  --wedding-surface-2:#eee3d5;
  --wedding-ink:#241c18;
  --wedding-muted:#6c625a;
  --wedding-accent:#c6a36b;
  --wedding-accent-soft:#dfcaa8;
  --wedding-rule:rgba(128,98,64,.18);
}
.wedding-dj-page .topbar{
  border-bottom:1px solid rgba(229,205,170,.14);
  box-shadow:0 12px 38px rgba(0,0,0,.10);
}
.wedding-dj-page .wedding-dj-hero{
  box-shadow:inset 0 -1px rgba(199,166,112,.20);
}
.wedding-dj-page .wedding-dj-hero::after{
  background:
    radial-gradient(ellipse 54% 48% at 17% 24%,rgba(255,247,232,.16),transparent 68%),
    radial-gradient(ellipse 38% 34% at 83% 21%,rgba(221,194,157,.08),transparent 70%),
    linear-gradient(118deg,rgba(236,213,178,.07) 0,transparent 31%,rgba(255,245,228,.055) 47%,transparent 66%),
    linear-gradient(140deg,rgba(198,161,104,.05),transparent 38%,rgba(184,142,165,.055));
}
.wedding-dj-page .wedding-dj-hero h1{
  text-shadow:0 3px 24px rgba(0,0,0,.22);
}
.wedding-dj-page .wedding-dj-hero h1 span{
  color:#e0c391!important;
  text-shadow:0 0 28px rgba(218,187,137,.14);
}

/* Fine directional sheen + near-invisible weave. Kept intentionally low contrast. */
.wedding-dj-page .wedding-intro-strip,
.wedding-dj-page .wedding-pillars-section,
.wedding-dj-page .wedding-night-section,
.wedding-dj-page .wedding-faq,
.wedding-dj-page .wedding-booth-selector-section{
  background:
    linear-gradient(116deg,rgba(255,255,255,.48) 0%,rgba(255,255,255,.06) 19%,rgba(205,179,143,.055) 34%,rgba(255,255,255,.25) 49%,rgba(255,255,255,.04) 68%,rgba(203,173,132,.045) 84%,rgba(255,255,255,.20) 100%),
    repeating-linear-gradient(14deg,rgba(91,70,50,.014) 0 1px,transparent 1px 7px),
    repeating-linear-gradient(104deg,rgba(255,255,255,.13) 0 1px,transparent 1px 9px),
    linear-gradient(180deg,#faf6f0 0%,#f3ebe1 100%)!important;
}
.wedding-dj-page .wedding-pillars-section,
.wedding-dj-page .wedding-night-section,
.wedding-dj-page .wedding-booth-selector-section{
  border-top-color:rgba(150,117,77,.13)!important;
  border-bottom-color:rgba(150,117,77,.10)!important;
}
.wedding-dj-page .wedding-section-head h2,
.wedding-dj-page .wedding-planning-copy h2,
.wedding-dj-page .wedding-booth-selector-intro h2,
.wedding-dj-page .wedding-faq h2{
  text-wrap:balance;
}
.wedding-dj-page .eyebrow{
  color:#a47d49!important;
}

/* Pearl-silk cards with a restrained champagne rim. */
.wedding-dj-page .wedding-intro-strip article,
.wedding-dj-page .wedding-pillars-grid article,
.wedding-dj-page .wedding-night-grid article,
.wedding-dj-page .wedding-proof-grid article{
  border-color:rgba(151,116,72,.22)!important;
  background:
    linear-gradient(118deg,rgba(255,255,255,.86),rgba(255,252,247,.58) 28%,rgba(222,202,174,.10) 47%,rgba(255,252,247,.62) 68%,rgba(246,236,224,.88)),
    repeating-linear-gradient(17deg,rgba(92,69,48,.012) 0 1px,transparent 1px 8px),
    linear-gradient(180deg,#fffdf9 0%,#f4eadf 100%)!important;
  box-shadow:
    0 24px 54px rgba(62,44,30,.075),
    inset 0 1px 0 rgba(255,255,255,.92),
    inset 0 -1px 0 rgba(166,130,86,.06)!important;
}
.wedding-dj-page .wedding-intro-strip article{
  box-shadow:0 24px 50px rgba(55,39,28,.075),inset 0 1px 0 rgba(255,255,255,.94)!important;
}
.wedding-dj-page .wedding-pillars-grid article::before{
  height:2px;
  background:linear-gradient(90deg,rgba(194,157,99,.96),rgba(226,207,176,.70) 48%,transparent 92%)!important;
}
.wedding-dj-page .wedding-pillars-grid article>span,
.wedding-dj-page .wedding-night-grid span,
.wedding-dj-page .wedding-intro-strip span{
  color:#9b7545!important;
}

/* Planning section — brighter ivory silk panel while retaining the full mobile image. */
.wedding-dj-page .wedding-planning-feature{
  background:
    linear-gradient(116deg,rgba(255,255,255,.50),rgba(255,255,255,.04) 30%,rgba(207,178,139,.055) 47%,rgba(255,255,255,.20) 68%,rgba(255,255,255,.03)),
    repeating-linear-gradient(16deg,rgba(84,64,47,.012) 0 1px,transparent 1px 8px),
    linear-gradient(180deg,#fbf7f1 0%,#f1e8dd 100%)!important;
  border-top-color:rgba(146,112,70,.13)!important;
  border-bottom-color:rgba(146,112,70,.13)!important;
}
.wedding-dj-page .wedding-planning-copy{
  position:relative;
  background:
    radial-gradient(circle at 14% 18%,rgba(210,177,125,.12),transparent 24%),
    linear-gradient(120deg,rgba(255,255,255,.38),transparent 38%,rgba(213,187,150,.045) 52%,transparent 70%)!important;
  border-left:1px solid rgba(157,121,76,.12);
}
.wedding-dj-page .wedding-planning-copy::after{
  content:"";
  position:absolute;
  inset:18px;
  border:1px solid rgba(171,134,85,.075);
  border-radius:26px;
  pointer-events:none;
}
.wedding-dj-page .wedding-planning-photo{
  box-shadow:inset -20px 0 45px rgba(246,240,232,.10);
}

/* Dark silk/satin photo-story section. */
.wedding-dj-page .wedding-photo-story{
  background:
    linear-gradient(116deg,rgba(255,255,255,.018),transparent 25%,rgba(207,170,116,.045) 43%,transparent 62%,rgba(255,255,255,.015)),
    repeating-linear-gradient(9deg,rgba(255,255,255,.009) 0 1px,transparent 1px 8px),
    linear-gradient(180deg,#2b211d 0%,#17110f 100%)!important;
}
.wedding-dj-page .wedding-photo-story::before{
  background:radial-gradient(ellipse,rgba(210,175,119,.17),transparent 69%)!important;
}
.wedding-dj-page .wedding-photo-card{
  border-color:rgba(229,205,169,.18);
  box-shadow:0 30px 68px rgba(0,0,0,.27),inset 0 1px 0 rgba(255,255,255,.06);
}
.wedding-dj-page .wedding-photo-card figcaption{
  border:1px solid rgba(238,220,194,.13);
  background:linear-gradient(180deg,rgba(22,16,14,.34),rgba(18,13,12,.76));
  box-shadow:0 16px 34px rgba(0,0,0,.15);
}
.wedding-dj-page .wedding-photo-card figcaption span{
  color:#dfbf8c;
}

/* Booth selector gets the same ivory-linen polish, without touching image alignment. */
.wedding-dj-page .wedding-booth-selector-visual{
  border-color:rgba(150,114,70,.20);
  box-shadow:0 30px 68px rgba(61,43,30,.10),inset 0 1px 0 rgba(255,255,255,.88);
}
.wedding-dj-page .wedding-booth-selector-controls button,
.wedding-dj-page .wedding-lighting-selector,
.wedding-dj-page .wedding-ambience-selector,
.wedding-dj-page .wedding-lighting-selector-controls button,
.wedding-dj-page .wedding-ambience-selector-controls button,
.wedding-dj-page .wedding-lighting-custom{
  border-color:rgba(147,111,67,.20);
  background:
    linear-gradient(120deg,rgba(255,255,255,.82),rgba(255,250,243,.78) 46%,rgba(234,219,198,.58)),
    #fffaf4;
}
.wedding-dj-page .wedding-lighting-selector{
  box-shadow:0 22px 46px rgba(60,43,31,.065),inset 0 1px 0 rgba(255,255,255,.9);
}
.wedding-dj-page .wedding-booth-selector-controls button.is-active,
.wedding-dj-page .wedding-lighting-selector-controls button.is-active,
.wedding-dj-page .wedding-ambience-selector-controls button.is-active,
.wedding-dj-page .wedding-lighting-custom.is-active{
  background:linear-gradient(135deg,#fffdf8 0%,#f4e7d5 55%,#e6d0ae 100%)!important;
  border-color:rgba(167,124,68,.52)!important;
  box-shadow:0 16px 34px rgba(101,72,39,.105),inset 0 1px 0 rgba(255,255,255,.95)!important;
}

/* FAQ and final CTA — quieter editorial finish. */
.wedding-dj-page .wedding-faq .faq-home-inner{
  border-top-color:rgba(151,116,72,.18);
}
.wedding-dj-page .wedding-faq details{
  transition:background .2s ease,border-color .2s ease;
}
.wedding-dj-page .wedding-faq details[open]{
  background:linear-gradient(90deg,rgba(255,255,255,.26),rgba(225,207,181,.09),rgba(255,255,255,.16));
}
.wedding-dj-page .wedding-cta{
  position:relative;
  overflow:hidden;
  background:
    linear-gradient(118deg,rgba(255,244,224,.07) 0,transparent 27%,rgba(238,211,171,.10) 43%,transparent 62%,rgba(255,255,255,.04)),
    repeating-linear-gradient(12deg,rgba(255,255,255,.012) 0 1px,transparent 1px 9px),
    linear-gradient(135deg,#241b18 0%,#544135 52%,#9d7954 135%)!important;
}
.wedding-dj-page .wedding-cta::before{
  content:"";
  position:absolute;
  inset:-20% -10%;
  background:radial-gradient(ellipse at 72% 42%,rgba(244,220,185,.11),transparent 48%);
  pointer-events:none;
}
.wedding-dj-page .wedding-cta>*{position:relative;z-index:1}
.wedding-dj-page .primary{
  box-shadow:0 16px 38px rgba(75,51,29,.13),inset 0 1px 0 rgba(255,255,255,.88)!important;
}

@media(max-width:920px){
  .wedding-dj-page .wedding-planning-copy{
    border-left:0;
    border-top:1px solid rgba(157,121,76,.10);
  }
}
@media(max-width:650px){
  .wedding-dj-page .wedding-intro-strip,
  .wedding-dj-page .wedding-pillars-section,
  .wedding-dj-page .wedding-night-section,
  .wedding-dj-page .wedding-faq,
  .wedding-dj-page .wedding-booth-selector-section{
    background:
      linear-gradient(116deg,rgba(255,255,255,.38),rgba(255,255,255,.03) 28%,rgba(205,179,143,.04) 48%,rgba(255,255,255,.14) 70%),
      repeating-linear-gradient(14deg,rgba(91,70,50,.010) 0 1px,transparent 1px 8px),
      linear-gradient(180deg,#faf6f0 0%,#f3ebe1 100%)!important;
  }
  .wedding-dj-page .wedding-planning-copy::after{inset:12px;border-radius:20px}
  .wedding-dj-page .wedding-photo-card{box-shadow:0 22px 48px rgba(0,0,0,.24)}
}

/* V7.74 — mobile booth selector: keep the live preview in view while choosing options.
   Desktop/tablet-wide layout is intentionally unchanged. */
@media(max-width:760px){
  .wedding-dj-page .wedding-booth-selector-section{
    overflow:visible;
  }
  .wedding-dj-page .wedding-booth-selector-section .wedding-shell{
    row-gap:14px;
  }
  .wedding-dj-page .wedding-booth-selector-visual{
    position:sticky;
    top:88px;
    z-index:24;
    width:100%;
    max-width:560px;
    margin:0 auto 4px;
    border-radius:18px;
    box-shadow:0 18px 42px rgba(61,43,30,.16),0 0 0 1px rgba(255,255,255,.62);
  }
  .wedding-dj-page .wedding-booth-selector-controls{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
    margin-top:0;
  }
  .wedding-dj-page .wedding-booth-selector-controls button{
    min-height:46px;
    padding:11px 9px;
    border-radius:14px;
    font-size:.82rem;
  }
  .wedding-dj-page .wedding-lighting-selector{
    margin-top:0;
    padding:14px 12px 12px;
    border-radius:17px;
  }
  .wedding-dj-page .wedding-lighting-selector-head{
    margin-bottom:10px;
    gap:4px;
  }
  .wedding-dj-page .wedding-lighting-selector-head>p:last-child{
    margin:0;
    font-size:.84rem;
    line-height:1.45;
  }
  .wedding-dj-page .wedding-lighting-selector-controls{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
  }
  .wedding-dj-page .wedding-lighting-selector-controls button,
  .wedding-dj-page .wedding-lighting-custom{
    min-height:46px;
    padding:10px 8px;
    border-radius:13px;
    font-size:.78rem;
  }
  .wedding-dj-page .lighting-swatch{
    width:16px;
    height:16px;
    flex:0 0 16px;
  }
}

/* V7.77 — compact wedding lighting controls + coloured side floor reflections.
   The visible heading/explainer is removed from the live selector so the preview
   stays close to the colour choices on phones. The radio group remains fully
   labelled for assistive technology. */
.wedding-dj-page .wedding-lighting-selector{
  padding:0;
  border:0;
  background:transparent;
  box-shadow:none;
}
.wedding-dj-page .wedding-lighting-selector-controls{
  grid-template-columns:repeat(7,minmax(0,1fr));
  gap:8px;
}
.wedding-dj-page .wedding-lighting-selector-controls button{
  min-height:62px;
  padding:7px 4px 6px;
  flex-direction:column;
  justify-content:center;
  gap:5px;
  border:1px solid rgba(122,98,77,.10);
  border-radius:14px;
  background:rgba(255,250,245,.48);
  font-size:.72rem;
  line-height:1.12;
  text-align:center;
}
.wedding-dj-page .wedding-lighting-selector-controls button.is-active{
  border-color:rgba(176,131,77,.44);
  background:rgba(255,248,239,.92);
  box-shadow:0 8px 18px rgba(96,71,43,.08);
}
.wedding-dj-page .wedding-lighting-selector-controls .lighting-swatch{
  width:23px;
  height:23px;
  flex:0 0 23px;
}
@media(max-width:1080px){
  .wedding-dj-page .wedding-lighting-selector-controls{
    grid-template-columns:repeat(7,minmax(0,1fr));
  }
}
@media(max-width:760px){
  .wedding-dj-page .wedding-booth-selector-section .wedding-shell{
    row-gap:10px;
  }
  .wedding-dj-page .wedding-lighting-selector{
    margin-top:0;
    padding:0;
    border-radius:0;
  }
  .wedding-dj-page .wedding-lighting-selector-controls{
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:5px;
  }
  .wedding-dj-page .wedding-lighting-selector-controls button{
    min-height:54px;
    padding:5px 2px 4px;
    gap:3px;
    border-radius:11px;
    font-size:.64rem;
    letter-spacing:-.01em;
  }
  .wedding-dj-page .wedding-lighting-selector-controls .lighting-swatch{
    width:20px;
    height:20px;
    flex-basis:20px;
  }
}
@media(max-width:390px){
  .wedding-dj-page .wedding-lighting-selector-controls button{
    font-size:.60rem;
  }
}


/* V7.78 — finished room ambience selector for reception / first dance / party */
.wedding-dj-page .wedding-ambience-selector{border-color:rgba(147,111,67,.20);background:linear-gradient(120deg,rgba(255,255,255,.82),rgba(255,250,243,.78) 46%,rgba(234,219,198,.58)),#fffaf4}
.wedding-dj-page .wedding-ambience-selector-controls{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.wedding-dj-page .wedding-ambience-selector-controls button{min-height:48px;border-radius:13px}
@media(max-width:760px){
  .wedding-dj-page .wedding-ambience-selector{padding:14px 12px 12px;border-radius:17px}
  .wedding-dj-page .wedding-ambience-selector-head{display:block;margin-bottom:10px}
  .wedding-dj-page .wedding-ambience-selector-label{font-size:.72rem}
  .wedding-dj-page .wedding-ambience-selector-hint{margin-top:4px;font-size:.79rem;text-align:left}
  .wedding-dj-page .wedding-ambience-selector-controls{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
  .wedding-dj-page .wedding-ambience-selector-controls button{min-height:44px;padding:9px 6px;font-size:.72rem;border-radius:12px}
  .wedding-dj-page .wedding-ambience-copy{margin-top:10px;font-size:.84rem;line-height:1.45}
  .wedding-dj-page .wedding-lighting-status,.wedding-dj-page .wedding-ambience-status,.wedding-dj-page .wedding-setup-summary{font-size:.88rem;line-height:1.45}
}
@media(max-width:390px){
  .wedding-dj-page .wedding-ambience-selector-controls button{font-size:.67rem}
}


/* V7.79 — save setup, carry into enquiry and add subtle animated party mode */
.wedding-dj-page .secondary-action,
.wedding-dj-page .ghost-action,
.contact-simple-page .ghost-action{
  min-height:52px;
  padding:0 18px;
  border-radius:999px;
  border:1px solid rgba(147,111,67,.28);
  background:rgba(255,250,245,.78);
  color:#2f251e;
  font:inherit;
  font-weight:600;
  cursor:pointer;
  transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease,background .2s ease;
}
.wedding-dj-page .secondary-action:hover,
.wedding-dj-page .secondary-action:focus-visible,
.wedding-dj-page .ghost-action:hover,
.wedding-dj-page .ghost-action:focus-visible,
.contact-simple-page .ghost-action:hover,
.contact-simple-page .ghost-action:focus-visible{
  transform:translateY(-1px);
  border-color:rgba(176,131,77,.48);
  box-shadow:0 12px 24px rgba(52,37,28,.09);
  outline:none;
}
.wedding-saved-setup{
  margin-top:18px;
  padding:16px 18px;
  border:1px solid rgba(147,111,67,.16);
  border-radius:18px;
  background:linear-gradient(135deg,rgba(255,255,255,.84),rgba(250,242,230,.82));
  box-shadow:0 14px 28px rgba(60,43,31,.06);
}
.wedding-saved-setup-kicker,
.wedding-enquiry-setup-kicker{
  margin:0 0 8px;
  font-size:.76rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:#a47d49;
  font-weight:700;
}
.wedding-saved-setup-summary,
.wedding-enquiry-setup-summary{
  margin:0;
  color:#251d18;
  font-size:1.02rem;
  font-weight:700;
}
.wedding-saved-setup-note,
.wedding-enquiry-setup-note{
  margin:8px 0 0;
  color:#6c625a;
  font-size:.9rem;
  line-height:1.55;
}
.wedding-saved-setup-actions,
.wedding-enquiry-setup-actions{
  margin-top:12px;
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}
.wedding-enquiry-setup{
  margin-top:22px;
  padding:18px 20px;
  border:1px solid rgba(147,111,67,.16);
  border-radius:20px;
  background:linear-gradient(135deg,rgba(255,255,255,.9),rgba(248,240,229,.9));
  box-shadow:0 18px 34px rgba(60,43,31,.055);
}
.wedding-enquiry-setup-tags{
  margin-top:12px;
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.wedding-enquiry-setup-tags span{
  padding:8px 12px;
  border-radius:999px;
  background:rgba(255,248,239,.95);
  border:1px solid rgba(147,111,67,.14);
  color:#56483e;
  font-size:.82rem;
  line-height:1.25;
}
.wedding-booth-selector-visual[data-ambience="first-dance"] .wedding-booth-ambience-wash{animation:weddingFirstDanceGlow 8.5s ease-in-out infinite alternate}
.wedding-booth-selector-visual[data-ambience="first-dance"] .wedding-booth-ambience-glow{animation:weddingFirstDancePool 7.2s ease-in-out infinite alternate}
.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-beams{animation:weddingPartyBeamsPulse 5.8s ease-in-out infinite alternate}
.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-glow{animation:weddingPartyAmbienceFloat 6.8s ease-in-out infinite alternate,weddingPartyGlowPulse 4.6s ease-in-out infinite}
.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-floor-spots{animation:weddingPartyFloorSpots 8.5s ease-in-out infinite alternate,weddingPartyFloorPulse 4.8s ease-in-out infinite}
@keyframes weddingFirstDanceGlow{from{opacity:.58;transform:scale(1)}to{opacity:.74;transform:scale(1.03)}}
@keyframes weddingFirstDancePool{from{opacity:.32;transform:translateY(0) scale(1)}to{opacity:.48;transform:translateY(.4%) scale(1.04)}}
@keyframes weddingPartyBeamsPulse{from{opacity:.72;transform:translate3d(-1%,0,0) scale(1)}to{opacity:.92;transform:translate3d(1.3%,-.4%,0) scale(1.04)}}
@keyframes weddingPartyGlowPulse{from{opacity:.28}50%{opacity:.46}to{opacity:.34}}
@media (prefers-reduced-motion:reduce){
  .wedding-booth-selector-visual[data-ambience="first-dance"] .wedding-booth-ambience-wash,
  .wedding-booth-selector-visual[data-ambience="first-dance"] .wedding-booth-ambience-glow,
  .wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-beams,
  .wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-glow,
  .wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-floor-spots{animation:none}
}
@media(max-width:760px){
  .wedding-dj-page .secondary-action,
  .wedding-dj-page .ghost-action,
  .contact-simple-page .ghost-action{width:100%;justify-content:center;min-height:46px;padding:0 14px}
  .wedding-saved-setup,.wedding-enquiry-setup{padding:14px 14px 15px;border-radius:16px}
  .wedding-saved-setup-actions,.wedding-enquiry-setup-actions{flex-direction:column;align-items:stretch}
  .wedding-saved-setup-actions .line-link,.wedding-enquiry-setup-actions .line-link{width:100%}
}


/* V7.80 — shareable wedding setup links + inline toast */
.wedding-setup-toast{
  position:sticky;
  bottom:14px;
  margin-top:16px;
  margin-left:auto;
  width:max-content;
  max-width:min(100%,420px);
  padding:12px 16px;
  border-radius:14px;
  background:rgba(36,28,24,.94);
  color:#fff7ef;
  box-shadow:0 18px 34px rgba(0,0,0,.20);
  opacity:0;
  transform:translateY(8px);
  transition:opacity .22s ease,transform .22s ease;
  z-index:15;
}
.wedding-setup-toast.is-visible{opacity:1;transform:translateY(0)}
.wedding-dj-page .wedding-booth-selector-cta .page-actions{align-items:center}
.wedding-dj-page .wedding-booth-selector-cta .page-actions .ghost-action{background:rgba(255,255,255,.72)}
@media(max-width:760px){
  .wedding-setup-toast{width:100%;max-width:none;bottom:8px;padding:11px 13px;border-radius:12px}
}


/* V7.81 — enquiry mini preview, copy summary and selector reset polish */
.wedding-enquiry-mini-preview{
  margin-top:14px;
  display:grid;
  grid-template-columns:minmax(150px,210px) minmax(0,1fr);
  gap:12px;
  align-items:stretch;
}
.wedding-enquiry-mini-image{
  position:relative;
  overflow:hidden;
  aspect-ratio:3/2;
  border-radius:14px;
  border:1px solid rgba(147,111,67,.16);
  background:#e8ddd1;
  box-shadow:0 10px 22px rgba(60,43,31,.07);
}
.wedding-enquiry-mini-image img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:fill;
}
#wedding-enquiry-preview-base{z-index:1}
#wedding-enquiry-preview-front{z-index:2}
.wedding-enquiry-preview-ambience{
  position:absolute;
  inset:0;
  z-index:3;
  pointer-events:none;
  transition:background .2s ease;
}
.wedding-enquiry-mini-preview[data-ambience="reception"] .wedding-enquiry-preview-ambience{
  background:radial-gradient(circle at 50% 25%,rgba(255,241,217,.18),transparent 45%);
}
.wedding-enquiry-mini-preview[data-ambience="first-dance"] .wedding-enquiry-preview-ambience{
  background:radial-gradient(circle at 50% 42%,rgba(255,226,181,.30),transparent 40%),linear-gradient(180deg,rgba(31,20,16,.10),transparent 40%,rgba(35,22,16,.12));
}
.wedding-enquiry-mini-preview[data-ambience="party"] .wedding-enquiry-preview-ambience{
  background:linear-gradient(180deg,rgba(19,11,25,.08),rgba(18,10,23,.02)),radial-gradient(circle at 24% 74%,rgba(74,182,255,.16),transparent 22%),radial-gradient(circle at 76% 74%,rgba(246,96,205,.14),transparent 22%),radial-gradient(circle at 50% 84%,rgba(191,236,255,.18),transparent 5%),radial-gradient(ellipse 20% 8% at 50% 86%,rgba(120,210,255,.16),transparent 72%);
}
.wedding-enquiry-mini-strip{
  display:grid;
  grid-template-columns:1fr;
  gap:7px;
  align-content:center;
}
.wedding-enquiry-mini-strip>span{
  min-height:36px;
  display:flex;
  align-items:center;
  gap:8px;
  padding:8px 10px;
  border-radius:11px;
  border:1px solid rgba(147,111,67,.12);
  background:rgba(255,250,245,.76);
  color:#4f4238;
  font-size:.78rem;
  font-weight:650;
  line-height:1.25;
}
.wedding-enquiry-mini-light i{
  width:15px;
  height:15px;
  flex:0 0 15px;
  border-radius:50%;
  border:1px solid rgba(53,40,31,.12);
  box-shadow:inset 0 0 0 2px rgba(255,255,255,.58);
}
.wedding-enquiry-mini-light b{font:inherit}
.wedding-enquiry-copy-status{margin:10px 0 0;color:#80633d;font-size:.82rem;font-weight:650}
.wedding-dj-page [data-reset-setup]{opacity:.86}
.wedding-dj-page [data-reset-setup]:hover,.wedding-dj-page [data-reset-setup]:focus-visible{opacity:1}
@media(max-width:760px){
  .wedding-enquiry-mini-preview{grid-template-columns:130px minmax(0,1fr);gap:9px}
  .wedding-enquiry-mini-strip{gap:5px}
  .wedding-enquiry-mini-strip>span{min-height:31px;padding:6px 8px;font-size:.7rem;border-radius:9px}
}
@media(max-width:430px){
  .wedding-enquiry-mini-preview{grid-template-columns:1fr}
  .wedding-enquiry-mini-image{width:min(100%,280px)}
  .wedding-enquiry-mini-strip{grid-template-columns:repeat(3,minmax(0,1fr));}
  .wedding-enquiry-mini-strip>span{justify-content:center;text-align:center;padding:7px 5px;font-size:.64rem}
  .wedding-enquiry-mini-light{flex-direction:column;gap:4px!important}
}

/* V7.82 — wedding consultant audit: stronger narrative, mid-page selector and planning-led hierarchy */
.wedding-dj-page .wedding-section-head{
  align-items:start;
  margin-bottom:42px;
}
.wedding-dj-page .wedding-section-head>p{
  max-width:600px;
  font-size:1.03rem;
  line-height:1.78;
}
.wedding-dj-page .wedding-pillars-section{
  padding-top:84px;
  padding-bottom:96px;
}
.wedding-dj-page .wedding-pillars-grid{
  gap:16px;
}
.wedding-dj-page .wedding-pillars-grid article{
  min-height:330px;
  padding:28px 28px 30px;
}
.wedding-dj-page .wedding-pillars-grid article>span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:42px;
  height:42px;
  border:1px solid rgba(157,121,76,.18);
  border-radius:50%;
  background:rgba(255,255,255,.58);
  font-size:.68rem;
  letter-spacing:.10em;
}
.wedding-dj-page .wedding-pillars-grid h3{
  margin-top:46px;
  margin-bottom:16px;
  font-size:clamp(1.75rem,2.4vw,2.5rem);
}
.wedding-dj-page .wedding-pillars-grid p{
  font-size:.98rem;
  line-height:1.72;
}
.wedding-dj-page .wedding-planning-feature{
  min-height:680px;
}
.wedding-dj-page .wedding-planning-copy{
  padding-top:clamp(54px,6vw,82px);
  padding-bottom:clamp(54px,6vw,82px);
}
.wedding-planning-checklist{
  list-style:none;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px 14px;
  margin:28px 0 0;
  padding:0;
}
.wedding-planning-checklist li{
  position:relative;
  padding:12px 14px 12px 34px;
  border:1px solid rgba(151,116,72,.14);
  border-radius:14px;
  background:rgba(255,255,255,.50);
  color:#564941;
  font-size:.9rem;
  line-height:1.45;
}
.wedding-planning-checklist li::before{
  content:"✓";
  position:absolute;
  left:13px;
  top:12px;
  color:#a47d49;
  font-weight:800;
}
.wedding-dj-page .wedding-booth-selector-section{
  padding-top:clamp(78px,7vw,104px);
  padding-bottom:clamp(82px,7vw,110px);
  border-top:0!important;
  background:
    radial-gradient(circle at 82% 10%,rgba(198,161,104,.08),transparent 24%),
    linear-gradient(180deg,#f7f0e7 0%,#fbf7f1 48%,#f1e7da 100%)!important;
}
.wedding-dj-page .wedding-booth-selector-intro{
  max-width:960px;
  margin-bottom:28px;
}
.wedding-dj-page .wedding-booth-selector-intro h2{
  max-width:900px;
  margin-left:auto;
  margin-right:auto;
}
.wedding-dj-page .wedding-booth-selector-intro .lead{
  max-width:820px;
}
.wedding-dj-page .wedding-photo-story{
  border-top:1px solid rgba(255,255,255,.06);
}
.wedding-dj-page .wedding-night-section{
  padding-top:94px;
  padding-bottom:108px;
}
.wedding-dj-page .wedding-night-grid{
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
}
.wedding-dj-page .wedding-night-grid article{
  position:relative;
  min-height:340px;
  padding:24px 22px 28px;
  overflow:hidden;
}
.wedding-dj-page .wedding-night-step{
  display:block;
  margin-bottom:42px;
  color:rgba(157,121,76,.45);
  font-family:Georgia,"Times New Roman",serif;
  font-size:2.15rem;
  font-weight:400;
  line-height:1;
}
.wedding-dj-page .wedding-night-grid span{
  display:block;
  min-height:28px;
  font-size:.57rem;
  line-height:1.35;
}
.wedding-dj-page .wedding-night-grid h3{
  margin:18px 0 14px;
  font-size:clamp(1.55rem,1.9vw,2.05rem);
  line-height:1.02;
}
.wedding-dj-page .wedding-night-grid p{
  font-size:.93rem;
  line-height:1.66;
}
.wedding-dj-page .wedding-faq .faq-home-inner{
  padding-top:78px;
}
.wedding-dj-page .wedding-faq details p{
  max-width:760px;
}
.wedding-dj-page .wedding-cta p{
  max-width:920px;
  margin-left:auto;
  margin-right:auto;
}

@media(max-width:1120px){
  .wedding-dj-page .wedding-night-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .wedding-dj-page .wedding-night-grid article{min-height:300px}
}
@media(max-width:920px){
  .wedding-planning-checklist{grid-template-columns:1fr 1fr}
  .wedding-dj-page .wedding-pillars-section{padding-top:68px;padding-bottom:78px}
}
@media(max-width:650px){
  .wedding-dj-page .wedding-section-head{margin-bottom:30px}
  .wedding-dj-page .wedding-section-head>p{font-size:.96rem;line-height:1.7}
  .wedding-dj-page .wedding-pillars-section{padding-top:58px;padding-bottom:66px}
  .wedding-dj-page .wedding-pillars-grid article{min-height:0;padding:24px 20px 26px}
  .wedding-dj-page .wedding-pillars-grid h3{margin-top:34px}
  .wedding-planning-checklist{grid-template-columns:1fr;gap:8px;margin-top:22px}
  .wedding-planning-checklist li{padding:11px 12px 11px 32px;font-size:.86rem}
  .wedding-planning-checklist li::before{left:12px;top:11px}
  .wedding-dj-page .wedding-booth-selector-section{padding-top:58px;padding-bottom:68px}
  .wedding-dj-page .wedding-booth-selector-intro{margin-bottom:20px}
  .wedding-dj-page .wedding-night-section{padding-top:68px;padding-bottom:78px}
  .wedding-dj-page .wedding-night-grid{grid-template-columns:1fr;gap:10px}
  .wedding-dj-page .wedding-night-grid article{min-height:0;padding:22px 20px 24px}
  .wedding-dj-page .wedding-night-step{margin-bottom:28px;font-size:1.85rem}
  .wedding-dj-page .wedding-night-grid h3{margin-top:12px;font-size:1.7rem}
  .wedding-dj-page .wedding-faq .faq-home-inner{padding-top:60px}
}


/* V7.83 — publish-readiness responsive/accessibility safety pass */
@media(max-width:760px) and (max-height:720px){
  .wedding-dj-page .wedding-booth-selector-visual{
    position:relative;
    top:auto;
  }
}
@media(max-width:430px){
  .wedding-dj-page .wedding-dj-hero h1{
    font-size:clamp(3rem,14vw,4.1rem);
    line-height:.80;
  }
  .wedding-dj-page .wedding-dj-hero .hero-intro{
    font-size:1rem;
    line-height:1.64;
  }
}


/* V7.85 — stronger first-dance floor spotlight and simplified enquiry setup details */
.wedding-booth-selector-visual[data-ambience="first-dance"] .wedding-booth-ambience-floor-spots{
  opacity:.56;
  background:
    radial-gradient(ellipse 22% 14% at 50% 88%,rgba(255,242,217,.78),rgba(255,221,169,.42) 42%,rgba(255,198,126,.12) 66%,transparent 78%),
    radial-gradient(ellipse 12% 8% at 50% 83%,rgba(255,248,233,.48),transparent 72%);
  animation:weddingFirstDanceSpotlight 6.8s ease-in-out infinite alternate;
}
@keyframes weddingFirstDanceSpotlight{
  from{opacity:.48;transform:translateY(.2%) scale(1)}
  to{opacity:.64;transform:translateY(-.3%) scale(1.03)}
}
.contact-simple-page .wedding-enquiry-mini-strip{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (prefers-reduced-motion:reduce){
  .wedding-booth-selector-visual[data-ambience="first-dance"] .wedding-booth-ambience-floor-spots{animation:none}
}


/* V7.86 — final ambience differentiation: airy reception, centred first dance, darker animated party floor */

/* Reception: deliberately bright, open and neutral. */
.wedding-booth-selector-visual[data-ambience="reception"]{
  --wedding-ambience-filter:brightness(1.07) saturate(.94) contrast(.98);
}
.wedding-booth-selector-visual[data-ambience="reception"] .wedding-booth-ambience-wash{
  opacity:.34;
  background:
    radial-gradient(ellipse 62% 48% at 50% 22%,rgba(255,251,242,.42),transparent 70%),
    linear-gradient(180deg,rgba(255,255,255,.16) 0%,rgba(255,250,242,.08) 58%,rgba(255,241,219,.04) 100%);
}
.wedding-booth-selector-visual[data-ambience="reception"] .wedding-booth-ambience-beams{
  opacity:.07;
  background:
    radial-gradient(ellipse 19% 54% at 23% 13%,rgba(255,255,250,.18),transparent 74%),
    radial-gradient(ellipse 19% 54% at 77% 13%,rgba(255,255,250,.18),transparent 74%);
}
.wedding-booth-selector-visual[data-ambience="reception"] .wedding-booth-ambience-glow{
  opacity:.10;
  background:radial-gradient(ellipse 58% 22% at 50% 102%,rgba(255,233,201,.15),transparent 72%);
}
.wedding-booth-selector-visual[data-ambience="reception"] .wedding-booth-ambience-floor-spots,
.wedding-booth-selector-visual[data-ambience="reception"] .wedding-booth-ambience-floor-spots::before,
.wedding-booth-selector-visual[data-ambience="reception"] .wedding-booth-ambience-floor-spots::after{
  opacity:0;
  animation:none;
}

/* First dance: darker edges, warm centre and a visible floor spotlight/pool. */
.wedding-booth-selector-visual[data-ambience="first-dance"]{
  --wedding-ambience-filter:brightness(.82) saturate(1.03) contrast(1.07);
}
.wedding-booth-selector-visual[data-ambience="first-dance"] .wedding-booth-ambience-wash{
  opacity:.78;
  background:
    radial-gradient(ellipse 42% 58% at 50% 44%,rgba(255,235,199,.34) 0%,rgba(255,226,179,.12) 38%,transparent 66%),
    radial-gradient(ellipse 34% 22% at 50% 88%,rgba(255,211,151,.20),transparent 72%),
    radial-gradient(ellipse 92% 88% at 50% 52%,transparent 35%,rgba(29,16,12,.18) 70%,rgba(17,10,8,.36) 100%);
}
.wedding-booth-selector-visual[data-ambience="first-dance"] .wedding-booth-ambience-beams{
  opacity:.46;
  background:
    linear-gradient(103deg,transparent 0 42%,rgba(255,247,229,.10) 49%,rgba(255,247,229,.20) 50%,rgba(255,247,229,.10) 51%,transparent 58% 100%),
    radial-gradient(ellipse 18% 66% at 50% 12%,rgba(255,250,236,.23),rgba(255,236,207,.08) 46%,transparent 74%),
    radial-gradient(circle at 50% 46%,rgba(255,229,185,.16),transparent 19%);
}
.wedding-booth-selector-visual[data-ambience="first-dance"] .wedding-booth-ambience-glow{
  opacity:.55;
  background:
    radial-gradient(ellipse 26% 14% at 50% 89%,rgba(255,248,234,.48),rgba(255,220,167,.22) 48%,transparent 76%),
    radial-gradient(circle at 50% 50%,rgba(255,239,215,.18),transparent 17%);
}
.wedding-booth-selector-visual[data-ambience="first-dance"] .wedding-booth-ambience-floor-spots{
  inset:auto 8% -1% 8%;
  height:46%;
  opacity:.78;
  background:
    radial-gradient(ellipse 24% 15% at 50% 78%,rgba(255,253,245,.92) 0%,rgba(255,239,213,.76) 26%,rgba(255,218,164,.36) 52%,rgba(255,194,119,.10) 70%,transparent 82%),
    radial-gradient(ellipse 38% 22% at 50% 82%,rgba(255,224,177,.18),transparent 74%);
  filter:blur(.2px);
  animation:weddingFirstDanceSpotlightV786 7.2s ease-in-out infinite alternate;
}
.wedding-booth-selector-visual[data-ambience="first-dance"] .wedding-booth-ambience-floor-spots::before,
.wedding-booth-selector-visual[data-ambience="first-dance"] .wedding-booth-ambience-floor-spots::after{
  content:none;
}
@keyframes weddingFirstDanceSpotlightV786{
  from{opacity:.68;transform:translate3d(0,.2%,0) scale(.985)}
  to{opacity:.86;transform:translate3d(0,-.5%,0) scale(1.035)}
}

/* Party: genuinely darker room, stronger beams and independently moving multi-colour floor patterns. */
.wedding-booth-selector-visual[data-ambience="party"]{
  --wedding-ambience-filter:brightness(.60) saturate(1.30) contrast(1.18);
}
.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-wash{
  opacity:.88;
  background:
    radial-gradient(circle at 50% 17%,rgba(47,26,66,.16),transparent 26%),
    linear-gradient(180deg,rgba(5,5,12,.76) 0%,rgba(11,6,17,.55) 34%,rgba(8,5,14,.69) 100%),
    radial-gradient(ellipse 55% 20% at 50% 100%,rgba(88,35,111,.10),transparent 72%);
}
.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-beams{
  opacity:.94;
  background:
    radial-gradient(ellipse 19% 62% at 20% 11%,rgba(67,177,255,.78),rgba(67,177,255,.16) 42%,transparent 72%),
    radial-gradient(ellipse 19% 62% at 80% 11%,rgba(224,105,255,.76),rgba(224,105,255,.15) 42%,transparent 72%),
    radial-gradient(ellipse 14% 54% at 51% 14%,rgba(255,183,95,.28),transparent 72%);
  animation:weddingPartyBeamsV786 4.8s ease-in-out infinite alternate;
}
.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-glow{
  opacity:.50;
  background:
    radial-gradient(circle at 20% 88%,rgba(65,178,255,.30),transparent 18%),
    radial-gradient(circle at 80% 88%,rgba(220,100,255,.27),transparent 18%),
    radial-gradient(circle at 50% 91%,rgba(255,180,82,.20),transparent 24%);
  animation:weddingPartyGlowV786 5.4s ease-in-out infinite alternate;
}
.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-floor-spots{
  inset:auto 2% -2% 2%;
  height:48%;
  opacity:.98;
  overflow:visible;
  background:
    radial-gradient(ellipse 6.2% 8% at 12% 68%,rgba(58,184,255,.96),transparent 70%),
    radial-gradient(ellipse 6.8% 8.5% at 25% 88%,rgba(255,213,73,.92),transparent 70%),
    radial-gradient(ellipse 6.6% 8% at 39% 74%,rgba(229,92,255,.96),transparent 70%),
    radial-gradient(ellipse 6.2% 8% at 54% 91%,rgba(73,242,204,.88),transparent 70%),
    radial-gradient(ellipse 6.8% 8.5% at 67% 73%,rgba(255,84,148,.92),transparent 70%),
    radial-gradient(ellipse 6.4% 8.2% at 81% 89%,rgba(69,166,255,.96),transparent 70%),
    radial-gradient(ellipse 6.2% 8% at 91% 67%,rgba(255,194,71,.92),transparent 70%);
  filter:blur(.15px) saturate(1.18);
  animation:weddingPartyFloorBaseV786 7.2s ease-in-out infinite alternate;
}
.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-floor-spots::before,
.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-floor-spots::after{
  content:"";
  position:absolute;
  inset:0;
  transform-origin:50% 82%;
  mix-blend-mode:screen;
  pointer-events:none;
}
.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-floor-spots::before{
  opacity:.82;
  background:
    radial-gradient(ellipse 5.5% 7% at 18% 84%,rgba(255,94,205,.88),transparent 70%),
    radial-gradient(ellipse 5.8% 7.5% at 34% 65%,rgba(78,211,255,.92),transparent 70%),
    radial-gradient(ellipse 5.4% 7% at 48% 82%,rgba(255,226,83,.90),transparent 70%),
    radial-gradient(ellipse 5.8% 7.5% at 63% 62%,rgba(141,101,255,.90),transparent 70%),
    radial-gradient(ellipse 5.6% 7.3% at 78% 80%,rgba(91,255,181,.82),transparent 70%);
  animation:weddingPartyFloorSweepAV786 5.6s ease-in-out infinite alternate;
}
.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-floor-spots::after{
  opacity:.68;
  background:
    radial-gradient(ellipse 5.2% 6.8% at 22% 70%,rgba(255,170,61,.88),transparent 70%),
    radial-gradient(ellipse 5.4% 7% at 44% 92%,rgba(73,174,255,.90),transparent 70%),
    radial-gradient(ellipse 5.1% 6.8% at 58% 69%,rgba(255,88,148,.88),transparent 70%),
    radial-gradient(ellipse 5.4% 7% at 72% 91%,rgba(203,91,255,.90),transparent 70%),
    radial-gradient(ellipse 5.0% 6.5% at 88% 76%,rgba(96,244,210,.82),transparent 70%);
  animation:weddingPartyFloorSweepBV786 6.8s ease-in-out infinite alternate-reverse;
}
@keyframes weddingPartyBeamsV786{
  from{transform:translate3d(-1.3%,0,0) scale(1);opacity:.82}
  to{transform:translate3d(1.5%,-.7%,0) scale(1.045);opacity:.98}
}
@keyframes weddingPartyGlowV786{
  from{transform:scale(.99);opacity:.38}
  to{transform:scale(1.04);opacity:.58}
}
@keyframes weddingPartyFloorBaseV786{
  from{transform:translate3d(-1.8%,.4%,0) scale(.99);opacity:.84}
  to{transform:translate3d(1.8%,-1.2%,0) scale(1.045);opacity:1}
}
@keyframes weddingPartyFloorSweepAV786{
  from{transform:translate3d(-4%,2%,0) rotate(-1.3deg) scale(.98)}
  to{transform:translate3d(4%,-3%,0) rotate(1.8deg) scale(1.06)}
}
@keyframes weddingPartyFloorSweepBV786{
  from{transform:translate3d(3%,-1%,0) rotate(1.2deg) scale(1.03)}
  to{transform:translate3d(-4%,2.5%,0) rotate(-1.7deg) scale(.97)}
}
@media (prefers-reduced-motion:reduce){
  .wedding-booth-selector-visual[data-ambience="first-dance"] .wedding-booth-ambience-floor-spots,
  .wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-beams,
  .wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-glow,
  .wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-floor-spots,
  .wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-floor-spots::before,
  .wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-floor-spots::after{
    animation:none!important;
  }
}


/* V7.87 — fix first-dance spotlight so it renders white and drifts slowly across the floor. */
.wedding-booth-selector-visual[data-ambience="first-dance"] .wedding-booth-ambience-floor-spots{
  mix-blend-mode:normal!important;
  inset:auto 10% -1% 10%;
  height:44%;
  opacity:.94;
  background:
    radial-gradient(ellipse 18% 11% at 50% 80%,rgba(255,255,255,.98) 0%,rgba(255,255,255,.94) 18%,rgba(255,249,238,.84) 34%,rgba(255,240,214,.58) 50%,rgba(255,225,184,.28) 66%,rgba(255,205,150,.08) 78%,transparent 88%),
    radial-gradient(ellipse 32% 18% at 50% 86%,rgba(255,244,220,.24),transparent 74%);
  filter:blur(.18px);
  animation:weddingFirstDanceSpotlightV787 10.5s ease-in-out infinite alternate;
}
@keyframes weddingFirstDanceSpotlightV787{
  0%{opacity:.82;transform:translate3d(-1.6%,.45%,0) scale(.97)}
  50%{opacity:.96;transform:translate3d(0,-.1%,0) scale(1.02)}
  100%{opacity:.86;transform:translate3d(1.6%,-.55%,0) scale(1.05)}
}
@media (prefers-reduced-motion:reduce){
  .wedding-booth-selector-visual[data-ambience="first-dance"] .wedding-booth-ambience-floor-spots{animation:none!important}
}


/* V7.88 — make Party floor lighting respond to the selected wedding lighting colour.
   The chosen colour becomes the dominant animated floor accent while a few secondary
   disco colours remain so Party mode still looks like real moving-head lighting. */
.wedding-booth-selector-visual{
  --party-accent-rgb:255,241,214;
  --party-accent-soft-rgb:255,224,172;
}
.wedding-booth-selector-visual[data-light="warm-white"]{--party-accent-rgb:255,246,225;--party-accent-soft-rgb:255,224,177}
.wedding-booth-selector-visual[data-light="champagne"]{--party-accent-rgb:231,189,122;--party-accent-soft-rgb:255,219,157}
.wedding-booth-selector-visual[data-light="blush"]{--party-accent-rgb:233,166,184;--party-accent-soft-rgb:255,196,211}
.wedding-booth-selector-visual[data-light="rose"]{--party-accent-rgb:207,111,135;--party-accent-soft-rgb:244,145,170}
.wedding-booth-selector-visual[data-light="lavender"]{--party-accent-rgb:168,139,220;--party-accent-soft-rgb:204,179,255}
.wedding-booth-selector-visual[data-light="ice-blue"]{--party-accent-rgb:116,185,237;--party-accent-soft-rgb:151,211,255}
.wedding-booth-selector-visual[data-light="sage"]{--party-accent-rgb:143,169,140;--party-accent-soft-rgb:180,210,175}

.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-floor-spots{
  background:
    radial-gradient(ellipse 6.4% 8.3% at 12% 68%,rgba(var(--party-accent-rgb),.98),transparent 70%),
    radial-gradient(ellipse 6.8% 8.5% at 25% 88%,rgba(255,213,73,.84),transparent 70%),
    radial-gradient(ellipse 6.6% 8.1% at 39% 74%,rgba(var(--party-accent-soft-rgb),.96),transparent 70%),
    radial-gradient(ellipse 6.3% 8.2% at 54% 91%,rgba(73,242,204,.68),transparent 70%),
    radial-gradient(ellipse 6.8% 8.5% at 67% 73%,rgba(var(--party-accent-rgb),.94),transparent 70%),
    radial-gradient(ellipse 6.4% 8.2% at 81% 89%,rgba(69,166,255,.78),transparent 70%),
    radial-gradient(ellipse 6.3% 8.1% at 91% 67%,rgba(var(--party-accent-soft-rgb),.94),transparent 70%);
}
.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-floor-spots::before{
  background:
    radial-gradient(ellipse 5.6% 7.1% at 18% 84%,rgba(var(--party-accent-soft-rgb),.94),transparent 70%),
    radial-gradient(ellipse 5.8% 7.5% at 34% 65%,rgba(78,211,255,.76),transparent 70%),
    radial-gradient(ellipse 5.5% 7.1% at 48% 82%,rgba(var(--party-accent-rgb),.98),transparent 70%),
    radial-gradient(ellipse 5.8% 7.5% at 63% 62%,rgba(141,101,255,.74),transparent 70%),
    radial-gradient(ellipse 5.7% 7.3% at 78% 80%,rgba(var(--party-accent-soft-rgb),.92),transparent 70%);
}
.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-floor-spots::after{
  background:
    radial-gradient(ellipse 5.2% 6.8% at 22% 70%,rgba(255,170,61,.72),transparent 70%),
    radial-gradient(ellipse 5.4% 7% at 44% 92%,rgba(var(--party-accent-rgb),.96),transparent 70%),
    radial-gradient(ellipse 5.1% 6.8% at 58% 69%,rgba(var(--party-accent-soft-rgb),.93),transparent 70%),
    radial-gradient(ellipse 5.4% 7% at 72% 91%,rgba(203,91,255,.72),transparent 70%),
    radial-gradient(ellipse 5.1% 6.6% at 88% 76%,rgba(var(--party-accent-rgb),.92),transparent 70%);
}
.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-glow{
  background:
    radial-gradient(circle at 20% 88%,rgba(var(--party-accent-rgb),.34),transparent 18%),
    radial-gradient(circle at 80% 88%,rgba(var(--party-accent-soft-rgb),.30),transparent 18%),
    radial-gradient(circle at 50% 91%,rgba(255,180,82,.16),transparent 24%);
}


/* V7.89 — robust first-dance white spotlight asset.
   Use a transparent white image instead of a CSS radial-gradient for Android/local-preview consistency. */
.wedding-booth-selector-visual .wedding-first-dance-floor-spotlight{
  position:absolute;
  z-index:8;
  left:50%;
  bottom:2.5%;
  width:48%;
  height:auto;
  opacity:0;
  pointer-events:none;
  display:block;
  transform:translate3d(-50%,0,0) scale(.96);
  transform-origin:50% 70%;
  mix-blend-mode:screen;
  filter:none;
  transition:opacity .38s ease;
}
/* Completely suppress the old first-dance CSS floor-spot layer that rendered dark on some Android previewers. */
.wedding-booth-selector-visual[data-ambience="first-dance"] .wedding-booth-ambience-floor-spots{
  opacity:0!important;
  visibility:hidden!important;
  animation:none!important;
  background:none!important;
  filter:none!important;
}
.wedding-booth-selector-visual[data-ambience="first-dance"] .wedding-first-dance-floor-spotlight{
  opacity:.98;
  animation:weddingFirstDanceWhiteSpotV789 11.5s ease-in-out infinite alternate;
}
@keyframes weddingFirstDanceWhiteSpotV789{
  0%{transform:translate3d(calc(-50% - 15px),5px,0) scale(.94);opacity:.86}
  35%{transform:translate3d(calc(-50% - 5px),0,0) scale(1.00);opacity:.98}
  70%{transform:translate3d(calc(-50% + 8px),-3px,0) scale(1.03);opacity:.96}
  100%{transform:translate3d(calc(-50% + 16px),2px,0) scale(.98);opacity:.88}
}
@media(max-width:760px){
  .wedding-booth-selector-visual .wedding-first-dance-floor-spotlight{
    width:52%;
    bottom:1.5%;
  }
}
@media (prefers-reduced-motion:reduce){
  .wedding-booth-selector-visual[data-ambience="first-dance"] .wedding-first-dance-floor-spotlight{
    animation:none!important;
    transform:translate3d(-50%,0,0) scale(1);
    opacity:.94;
  }
}


/* V7.90 — compact phone selector + promo-image ambience treatment.
   On phones the live selector now follows the visual language used in the promo artwork:
   preview first, compact booth thumbnails, three ambience buttons, then 4+3 colour swatches. */
@media(max-width:760px){
  .wedding-dj-page .wedding-booth-selector-section{overflow:visible}
  .wedding-dj-page .wedding-booth-selector-section .wedding-shell{
    grid-template-areas:
      "intro"
      "visual"
      "booth"
      "ambience"
      "lighting"
      "details"
      "cta";
    row-gap:0;
  }
  .wedding-dj-page .wedding-booth-selector-intro{margin-bottom:16px}

  /* The old sticky image was the main reason the controls could not sit together on one phone screen. */
  .wedding-dj-page .wedding-booth-selector-visual{
    position:relative!important;
    top:auto!important;
    z-index:5;
    width:100%;
    max-width:560px;
    margin:0 auto!important;
    border-radius:17px 17px 0 0!important;
    aspect-ratio:3 / 2;
    box-shadow:0 18px 42px rgba(0,0,0,.18),0 0 0 1px rgba(255,255,255,.20)!important;
  }
  .wedding-dj-page .wedding-booth-selector-visual .wedding-booth-base-image,
  .wedding-dj-page .wedding-booth-selector-visual .wedding-booth-front-image{
    object-fit:cover;
  }

  /* Booth style row — four real thumbnail previews, like the promo frame. */
  .wedding-dj-page .wedding-booth-selector-controls{
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    gap:6px!important;
    margin:0!important;
    padding:10px 10px 9px;
    max-width:none;
    border-radius:0;
    background:linear-gradient(180deg,#211d1a 0%,#171513 100%);
    border-left:1px solid rgba(219,181,116,.18);
    border-right:1px solid rgba(219,181,116,.18);
  }
  .wedding-dj-page .wedding-booth-selector-controls::before{
    content:"BOOTH STYLE";
    grid-column:1 / -1;
    margin:0 0 1px;
    color:#d9b475;
    font-size:.66rem;
    line-height:1;
    font-weight:800;
    letter-spacing:.16em;
    text-transform:uppercase;
  }
  .wedding-dj-page .wedding-booth-selector-controls button{
    min-width:0;
    min-height:78px!important;
    padding:0!important;
    gap:5px;
    display:flex;
    flex-direction:column;
    align-items:stretch;
    justify-content:flex-start;
    border:0!important;
    border-radius:10px!important;
    background:transparent!important;
    box-shadow:none!important;
    color:#f5efe8!important;
    font-size:.61rem!important;
    font-weight:650;
    line-height:1.08;
    letter-spacing:-.01em;
  }
  .wedding-dj-page .wedding-booth-selector-controls button::before{
    content:"";
    display:block;
    width:100%;
    aspect-ratio:1.28 / 1;
    border:1px solid rgba(255,255,255,.13);
    border-radius:8px;
    background-position:center;
    background-size:cover;
    background-repeat:no-repeat;
    box-shadow:inset 0 0 0 1px rgba(0,0,0,.05);
    transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease;
  }
  .wedding-dj-page .wedding-booth-selector-controls button[data-style="plain-white"]::before{
    background-image:url("photos/wedding-booth-lighting-warm-white-v777.webp");
  }
  .wedding-dj-page .wedding-booth-selector-controls button[data-style="starlit"]::before{
    background-image:url("photos/wedding-booth-overlay-starlit.webp"),url("photos/wedding-booth-lighting-warm-white-v777.webp");
  }
  .wedding-dj-page .wedding-booth-selector-controls button[data-style="plant-panel"]::before{
    background-image:url("photos/wedding-booth-overlay-plant-panel.webp"),url("photos/wedding-booth-lighting-warm-white-v777.webp");
  }
  .wedding-dj-page .wedding-booth-selector-controls button[data-style="plain-black"]::before{
    background-image:url("photos/wedding-booth-overlay-plain-black.webp"),url("photos/wedding-booth-lighting-warm-white-v777.webp");
  }
  .wedding-dj-page .wedding-booth-selector-controls button.is-active::before{
    border-color:#e1b867;
    box-shadow:0 0 0 2px rgba(225,184,103,.42),0 8px 16px rgba(0,0,0,.20);
  }
  .wedding-dj-page .wedding-booth-selector-controls button:hover::before,
  .wedding-dj-page .wedding-booth-selector-controls button:focus-visible::before{
    transform:translateY(-1px);
    border-color:rgba(225,184,103,.74);
  }

  /* Room ambience — compact dark control bar matching the phone artwork. */
  .wedding-dj-page .wedding-ambience-selector{
    margin:0!important;
    padding:9px 10px 9px!important;
    border-radius:0!important;
    border:0!important;
    border-left:1px solid rgba(219,181,116,.18)!important;
    border-right:1px solid rgba(219,181,116,.18)!important;
    background:linear-gradient(180deg,#1b1816 0%,#171513 100%)!important;
    box-shadow:none!important;
  }
  .wedding-dj-page .wedding-ambience-selector-head{
    display:block!important;
    margin:0 0 6px!important;
  }
  .wedding-dj-page .wedding-ambience-selector-label{
    color:#d9b475!important;
    font-size:.66rem!important;
    line-height:1!important;
    font-weight:800;
    letter-spacing:.16em!important;
  }
  .wedding-dj-page .wedding-ambience-selector-hint{display:none!important}
  .wedding-dj-page .wedding-ambience-selector-controls{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:6px!important;
  }
  .wedding-dj-page .wedding-ambience-selector-controls button{
    min-height:38px!important;
    padding:7px 4px!important;
    border:1px solid rgba(218,180,111,.22)!important;
    border-radius:9px!important;
    background:#24201c!important;
    color:#f6efe8!important;
    box-shadow:none!important;
    font-size:.67rem!important;
    font-weight:700;
  }
  .wedding-dj-page .wedding-ambience-selector-controls button.is-active{
    border-color:#ddb56d!important;
    background:linear-gradient(135deg,#5d4528 0%,#8d6834 100%)!important;
    color:#fffaf2!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.16),0 6px 14px rgba(0,0,0,.15)!important;
  }
  .wedding-dj-page .wedding-ambience-copy{
    margin:6px 1px 0!important;
    color:#c8beb5!important;
    font-size:.69rem!important;
    line-height:1.3!important;
  }

  /* Lighting colour — compact 4 + 3 swatches, same dark UI and gold label. */
  .wedding-dj-page .wedding-lighting-selector{
    margin:0!important;
    padding:9px 10px 11px!important;
    border-radius:0 0 17px 17px!important;
    border:0!important;
    border-left:1px solid rgba(219,181,116,.18)!important;
    border-right:1px solid rgba(219,181,116,.18)!important;
    border-bottom:1px solid rgba(219,181,116,.18)!important;
    background:linear-gradient(180deg,#181614 0%,#141210 100%)!important;
    box-shadow:0 16px 34px rgba(0,0,0,.14)!important;
  }
  .wedding-dj-page .wedding-lighting-selector-controls{
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    gap:5px 4px!important;
  }
  .wedding-dj-page .wedding-lighting-selector-controls::before{
    content:"LIGHTING COLOUR";
    grid-column:1 / -1;
    margin:0 0 2px;
    color:#d9b475;
    font-size:.66rem;
    line-height:1;
    font-weight:800;
    letter-spacing:.16em;
    text-transform:uppercase;
  }
  .wedding-dj-page .wedding-lighting-selector-controls button{
    min-height:46px!important;
    padding:3px 1px 2px!important;
    gap:2px!important;
    border:0!important;
    border-radius:9px!important;
    background:transparent!important;
    color:#f5efe8!important;
    box-shadow:none!important;
    font-size:.56rem!important;
    line-height:1.05!important;
  }
  .wedding-dj-page .wedding-lighting-selector-controls .lighting-swatch{
    width:24px!important;
    height:24px!important;
    flex-basis:24px!important;
    border:2px solid rgba(255,255,255,.72);
    box-shadow:0 0 0 2px rgba(0,0,0,.36),0 3px 9px rgba(0,0,0,.20);
  }
  .wedding-dj-page .wedding-lighting-selector-controls button.is-active .lighting-swatch{
    box-shadow:0 0 0 2px #e2b86b,0 0 0 4px rgba(226,184,107,.25),0 4px 10px rgba(0,0,0,.22);
  }

  .wedding-dj-page .wedding-booth-selector-details{margin-top:16px!important}
  .wedding-dj-page .wedding-booth-selector-cta{margin-top:18px!important}
}

@media(max-width:390px){
  .wedding-dj-page .wedding-booth-selector-controls{padding-left:7px;padding-right:7px;gap:4px!important}
  .wedding-dj-page .wedding-booth-selector-controls button{font-size:.56rem!important}
  .wedding-dj-page .wedding-booth-selector-controls button::before{aspect-ratio:1.22 / 1}
  .wedding-dj-page .wedding-lighting-selector-controls button{font-size:.53rem!important}
}

/* V7.90 ambience artwork — bring the live preview closer to the generated promo frames. */
.wedding-booth-selector-visual[data-ambience="first-dance"]{
  --wedding-ambience-filter:brightness(.72) saturate(1.07) contrast(1.12);
}
.wedding-booth-selector-visual[data-ambience="first-dance"] .wedding-booth-ambience-wash{
  opacity:.91;
  background:
    radial-gradient(ellipse 48% 58% at 50% 42%,rgba(255,219,167,.24) 0%,rgba(255,205,143,.08) 42%,transparent 67%),
    linear-gradient(180deg,rgba(28,13,9,.22) 0%,rgba(36,17,10,.08) 34%,rgba(18,8,6,.35) 100%),
    radial-gradient(ellipse 100% 92% at 50% 51%,transparent 35%,rgba(21,10,8,.25) 72%,rgba(11,6,5,.48) 100%);
}
.wedding-booth-selector-visual[data-ambience="first-dance"] .wedding-booth-ambience-beams{
  opacity:.84;
  background:
    linear-gradient(112deg,transparent 0 36%,rgba(255,255,255,0) 40%,rgba(255,252,241,.17) 44%,rgba(255,255,255,.44) 48%,rgba(255,252,241,.17) 52%,rgba(255,255,255,0) 56%,transparent 60% 100%),
    linear-gradient(68deg,transparent 0 36%,rgba(255,255,255,0) 40%,rgba(255,252,241,.17) 44%,rgba(255,255,255,.44) 48%,rgba(255,252,241,.17) 52%,rgba(255,255,255,0) 56%,transparent 60% 100%),
    radial-gradient(ellipse 32% 56% at 50% 48%,rgba(255,225,182,.12),transparent 72%);
  animation:weddingFirstDanceBeamBreathV790 7.8s ease-in-out infinite alternate;
}
.wedding-booth-selector-visual[data-ambience="first-dance"] .wedding-booth-ambience-glow{
  opacity:.62;
  background:
    radial-gradient(circle at 22% 63%,rgba(255,160,76,.16),transparent 16%),
    radial-gradient(circle at 78% 63%,rgba(255,160,76,.16),transparent 16%),
    radial-gradient(circle at 50% 54%,rgba(255,222,176,.12),transparent 22%);
}
.wedding-booth-selector-visual[data-ambience="first-dance"] .wedding-first-dance-floor-spotlight{
  width:52%;
  bottom:2.2%;
  opacity:1;
  mix-blend-mode:screen;
  animation:weddingFirstDanceWhiteSpotV790 10.8s ease-in-out infinite alternate!important;
}
@keyframes weddingFirstDanceBeamBreathV790{
  from{opacity:.68;transform:scale(.995)}
  to{opacity:.92;transform:scale(1.012)}
}
@keyframes weddingFirstDanceWhiteSpotV790{
  0%{transform:translate3d(calc(-50% - 20px),5px,0) scale(.92);opacity:.86}
  34%{transform:translate3d(calc(-50% - 7px),0,0) scale(1.00);opacity:1}
  68%{transform:translate3d(calc(-50% + 9px),-3px,0) scale(1.04);opacity:.98}
  100%{transform:translate3d(calc(-50% + 21px),2px,0) scale(.97);opacity:.88}
}

.wedding-booth-selector-visual[data-ambience="party"]{
  --wedding-ambience-filter:brightness(.47) saturate(1.48) contrast(1.24);
}
.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-wash{
  opacity:.97;
  background:
    radial-gradient(ellipse 7% 40% at 13% 57%,rgba(255,55,166,.34),transparent 74%),
    radial-gradient(ellipse 7% 40% at 31% 57%,rgba(169,78,255,.26),transparent 74%),
    radial-gradient(ellipse 7% 40% at 69% 57%,rgba(70,148,255,.26),transparent 74%),
    radial-gradient(ellipse 7% 40% at 87% 57%,rgba(255,60,172,.34),transparent 74%),
    linear-gradient(180deg,rgba(4,3,11,.74) 0%,rgba(12,4,18,.58) 38%,rgba(5,3,10,.76) 100%);
}
.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-beams{
  opacity:1;
  background:
    linear-gradient(112deg,transparent 0 35%,rgba(179,78,255,0) 39%,rgba(179,78,255,.28) 44%,rgba(213,100,255,.72) 48%,rgba(179,78,255,.24) 52%,rgba(179,78,255,0) 57%,transparent 61% 100%),
    linear-gradient(68deg,transparent 0 35%,rgba(74,159,255,0) 39%,rgba(74,159,255,.28) 44%,rgba(91,183,255,.72) 48%,rgba(74,159,255,.24) 52%,rgba(74,159,255,0) 57%,transparent 61% 100%),
    radial-gradient(ellipse 20% 56% at 22% 13%,rgba(209,90,255,.30),transparent 71%),
    radial-gradient(ellipse 20% 56% at 78% 13%,rgba(72,165,255,.31),transparent 71%);
  animation:weddingPartyBeamsV790 4.2s ease-in-out infinite alternate!important;
}
.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-floor-spots{
  opacity:1;
  filter:blur(.15px) saturate(1.42) brightness(1.12);
  background:
    radial-gradient(circle at 9% 70%,rgba(var(--party-accent-rgb),1) 0 2.2%,transparent 5.8%),
    radial-gradient(circle at 18% 84%,rgba(250,72,186,.96) 0 2.1%,transparent 5.4%),
    radial-gradient(circle at 29% 72%,rgba(79,183,255,.98) 0 2.1%,transparent 5.4%),
    radial-gradient(circle at 39% 91%,rgba(var(--party-accent-soft-rgb),.98) 0 2.3%,transparent 5.8%),
    radial-gradient(circle at 50% 76%,rgba(255,87,105,.96) 0 2.1%,transparent 5.5%),
    radial-gradient(circle at 60% 90%,rgba(87,228,255,.96) 0 2.2%,transparent 5.8%),
    radial-gradient(circle at 70% 72%,rgba(var(--party-accent-rgb),.98) 0 2.2%,transparent 5.6%),
    radial-gradient(circle at 81% 86%,rgba(224,86,255,.96) 0 2.2%,transparent 5.8%),
    radial-gradient(circle at 91% 69%,rgba(255,206,72,.94) 0 2.1%,transparent 5.5%);
  animation:weddingPartyFloorBaseV790 5.8s ease-in-out infinite alternate!important;
}
.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-floor-spots::before{
  opacity:.94;
  filter:saturate(1.34) brightness(1.12);
}
.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-floor-spots::after{
  opacity:.84;
  filter:saturate(1.32) brightness(1.10);
}
@keyframes weddingPartyBeamsV790{
  from{transform:translate3d(-1.5%,0,0) scale(1);opacity:.80}
  to{transform:translate3d(1.7%,-.6%,0) scale(1.05);opacity:1}
}
@keyframes weddingPartyFloorBaseV790{
  from{transform:translate3d(-2.7%,.7%,0) rotate(-.7deg) scale(.98);opacity:.86}
  to{transform:translate3d(2.8%,-1.8%,0) rotate(.9deg) scale(1.055);opacity:1}
}

@media (prefers-reduced-motion:reduce){
  .wedding-booth-selector-visual[data-ambience="first-dance"] .wedding-booth-ambience-beams,
  .wedding-booth-selector-visual[data-ambience="first-dance"] .wedding-first-dance-floor-spotlight,
  .wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-beams,
  .wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-floor-spots{
    animation:none!important;
  }
}


/* V7.91 — refine Party mode to feel classier and more like realistic dancefloor gobos. */
.wedding-booth-selector-visual[data-ambience="party"]{
  --wedding-ambience-filter:brightness(.50) saturate(1.32) contrast(1.22);
}
.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-wash{
  opacity:.94;
  background:
    radial-gradient(ellipse 18% 58% at 14% 54%,rgba(255,78,174,.16),transparent 76%),
    radial-gradient(ellipse 18% 58% at 86% 54%,rgba(72,159,255,.16),transparent 76%),
    radial-gradient(ellipse 34% 18% at 50% 82%,rgba(190,88,255,.07),transparent 72%),
    linear-gradient(180deg,rgba(4,3,10,.82) 0%,rgba(10,5,16,.62) 36%,rgba(4,3,10,.80) 100%);
}
.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-beams{
  opacity:.92;
  background:
    linear-gradient(110deg,transparent 0 38%,rgba(205,105,255,0) 42%,rgba(205,105,255,.18) 45%,rgba(214,112,255,.60) 48%,rgba(205,105,255,.16) 51%,rgba(205,105,255,0) 55%,transparent 59% 100%),
    linear-gradient(70deg,transparent 0 38%,rgba(94,184,255,0) 42%,rgba(94,184,255,.18) 45%,rgba(110,197,255,.60) 48%,rgba(94,184,255,.16) 51%,rgba(94,184,255,0) 55%,transparent 59% 100%),
    radial-gradient(ellipse 17% 54% at 22% 12%,rgba(203,97,255,.24),transparent 72%),
    radial-gradient(ellipse 17% 54% at 78% 12%,rgba(87,176,255,.24),transparent 72%);
  animation:weddingPartyBeamsV791 5.6s ease-in-out infinite alternate!important;
}
.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-glow{
  opacity:.36;
  background:
    radial-gradient(ellipse 18% 10% at 18% 92%,rgba(var(--party-accent-rgb),.18),transparent 72%),
    radial-gradient(ellipse 18% 10% at 82% 92%,rgba(var(--party-accent-soft-rgb),.16),transparent 72%),
    radial-gradient(ellipse 22% 11% at 50% 95%,rgba(255,166,80,.12),transparent 74%);
  animation:weddingPartyGlowV791 6.4s ease-in-out infinite alternate!important;
}
.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-floor-spots{
  inset:auto 4% -1% 4%;
  height:34%;
  opacity:.92;
  overflow:visible;
  mix-blend-mode:screen;
  filter:blur(.8px) saturate(1.18) brightness(1.04);
  background:
    radial-gradient(ellipse 4.8% 2.6% at 10% 76%,rgba(var(--party-accent-rgb),.92) 0%,rgba(var(--party-accent-rgb),.62) 30%,transparent 72%),
    radial-gradient(ellipse 4.2% 2.4% at 22% 88%,rgba(242,88,185,.82) 0%,rgba(242,88,185,.46) 32%,transparent 72%),
    radial-gradient(ellipse 4.6% 2.5% at 36% 79%,rgba(89,185,255,.86) 0%,rgba(89,185,255,.50) 32%,transparent 72%),
    radial-gradient(ellipse 5.2% 2.8% at 50% 92%,rgba(var(--party-accent-soft-rgb),.92) 0%,rgba(var(--party-accent-soft-rgb),.58) 34%,transparent 74%),
    radial-gradient(ellipse 4.6% 2.5% at 65% 80%,rgba(255,98,136,.84) 0%,rgba(255,98,136,.48) 32%,transparent 72%),
    radial-gradient(ellipse 4.2% 2.4% at 79% 89%,rgba(94,228,255,.82) 0%,rgba(94,228,255,.46) 32%,transparent 72%),
    radial-gradient(ellipse 4.8% 2.6% at 91% 78%,rgba(var(--party-accent-rgb),.88) 0%,rgba(var(--party-accent-rgb),.54) 30%,transparent 72%);
  animation:weddingPartyFloorBaseV791 7.4s ease-in-out infinite alternate!important;
}
.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-floor-spots::before,
.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-floor-spots::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  transform-origin:50% 85%;
  mix-blend-mode:screen;
}
.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-floor-spots::before{
  opacity:.72;
  filter:blur(1px) saturate(1.12);
  background:
    radial-gradient(ellipse 3.8% 2.1% at 16% 83%,rgba(255,205,88,.72) 0%,rgba(255,205,88,.34) 34%,transparent 74%),
    radial-gradient(ellipse 4.0% 2.2% at 31% 93%,rgba(var(--party-accent-rgb),.72) 0%,rgba(var(--party-accent-rgb),.36) 34%,transparent 74%),
    radial-gradient(ellipse 3.8% 2.1% at 48% 76%,rgba(225,102,255,.70) 0%,rgba(225,102,255,.32) 34%,transparent 74%),
    radial-gradient(ellipse 4.0% 2.2% at 69% 92%,rgba(var(--party-accent-soft-rgb),.70) 0%,rgba(var(--party-accent-soft-rgb),.34) 34%,transparent 74%),
    radial-gradient(ellipse 3.8% 2.1% at 84% 82%,rgba(88,176,255,.68) 0%,rgba(88,176,255,.30) 34%,transparent 74%);
  animation:weddingPartyFloorSweepAV791 6.6s ease-in-out infinite alternate!important;
}
.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-floor-spots::after{
  opacity:.58;
  filter:blur(1.2px) saturate(1.08);
  background:
    radial-gradient(ellipse 3.6% 2.0% at 23% 78%,rgba(255,114,170,.62) 0%,rgba(255,114,170,.28) 34%,transparent 74%),
    radial-gradient(ellipse 3.8% 2.1% at 42% 89%,rgba(91,229,255,.62) 0%,rgba(91,229,255,.28) 34%,transparent 74%),
    radial-gradient(ellipse 3.5% 1.9% at 58% 82%,rgba(255,210,102,.60) 0%,rgba(255,210,102,.26) 34%,transparent 74%),
    radial-gradient(ellipse 3.8% 2.1% at 76% 91%,rgba(var(--party-accent-rgb),.64) 0%,rgba(var(--party-accent-rgb),.28) 34%,transparent 74%);
  animation:weddingPartyFloorSweepBV791 8.2s ease-in-out infinite alternate-reverse!important;
}
@keyframes weddingPartyBeamsV791{
  from{transform:translate3d(-.9%,0,0) scale(.995);opacity:.78}
  to{transform:translate3d(1.1%,-.4%,0) scale(1.025);opacity:.96}
}
@keyframes weddingPartyGlowV791{
  from{transform:scale(.99);opacity:.26}
  to{transform:scale(1.03);opacity:.42}
}
@keyframes weddingPartyFloorBaseV791{
  0%{transform:translate3d(-1.5%,.3%,0) scale(.985);opacity:.80}
  50%{transform:translate3d(.4%,-.5%,0) scale(1.01);opacity:.96}
  100%{transform:translate3d(1.7%,-1.0%,0) scale(1.03);opacity:.86}
}
@keyframes weddingPartyFloorSweepAV791{
  0%{transform:translate3d(-2.4%,1.6%,0) rotate(-.6deg) scale(.99)}
  50%{transform:translate3d(.8%,-.6%,0) rotate(.2deg) scale(1.02)}
  100%{transform:translate3d(2.8%,-1.8%,0) rotate(.8deg) scale(1.04)}
}
@keyframes weddingPartyFloorSweepBV791{
  0%{transform:translate3d(2.0%,-.8%,0) rotate(.6deg) scale(1.02)}
  50%{transform:translate3d(-.6%,.7%,0) rotate(-.1deg) scale(1.0)}
  100%{transform:translate3d(-2.5%,1.8%,0) rotate(-.8deg) scale(.98)}
}
@media (prefers-reduced-motion:reduce){
  .wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-beams,
  .wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-glow,
  .wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-floor-spots,
  .wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-floor-spots::before,
  .wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-floor-spots::after{
    animation:none!important;
  }
}


/* V7.92 — selector actions match the compact icon-button treatment from the promo artwork. */
.wedding-setup-action-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  width:min(100%,620px);
  margin:16px 0 0;
}
.wedding-setup-icon-action{
  appearance:none;
  -webkit-appearance:none;
  min-width:0;
  padding:0;
  border:0;
  background:transparent;
  color:#2b211b;
  text-decoration:none;
  font:inherit;
  font-weight:700;
  cursor:pointer;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:8px;
  text-align:center;
}
.wedding-setup-icon-frame{
  width:100%;
  min-height:74px;
  display:grid;
  place-items:center;
  border:1.5px solid rgba(168,126,68,.48);
  border-radius:18px;
  background:linear-gradient(145deg,rgba(255,253,248,.96),rgba(243,232,216,.82));
  box-shadow:0 12px 28px rgba(71,48,31,.075),inset 0 1px 0 rgba(255,255,255,.96);
  transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease,background .2s ease;
}
.wedding-setup-icon-frame svg{
  width:34px;
  height:34px;
  fill:none;
  stroke:#ad8449;
  stroke-width:2.3;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.wedding-setup-icon-action[data-save-setup] .wedding-setup-icon-frame svg path{
  fill:#c69d5b;
  stroke:#c69d5b;
}
.wedding-setup-icon-label{
  display:block;
  min-height:1.2em;
  font-size:.88rem;
  line-height:1.2;
}
.wedding-setup-icon-action:hover .wedding-setup-icon-frame,
.wedding-setup-icon-action:focus-visible .wedding-setup-icon-frame{
  transform:translateY(-2px);
  border-color:rgba(168,126,68,.80);
  background:linear-gradient(145deg,#fffdf7,#efe0c9);
  box-shadow:0 16px 34px rgba(71,48,31,.12),inset 0 1px 0 rgba(255,255,255,.98);
}
.wedding-setup-icon-action:focus-visible{outline:none}
.wedding-setup-utility-actions{
  margin-top:13px;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px 14px;
}
.wedding-setup-utility-actions button,
.wedding-setup-utility-actions a{
  appearance:none;
  -webkit-appearance:none;
  border:0;
  padding:0;
  background:transparent;
  color:#765b38;
  font:inherit;
  font-size:.82rem;
  font-weight:650;
  text-decoration:none;
  cursor:pointer;
  border-bottom:1px solid rgba(118,91,56,.22);
}
.wedding-setup-utility-actions button:hover,
.wedding-setup-utility-actions button:focus-visible,
.wedding-setup-utility-actions a:hover,
.wedding-setup-utility-actions a:focus-visible{
  color:#9c743f;
  border-bottom-color:rgba(156,116,63,.58);
  outline:none;
}

@media(max-width:1080px){
  .wedding-setup-action-grid{margin-left:auto;margin-right:auto}
  .wedding-setup-utility-actions{justify-content:center}
}

@media(max-width:760px){
  .wedding-dj-page .wedding-booth-selector-cta{
    padding:14px 12px 16px!important;
    border:1px solid rgba(219,181,116,.18);
    border-radius:16px;
    background:linear-gradient(180deg,#1b1816 0%,#121110 100%);
    color:#eee7df;
    box-shadow:0 16px 34px rgba(0,0,0,.14);
  }
  .wedding-dj-page .wedding-booth-selector-cta .cta-title{
    margin-bottom:5px;
    color:#d9b475;
    font-size:.72rem!important;
    line-height:1.1;
    letter-spacing:.16em;
    text-transform:uppercase;
    font-weight:800;
  }
  .wedding-dj-page .wedding-booth-selector-cta>p:not(.cta-title){
    margin-bottom:12px;
    color:#c9c0b8;
    font-size:.76rem!important;
    line-height:1.45!important;
  }
  .wedding-setup-action-grid{
    width:100%;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:8px;
    margin-top:10px;
  }
  .wedding-setup-icon-action{
    color:#f4eee7;
    gap:6px;
  }
  .wedding-setup-icon-frame{
    min-height:58px;
    border-radius:13px;
    border-color:rgba(222,181,105,.58);
    background:linear-gradient(180deg,#211d19 0%,#171512 100%);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.03),0 7px 16px rgba(0,0,0,.16);
  }
  .wedding-setup-icon-frame svg{
    width:27px;
    height:27px;
    stroke:#e3bd75;
    stroke-width:2.2;
  }
  .wedding-setup-icon-action[data-save-setup] .wedding-setup-icon-frame svg path{
    fill:#e3bd75;
    stroke:#e3bd75;
  }
  .wedding-setup-icon-label{
    font-size:.67rem;
    line-height:1.16;
    color:#f5efe8;
  }
  .wedding-setup-icon-action:hover .wedding-setup-icon-frame,
  .wedding-setup-icon-action:focus-visible .wedding-setup-icon-frame{
    transform:translateY(-1px);
    border-color:#e3bd75;
    background:linear-gradient(180deg,#2b241c 0%,#1c1814 100%);
    box-shadow:0 8px 18px rgba(0,0,0,.18),inset 0 1px 0 rgba(255,255,255,.04);
  }
  .wedding-setup-utility-actions{
    justify-content:center;
    gap:7px 12px;
    margin-top:12px;
  }
  .wedding-setup-utility-actions button,
  .wedding-setup-utility-actions a{
    color:#bba989;
    font-size:.66rem;
    border-bottom-color:rgba(219,181,116,.20);
  }
}

@media(max-width:390px){
  .wedding-setup-action-grid{gap:6px}
  .wedding-setup-icon-frame{min-height:54px;border-radius:12px}
  .wedding-setup-icon-frame svg{width:25px;height:25px}
  .wedding-setup-icon-label{font-size:.62rem}
}


/* V7.93 — party refinement and centred 4+3 mobile colour layout. */
@media(max-width:760px){
  .wedding-dj-page .wedding-lighting-selector-controls{
    grid-template-columns:repeat(12,minmax(0,1fr))!important;
    gap:8px 6px!important;
    align-items:start;
  }
  .wedding-dj-page .wedding-lighting-selector-controls button{
    min-height:54px!important;
    font-size:.58rem!important;
  }
  .wedding-dj-page .wedding-lighting-selector-controls button:nth-child(1){grid-column:1 / span 3}
  .wedding-dj-page .wedding-lighting-selector-controls button:nth-child(2){grid-column:4 / span 3}
  .wedding-dj-page .wedding-lighting-selector-controls button:nth-child(3){grid-column:7 / span 3}
  .wedding-dj-page .wedding-lighting-selector-controls button:nth-child(4){grid-column:10 / span 3}
  .wedding-dj-page .wedding-lighting-selector-controls button:nth-child(5){grid-column:2 / span 3}
  .wedding-dj-page .wedding-lighting-selector-controls button:nth-child(6){grid-column:5 / span 3}
  .wedding-dj-page .wedding-lighting-selector-controls button:nth-child(7){grid-column:8 / span 3}
}

.wedding-booth-selector-visual[data-ambience="party"]{
  --wedding-ambience-filter:brightness(.60) saturate(1.28) contrast(1.16);
}
.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-wash{
  opacity:.72;
  background:
    radial-gradient(ellipse 10% 46% at 15% 56%,rgba(255,75,170,.20),transparent 76%),
    radial-gradient(ellipse 10% 46% at 85% 56%,rgba(88,168,255,.18),transparent 76%),
    radial-gradient(ellipse 18% 9% at 50% 88%,rgba(185,92,255,.08),transparent 74%),
    linear-gradient(180deg,rgba(5,4,10,.52) 0%,rgba(9,5,14,.22) 32%,rgba(5,4,10,.54) 100%);
}
.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-beams{
  opacity:.84;
  background:
    radial-gradient(ellipse 10% 68% at 31% 8%,rgba(118,201,255,.68) 0%,rgba(118,201,255,.22) 28%,rgba(118,201,255,.08) 42%,transparent 66%),
    radial-gradient(ellipse 10% 68% at 69% 8%,rgba(225,126,255,.68) 0%,rgba(225,126,255,.22) 28%,rgba(225,126,255,.08) 42%,transparent 66%),
    radial-gradient(ellipse 6% 12% at 31% 8%,rgba(203,238,255,.24),transparent 72%),
    radial-gradient(ellipse 6% 12% at 69% 8%,rgba(252,220,255,.24),transparent 72%);
  animation:weddingPartyBeamsV793 6.2s ease-in-out infinite alternate!important;
}
.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-floor-spots{
  inset:auto 5% 0 5%;
  height:31%;
  opacity:.90;
  filter:blur(.45px) saturate(1.18) brightness(1.06);
  background:
    radial-gradient(circle at 10% 74%,rgba(var(--party-accent-rgb),.92) 0 1.8%,transparent 4.6%),
    radial-gradient(circle at 19% 86%,rgba(246,96,186,.76) 0 1.6%,transparent 4.1%),
    radial-gradient(circle at 31% 76%,rgba(88,186,255,.82) 0 1.6%,transparent 4.1%),
    radial-gradient(circle at 42% 90%,rgba(var(--party-accent-soft-rgb),.86) 0 1.9%,transparent 4.7%),
    radial-gradient(circle at 53% 79%,rgba(255,197,84,.74) 0 1.5%,transparent 4%),
    radial-gradient(circle at 65% 90%,rgba(89,226,255,.76) 0 1.7%,transparent 4.3%),
    radial-gradient(circle at 77% 78%,rgba(233,103,255,.82) 0 1.7%,transparent 4.2%),
    radial-gradient(circle at 90% 74%,rgba(var(--party-accent-rgb),.88) 0 1.8%,transparent 4.6%);
  animation:weddingPartyFloorBaseV793 7.2s ease-in-out infinite alternate!important;
}
.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-floor-spots::before{
  opacity:.60;
  filter:blur(.8px) saturate(1.08) brightness(1.02);
  background:
    radial-gradient(circle at 16% 82%,rgba(255,211,100,.56) 0 1.4%,transparent 3.8%),
    radial-gradient(circle at 34% 92%,rgba(var(--party-accent-rgb),.52) 0 1.5%,transparent 4%),
    radial-gradient(circle at 51% 77%,rgba(219,112,255,.54) 0 1.4%,transparent 3.8%),
    radial-gradient(circle at 69% 92%,rgba(var(--party-accent-soft-rgb),.48) 0 1.5%,transparent 4%),
    radial-gradient(circle at 85% 82%,rgba(96,181,255,.50) 0 1.4%,transparent 3.8%);
  animation:weddingPartyFloorSweepAV793 6.6s ease-in-out infinite alternate!important;
}
.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-floor-spots::after{
  opacity:.46;
  filter:blur(1px) saturate(1.02);
  background:
    radial-gradient(circle at 24% 78%,rgba(255,120,174,.40) 0 1.3%,transparent 3.6%),
    radial-gradient(circle at 43% 89%,rgba(91,229,255,.40) 0 1.3%,transparent 3.6%),
    radial-gradient(circle at 59% 82%,rgba(255,212,106,.38) 0 1.3%,transparent 3.6%),
    radial-gradient(circle at 76% 90%,rgba(var(--party-accent-rgb),.42) 0 1.4%,transparent 3.7%);
  animation:weddingPartyFloorSweepBV793 8s ease-in-out infinite alternate-reverse!important;
}
@keyframes weddingPartyBeamsV793{
  from{transform:translate3d(-.5%,0,0) scale(.995);opacity:.74}
  to{transform:translate3d(.7%,-.5%,0) scale(1.02);opacity:.88}
}
@keyframes weddingPartyFloorBaseV793{
  0%{transform:translate3d(-1.7%,.4%,0) scale(.99);opacity:.82}
  50%{transform:translate3d(.3%,-.4%,0) scale(1.01);opacity:.92}
  100%{transform:translate3d(1.8%,-1.1%,0) scale(1.03);opacity:.86}
}
@keyframes weddingPartyFloorSweepAV793{
  0%{transform:translate3d(-2.1%,1.2%,0) rotate(-.5deg) scale(.99)}
  50%{transform:translate3d(.6%,-.5%,0) rotate(.12deg) scale(1.01)}
  100%{transform:translate3d(2.2%,-1.4%,0) rotate(.6deg) scale(1.03)}
}
@keyframes weddingPartyFloorSweepBV793{
  0%{transform:translate3d(1.8%,-.7%,0) rotate(.45deg) scale(1.01)}
  50%{transform:translate3d(-.4%,.6%,0) rotate(0) scale(1)}
  100%{transform:translate3d(-2.0%,1.4%,0) rotate(-.55deg) scale(.99)}
}
@media (prefers-reduced-motion:reduce){
  .wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-beams,
  .wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-floor-spots,
  .wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-floor-spots::before,
  .wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-floor-spots::after{
    animation:none!important;
  }
}


/* V7.94 — compact saved-setup card matching the icon action language. */
.wedding-saved-setup{
  scroll-margin-top:120px;
}
.wedding-saved-setup-action-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  margin-top:16px;
}
.wedding-saved-icon-action{
  appearance:none;
  -webkit-appearance:none;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-start;
  gap:8px;
  min-width:0;
  padding:0;
  border:0;
  background:none;
  color:inherit;
  text-decoration:none;
  font:inherit;
  cursor:pointer;
}
.wedding-saved-icon-frame{
  width:100%;
  min-height:66px;
  display:grid;
  place-items:center;
  border:1px solid rgba(219,181,116,.44);
  border-radius:18px;
  background:linear-gradient(180deg,rgba(40,34,28,.78),rgba(24,20,17,.88));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04),0 8px 18px rgba(0,0,0,.10);
  transition:transform .2s ease,border-color .2s ease,background .2s ease,box-shadow .2s ease;
}
.wedding-saved-icon-frame svg{
  width:29px;
  height:29px;
  overflow:visible;
  fill:none;
  stroke:#e2bd76;
  stroke-width:2.4;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.wedding-saved-icon-label{
  color:#f3ede6;
  font-size:.74rem;
  line-height:1.15;
  font-weight:700;
  text-align:center;
}
.wedding-saved-icon-action:hover .wedding-saved-icon-frame,
.wedding-saved-icon-action:focus-visible .wedding-saved-icon-frame{
  transform:translateY(-1px);
  border-color:#e5c27e;
  background:linear-gradient(180deg,#2d261f,#1d1915);
  box-shadow:0 10px 22px rgba(0,0,0,.18),inset 0 1px 0 rgba(255,255,255,.05);
}
.wedding-saved-icon-action:focus-visible{outline:none}
.wedding-saved-clear{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin:14px auto 0;
  padding:4px 2px;
  border:0;
  border-bottom:1px solid rgba(219,181,116,.24);
  background:none;
  color:#ad9d84;
  font:inherit;
  font-size:.72rem;
  font-weight:650;
  cursor:pointer;
}
.wedding-saved-clear:hover,.wedding-saved-clear:focus-visible{
  color:#d9b475;
  border-bottom-color:rgba(219,181,116,.52);
  outline:none;
}
@media(max-width:760px){
  .wedding-saved-setup{
    margin-top:14px!important;
    padding:14px 12px 12px!important;
    border-radius:16px!important;
    text-align:center;
  }
  .wedding-saved-setup-kicker{margin-bottom:6px!important;font-size:.68rem!important}
  .wedding-saved-setup-summary{font-size:.94rem!important;line-height:1.3!important}
  .wedding-saved-setup-note{margin-top:6px!important;font-size:.72rem!important;line-height:1.4!important}
  .wedding-saved-setup-action-grid{gap:7px;margin-top:12px}
  .wedding-saved-icon-frame{min-height:56px;border-radius:14px}
  .wedding-saved-icon-frame svg{width:24px;height:24px}
  .wedding-saved-icon-label{font-size:.61rem}
  .wedding-saved-clear{margin-top:10px;font-size:.64rem}
}
@media(max-width:390px){
  .wedding-saved-setup-action-grid{gap:5px}
  .wedding-saved-icon-frame{min-height:52px;border-radius:12px}
  .wedding-saved-icon-frame svg{width:22px;height:22px}
  .wedding-saved-icon-label{font-size:.58rem}
}

/* V7.95 — mobile breathing room around the three wedding intro cards */
@media(max-width:650px){
  .wedding-dj-page .wedding-intro-strip .wedding-shell{
    padding-block-start:22px;
    padding-block-end:30px;
  }
}


/* V7.96 — share actual setup image + description through the device share sheet. */
.wedding-share-targets{
  display:block;
  margin-top:2px;
  color:#a99a8c;
  font-size:.68rem;
  font-weight:500;
  line-height:1.15;
}
.wedding-share-fallback{
  position:fixed;
  inset:0;
  z-index:9999;
  display:grid;
  place-items:center;
  padding:20px;
  background:rgba(3,3,5,.78);
  backdrop-filter:blur(8px);
}
.wedding-share-fallback-card{
  position:relative;
  width:min(520px,100%);
  padding:26px;
  border:1px solid rgba(217,180,117,.30);
  border-radius:24px;
  background:linear-gradient(180deg,#1d1916,#12100f);
  box-shadow:0 28px 80px rgba(0,0,0,.48);
  color:#f8f3ee;
}
.wedding-share-fallback-kicker{
  margin:0 0 7px;
  color:#d9b475;
  font-size:.78rem;
  font-weight:800;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.wedding-share-fallback-card h3{margin:0 42px 8px 0;font-size:1.25rem;line-height:1.25}
.wedding-share-fallback-card p:not(.wedding-share-fallback-kicker){margin:0 0 18px;color:#c8beb5;line-height:1.5}
.wedding-share-fallback-close{
  position:absolute;
  top:14px;
  right:14px;
  width:36px;
  height:36px;
  border:1px solid rgba(217,180,117,.24);
  border-radius:50%;
  background:#191613;
  color:#f8f3ee;
  font-size:1.4rem;
}
.wedding-share-fallback-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.wedding-share-fallback-grid a{
  min-height:50px;
  display:grid;
  place-items:center;
  padding:10px 12px;
  border:1px solid rgba(217,180,117,.28);
  border-radius:14px;
  background:rgba(217,180,117,.07);
  color:#fff9f1;
  font-weight:700;
  text-decoration:none;
}
.wedding-share-fallback-grid a:hover,.wedding-share-fallback-grid a:focus-visible{background:rgba(217,180,117,.15);outline:none}
@media(max-width:520px){
  .wedding-share-fallback-card{padding:22px 18px 18px;border-radius:20px}
  .wedding-share-fallback-grid{grid-template-columns:1fr 1fr}
}


/* V7.97 — simplify saved-setup card and remove duplicate icon actions. */
.wedding-saved-setup{
  margin-top:18px!important;
  padding:18px 18px 16px!important;
  border:1px solid rgba(219,181,116,.18)!important;
  background:linear-gradient(180deg,rgba(18,15,13,.95),rgba(25,20,17,.97))!important;
  box-shadow:0 16px 30px rgba(0,0,0,.18)!important;
}
.wedding-saved-setup-summary{color:#fffaf4!important}
.wedding-saved-setup-note{color:#cdbdad!important}
.wedding-saved-setup-actions-inline{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:center;
  gap:16px 22px;
  margin-top:16px;
  padding-top:14px;
  border-top:1px solid rgba(219,181,116,.18);
}
.wedding-saved-inline-action{
  appearance:none;
  -webkit-appearance:none;
  padding:0;
  border:0;
  background:none;
  color:#d9b475;
  text-decoration:none;
  font:inherit;
  font-size:.82rem;
  font-weight:700;
  letter-spacing:.01em;
  cursor:pointer;
}
.wedding-saved-inline-action:hover,
.wedding-saved-inline-action:focus-visible{
  color:#efd09a;
  text-decoration:underline;
  text-underline-offset:.22em;
  outline:none;
}
.wedding-saved-clear{
  margin-top:12px;
}
@media(max-width:760px){
  .wedding-saved-setup{
    margin-top:12px!important;
    padding:14px 12px 12px!important;
  }
  .wedding-saved-setup-actions-inline{
    flex-direction:column;
    gap:10px;
    margin-top:12px;
    padding-top:12px;
  }
  .wedding-saved-inline-action{
    font-size:.78rem;
  }
  .wedding-saved-clear{
    margin-top:10px;
  }
}

/* V7.97 — refine first-dance ambience to a single soft beam and moving floor spot. */
.wedding-booth-selector-visual[data-ambience="first-dance"] .wedding-booth-ambience-beams{
  opacity:.44;
  background:
    radial-gradient(ellipse 17% 66% at 50% 10%,rgba(255,255,255,.36) 0%,rgba(255,250,240,.18) 40%,transparent 76%),
    linear-gradient(180deg,rgba(255,253,246,.26) 0%,rgba(255,248,236,.10) 18%,rgba(255,245,230,0) 58%);
  animation:weddingFirstDanceSingleBeamV797 9s ease-in-out infinite alternate!important;
}
.wedding-booth-selector-visual[data-ambience="first-dance"] .wedding-booth-ambience-glow{
  opacity:.44;
  background:
    radial-gradient(circle at 50% 53%,rgba(255,230,189,.12),transparent 22%),
    radial-gradient(ellipse 26% 14% at 50% 89%,rgba(255,247,232,.32),rgba(255,220,167,.16) 48%,transparent 76%);
}
.wedding-booth-selector-visual[data-ambience="first-dance"] .wedding-first-dance-floor-spotlight{
  width:43%;
  bottom:2.4%;
  opacity:.96;
  mix-blend-mode:screen;
  animation:weddingFirstDanceWhiteSpotV797 11.2s ease-in-out infinite alternate!important;
}
@keyframes weddingFirstDanceSingleBeamV797{
  0%{transform:translate3d(-1.6%,0,0) scaleX(.96);opacity:.30}
  50%{transform:translate3d(0,0,0) scaleX(1);opacity:.42}
  100%{transform:translate3d(1.7%,-.3%,0) scaleX(1.03);opacity:.34}
}
@keyframes weddingFirstDanceWhiteSpotV797{
  0%{transform:translate3d(calc(-50% - 18px),5px,0) scale(.92);opacity:.82}
  35%{transform:translate3d(calc(-50% - 6px),1px,0) scale(1);opacity:1}
  68%{transform:translate3d(calc(-50% + 8px),-3px,0) scale(1.03);opacity:.98}
  100%{transform:translate3d(calc(-50% + 18px),2px,0) scale(.95);opacity:.86}
}
@media (prefers-reduced-motion:reduce){
  .wedding-booth-selector-visual[data-ambience="first-dance"] .wedding-booth-ambience-beams,
  .wedding-booth-selector-visual[data-ambience="first-dance"] .wedding-first-dance-floor-spotlight{
    animation:none!important;
  }
}


/* V7.98 — restore a deliberate desktop selector layout.
   A legacy desktop grid override dropped the ambience area, which created an
   implicit third grid column and squeezed the live preview. Mobile remains unchanged. */
@media(min-width:1081px){
  .wedding-dj-page .wedding-booth-selector-section .wedding-shell{
    grid-template-columns:minmax(0,1.28fr) minmax(390px,.72fr)!important;
    grid-template-areas:
      "intro intro"
      "visual booth"
      "visual ambience"
      "visual lighting"
      "details cta"!important;
    column-gap:34px!important;
    row-gap:0!important;
    align-items:start;
  }

  .wedding-dj-page .wedding-booth-selector-intro{
    max-width:960px;
    margin-bottom:30px;
  }

  .wedding-dj-page .wedding-booth-selector-visual{
    grid-area:visual;
    width:100%;
    max-width:none;
    margin:0!important;
    border-radius:24px!important;
    position:sticky;
    top:106px;
    overflow:hidden;
    box-shadow:0 28px 64px rgba(58,40,28,.14),0 0 0 1px rgba(150,114,70,.16)!important;
  }

  /* Desktop control stack mirrors the polished phone selector rather than a collection of loose controls. */
  .wedding-dj-page .wedding-booth-selector-controls{
    grid-area:booth;
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:10px!important;
    margin:0!important;
    padding:18px 18px 16px!important;
    border:1px solid rgba(219,181,116,.20);
    border-bottom:0;
    border-radius:22px 22px 0 0;
    background:linear-gradient(180deg,#211d1a 0%,#1b1815 100%);
    box-shadow:0 16px 36px rgba(0,0,0,.08);
  }
  .wedding-dj-page .wedding-booth-selector-controls::before{
    content:"BOOTH STYLE";
    grid-column:1 / -1;
    margin:0 0 2px;
    color:#d9b475;
    font-size:.75rem;
    line-height:1;
    font-weight:800;
    letter-spacing:.17em;
    text-transform:uppercase;
  }
  .wedding-dj-page .wedding-booth-selector-controls button{
    min-width:0;
    min-height:122px;
    padding:0 0 8px!important;
    display:flex;
    flex-direction:column;
    align-items:stretch;
    justify-content:flex-start;
    gap:8px;
    border:0!important;
    border-radius:14px!important;
    background:transparent!important;
    color:#f6efe8!important;
    box-shadow:none!important;
    font-size:.78rem!important;
    font-weight:700;
    line-height:1.1;
  }
  .wedding-dj-page .wedding-booth-selector-controls button::before{
    content:"";
    display:block;
    width:100%;
    aspect-ratio:1.52 / 1;
    border:1px solid rgba(255,255,255,.14);
    border-radius:12px;
    background-position:center;
    background-size:cover;
    background-repeat:no-repeat;
    box-shadow:inset 0 0 0 1px rgba(0,0,0,.06);
    transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease;
  }
  .wedding-dj-page .wedding-booth-selector-controls button[data-style="plain-white"]::before{
    background-image:url("photos/wedding-booth-lighting-warm-white-v777.webp");
  }
  .wedding-dj-page .wedding-booth-selector-controls button[data-style="starlit"]::before{
    background-image:url("photos/wedding-booth-overlay-starlit.webp"),url("photos/wedding-booth-lighting-warm-white-v777.webp");
  }
  .wedding-dj-page .wedding-booth-selector-controls button[data-style="plant-panel"]::before{
    background-image:url("photos/wedding-booth-overlay-plant-panel.webp"),url("photos/wedding-booth-lighting-warm-white-v777.webp");
  }
  .wedding-dj-page .wedding-booth-selector-controls button[data-style="plain-black"]::before{
    background-image:url("photos/wedding-booth-overlay-plain-black.webp"),url("photos/wedding-booth-lighting-warm-white-v777.webp");
  }
  .wedding-dj-page .wedding-booth-selector-controls button.is-active{
    color:#fffaf2!important;
    background:linear-gradient(180deg,rgba(134,96,49,.27),rgba(84,60,33,.22))!important;
  }
  .wedding-dj-page .wedding-booth-selector-controls button.is-active::before{
    border-color:#ddb56d;
    box-shadow:0 0 0 2px rgba(221,181,109,.30),0 8px 18px rgba(0,0,0,.20);
  }
  .wedding-dj-page .wedding-booth-selector-controls button:hover::before,
  .wedding-dj-page .wedding-booth-selector-controls button:focus-visible::before{
    transform:translateY(-1px);
    border-color:rgba(221,181,109,.72);
  }

  .wedding-dj-page .wedding-ambience-selector{
    grid-area:ambience;
    margin:0!important;
    padding:16px 18px 15px!important;
    border:0!important;
    border-left:1px solid rgba(219,181,116,.20)!important;
    border-right:1px solid rgba(219,181,116,.20)!important;
    border-radius:0!important;
    background:linear-gradient(180deg,#1b1815 0%,#181512 100%)!important;
    box-shadow:none!important;
  }
  .wedding-dj-page .wedding-ambience-selector-head{
    display:block!important;
    margin:0 0 11px!important;
  }
  .wedding-dj-page .wedding-ambience-selector-label{
    color:#d9b475!important;
    font-size:.75rem!important;
    line-height:1!important;
    font-weight:800;
    letter-spacing:.17em!important;
  }
  .wedding-dj-page .wedding-ambience-selector-hint{
    margin-top:6px!important;
    color:#a99c90!important;
    font-size:.76rem!important;
    line-height:1.35!important;
    text-align:left!important;
  }
  .wedding-dj-page .wedding-ambience-selector-controls{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:8px!important;
  }
  .wedding-dj-page .wedding-ambience-selector-controls button{
    min-height:46px!important;
    padding:9px 6px!important;
    border:1px solid rgba(218,180,111,.22)!important;
    border-radius:12px!important;
    background:#24201c!important;
    color:#f6efe8!important;
    box-shadow:none!important;
    font-size:.76rem!important;
    font-weight:700;
  }
  .wedding-dj-page .wedding-ambience-selector-controls button.is-active{
    border-color:#ddb56d!important;
    background:linear-gradient(135deg,#5d4528 0%,#8d6834 100%)!important;
    color:#fffaf2!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.14),0 6px 14px rgba(0,0,0,.14)!important;
  }
  .wedding-dj-page .wedding-ambience-copy{
    margin:9px 1px 0!important;
    color:#c8beb5!important;
    font-size:.76rem!important;
    line-height:1.45!important;
  }

  .wedding-dj-page .wedding-lighting-selector{
    grid-area:lighting;
    margin:0!important;
    padding:16px 18px 18px!important;
    border:0!important;
    border-left:1px solid rgba(219,181,116,.20)!important;
    border-right:1px solid rgba(219,181,116,.20)!important;
    border-bottom:1px solid rgba(219,181,116,.20)!important;
    border-radius:0 0 22px 22px!important;
    background:linear-gradient(180deg,#181512 0%,#141210 100%)!important;
    box-shadow:0 18px 36px rgba(0,0,0,.10)!important;
  }
  .wedding-dj-page .wedding-lighting-selector-controls{
    display:grid;
    grid-template-columns:repeat(12,minmax(0,1fr))!important;
    gap:10px 8px!important;
    align-items:start;
  }
  .wedding-dj-page .wedding-lighting-selector-controls::before{
    content:"LIGHTING COLOUR";
    grid-column:1 / -1;
    margin:0 0 3px;
    color:#d9b475;
    font-size:.75rem;
    line-height:1;
    font-weight:800;
    letter-spacing:.17em;
    text-transform:uppercase;
  }
  .wedding-dj-page .wedding-lighting-selector-controls button{
    min-height:60px!important;
    padding:5px 2px!important;
    gap:5px!important;
    border:0!important;
    border-radius:10px!important;
    background:transparent!important;
    color:#f5efe8!important;
    box-shadow:none!important;
    font-size:.68rem!important;
    line-height:1.08!important;
  }
  .wedding-dj-page .wedding-lighting-selector-controls button:nth-child(1){grid-column:1 / span 3}
  .wedding-dj-page .wedding-lighting-selector-controls button:nth-child(2){grid-column:4 / span 3}
  .wedding-dj-page .wedding-lighting-selector-controls button:nth-child(3){grid-column:7 / span 3}
  .wedding-dj-page .wedding-lighting-selector-controls button:nth-child(4){grid-column:10 / span 3}
  .wedding-dj-page .wedding-lighting-selector-controls button:nth-child(5){grid-column:2 / span 3}
  .wedding-dj-page .wedding-lighting-selector-controls button:nth-child(6){grid-column:5 / span 3}
  .wedding-dj-page .wedding-lighting-selector-controls button:nth-child(7){grid-column:8 / span 3}
  .wedding-dj-page .wedding-lighting-selector-controls .lighting-swatch{
    width:30px!important;
    height:30px!important;
    flex-basis:30px!important;
    border:2px solid rgba(255,255,255,.78);
    box-shadow:0 0 0 2px rgba(0,0,0,.36),0 3px 9px rgba(0,0,0,.20);
  }
  .wedding-dj-page .wedding-lighting-selector-controls button.is-active{
    background:linear-gradient(180deg,rgba(134,96,49,.27),rgba(84,60,33,.22))!important;
  }
  .wedding-dj-page .wedding-lighting-selector-controls button.is-active .lighting-swatch{
    box-shadow:0 0 0 2px #e2b86b,0 0 0 4px rgba(226,184,107,.24),0 4px 10px rgba(0,0,0,.22);
  }

  .wedding-dj-page .wedding-booth-selector-details{
    grid-area:details;
    margin:28px 0 0!important;
    padding:22px 24px!important;
    border:1px solid rgba(147,111,67,.15);
    border-radius:20px;
    background:rgba(255,252,247,.68);
    text-align:left!important;
  }
  .wedding-dj-page .wedding-booth-selector-details h3{
    margin-bottom:10px;
    font-size:2rem;
  }
  .wedding-dj-page .wedding-booth-selector-cta{
    grid-area:cta;
    margin:28px 0 0!important;
    padding:22px 24px!important;
    border:1px solid rgba(147,111,67,.15);
    border-radius:20px;
    background:rgba(255,252,247,.68);
    text-align:left!important;
  }
  .wedding-dj-page .wedding-booth-selector-cta .wedding-setup-action-grid{
    max-width:390px;
    margin-left:0;
    margin-right:0;
  }
  .wedding-dj-page .wedding-booth-selector-cta .wedding-setup-utility-actions{
    justify-content:flex-start;
  }
}


/* V8.03 — party mode mobile booth fit + lighter party overlay */
.wedding-dj-page .wedding-booth-selector-visual .wedding-booth-base-image,
.wedding-dj-page .wedding-booth-selector-visual .wedding-booth-front-image{
  object-fit:fill!important;
  object-position:50% 50%!important;
}

.wedding-booth-selector-visual[data-ambience="party"]{
  --wedding-ambience-filter:brightness(1.06) saturate(1.10) contrast(1.03)!important;
}
.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-wash{
  opacity:.22!important;
  background:
    radial-gradient(ellipse 10% 46% at 15% 56%,rgba(255,75,170,.10),transparent 76%),
    radial-gradient(ellipse 10% 46% at 85% 56%,rgba(88,168,255,.10),transparent 76%),
    radial-gradient(ellipse 18% 9% at 50% 88%,rgba(185,92,255,.04),transparent 74%),
    linear-gradient(180deg,rgba(5,4,10,.18) 0%,rgba(9,5,14,.05) 32%,rgba(5,4,10,.16) 100%)!important;
}
.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-beams{
  opacity:.74!important;
}
.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-glow{
  opacity:.28!important;
}
.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-floor-spots{
  opacity:.82!important;
}

/* V8.06 — Party-mode lighting polish.
   Keep the established Party room/base artwork and booth geometry untouched;
   improve only the live animated moving-head beams and projected dancefloor light. */
.wedding-booth-selector-visual[data-ambience="party"]{
  --wedding-ambience-filter:brightness(.92) saturate(1.22) contrast(1.10)!important;
}
.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-wash{
  opacity:.46!important;
  background:
    radial-gradient(ellipse 26% 52% at 20% 48%,rgba(160,63,255,.10),transparent 72%),
    radial-gradient(ellipse 26% 52% at 80% 48%,rgba(49,159,255,.10),transparent 72%),
    linear-gradient(180deg,rgba(3,3,10,.44) 0%,rgba(8,4,14,.24) 44%,rgba(3,3,9,.38) 100%)!important;
}

/* Separate left/right moving-head cones so the beams sweep independently rather
   than sliding as one flat overlay. */
.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-beams{
  opacity:.92!important;
  overflow:hidden;
  background:
    radial-gradient(circle at 21.3% 17.2%,rgba(210,244,255,.90) 0 1.0%,rgba(86,190,255,.38) 1.7%,transparent 4.2%),
    radial-gradient(circle at 78.7% 17.2%,rgba(231,218,255,.88) 0 1.0%,rgba(198,91,255,.34) 1.7%,transparent 4.2%),
    radial-gradient(ellipse 26% 56% at 22% 18%,rgba(65,171,255,.15),transparent 72%),
    radial-gradient(ellipse 26% 56% at 78% 18%,rgba(206,80,255,.14),transparent 72%);
  animation:weddingPartyBeamHazeV806 5.8s ease-in-out infinite alternate!important;
}
.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-beams::before,
.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-beams::after{
  content:"";
  position:absolute;
  top:16.3%;
  width:31%;
  height:61%;
  pointer-events:none;
  mix-blend-mode:screen;
  transform-origin:50% 0%;
  clip-path:polygon(48% 0%,52% 0%,94% 100%,6% 100%);
  filter:blur(.35px) saturate(1.12);
  will-change:transform,opacity;
}
.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-beams::before{
  left:5.8%;
  background:
    linear-gradient(90deg,transparent 0 8%,rgba(55,160,255,.10) 14% 20%,transparent 25% 31%,rgba(84,197,255,.28) 37% 45%,transparent 50% 56%,rgba(63,165,255,.16) 63% 70%,transparent 78%),
    linear-gradient(180deg,rgba(130,220,255,.58) 0%,rgba(68,181,255,.30) 30%,rgba(54,149,255,.12) 62%,transparent 100%);
  animation:weddingPartyBeamLeftV806 4.7s cubic-bezier(.45,0,.55,1) infinite alternate!important;
}
.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-beams::after{
  right:5.8%;
  background:
    linear-gradient(90deg,transparent 0 8%,rgba(194,70,255,.10) 14% 20%,transparent 25% 31%,rgba(223,104,255,.28) 37% 45%,transparent 50% 56%,rgba(177,68,255,.16) 63% 70%,transparent 78%),
    linear-gradient(180deg,rgba(235,171,255,.54) 0%,rgba(207,91,255,.28) 30%,rgba(159,56,242,.11) 62%,transparent 100%);
  animation:weddingPartyBeamRightV806 5.15s cubic-bezier(.45,0,.55,1) infinite alternate-reverse!important;
}

.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-glow{
  opacity:.38!important;
  background:
    radial-gradient(ellipse 19% 8% at 22% 90%,rgba(71,182,255,.24),transparent 74%),
    radial-gradient(ellipse 19% 8% at 78% 90%,rgba(218,92,255,.22),transparent 74%),
    radial-gradient(ellipse 30% 11% at 50% 96%,rgba(var(--party-accent-rgb),.13),transparent 76%);
  animation:weddingPartyGlowV806 5.7s ease-in-out infinite alternate!important;
}

/* Projected spots: wider, softer ellipses with bright centres and gentle halos,
   shaped like real light landing on a floor rather than floating coloured dots. */
.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-floor-spots{
  inset:auto 2.5% -1.5% 2.5%;
  height:36%;
  opacity:.94!important;
  overflow:visible;
  mix-blend-mode:screen;
  filter:saturate(1.16) brightness(1.04);
  transform-origin:50% 92%;
  background:
    radial-gradient(ellipse 8.0% 3.1% at 10% 79%,rgba(var(--party-accent-rgb),.88) 0 18%,rgba(var(--party-accent-rgb),.48) 36%,rgba(var(--party-accent-rgb),.12) 58%,transparent 76%),
    radial-gradient(ellipse 7.4% 2.9% at 24% 91%,rgba(239,89,198,.78) 0 18%,rgba(239,89,198,.40) 38%,rgba(239,89,198,.10) 58%,transparent 76%),
    radial-gradient(ellipse 7.8% 3.0% at 37% 78%,rgba(84,188,255,.82) 0 18%,rgba(84,188,255,.44) 38%,rgba(84,188,255,.10) 58%,transparent 76%),
    radial-gradient(ellipse 9.0% 3.4% at 51% 92%,rgba(var(--party-accent-soft-rgb),.90) 0 18%,rgba(var(--party-accent-soft-rgb),.46) 38%,rgba(var(--party-accent-soft-rgb),.11) 60%,transparent 78%),
    radial-gradient(ellipse 7.8% 3.0% at 65% 79%,rgba(255,98,152,.78) 0 18%,rgba(255,98,152,.40) 38%,rgba(255,98,152,.10) 58%,transparent 76%),
    radial-gradient(ellipse 7.4% 2.9% at 79% 90%,rgba(85,218,255,.78) 0 18%,rgba(85,218,255,.40) 38%,rgba(85,218,255,.10) 58%,transparent 76%),
    radial-gradient(ellipse 8.0% 3.1% at 91% 78%,rgba(var(--party-accent-rgb),.84) 0 18%,rgba(var(--party-accent-rgb),.44) 36%,rgba(var(--party-accent-rgb),.10) 58%,transparent 76%);
  animation:weddingPartyFloorFieldV806 7.6s ease-in-out infinite alternate!important;
}
.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-floor-spots::before,
.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-floor-spots::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  mix-blend-mode:screen;
  transform-origin:50% 88%;
  will-change:transform,opacity;
}
/* A subtle flower/petal gobo that drifts across the centre foreground. */
.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-floor-spots::before{
  opacity:.78;
  filter:blur(.28px) saturate(1.08);
  background:
    radial-gradient(ellipse 8.4% 2.9% at 50% 66%,rgba(181,229,255,.72) 0 26%,rgba(93,193,255,.32) 47%,transparent 72%),
    radial-gradient(ellipse 8.0% 2.8% at 61% 72%,rgba(185,229,255,.68) 0 26%,rgba(95,193,255,.28) 47%,transparent 72%),
    radial-gradient(ellipse 7.8% 2.8% at 66% 82%,rgba(196,225,255,.64) 0 26%,rgba(120,183,255,.26) 47%,transparent 72%),
    radial-gradient(ellipse 8.0% 2.8% at 59% 91%,rgba(190,230,255,.68) 0 26%,rgba(94,194,255,.28) 47%,transparent 72%),
    radial-gradient(ellipse 8.4% 2.9% at 47% 94%,rgba(181,229,255,.72) 0 26%,rgba(93,193,255,.32) 47%,transparent 72%),
    radial-gradient(ellipse 8.0% 2.8% at 36% 89%,rgba(185,229,255,.68) 0 26%,rgba(95,193,255,.28) 47%,transparent 72%),
    radial-gradient(ellipse 7.8% 2.8% at 33% 79%,rgba(196,225,255,.64) 0 26%,rgba(120,183,255,.26) 47%,transparent 72%),
    radial-gradient(ellipse 8.0% 2.8% at 39% 70%,rgba(190,230,255,.68) 0 26%,rgba(94,194,255,.28) 47%,transparent 72%),
    radial-gradient(ellipse 6.0% 2.4% at 50% 81%,rgba(226,247,255,.82) 0 28%,rgba(119,207,255,.32) 52%,transparent 76%);
  animation:weddingPartyGoboV806 9.2s ease-in-out infinite alternate!important;
}
/* Secondary, dimmer projections prevent the floor from looking mechanically uniform. */
.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-floor-spots::after{
  opacity:.62;
  filter:blur(.55px) saturate(1.06);
  background:
    radial-gradient(ellipse 6.2% 2.5% at 17% 86%,rgba(255,202,88,.58) 0 22%,rgba(255,202,88,.20) 48%,transparent 75%),
    radial-gradient(ellipse 6.5% 2.6% at 31% 96%,rgba(var(--party-accent-rgb),.56) 0 22%,rgba(var(--party-accent-rgb),.18) 48%,transparent 75%),
    radial-gradient(ellipse 6.1% 2.5% at 47% 75%,rgba(218,107,255,.56) 0 22%,rgba(218,107,255,.18) 48%,transparent 75%),
    radial-gradient(ellipse 6.4% 2.6% at 69% 94%,rgba(var(--party-accent-soft-rgb),.54) 0 22%,rgba(var(--party-accent-soft-rgb),.18) 48%,transparent 75%),
    radial-gradient(ellipse 6.1% 2.5% at 84% 84%,rgba(91,181,255,.54) 0 22%,rgba(91,181,255,.17) 48%,transparent 75%);
  animation:weddingPartyFloorSecondaryV806 8.4s ease-in-out infinite alternate-reverse!important;
}

@keyframes weddingPartyBeamHazeV806{
  0%{opacity:.86;transform:scale(1)}
  50%{opacity:1;transform:scale(1.006)}
  100%{opacity:.90;transform:scale(1.012)}
}
@keyframes weddingPartyBeamLeftV806{
  0%{transform:rotate(-7deg) scaleX(.90);opacity:.58}
  45%{transform:rotate(-1deg) scaleX(1.03);opacity:.92}
  100%{transform:rotate(6deg) scaleX(.94);opacity:.68}
}
@keyframes weddingPartyBeamRightV806{
  0%{transform:rotate(7deg) scaleX(.90);opacity:.58}
  48%{transform:rotate(1deg) scaleX(1.04);opacity:.94}
  100%{transform:rotate(-6deg) scaleX(.94);opacity:.68}
}
@keyframes weddingPartyGlowV806{
  0%{transform:scale(.985);opacity:.34}
  50%{transform:scale(1.018);opacity:.48}
  100%{transform:scale(1.035);opacity:.38}
}
@keyframes weddingPartyFloorFieldV806{
  0%{transform:translate3d(-1.6%,.4%,0) scale(.985);opacity:.82}
  48%{transform:translate3d(.3%,-.5%,0) scale(1.01);opacity:.98}
  100%{transform:translate3d(1.8%,-1.1%,0) scale(1.035);opacity:.88}
}
@keyframes weddingPartyGoboV806{
  0%{transform:translate3d(-2.4%,1.0%,0) rotate(-2.1deg) scale(.96);opacity:.56}
  50%{transform:translate3d(.4%,-.8%,0) rotate(.4deg) scale(1.04);opacity:.82}
  100%{transform:translate3d(2.8%,-1.2%,0) rotate(2.5deg) scale(.99);opacity:.64}
}
@keyframes weddingPartyFloorSecondaryV806{
  0%{transform:translate3d(2.2%,-.4%,0) rotate(.8deg) scale(1.02);opacity:.48}
  50%{transform:translate3d(-.4%,.5%,0) rotate(-.2deg) scale(.99);opacity:.66}
  100%{transform:translate3d(-2.4%,1.0%,0) rotate(-1deg) scale(.97);opacity:.52}
}
@media (prefers-reduced-motion:reduce){
  .wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-beams,
  .wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-beams::before,
  .wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-beams::after,
  .wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-glow,
  .wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-floor-spots,
  .wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-floor-spots::before,
  .wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-floor-spots::after{
    animation:none!important;
  }
}

/* V8.07 — Party lighting cleanup + stronger colour-selected floor spots.
   Removes the hard-edged/floating beam bars while keeping the existing room,
   booth artwork and all selector behaviour unchanged. */
.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-beams{
  opacity:.78!important;
  overflow:hidden;
  background:
    radial-gradient(circle at 21.3% 17.2%,rgba(226,248,255,.95) 0 .75%,rgba(92,195,255,.42) 1.55%,transparent 3.6%),
    radial-gradient(circle at 78.7% 17.2%,rgba(235,226,255,.92) 0 .75%,rgba(202,104,255,.38) 1.55%,transparent 3.6%),
    radial-gradient(ellipse 18% 38% at 21.3% 17.8%,rgba(69,174,255,.11),transparent 73%),
    radial-gradient(ellipse 18% 38% at 78.7% 17.8%,rgba(204,86,255,.10),transparent 73%)!important;
  animation:weddingPartyBeamHazeV807 6.4s ease-in-out infinite alternate!important;
}
.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-beams::before,
.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-beams::after{
  top:16.8%!important;
  width:22%!important;
  height:53%!important;
  clip-path:polygon(49.2% 0%,50.8% 0%,93% 100%,7% 100%)!important;
  -webkit-clip-path:polygon(49.2% 0%,50.8% 0%,93% 100%,7% 100%)!important;
  filter:blur(1.8px) saturate(1.12)!important;
  -webkit-mask-image:linear-gradient(to bottom,#000 0%,rgba(0,0,0,.92) 28%,rgba(0,0,0,.62) 58%,transparent 100%);
  mask-image:linear-gradient(to bottom,#000 0%,rgba(0,0,0,.92) 28%,rgba(0,0,0,.62) 58%,transparent 100%);
}
.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-beams::before{
  left:10.3%!important;
  background:radial-gradient(ellipse 88% 112% at 50% 0%,rgba(136,223,255,.66) 0%,rgba(73,184,255,.34) 30%,rgba(49,151,255,.15) 58%,transparent 92%)!important;
  animation:weddingPartyBeamLeftV807 5.1s cubic-bezier(.45,0,.55,1) infinite alternate!important;
}
.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-beams::after{
  right:10.3%!important;
  background:radial-gradient(ellipse 88% 112% at 50% 0%,rgba(228,178,255,.62) 0%,rgba(201,91,255,.32) 30%,rgba(160,57,242,.14) 58%,transparent 92%)!important;
  animation:weddingPartyBeamRightV807 5.6s cubic-bezier(.45,0,.55,1) infinite alternate-reverse!important;
}

/* Make the colour selected in Lighting Colour clearly visible on the dancefloor.
   These stay elliptical/perspective-correct so they read as projected light. */
.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-floor-spots{
  inset:auto 1% -2.5% 1%!important;
  height:42%!important;
  opacity:1!important;
  filter:saturate(1.34) brightness(1.23) drop-shadow(0 0 5px rgba(var(--party-accent-rgb),.18))!important;
  background:
    radial-gradient(ellipse 14.5% 5.5% at 9% 76%,rgba(var(--party-accent-rgb),1) 0 19%,rgba(var(--party-accent-rgb),.72) 34%,rgba(var(--party-accent-rgb),.30) 53%,rgba(var(--party-accent-rgb),.08) 68%,transparent 79%),
    radial-gradient(ellipse 13.2% 5.0% at 23% 91%,rgba(var(--party-accent-soft-rgb),.98) 0 19%,rgba(var(--party-accent-soft-rgb),.68) 35%,rgba(var(--party-accent-soft-rgb),.27) 54%,rgba(var(--party-accent-soft-rgb),.07) 69%,transparent 80%),
    radial-gradient(ellipse 13.8% 5.2% at 37% 77%,rgba(var(--party-accent-rgb),.98) 0 19%,rgba(var(--party-accent-rgb),.69) 35%,rgba(var(--party-accent-rgb),.28) 54%,rgba(var(--party-accent-rgb),.07) 69%,transparent 80%),
    radial-gradient(ellipse 16.5% 6.0% at 51% 91%,rgba(var(--party-accent-soft-rgb),1) 0 20%,rgba(var(--party-accent-soft-rgb),.74) 35%,rgba(var(--party-accent-soft-rgb),.31) 55%,rgba(var(--party-accent-soft-rgb),.08) 70%,transparent 81%),
    radial-gradient(ellipse 13.8% 5.2% at 65% 78%,rgba(var(--party-accent-rgb),.98) 0 19%,rgba(var(--party-accent-rgb),.69) 35%,rgba(var(--party-accent-rgb),.28) 54%,rgba(var(--party-accent-rgb),.07) 69%,transparent 80%),
    radial-gradient(ellipse 13.2% 5.0% at 79% 90%,rgba(var(--party-accent-soft-rgb),.98) 0 19%,rgba(var(--party-accent-soft-rgb),.68) 35%,rgba(var(--party-accent-soft-rgb),.27) 54%,rgba(var(--party-accent-soft-rgb),.07) 69%,transparent 80%),
    radial-gradient(ellipse 14.5% 5.5% at 92% 76%,rgba(var(--party-accent-rgb),1) 0 19%,rgba(var(--party-accent-rgb),.72) 34%,rgba(var(--party-accent-rgb),.30) 53%,rgba(var(--party-accent-rgb),.08) 68%,transparent 79%)!important;
  animation:weddingPartyFloorFieldV807 7.2s ease-in-out infinite alternate!important;
}
.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-floor-spots::before{
  opacity:.46!important;
  filter:blur(.35px) saturate(1.04)!important;
  animation:weddingPartyGoboV807 9.6s ease-in-out infinite alternate!important;
}
.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-floor-spots::after{
  opacity:.88!important;
  filter:blur(.6px) saturate(1.28) brightness(1.16)!important;
  background:
    radial-gradient(ellipse 10.0% 3.8% at 16% 84%,rgba(var(--party-accent-soft-rgb),.88) 0 22%,rgba(var(--party-accent-soft-rgb),.38) 47%,transparent 76%),
    radial-gradient(ellipse 10.8% 4.0% at 31% 97%,rgba(var(--party-accent-rgb),.92) 0 22%,rgba(var(--party-accent-rgb),.40) 47%,transparent 76%),
    radial-gradient(ellipse 9.8% 3.7% at 48% 74%,rgba(var(--party-accent-soft-rgb),.84) 0 22%,rgba(var(--party-accent-soft-rgb),.36) 47%,transparent 76%),
    radial-gradient(ellipse 10.8% 4.0% at 69% 95%,rgba(var(--party-accent-rgb),.90) 0 22%,rgba(var(--party-accent-rgb),.39) 47%,transparent 76%),
    radial-gradient(ellipse 10.0% 3.8% at 85% 83%,rgba(var(--party-accent-soft-rgb),.86) 0 22%,rgba(var(--party-accent-soft-rgb),.37) 47%,transparent 76%)!important;
  animation:weddingPartyFloorSecondaryV807 8.1s ease-in-out infinite alternate-reverse!important;
}

@keyframes weddingPartyBeamHazeV807{
  0%{opacity:.72;transform:scale(1)}
  50%{opacity:.84;transform:scale(1.004)}
  100%{opacity:.76;transform:scale(1.008)}
}
@keyframes weddingPartyBeamLeftV807{
  0%{transform:rotate(-2.8deg) scaleX(.96);opacity:.56}
  50%{transform:rotate(.4deg) scaleX(1.02);opacity:.78}
  100%{transform:rotate(3.2deg) scaleX(.98);opacity:.62}
}
@keyframes weddingPartyBeamRightV807{
  0%{transform:rotate(2.8deg) scaleX(.96);opacity:.56}
  50%{transform:rotate(-.4deg) scaleX(1.02);opacity:.78}
  100%{transform:rotate(-3.2deg) scaleX(.98);opacity:.62}
}
@keyframes weddingPartyFloorFieldV807{
  0%{transform:translate3d(-1.4%,.5%,0) scale(.99);opacity:.90}
  48%{transform:translate3d(.2%,-.6%,0) scale(1.035);opacity:1}
  100%{transform:translate3d(1.6%,-1.0%,0) scale(1.065);opacity:.94}
}
@keyframes weddingPartyGoboV807{
  0%{transform:translate3d(-1.8%,.8%,0) rotate(-1.4deg) scale(.98);opacity:.40}
  50%{transform:translate3d(.3%,-.6%,0) rotate(.3deg) scale(1.025);opacity:.52}
  100%{transform:translate3d(2.0%,-.9%,0) rotate(1.6deg) scale(1.0);opacity:.44}
}
@keyframes weddingPartyFloorSecondaryV807{
  0%{transform:translate3d(1.8%,-.2%,0) rotate(.5deg) scale(1.01);opacity:.72}
  50%{transform:translate3d(-.3%,.4%,0) rotate(-.1deg) scale(1.04);opacity:.92}
  100%{transform:translate3d(-2.0%,.8%,0) rotate(-.6deg) scale(1.00);opacity:.80}
}

/* V8.08 — restore obvious moving-head sweep and make Warm White floor spots render
   reliably in Android/local preview. Keep all existing Party artwork/layout intact. */
.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-beams::before,
.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-beams::after{
  width:26%!important;
  height:56%!important;
  top:16.4%!important;
  transform-origin:50% 0%!important;
  filter:blur(1.45px) saturate(1.18)!important;
  will-change:transform,opacity!important;
}
.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-beams::before{
  left:8.3%!important;
  background:radial-gradient(ellipse 92% 114% at 50% 0%,rgba(156,231,255,.78) 0%,rgba(77,188,255,.44) 29%,rgba(44,145,255,.19) 58%,transparent 92%)!important;
  animation:weddingPartyBeamLeftV808 4.15s cubic-bezier(.42,0,.58,1) infinite alternate!important;
}
.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-beams::after{
  right:8.3%!important;
  background:radial-gradient(ellipse 92% 114% at 50% 0%,rgba(236,194,255,.74) 0%,rgba(205,101,255,.41) 29%,rgba(157,54,239,.18) 58%,transparent 92%)!important;
  animation:weddingPartyBeamRightV808 4.65s cubic-bezier(.42,0,.58,1) infinite alternate-reverse!important;
}
@keyframes weddingPartyBeamLeftV808{
  0%{transform:rotate(-6.8deg) scaleX(.94);opacity:.66}
  42%{transform:rotate(-1.1deg) scaleX(1.03);opacity:.94}
  100%{transform:rotate(6.2deg) scaleX(.96);opacity:.72}
}
@keyframes weddingPartyBeamRightV808{
  0%{transform:rotate(6.8deg) scaleX(.94);opacity:.66}
  46%{transform:rotate(1deg) scaleX(1.03);opacity:.94}
  100%{transform:rotate(-6.2deg) scaleX(.96);opacity:.72}
}

/* Android/local-file preview can render very pale CSS radial gradients as dark.
   Warm White therefore uses a transparent raster light field, while the layer
   keeps the same movement animation as every other selected colour. */
.wedding-booth-selector-visual[data-ambience="party"][data-light="warm-white"] .wedding-booth-ambience-floor-spots{
  background-image:url("photos/wedding-party-floor-warm-white-v808.png")!important;
  background-repeat:no-repeat!important;
  background-position:50% 100%!important;
  background-size:100% 100%!important;
  mix-blend-mode:screen!important;
  filter:brightness(1.22) saturate(1.05) drop-shadow(0 0 7px rgba(255,240,205,.24))!important;
  opacity:1!important;
}
.wedding-booth-selector-visual[data-ambience="party"][data-light="warm-white"] .wedding-booth-ambience-floor-spots::after{
  opacity:0!important;
  background:none!important;
}
.wedding-booth-selector-visual[data-ambience="party"][data-light="warm-white"] .wedding-booth-ambience-glow{
  background:
    radial-gradient(ellipse 19% 8% at 22% 90%,rgba(71,182,255,.22),transparent 74%),
    radial-gradient(ellipse 19% 8% at 78% 90%,rgba(218,92,255,.20),transparent 74%),
    radial-gradient(ellipse 32% 12% at 50% 96%,rgba(255,240,205,.20),transparent 76%)!important;
}

/* V8.09 — make Party mode motion much more obvious on mobile/local preview.
   Restore a clearly visible moving-head sweep and speed up the dancefloor projections
   without reintroducing the earlier hard-edged rectangular beam artefacts. */
.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-beams{
  opacity:.88!important;
  animation:weddingPartyBeamHazeV809 2.9s ease-in-out infinite alternate!important;
}
.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-beams::before,
.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-beams::after{
  content:""!important;
  position:absolute!important;
  top:15.2%!important;
  width:28%!important;
  height:58%!important;
  pointer-events:none!important;
  mix-blend-mode:screen!important;
  transform-origin:50% 0%!important;
  clip-path:polygon(49.1% 0%,50.9% 0%,94% 100%,6% 100%)!important;
  -webkit-clip-path:polygon(49.1% 0%,50.9% 0%,94% 100%,6% 100%)!important;
  filter:blur(.9px) saturate(1.24) brightness(1.16)!important;
  -webkit-mask-image:linear-gradient(to bottom,#000 0%,rgba(0,0,0,.96) 24%,rgba(0,0,0,.74) 56%,rgba(0,0,0,.28) 82%,transparent 100%)!important;
  mask-image:linear-gradient(to bottom,#000 0%,rgba(0,0,0,.96) 24%,rgba(0,0,0,.74) 56%,rgba(0,0,0,.28) 82%,transparent 100%)!important;
  will-change:transform,opacity!important;
}
.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-beams::before{
  left:7.1%!important;
  background:radial-gradient(ellipse 92% 118% at 50% 0%,rgba(178,239,255,.96) 0%,rgba(107,205,255,.64) 22%,rgba(58,171,255,.32) 50%,rgba(35,131,255,.12) 72%,transparent 96%)!important;
  animation:weddingPartyBeamLeftV809 2.35s cubic-bezier(.46,0,.54,1) infinite alternate!important;
}
.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-beams::after{
  right:7.1%!important;
  background:radial-gradient(ellipse 92% 118% at 50% 0%,rgba(241,208,255,.92) 0%,rgba(220,132,255,.58) 22%,rgba(185,78,252,.30) 50%,rgba(144,42,223,.10) 72%,transparent 96%)!important;
  animation:weddingPartyBeamRightV809 2.7s cubic-bezier(.46,0,.54,1) infinite alternate-reverse!important;
}

.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-floor-spots{
  animation:weddingPartyFloorFieldV809 3.2s ease-in-out infinite alternate!important;
  will-change:transform,opacity!important;
}
.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-floor-spots::before{
  animation:weddingPartyGoboV809 3.8s ease-in-out infinite alternate!important;
  will-change:transform,opacity!important;
}
.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-floor-spots::after{
  animation:weddingPartyFloorSecondaryV809 2.9s ease-in-out infinite alternate-reverse!important;
  will-change:transform,opacity!important;
}

@keyframes weddingPartyBeamHazeV809{
  0%{opacity:.78;transform:scale(1)}
  50%{opacity:.92;transform:scale(1.01)}
  100%{opacity:.82;transform:scale(1.015)}
}
@keyframes weddingPartyBeamLeftV809{
  0%{transform:rotate(-10deg) translate3d(-2.2%,0,0) scaleX(.92);opacity:.70}
  48%{transform:rotate(-1.2deg) translate3d(.5%,-.6%,0) scaleX(1.03);opacity:.97}
  100%{transform:rotate(9.4deg) translate3d(2.2%,-1.2%,0) scaleX(.97);opacity:.78}
}
@keyframes weddingPartyBeamRightV809{
  0%{transform:rotate(10deg) translate3d(2.2%,0,0) scaleX(.92);opacity:.70}
  46%{transform:rotate(1.1deg) translate3d(-.4%,-.6%,0) scaleX(1.03);opacity:.97}
  100%{transform:rotate(-9.4deg) translate3d(-2.2%,-1.2%,0) scaleX(.97);opacity:.78}
}
@keyframes weddingPartyFloorFieldV809{
  0%{transform:translate3d(-2.6%,1.0%,0) scale(.985);opacity:.90}
  50%{transform:translate3d(.4%,-.8%,0) scale(1.045);opacity:1}
  100%{transform:translate3d(2.8%,-1.8%,0) scale(1.07);opacity:.94}
}
@keyframes weddingPartyGoboV809{
  0%{transform:translate3d(-3.3%,1.6%,0) rotate(-2.8deg) scale(.95);opacity:.38}
  50%{transform:translate3d(.3%,-1.1%,0) rotate(.4deg) scale(1.05);opacity:.56}
  100%{transform:translate3d(3.4%,-1.9%,0) rotate(3deg) scale(1.0);opacity:.42}
}
@keyframes weddingPartyFloorSecondaryV809{
  0%{transform:translate3d(3.0%,-.5%,0) rotate(.8deg) scale(1.01);opacity:.76}
  50%{transform:translate3d(-.4%,.7%,0) rotate(-.15deg) scale(1.05);opacity:.94}
  100%{transform:translate3d(-3.1%,1.5%,0) rotate(-.9deg) scale(.99);opacity:.82}
}

@media (prefers-reduced-motion:reduce){
  .wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-beams,
  .wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-beams::before,
  .wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-beams::after,
  .wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-floor-spots,
  .wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-floor-spots::before,
  .wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-floor-spots::after{
    animation:none!important;
  }
}

/* V8.10 — remove dark/black beam edge artefacts seen on Android preview.
   Some previewers anti-alias clipped/masked pseudo-elements with a dark fringe.
   Swap to fully gradient-shaped cones with transparent edges, so the moving-head
   beams stay visible but no longer show an outline. */
.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-beams::before,
.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-beams::after{
  clip-path:none!important;
  -webkit-clip-path:none!important;
  -webkit-mask-image:none!important;
  mask-image:none!important;
  top:15.4%!important;
  width:26%!important;
  height:58%!important;
  filter:blur(1.4px) saturate(1.22) brightness(1.18)!important;
  background-repeat:no-repeat!important;
  background-size:100% 100%!important;
}
.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-beams::before{
  left:8.2%!important;
  background:
    linear-gradient(90deg,
      transparent 0%,
      rgba(180,239,255,0) 8%,
      rgba(180,239,255,.16) 18%,
      rgba(115,212,255,.34) 34%,
      rgba(77,188,255,.44) 50%,
      rgba(115,212,255,.30) 66%,
      rgba(180,239,255,.12) 82%,
      transparent 100%),
    linear-gradient(180deg,
      rgba(188,241,255,.92) 0%,
      rgba(112,208,255,.54) 18%,
      rgba(75,186,255,.28) 40%,
      rgba(52,161,255,.14) 62%,
      rgba(42,131,248,.04) 82%,
      transparent 100%),
    radial-gradient(ellipse 92% 112% at 50% 0%,
      rgba(198,244,255,.98) 0%,
      rgba(118,214,255,.58) 22%,
      rgba(62,174,255,.22) 48%,
      transparent 82%)!important;
}
.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-beams::after{
  right:8.2%!important;
  background:
    linear-gradient(90deg,
      transparent 0%,
      rgba(243,207,255,0) 8%,
      rgba(243,207,255,.14) 18%,
      rgba(225,138,255,.31) 34%,
      rgba(205,101,255,.42) 50%,
      rgba(225,138,255,.28) 66%,
      rgba(243,207,255,.10) 82%,
      transparent 100%),
    linear-gradient(180deg,
      rgba(244,214,255,.88) 0%,
      rgba(221,136,255,.50) 18%,
      rgba(198,89,252,.26) 40%,
      rgba(164,58,233,.12) 62%,
      rgba(138,40,210,.04) 82%,
      transparent 100%),
    radial-gradient(ellipse 92% 112% at 50% 0%,
      rgba(247,219,255,.94) 0%,
      rgba(223,140,255,.55) 22%,
      rgba(187,82,248,.20) 48%,
      transparent 82%)!important;
}

/* V8.11 — make Party floor colours (other than Warm White) match the stronger
   Warm White coverage. Bring the coloured projections further back toward the booth,
   increase their size/brightness, and stop the dancefloor colour from only reading
   at the very front edge on mobile preview. */
.wedding-booth-selector-visual[data-ambience="party"][data-light]:not([data-light="warm-white"]) .wedding-booth-ambience-floor-spots{
  inset:auto 0 -2.2% 0!important;
  height:47%!important;
  opacity:1!important;
  filter:saturate(1.52) brightness(1.28) drop-shadow(0 0 7px rgba(var(--party-accent-rgb),.24))!important;
  background:
    radial-gradient(ellipse 22% 8.4% at 50% 74%,rgba(var(--party-accent-rgb),.26) 0%,rgba(var(--party-accent-rgb),.10) 48%,transparent 76%),
    radial-gradient(ellipse 15.2% 6.2% at 10% 68%,rgba(var(--party-accent-rgb),1) 0 18%,rgba(var(--party-accent-rgb),.76) 34%,rgba(var(--party-accent-rgb),.34) 54%,rgba(var(--party-accent-rgb),.10) 70%,transparent 81%),
    radial-gradient(ellipse 13.6% 5.7% at 23% 85%,rgba(var(--party-accent-soft-rgb),.98) 0 18%,rgba(var(--party-accent-soft-rgb),.70) 35%,rgba(var(--party-accent-soft-rgb),.30) 55%,rgba(var(--party-accent-soft-rgb),.08) 71%,transparent 82%),
    radial-gradient(ellipse 14.6% 6.0% at 36% 64%,rgba(var(--party-accent-rgb),.98) 0 18%,rgba(var(--party-accent-rgb),.72) 34%,rgba(var(--party-accent-rgb),.29) 54%,rgba(var(--party-accent-rgb),.08) 70%,transparent 81%),
    radial-gradient(ellipse 17.8% 7.1% at 50% 78%,rgba(var(--party-accent-soft-rgb),1) 0 20%,rgba(var(--party-accent-soft-rgb),.76) 36%,rgba(var(--party-accent-soft-rgb),.34) 56%,rgba(var(--party-accent-soft-rgb),.09) 72%,transparent 83%),
    radial-gradient(ellipse 14.6% 6.0% at 64% 64%,rgba(var(--party-accent-rgb),.98) 0 18%,rgba(var(--party-accent-rgb),.72) 34%,rgba(var(--party-accent-rgb),.29) 54%,rgba(var(--party-accent-rgb),.08) 70%,transparent 81%),
    radial-gradient(ellipse 13.6% 5.7% at 77% 85%,rgba(var(--party-accent-soft-rgb),.98) 0 18%,rgba(var(--party-accent-soft-rgb),.70) 35%,rgba(var(--party-accent-soft-rgb),.30) 55%,rgba(var(--party-accent-soft-rgb),.08) 71%,transparent 82%),
    radial-gradient(ellipse 15.2% 6.2% at 90% 68%,rgba(var(--party-accent-rgb),1) 0 18%,rgba(var(--party-accent-rgb),.76) 34%,rgba(var(--party-accent-rgb),.34) 54%,rgba(var(--party-accent-rgb),.10) 70%,transparent 81%)!important;
}
.wedding-booth-selector-visual[data-ambience="party"][data-light]:not([data-light="warm-white"]) .wedding-booth-ambience-floor-spots::before{
  opacity:.56!important;
  filter:blur(.32px) saturate(1.12) brightness(1.10)!important;
}
.wedding-booth-selector-visual[data-ambience="party"][data-light]:not([data-light="warm-white"]) .wedding-booth-ambience-floor-spots::after{
  opacity:.94!important;
  filter:blur(.56px) saturate(1.36) brightness(1.20)!important;
  background:
    radial-gradient(ellipse 11.2% 4.4% at 14% 74%,rgba(var(--party-accent-soft-rgb),.90) 0 22%,rgba(var(--party-accent-soft-rgb),.42) 47%,transparent 76%),
    radial-gradient(ellipse 11.8% 4.6% at 28% 91%,rgba(var(--party-accent-rgb),.94) 0 22%,rgba(var(--party-accent-rgb),.44) 47%,transparent 76%),
    radial-gradient(ellipse 10.8% 4.2% at 41% 61%,rgba(var(--party-accent-soft-rgb),.88) 0 22%,rgba(var(--party-accent-soft-rgb),.40) 47%,transparent 76%),
    radial-gradient(ellipse 12.6% 4.9% at 50% 70%,rgba(var(--party-accent-rgb),.96) 0 22%,rgba(var(--party-accent-rgb),.46) 47%,transparent 76%),
    radial-gradient(ellipse 10.8% 4.2% at 59% 61%,rgba(var(--party-accent-soft-rgb),.88) 0 22%,rgba(var(--party-accent-soft-rgb),.40) 47%,transparent 76%),
    radial-gradient(ellipse 11.8% 4.6% at 72% 91%,rgba(var(--party-accent-rgb),.94) 0 22%,rgba(var(--party-accent-rgb),.44) 47%,transparent 76%),
    radial-gradient(ellipse 11.2% 4.4% at 86% 74%,rgba(var(--party-accent-soft-rgb),.90) 0 22%,rgba(var(--party-accent-soft-rgb),.42) 47%,transparent 76%)!important;
}
.wedding-booth-selector-visual[data-ambience="party"][data-light]:not([data-light="warm-white"]) .wedding-booth-ambience-glow{
  background:
    radial-gradient(ellipse 19% 8% at 20% 88%,rgba(var(--party-accent-rgb),.34),transparent 18%),
    radial-gradient(ellipse 19% 8% at 80% 88%,rgba(var(--party-accent-soft-rgb),.30),transparent 18%),
    radial-gradient(ellipse 38% 12% at 50% 78%,rgba(var(--party-accent-rgb),.18),transparent 34%),
    radial-gradient(ellipse 28% 10% at 50% 96%,rgba(var(--party-accent-soft-rgb),.16),transparent 74%)!important;
}

/* V8.12 — Party moving-head beam shape cleanup.
   Replace the broad rectangular haze blocks with compact, soft optical cones that
   originate at each moving head. Floor effects remain untouched. */
.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-beams::before,
.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-beams::after{
  clip-path:none!important;
  -webkit-clip-path:none!important;
  -webkit-mask-image:none!important;
  mask-image:none!important;
  top:16.2%!important;
  width:18.5%!important;
  height:44%!important;
  transform-origin:50% 0%!important;
  border-radius:50%!important;
  filter:blur(1.15px) saturate(1.24) brightness(1.14)!important;
  background-repeat:no-repeat!important;
  background-size:100% 100%!important;
  mix-blend-mode:screen!important;
  will-change:transform,opacity!important;
}
.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-beams::before{
  left:12.1%!important;
  background:
    radial-gradient(ellipse 50% 104% at 50% 0%,
      rgba(213,248,255,.96) 0%,
      rgba(146,224,255,.67) 16%,
      rgba(80,190,255,.38) 36%,
      rgba(55,166,255,.18) 55%,
      rgba(46,150,255,.07) 70%,
      transparent 84%)!important;
  animation:weddingPartyBeamLeftV812 2.45s cubic-bezier(.46,0,.54,1) infinite alternate!important;
}
.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-beams::after{
  right:12.1%!important;
  background:
    radial-gradient(ellipse 50% 104% at 50% 0%,
      rgba(249,225,255,.94) 0%,
      rgba(229,166,255,.64) 16%,
      rgba(207,108,255,.36) 36%,
      rgba(180,78,246,.17) 55%,
      rgba(157,59,231,.06) 70%,
      transparent 84%)!important;
  animation:weddingPartyBeamRightV812 2.75s cubic-bezier(.46,0,.54,1) infinite alternate-reverse!important;
}
@keyframes weddingPartyBeamLeftV812{
  0%{transform:rotate(-8.5deg) translate3d(-1.2%,0,0) scaleX(.93);opacity:.66}
  48%{transform:rotate(-.8deg) translate3d(.2%,-.4%,0) scaleX(1.02);opacity:.90}
  100%{transform:rotate(8deg) translate3d(1.2%,-.7%,0) scaleX(.96);opacity:.72}
}
@keyframes weddingPartyBeamRightV812{
  0%{transform:rotate(8.5deg) translate3d(1.2%,0,0) scaleX(.93);opacity:.66}
  46%{transform:rotate(.8deg) translate3d(-.2%,-.4%,0) scaleX(1.02);opacity:.90}
  100%{transform:rotate(-8deg) translate3d(-1.2%,-.7%,0) scaleX(.96);opacity:.72}
}

/* V8.13 — strengthen Party moving-head animation without bringing back blocky beams.
   Keep the compact soft-cone shape from V8.12, but make the sweep wider, brighter
   and quicker so it is clearly visible on a phone screen. Floor lighting untouched. */
.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-beams{
  opacity:.96!important;
}
.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-beams::before,
.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-beams::after{
  top:15.9%!important;
  width:21.5%!important;
  height:49%!important;
  border-radius:50%!important;
  filter:blur(1.05px) saturate(1.32) brightness(1.32)!important;
}
.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-beams::before{
  left:10.6%!important;
  background:
    radial-gradient(ellipse 52% 108% at 50% 0%,
      rgba(225,251,255,1) 0%,
      rgba(163,232,255,.84) 15%,
      rgba(93,200,255,.56) 34%,
      rgba(57,172,255,.30) 54%,
      rgba(43,153,255,.12) 71%,
      transparent 86%)!important;
  animation:weddingPartyBeamLeftV813 1.95s cubic-bezier(.44,0,.56,1) infinite alternate!important;
}
.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-beams::after{
  right:10.6%!important;
  background:
    radial-gradient(ellipse 52% 108% at 50% 0%,
      rgba(252,235,255,1) 0%,
      rgba(236,184,255,.80) 15%,
      rgba(215,126,255,.54) 34%,
      rgba(186,85,247,.28) 54%,
      rgba(159,60,231,.11) 71%,
      transparent 86%)!important;
  animation:weddingPartyBeamRightV813 2.15s cubic-bezier(.44,0,.56,1) infinite alternate-reverse!important;
}
@keyframes weddingPartyBeamLeftV813{
  0%{transform:rotate(-12deg) translate3d(-1.8%,0,0) scaleX(.91);opacity:.78}
  45%{transform:rotate(-1.0deg) translate3d(.2%,-.6%,0) scaleX(1.05);opacity:1}
  100%{transform:rotate(11.5deg) translate3d(1.8%,-1.0%,0) scaleX(.95);opacity:.84}
}
@keyframes weddingPartyBeamRightV813{
  0%{transform:rotate(12deg) translate3d(1.8%,0,0) scaleX(.91);opacity:.78}
  47%{transform:rotate(1.0deg) translate3d(-.2%,-.6%,0) scaleX(1.05);opacity:1}
  100%{transform:rotate(-11.5deg) translate3d(-1.8%,-1.0%,0) scaleX(.95);opacity:.84}
}

/* V8.14 — project some Party-mode light spots onto the front of the DJ booth,
   not only the dancefloor. Use the selected lighting colour as the dominant hue,
   with a few soft secondary accents, while keeping the existing floor effect intact. */
.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-glow::before,
.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-glow::after{
  content:"";
  position:absolute;
  pointer-events:none;
  inset:auto;
  left:24.2%;
  width:51.6%;
  mix-blend-mode:screen;
  will-change:transform,opacity;
}
.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-glow::before{
  top:49.4%;
  height:24.5%;
  opacity:.84;
  filter:blur(.65px) saturate(1.24) brightness(1.14);
  background:
    radial-gradient(ellipse 18% 28% at 18% 63%,rgba(var(--party-accent-rgb),.58) 0 18%,rgba(var(--party-accent-rgb),.28) 34%,rgba(var(--party-accent-rgb),.10) 48%,transparent 62%),
    radial-gradient(ellipse 22% 32% at 50% 56%,rgba(var(--party-accent-soft-rgb),.64) 0 18%,rgba(var(--party-accent-soft-rgb),.32) 36%,rgba(var(--party-accent-soft-rgb),.12) 52%,transparent 66%),
    radial-gradient(ellipse 18% 28% at 82% 63%,rgba(var(--party-accent-rgb),.58) 0 18%,rgba(var(--party-accent-rgb),.28) 34%,rgba(var(--party-accent-rgb),.10) 48%,transparent 62%),
    radial-gradient(ellipse 34% 16% at 50% 84%,rgba(255,255,255,.10),transparent 72%);
  animation:weddingPartyBoothSpotsMainV814 3.2s ease-in-out infinite alternate;
}
.wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-glow::after{
  top:51.2%;
  height:22.8%;
  opacity:.56;
  filter:blur(1.1px) saturate(1.18) brightness(1.10);
  background:
    radial-gradient(ellipse 15% 22% at 28% 48%,rgba(94,196,255,.24) 0 22%,transparent 58%),
    radial-gradient(ellipse 15% 22% at 72% 48%,rgba(225,122,255,.22) 0 22%,transparent 58%),
    radial-gradient(ellipse 11% 18% at 50% 72%,rgba(var(--party-accent-rgb),.28) 0 24%,transparent 60%);
  animation:weddingPartyBoothSpotsSecondaryV814 2.8s ease-in-out infinite alternate-reverse;
}
@keyframes weddingPartyBoothSpotsMainV814{
  0%{transform:translate3d(-1.2%,.8%,0) scale(.98);opacity:.72}
  50%{transform:translate3d(.2%,-.5%,0) scale(1.03);opacity:.88}
  100%{transform:translate3d(1.3%,-1.0%,0) scale(1.01);opacity:.78}
}
@keyframes weddingPartyBoothSpotsSecondaryV814{
  0%{transform:translate3d(1.1%,-.2%,0) scale(1.02);opacity:.44}
  50%{transform:translate3d(-.2%,.4%,0) scale(.99);opacity:.62}
  100%{transform:translate3d(-1.2%,.9%,0) scale(1.03);opacity:.50}
}
@media (prefers-reduced-motion:reduce){
  .wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-glow::before,
  .wedding-booth-selector-visual[data-ambience="party"] .wedding-booth-ambience-glow::after{
    animation:none!important;
  }
}

/* V8.25 — Reception gobo clean animation implementation.
   Previous versions accumulated !important declarations on animated left/bottom/transform
   properties. Author !important declarations override CSS animations, which is why the gobo
   appeared fixed in place on phone even though keyframes were present. This single clean rule
   removes that conflict and gives the gobo a real 250px horizontal / 150px vertical floor path. */
.wedding-booth-selector-visual .wedding-reception-heart-gobo{
  position:absolute;
  z-index:7;
  display:block;
  left:50%;
  bottom:2.2%;
  width:34%;
  height:auto;
  opacity:0;
  pointer-events:none;
  mix-blend-mode:screen;
  transform:translate3d(-50%,0,0) rotate(-7deg) scale(1,.76);
  transform-origin:50% 82%;
  filter:brightness(1.08) saturate(1);
  transition:opacity .32s ease;
  will-change:transform,opacity;
}
.wedding-booth-selector-visual[data-ambience="reception"] .wedding-reception-heart-gobo{
  opacity:.98;
  animation:weddingReceptionHeartGoboV825 8.8s ease-in-out infinite alternate;
}
@keyframes weddingReceptionHeartGoboV825{
  0%{
    transform:translate3d(calc(-50% - 125px),0,0) rotate(-8.7deg) scale(.97,.73);
    opacity:.90;
  }
  25%{
    transform:translate3d(calc(-50% - 62px),-72px,0) rotate(-7.5deg) scale(1,.76);
    opacity:.98;
  }
  50%{
    transform:translate3d(-50%,-150px,0) rotate(-6.3deg) scale(1.04,.79);
    opacity:1;
  }
  75%{
    transform:translate3d(calc(-50% + 62px),-68px,0) rotate(-5.6deg) scale(1.01,.77);
    opacity:.98;
  }
  100%{
    transform:translate3d(calc(-50% + 125px),-8px,0) rotate(-7.9deg) scale(.98,.74);
    opacity:.92;
  }
}
@media(max-width:760px){
  .wedding-booth-selector-visual .wedding-reception-heart-gobo{
    width:40%;
    bottom:1.2%;
  }
  .wedding-booth-selector-visual[data-ambience="reception"] .wedding-reception-heart-gobo{
    animation-duration:8.2s;
  }
}
@media (prefers-reduced-motion:reduce){
  .wedding-booth-selector-visual[data-ambience="reception"] .wedding-reception-heart-gobo{
    animation:none;
    transform:translate3d(-50%,-45px,0) rotate(-7deg) scale(1,.76);
    opacity:.96;
  }
}

/* V8.26 — Reception gobo retuned.
   Slow the movement down and constrain the path to the visible dancefloor area only.
   Keep the projection in the lower-middle floor zone with a gentle sweeping motion,
   similar in feel to the First Dance spotlight but without flying all over the preview. */
.wedding-booth-selector-visual .wedding-reception-heart-gobo{
  left:50%;
  bottom:3.2%;
  width:35%;
  transform:translate3d(-50%,0,0) rotate(-7deg) scale(1,.76);
  will-change:transform,opacity;
}
.wedding-booth-selector-visual[data-ambience="reception"] .wedding-reception-heart-gobo{
  opacity:.98;
  animation:weddingReceptionHeartGoboV826 15.5s ease-in-out infinite alternate;
}
@keyframes weddingReceptionHeartGoboV826{
  0%{
    transform:translate3d(calc(-50% - 38px),0,0) rotate(-8.0deg) scale(.98,.74);
    opacity:.92;
  }
  25%{
    transform:translate3d(calc(-50% - 18px),-28px,0) rotate(-7.2deg) scale(1,.76);
    opacity:.97;
  }
  50%{
    transform:translate3d(-50%,-54px,0) rotate(-6.4deg) scale(1.03,.78);
    opacity:1;
  }
  75%{
    transform:translate3d(calc(-50% + 18px),-30px,0) rotate(-6.0deg) scale(1.01,.77);
    opacity:.98;
  }
  100%{
    transform:translate3d(calc(-50% + 38px),-6px,0) rotate(-7.4deg) scale(.99,.75);
    opacity:.93;
  }
}
@media(max-width:760px){
  .wedding-booth-selector-visual .wedding-reception-heart-gobo{
    width:41%;
    bottom:2.6%;
  }
  .wedding-booth-selector-visual[data-ambience="reception"] .wedding-reception-heart-gobo{
    animation:weddingReceptionHeartGoboV826Mobile 14.8s ease-in-out infinite alternate;
  }
  @keyframes weddingReceptionHeartGoboV826Mobile{
    0%{
      transform:translate3d(calc(-50% - 34px),0,0) rotate(-8.0deg) scale(.98,.74);
      opacity:.92;
    }
    25%{
      transform:translate3d(calc(-50% - 16px),-24px,0) rotate(-7.1deg) scale(1,.76);
      opacity:.97;
    }
    50%{
      transform:translate3d(-50%,-46px,0) rotate(-6.3deg) scale(1.03,.78);
      opacity:1;
    }
    75%{
      transform:translate3d(calc(-50% + 16px),-25px,0) rotate(-5.9deg) scale(1.01,.77);
      opacity:.98;
    }
    100%{
      transform:translate3d(calc(-50% + 34px),-5px,0) rotate(-7.3deg) scale(.99,.75);
      opacity:.93;
    }
  }
}
@media (prefers-reduced-motion:reduce){
  .wedding-booth-selector-visual[data-ambience="reception"] .wedding-reception-heart-gobo{
    animation:none;
    transform:translate3d(-50%,-22px,0) rotate(-7deg) scale(1,.76);
    opacity:.96;
  }
}

/* V8.27 — compact desktop selector layout.
   Keep the mobile selector unchanged. On desktop, remove the sticky behaviour and
   compress the selector controls/actions so the complete chooser is accessible in
   one viewport at common laptop/desktop heights. */
@media(min-width:1081px){
  .wedding-dj-page .wedding-booth-selector-section{
    padding-top:42px!important;
    padding-bottom:56px!important;
  }
  .wedding-dj-page .wedding-booth-selector-section .wedding-shell{
    grid-template-columns:minmax(0,1.22fr) minmax(360px,.78fr)!important;
    grid-template-areas:
      "intro intro"
      "visual booth"
      "visual ambience"
      "visual lighting"
      "details cta"!important;
    column-gap:26px!important;
    row-gap:0!important;
    align-items:start!important;
  }
  .wedding-dj-page .wedding-booth-selector-intro{
    max-width:1040px!important;
    margin:0 auto 18px!important;
  }
  .wedding-dj-page .wedding-booth-selector-intro h2{
    margin-bottom:10px!important;
    font-size:clamp(2.2rem,3.1vw,3.35rem)!important;
    line-height:.98!important;
  }
  .wedding-dj-page .wedding-booth-selector-intro .lead{
    margin-top:0!important;
    font-size:.95rem!important;
    line-height:1.55!important;
  }
  .wedding-dj-page .wedding-booth-selector-intro .supporting{
    margin-top:8px!important;
    font-size:.86rem!important;
    line-height:1.45!important;
  }

  .wedding-dj-page .wedding-booth-selector-visual{
    position:relative!important;
    top:auto!important;
    align-self:start!important;
    margin:0!important;
    border-radius:20px!important;
    overflow:hidden!important;
  }

  /* Booth thumbnails: four across instead of two rows. */
  .wedding-dj-page .wedding-booth-selector-controls{
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    gap:8px!important;
    padding:13px 14px 11px!important;
    border-radius:18px 18px 0 0!important;
  }
  .wedding-dj-page .wedding-booth-selector-controls::before{
    margin-bottom:1px!important;
    font-size:.68rem!important;
  }
  .wedding-dj-page .wedding-booth-selector-controls button{
    min-height:76px!important;
    padding:0 0 5px!important;
    gap:5px!important;
    font-size:.64rem!important;
  }
  .wedding-dj-page .wedding-booth-selector-controls button::before{
    aspect-ratio:1.36 / 1!important;
    border-radius:9px!important;
  }

  .wedding-dj-page .wedding-ambience-selector{
    padding:11px 14px 10px!important;
  }
  .wedding-dj-page .wedding-ambience-selector-head{
    margin-bottom:7px!important;
  }
  .wedding-dj-page .wedding-ambience-selector-label{
    font-size:.68rem!important;
  }
  .wedding-dj-page .wedding-ambience-selector-hint{
    display:none!important;
  }
  .wedding-dj-page .wedding-ambience-selector-controls{
    gap:6px!important;
  }
  .wedding-dj-page .wedding-ambience-selector-controls button{
    min-height:37px!important;
    padding:6px 4px!important;
    border-radius:10px!important;
    font-size:.68rem!important;
  }
  .wedding-dj-page .wedding-ambience-copy{
    margin-top:7px!important;
    font-size:.68rem!important;
    line-height:1.35!important;
  }

  /* All seven lighting colours in one row on desktop. */
  .wedding-dj-page .wedding-lighting-selector{
    padding:11px 14px 13px!important;
    border-radius:0 0 18px 18px!important;
  }
  .wedding-dj-page .wedding-lighting-selector-controls{
    grid-template-columns:repeat(7,minmax(0,1fr))!important;
    gap:5px!important;
  }
  .wedding-dj-page .wedding-lighting-selector-controls::before{
    margin-bottom:1px!important;
    font-size:.68rem!important;
  }
  .wedding-dj-page .wedding-lighting-selector-controls button,
  .wedding-dj-page .wedding-lighting-selector-controls button:nth-child(n){
    grid-column:auto!important;
    min-height:51px!important;
    padding:3px 1px!important;
    gap:3px!important;
    border-radius:8px!important;
    font-size:.57rem!important;
  }
  .wedding-dj-page .wedding-lighting-selector-controls .lighting-swatch{
    width:25px!important;
    height:25px!important;
    flex-basis:25px!important;
  }

  /* Compact the two lower cards so they remain visible with the selector. */
  .wedding-dj-page .wedding-booth-selector-details,
  .wedding-dj-page .wedding-booth-selector-cta{
    margin:16px 0 0!important;
    padding:15px 17px!important;
    border-radius:16px!important;
  }
  .wedding-dj-page .wedding-booth-selector-details h3{
    margin:0 0 5px!important;
    font-size:1.55rem!important;
    line-height:1!important;
  }
  .wedding-dj-page .wedding-booth-selector-details p{
    margin-top:5px!important;
    margin-bottom:0!important;
    font-size:.77rem!important;
    line-height:1.35!important;
  }
  .wedding-dj-page .wedding-booth-selector-details .wedding-lighting-status,
  .wedding-dj-page .wedding-booth-selector-details .wedding-ambience-status,
  .wedding-dj-page .wedding-booth-selector-details .wedding-setup-summary{
    display:inline-block!important;
    margin-right:10px!important;
  }
  .wedding-dj-page .wedding-booth-selector-cta .cta-title{
    margin:0 0 5px!important;
    font-size:1.45rem!important;
    line-height:1.05!important;
  }
  .wedding-dj-page .wedding-booth-selector-cta>p:not(.cta-title){
    margin:0 0 9px!important;
    font-size:.76rem!important;
    line-height:1.38!important;
  }
  .wedding-dj-page .wedding-booth-selector-cta .wedding-setup-action-grid{
    max-width:none!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:7px!important;
  }
  .wedding-dj-page .wedding-setup-icon-action{
    min-height:62px!important;
    padding:6px 5px!important;
  }
  .wedding-dj-page .wedding-setup-icon-frame{
    width:28px!important;
    height:28px!important;
  }
  .wedding-dj-page .wedding-setup-icon-label{
    font-size:.67rem!important;
  }
  .wedding-dj-page .wedding-share-targets{
    display:none!important;
  }
  .wedding-dj-page .wedding-setup-utility-actions{
    margin-top:8px!important;
    gap:8px!important;
    font-size:.66rem!important;
  }
}

/* Extra tightening for shorter desktop/laptop screens. */
@media(min-width:1081px) and (max-height:900px){
  .wedding-dj-page .wedding-booth-selector-section{
    padding-top:30px!important;
    padding-bottom:36px!important;
  }
  .wedding-dj-page .wedding-booth-selector-intro{
    margin-bottom:12px!important;
  }
  .wedding-dj-page .wedding-booth-selector-intro h2{
    font-size:2.35rem!important;
    margin-bottom:7px!important;
  }
  .wedding-dj-page .wedding-booth-selector-intro .lead{
    font-size:.88rem!important;
    line-height:1.42!important;
  }
  .wedding-dj-page .wedding-booth-selector-intro .supporting{
    display:none!important;
  }
  .wedding-dj-page .wedding-booth-selector-details,
  .wedding-dj-page .wedding-booth-selector-cta{
    margin-top:12px!important;
    padding:12px 14px!important;
  }
}

/* V8.29 — balanced desktop wedding selector.
   Group the three chooser sections into one coherent control panel beside the preview.
   This removes the stretched gaps introduced when the preview spanned three independent
   grid rows, while leaving the established mobile layout unchanged. */
.wedding-selector-controls-panel{display:contents}

@media(min-width:1081px){
  .wedding-dj-page .wedding-booth-selector-section .wedding-shell{
    grid-template-columns:minmax(0,1.5fr) minmax(380px,.94fr)!important;
    grid-template-areas:
      "intro intro"
      "visual controls"
      "details cta"!important;
    column-gap:22px!important;
    row-gap:14px!important;
    align-items:start!important;
  }

  .wedding-dj-page .wedding-selector-controls-panel{
    grid-area:controls;
    display:flex;
    flex-direction:column;
    align-self:stretch;
    min-width:0;
    overflow:hidden;
    border:1px solid rgba(198,161,104,.22);
    border-radius:20px;
    background:linear-gradient(180deg,#211c18 0%,#171411 100%);
    box-shadow:0 18px 36px rgba(35,27,21,.11);
  }

  /* Turn the three separate dark cards into one tidy control console. */
  .wedding-dj-page .wedding-selector-controls-panel>.wedding-booth-selector-controls,
  .wedding-dj-page .wedding-selector-controls-panel>.wedding-ambience-selector,
  .wedding-dj-page .wedding-selector-controls-panel>.wedding-lighting-selector{
    grid-area:auto!important;
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
    box-shadow:none!important;
  }
  .wedding-dj-page .wedding-selector-controls-panel>.wedding-booth-selector-controls{
    order:1;
    padding:14px 14px 12px!important;
    border-bottom:1px solid rgba(198,161,104,.14)!important;
  }
  .wedding-dj-page .wedding-selector-controls-panel>.wedding-ambience-selector{
    order:2;
    padding:13px 14px 12px!important;
    border-bottom:1px solid rgba(198,161,104,.14)!important;
  }
  .wedding-dj-page .wedding-selector-controls-panel>.wedding-lighting-selector{
    order:3;
    padding:13px 14px 14px!important;
  }

  .wedding-dj-page .wedding-booth-selector-visual{
    grid-area:visual!important;
    width:100%!important;
    margin:0!important;
    position:relative!important;
    top:auto!important;
    align-self:start!important;
    border-radius:20px!important;
  }

  /* Keep all four booth thumbnails readable and evenly sized. */
  .wedding-dj-page .wedding-selector-controls-panel .wedding-booth-selector-controls{
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    gap:7px!important;
  }
  .wedding-dj-page .wedding-selector-controls-panel .wedding-booth-selector-controls::before{
    font-size:.69rem!important;
    margin-bottom:2px!important;
  }
  .wedding-dj-page .wedding-selector-controls-panel .wedding-booth-selector-controls button{
    min-height:82px!important;
    padding:0 0 5px!important;
    gap:5px!important;
    font-size:.63rem!important;
  }
  .wedding-dj-page .wedding-selector-controls-panel .wedding-booth-selector-controls button::before{
    aspect-ratio:1.38/1!important;
    border-radius:8px!important;
  }

  .wedding-dj-page .wedding-selector-controls-panel .wedding-ambience-selector-head{
    margin-bottom:7px!important;
  }
  .wedding-dj-page .wedding-selector-controls-panel .wedding-ambience-selector-label{
    font-size:.69rem!important;
  }
  .wedding-dj-page .wedding-selector-controls-panel .wedding-ambience-selector-hint{
    display:none!important;
  }
  .wedding-dj-page .wedding-selector-controls-panel .wedding-ambience-selector-controls{
    gap:6px!important;
  }
  .wedding-dj-page .wedding-selector-controls-panel .wedding-ambience-selector-controls button{
    min-height:39px!important;
    padding:6px 5px!important;
    border-radius:9px!important;
    font-size:.68rem!important;
  }
  .wedding-dj-page .wedding-selector-controls-panel .wedding-ambience-copy{
    margin:7px 0 0!important;
    font-size:.67rem!important;
    line-height:1.32!important;
  }

  /* 4 + 3 colour layout is easier to read at laptop widths than seven tiny labels. */
  .wedding-dj-page .wedding-selector-controls-panel .wedding-lighting-selector-controls{
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    gap:6px 7px!important;
  }
  .wedding-dj-page .wedding-selector-controls-panel .wedding-lighting-selector-controls::before{
    margin-bottom:2px!important;
    font-size:.69rem!important;
  }
  .wedding-dj-page .wedding-selector-controls-panel .wedding-lighting-selector-controls button,
  .wedding-dj-page .wedding-selector-controls-panel .wedding-lighting-selector-controls button:nth-child(n){
    grid-column:auto!important;
    min-height:45px!important;
    padding:2px 2px 3px!important;
    gap:2px!important;
    border-radius:8px!important;
    font-size:.59rem!important;
  }
  .wedding-dj-page .wedding-selector-controls-panel .wedding-lighting-selector-controls .lighting-swatch{
    width:25px!important;
    height:25px!important;
    flex-basis:25px!important;
  }
  /* Centre the final three swatches under the first row. */
  .wedding-dj-page .wedding-selector-controls-panel .wedding-lighting-selector-controls button:nth-of-type(5){grid-column:1!important}
  .wedding-dj-page .wedding-selector-controls-panel .wedding-lighting-selector-controls button:nth-of-type(6){grid-column:2!important}
  .wedding-dj-page .wedding-selector-controls-panel .wedding-lighting-selector-controls button:nth-of-type(7){grid-column:3!important}

  /* Lower information cards should not stretch to the height of the saved-setup card. */
  .wedding-dj-page .wedding-booth-selector-details,
  .wedding-dj-page .wedding-booth-selector-cta{
    align-self:start!important;
    margin:0!important;
  }
  .wedding-dj-page .wedding-booth-selector-details{
    grid-area:details!important;
    padding:14px 18px!important;
  }
  .wedding-dj-page .wedding-booth-selector-cta{
    grid-area:cta!important;
    padding:14px 16px!important;
  }

  /* Keep the active/saved setup block compact on desktop. */
  .wedding-dj-page .wedding-saved-setup{
    margin-top:10px!important;
    padding:12px 14px!important;
    border-radius:14px!important;
  }
  .wedding-dj-page .wedding-saved-setup-summary{font-size:.92rem!important}
  .wedding-dj-page .wedding-saved-setup-note{margin-top:4px!important;font-size:.68rem!important;line-height:1.3!important}
  .wedding-dj-page .wedding-saved-setup-actions-inline{margin-top:8px!important;gap:8px!important}
  .wedding-dj-page .wedding-saved-inline-action,
  .wedding-dj-page .wedding-saved-clear{font-size:.64rem!important}
}

/* Extra desktop tightening only when the browser is short; mobile remains untouched. */
@media(min-width:1081px) and (max-height:850px){
  .wedding-dj-page .wedding-booth-selector-section{padding-top:24px!important;padding-bottom:30px!important}
  .wedding-dj-page .wedding-booth-selector-intro{margin-bottom:10px!important}
  .wedding-dj-page .wedding-selector-controls-panel>.wedding-booth-selector-controls{padding-top:10px!important;padding-bottom:9px!important}
  .wedding-dj-page .wedding-selector-controls-panel>.wedding-ambience-selector{padding-top:9px!important;padding-bottom:9px!important}
  .wedding-dj-page .wedding-selector-controls-panel>.wedding-lighting-selector{padding-top:9px!important;padding-bottom:10px!important}
  .wedding-dj-page .wedding-selector-controls-panel .wedding-booth-selector-controls button{min-height:72px!important}
  .wedding-dj-page .wedding-selector-controls-panel .wedding-lighting-selector-controls button,
  .wedding-dj-page .wedding-selector-controls-panel .wedding-lighting-selector-controls button:nth-child(n){min-height:41px!important}
}

/* V8.29.1 — centre the 4 + 3 lighting swatch layout in the desktop control console. */
@media(min-width:1081px){
  .wedding-dj-page .wedding-selector-controls-panel .wedding-lighting-selector-controls{
    grid-template-columns:repeat(8,minmax(0,1fr))!important;
  }
  .wedding-dj-page .wedding-selector-controls-panel .wedding-lighting-selector-controls button,
  .wedding-dj-page .wedding-selector-controls-panel .wedding-lighting-selector-controls button:nth-child(n){
    grid-column:span 2!important;
  }
  .wedding-dj-page .wedding-selector-controls-panel .wedding-lighting-selector-controls button:nth-of-type(5){grid-column:2 / span 2!important}
  .wedding-dj-page .wedding-selector-controls-panel .wedding-lighting-selector-controls button:nth-of-type(6){grid-column:4 / span 2!important}
  .wedding-dj-page .wedding-selector-controls-panel .wedding-lighting-selector-controls button:nth-of-type(7){grid-column:6 / span 2!important}
}

/* V8.30 — desktop Save / Share / Enquiry action button repair.
   V8.29 reduced the icon-frame width/height but inherited the older 74px min-height,
   which turned the controls into narrow vertical pills. Restore compact, balanced tiles
   on desktop only; mobile styling remains unchanged. */
@media(min-width:1081px){
  .wedding-dj-page .wedding-booth-selector-cta .wedding-setup-action-grid{
    width:100%!important;
    max-width:390px!important;
    margin:12px 0 0!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:10px!important;
  }
  .wedding-dj-page .wedding-booth-selector-cta .wedding-setup-icon-action{
    min-height:0!important;
    padding:0!important;
    gap:6px!important;
    justify-content:flex-start!important;
    color:#2b211b!important;
  }
  .wedding-dj-page .wedding-booth-selector-cta .wedding-setup-icon-frame{
    width:58px!important;
    height:52px!important;
    min-height:52px!important;
    flex:0 0 52px!important;
    border-radius:14px!important;
    border:1.5px solid rgba(168,126,68,.48)!important;
    background:linear-gradient(145deg,rgba(255,253,248,.98),rgba(243,232,216,.88))!important;
    box-shadow:0 8px 18px rgba(71,48,31,.07),inset 0 1px 0 rgba(255,255,255,.96)!important;
  }
  .wedding-dj-page .wedding-booth-selector-cta .wedding-setup-icon-frame svg{
    width:27px!important;
    height:27px!important;
  }
  .wedding-dj-page .wedding-booth-selector-cta .wedding-setup-icon-label{
    min-height:0!important;
    font-size:.68rem!important;
    line-height:1.15!important;
    color:#2b211b!important;
    white-space:nowrap!important;
  }
  .wedding-dj-page .wedding-booth-selector-cta .wedding-share-targets{
    display:none!important;
  }
  .wedding-dj-page .wedding-booth-selector-cta .wedding-setup-icon-action:hover .wedding-setup-icon-frame,
  .wedding-dj-page .wedding-booth-selector-cta .wedding-setup-icon-action:focus-visible .wedding-setup-icon-frame{
    transform:translateY(-1px)!important;
  }
}

/* V8.31 — desktop control-card vertical balance.
   Use the spare height in the right-hand selector card instead of leaving a large empty
   area below the colour swatches. Keep booth and ambience controls grouped, then let the
   lighting section sit lower with more breathing room so the panel visually balances the preview. */
@media(min-width:1081px){
  .wedding-dj-page .wedding-selector-controls-panel{
    min-height:100%!important;
  }

  .wedding-dj-page .wedding-selector-controls-panel>.wedding-booth-selector-controls{
    padding-top:15px!important;
    padding-bottom:14px!important;
  }

  .wedding-dj-page .wedding-selector-controls-panel>.wedding-ambience-selector{
    padding-top:15px!important;
    padding-bottom:17px!important;
  }

  .wedding-dj-page .wedding-selector-controls-panel>.wedding-lighting-selector{
    margin-top:auto!important;
    padding-top:22px!important;
    padding-bottom:25px!important;
    border-top:1px solid rgba(198,161,104,.10)!important;
  }

  .wedding-dj-page .wedding-selector-controls-panel .wedding-lighting-selector-controls::before{
    margin-bottom:8px!important;
  }

  .wedding-dj-page .wedding-selector-controls-panel .wedding-lighting-selector-controls{
    row-gap:10px!important;
  }

  .wedding-dj-page .wedding-selector-controls-panel .wedding-lighting-selector-controls button,
  .wedding-dj-page .wedding-selector-controls-panel .wedding-lighting-selector-controls button:nth-child(n){
    min-height:50px!important;
    padding-top:4px!important;
    padding-bottom:4px!important;
  }

  .wedding-dj-page .wedding-selector-controls-panel .wedding-lighting-selector-controls .lighting-swatch{
    width:27px!important;
    height:27px!important;
    flex-basis:27px!important;
  }
}

/* Keep the card balanced on shorter laptop screens without making it cramped. */
@media(min-width:1081px) and (max-height:850px){
  .wedding-dj-page .wedding-selector-controls-panel>.wedding-lighting-selector{
    padding-top:16px!important;
    padding-bottom:18px!important;
  }
  .wedding-dj-page .wedding-selector-controls-panel .wedding-lighting-selector-controls{
    row-gap:7px!important;
  }
}

/* V8.32 — desktop selector UX polish.
   Clarify the current choice, strengthen active states, centre the action controls,
   and make Use in Enquiry the visually strongest next step. Mobile remains unchanged. */
.wedding-current-setup-inline{display:none}

@media(min-width:1081px){
  /* Quick confirmation immediately below the three chooser groups. */
  .wedding-dj-page .wedding-selector-controls-panel>.wedding-current-setup-inline{
    display:block;
    order:4;
    margin:0!important;
    padding:10px 14px 12px!important;
    border-top:1px solid rgba(198,161,104,.14)!important;
    background:rgba(255,255,255,.025)!important;
    color:#e9dfd2!important;
    font-size:.67rem!important;
    line-height:1.3!important;
    font-weight:700!important;
    letter-spacing:.01em!important;
  }
  .wedding-dj-page .wedding-selector-controls-panel>.wedding-current-setup-inline::first-letter{
    color:#d8aa62;
  }

  /* Stronger, faster-to-scan active states. */
  .wedding-dj-page .wedding-selector-controls-panel .wedding-booth-selector-controls button.is-active{
    color:#fff7ea!important;
    text-shadow:0 1px 0 rgba(0,0,0,.34)!important;
  }
  .wedding-dj-page .wedding-selector-controls-panel .wedding-booth-selector-controls button.is-active::before{
    border:2px solid #d8aa62!important;
    box-shadow:0 0 0 2px rgba(216,170,98,.16),0 8px 20px rgba(0,0,0,.22)!important;
  }
  .wedding-dj-page .wedding-selector-controls-panel .wedding-ambience-selector-controls button.is-active{
    border-color:#d8aa62!important;
    background:linear-gradient(135deg,#9f7133 0%,#c3914a 100%)!important;
    color:#fff!important;
    box-shadow:0 6px 16px rgba(0,0,0,.18),inset 0 1px 0 rgba(255,255,255,.24)!important;
  }
  .wedding-dj-page .wedding-selector-controls-panel .wedding-lighting-selector-controls button.is-active{
    background:rgba(198,157,91,.11)!important;
    box-shadow:inset 0 0 0 1px rgba(216,170,98,.42)!important;
  }
  .wedding-dj-page .wedding-selector-controls-panel .wedding-lighting-selector-controls button.is-active .lighting-swatch{
    box-shadow:0 0 0 3px #201a16,0 0 0 5px #d8aa62,0 5px 14px rgba(0,0,0,.25)!important;
    transform:scale(1.04)!important;
  }

  /* Centre the Save / Share / Enquiry group as a coherent action cluster. */
  .wedding-dj-page .wedding-booth-selector-cta .wedding-setup-action-grid{
    max-width:340px!important;
    margin:14px auto 0!important;
    justify-items:center!important;
    align-items:start!important;
    gap:14px!important;
  }
  .wedding-dj-page .wedding-booth-selector-cta .wedding-setup-icon-action{
    width:100%!important;
    max-width:96px!important;
    align-items:center!important;
    justify-content:flex-start!important;
    text-align:center!important;
  }
  .wedding-dj-page .wedding-booth-selector-cta .wedding-setup-icon-frame{
    width:64px!important;
    height:54px!important;
    min-height:54px!important;
    flex-basis:54px!important;
  }

  /* Make enquiry the clear primary action without making Save/Share feel secondary-class. */
  .wedding-dj-page .wedding-booth-selector-cta .wedding-setup-icon-action[data-use-setup] .wedding-setup-icon-frame{
    border-color:#b98032!important;
    background:linear-gradient(145deg,#d9ae67 0%,#bd8740 100%)!important;
    box-shadow:0 10px 22px rgba(126,83,31,.18),inset 0 1px 0 rgba(255,255,255,.36)!important;
  }
  .wedding-dj-page .wedding-booth-selector-cta .wedding-setup-icon-action[data-use-setup] .wedding-setup-icon-frame svg{
    stroke:#fffaf2!important;
  }
  .wedding-dj-page .wedding-booth-selector-cta .wedding-setup-icon-action[data-use-setup] .wedding-setup-icon-label{
    color:#6d461c!important;
    font-weight:800!important;
  }
  .wedding-dj-page .wedding-booth-selector-cta .wedding-setup-icon-action[data-use-setup]:hover .wedding-setup-icon-frame,
  .wedding-dj-page .wedding-booth-selector-cta .wedding-setup-icon-action[data-use-setup]:focus-visible .wedding-setup-icon-frame{
    background:linear-gradient(145deg,#e2b972 0%,#c99046 100%)!important;
    box-shadow:0 13px 26px rgba(126,83,31,.24),inset 0 1px 0 rgba(255,255,255,.42)!important;
  }

  .wedding-dj-page .wedding-booth-selector-cta .wedding-setup-utility-actions{
    justify-content:center!important;
    text-align:center!important;
  }
}

/* V8.36 — Wedding page readability + desktop booth-selector landscape layout.
   Mobile/tablet selector behaviour is deliberately left untouched. */
.wedding-dj-page .topbar{
  background:linear-gradient(180deg,rgba(12,9,9,.97) 0%,rgba(12,9,9,.91) 72%,rgba(12,9,9,.84) 100%)!important;
  border-bottom-color:rgba(229,205,170,.18)!important;
}

/* Give the hero copy cleaner editorial spacing and reliable contrast over the photograph. */
.wedding-dj-page .wedding-dj-hero::before{
  background:
    linear-gradient(90deg,rgba(23,16,15,.97) 0%,rgba(23,16,15,.91) 34%,rgba(23,16,15,.68) 55%,rgba(23,16,15,.26) 80%,rgba(23,16,15,.16) 100%),
    linear-gradient(0deg,rgba(23,16,15,.88) 0%,rgba(23,16,15,.32) 50%,rgba(23,16,15,.12) 100%),
    url("photos/wedding-dj-reception.webp") 68% center/cover no-repeat!important;
}
.wedding-dj-page .wedding-dj-hero .page-hero-inner{
  max-width:980px!important;
}
.wedding-dj-page .wedding-dj-hero .eyebrow{
  max-width:860px;
  color:#d8b77e!important;
  line-height:1.55;
}
.wedding-dj-page .wedding-dj-hero h1{
  max-width:960px!important;
  margin:24px 0 28px!important;
  color:#fffdf9!important;
  line-height:.99!important;
  letter-spacing:-.032em!important;
  text-wrap:balance;
  text-shadow:0 4px 28px rgba(0,0,0,.38)!important;
}
.wedding-dj-page .wedding-dj-hero .hero-intro{
  max-width:790px!important;
  color:#f0e7dc!important;
  font-size:1.08rem!important;
  line-height:1.72!important;
  text-shadow:0 2px 16px rgba(0,0,0,.38);
}
.wedding-dj-page .wedding-dj-hero .wedding-hero-note{
  color:#eadcca!important;
  line-height:1.55;
}

/* The first three cards now sit clearly below the hero instead of clipping into it. */
@media(min-width:651px){
  .wedding-dj-page .wedding-intro-strip{
    padding-top:34px!important;
    padding-bottom:28px!important;
  }
  .wedding-dj-page .wedding-intro-strip .wedding-shell{
    margin-top:0!important;
  }
  .wedding-dj-page .wedding-intro-strip article{
    padding-top:28px!important;
    padding-bottom:28px!important;
  }
}

/* Explicit dark copy on every pale wedding panel prevents inherited white-on-ivory text. */
.wedding-dj-page .wedding-intro-strip,
.wedding-dj-page .wedding-pillars-section,
.wedding-dj-page .wedding-planning-feature,
.wedding-dj-page .wedding-night-section,
.wedding-dj-page .wedding-booth-selector-section,
.wedding-dj-page .wedding-faq{
  color:var(--wedding-ink)!important;
}
.wedding-dj-page .wedding-intro-strip strong,
.wedding-dj-page .wedding-pillars-section h2,
.wedding-dj-page .wedding-pillars-grid h3,
.wedding-dj-page .wedding-planning-copy h2,
.wedding-dj-page .wedding-night-section h2,
.wedding-dj-page .wedding-night-grid h3,
.wedding-dj-page .wedding-booth-selector-intro h2,
.wedding-dj-page .wedding-booth-selector-details h3,
.wedding-dj-page .wedding-booth-selector-cta .cta-title,
.wedding-dj-page .wedding-faq h2,
.wedding-dj-page .wedding-faq summary{
  color:var(--wedding-ink)!important;
}
.wedding-dj-page .wedding-pillars-grid p,
.wedding-dj-page .wedding-planning-copy>p:not(.eyebrow),
.wedding-dj-page .wedding-night-grid p,
.wedding-dj-page .wedding-section-head>p,
.wedding-dj-page .wedding-booth-selector-intro .lead,
.wedding-dj-page .wedding-booth-selector-intro .supporting,
.wedding-dj-page .wedding-booth-selector-details p,
.wedding-dj-page .wedding-booth-selector-cta>p:not(.cta-title),
.wedding-dj-page .wedding-faq details p{
  color:#62564f!important;
}
/* Reassert the intentional light-on-dark photo-story treatment after the contrast pass. */
.wedding-dj-page .wedding-photo-story,
.wedding-dj-page .wedding-photo-story h2,
.wedding-dj-page .wedding-photo-story h3{
  color:#fff!important;
}
.wedding-dj-page .wedding-photo-story .wedding-section-head>p{color:#d9ccc1!important}

@media(min-width:1501px){
  .wedding-dj-page .topbar nav{
    gap:clamp(13px,1.3vw,24px)!important;
    font-size:.63rem!important;
    letter-spacing:.11em!important;
    line-height:1.25;
  }
}

/* Desktop only: large landscape preview, then controls and status/action cards underneath. */
@media(min-width:1081px){
  .wedding-dj-page .wedding-booth-selector-section{
    padding-top:52px!important;
    padding-bottom:58px!important;
  }
  .wedding-dj-page .wedding-booth-selector-section .wedding-shell{
    width:min(1260px,calc(100% - 64px));
    display:grid!important;
    grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr)!important;
    grid-template-areas:
      "intro intro"
      "visual visual"
      "controls controls"
      "details cta"!important;
    column-gap:14px!important;
    row-gap:14px!important;
    align-items:start!important;
  }
  .wedding-dj-page .wedding-booth-selector-intro{
    grid-area:intro!important;
    max-width:1040px!important;
    margin:0 auto 8px!important;
  }
  .wedding-dj-page .wedding-booth-selector-intro h2{
    max-width:1000px!important;
    margin:8px auto 12px!important;
    font-size:clamp(2.55rem,3.6vw,3.85rem)!important;
    line-height:.98!important;
    letter-spacing:-.035em!important;
  }
  .wedding-dj-page .wedding-booth-selector-intro .lead{
    max-width:900px!important;
    font-size:.98rem!important;
    line-height:1.56!important;
  }
  .wedding-dj-page .wedding-booth-selector-intro .supporting{
    max-width:900px!important;
    margin-top:7px!important;
    font-size:.86rem!important;
    line-height:1.48!important;
  }

  .wedding-dj-page .wedding-booth-selector-visual{
    grid-area:visual!important;
    position:relative!important;
    top:auto!important;
    width:100%!important;
    height:clamp(390px,46vh,520px)!important;
    max-width:none!important;
    margin:0!important;
    border-radius:22px!important;
    overflow:hidden!important;
    background:#1a1512!important;
    box-shadow:0 30px 70px rgba(58,40,28,.16),0 0 0 1px rgba(150,114,70,.16)!important;
  }
  .wedding-dj-page .wedding-booth-selector-visual>img,
  .wedding-dj-page .wedding-booth-selector-visual .wedding-booth-base-image,
  .wedding-dj-page .wedding-booth-selector-visual .wedding-booth-front-image,
  .wedding-dj-page .wedding-booth-selector-visual #wedding-booth-style-image,
  .wedding-dj-page .wedding-booth-selector-visual #wedding-booth-lighting-overlay{
    width:100%!important;
    height:100%!important;
    object-fit:cover!important;
    object-position:50% 52%!important;
  }

  .wedding-dj-page .wedding-selector-controls-panel{
    grid-area:controls!important;
    display:grid!important;
    grid-template-columns:minmax(0,1.22fr) minmax(250px,.78fr) minmax(0,1.22fr)!important;
    grid-template-areas:
      "booth ambience lighting"
      "current current current"!important;
    gap:10px!important;
    min-height:0!important;
    overflow:visible!important;
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
    box-shadow:none!important;
  }
  .wedding-dj-page .wedding-selector-controls-panel>.wedding-booth-selector-controls,
  .wedding-dj-page .wedding-selector-controls-panel>.wedding-ambience-selector,
  .wedding-dj-page .wedding-selector-controls-panel>.wedding-lighting-selector{
    align-self:stretch!important;
    margin:0!important;
    padding:12px 12px 11px!important;
    border:1px solid rgba(198,161,104,.22)!important;
    border-radius:17px!important;
    background:linear-gradient(180deg,#211c18 0%,#171411 100%)!important;
    box-shadow:0 15px 32px rgba(35,27,21,.10)!important;
  }
  .wedding-dj-page .wedding-selector-controls-panel>.wedding-booth-selector-controls{
    grid-area:booth!important;
    display:grid!important;
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    gap:6px!important;
  }
  .wedding-dj-page .wedding-selector-controls-panel>.wedding-ambience-selector{
    grid-area:ambience!important;
  }
  .wedding-dj-page .wedding-selector-controls-panel>.wedding-lighting-selector{
    grid-area:lighting!important;
  }
  .wedding-dj-page .wedding-selector-controls-panel>.wedding-current-setup-inline{
    grid-area:current!important;
    display:block!important;
    margin:0!important;
    padding:9px 14px!important;
    border:1px solid rgba(198,161,104,.18)!important;
    border-radius:12px!important;
    background:rgba(29,24,20,.96)!important;
    color:#eee4d8!important;
    font-size:.71rem!important;
    line-height:1.35!important;
    font-weight:700!important;
    text-align:center;
  }

  .wedding-dj-page .wedding-selector-controls-panel .wedding-booth-selector-controls::before,
  .wedding-dj-page .wedding-selector-controls-panel .wedding-lighting-selector-controls::before{
    margin-bottom:3px!important;
    font-size:.66rem!important;
  }
  .wedding-dj-page .wedding-selector-controls-panel .wedding-booth-selector-controls button{
    min-height:72px!important;
    padding:0 0 5px!important;
    gap:4px!important;
    font-size:.61rem!important;
  }
  .wedding-dj-page .wedding-selector-controls-panel .wedding-booth-selector-controls button::before{
    aspect-ratio:1.55/1!important;
    border-radius:8px!important;
  }
  .wedding-dj-page .wedding-selector-controls-panel .wedding-ambience-selector-head{
    margin-bottom:8px!important;
  }
  .wedding-dj-page .wedding-selector-controls-panel .wedding-ambience-selector-label{
    font-size:.66rem!important;
  }
  .wedding-dj-page .wedding-selector-controls-panel .wedding-ambience-selector-hint{
    display:none!important;
  }
  .wedding-dj-page .wedding-selector-controls-panel .wedding-ambience-selector-controls{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:6px!important;
  }
  .wedding-dj-page .wedding-selector-controls-panel .wedding-ambience-selector-controls button{
    min-height:39px!important;
    padding:6px 4px!important;
    font-size:.66rem!important;
  }
  .wedding-dj-page .wedding-selector-controls-panel .wedding-ambience-copy{
    margin:7px 0 0!important;
    color:#c8beb5!important;
    font-size:.65rem!important;
    line-height:1.32!important;
  }
  .wedding-dj-page .wedding-selector-controls-panel .wedding-lighting-selector-controls{
    grid-template-columns:repeat(7,minmax(0,1fr))!important;
    gap:5px!important;
    align-items:start!important;
  }
  .wedding-dj-page .wedding-selector-controls-panel .wedding-lighting-selector-controls::before{
    grid-column:1/-1!important;
  }
  .wedding-dj-page .wedding-selector-controls-panel .wedding-lighting-selector-controls button,
  .wedding-dj-page .wedding-selector-controls-panel .wedding-lighting-selector-controls button:nth-child(n),
  .wedding-dj-page .wedding-selector-controls-panel .wedding-lighting-selector-controls button:nth-of-type(n){
    grid-column:auto!important;
    min-height:62px!important;
    padding:3px 1px!important;
    gap:4px!important;
    font-size:.54rem!important;
    line-height:1.05!important;
  }
  .wedding-dj-page .wedding-selector-controls-panel .wedding-lighting-selector-controls .lighting-swatch{
    width:27px!important;
    height:27px!important;
    flex-basis:27px!important;
  }

  .wedding-dj-page .wedding-booth-selector-details,
  .wedding-dj-page .wedding-booth-selector-cta{
    align-self:stretch!important;
    margin:0!important;
    padding:17px 19px!important;
    border:1px solid rgba(147,111,67,.17)!important;
    border-radius:18px!important;
    background:rgba(255,252,247,.86)!important;
    box-shadow:0 14px 30px rgba(61,43,30,.055)!important;
    color:var(--wedding-ink)!important;
  }
  .wedding-dj-page .wedding-booth-selector-details{grid-area:details!important}
  .wedding-dj-page .wedding-booth-selector-cta{grid-area:cta!important}
  .wedding-dj-page .wedding-booth-selector-details h3{
    margin:0 0 7px!important;
    font-size:1.7rem!important;
    line-height:1.05!important;
  }
  .wedding-dj-page .wedding-booth-selector-details #wedding-booth-style-copy{
    font-size:.88rem!important;
    line-height:1.5!important;
  }
  .wedding-dj-page .wedding-lighting-status,
  .wedding-dj-page .wedding-ambience-status,
  .wedding-dj-page .wedding-setup-summary{
    display:inline-block;
    margin:8px 8px 0 0!important;
    padding:6px 9px!important;
    border:1px solid rgba(157,121,76,.18);
    border-radius:999px;
    background:#f5eadc;
    color:#765b38!important;
    font-size:.64rem!important;
    line-height:1.2!important;
    font-weight:800!important;
    letter-spacing:.06em!important;
    text-transform:uppercase;
  }
  .wedding-dj-page .wedding-booth-selector-cta .cta-title{
    margin-bottom:5px!important;
    font-size:1.42rem!important;
    line-height:1.08!important;
  }
  .wedding-dj-page .wedding-booth-selector-cta>p:not(.cta-title){
    margin-bottom:8px!important;
    font-size:.82rem!important;
    line-height:1.45!important;
  }
  .wedding-dj-page .wedding-booth-selector-cta .wedding-setup-action-grid{
    max-width:330px!important;
    margin:8px auto 0!important;
    gap:10px!important;
  }
  .wedding-dj-page .wedding-booth-selector-cta .wedding-setup-icon-frame{
    width:58px!important;
    height:48px!important;
    min-height:48px!important;
    flex-basis:48px!important;
  }
  .wedding-dj-page .wedding-booth-selector-cta .wedding-setup-icon-label{
    font-size:.64rem!important;
  }
  .wedding-dj-page .wedding-booth-selector-cta .wedding-setup-utility-actions{
    margin-top:7px!important;
    gap:8px!important;
    font-size:.63rem!important;
    justify-content:center!important;
  }
}

/* A compact one-screen composition for ordinary laptop-height desktop windows. */
@media(min-width:1081px) and (max-height:900px){
  .wedding-dj-page .wedding-booth-selector-section{
    padding-top:24px!important;
    padding-bottom:30px!important;
  }
  .wedding-dj-page .wedding-booth-selector-section .wedding-shell{
    row-gap:9px!important;
  }
  .wedding-dj-page .wedding-booth-selector-intro{
    margin-bottom:2px!important;
  }
  .wedding-dj-page .wedding-booth-selector-intro .eyebrow{
    margin-bottom:4px!important;
  }
  .wedding-dj-page .wedding-booth-selector-intro h2{
    margin:4px auto 7px!important;
    font-size:2.18rem!important;
  }
  .wedding-dj-page .wedding-booth-selector-intro .lead{
    font-size:.84rem!important;
    line-height:1.4!important;
  }
  .wedding-dj-page .wedding-booth-selector-intro .supporting{
    display:none!important;
  }
  .wedding-dj-page .wedding-booth-selector-visual{
    height:clamp(300px,40vh,365px)!important;
  }
  .wedding-dj-page .wedding-selector-controls-panel{
    gap:7px!important;
  }
  .wedding-dj-page .wedding-selector-controls-panel>.wedding-booth-selector-controls,
  .wedding-dj-page .wedding-selector-controls-panel>.wedding-ambience-selector,
  .wedding-dj-page .wedding-selector-controls-panel>.wedding-lighting-selector{
    padding:8px 9px!important;
  }
  .wedding-dj-page .wedding-selector-controls-panel .wedding-booth-selector-controls button{
    min-height:58px!important;
    font-size:.57rem!important;
  }
  .wedding-dj-page .wedding-selector-controls-panel .wedding-lighting-selector-controls button,
  .wedding-dj-page .wedding-selector-controls-panel .wedding-lighting-selector-controls button:nth-child(n){
    min-height:50px!important;
  }
  .wedding-dj-page .wedding-selector-controls-panel .wedding-ambience-copy{
    display:none!important;
  }
  .wedding-dj-page .wedding-selector-controls-panel>.wedding-current-setup-inline{
    padding:6px 10px!important;
    font-size:.65rem!important;
  }
  .wedding-dj-page .wedding-booth-selector-details,
  .wedding-dj-page .wedding-booth-selector-cta{
    padding:11px 13px!important;
  }
  .wedding-dj-page .wedding-booth-selector-details h3{
    font-size:1.4rem!important;
    margin-bottom:4px!important;
  }
  .wedding-dj-page .wedding-booth-selector-details #wedding-booth-style-copy,
  .wedding-dj-page .wedding-booth-selector-cta>p:not(.cta-title){
    font-size:.75rem!important;
    line-height:1.35!important;
  }
  .wedding-dj-page .wedding-lighting-status,
  .wedding-dj-page .wedding-ambience-status,
  .wedding-dj-page .wedding-setup-summary{
    margin-top:5px!important;
    padding:4px 7px!important;
    font-size:.57rem!important;
  }
  .wedding-dj-page .wedding-booth-selector-cta .cta-title{
    font-size:1.15rem!important;
    margin-bottom:3px!important;
  }
  .wedding-dj-page .wedding-booth-selector-cta .wedding-setup-action-grid{
    margin-top:5px!important;
  }
  .wedding-dj-page .wedding-booth-selector-cta .wedding-setup-icon-frame{
    height:42px!important;
    min-height:42px!important;
    flex-basis:42px!important;
  }
}


/* V8.37 — Wedding page editorial flow + premium enquiry finish.
   Booth-selector mobile layout remains unchanged. */
.wedding-dj-page .wedding-design-bridge{
  position:relative;
  overflow:hidden;
  padding:clamp(44px,5vw,70px) 0;
  background:linear-gradient(120deg,#261d1a 0%,#3b2d27 54%,#6f553d 130%);
  color:#fff;
  border-top:1px solid rgba(255,255,255,.08);
  border-bottom:1px solid rgba(198,161,104,.28);
}
.wedding-dj-page .wedding-design-bridge::before{
  content:"";
  position:absolute;
  inset:-60% 28% -90% -14%;
  background:radial-gradient(circle,rgba(220,185,133,.18),transparent 62%);
  pointer-events:none;
}
.wedding-dj-page .wedding-design-bridge .wedding-shell{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(420px,.85fr);
  align-items:end;
  gap:clamp(28px,5vw,72px);
}
.wedding-dj-page .wedding-design-bridge .eyebrow{
  margin-bottom:12px;
  color:#d9b77e!important;
}
.wedding-dj-page .wedding-design-bridge h2{
  max-width:720px;
  margin:0;
  color:#fffaf4!important;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(2.3rem,4.4vw,4.6rem);
  line-height:.94;
  letter-spacing:-.04em;
  text-transform:none;
}
.wedding-dj-page .wedding-design-bridge h2 span{color:#d9b77e!important}
.wedding-dj-page .wedding-design-bridge-copy>p:last-child{
  max-width:650px;
  margin:18px 0 0;
  color:#e4d8cc!important;
  font-size:1rem;
  line-height:1.65;
}
.wedding-dj-page .wedding-design-bridge-steps{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:9px;
}
.wedding-dj-page .wedding-design-bridge-steps span{
  min-height:86px;
  padding:14px 14px 13px;
  border:1px solid rgba(231,205,167,.18);
  border-radius:16px;
  background:rgba(255,250,244,.055);
  color:#f7eee5;
  font-size:.72rem;
  line-height:1.25;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
  backdrop-filter:blur(8px);
}
.wedding-dj-page .wedding-design-bridge-steps b{
  display:block;
  margin-bottom:13px;
  color:#d9b77e;
  font-family:Georgia,"Times New Roman",serif;
  font-size:1.24rem;
  line-height:1;
  letter-spacing:0;
}

/* Give the final enquiry a more deliberate wedding-specific composition. */
.wedding-dj-page .wedding-cta{
  min-height:520px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:clamp(78px,9vw,128px) 24px!important;
  text-align:center;
  background:
    radial-gradient(circle at 50% -10%,rgba(246,224,191,.18),transparent 38%),
    linear-gradient(118deg,rgba(255,244,224,.055) 0,transparent 28%,rgba(238,211,171,.095) 46%,transparent 68%),
    linear-gradient(135deg,#211815 0%,#48352c 52%,#8b6848 145%)!important;
}
.wedding-dj-page .wedding-cta::after{
  content:"";
  position:absolute;
  left:50%;
  bottom:24px;
  width:min(680px,70vw);
  height:1px;
  transform:translateX(-50%);
  background:linear-gradient(90deg,transparent,rgba(226,196,151,.35),transparent);
}
.wedding-dj-page .wedding-cta-inner{
  position:relative;
  z-index:2;
  width:min(980px,100%);
  margin:auto;
}
.wedding-dj-page .wedding-cta .eyebrow{
  margin:0 0 18px;
  color:#e0bf89!important;
  font-family:inherit;
  font-size:.66rem;
  line-height:1.4;
  letter-spacing:.23em;
  text-transform:uppercase;
}
.wedding-dj-page .wedding-cta h2{
  max-width:900px;
  margin:0 auto;
  color:#fffaf4!important;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(3.15rem,6.7vw,6.7rem);
  line-height:.91;
  letter-spacing:-.05em;
  text-transform:none;
  text-wrap:balance;
}
.wedding-dj-page .wedding-cta h2 span{color:#dfbd84!important}
.wedding-dj-page .wedding-cta-copy{
  max-width:710px!important;
  margin:25px auto 0!important;
  color:#eadfd5!important;
  font-family:inherit!important;
  font-size:1rem!important;
  line-height:1.68!important;
  letter-spacing:0!important;
}
.wedding-dj-page .wedding-cta-notes{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:8px;
  margin:27px auto 0;
}
.wedding-dj-page .wedding-cta-notes span{
  padding:8px 12px;
  border:1px solid rgba(232,207,171,.18);
  border-radius:999px;
  background:rgba(255,255,255,.05);
  color:#e8d7c5;
  font-size:.62rem;
  line-height:1.2;
  font-weight:800;
  letter-spacing:.11em;
  text-transform:uppercase;
}
.wedding-dj-page .wedding-cta .page-actions{
  justify-content:center;
  margin-top:31px;
}
.wedding-dj-page .wedding-cta .primary{
  min-height:52px;
  padding-left:24px;
  padding-right:24px;
}

@media(max-width:920px){
  .wedding-dj-page .wedding-design-bridge .wedding-shell{
    grid-template-columns:1fr;
    gap:28px;
  }
  .wedding-dj-page .wedding-design-bridge-steps{max-width:620px}
}
@media(max-width:650px){
  .wedding-dj-page .wedding-design-bridge{padding:52px 0}
  .wedding-dj-page .wedding-design-bridge h2{font-size:clamp(2.25rem,11vw,3.4rem)}
  .wedding-dj-page .wedding-design-bridge-copy>p:last-child{font-size:.94rem}
  .wedding-dj-page .wedding-design-bridge-steps{grid-template-columns:1fr;gap:7px}
  .wedding-dj-page .wedding-design-bridge-steps span{min-height:0;padding:12px 14px;display:flex;align-items:center;gap:12px}
  .wedding-dj-page .wedding-design-bridge-steps b{display:inline-block;margin:0;font-size:1rem}
  .wedding-dj-page .wedding-cta{min-height:0;padding:76px 20px 82px!important}
  .wedding-dj-page .wedding-cta h2{font-size:clamp(2.8rem,14vw,4.6rem)}
  .wedding-dj-page .wedding-cta-copy{font-size:.94rem!important;line-height:1.62!important}
  .wedding-dj-page .wedding-cta-notes{gap:6px;margin-top:22px}
  .wedding-dj-page .wedding-cta-notes span{font-size:.57rem;padding:7px 9px}
  .wedding-dj-page .wedding-cta .page-actions{margin-top:26px}
}


/* V8.38 — desktop wedding booth selector: restore uncropped preview and reclaim space below.
   The live booth preview must stay on its full source frame so the animated moving heads,
   floor spots and first-dance/gobo effects remain aligned. To offset the extra image height,
   the information and save/share cards are tightened on desktop only. Mobile stays unchanged. */
@media(min-width:1081px){
  .wedding-dj-page .wedding-booth-selector-section .wedding-shell{
    width:min(1120px,calc(100% - 52px))!important;
    row-gap:12px!important;
  }

  .wedding-dj-page .wedding-booth-selector-intro{
    margin:0 auto 4px!important;
  }
  .wedding-dj-page .wedding-booth-selector-intro h2{
    margin:6px auto 9px!important;
  }
  .wedding-dj-page .wedding-booth-selector-intro .lead{
    max-width:860px!important;
    font-size:.93rem!important;
    line-height:1.48!important;
  }
  .wedding-dj-page .wedding-booth-selector-intro .supporting{
    max-width:860px!important;
    margin-top:5px!important;
    font-size:.81rem!important;
    line-height:1.38!important;
  }

  .wedding-dj-page .wedding-booth-selector-visual{
    height:auto!important;
    aspect-ratio:3 / 2!important;
    min-height:0!important;
    max-height:none!important;
  }
  .wedding-dj-page .wedding-booth-selector-visual>img,
  .wedding-dj-page .wedding-booth-selector-visual .wedding-booth-base-image,
  .wedding-dj-page .wedding-booth-selector-visual .wedding-booth-front-image,
  .wedding-dj-page .wedding-booth-selector-visual #wedding-booth-style-image,
  .wedding-dj-page .wedding-booth-selector-visual #wedding-booth-lighting-overlay{
    width:100%!important;
    height:100%!important;
    object-fit:fill!important;
    object-position:50% 50%!important;
  }

  .wedding-dj-page .wedding-selector-controls-panel{
    gap:8px!important;
  }
  .wedding-dj-page .wedding-selector-controls-panel>.wedding-booth-selector-controls,
  .wedding-dj-page .wedding-selector-controls-panel>.wedding-ambience-selector,
  .wedding-dj-page .wedding-selector-controls-panel>.wedding-lighting-selector{
    padding:10px 11px 9px!important;
    border-radius:15px!important;
  }
  .wedding-dj-page .wedding-selector-controls-panel>.wedding-current-setup-inline{
    padding:8px 12px!important;
    font-size:.68rem!important;
  }

  .wedding-dj-page .wedding-selector-controls-panel .wedding-booth-selector-controls button{
    min-height:66px!important;
    font-size:.58rem!important;
    gap:3px!important;
    padding:0 0 4px!important;
  }
  .wedding-dj-page .wedding-selector-controls-panel .wedding-booth-selector-controls button::before{
    aspect-ratio:1.5 / 1!important;
  }
  .wedding-dj-page .wedding-selector-controls-panel .wedding-ambience-selector-head{
    margin-bottom:6px!important;
  }
  .wedding-dj-page .wedding-selector-controls-panel .wedding-ambience-selector-controls button{
    min-height:36px!important;
    font-size:.63rem!important;
    padding:5px 3px!important;
  }
  .wedding-dj-page .wedding-selector-controls-panel .wedding-ambience-copy{
    margin-top:5px!important;
    font-size:.62rem!important;
    line-height:1.25!important;
  }
  .wedding-dj-page .wedding-selector-controls-panel .wedding-lighting-selector-controls{
    gap:4px!important;
  }
  .wedding-dj-page .wedding-selector-controls-panel .wedding-lighting-selector-controls button,
  .wedding-dj-page .wedding-selector-controls-panel .wedding-lighting-selector-controls button:nth-child(n),
  .wedding-dj-page .wedding-selector-controls-panel .wedding-lighting-selector-controls button:nth-of-type(n){
    min-height:56px!important;
    font-size:.51rem!important;
    gap:3px!important;
  }
  .wedding-dj-page .wedding-selector-controls-panel .wedding-lighting-selector-controls .lighting-swatch{
    width:24px!important;
    height:24px!important;
    flex-basis:24px!important;
  }

  .wedding-dj-page .wedding-booth-selector-details,
  .wedding-dj-page .wedding-booth-selector-cta{
    padding:13px 15px!important;
    border-radius:16px!important;
  }
  .wedding-dj-page .wedding-booth-selector-details h3{
    margin:0 0 5px!important;
    font-size:1.46rem!important;
    line-height:1.02!important;
  }
  .wedding-dj-page .wedding-booth-selector-details #wedding-booth-style-copy{
    font-size:.79rem!important;
    line-height:1.36!important;
  }
  .wedding-dj-page .wedding-lighting-status,
  .wedding-dj-page .wedding-ambience-status,
  .wedding-dj-page .wedding-setup-summary{
    margin:6px 6px 0 0!important;
    padding:4px 7px!important;
    font-size:.56rem!important;
    line-height:1.14!important;
  }
  .wedding-dj-page .wedding-booth-selector-cta .cta-title{
    margin:0 0 4px!important;
    font-size:1.16rem!important;
    line-height:1.06!important;
  }
  .wedding-dj-page .wedding-booth-selector-cta>p:not(.cta-title){
    margin-bottom:6px!important;
    font-size:.75rem!important;
    line-height:1.34!important;
  }
  .wedding-dj-page .wedding-booth-selector-cta .wedding-setup-action-grid{
    max-width:300px!important;
    margin:6px auto 0!important;
    gap:8px!important;
  }
  .wedding-dj-page .wedding-booth-selector-cta .wedding-setup-icon-frame{
    width:50px!important;
    height:40px!important;
    min-height:40px!important;
    flex-basis:40px!important;
  }
  .wedding-dj-page .wedding-booth-selector-cta .wedding-setup-icon-label{
    font-size:.59rem!important;
  }
  .wedding-dj-page .wedding-booth-selector-cta .wedding-share-targets{
    display:none!important;
  }
  .wedding-dj-page .wedding-booth-selector-cta .wedding-setup-utility-actions{
    margin-top:5px!important;
    gap:7px!important;
    font-size:.6rem!important;
  }
}

@media(min-width:1081px) and (max-height:900px){
  .wedding-dj-page .wedding-booth-selector-section{
    padding-top:22px!important;
    padding-bottom:28px!important;
  }
  .wedding-dj-page .wedding-booth-selector-intro .supporting{
    display:none!important;
  }
  .wedding-dj-page .wedding-booth-selector-visual{
    height:auto!important;
    aspect-ratio:3 / 2!important;
    min-height:0!important;
    max-height:none!important;
  }
  .wedding-dj-page .wedding-selector-controls-panel>.wedding-booth-selector-controls,
  .wedding-dj-page .wedding-selector-controls-panel>.wedding-ambience-selector,
  .wedding-dj-page .wedding-selector-controls-panel>.wedding-lighting-selector{
    padding:8px 9px!important;
  }
  .wedding-dj-page .wedding-selector-controls-panel .wedding-booth-selector-controls button{
    min-height:60px!important;
  }
  .wedding-dj-page .wedding-selector-controls-panel .wedding-lighting-selector-controls button,
  .wedding-dj-page .wedding-selector-controls-panel .wedding-lighting-selector-controls button:nth-child(n),
  .wedding-dj-page .wedding-selector-controls-panel .wedding-lighting-selector-controls button:nth-of-type(n){
    min-height:50px!important;
  }
  .wedding-dj-page .wedding-booth-selector-details,
  .wedding-dj-page .wedding-booth-selector-cta{
    padding:10px 12px!important;
  }
  .wedding-dj-page .wedding-booth-selector-details h3{
    font-size:1.28rem!important;
  }
  .wedding-dj-page .wedding-booth-selector-details #wedding-booth-style-copy,
  .wedding-dj-page .wedding-booth-selector-cta>p:not(.cta-title){
    font-size:.72rem!important;
    line-height:1.28!important;
  }
  .wedding-dj-page .wedding-lighting-status,
  .wedding-dj-page .wedding-ambience-status,
  .wedding-dj-page .wedding-setup-summary{
    margin-top:4px!important;
    padding:3px 6px!important;
    font-size:.54rem!important;
  }
  .wedding-dj-page .wedding-booth-selector-cta .cta-title{
    font-size:1.06rem!important;
  }
  .wedding-dj-page .wedding-booth-selector-cta .wedding-setup-icon-frame{
    width:44px!important;
    height:36px!important;
    min-height:36px!important;
    flex-basis:36px!important;
  }
}
