/* =====================================================================
   SPITI ODYSSEY — NEW YEAR MOUNTAIN PARTY & TREK  (2026 enhancement)
   Loaded AFTER odyssey.css. Only styles new components, plus three
   small, scoped extensions to existing ones (hero facts grid, nav link,
   footer block). Nothing in odyssey.css is overridden globally.
   Palette additions: icy blue, midnight, electric blue, magenta.
   ===================================================================== */
:root{
  --midnight:#05070c;
  --midnight-2:#0a0f1a;
  --icy:#bfe3f2;
  --electric:#4cc3ff;
  --magenta:#e0459b;
  --violet:#7a5cff;
  --fire:#ff8a3d;
}

/* ---------- scroll progress ---------- */
.scrollbar{position:fixed;inset:0 0 auto 0;height:3px;z-index:150;pointer-events:none}
.scrollbar i{display:block;height:100%;transform-origin:0 50%;transform:scaleX(0);background:linear-gradient(90deg,var(--icy),var(--electric) 45%,var(--magenta) 80%,var(--amber))}

/* ---------- nav: the party link ---------- */
.nav__links a.nav__party{color:var(--snow);position:relative}
.nav__links a.nav__party::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--magenta);margin-right:8px;vertical-align:2px;box-shadow:0 0 10px var(--magenta);animation:pulse 2.4s ease-in-out infinite}
@keyframes pulse{50%{opacity:.35;transform:scale(.7)}}

/* ---------- buttons: glow highlight around booking CTAs ---------- */
.btn--glow{position:relative;isolation:isolate;background:transparent!important;border-color:transparent!important;color:var(--fg);--bg:var(--amber);transition:box-shadow .4s,color .3s}
.btn--glow::before{content:"";position:absolute;inset:-2px;z-index:-2;background:conic-gradient(from var(--ang,0deg),var(--amber),var(--magenta),var(--electric),var(--icy),var(--amber));animation:spin-ang 4s linear infinite}
.btn--glow::after{content:"";position:absolute;inset:0;z-index:-1;background:var(--bg);transition:background .3s}
.btn--glow:hover{box-shadow:0 0 34px rgba(224,69,155,.35),0 0 60px rgba(76,195,255,.18)}
.btn--glow-ring{box-shadow:0 0 0 1px rgba(76,195,255,.45),0 0 22px rgba(76,195,255,.18)}
@property --ang{syntax:"<angle>";inherits:false;initial-value:0deg}
@keyframes spin-ang{to{--ang:360deg}}

/* ---------- big compass ---------- */
.bigcompass{width:100%;height:100%;overflow:visible;color:var(--icy)}
.bigcompass circle{stroke:currentColor;stroke-opacity:.35}
.bigcompass__ticks path{stroke:currentColor;stroke-opacity:.45;stroke-width:.8}
.bigcompass__star{fill:none;stroke:currentColor;stroke-opacity:.6}
.bigcompass__n{fill:var(--amber)}
.bigcompass text{font:9px var(--f-mono);fill:currentColor;fill-opacity:.7;letter-spacing:.1em}
.bigcompass__rose{transform-origin:100px 100px;animation:rose 90s linear infinite}
.bigcompass--amber{color:var(--amber)}
@keyframes rose{to{transform:rotate(360deg)}}

