/* BeatzNBurn site styles. Night studio: aubergine ground, mango + pink stage light, Unbounded display over Figtree. Single dark look by choice. */
:root{
  --bg:#1a1220;
  --surface:#251a2e;
  --surface2:#2f2239;
  --line:#3a2c45;
  --fg:#f6eef7;
  --muted:#bfaec8;
  --mango:#ffb23f;
  --pink:#ff4f8b;
  --lilac:#a98bff;
  --ink:#1a1220;
  --c-dance:var(--pink);
  --c-strength:var(--mango);
  --c-mind:var(--lilac);
  --display:"Unbounded","Arial Black",system-ui,sans-serif;
  --body:"Figtree",system-ui,-apple-system,"Segoe UI",sans-serif;
  --r:14px;
  color-scheme:dark;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:90px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}
body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--body);font-size:1.0625rem;line-height:1.6;-webkit-font-smoothing:antialiased}
a{color:inherit}
img{max-width:100%;display:block}
.wrap{max-width:1160px;margin-inline:auto;padding-inline:clamp(16px,4vw,32px)}
h1,h2,h3{font-family:var(--display);line-height:1.08;text-wrap:balance;margin:0;letter-spacing:-.01em}
h1{font-size:clamp(2.2rem,6.5vw,4.2rem);font-weight:800}
h2{font-size:clamp(1.6rem,4.2vw,2.5rem);font-weight:800}
h3{font-size:1.12rem;font-weight:700}
p{margin:0}
.eyebrow{font-size:.78rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--mango)}
.lede{color:var(--muted);max-width:62ch;font-size:1.1rem}
.muted{color:var(--muted)}
.grad{background:linear-gradient(90deg,var(--mango),var(--pink));-webkit-background-clip:text;background-clip:text;color:transparent}
:focus-visible{outline:3px solid var(--mango);outline-offset:3px;border-radius:6px}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;font:inherit;font-weight:700;font-size:1rem;text-decoration:none;border-radius:999px;padding:.85em 1.4em;border:2px solid transparent;cursor:pointer;transition:transform .15s ease,background .15s ease,border-color .15s ease;white-space:nowrap}
.btn:hover{transform:translateY(-2px)}
.btn-primary{background:var(--mango);color:var(--ink)}
.btn-pink{background:var(--pink);color:var(--ink)}
.btn-ghost{border-color:var(--line);color:var(--fg);background:transparent}
.btn-ghost:hover{border-color:var(--muted)}
.btn-sm{padding:.55em 1.05em;font-size:.92rem}
.row{display:flex;flex-wrap:wrap;gap:12px}

