/*
Theme Name: Ecstatic Acro
Theme URI: https://ecstaticacro.com
Author: YOCO / Ecstatic Acro
Author URI: https://ecstaticacro.com
Description: Light teal mountain theme for the Ecstatic Acro retreat at Rimrock Lake.
Version: 5.6.7
Requires at least: 6.3
Tested up to: 6.7
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: ecstatic-acro
Tags: full-site-editing, block-editor, nature, retreat, wellness
*/

/*
  CONTRAST REFERENCE (all text on white #fff):
  #0f172a  17.5:1  headings
  #1e293b  13.2:1  body text
  #475569   5.9:1  secondary text
  #0a5757   7.9:1  teal labels/eyebrows

  SECTION BACKGROUNDS:
  Hero, Footer, Register = intentionally dark (teal gradient) — white text is fine
  ALL OTHER sections = white or very pale teal — MUST use dark text
*/

/* ═══════════════════════════════════════════
   TOKENS
═══════════════════════════════════════════ */
:root {
  --t900: #0A4A4A;
  --t800: #0D6B68;
  --t700: #118B87;
  --t600: #15A8A3;
  --t500: #22BDB8;
  --t400: #44CEC9;
  --t300: #7ADAD7;
  --t200: #AEECEA;
  --t100: #D3F5F4;
  --t50:  #EDF9F9;
  --t25:  #F5FEFE;

  /* Dark text for light backgrounds — WCAG AA */
  --tx-h:   #0f172a;
  --tx-b:   #1e293b;
  --tx-m:   #374151;
  --tx-lbl: #0a5757;

  --display: 'Cormorant Garamond', Georgia, serif;
  --body:    'Nunito Sans', 'Segoe UI', sans-serif;
  --ease:    cubic-bezier(.22, 1, .36, 1);

  --sh-sm: 0 2px 8px  rgba(10,74,74,.08);
  --sh-md: 0 6px 24px rgba(10,74,74,.14);
  --sh-lg: 0 16px 52px rgba(10,74,74,.20);

  --r-sm:   4px;
  --r-md:   14px;
  --r-lg:   28px;
  --r-pill: 100px;
}

/* ═══════════════════════════════════════════
   RESET
═══════════════════════════════════════════ */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; -webkit-font-smoothing: antialiased; }
body { font-family: var(--body); font-size: 1.0625rem; line-height: 1.75;
       color: var(--tx-b); background: var(--t25); overflow-x: hidden; }
h1,h2,h3,h4,h5,h6 { font-family: var(--display); line-height: 1.15; font-weight: 400;
                     letter-spacing: -.01em; color: var(--tx-h); }
p   { max-width: 68ch; line-height: 1.8; color: var(--tx-b); }
a   { text-decoration: none; color: var(--t700); transition: color .3s; }
a:hover { color: var(--t500); }
em  { font-style: italic; }
img { display: block; max-width: 100%; height: auto; }
ul,ol { list-style: none; }

.container { width: 100%; max-width: 1200px; margin-inline: auto; padding-inline: clamp(1.5rem,5vw,3rem); }
.section   { padding-block: clamp(5rem,10vw,9rem); }

.eyebrow {
  font-family: var(--body); font-size: .7rem; font-weight: 700;
  letter-spacing: .22em; text-transform: uppercase;
  color: var(--tx-lbl); display: block; margin-bottom: .85rem;
}
.section-title    { font-size: clamp(2rem,4vw,3.2rem); font-weight: 400; color: var(--tx-h); margin-bottom: 1rem; }
.section-title em { color: var(--t700); font-style: italic; }