/* ---------- hero additions ---------- */
.hero__facts{grid-template-columns:repeat(4,auto)}
@media (max-width:1100px){.hero__facts{grid-template-columns:repeat(2,auto)}}
.hero__chip{align-self:flex-start;display:inline-flex;align-items:center;gap:10px;margin:0 0 18px;padding:8px 14px;border:1px solid rgba(76,195,255,.35);background:rgba(5,7,12,.45);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);font-family:var(--f-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--icy);max-width:100%}
.hero__chip-dot{width:8px;height:8px;border-radius:50%;background:var(--magenta);box-shadow:0 0 12px var(--magenta),0 0 2px #fff;flex:none;animation:pulse 2s ease-in-out infinite}
.hero__compass{position:absolute;z-index:4;right:calc(var(--gut) - 40px);bottom:20%;width:min(340px,34vw);aspect-ratio:1;opacity:.22;pointer-events:none}
.hero__bokeh{position:absolute;inset:0;z-index:4;pointer-events:none;overflow:hidden}
.hero__bokeh i{position:absolute;left:var(--x);top:var(--y);width:var(--s);height:var(--s);border-radius:50%;background:var(--c);box-shadow:0 0 calc(var(--s) * 3) var(--c);opacity:.0;animation:float var(--d) ease-in-out var(--o) infinite}
@keyframes float{0%,100%{transform:translate3d(0,0,0);opacity:0}30%{opacity:.55}50%{transform:translate3d(10px,-26px,0);opacity:.35}80%{opacity:.5}}
@media (max-width:899px){.hero__compass{display:none}.hero__chip{font-size:10px;letter-spacing:.1em}}

/* ---------- section snow canvases ---------- */
.snow--section{position:absolute;inset:0;z-index:2;pointer-events:none;width:100%;height:100%}

/* ---------- A · New Year in the snow ---------- */
.nysnow{position:relative;min-height:100svh;display:flex;align-items:center;overflow:hidden;background:var(--midnight)}
.nysnow__bg{position:absolute;inset:-12% 0;z-index:0}
.nysnow__bg .ph--cover img{filter:saturate(.85) brightness(.75)}
.nysnow__bg .ph--cover figcaption{bottom:calc(12% + 14px)}
.nysnow__veil{position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(5,7,12,.88) 0%,rgba(5,7,12,.55) 45%,rgba(5,7,12,.1) 80%),linear-gradient(0deg,rgba(5,7,12,.9),transparent 40%);pointer-events:none}
.nysnow__compass{position:absolute;z-index:2;right:-6vw;top:12%;width:min(520px,48vw);aspect-ratio:1;opacity:.35;pointer-events:none}
.nysnow__in{position:relative;z-index:3;padding-top:calc(var(--nav-h) + 60px);padding-bottom:80px}
.nysnow__in .lede{margin-top:24px;max-width:44ch;color:rgba(242,239,232,.9)}
.nysnow__in h2{max-width:12ch;filter:drop-shadow(0 4px 30px rgba(0,0,0,.45))}
.nysnow__in .btn-row{margin-top:30px}
.nysnow__cd{margin-top:34px}
@media (max-width:899px){.nysnow__compass{width:80vw;right:-30vw;opacity:.2}}

/* ---------- countdown ---------- */
.countdown{max-width:560px}
.countdown__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid rgba(191,227,242,.28);background:rgba(5,7,12,.5);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.countdown__grid>div{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:16px 16px 14px;border-right:1px solid rgba(191,227,242,.18)}
.countdown__grid>div:last-child{border-right:0}
.countdown__grid b{font-family:var(--f-display);font-weight:800;font-size:clamp(34px,4.4vw,60px);line-height:.9;font-variant-numeric:tabular-nums;color:var(--snow)}
.countdown__grid>div:first-child b{color:var(--amber)}
.countdown__to{margin-top:10px}
.countdown__done{font-family:var(--f-serif);font-size:18px;padding:16px 18px;border:1px solid var(--amber);background:rgba(224,163,90,.08)}
@media (max-width:420px){.countdown__grid>div{padding:12px 10px}.countdown__grid .label{font-size:9px;letter-spacing:.08em}}