/* header */
.site-header{position:sticky;top:env(safe-area-inset-top,0px);z-index:40;background:color-mix(in srgb,var(--bg) 90%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.bar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding-block:12px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-family:var(--display);font-weight:800;font-size:1.05rem;flex:none}
.brand .logo{width:42px;height:42px;border-radius:10px;object-fit:contain;background:#fff}
.brand .logo.missing{display:none}
.mainnav ul{display:flex;gap:2px;list-style:none;margin:0;padding:0}
.mainnav a{display:block;padding:.5em .7em;border-radius:999px;text-decoration:none;color:var(--muted);font-weight:600;font-size:.93rem;white-space:nowrap}
.mainnav a:hover{color:var(--fg);background:var(--surface)}
.mainnav a[aria-current="page"]{color:var(--fg);background:var(--surface2)}
.mainnav a.ll{color:var(--mango)}
.ext::after{content:" \2197";font-size:.85em}
.bar-actions{display:flex;align-items:center;gap:8px;flex:none}
.menu-btn{display:none;font:inherit;font-weight:700;color:var(--fg);background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:.55em 1em;cursor:pointer}
.drawer{display:none}
@media (max-width:1060px){
  .mainnav{display:none}
  .menu-btn{display:inline-flex}
  .drawer{display:block;border-top:1px solid var(--line);background:var(--bg)}
  .drawer[hidden]{display:none!important}
  .drawer ul{list-style:none;margin:0;padding:10px 0 18px;display:grid;gap:2px}
  .drawer a{display:flex;justify-content:space-between;padding:.8em .2em;text-decoration:none;font-family:var(--display);font-weight:700;font-size:1.15rem;border-bottom:1px solid var(--line)}
  .drawer a[aria-current="page"]{color:var(--mango)}
}
@media (max-width:560px){.bar-actions .btn{display:none}}

/* sections */
section{padding-block:clamp(48px,8vw,88px)}
.alt{background:var(--surface)}
.head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px 32px;margin-bottom:28px}
.head > div{display:grid;gap:10px;min-width:0}
.page-hero{padding-block:clamp(40px,7vw,76px) clamp(24px,4vw,40px)}
.page-hero .lede{margin-top:16px}
.crumb{font-size:.9rem;color:var(--muted);margin-bottom:14px}
.crumb a{color:var(--muted)}

/* photos with graceful fallback */
.photo{position:relative;border-radius:22px;overflow:hidden;background:var(--surface);aspect-ratio:4/3.4;max-width:100%;margin:0}
.photo img{width:100%;height:100%;object-fit:cover}
.fallback{position:absolute;inset:0;display:none;flex-direction:column;justify-content:flex-end;padding:22px;background:
  radial-gradient(120% 80% at 80% 0%,color-mix(in srgb,var(--pink) 35%,transparent),transparent 60%),
  radial-gradient(90% 70% at 0% 100%,color-mix(in srgb,var(--mango) 30%,transparent),transparent 60%),var(--surface2)}
.missing .fallback{display:flex}
.missing img{display:none}
.fallback small{font-size:.78rem;color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-weight:700}
.eq{display:flex;align-items:flex-end;gap:6px;height:110px;margin-bottom:14px}
.eq i{flex:1;border-radius:6px 6px 2px 2px;background:linear-gradient(var(--pink),var(--mango));animation:bounce 1.4s ease-in-out infinite;transform-origin:bottom}
.eq i:nth-child(2){animation-delay:.2s}.eq i:nth-child(3){animation-delay:.45s}.eq i:nth-child(4){animation-delay:.1s}.eq i:nth-child(5){animation-delay:.6s}.eq i:nth-child(6){animation-delay:.3s}.eq i:nth-child(7){animation-delay:.5s}
@keyframes bounce{0%,100%{transform:scaleY(.35)}50%{transform:scaleY(1)}}

/* cards + chips */
.card{display:flex;flex-direction:column;gap:12px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:22px;min-width:0}
.alt .card{background:var(--bg)}
.card p{color:var(--muted);font-size:.98rem}
.grid3{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}
.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
@media (max-width:820px){.grid2{grid-template-columns:1fr}}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{font:inherit;font-weight:600;font-size:.92rem;color:var(--muted);background:transparent;border:1px solid var(--line);border-radius:999px;padding:.5em 1em;cursor:pointer;display:inline-flex;align-items:center;gap:.45em}
.chip[aria-pressed="true"]{background:var(--fg);color:var(--ink);border-color:var(--fg)}
.dot{width:9px;height:9px;border-radius:50%;flex:none}
.tag{font-size:.75rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}
.pill{font-size:.8rem;font-weight:600;padding:.25em .7em;border-radius:999px;background:var(--bg);border:1px solid var(--line)}
.alt .pill{background:var(--surface)}
.pills{display:flex;flex-wrap:wrap;gap:6px}
.textlink{color:var(--mango);font-weight:700;text-decoration:none}
.textlink:hover{text-decoration:underline}
.meter{display:flex;align-items:flex-end;gap:3px;height:26px;flex:none}
.meter span{width:6px;border-radius:2px;background:var(--line)}
.meter span.on{background:linear-gradient(var(--pink),var(--mango))}
.checks{list-style:none;padding:0;margin:0;display:grid;gap:10px}
.checks li{display:flex;gap:10px;align-items:flex-start}
.checks li::before{content:"";flex:none;width:10px;height:10px;margin-top:.55em;border-radius:3px;background:linear-gradient(var(--pink),var(--mango))}

/* forms */
form.f{display:grid;gap:14px}
.f .two{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media (max-width:560px){.f .two{grid-template-columns:1fr}}
.f label{display:grid;gap:6px;font-weight:600;font-size:.92rem}
.f input,.f select,.f textarea{font:inherit;font-size:1rem;color:var(--fg);background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:.75em .9em;width:100%}
.alt .f input,.alt .f select,.alt .f textarea{background:var(--surface2)}
.f textarea{min-height:120px;resize:vertical}
.f input:focus,.f select:focus,.f textarea:focus{outline:2px solid var(--mango);outline-offset:1px;border-color:transparent}
.f .hint{font-size:.85rem;color:var(--muted);font-weight:400}
.done{display:grid;gap:12px;padding:20px;border-radius:var(--r);background:var(--surface2);border:1px solid var(--line)}

/* faq */
.faq{display:grid;gap:10px}
.faq details{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:16px 18px}
.faq summary{cursor:pointer;font-weight:700;list-style:none;display:flex;justify-content:space-between;gap:12px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--mango);font-weight:800}
.faq details[open] summary::after{content:"\2212"}
.faq details p{margin-top:10px;color:var(--muted)}

/* cta band */
.band{background:linear-gradient(100deg,var(--mango),var(--pink));color:var(--ink);border-radius:24px;padding:clamp(28px,5vw,48px);display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px}
.band h2{font-size:clamp(1.5rem,4vw,2.2rem)}
.band p{margin-top:8px;font-weight:500}
.band .btn{background:var(--ink);color:var(--fg)}

/* footer */
.site-footer{border-top:1px solid var(--line);padding-block:40px 120px;color:var(--muted);font-size:.93rem}
.foot{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:28px}
.foot h4{margin:0 0 10px;color:var(--fg);font-size:.8rem;letter-spacing:.12em;text-transform:uppercase}
.foot ul{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.foot a{text-decoration:none}
.foot a:hover{color:var(--fg)}
.foot .sel{user-select:all}
.fine{margin-top:28px;padding-top:18px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px}
@media (max-width:820px){.foot{grid-template-columns:1fr 1fr}}
@media (min-width:821px){.site-footer{padding-block:40px}}

/* phone booking bar */
.mbar{display:none}
@media (max-width:820px){
  .mbar{display:flex;gap:10px;position:fixed;left:0;right:0;bottom:0;z-index:30;padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px));background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(10px);border-top:1px solid var(--line)}
  .mbar .btn{flex:1}
}

