/* Shakedown Events — component styles. Colours come from theme.json presets. */
:root{--sd-blue:#0066FF;--sd-red:#EF3340;--sd-red-text:#C4162A;--sd-ink:#070D18;--sd-gold:#FFC72C;--sd-navy:#10213A;--sd-warm:#FFF9EE}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--sd-navy);outline-offset:3px}

/* header */
.sd-header{gap:.75rem 1.5rem}
.sd-logo{display:flex;flex-direction:column;gap:3px;line-height:1}
.sd-logo .wp-block-site-title{margin:0}
.sd-logo .wp-block-site-title a{text-decoration:none;letter-spacing:1px}
.sd-logo__sub{margin:0;font-weight:700;font-size:.75rem;letter-spacing:.375rem;color:var(--sd-red-text);line-height:1}
.sd-header .wp-block-navigation{font-weight:500;font-size:.9375rem}
.sd-header .wp-block-navigation a{text-decoration:none;color:var(--sd-navy)}

/* review banner */
.sd-banner{font-size:.875rem;text-align:center}

/* hero */
.sd-hero{position:relative;min-height:600px;align-items:center;justify-content:flex-start}
.sd-hero .wp-block-cover__image-background{object-position:70% 30%}
.sd-hero .wp-block-cover__background{opacity:1!important;background-color:transparent!important;background-image:linear-gradient(90deg,rgba(16,33,58,.88) 0%,rgba(16,33,58,.62) 45%,rgba(16,33,58,.1) 100%)}
.sd-hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:10px;background:linear-gradient(90deg,#0066FF 0 34%,#EF3340 34% 67%,#FFC72C 67% 100%);z-index:2}
.sd-hero .wp-block-cover__inner-container{max-width:1100px;padding:3rem 0 5rem;color:#fff}
.sd-hero h1{color:#fff;text-shadow:0 2px 12px rgba(16,33,58,.5);max-width:14em}
.sd-pill{display:inline-block;background:var(--sd-gold);color:var(--sd-navy);font-weight:700;padding:.5rem 1rem;border-radius:999px;font-size:.9375rem;margin:0}
.sd-hero .is-style-outline .wp-block-button__link{color:#fff;border:2px solid #fff;background:rgba(16,33,58,.55)}
.sd-placeholder-note{position:absolute;right:1rem;bottom:1rem;z-index:3;margin:0;font-size:.75rem;font-weight:600;color:var(--sd-navy);background:rgba(255,249,238,.9);padding:.25rem .75rem;border-radius:999px}

/* quick facts */
.sd-facts{margin-top:-3rem;position:relative;z-index:3;background:#fff;border-radius:24px;box-shadow:0 10px 30px rgba(16,33,58,.14);padding:1.5rem}
.sd-facts .sd-k{font-size:.8125rem;font-weight:700;letter-spacing:.125rem;color:var(--sd-blue);margin:0}
.sd-facts .sd-v{font-size:1.375rem;font-weight:700;margin:.25rem 0 0;line-height:1.25}

/* genre chips */
.sd-chips{display:flex;flex-wrap:wrap;gap:.625rem;margin:0;padding:0;list-style:none}
.sd-chips li{font-weight:700;padding:.625rem 1.125rem;border-radius:999px;background:var(--sd-blue);color:#fff}
.sd-chips li:nth-child(even){background:var(--sd-navy)}
.sd-chips li:nth-child(3){background:var(--sd-gold);color:var(--sd-navy)}

/* eyebrow */
.sd-eyebrow{font-weight:700;letter-spacing:.1875rem;font-size:.875rem;color:var(--sd-red-text);margin:0}

/* highlight cards */
.sd-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.125rem}
.sd-card{border-radius:24px;padding:1.5rem;display:flex;flex-direction:column;gap:.5rem;min-height:190px}
.sd-card p{margin:0}
.sd-card h3{margin:0;font-size:1.5rem;line-height:1.15}
.sd-card--blue{background:var(--sd-blue);color:#fff}.sd-card--blue h3{color:#fff}
.sd-card--white{background:#fff}.sd-card--white h3{color:var(--sd-navy)}
.sd-card--gold{background:var(--sd-gold)}.sd-card--gold h3{color:var(--sd-navy)}
.sd-card--navy{background:var(--sd-navy);color:#fff}.sd-card--navy h3{color:#fff}
.sd-card--red{background:var(--sd-red)}.sd-card--red h3{color:var(--sd-ink)}
.sd-card .sd-k{font-weight:700;font-size:.875rem;letter-spacing:.0625rem}

/* itinerary */
.sd-days{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem}
.sd-day{border:2px solid var(--sd-blue);border-radius:20px;padding:1.125rem 1.25rem;background:var(--sd-warm);display:flex;flex-direction:column;gap:.375rem}
.sd-day--gold{border-color:var(--sd-gold)}.sd-day--red{border-color:var(--sd-red)}
.sd-day p{margin:0}
.sd-day__date{align-self:flex-start;font-weight:700;font-size:.875rem;padding:.3125rem .75rem;border-radius:999px;background:var(--sd-blue);color:#fff}
.sd-day--gold .sd-day__date{background:var(--sd-gold);color:var(--sd-navy)}
.sd-day--red .sd-day__date{background:var(--sd-red);color:var(--sd-ink)}
.sd-day__title{margin:.375rem 0 0;font-family:var(--wp--preset--font-family--body);font-weight:700;font-size:1.3125rem;line-height:1.2;color:var(--sd-navy)}
.sd-day__line{font-size:1rem}
.sd-day__meta{font-size:.875rem;color:#44546A;font-weight:500}
.sd-day__tbc{font-weight:700}

/* lineup */
.sd-lineup{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.875rem}
.sd-artist{background:var(--sd-blue);color:#fff;border-radius:20px;padding:1.125rem;display:flex;flex-direction:column;gap:.625rem}
.sd-artist--host{background:var(--sd-red);color:var(--sd-ink)}
.sd-artist__photo{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:14px;display:flex;align-items:center;justify-content:center;text-align:center;font-size:.8125rem;background:rgba(255,255,255,.14);border:2px dashed rgba(255,255,255,.7)}
.sd-artist--host .sd-artist__photo--empty{border-color:var(--sd-navy);background:rgba(255,255,255,.35)}
.sd-artist__name{font-family:var(--wp--preset--font-family--display);font-size:1.3125rem;line-height:1.1;overflow-wrap:anywhere}
.sd-artist__role{font-weight:700;font-size:.875rem;letter-spacing:.0625rem}

/* passes and hotels */
.sd-passes{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.125rem}
.sd-pass,.sd-route{background:#fff;border:3px solid var(--sd-blue);border-radius:24px;padding:1.625rem;display:flex;flex-direction:column;gap:.75rem}
.sd-route--hotel{border-color:var(--sd-gold)}
.sd-pass h3,.sd-route h3{margin:0;font-size:1.625rem}
.sd-pass__price{font-weight:700;font-size:1.5rem;margin:0}
.sd-pass ul,.sd-route ul{margin:0;padding-left:1.25rem;line-height:1.7;font-size:1rem}
.sd-btn,.sd-route .wp-block-button__link{display:inline-block;text-align:center;background:var(--sd-gold);color:var(--sd-navy);font-weight:700;font-size:1.0625rem;padding:1rem 1.5rem;border-radius:999px;text-decoration:none;border:0}
.sd-btn--disabled,.sd-btn[disabled]{background:#D9DEE7;color:#44546A;cursor:not-allowed}

/* travel / community / cta */
.sd-travel{background:var(--wp--preset--color--sand);border-radius:28px}
.sd-community{background:var(--sd-blue);color:#fff;text-align:center}
.sd-community h2{color:#fff}
.sd-community .is-style-outline .wp-block-button__link{background:#fff;color:var(--sd-blue);border:0}
.sd-final{background:var(--sd-red);text-align:center}
.sd-final h2,.sd-final p{color:var(--sd-navy)}
.sd-final .wp-block-button__link{background:var(--sd-navy);color:var(--sd-gold)}
.sd-dark{background:var(--sd-navy);color:var(--sd-warm)}
.sd-dark h2{color:var(--sd-gold)}
.sd-trust{background:#fff;border:2px solid var(--sd-navy);border-radius:24px;padding:1.5rem}
.sd-trust h3{font-family:var(--wp--preset--font-family--body);font-weight:700;font-size:1.25rem;margin:0 0 .625rem}
.sd-trust ul{margin:0;padding-left:1.25rem;line-height:1.8}

/* faqs */
.sd-faq{background:#fff;border:1px solid #D9DEE7;border-radius:16px;padding:1rem 1.25rem;margin-bottom:.625rem}
.sd-faq summary{cursor:pointer;font-weight:700;font-size:1.125rem}
.sd-faq__a{margin-top:.75rem;font-size:1rem}

/* footer */
.sd-footer{background:var(--sd-navy);color:var(--sd-warm);padding-bottom:7rem}
.sd-footer a{color:var(--sd-warm)}
.sd-footer .sd-logo .wp-block-site-title a{color:var(--sd-gold)}
.sd-footer .sd-logo__sub{color:var(--sd-warm)}

/* WhatsApp + sticky booking bar. Bar is mobile-only; WhatsApp sits above it. */
.sd-wa{position:fixed;right:1rem;bottom:1rem;z-index:50;display:flex;flex-direction:column;align-items:flex-end;gap:.625rem}
.sd-wa__toggle{display:flex;align-items:center;gap:.625rem;background:#1A7F4B;color:#fff;font-weight:700;font-size:1rem;border:0;border-radius:999px;padding:.875rem 1.25rem;box-shadow:0 6px 18px rgba(0,0,0,.3);cursor:pointer}
.sd-wa__panel{position:relative;background:#fff;color:var(--sd-navy);border-radius:20px;padding:1.25rem;width:min(320px,calc(100vw - 2rem));box-shadow:0 10px 30px rgba(16,33,58,.3)}
.sd-wa__panel[hidden]{display:none}
.sd-wa__panel p{margin:0 0 .75rem;font-size:.9375rem}
.sd-wa__note{font-size:.8125rem!important;color:#44546A}
.sd-wa__close{position:absolute;top:.375rem;right:.625rem;background:none;border:0;font-size:1.5rem;line-height:1;cursor:pointer;color:var(--sd-navy)}
.sd-stickybar{display:none}
@media (max-width:781px){
  .sd-stickybar{display:block;position:fixed;left:0;right:0;bottom:0;z-index:40;background:rgba(16,33,58,.96);padding:.625rem 1rem}
  .sd-stickybar .sd-btn{display:block;padding:.75rem 1rem}
  .sd-wa{bottom:4.75rem}
  .sd-wa__toggle span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .sd-wa__toggle{padding:.875rem}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Trip planner */
.sd-planner{background:#fff;border:3px solid var(--sd-blue);border-radius:24px;padding:1.5rem;display:grid;gap:1rem}
.sd-planner__inputs{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}
.sd-planner p{margin:0}
.sd-planner label{display:block;font-weight:700;margin-bottom:.375rem}
.sd-planner input,.sd-planner select{width:100%;min-height:44px;font:inherit;padding:.5rem .75rem;border:2px solid var(--sd-navy);border-radius:12px;background:#fff;color:var(--sd-navy);box-sizing:border-box}
.sd-planner__nights{font-family:var(--wp--preset--font-family--display);font-size:1.5rem;color:var(--sd-blue)}
.sd-planner__h{font-weight:700;margin-top:.5rem!important}
.sd-planner ul{margin:.375rem 0 0;padding-left:1.25rem;line-height:1.7}
.sd-planner__flag{font-size:.875rem;color:#44546A}
.sd-planner__total{font-weight:700;font-size:1.125rem}
.sd-planner__warn{font-weight:700;color:#B3202B}
.sd-planner__note{font-size:.875rem;color:#44546A}

/* The pop: restrained, rhythmic, switched off for reduced motion. Disabled buttons never pop. */
@keyframes sd-pop{0%{transform:scale(1)}55%{transform:scale(1.08)}100%{transform:scale(1.05)}}
@keyframes sd-ring{0%{box-shadow:0 0 0 0 rgba(255,199,44,.75)}100%{box-shadow:0 0 0 14px rgba(255,199,44,0)}}
@keyframes sd-rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:no-preference){
  .wp-block-button__link,.sd-btn:not([disabled]){transition:transform .2s cubic-bezier(.34,1.56,.64,1),background-color .2s,color .2s}
  .wp-block-button__link:hover,.wp-block-button__link:focus-visible,.sd-btn:not([disabled]):hover,.sd-btn:not([disabled]):focus-visible{animation:sd-pop .35s cubic-bezier(.34,1.56,.64,1) forwards,sd-ring .7s ease-out}
  .wp-block-button__link:active,.sd-btn:not([disabled]):active{transform:scale(.97);animation:none}
  .sd-card,.sd-day,.sd-artist,.sd-pass,.sd-route{transition:transform .25s cubic-bezier(.34,1.56,.64,1),box-shadow .25s}
  .sd-card:hover,.sd-day:hover,.sd-artist:hover,.sd-pass:hover,.sd-route:hover{transform:translateY(-6px) rotate(-.4deg);box-shadow:0 14px 28px rgba(16,33,58,.22)}
  .sd-chips li{transition:transform .2s cubic-bezier(.34,1.56,.64,1)}
  .sd-chips li:hover{transform:scale(1.12) rotate(-2deg)}
  .sd-reveal{opacity:0}
  .sd-reveal.is-in{opacity:1;animation:sd-rise .6s ease-out}
}

/* Community globe + group parties */
.sd-globe-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:3rem;align-items:center;margin-top:2rem}
.sd-globe-box{background:radial-gradient(circle at 50% 50%,#FFE9A8 0,rgba(255,233,168,0) 68%)}
.sd-globe{display:block;width:100%;max-width:560px;margin:0 auto;aspect-ratio:1/1;cursor:grab;touch-action:pan-y}
.sd-center{text-align:center}
.sd-help,.sd-note{font-size:.875rem;color:#44546A;margin:.375rem 0 0}
.sd-panel{background:#fff;border:3px solid var(--sd-blue);border-radius:28px;padding:1.75rem}
.sd-panel label,.sd-panel legend,.sd-gform label{display:block;font-weight:700;margin-bottom:.375rem}
.sd-panel input[type=text],.sd-panel select,.sd-gform input[type=text],.sd-gform input[type=email],.sd-gform select{width:100%;min-height:48px;font:inherit;padding:.625rem .875rem;border:2px solid var(--sd-navy);border-radius:14px;background:#fff;color:var(--sd-navy);box-sizing:border-box}
.sd-field{margin:0 0 1.125rem;border:0;padding:0}
.sd-chips2{display:flex;flex-wrap:wrap;gap:.5rem}
.sd-chip{position:relative;margin:0!important}
.sd-chip input{position:absolute;opacity:0;width:1px;height:1px}
.sd-chip span{display:inline-block;padding:.5625rem .9375rem;border-radius:999px;border:2px solid var(--sd-navy);font-weight:600;font-size:.9375rem;cursor:pointer;background:#fff}
.sd-chip input:checked+span{background:var(--sd-blue);border-color:var(--sd-blue);color:#fff}
.sd-chip input:focus-visible+span{outline:3px solid var(--sd-navy);outline-offset:2px}
.sd-check{display:flex!important;gap:.625rem;align-items:flex-start;font-size:.9375rem;font-weight:400!important;margin-bottom:1.125rem}
.sd-check input{width:22px;height:22px;flex:none;margin-top:.1875rem}
.sd-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.sd-err{color:#B3202B;font-weight:700;margin:.375rem 0}
.sd-ok{background:#DFF5E7;border:2px solid #1A7F4B;border-radius:14px;padding:.875rem 1.125rem;font-weight:600;margin-top:.875rem}
.sd-stats{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:1.5rem}
.sd-stats div{background:#fff;border:2px solid var(--sd-navy);border-radius:18px;padding:.75rem 1.125rem}
.sd-stats b{display:block;font-family:var(--wp--preset--font-family--display);font-weight:400;font-size:2.125rem;color:var(--sd-red-text);line-height:1}
.sd-wall{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1rem;margin-top:1.75rem}
.sd-wallcard{border-radius:22px;padding:1.125rem 1.25rem;color:#fff;background:var(--sd-blue)}
.sd-wallcard:nth-child(3n+2){background:var(--sd-navy)}
.sd-wallcard:nth-child(3n){background:var(--sd-gold);color:var(--sd-navy)}
.sd-wallcard h3{font-size:1.375rem;color:inherit;margin:0}
.sd-wallcard p{margin:.375rem 0 0;font-size:1rem}
.sd-wallcard .sd-from{font-weight:700;font-size:.875rem;letter-spacing:.0625rem}
.sd-empty{background:#fff;border:3px dashed var(--sd-navy);border-radius:22px;padding:1.5rem;font-weight:600;grid-column:1/-1}
.sd-groups{background:var(--sd-navy);color:var(--sd-warm)}
.sd-groups h2{color:var(--sd-gold)}
.sd-gcards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-top:2rem}
.sd-gcard{border-radius:28px;padding:1.625rem;min-height:280px;display:flex;flex-direction:column;justify-content:flex-end;position:relative;overflow:hidden;color:#fff}
.sd-gcard h3{font-size:clamp(1.75rem,3.4vw,2.5rem);color:inherit;margin:0}
.sd-gcard p{margin:.625rem 0 0;font-size:1.0625rem}
.sd-gcard .sd-big{position:absolute;right:-8px;top:-6px;font-family:var(--wp--preset--font-family--display);font-size:7.5rem;line-height:1;color:transparent;-webkit-text-stroke:2px rgba(255,255,255,.5)}
.sd-g-hen{background:linear-gradient(160deg,#EF3340,#8A1C26)}
.sd-g-stag{background:linear-gradient(160deg,#0066FF,#10213A)}
.sd-g-crew{background:linear-gradient(160deg,#FFC72C,#E39B00);color:var(--sd-navy)}
.sd-g-crew .sd-big{-webkit-text-stroke-color:rgba(16,33,58,.45)}
.sd-gform{margin-top:2.25rem;background:var(--sd-warm);color:var(--sd-navy);border-radius:28px;padding:1.875rem}
.sd-gform h3{font-size:1.75rem;color:var(--sd-blue);margin:0 0 .375rem}
.sd-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 1.25rem}
@media (max-width:900px){.sd-globe-grid{grid-template-columns:1fr}.sd-gcards{grid-template-columns:1fr}.sd-row{grid-template-columns:1fr}}
@media (prefers-reduced-motion:no-preference){
  .sd-chip span{transition:transform .2s cubic-bezier(.34,1.56,.64,1)}.sd-chip span:hover{transform:scale(1.06)}
  .sd-gcard,.sd-wallcard{transition:transform .25s cubic-bezier(.34,1.56,.64,1),box-shadow .25s}
  .sd-gcard:hover,.sd-wallcard:hover{transform:translateY(-6px) rotate(-.4deg);box-shadow:0 14px 28px rgba(16,33,58,.22)}
}

/* a11y: dark ink on carnival red (4.5:1+) */
.sd-final p,.sd-final h2,.sd-final h3{color:var(--sd-ink)!important}
.sd-footer .sd-logo__sub{color:var(--sd-warm)}

/* layout: <main> is a flow group, so give wide sections their own max-width and gutters */
main.wp-block-group>.alignwide{max-width:var(--wp--style--global--wide-size,1200px);margin-left:auto;margin-right:auto;box-sizing:border-box;width:100%}
main.wp-block-group>.alignwide:not([style*="padding-left"]){padding-left:1.5rem;padding-right:1.5rem}
main.wp-block-group>.wp-block-group:not(.alignfull):not(.alignwide):not([style*="padding-left"]){padding-left:1.5rem;padding-right:1.5rem;box-sizing:border-box}

.sd-logo-img{display:block;line-height:0;flex:0 0 auto}
.sd-logo-img img{display:block;height:auto;width:clamp(170px,26vw,290px)}
.sd-header{align-items:center}

/* highlight cards: brand borders */
.sd-card{border:3px solid var(--sd-navy)}
.sd-card--navy{border-color:var(--sd-gold)}
.sd-card--blue{border-color:var(--sd-navy)}

/* hero: keep copy off the DJ's face */
main.wp-block-group>.sd-hero{margin-top:0}
@media (min-width:900px){
.sd-hero .wp-block-cover__inner-container>*{max-width:34rem}
.sd-hero .wp-block-cover__background{background-image:linear-gradient(90deg,rgba(7,13,24,.9) 0%,rgba(7,13,24,.7) 42%,rgba(7,13,24,.05) 68%)!important}
}
@media (max-width:899px){
.sd-hero .wp-block-cover__background{background-image:linear-gradient(180deg,rgba(7,13,24,.8) 0%,rgba(7,13,24,.62) 100%)!important}
}
@media (min-width:900px){.sd-hero .wp-block-cover__inner-container>*{margin-left:0!important;margin-right:auto!important}}
/* highlights: 3 + 2 layout so no empty cell */
@media (min-width:900px){
.sd-cards{grid-template-columns:repeat(6,minmax(0,1fr))}
.sd-cards .sd-card{grid-column:span 2}
.sd-cards .sd-card:nth-child(n+4){grid-column:span 3}
}