/* ---------- B · The mountain party ---------- */
.party{position:relative;overflow:hidden;padding:clamp(90px,12vw,180px) 0;background:radial-gradient(80% 60% at 80% 10%,rgba(122,92,255,.22),transparent 60%),radial-gradient(70% 60% at 10% 90%,rgba(224,69,155,.18),transparent 60%),linear-gradient(180deg,var(--midnight),var(--midnight-2) 60%,var(--midnight))}
.party__beams{position:absolute;inset:-20% -10% auto -10%;height:120%;pointer-events:none;z-index:0;mix-blend-mode:screen}
.party__beams i{position:absolute;top:-10%;left:var(--l,20%);width:28vw;height:120%;transform-origin:50% 0;background:linear-gradient(180deg,var(--bc,rgba(76,195,255,.28)),transparent 75%);clip-path:polygon(46% 0,54% 0,100% 100%,0 100%);filter:blur(8px);opacity:.55;animation:beam var(--bd,9s) ease-in-out infinite alternate}
.party__beams i:nth-child(1){--l:6%;--bc:rgba(76,195,255,.32);--bd:8s}
.party__beams i:nth-child(2){--l:34%;--bc:rgba(224,69,155,.3);--bd:11s;animation-delay:-3s}
.party__beams i:nth-child(3){--l:58%;--bc:rgba(191,227,242,.24);--bd:9.5s;animation-delay:-5s}
.party__beams i:nth-child(4){--l:80%;--bc:rgba(122,92,255,.3);--bd:12s;animation-delay:-2s}
.party__beams--soft i{opacity:.32}
@keyframes beam{0%{transform:rotate(-16deg)}100%{transform:rotate(16deg)}}
.party__orbs{position:absolute;inset:0;pointer-events:none;z-index:0}
.party__orbs i{position:absolute;width:10px;height:10px;border-radius:50%;filter:blur(1px);animation:float 9s ease-in-out infinite}
.party__orbs i:nth-child(1){left:12%;top:22%;background:var(--magenta);box-shadow:0 0 30px var(--magenta)}
.party__orbs i:nth-child(2){left:44%;top:12%;background:var(--electric);box-shadow:0 0 30px var(--electric);animation-delay:-2s}
.party__orbs i:nth-child(3){left:72%;top:30%;background:var(--amber);box-shadow:0 0 30px var(--amber);animation-delay:-4s}
.party__orbs i:nth-child(4){left:88%;top:68%;background:var(--icy);box-shadow:0 0 30px var(--icy);animation-delay:-1s}
.party__orbs i:nth-child(5){left:28%;top:78%;background:var(--violet);box-shadow:0 0 30px var(--violet);animation-delay:-6s}
.party__orbs i:nth-child(6){left:60%;top:86%;background:var(--magenta);box-shadow:0 0 30px var(--magenta);animation-delay:-3s}
.party .wrap{position:relative;z-index:1}
.party__head{max-width:980px;margin-bottom:clamp(40px,6vw,80px)}
.party__head .lede{margin-top:26px;max-width:48ch}
.party__kicker{color:var(--icy)}
.party__kicker svg{width:14px;height:14px;color:var(--magenta)}
.party__neon{color:transparent;-webkit-text-stroke:1.4px var(--icy);filter:drop-shadow(0 0 14px rgba(76,195,255,.55));animation:neon 5s ease-in-out infinite}
.party__neon .w>span{-webkit-text-stroke:inherit}
@keyframes neon{0%,100%{-webkit-text-stroke-color:var(--icy);filter:drop-shadow(0 0 14px rgba(76,195,255,.55))}50%{-webkit-text-stroke-color:#ffc3e2;filter:drop-shadow(0 0 16px rgba(224,69,155,.6))}}
.party__grid{display:grid;grid-template-columns:1.6fr 1fr;gap:clamp(14px,2vw,28px);align-items:start}
.party__side{display:grid;gap:clamp(14px,2vw,28px)}
.party__main .ph__img,.party__side .ph__img{box-shadow:0 30px 80px -30px rgba(76,195,255,.35)}
.party__pills{list-style:none;margin:clamp(36px,5vw,60px) 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid rgba(191,227,242,.2)}
.party__pills li{padding:22px 22px 0 0;display:flex;flex-direction:column;gap:6px}
.party__pills li+li{padding-left:22px;border-left:1px solid rgba(191,227,242,.2)}
.party__pills b{font-family:var(--f-display);font-weight:800;font-size:clamp(24px,2.4vw,36px);text-transform:uppercase;line-height:.95}
.party__pills span{font-size:14px;color:var(--muted)}
@media (max-width:899px){.party__grid{grid-template-columns:1fr}.party__side{grid-template-columns:1fr 1fr}.party__pills{grid-template-columns:1fr}.party__pills li+li{padding-left:0;border-left:0;border-top:1px solid rgba(191,227,242,.2);margin-top:18px}}
@media (max-width:520px){.party__side{grid-template-columns:1fr}}

/* image hover refinement (new sections only) */
.party .ph__img img,.bonfire .ph__img img,.dj .ph__img img,.transport .ph__img img,.hgal .ph__img img,.nightalive .ph__img img{transition:transform 1.2s var(--ease),filter .6s}
.party .ph__img:hover img,.bonfire .ph__img:hover img,.dj .ph__img:hover img,.transport .ph__img:hover img,.hgal .ph__img:hover img,.nightalive .ph__img:hover img{transform:scale(1.06);filter:saturate(1.15) brightness(1.05)}

/* ---------- C · Bonfire nights ---------- */
.bonfire{position:relative;overflow:hidden;padding:clamp(90px,12vw,180px) 0;background:#0b0705}
.bonfire__bg{position:absolute;inset:0;z-index:0;opacity:.35}
.bonfire__bg .ph--cover img{filter:saturate(1.2) brightness(.7)}
.bonfire__glow{position:absolute;left:50%;bottom:-30%;width:120vmax;height:80vmax;transform:translateX(-50%);z-index:1;pointer-events:none;background:radial-gradient(closest-side,rgba(255,138,61,.45),rgba(224,163,90,.12) 45%,transparent 70%);animation:flicker 3.2s ease-in-out infinite}
@keyframes flicker{0%,100%{opacity:.85;transform:translateX(-50%) scale(1)}25%{opacity:1;transform:translateX(-50%) scale(1.03)}55%{opacity:.75}75%{opacity:.95;transform:translateX(-50%) scale(.99)}}
.sparks{position:absolute;inset:0;z-index:2;width:100%;height:100%;pointer-events:none}
.bonfire__in{position:relative;z-index:3;display:grid;grid-template-columns:5fr 7fr;gap:clamp(30px,5vw,80px);align-items:center}
.bonfire__text h2{color:#fff3e4;filter:drop-shadow(0 0 26px rgba(255,138,61,.35))}
.bonfire__text .prose{margin-top:24px;color:rgba(255,236,214,.86)}
.bonfire__sub{margin-top:18px;color:var(--amber)}
.bonfire__stack{display:grid;grid-template-columns:1fr 1fr;gap:clamp(12px,1.6vw,22px)}
.bonfire__a{grid-column:1/-1}
.bonfire__d{grid-column:1/-1}
.bonfire .ph__img{box-shadow:0 30px 70px -30px rgba(255,138,61,.55)}
.bonfire .ph figcaption{color:rgba(255,236,214,.6)}
@media (max-width:899px){.bonfire__in{grid-template-columns:1fr}}

/* ---------- D · Special DJ ---------- */
.dj{position:relative;overflow:hidden;padding:clamp(90px,12vw,180px) 0;background:var(--midnight)}
.dj__bg{position:absolute;inset:0;z-index:0}
.dj__bg .ph--cover img{filter:brightness(.55) saturate(1.1) hue-rotate(-10deg)}
.dj__veil{position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(60% 70% at 85% 50%,rgba(224,69,155,.25),transparent 70%),linear-gradient(90deg,rgba(5,7,12,.92),rgba(5,7,12,.6) 55%,rgba(5,7,12,.4))}
.dj__in{position:relative;z-index:2;display:grid;grid-template-columns:7fr 5fr;gap:clamp(30px,5vw,80px);align-items:center}
.dj__kicker{color:var(--magenta)}
.dj__text h2{max-width:13ch}
.dj__text .lede{margin-top:24px;max-width:42ch}
.dj__note{margin-top:28px;border-left-color:var(--magenta)}
.eq{display:flex;align-items:flex-end;gap:4px;height:84px;margin-top:34px;max-width:560px}
.eq i{flex:1;height:var(--h);background:linear-gradient(0deg,var(--electric),var(--magenta));border-radius:2px 2px 0 0;transform-origin:50% 100%;animation:eq var(--d) ease-in-out var(--o) infinite alternate;opacity:.85}
@keyframes eq{0%{transform:scaleY(.18)}100%{transform:scaleY(1)}}
.dj__visual{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start;padding-top:60px}
.dj__disc{position:absolute;right:-10%;top:-40px;width:min(380px,34vw);aspect-ratio:1;animation:rose 6s linear infinite;filter:drop-shadow(0 0 40px rgba(224,69,155,.35));opacity:.85;z-index:0}
.dj__ph{position:relative;z-index:2}
.dj__ph--a{grid-column:1/-1;width:86%}
.dj__ph--b{grid-column:1/-1;width:62%;justify-self:end;margin-top:0;z-index:3}
.dj__ph--b .ph__img{outline:6px solid var(--midnight)}
.dj .ph__img{box-shadow:0 30px 80px -30px rgba(224,69,155,.6)}
@media (max-width:899px){.dj__in{grid-template-columns:1fr}.dj__visual{padding-top:20px}.dj__ph--a,.dj__ph--b{width:100%;margin-top:0;justify-self:stretch}.dj__disc{width:50vw;right:-14vw;top:-10vw;opacity:.5}}

/* ---------- Transport ---------- */
.transport{position:relative;overflow:hidden;padding:clamp(90px,12vw,180px) 0;background:var(--midnight-2)}
.transport__bg{position:absolute;inset:0;z-index:0}
.transport__bg .ph--cover img{filter:brightness(.55) saturate(.8)}
.transport__veil{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(10,15,26,.85),rgba(10,15,26,.55) 40%,rgba(10,15,26,.92));pointer-events:none}
.transport__route{position:absolute;left:0;right:0;top:12%;height:60%;width:100%;z-index:1;pointer-events:none}
.transport__route path{fill:none;stroke:var(--amber);stroke-width:2;vector-effect:non-scaling-stroke}
.transport__route [data-route-line]{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 3s var(--ease)}
.transport__route.is-on [data-route-line]{stroke-dashoffset:0}
.transport__route-dash{stroke:var(--icy)!important;stroke-opacity:.35;stroke-dasharray:3 9;animation:dash 6s linear infinite}
@keyframes dash{to{stroke-dashoffset:-240}}
.transport__in{position:relative;z-index:2;display:grid;grid-template-columns:6fr 6fr;gap:clamp(30px,5vw,80px);align-items:center}
.transport__opts{display:grid;gap:16px;margin-top:34px}
.topt{display:grid;grid-template-columns:56px 1fr;gap:18px;padding:22px;border:1px solid rgba(191,227,242,.22);background:rgba(5,7,12,.55);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);transition:border-color .3s,transform .3s var(--ease)}
.topt:hover{border-color:var(--amber);transform:translateY(-2px)}
.topt__ic{width:56px;height:56px;display:grid;place-items:center;border:1px solid rgba(224,163,90,.4);color:var(--amber)}
.topt__ic svg{width:34px;height:34px}
.topt h3{font-family:var(--f-display);font-weight:800;text-transform:uppercase;font-size:clamp(22px,2vw,30px);line-height:1;margin:6px 0 8px}
.topt p{margin:0;font-size:14.5px;color:var(--muted)}
.transport__note{margin-top:26px}
.transport .btn-row{margin-top:24px}
.transport__visual{position:relative}
.transport__compass{position:absolute;width:min(300px,30vw);aspect-ratio:1;right:-40px;top:-60px;z-index:0;opacity:.55}
.transport__car{position:relative;z-index:1}
.transport__car .ph__img{box-shadow:0 40px 90px -30px rgba(0,0,0,.8),0 0 0 1px rgba(191,227,242,.15)}
@media (max-width:899px){.transport__in{grid-template-columns:1fr}.transport__compass{width:44vw;right:-10vw;top:-24vw}}

/* ---------- E · Himalayan experience gallery ---------- */
.hgal__chips{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:26px}
.chip{font-family:var(--f-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;padding:10px 16px;border:1px solid var(--line-2);color:var(--muted);transition:all .25s}
.chip:hover{color:var(--snow);border-color:var(--snow)}
.chip[aria-pressed="true"]{background:var(--icy);border-color:var(--icy);color:var(--ink)}
.hgal__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:clamp(160px,18vw,260px);grid-auto-flow:dense;gap:clamp(10px,1.2vw,18px)}
.hgal__item{position:relative;overflow:hidden;transition:opacity .5s,transform .5s var(--ease)}
.hgal__item--tall{grid-row:span 2}
.hgal__item--wide{grid-column:span 2}
.hgal__ph{height:100%}
.hgal__ph .ph__img{height:100%}
.hgal__ph figcaption{position:absolute;left:0;right:0;bottom:0;padding:30px 12px 10px;background:linear-gradient(0deg,rgba(5,7,12,.9),transparent);opacity:0;transform:translateY(8px);transition:all .4s var(--ease);z-index:2;pointer-events:none}
.hgal__item:hover figcaption,.hgal__item:focus-within figcaption{opacity:1;transform:none}
.hgal__tag{position:absolute;left:12px;top:12px;z-index:2;background:rgba(5,7,12,.65);padding:6px 10px;color:var(--icy);pointer-events:none}
.hgal__item.is-out{display:none}
.js .hgal__item.is-in{animation:hg-in .7s var(--ease) both;animation-delay:calc(var(--n,0) * 60ms)}
@keyframes hg-in{from{opacity:0;transform:translateY(24px) scale(.98)}to{opacity:1;transform:none}}
@media (max-width:899px){.hgal__grid{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.hgal__grid{grid-auto-rows:150px}.hgal__item--wide{grid-column:span 2}.hgal__ph figcaption{opacity:1;transform:none;font-size:9.5px}}

/* ---------- F · The night comes alive ---------- */
.nightalive{position:relative;overflow:hidden;min-height:110svh;display:flex;align-items:center;padding:clamp(90px,12vw,170px) 0;background:var(--midnight)}
.nightalive__bg{position:absolute;inset:-10% 0;z-index:0}
.nightalive__bg .ph--cover img{filter:brightness(.6) saturate(1.1)}
.nightalive__bg .ph--cover figcaption{bottom:calc(10% + 14px)}
.nightalive__veil{position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(180deg,rgba(5,7,12,.85),rgba(5,7,12,.35) 40%,rgba(5,7,12,.9))}
.nightalive .party__beams{z-index:1}
.nightalive__ridge{position:absolute;left:-2%;width:104%;bottom:0;height:42%;z-index:2;pointer-events:none;max-width:none}
.nightalive__in{position:relative;z-index:3}
.nightalive__kicker{color:var(--magenta)}
.nightalive h2{max-width:16ch}
.nightalive__duo{display:grid;grid-template-columns:1fr 1fr;gap:clamp(12px,1.6vw,24px);margin:clamp(36px,5vw,60px) 0 30px;max-width:900px}
.nightalive__duo>div:nth-child(2){margin-top:10%}
@media (max-width:620px){.nightalive__duo{grid-template-columns:1fr}.nightalive__duo>div:nth-child(2){margin-top:0}}

/* ---------- Booking band ---------- */
.bookband{position:relative;overflow:hidden;padding:clamp(70px,9vw,130px) 0;background:linear-gradient(135deg,#0a0f1a,#120b18 50%,#160d08);border-top:1px solid rgba(191,227,242,.15);border-bottom:1px solid rgba(191,227,242,.15)}
.bookband__lights{position:absolute;inset:0;pointer-events:none}
.bookband__lights i{position:absolute;width:40vmax;height:40vmax;border-radius:50%;filter:blur(60px);opacity:.25;animation:float 14s ease-in-out infinite}
.bookband__lights i:nth-child(1){left:-10%;top:-30%;background:var(--electric)}
.bookband__lights i:nth-child(2){right:-12%;top:-20%;background:var(--magenta);animation-delay:-5s}
.bookband__lights i:nth-child(3){left:40%;bottom:-50%;background:var(--amber);animation-delay:-9s}
.bookband__in{position:relative;display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(24px,4vw,60px);align-items:end}
.bookband__date{display:flex;flex-direction:column;gap:6px;margin-top:22px}
.bookband__date b{font-family:var(--f-display);font-weight:800;font-size:clamp(26px,2.8vw,40px);text-transform:uppercase;color:var(--amber);line-height:1}
.bookband__price{display:grid;grid-template-columns:1fr auto 1fr;gap:20px;align-items:end;padding:28px;border:1px solid rgba(191,227,242,.25);background:rgba(5,7,12,.45);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.bookband__price>div{display:flex;flex-direction:column;gap:8px}
.bookband__price b{font-family:var(--f-display);font-weight:800;font-size:clamp(36px,4.4vw,68px);line-height:.85;letter-spacing:-.01em}
.bookband__price>div:first-child b{color:var(--icy)}
.bookband__sep{width:1px;align-self:stretch;background:rgba(191,227,242,.25)}
.bookband__note{grid-column:1/-1;margin:6px 0 0;font-size:13.5px;color:var(--muted)}
.bookband__cta{grid-column:1/-1}
@media (max-width:899px){.bookband__in{grid-template-columns:1fr}}
@media (max-width:480px){.bookband__price{grid-template-columns:1fr;padding:20px}.bookband__sep{width:auto;height:1px}}

/* ---------- Booking page: price summary + WhatsApp card ---------- */
.psum__event{display:flex;flex-direction:column;gap:4px;margin:14px 0 6px}
.psum__event b{font-family:var(--f-display);font-weight:800;font-size:clamp(24px,2.4vw,34px);text-transform:uppercase;line-height:1}
.psum__event small{font-family:var(--f-mono);font-size:11px;letter-spacing:.1em;color:var(--amber);text-transform:uppercase}
.psum__rows{display:grid;grid-template-columns:auto 1fr;gap:0;margin:16px 0;font-size:14.5px}
.psum__rows dt,.psum__rows dd{padding:10px 0;border-top:1px solid var(--line);margin:0}
.psum__rows dt{color:var(--muted);padding-right:16px}
.psum__rows dd{text-align:right;font-family:var(--f-mono);font-size:12.5px;letter-spacing:.03em}
.psum__rows dd.is-set{color:var(--icy)}
.wa-card{display:flex;gap:14px;align-items:center;margin-top:18px;padding:16px 18px;border:1px solid rgba(37,211,102,.4);text-decoration:none;background:rgba(37,211,102,.06);transition:background .25s}
.wa-card:hover{background:rgba(37,211,102,.14)}
.wa-card svg{width:30px;height:30px;color:#25d366;flex:none}
.wa-card span{display:flex;flex-direction:column;gap:3px}
.wa-card small{font-size:12.5px;color:var(--muted)}

/* ---------- floating WhatsApp + mobile booking bar ---------- */
.wa-float{position:fixed;right:18px;bottom:18px;z-index:120;width:56px;height:56px;border-radius:50%;display:grid;place-items:center;background:#25d366;color:#fff;box-shadow:0 10px 30px rgba(0,0,0,.4),0 0 0 0 rgba(37,211,102,.5);animation:wa-pulse 3s ease-out infinite;transition:transform .25s var(--ease)}
.wa-float svg{width:30px;height:30px}
.wa-float:hover{transform:scale(1.07)}
.wa-float__tip{position:absolute;right:66px;white-space:nowrap;background:var(--snow);color:var(--ink);font-family:var(--f-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;padding:7px 10px;opacity:0;transform:translateX(6px);transition:all .25s;pointer-events:none}
.wa-float:hover .wa-float__tip,.wa-float:focus-visible .wa-float__tip{opacity:1;transform:none}
@keyframes wa-pulse{0%{box-shadow:0 10px 30px rgba(0,0,0,.4),0 0 0 0 rgba(37,211,102,.45)}70%{box-shadow:0 10px 30px rgba(0,0,0,.4),0 0 0 16px rgba(37,211,102,0)}100%{box-shadow:0 10px 30px rgba(0,0,0,.4),0 0 0 0 rgba(37,211,102,0)}}
.menu-open .wa-float{display:none}
.mcta{display:none}
@media (max-width:760px){
  .mcta{display:block;position:fixed;left:12px;right:84px;bottom:18px;z-index:119;transform:translateY(140%);transition:transform .4s var(--ease)}
  .mcta.is-on{transform:none}
  .mcta .btn{width:100%;justify-content:center;padding:15px 12px;font-size:12px}
  body[data-page="booking"] .mcta{display:none}
}
.menu-open .mcta{display:none}

/* ---------- footer: organiser block ---------- */
.foot__org{margin-top:clamp(40px,5vw,70px);padding:clamp(24px,3vw,40px);border:1px solid rgba(191,227,242,.2);background:linear-gradient(135deg,rgba(76,195,255,.05),rgba(224,69,155,.05))}
.foot__managed{font-family:var(--f-display);font-weight:800;text-transform:uppercase;font-size:clamp(26px,3.4vw,52px);line-height:.95;margin:0 0 22px;background:linear-gradient(90deg,var(--snow),var(--icy) 50%,var(--amber));-webkit-background-clip:text;background-clip:text;color:transparent}
.foot__org-row{display:flex;flex-wrap:wrap;gap:18px 34px;margin-bottom:22px}
.foot__org-row>span{display:flex;flex-direction:column;gap:5px;min-width:0}
.foot__org-row b{font-weight:600;font-size:14.5px}
.foot__org-row a{color:var(--snow);font-size:14.5px;overflow-wrap:anywhere}
.foot__wa{display:inline-flex;align-items:center;gap:8px;text-decoration:none}
.foot__wa svg{width:22px;height:22px;color:#25d366}

/* ---------- split-text entrances (JS adds .party-js) ---------- */
.party-js [data-split] .w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.04em}
.party-js [data-split] .w>span{display:inline-block;transform:translateY(105%);transition:transform 1.1s cubic-bezier(.16,1,.3,1);transition-delay:calc(var(--wi) * 55ms)}
.party-js [data-split].is-in .w>span{transform:none}
.party-js [data-split-in]{opacity:0;transform:translateY(18px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.party-js [data-split-in].is-in{opacity:1;transform:none}

/* ---------- reduced motion ---------- */
@media (prefers-reduced-motion:reduce){
  .bigcompass__rose,.dj__disc,.eq i,.party__beams i,.party__orbs i,.hero__bokeh i,.bonfire__glow,.btn--glow::before,.party__neon,.transport__route-dash,.bookband__lights i,.wa-float,.nav__links a.nav__party::before,.hero__chip-dot{animation:none!important}
  .hero__bokeh{display:none}
  .eq i{transform:scaleY(.6)}
  .party-js [data-split] .w>span,.party-js [data-split-in]{transform:none!important;opacity:1!important;transition:none!important}
  .transport__route [data-route-line]{stroke-dashoffset:0;transition:none}
}