/* ═══════════════════════════════════════════
   BUTTONS
═══════════════════════════════════════════ */
.btn {
  display: inline-flex; align-items: center; justify-content: center;
  padding: .85rem 2.2rem; border-radius: var(--r-pill);
  font-family: var(--body); font-size: .8rem; font-weight: 800;
  letter-spacing: .12em; text-transform: uppercase;
  border: 2px solid transparent; cursor: pointer;
  transition: all .35s var(--ease); white-space: nowrap; text-decoration: none;
}
.btn-primary       { background: var(--t800); color: #fff; border-color: var(--t800); }
.btn-primary:hover { background: var(--t900); color: #fff; transform: translateY(-2px); box-shadow: var(--sh-md); }
.btn-outline       { background: transparent; color: var(--t800); border-color: var(--t700); }
.btn-outline:hover { background: var(--t800); color: #fff; }
.btn-outline-light       { background: transparent; color: #fff; border-color: rgba(255,255,255,.5); }
.btn-outline-light:hover { background: rgba(255,255,255,.15); border-color: #fff; }
.btn-full { width: 100%; }

/* ═══════════════════════════════════════════
   NAV
═══════════════════════════════════════════ */
.site-header {
  position: fixed; top: 0; left: 0; right: 0; z-index: 200;
  display: flex; align-items: center; justify-content: space-between;
  padding: 1.1rem clamp(1.5rem,5vw,3.5rem);
  transition: background .5s, backdrop-filter .5s, box-shadow .5s;
}
.site-header.scrolled {
  background: rgba(255,255,255,.95); backdrop-filter: blur(14px);
  box-shadow: 0 1px 0 var(--t100), 0 4px 20px rgba(10,74,74,.08);
}
.site-eyebrow { font-size: .72rem; font-weight: 700; letter-spacing: .22em; text-transform: uppercase;
                color: rgba(255,255,255,.9); white-space: nowrap; }
.site-header.scrolled .site-eyebrow { color: var(--t900); }

.nav-menu   { display: flex; gap: 2rem; align-items: center; }
.nav-menu a { font-size: .72rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase;
              color: rgba(255,255,255,.85); transition: color .3s; text-decoration: none; }
.site-header.scrolled .nav-menu a       { color: var(--tx-m); }
.nav-menu a:hover,
.site-header.scrolled .nav-menu a:hover { color: var(--t600); }

.nav-menu .nav-cta       { background: #fff; color: var(--t900) !important; padding: .5rem 1.4rem; border-radius: var(--r-pill); font-weight: 900; }
.nav-menu .nav-cta:hover { background: var(--t100); color: var(--t900) !important; }
.site-header.scrolled .nav-menu .nav-cta       { background: var(--t800); color: #fff !important; }
.site-header.scrolled .nav-menu .nav-cta:hover { background: var(--t700); color: #fff !important; }

.nav-toggle { display: none; background: none; border: 1px solid rgba(255,255,255,.3); color: #fff;
              width: 40px; height: 40px; border-radius: 6px; cursor: pointer;
              align-items: center; justify-content: center; flex-direction: column; gap: 5px; padding: 0; }
.nav-toggle span { display: block; width: 20px; height: 2px; background: #fff; border-radius: 2px; }
@media (max-width: 768px) {
  .nav-toggle { display: flex; }
  .nav-menu   { display: none; position: absolute; top: 100%; left: 0; right: 0;
                flex-direction: column; align-items: flex-start;
                background: rgba(255,255,255,.97); backdrop-filter: blur(14px);
                padding: 1.5rem clamp(1.5rem,5vw,3.5rem); gap: 1.25rem;
                border-top: 1px solid var(--t100); }
  .nav-menu.open    { display: flex; }
  .nav-menu a       { color: var(--tx-m); }
  .nav-menu a:hover { color: var(--t600); }
}

/* ═══════════════════════════════════════════
   HERO — dark intentionally, white text OK
═══════════════════════════════════════════ */
.hero {
  position: relative; min-height: 100svh;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  overflow: hidden;
  background: linear-gradient(
    180deg,
    #1a2744 0%,        /* deep night blue at very top */
    #2d3a6b 8%,        /* dusk purple-blue */
    #6b4f8c 20%,       /* warm purple horizon */
    #c4674a 35%,       /* burnt orange */
    #e8834a 50%,       /* warm orange */
    #f5a93b 65%,       /* golden amber */
    #fcd97a 80%,       /* warm yellow */
    #fde9a0 92%,       /* pale yellow near horizon */
    #fff3c4 100%       /* soft warm white at treeline */
  );
}
.hero-shimmer {
  position: absolute; inset: 0; pointer-events: none;
  background: repeating-linear-gradient(170deg,transparent 0,transparent 120px,rgba(255,200,80,.04) 120px,rgba(255,200,80,.04) 121px);
  animation: drift 18s ease-in-out infinite alternate;
}
@keyframes drift { from{transform:translateX(-12px) skewY(-.3deg)} to{transform:translateX(12px) skewY(.3deg)} }
.hero-lake  { position: absolute; bottom: 0; left: 0; right: 0; height: 20%; pointer-events: none;
              background: linear-gradient(to top,rgba(253,180,60,.2),transparent); }
.hero-trees { position: absolute; bottom: 0; left: 0; right: 0; height: 32%; pointer-events: none;
              background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1600 360' preserveAspectRatio='none'%3E%3Cpath fill='%230A4A4A' opacity='.7' d='M0,360 L0,220 L40,175 L80,220 L80,185 L120,125 L160,185 L160,150 L205,85 L250,150 L250,115 L295,50 L345,115 L345,88 L398,28 L452,88 L452,58 L510,8 L572,58 L572,32 L624,90 L624,65 L676,18 L730,65 L730,42 L784,102 L784,74 L840,32 L900,74 L900,50 L955,10 L1010,50 L1010,32 L1062,88 L1115,32 L1170,88 L1170,60 L1228,118 L1290,60 L1340,118 L1340,90 L1402,150 L1468,90 L1520,150 L1520,118 L1600,178 L1600,360Z'/%3E%3C/svg%3E") no-repeat bottom/cover; }
/* Gradient shield — warm amber glow sits behind/below the trees */
.hero-shield { position: absolute; bottom: 0; left: 0; right: 0; height: 45%; pointer-events: none;
               background: linear-gradient(to top, rgba(253,233,160,.55) 0%, rgba(248,180,80,.3) 20%, transparent 60%); z-index: 1; }
.hero-orb   { position: absolute; border-radius: 50%; filter: blur(90px); pointer-events: none; }
.hero-orb-1 { width:500px; height:500px; top:-100px; right:-80px; background:rgba(248,140,60,.18); animation:floatA 22s ease-in-out infinite alternate; }
.hero-orb-2 { width:320px; height:320px; bottom:10%; left:5%;    background:rgba(252,200,80,.18); animation:floatB 28s ease-in-out infinite alternate; }
.hero-orb   { position: absolute; border-radius: 50%; filter: blur(90px); pointer-events: none; }
.hero-orb-1 { width:500px; height:500px; top:-100px; right:-80px; background:rgba(68,206,201,.18); animation:floatA 22s ease-in-out infinite alternate; }
.hero-orb-2 { width:320px; height:320px; bottom:10%; left:5%;    background:rgba(122,218,215,.15); animation:floatB 28s ease-in-out infinite alternate; }
@keyframes floatA { to{transform:translate(-40px,50px)} }
@keyframes floatB { to{transform:translate(50px,-40px)} }
.hero-content { position: relative; z-index: 3; text-align: center; padding: 6rem clamp(1.5rem,5vw,3rem) 0;
                display: flex; flex-direction: column; align-items: center; }
.hero-eyebrow { font-size:.7rem; font-weight:700; letter-spacing:.28em; text-transform:uppercase;
                color:rgba(255,220,140,.9); margin-bottom:1rem; animation:fadeUp .8s var(--ease) .3s both; }
.hero-title   { font-family:var(--display); font-weight:300; font-size:clamp(3.5rem,8vw,8rem);
                line-height:.92; letter-spacing:-.03em; color:#fff; animation:fadeUp .9s var(--ease) .4s both; }
.hero-title em { color:rgba(255,210,120,.9); font-style:italic; display:block; }
.hero-sub      { font-family:var(--display); font-style:italic; font-size:clamp(1rem,2vw,1.5rem);
                 color:rgba(255,255,255,.75); margin-top:1.25rem; margin-bottom:1.75rem; animation:fadeUp .9s var(--ease) .5s both; }
/* Hero logo */
.hero-logo {
  width: clamp(150px,27vw,240px); height: clamp(150px,27vw,240px);
  border-radius: 50%; object-fit: cover;
  border: 3px solid rgba(255,255,255,.25);
  box-shadow: 0 4px 24px rgba(0,0,0,.3);
  margin-top: 1rem; margin-bottom: 1.25rem;
  animation: fadeUp .7s var(--ease) .15s both;
}

/* Hero date badge — the visual anchor, especially on mobile */
.hero-date-badge {
  display: flex; flex-direction: column; align-items: center; gap: .3rem;
  background: rgba(20,10,0,.35); backdrop-filter: blur(10px);
  border: 1.5px solid rgba(255,200,100,.35);
  border-radius: var(--r-lg); padding: 1.1rem 2.5rem;
  margin-bottom: 2.5rem;
  animation: fadeUp .9s var(--ease) .55s both;
}
.hero-date-main  {
  font-family: var(--display); font-size: clamp(1.5rem,4vw,2.4rem);
  font-weight: 400; color: #fff; letter-spacing: .02em; line-height: 1.1;
}
.hero-date-venue {
  font-size: clamp(.75rem,1.5vw,1rem); color: rgba(255,230,180,.9);
  letter-spacing: .06em; font-weight: 600; text-transform: uppercase;
}

.hero-cta { display:flex; gap:1rem; flex-wrap:wrap; justify-content:center; animation:fadeUp .9s var(--ease) .7s both; }
@keyframes bob    { 0%,100%{transform:translateX(-50%) translateY(0)} 50%{transform:translateX(-50%) translateY(8px)} }
@keyframes fadeUp { from{opacity:0;transform:translateY(30px)} to{opacity:1;transform:none} }

/* ═══════════════════════════════════════════
   MARQUEE
═══════════════════════════════════════════ */
.marquee-bar  { overflow:hidden; display:flex; white-space:nowrap; }
.marquee-bar--teal  { background:var(--t600);  color:#fff;                   padding:.85rem 0; }
.marquee-bar--light { background:var(--t100);  color:var(--t900);            padding:.85rem 0; }
.marquee-bar--dark  { background:var(--t900);  color:rgba(255,255,255,.65);  padding:.85rem 0; }
.marquee-track { display:inline-flex; animation:marquee 24s linear infinite; }
.marquee-bar--light .marquee-track,
.marquee-bar--dark  .marquee-track { animation-duration:30s; }
.marquee-track:hover { animation-play-state:paused; }
.marquee-item { font-family:var(--display); font-size:1.05rem; font-weight:600;
                letter-spacing:.1em; text-transform:uppercase;
                padding:0 2rem; display:inline-flex; align-items:center; gap:2rem; flex-shrink:0; }
.marquee-dot  { width:5px; height:5px; border-radius:50%; background:currentColor; opacity:.45; flex-shrink:0; }
@keyframes marquee { from{transform:translateX(0)} to{transform:translateX(-50%)} }

/* ═══════════════════════════════════════════
   COUNTDOWN — white bg, dark text
═══════════════════════════════════════════ */
.countdown-section { background:#ffffff; padding:clamp(3rem,6vw,5rem) 0; border-bottom:1px solid var(--t100); }
.countdown-inner   { max-width:1200px; margin:0 auto; padding-inline:clamp(1.5rem,5vw,3rem);
                     display:flex; flex-direction:column; align-items:center; text-align:center; }
.countdown-eyebrow { font-size:.7rem; font-weight:700; letter-spacing:.22em; text-transform:uppercase;
                     color:var(--tx-lbl); margin-bottom:.75rem; }
.countdown-heading { font-family:var(--display); font-size:clamp(1.4rem,2.5vw,2rem);
                     color:var(--tx-h); font-weight:400; margin-bottom:2.5rem; }
.countdown-heading em { color:var(--t700); font-style:italic; }
.countdown-grid { display:flex; gap:clamp(.75rem,2vw,2rem); align-items:center; justify-content:center; flex-wrap:wrap; }
.countdown-unit {
  display:flex; flex-direction:column; align-items:center;
  background:var(--t50); border:2px solid var(--t100); border-radius:var(--r-lg);
  padding:clamp(1.25rem,3vw,2rem) clamp(1.5rem,3.5vw,2.5rem); min-width:clamp(100px,14vw,150px);
  box-shadow:var(--sh-sm); position:relative; overflow:hidden;
  transition:transform .3s var(--ease),box-shadow .3s;
}
.countdown-unit::before { content:''; position:absolute; top:0; left:0; right:0; height:3px;
                           background:linear-gradient(90deg,var(--t500),var(--t300)); }
.countdown-unit:hover { transform:translateY(-3px); box-shadow:var(--sh-md); }
.countdown-num   { font-family:var(--display); font-size:clamp(3rem,7vw,5.5rem); font-weight:300; color:var(--t800); line-height:1; }
.countdown-label { font-size:.62rem; font-weight:800; letter-spacing:.2em; text-transform:uppercase; color:var(--tx-b); margin-top:.5rem; }
.countdown-sep   { font-family:var(--display); font-size:clamp(2rem,4vw,3.5rem); color:var(--t300); font-weight:300; margin-bottom:1.5rem; }
.countdown-date  { margin-top:2rem; font-size:.85rem; color:var(--tx-m); font-weight:600; }
.countdown-date strong { color:var(--t800); }
.countdown-num.tick { animation:cd-tick .2s var(--ease); }
@keyframes cd-tick { 0%{transform:scale(1)} 40%{transform:scale(1.12);color:var(--t500)} 100%{transform:scale(1)} }
@media (max-width:640px) { .countdown-sep { display:none; } }

/* ═══════════════════════════════════════════
   ABOUT — pale teal bg, dark text
═══════════════════════════════════════════ */
.section-about { background:var(--t50); }
.about-inner   { display:grid; grid-template-columns:1fr 1fr; gap:6rem; align-items:center; }
.about-image   { aspect-ratio:4/5; border-radius:var(--r-lg); overflow:hidden; position:relative;
                 background:linear-gradient(160deg,var(--t700) 0%,var(--t500) 55%,var(--t400) 100%);
                 box-shadow:var(--sh-lg); }
.about-image img { width:100%; height:100%; object-fit:cover; }
.about-image-placeholder { width:100%; height:100%; display:flex; align-items:center; justify-content:center;
                            font-family:var(--display); font-style:italic; color:rgba(255,255,255,.55);
                            font-size:1rem; padding:2rem; text-align:center; }
.about-copy h2    { font-family:var(--display); font-size:clamp(2.2rem,4vw,3.5rem); font-weight:400;
                    color:var(--tx-h); margin-bottom:1.5rem; line-height:1.1; }
.about-copy h2 em { color:var(--t700); }
.about-copy p     { color:var(--tx-b); margin-bottom:1.25rem; max-width:52ch; line-height:1.85; }
.about-para       { color:var(--tx-b); margin-bottom:1.25rem; max-width:52ch; line-height:1.85; }
.about-para p     { margin-bottom:1rem; }
.about-para ul, .about-para ol { padding-left:1.4rem; margin-bottom:1rem; }
.about-para strong { color:var(--tx-h); }
.loc-desc         { color:var(--tx-b); line-height:1.8; margin-bottom:1.25rem; }
.loc-desc p       { margin-bottom:.75rem; }
.loc-desc strong  { color:var(--tx-h); }
.mantra      { display:flex; gap:1.25rem; margin-top:2.5rem; align-items:center; }
.mantra-word { font-family:var(--display); font-size:1.2rem; font-style:italic; color:var(--t800); }
.mantra-sep  { color:var(--t400); }

/* ═══════════════════════════════════════════
   STATS BAR — dark teal, white text OK
═══════════════════════════════════════════ */
.stats-bar       { background:linear-gradient(135deg,var(--t700) 0%,var(--t600) 100%); }
.stats-bar-inner { display:flex; justify-content:space-around; align-items:center;
                   padding:3rem clamp(1.5rem,5vw,3rem); flex-wrap:wrap; gap:2rem; }
.stat-block   { text-align:center; }
.stat-big     { font-family:var(--display); font-size:clamp(3rem,6vw,5.5rem); font-weight:300; color:#fff; line-height:1; display:block; }
.stat-desc    { font-size:.72rem; font-weight:800; letter-spacing:.2em; text-transform:uppercase; color:rgba(255,255,255,.9); margin-top:.4rem; display:block; }
.stat-divider { width:1px; height:60px; background:rgba(255,255,255,.2); }

/* ═══════════════════════════════════════════
   EXPERIENCE — white bg, dark text
═══════════════════════════════════════════ */
.section-experience { background:#ffffff; }
.section-experience .section-title { margin-bottom:3rem; }
.exp-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:1.5rem; max-width:860px; margin:0 auto; }
.exp-card {
  background:var(--t50); border:1.5px solid var(--t100); border-radius:var(--r-md);
  padding:1.5rem 1.75rem; position:relative; overflow:hidden;
  transition:background .3s,border-color .3s,transform .35s var(--ease),box-shadow .35s;
}
.exp-card::before { content:''; position:absolute; top:0; left:0; right:0; height:3px;
                    background:linear-gradient(90deg,var(--t500),var(--t300));
                    transform:scaleX(0); transform-origin:left; transition:transform .35s var(--ease); }
.exp-card:hover { background:var(--t100); border-color:var(--t200); transform:translateY(-4px); box-shadow:var(--sh-md); }
.exp-card:hover::before { transform:scaleX(1); }
.exp-card-head { display:flex; align-items:center; gap:.75rem; margin-bottom:.75rem; }
.exp-emoji { font-size:1.75rem; flex-shrink:0; }
.exp-card h3 { font-family:var(--display); font-size:1.15rem; color:var(--tx-h); margin:0; }
.exp-card p  { font-size:.9rem; color:var(--tx-b); line-height:1.7; margin:0; }

/* ═══════════════════════════════════════════
   LINEUP — pale teal bg, dark text
═══════════════════════════════════════════ */
.section-lineup  { background:var(--t50); }
.lineup-header   { margin-bottom:4rem; }
.lineup-header p { font-size:1rem; color:var(--tx-b); max-width:55ch; }

/* Headliner */
.headliner { display:grid; grid-template-columns:300px 1fr; border-radius:var(--r-lg);
             overflow:hidden; margin-bottom:3rem; box-shadow:var(--sh-lg); }
.headliner-left {
  background:linear-gradient(175deg,var(--t800) 0%,var(--t700) 100%);
  padding:2.5rem; display:flex; flex-direction:column; align-items:center;
  gap:1.5rem; border-right:1px solid rgba(255,255,255,.1);
}
.headliner-avatar {
  width:180px; height:220px; border-radius:16px;
  background:rgba(255,255,255,.1); border:2px dashed rgba(255,255,255,.25);
  display:flex; align-items:center; justify-content:center;
  font-family:var(--display); font-size:3rem; font-weight:300; color:rgba(255,255,255,.45);
  overflow:hidden; flex-shrink:0;
}
.headliner-avatar img { width:100%; height:100%; object-fit:cover; }
.headliner-tag { background:#fff; color:var(--t800); font-size:.65rem; font-weight:900;
                 letter-spacing:.18em; text-transform:uppercase; padding:.35rem 1rem; border-radius:var(--r-pill); }
.headliner-social { display:flex; gap:.6rem; }
.headliner-social a { width:36px; height:36px; border-radius:50%; border:1px solid rgba(255,255,255,.25);
                      display:flex; align-items:center; justify-content:center; color:rgba(255,255,255,.7); transition:all .3s; }
.headliner-social a:hover { background:#fff; border-color:#fff; color:var(--t800); }

/* Headliner right — WHITE background, DARK text */
.headliner-right           { background:#ffffff; padding:2.75rem 3rem; display:flex; flex-direction:column; justify-content:center; }
.headliner-right .eyebrow  { color:var(--tx-lbl); }
.headliner-right h3        { font-family:var(--display); font-size:clamp(2.2rem,4vw,3.2rem);
                              color:var(--tx-h); margin-bottom:.4rem; line-height:1; font-weight:400; }
.headliner-tagline         { font-family:var(--display); font-style:italic; color:var(--tx-m); font-size:1.1rem; margin-bottom:1.5rem; }
.headliner-right p         { color:var(--tx-b); font-size:.97rem; line-height:1.8; margin-bottom:1rem; max-width:60ch; }
.class-pills { display:flex; gap:.75rem; flex-wrap:wrap; margin-top:.75rem; }
.class-pill  { border:1.5px solid var(--t700); color:var(--t800); font-size:.75rem; font-weight:700;
               letter-spacing:.08em; text-transform:uppercase; padding:.4rem 1rem; border-radius:var(--r-pill); background:var(--t50); }

/* Performer grid — WHITE cards, DARK text */
.performer-grid    { display:grid; grid-template-columns:repeat(4,1fr); gap:1.25rem; }
.performer-grid--5 { grid-template-columns:repeat(5,1fr); }
.performer-grid--6 { grid-template-columns:repeat(3,1fr); }
.performer-card {
  border-radius:var(--r-md); overflow:hidden;
  background:#ffffff; border:1.5px solid var(--t100);
  box-shadow:var(--sh-sm);
  display:flex; flex-direction:column;
  transition:transform .35s var(--ease),box-shadow .35s,border-color .35s;
}
.performer-card:hover { transform:translateY(-5px); box-shadow:var(--sh-md); border-color:var(--t300); }
.performer-img  { aspect-ratio:1; position:relative; flex-shrink:0; }
.performer-photo { width:100%; height:100%; object-fit:cover; display:block; }
.performer-photo-placeholder {
  width:100%; height:100%; display:flex; align-items:center; justify-content:center;
  font-family:var(--display); font-size:2.5rem; font-weight:300; color:rgba(255,255,255,.55);
}
.performer-card[data-type="instructor"] .performer-photo-placeholder { background:linear-gradient(135deg,var(--t700),var(--t500)); }
.performer-card[data-type="dj"]         .performer-photo-placeholder { background:linear-gradient(135deg,var(--t900),var(--t700)); }
.type-badge { position:absolute; top:.75rem; right:.75rem; background:#fff; border-radius:50%;
              width:32px; height:32px; display:flex; align-items:center; justify-content:center;
              font-size:1rem; box-shadow:var(--sh-sm); }
.performer-card[data-type="dj"] .type-badge { background:var(--t100); }

/* The info section — white bg, dark text, guaranteed */
.performer-card--featured { border-color:var(--t300); box-shadow:0 4px 16px rgba(10,74,74,.12); }
.featured-badge {
  display:block;
  font-family:var(--body); font-size:.58rem; font-weight:800; letter-spacing:.15em; text-transform:uppercase;
  color:var(--t700); margin-bottom:.3rem;
}
.type-badge { display:none; }
.performer-info  { padding:1.25rem 1.5rem 1.5rem; background:#ffffff; flex:1; }
.performer-role  { font-size:.62rem; font-weight:700; letter-spacing:.15em; text-transform:uppercase;
                   color:var(--tx-lbl); display:block; margin-bottom:.4rem; }
.performer-info h3 { font-family:var(--display); font-size:1.2rem; color:var(--tx-h); margin-bottom:.5rem; line-height:1.2; }
.performer-info p  { font-size:.85rem; color:var(--tx-b); line-height:1.65; margin:0; }
.performer-social  { display:flex; gap:.75rem; flex-wrap:wrap; margin-top:.65rem; }
.perf-social-link  { display:inline-flex; align-items:center; gap:.3rem; font-size:.72rem; font-weight:600;
                     color:var(--t700); text-decoration:none; transition:color .2s; }
.perf-social-link:hover { color:var(--t500); }

/* ═══════════════════════════════════════════
   SCHEDULE — white bg, dark text
═══════════════════════════════════════════ */
.section-schedule { background:#ffffff; }
.section-schedule .section-title { margin-bottom:2.5rem; }
.day-tabs { display:flex; gap:.5rem; margin-bottom:2.5rem; flex-wrap:wrap; }
.day-tab  { padding:.55rem 1.4rem; border-radius:var(--r-pill); border:1.5px solid var(--t200);
            background:transparent; color:var(--tx-m);
            font-family:var(--body); font-size:.75rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; cursor:pointer; transition:all .3s; }
.day-tab.active,
.day-tab:hover    { background:var(--t700); border-color:var(--t700); color:#fff; }
.day-panel        { display:none; }
.day-panel.active { display:block; }
.sched-list   { border:1.5px solid var(--t100); border-radius:var(--r-md); overflow:hidden; }
.sched-item   { display:grid; grid-template-columns:7rem 1fr; gap:1.5rem; padding:.9rem 1.25rem;
                border-bottom:1px solid var(--t50); align-items:start; }
.sched-item:last-child    { border-bottom:none; }
.sched-item:nth-child(odd){ background:var(--t25); }
.sched-time         { font-family:var(--display); font-style:italic; font-size:.95rem;
                      color:var(--tx-lbl); text-align:right; padding-top:.15rem; }
.sched-event strong { color:var(--tx-h);  display:block; font-size:1rem; margin-bottom:.15rem; }
.sched-event span   { color:var(--tx-m);  font-size:.82rem; }
/* WYSIWYG schedule content */
.sched-content { font-size:.95rem; color:var(--tx-b); line-height:1.75; }
.sched-content p   { margin:.5rem 0; }
.sched-content ul, .sched-content ol { padding-left:1.4rem; margin:.5rem 0; }
.sched-content li  { margin:.25rem 0; }
.sched-content strong { color:var(--tx-h); }
.sched-content a   { color:var(--t700); }

/* ═══════════════════════════════════════════
   LOCATION — pale teal bg, dark text
═══════════════════════════════════════════ */
.section-location { background:var(--t50); }
.location-inner   { display:grid; grid-template-columns:1.1fr 1fr; gap:6rem; align-items:center; }
.section-location h2    { font-size:clamp(2rem,4vw,3.2rem); color:var(--tx-h); margin-bottom:1.25rem; }
.section-location h2 em { color:var(--t700); }
.section-location p { color:var(--tx-b); line-height:1.85; margin-bottom:1rem; max-width:52ch; }
.loc-details { margin:2rem 0; display:flex; flex-direction:column; gap:.75rem; }
.loc-cta-row { display:flex; gap:1rem; flex-wrap:wrap; margin-top:1.5rem; }
.loc-detail  { display:flex; gap:1rem; align-items:flex-start; padding:.9rem 1.2rem;
               border-radius:var(--r-md); background:#ffffff; border:1.5px solid var(--t100);
               box-shadow:var(--sh-sm); transition:border-color .3s,box-shadow .3s; }
.loc-detail:hover { border-color:var(--t300); box-shadow:var(--sh-md); }
.loc-icon          { font-size:1.25rem; flex-shrink:0; }
.loc-text strong   { color:var(--tx-h);   font-size:.9rem;  display:block; margin-bottom:.1rem; }
.loc-text span     { color:var(--tx-b);   font-size:.82rem; }
.loc-map { aspect-ratio:1; border-radius:var(--r-lg); overflow:hidden;
           background:linear-gradient(175deg,var(--t600) 0%,var(--t400) 50%,var(--t300) 100%);
           display:flex; align-items:center; justify-content:center; box-shadow:var(--sh-lg); position:relative; }
.loc-map::before { content:''; position:absolute; bottom:0; left:0; right:0; height:40%;
                   background:linear-gradient(to top,rgba(10,74,74,.2),transparent); }
.loc-map-inner          { text-align:center; position:relative; z-index:1; }
.loc-map-inner .map-icon  { font-size:3.5rem; display:block; margin-bottom:.75rem; }
.loc-map-inner .map-title { font-family:var(--display); font-style:italic; font-size:1.1rem; color:#fff; display:block; }
.loc-map-inner .map-sub   { font-size:.72rem; letter-spacing:.12em; text-transform:uppercase; color:rgba(255,255,255,.85); display:block; margin-top:.3rem; }
.loc-map-photo-link { display:block; width:100%; height:100%; }
.loc-map-photo-link:focus-visible { outline:3px solid var(--t500); outline-offset:3px; border-radius:var(--r-lg); }

/* ═══════════════════════════════════════════
   GALLERY — white bg, dark headings
═══════════════════════════════════════════ */
.section-gallery { background:#ffffff; padding-top:clamp(4rem,8vw,7rem); padding-bottom:0; }
.section-gallery .container { margin-bottom:2.5rem; }
.section-gallery h2 { color:var(--tx-h); font-weight:400; margin-bottom:.5rem; }
.section-gallery p  { color:var(--tx-m); font-size:1rem; }
.gallery-grid { display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:270px; gap:3px; }
.gallery-item       { position:relative; overflow:hidden; display:block; cursor:zoom-in; }
.gallery-item--wide { grid-column:span 2; }
.gallery-item img   { width:100%; height:100%; object-fit:cover; transition:transform .55s var(--ease); }
.gallery-item:hover img { transform:scale(1.06); }
.gallery-overlay { position:absolute; inset:0; background:linear-gradient(to bottom,transparent 50%,rgba(10,74,74,.5) 100%); opacity:0; transition:opacity .4s; }
.gallery-item:hover .gallery-overlay { opacity:1; }
.gallery-placeholder { width:100%; height:100%; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.5rem; cursor:default; }
.gallery-placeholder-label { font-family:var(--display); font-style:italic; font-size:1rem; color:rgba(255,255,255,.6); }
.gallery-placeholder-note  { font-size:.6rem; letter-spacing:.1em; text-transform:uppercase; color:rgba(255,255,255,.35); }

/* Lightbox */
.lightbox { position:fixed; inset:0; z-index:999; display:flex; align-items:center; justify-content:center; padding:2rem; }
.lightbox[hidden] { display:none !important; }
.lightbox-backdrop { position:fixed; inset:0; background:rgba(5,14,22,.94); backdrop-filter:blur(10px); z-index:998; }
.lightbox-backdrop[hidden] { display:none !important; }
.lightbox img { max-width:90vw; max-height:85vh; border-radius:var(--r-md); box-shadow:0 24px 80px rgba(0,0,0,.55); }
.lightbox-close,.lightbox-prev,.lightbox-next { position:fixed; background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.2); color:#fff; border-radius:50%; width:48px; height:48px; display:flex; align-items:center; justify-content:center; cursor:pointer; transition:background .3s; z-index:1000; }
.lightbox-close:hover,.lightbox-prev:hover,.lightbox-next:hover { background:#fff; color:var(--t800); }
.lightbox-close { top:1.5rem; right:1.5rem; }
.lightbox-prev  { top:50%; left:1.5rem;  transform:translateY(-50%); }
.lightbox-next  { top:50%; right:1.5rem; transform:translateY(-50%); }
.lightbox-counter { position:fixed; bottom:1.5rem; left:50%; transform:translateX(-50%); font-size:.78rem; letter-spacing:.12em; text-transform:uppercase; color:rgba(255,255,255,.5); z-index:1000; }

/* ═══════════════════════════════════════════
   REGISTER — dark teal, white text OK
═══════════════════════════════════════════ */
.section-register { background:linear-gradient(160deg,var(--t800) 0%,var(--t700) 100%); text-align:center; }
.register-header          { margin-bottom:4rem; }
.register-header .eyebrow { color:var(--t200); }
.register-header h2       { font-family:var(--display); font-size:clamp(2.5rem,5vw,4.5rem); font-weight:300; color:#fff; line-height:1.05; }
.register-header h2 em    { color:var(--t200); font-style:italic; }
.register-header p        { color:rgba(255,255,255,.8); margin-top:1rem; font-size:1rem; max-width:50ch; margin-inline:auto; }
.ticket-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:2rem; max-width:760px; margin:0 auto; }
.ticket-grid--4 { max-width:900px; }
.ticket-grid--5 { max-width:1100px; grid-template-columns:repeat(3,1fr); }
.ticket-includes-note { font-style:italic; opacity:.75; list-style:none; padding-left:0; }
.ticket-card { border-radius:var(--r-lg); padding:2.5rem 2.25rem; text-align:left;
               border:2px solid rgba(255,255,255,.15); transition:all .4s var(--ease); }
.ticket-card:hover { border-color:rgba(255,255,255,.4); transform:translateY(-4px); box-shadow:var(--sh-lg); }
.ticket-card.featured       { background:rgba(255,255,255,.12); border-color:rgba(255,255,255,.3); }
.ticket-card:not(.featured) { background:rgba(255,255,255,.06); }
.ticket-label    { font-size:.68rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:var(--t200); display:block; margin-bottom:.35rem; }
.ticket-deadline { font-size:.8rem; color:rgba(255,255,255,.7); margin-bottom:1.25rem; display:block; }
.ticket-price    { font-family:var(--display); font-size:4.5rem; font-weight:300; color:#fff; line-height:1; margin-bottom:1.75rem; }
.ticket-price sup { font-size:1.8rem; vertical-align:super; }
.ticket-includes { margin-bottom:2rem; display:flex; flex-direction:column; gap:.5rem; }
.ticket-includes li { font-size:.88rem; color:rgba(255,255,255,.9); display:flex; align-items:center; gap:.6rem; }
.ticket-includes li::before { content:'✓'; color:var(--t200); font-weight:700; flex-shrink:0; }
.ticket-note   { margin-top:2rem; font-size:.9rem; color:rgba(255,255,255,.8); text-align:center; }
.ticket-note a { color:var(--t200); text-decoration:underline; }

/* ═══════════════════════════════════════════
   FOOTER — dark teal, white text OK
═══════════════════════════════════════════ */
.site-footer { background:var(--t900); border-top:1px solid rgba(255,255,255,.08); }
.footer-inner { display:grid; grid-template-columns:2fr 1fr 1fr; gap:4rem; padding-block:4rem; border-bottom:1px solid rgba(255,255,255,.08); }
.footer-logo    { font-family:var(--display); font-size:1.8rem; color:#fff; display:block; margin-bottom:1rem; text-decoration:none; }
.footer-logo em { color:var(--t300); font-style:italic; }
.footer-brand p { color:rgba(255,255,255,.55); font-size:.9rem; line-height:1.7; max-width:30ch; }
.footer-col h5  { font-size:.65rem; font-weight:700; letter-spacing:.2em; text-transform:uppercase; color:var(--t300); margin-bottom:1.25rem; }
.footer-col ul  { display:flex; flex-direction:column; gap:.6rem; }
.footer-col a   { font-size:.9rem; color:rgba(255,255,255,.55); transition:color .3s; }
.footer-col a:hover { color:var(--t300); }
.footer-bottom  { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:1rem; padding-block:1.75rem; }
.footer-mantra  { font-family:var(--display); font-style:italic; color:var(--t400); font-size:.95rem; }
.footer-copy    { font-size:.78rem; color:rgba(255,255,255,.35); }

/* ═══════════════════════════════════════════
   VIDEOS — white bg, dark text
═══════════════════════════════════════════ */
.section-videos { background:#ffffff; }
.videos-intro   { color:var(--tx-m); font-size:1rem; margin-bottom:3rem; }
.video-grid {
  display:grid; grid-template-columns:repeat(3,1fr); gap:1.75rem;
}
.video-card { display:flex; flex-direction:column; gap:.9rem; }
.video-wrapper {
  position:relative; width:100%; padding-top:56.25%; /* 16:9 */
  border-radius:var(--r-md); overflow:hidden;
  background:var(--t50); box-shadow:var(--sh-md);
  border:1.5px solid var(--t100);
}
.video-wrapper iframe {
  position:absolute; inset:0; width:100%; height:100%;
  border:none; display:block;
}
.video-title {
  font-family:var(--display); font-size:1rem; font-style:italic;
  color:var(--tx-b); text-align:center; line-height:1.4;
}
.section-videos--empty { padding-block:3rem; }
.video-placeholder-notice {
  display:flex; align-items:center; gap:1rem; justify-content:center;
  padding:2rem; border:2px dashed var(--t200); border-radius:var(--r-md);
  color:var(--tx-m); font-size:.9rem;
}
.video-placeholder-notice span { font-size:1.5rem; }
@media (max-width:900px) { .video-grid { grid-template-columns:1fr; max-width:580px; margin-inline:auto; } }
@media (max-width:640px) { .video-grid { gap:2rem; } }

/* ═══════════════════════════════════════════
   SCROLL REVEAL
═══════════════════════════════════════════ */
.reveal      { opacity:0; transform:translateY(28px); transition:opacity .8s var(--ease),transform .8s var(--ease); }
.reveal.in   { opacity:1; transform:none; }
.reveal-d1   { transition-delay:.1s; }
.reveal-d2   { transition-delay:.2s; }
.reveal-d3   { transition-delay:.3s; }
.reveal-d4   { transition-delay:.4s; }

/* ═══════════════════════════════════════════
   BLOCK EDITOR
═══════════════════════════════════════════ */
.wp-block-image img { border-radius:var(--r-md); }
.wp-block-quote     { border-left:3px solid var(--t500); padding-left:2rem; font-family:var(--display); font-style:italic; font-size:1.3rem; color:var(--tx-h); }
.wp-block-separator { border-color:var(--t100); }

/* ═══════════════════════════════════════════
   RESPONSIVE
═══════════════════════════════════════════ */
@media (max-width:1024px) {
  .headliner         { grid-template-columns:240px 1fr; }
  .performer-grid    { grid-template-columns:repeat(2,1fr); }
  .performer-grid--5 { grid-template-columns:repeat(3,1fr); }
  .performer-grid--6 { grid-template-columns:repeat(2,1fr); }
}
@media (max-width:900px) {
  .about-inner,.location-inner { grid-template-columns:1fr; gap:3rem; }
  .exp-grid     { grid-template-columns:1fr; }
  .ticket-grid--5 { grid-template-columns:repeat(2,1fr); }
  .headliner    { grid-template-columns:1fr; }
  .headliner-left { flex-direction:row; flex-wrap:wrap; border-right:none; border-bottom:1px solid rgba(255,255,255,.1); }
  .headliner-avatar { width:120px; height:140px; }
  .gallery-grid   { grid-template-columns:repeat(2,1fr); grid-auto-rows:210px; }
  .footer-inner   { grid-template-columns:1fr; gap:2.5rem; }
  .stat-divider   { display:none; }
}
@media (max-width:640px) {
  .exp-grid,.ticket-grid,.ticket-grid--5 { grid-template-columns:1fr; }
  .performer-grid,.performer-grid--5,.performer-grid--6 { grid-template-columns:repeat(2,1fr); }
  .gallery-grid   { grid-auto-rows:155px; }
  .sched-item     { grid-template-columns:4.5rem 1fr; }
}