/* free class popup */
.offer-tab{position:fixed;right:16px;bottom:calc(20px + env(safe-area-inset-bottom,0px));z-index:35;font:inherit;font-weight:800;font-family:var(--display);font-size:.85rem;color:var(--ink);background:linear-gradient(100deg,var(--mango),var(--pink));border:0;border-radius:999px;padding:.8em 1.2em;cursor:pointer;box-shadow:0 10px 30px rgba(0,0,0,.4)}
@media (max-width:820px){.offer-tab{bottom:calc(84px + env(safe-area-inset-bottom,0px))}}
.modal{position:fixed;inset:0;z-index:60;display:grid;place-items:center;padding:16px;background:rgba(10,6,14,.72);backdrop-filter:blur(4px)}
.modal[hidden]{display:none!important}
.sheet{position:relative;width:min(520px,100%);max-height:calc(100% - 16px);overflow:auto;background:var(--surface);border:1px solid var(--line);border-radius:24px;animation:pop .35s cubic-bezier(.2,.9,.3,1.2)}
@keyframes pop{from{transform:translateY(16px) scale(.97);opacity:.4}to{transform:none;opacity:1}}
.sheet .top{position:relative;padding:28px 26px 22px;background:
  radial-gradient(120% 120% at 100% 0%,color-mix(in srgb,var(--pink) 55%,transparent),transparent 60%),
  radial-gradient(100% 120% at 0% 100%,color-mix(in srgb,var(--mango) 45%,transparent),transparent 60%),var(--surface2)}
.sheet .top .eq{height:46px;width:120px;margin:0 0 14px}
.sheet h2{font-size:clamp(1.6rem,6vw,2.1rem)}
.sheet .top p{margin-top:10px;color:var(--fg)}
.sheet .body{padding:22px 26px 26px}
.x{position:absolute;right:14px;top:14px;width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:var(--bg);color:var(--fg);font:inherit;font-size:1.2rem;cursor:pointer;z-index:2}
.codebox{font-family:var(--display);font-weight:800;font-size:1.4rem;letter-spacing:.06em;padding:.5em .8em;border-radius:12px;border:2px dashed var(--mango);color:var(--mango);text-align:center;user-select:all}

/* photo banners under page headings */
.banner{position:relative;margin:28px 0 0;border-radius:26px;overflow:hidden;aspect-ratio:16/7;max-width:100%}
.banner img{width:100%;height:100%;object-fit:cover;object-position:50% 40%}
.banner::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(26,18,32,.75) 0%,transparent 45%)}
.banner .tags{position:absolute;left:18px;bottom:16px;right:18px;z-index:1;display:flex;flex-wrap:wrap;gap:8px}
.banner .tags span{font-size:.85rem;font-weight:700;padding:.4em .85em;border-radius:999px;background:rgba(26,18,32,.6);border:1px solid rgba(255,255,255,.16);backdrop-filter:blur(6px)}
@media (max-width:640px){.banner{aspect-ratio:4/3.4}}

/* card media: photo or equalizer art, same height on every card */
.media{position:relative;margin:-22px -22px 4px;aspect-ratio:16/9;overflow:hidden;border-radius:var(--r) var(--r) 0 0;background:
  radial-gradient(120% 90% at 85% 0%,color-mix(in srgb,var(--k,var(--pink)) 45%,transparent),transparent 60%),var(--surface2)}
.media img{width:100%;height:100%;object-fit:cover;object-position:50% 35%}
.media .art{position:absolute;inset:auto 22px 18px;display:flex;align-items:flex-end;gap:6px;height:60%}
.media .art i{flex:1;border-radius:5px 5px 2px 2px;background:var(--k,var(--pink));opacity:.75}

/* photo mosaic */
.mosaic{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));grid-auto-rows:clamp(120px,16vw,210px);gap:12px}
.mosaic figure{position:relative;margin:0;border-radius:20px;overflow:hidden;background:var(--surface2)}
.mosaic img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.mosaic figure:hover img{transform:scale(1.04)}
.mosaic figcaption{position:absolute;left:12px;bottom:12px;z-index:1;font-size:.82rem;font-weight:700;padding:.35em .8em;border-radius:999px;background:rgba(26,18,32,.65);backdrop-filter:blur(6px)}
.mosaic .fallback{padding:14px}
.m-a{grid-column:span 3;grid-row:span 2}.m-b{grid-column:span 3}.m-c{grid-column:span 2}.m-d{grid-column:span 1}
@media (max-width:760px){.mosaic{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:150px}.m-a{grid-column:span 2;grid-row:span 2}.m-b{grid-column:span 2}.m-c,.m-d{grid-column:span 1}}
