/* =========================================================
   ENERGY CAMP — scoped base styles
   Every widget root carries the .ec class which defines the
   design tokens + typography context. Nothing here touches
   bare body / section / nav selectors, so the host theme and
   the rest of the Elementor page stay untouched.
   ========================================================= */

.ec{
  /* ================= SCHEME ENGINE =================
     Every colour in this file resolves to one of two RGB triplets, so a
     section can be flipped light<->dark by overriding just these two.
       --ec-ink-rgb  = text, hairlines, shadows
       --ec-base-rgb = backgrounds, scrims, text sitting ON an accent block
     The per-widget "Section Color Scheme" dropdown swaps them.
     Variable NAMES below are unchanged from earlier versions on purpose,
     so any colour already set in an Elementor Style tab keeps working. */
  --ec-ink-rgb:0,0,0;
  --ec-base-rgb:255,255,255;

  --ec-dark:#ffffff;        /* page / section base */
  --ec-surface:#f4f4f4;     /* alternating section */
  --ec-elevated:#ebebeb;    /* cards */
  --ec-fg:#000000;          /* body text */
  --ec-accent:#000000;      /* secondary colour (buttons, accent blocks) */
  --ec-accent-2:#000000;
  --ec-accent-hover:#333333;
  --ec-on-accent:#ffffff;   /* text on an accent block */

  --ec-line:rgba(var(--ec-ink-rgb),.14);
  --ec-line-soft:rgba(var(--ec-ink-rgb),.08);
  --ec-muted:rgba(var(--ec-ink-rgb),.62);

  --ec-teal:var(--ec-accent);
  --ec-orange:var(--ec-accent-2);

  color:var(--ec-fg);
  font-family:'Inter',system-ui,sans-serif;
  -webkit-font-smoothing:antialiased;
  line-height:1.5;
}
.ec *,
.ec *::before,
.ec *::after{box-sizing:border-box;}
.ec a{color:inherit;text-decoration:none;}
.ec img{display:block;max-width:100%;height:auto;}
.ec .ec-display{font-family:'Inter Tight',system-ui,sans-serif;}
.ec ::selection{background:var(--ec-teal);color:var(--ec-dark);}
.ec .ec-wrap{max-width:1280px;margin:0 auto;padding:0 24px;}

/* shared type helpers */
.ec .ec-eyebrow{
  color:var(--ec-teal);font-weight:700;text-transform:uppercase;
  letter-spacing:.3em;font-size:12px;display:inline-block;margin-bottom:24px;
}
.ec .ec-eyebrow.is-orange{color:var(--ec-orange);}
.ec .ec-title{
  font-family:'Inter Tight',system-ui,sans-serif;
  font-size:clamp(2.25rem,6vw,4rem);font-weight:900;font-style:italic;
  text-transform:uppercase;line-height:.85;letter-spacing:-0.04em;margin:24px 0 32px;overflow-wrap:anywhere;
}
.ec .ec-lead{color:rgba(var(--ec-ink-rgb),.66);font-size:1.1rem;line-height:1.7;margin-bottom:40px;}

/* shared buttons */
.ec .ec-btn{
  display:inline-flex;align-items:center;justify-content:center;
  padding:20px 40px;font-size:11px;font-weight:700;text-transform:uppercase;
  letter-spacing:.2em;transition:all .2s;cursor:pointer;border:none;
}
.ec .ec-btn-primary{background:var(--ec-teal);color:var(--ec-dark);}
.ec .ec-btn-primary:hover{background:var(--ec-accent-hover);}
.ec .ec-btn-outline{border:1px solid rgba(var(--ec-ink-rgb),.35);color:var(--ec-fg);background:transparent;}
.ec .ec-btn-outline:hover{background:var(--ec-accent);color:var(--ec-on-accent);border-color:var(--ec-accent);}

/* ===================== NAV ===================== */
.ec-nav{
  background:var(--ec-dark);
}
.ec-nav .ec-nav-inner{
  padding:20px 24px;
  display:flex;align-items:center;justify-content:space-between;gap:24px;
}
.ec-nav .ec-logo{
  font-family:'Inter Tight',sans-serif;font-weight:900;font-style:italic;
  font-size:22px;letter-spacing:-0.03em;text-transform:uppercase;
}
.ec-nav .ec-logo span{color:var(--ec-teal);}
.ec-nav .ec-nav-links{
  display:none;gap:32px;font-size:11px;font-weight:700;text-transform:uppercase;
  letter-spacing:.2em;color:rgba(var(--ec-ink-rgb),.7);
}
.ec-nav .ec-nav-links a:hover{color:var(--ec-fg);}
@media(min-width:1024px){.ec-nav .ec-nav-links{display:flex;}}
.ec-nav .ec-nav-right{display:flex;align-items:center;gap:14px;}
.ec-nav .ec-btn-join{
  background:var(--ec-accent);color:var(--ec-on-accent);padding:10px 24px;font-size:11px;font-weight:700;
  text-transform:uppercase;letter-spacing:.15em;transition:background .2s;white-space:nowrap;
}
.ec-nav .ec-btn-join:hover{background:var(--ec-accent-hover);}
/* hamburger */
.ec-nav .ec-nav-toggle{display:flex;flex-direction:column;justify-content:center;gap:5px;width:40px;height:40px;padding:8px;background:none;border:none;cursor:pointer;}
.ec-nav .ec-nav-toggle span{display:block;width:100%;height:2px;background:var(--ec-fg);border-radius:2px;transition:transform .3s ease,opacity .2s ease;}
.ec-nav .ec-nav-toggle.open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.ec-nav .ec-nav-toggle.open span:nth-child(2){opacity:0;}
.ec-nav .ec-nav-toggle.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
@media(min-width:1024px){.ec-nav .ec-nav-toggle{display:none;}}
/* mobile dropdown */
.ec-nav .ec-mobile-menu{display:none;flex-direction:column;background:var(--ec-dark);border-top:1px solid rgba(var(--ec-ink-rgb),.1);padding:8px 24px 20px;}
.ec-nav .ec-mobile-menu.open{display:flex;}
.ec-nav .ec-mobile-menu a{padding:16px 2px;font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.2em;color:rgba(var(--ec-ink-rgb),.7);border-bottom:1px solid rgba(var(--ec-ink-rgb),.06);transition:color .2s;}
.ec-nav .ec-mobile-menu a:hover{color:var(--ec-fg);}
.ec-nav .ec-mobile-menu .ec-btn-join{margin-top:20px;text-align:center;border-bottom:none;color:var(--ec-dark);}
@media(min-width:1024px){.ec-nav .ec-mobile-menu{display:none !important;}}

/* ===================== HERO ===================== */
.ec-hero{
  position:relative;min-height:100vh;display:flex;align-items:flex-end;
  padding:0 24px 90px;overflow:hidden;background:var(--ec-dark);
}
.ec-hero .ec-hero-bg{
  position:absolute;inset:0;z-index:0;background-size:cover;background-position:center;
}
.ec-hero .ec-hero-bg.is-default{
  background:radial-gradient(ellipse at 30% 20%, rgba(var(--ec-ink-rgb),.085), transparent 70%);
}
.ec-hero .ec-hero-overlay{
  position:absolute;inset:0;z-index:1;
  background:
    linear-gradient(to right, rgba(var(--ec-base-rgb),.78), rgba(var(--ec-base-rgb),.15) 65%),
    linear-gradient(to top, rgba(var(--ec-base-rgb),.95), rgba(var(--ec-base-rgb),.25) 55%, rgba(var(--ec-base-rgb),0));
}
.ec-hero .ec-hero-content{position:relative;z-index:2;max-width:900px;}
.ec-hero h1{
  font-family:'Inter Tight',system-ui,sans-serif;
  font-size:clamp(2.75rem,11vw,9rem);font-weight:900;font-style:italic;text-transform:uppercase;
  line-height:.85;letter-spacing:-0.05em;margin-bottom:32px;overflow-wrap:anywhere;
}
.ec-hero .ec-stroke{
  -webkit-text-stroke:1.5px var(--ec-fg);color:transparent;
  border-bottom:4px solid var(--ec-teal);display:inline-block;padding-bottom:8px;
}
.ec-hero p{color:rgba(var(--ec-ink-rgb),.7);font-size:1.1rem;max-width:560px;margin-bottom:40px;line-height:1.6;}
.ec-hero .ec-hero-ctas{display:flex;flex-direction:column;gap:16px;}
@media(min-width:640px){.ec-hero .ec-hero-ctas{flex-direction:row;}}
.ec-hero .ec-ticker{
  position:absolute;bottom:24px;left:0;right:0;z-index:2;
  border-top:1px solid rgba(var(--ec-ink-rgb),.1);border-bottom:1px solid rgba(var(--ec-ink-rgb),.1);
  padding:12px 0;overflow:hidden;background:rgba(var(--ec-base-rgb),.3);backdrop-filter:blur(8px);
}
.ec-hero .ec-ticker-track{
  display:flex;gap:48px;white-space:nowrap;animation:ec-scroll 30s linear infinite;
  font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.3em;color:rgba(var(--ec-ink-rgb),.66);
}
.ec-hero .ec-ticker-track .dot{color:var(--ec-teal);}
@keyframes ec-scroll{from{transform:translateX(0);}to{transform:translateX(-50%);}}

/* ===================== SECTION GENERIC ===================== */
.ec-section{padding:96px 24px;background:var(--ec-dark);}
@media(min-width:768px){.ec-section{padding:128px 40px;}}
.ec-section.is-surface{background:var(--ec-surface);}
.ec-grid{display:grid;gap:40px;}
@media(min-width:768px){.ec-grid-12{grid-template-columns:repeat(12,minmax(0,1fr));}}
.ec-col-7,.ec-col-5{grid-column:auto;min-width:0;}
@media(min-width:768px){.ec-col-7{grid-column:span 7;}.ec-col-5{grid-column:span 5;}}

/* ===================== RECOVERY ===================== */
.ec-recovery-img{
  aspect-ratio:4/5;background:linear-gradient(145deg,rgba(var(--ec-ink-rgb),.07),rgba(var(--ec-ink-rgb),.115));
  border:1px solid rgba(var(--ec-ink-rgb),.06);display:flex;align-items:center;justify-content:center;
  color:rgba(var(--ec-ink-rgb),.45);font-size:12px;letter-spacing:.2em;text-transform:uppercase;
  background-size:cover;background-position:center;
}
.ec-num-row{display:flex;align-items:center;gap:24px;border-bottom:1px solid rgba(var(--ec-ink-rgb),.1);padding:20px 0;}
.ec-num-row .n{color:var(--ec-teal);font-family:'Inter Tight';font-weight:900;font-style:italic;font-size:1.5rem;}
.ec-num-row .t{font-weight:700;text-transform:uppercase;letter-spacing:.15em;font-size:.9rem;}

/* ===================== DISCIPLINES ===================== */
.ec-section-head{display:flex;flex-direction:column;gap:32px;justify-content:space-between;align-items:flex-start;margin-bottom:56px;}
@media(min-width:768px){.ec-section-head{flex-direction:row;align-items:flex-end;}}
.ec-view-all{
  font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.25em;
  color:rgba(var(--ec-ink-rgb),.7);border-bottom:1px solid rgba(var(--ec-ink-rgb),.2);padding-bottom:4px;white-space:nowrap;
}
.ec-view-all:hover{color:var(--ec-fg);border-bottom-color:var(--ec-fg);}
.ec-class-grid{display:grid;grid-template-columns:1fr;gap:20px;}
@media(min-width:640px){.ec-class-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);}}
@media(min-width:1024px){.ec-class-grid{grid-template-columns:1fr 1fr 1fr;}}
.ec-class-card{
  position:relative;aspect-ratio:3/4;background:var(--ec-surface);overflow:hidden;
  display:flex;flex-direction:column;justify-content:space-between;padding:24px;
  border:1px solid rgba(var(--ec-ink-rgb),.06);
}
.ec-class-card .ec-card-fallback{
  content:"";position:absolute;inset:0;z-index:0;
  background:linear-gradient(160deg, rgba(var(--ec-ink-rgb),.09) 0%, transparent 100%);
}
.ec-class-card .ec-card-img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1;
  opacity:.85;transition:opacity .7s ease, transform .7s ease;
}
.ec-class-card:hover .ec-card-img{opacity:1;transform:scale(1.05);}
.ec-class-card .ec-card-scrim{
  position:absolute;inset:0;z-index:2;
  background:linear-gradient(to top, var(--ec-dark), rgba(var(--ec-base-rgb),.15) 55%, transparent);
}
.ec-class-card .tag-row{display:flex;justify-content:space-between;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.25em;}
.ec-class-card .tag-row .cat{color:rgba(var(--ec-ink-rgb),.7);}
.ec-class-card .tag-row .time{color:var(--ec-teal);}
.ec-class-card h3{font-size:1.8rem;font-weight:900;font-style:italic;text-transform:uppercase;letter-spacing:-0.03em;line-height:1;font-family:'Inter Tight';}
.ec-class-card p{margin-top:12px;font-size:.9rem;color:rgba(var(--ec-ink-rgb),.7);max-width:26ch;}
.ec-class-card .enter{margin-top:20px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.25em;color:var(--ec-teal);}
.ec-class-card > .tag-row,
.ec-class-card > .ec-card-body{position:relative;z-index:3;}

/* ===================== TRAVEL ===================== */
.ec-travel{position:relative;text-align:left;padding:160px 24px;overflow:hidden;background:var(--ec-dark);}
.ec-travel .ec-travel-bg{position:absolute;inset:0;z-index:0;background:radial-gradient(ellipse at 70% 30%, rgba(var(--ec-ink-rgb),.085), transparent 70%);background-size:cover;background-position:center;}
.ec-travel .ec-hero-content{max-width:700px;position:relative;z-index:1;}
.ec-travel h2{
  font-family:'Inter Tight';font-size:clamp(2.4rem,8vw,6rem);font-weight:900;font-style:italic;
  text-transform:uppercase;line-height:.85;letter-spacing:-0.04em;margin:24px 0 32px;overflow-wrap:anywhere;
}
.ec-travel p{color:rgba(var(--ec-ink-rgb),.7);font-size:1.1rem;max-width:560px;margin-bottom:40px;}

/* ===================== PILLARS ===================== */
.ec-pillars-grid{display:grid;grid-template-columns:1fr;}
@media(min-width:768px){.ec-pillars-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:40px;}}
.ec-pillar{border-top:1px solid rgba(var(--ec-ink-rgb),.1);padding:40px 0;display:flex;gap:32px;}
.ec-pillar .n{color:var(--ec-teal);font-family:'Inter Tight';font-weight:900;font-style:italic;font-size:1.8rem;width:48px;flex-shrink:0;}
.ec-pillar h3{font-size:1.6rem;font-weight:900;font-style:italic;text-transform:uppercase;margin-bottom:12px;font-family:'Inter Tight';}
.ec-pillar p{color:rgba(var(--ec-ink-rgb),.68);max-width:420px;line-height:1.6;}
.ec-pillars-intro{align-self:flex-end;color:rgba(var(--ec-ink-rgb),.68);font-size:1.1rem;line-height:1.6;}

/* ===================== FACILITY ===================== */
.ec-facility{position:relative;padding:0;background:var(--ec-dark);}
.ec-facility .ec-facility-img{width:100%;height:60vh;background:linear-gradient(180deg,rgba(var(--ec-ink-rgb),.07),transparent);position:relative;background-size:cover;background-position:center;}
@media(min-width:768px){.ec-facility .ec-facility-img{height:80vh;}}
.ec-facility .ec-facility-img::after{content:"";position:absolute;inset:0;background:linear-gradient(to top, var(--ec-dark), rgba(var(--ec-base-rgb),.4) 50%, transparent);}
.ec-facility .ec-facility-caption{position:absolute;bottom:0;left:0;right:0;padding:24px 24px 64px;}
@media(min-width:768px){.ec-facility .ec-facility-caption{padding:24px 40px 64px;}}
.ec-facility h2{font-family:'Inter Tight';font-size:clamp(2rem,6vw,4.5rem);font-weight:900;font-style:italic;text-transform:uppercase;line-height:.85;letter-spacing:-0.04em;max-width:700px;margin:16px 0 0;overflow-wrap:anywhere;}

/* ===================== TESTIMONIALS ===================== */
.ec-testi-grid{display:grid;grid-template-columns:1fr;gap:40px;}
@media(min-width:768px){.ec-testi-grid{grid-template-columns:1fr 1fr 1fr;}}
.ec-testi{border-top:2px solid var(--ec-teal);padding-top:32px;}
.ec-testi blockquote{font-family:'Inter Tight';font-style:italic;font-size:1.3rem;line-height:1.4;}
.ec-testi .who{margin-top:32px;font-weight:700;text-transform:uppercase;letter-spacing:.15em;font-size:.9rem;}
.ec-testi .role{font-size:10px;text-transform:uppercase;letter-spacing:.25em;color:rgba(var(--ec-ink-rgb),.62);margin-top:4px;}

/* ===================== CTA FORM ===================== */
.ec-cta{background:var(--ec-teal);color:var(--ec-dark);padding:96px 24px;}
@media(min-width:768px){.ec-cta{padding:128px 40px;}}
.ec-cta-grid{display:grid;grid-template-columns:1fr;gap:48px;align-items:center;max-width:1100px;margin:0 auto;}
@media(min-width:768px){.ec-cta-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);}}
.ec-cta .ec-cta-eyebrow{font-weight:700;text-transform:uppercase;letter-spacing:.3em;font-size:12px;color:rgba(var(--ec-base-rgb),.7);display:inline-block;}
.ec-cta h2{font-family:'Inter Tight';font-size:clamp(2.25rem,6vw,4.5rem);font-weight:900;font-style:italic;text-transform:uppercase;line-height:.85;letter-spacing:-0.04em;color:var(--ec-dark);margin:16px 0 0;overflow-wrap:anywhere;}
.ec-cta p{margin-top:24px;font-size:1.1rem;max-width:420px;color:rgba(var(--ec-base-rgb),.7);}
.ec-cta .ec-field{margin-bottom:24px;}
.ec-cta .ec-field label{display:block;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.25em;color:rgba(var(--ec-base-rgb),.6);margin-bottom:8px;}
.ec-cta .ec-field input{width:100%;background:transparent;border:none;border-bottom:1px solid rgba(var(--ec-base-rgb),.3);padding:12px 0;font-size:1.1rem;color:var(--ec-dark);outline:none;}
.ec-cta .ec-field input::placeholder{opacity:.3;}
.ec-cta .ec-field input:focus{border-bottom-color:var(--ec-dark);}
.ec-cta .ec-btn-dark{background:var(--ec-dark);color:var(--ec-fg);padding:20px 48px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.2em;width:100%;border:none;cursor:pointer;transition:background .2s;}
@media(min-width:768px){.ec-cta .ec-btn-dark{width:auto;}}
.ec-cta .ec-btn-dark:hover{background:rgba(var(--ec-base-rgb),.82);}

/* ===================== NEWSLETTER ===================== */
.ec-news{border-top:1px solid rgba(var(--ec-ink-rgb),.1);border-bottom:1px solid rgba(var(--ec-ink-rgb),.1);padding:80px 24px;background:var(--ec-dark);}
.ec-news-grid{display:grid;grid-template-columns:1fr;gap:32px;align-items:center;max-width:1000px;margin:0 auto;}
@media(min-width:768px){.ec-news-grid{grid-template-columns:minmax(0,5fr) minmax(0,7fr);}}
.ec-news h3{font-size:1.8rem;font-weight:900;font-style:italic;text-transform:uppercase;margin-top:12px;font-family:'Inter Tight';}
.ec-news-form{display:flex;flex-direction:column;gap:12px;}
@media(min-width:640px){.ec-news-form{flex-direction:row;}}
.ec-news-form input{flex:1;background:transparent;border:none;border-bottom:1px solid rgba(var(--ec-ink-rgb),.2);padding:12px 4px;font-size:1.1rem;color:var(--ec-fg);outline:none;}
.ec-news-form input::placeholder{color:rgba(var(--ec-ink-rgb),.45);}
.ec-news-form input:focus{border-bottom-color:var(--ec-teal);}
.ec-news-form button{background:var(--ec-teal);color:var(--ec-dark);border:none;padding:12px 32px;font-weight:700;text-transform:uppercase;letter-spacing:.2em;font-size:11px;cursor:pointer;transition:background .2s;}
.ec-news-form button:hover{background:var(--ec-accent-hover);}

/* ===================== FOOTER ===================== */
.ec-footer{background:var(--ec-dark);padding:96px 24px;border-top:1px solid rgba(var(--ec-ink-rgb),.05);}
.ec-footer-grid{display:grid;grid-template-columns:1fr;gap:48px;max-width:1280px;margin:0 auto 64px;}
@media(min-width:768px){.ec-footer-grid{grid-template-columns:repeat(4,minmax(0,1fr));}}
.ec-footer-grid h4{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.25em;color:rgba(var(--ec-ink-rgb),.55);margin-bottom:24px;}
.ec-footer-grid ul{list-style:none;display:flex;flex-direction:column;gap:16px;font-weight:600;font-size:.95rem;margin:0;padding:0;}
.ec-footer-grid ul a:hover{color:var(--ec-fg);opacity:.65;}
.ec-footer .ec-footer-logo{font-family:'Inter Tight';font-weight:900;font-style:italic;font-size:1.5rem;text-transform:uppercase;margin-bottom:24px;}
.ec-footer .ec-footer-desc{color:rgba(var(--ec-ink-rgb),.62);font-size:.9rem;line-height:1.6;}
.ec-footer .ec-socials{display:flex;gap:20px;margin-top:24px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;}
.ec-footer .ec-socials a:hover{color:var(--ec-fg);opacity:.6;}
.ec-footer .ec-copyright{max-width:1280px;margin:0 auto;padding-top:48px;border-top:1px solid rgba(var(--ec-ink-rgb),.05);text-align:center;font-size:10px;text-transform:uppercase;letter-spacing:.25em;color:rgba(var(--ec-ink-rgb),.45);}

/* ===================== PROGRAMMES HEADER (Classes page hero) ===================== */
.ec-prog-head{padding:144px 24px 64px;border-bottom:1px solid rgba(var(--ec-ink-rgb),.1);background:var(--ec-dark);}
@media(min-width:768px){.ec-prog-head{padding:176px 40px 64px;}}
.ec-prog-head h1{font-family:'Inter Tight';font-weight:900;font-style:italic;text-transform:uppercase;line-height:.85;letter-spacing:-0.05em;margin-top:24px;font-size:clamp(2.75rem,13vw,10rem);overflow-wrap:anywhere;}
.ec-prog-head p{margin-top:40px;color:rgba(var(--ec-ink-rgb),.7);font-size:1.125rem;max-width:672px;line-height:1.6;}

/* ===================== GOALS (Browse By Goal / Find Your Lane) ===================== */
.ec-goals{background:var(--ec-surface);padding:80px 24px;}
@media(min-width:768px){.ec-goals{padding:80px 40px;}}
.ec-goals h2{font-family:'Inter Tight';font-weight:900;font-style:italic;text-transform:uppercase;line-height:.85;letter-spacing:-0.04em;margin:20px 0 48px;font-size:clamp(2rem,6vw,3.75rem);overflow-wrap:anywhere;}
.ec-goals-grid{display:grid;grid-template-columns:1fr;gap:24px;max-width:1280px;margin:0 auto;}
@media(min-width:768px){.ec-goals-grid{grid-template-columns:repeat(4,minmax(0,1fr));}}
.ec-goal{border-top:2px solid var(--ec-teal);padding-top:24px;}
.ec-goal .n{color:var(--ec-teal);font-family:'Inter Tight';font-weight:900;font-style:italic;font-size:1.25rem;}
.ec-goal h3{font-family:'Inter Tight';font-weight:900;font-style:italic;text-transform:uppercase;font-size:1.5rem;margin-top:8px;}
.ec-goal p{margin-top:12px;color:rgba(var(--ec-ink-rgb),.68);font-size:.875rem;line-height:1.5;}

/* ===================== PROGRAMME CTA (Not Sure Where To Start / Get A Programme) ===================== */
.ec-prog-cta{background:var(--ec-surface);color:var(--ec-fg);padding:96px 24px;}
@media(min-width:768px){.ec-prog-cta{padding:128px 40px;}}
.ec-prog-cta-grid{display:grid;grid-template-columns:1fr;gap:48px;align-items:center;max-width:1152px;margin:0 auto;}
@media(min-width:768px){.ec-prog-cta-grid{grid-template-columns:repeat(12,minmax(0,1fr));}}
.ec-prog-cta-left,.ec-prog-cta-right{grid-column:auto;min-width:0;}
@media(min-width:768px){.ec-prog-cta-left{grid-column:span 6;}.ec-prog-cta-right{grid-column:span 6;}}
.ec-prog-cta h2{font-family:'Inter Tight';font-weight:900;font-style:italic;text-transform:uppercase;line-height:.85;letter-spacing:-0.04em;margin-top:20px;font-size:clamp(2.25rem,7vw,4.5rem);overflow-wrap:anywhere;}
.ec-prog-cta h2 .accent{color:var(--ec-teal);}
.ec-prog-cta .lead{margin-top:24px;font-size:1.125rem;max-width:448px;color:rgba(var(--ec-ink-rgb),.7);line-height:1.6;}
.ec-prog-cta .ec-field{margin-bottom:24px;}
.ec-prog-cta .ec-field label{display:block;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.25em;color:rgba(var(--ec-ink-rgb),.66);margin-bottom:8px;}
.ec-prog-cta .ec-field input{width:100%;background:transparent;border:none;border-bottom:1px solid rgba(var(--ec-ink-rgb),.2);padding:12px 0;font-size:1.125rem;color:var(--ec-fg);outline:none;transition:border-color .2s;}
.ec-prog-cta .ec-field input::placeholder{opacity:.3;}
.ec-prog-cta .ec-field input:focus{border-bottom-color:var(--ec-teal);}
.ec-prog-cta .ec-btn-build{margin-top:8px;display:inline-flex;align-items:center;justify-content:center;width:100%;padding:20px 48px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.2em;background:var(--ec-teal);color:var(--ec-dark);border:none;cursor:pointer;transition:background .2s;}
@media(min-width:768px){.ec-prog-cta .ec-btn-build{width:auto;}}
.ec-prog-cta .ec-btn-build:hover{background:var(--ec-accent-hover);}

/* ===================== PAGE HEADER (generic hero: Schedule / Packages) ===================== */
.ec-page-head{padding:144px 24px 64px;background:var(--ec-dark);}
@media(min-width:768px){.ec-page-head{padding:176px 40px 64px;}}
.ec-page-head.has-border{border-bottom:1px solid rgba(var(--ec-ink-rgb),.1);}
.ec-page-head h1{font-family:'Inter Tight';font-weight:900;font-style:italic;text-transform:uppercase;line-height:.85;letter-spacing:-0.05em;margin-top:24px;font-size:clamp(2.75rem,13vw,10rem);overflow-wrap:anywhere;}
.ec-page-head p{margin-top:40px;color:rgba(var(--ec-ink-rgb),.7);font-size:1.125rem;max-width:672px;line-height:1.6;}

/* ===================== SCHEDULE TABLE ===================== */
.ec-sched{padding:64px 24px;background:var(--ec-dark);}
@media(min-width:768px){.ec-sched{padding:64px 40px;}}
.ec-sched .ec-table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;}
.ec-sched table{width:100%;min-width:800px;text-align:left;border-collapse:collapse;}
.ec-sched thead tr{border-bottom:1px solid rgba(var(--ec-ink-rgb),.1);}
.ec-sched th{padding:16px 0;font-size:10px;text-transform:uppercase;letter-spacing:.25em;color:rgba(var(--ec-ink-rgb),.62);font-weight:700;}
.ec-sched tbody tr{border-bottom:1px solid rgba(var(--ec-ink-rgb),.1);}
.ec-sched td{padding:20px 16px 20px 0;vertical-align:middle;}
.ec-sched .ec-time-cell{font-family:'Inter Tight';font-style:italic;font-weight:900;font-size:1.25rem;white-space:nowrap;}
.ec-sched .ec-class-link{font-size:.875rem;font-weight:600;transition:color .2s;}
.ec-sched .ec-class-link:hover{color:var(--ec-fg);text-decoration:underline;text-underline-offset:4px;}
.ec-sched .ec-empty{color:rgba(var(--ec-ink-rgb),.45);}

/* ===================== PLAN YOUR WEEK ===================== */
.ec-plan{padding:80px 24px;background:var(--ec-surface);}
@media(min-width:768px){.ec-plan{padding:80px 40px;}}
.ec-plan-grid{display:grid;gap:48px;max-width:1280px;margin:0 auto;}
@media(min-width:768px){.ec-plan-grid{grid-template-columns:repeat(12,minmax(0,1fr));}.ec-plan-copy{grid-column:span 5;}.ec-plan-cats{grid-column:span 7;}}
.ec-plan h2{font-family:'Inter Tight';font-weight:900;font-style:italic;text-transform:uppercase;line-height:.85;letter-spacing:-0.04em;margin-top:20px;font-size:clamp(2rem,5vw,3rem);overflow-wrap:anywhere;}
.ec-plan .ec-plan-p{margin-top:24px;color:rgba(var(--ec-ink-rgb),.68);line-height:1.6;}
.ec-plan-cats-grid{display:grid;grid-template-columns:1fr;gap:24px;}
@media(min-width:640px){.ec-plan-cats-grid{grid-template-columns:repeat(3,minmax(0,1fr));}}
.ec-cat{border-top:2px solid var(--ec-teal);padding-top:20px;}
.ec-cat h3{font-family:'Inter Tight';font-style:italic;font-weight:900;text-transform:uppercase;font-size:1.25rem;letter-spacing:-0.02em;}
.ec-cat p{margin-top:12px;color:rgba(var(--ec-ink-rgb),.68);font-size:.875rem;}

/* ===================== PRICING ===================== */
.ec-pricing{padding:80px 24px;background:var(--ec-dark);}
@media(min-width:768px){.ec-pricing{padding:112px 40px;}}
.ec-price-grid{display:grid;grid-template-columns:1fr;gap:24px;max-width:1280px;margin:0 auto;}
@media(min-width:768px){.ec-price-grid{grid-template-columns:repeat(3,minmax(0,1fr));}}
.ec-plan-card{padding:40px;display:flex;flex-direction:column;border:1px solid rgba(var(--ec-ink-rgb),.1);transition:border-color .2s;}
.ec-plan-card:hover{border-color:rgba(var(--ec-ink-rgb),.55);}
.ec-plan-card.featured{background:var(--ec-teal);color:var(--ec-dark);border:none;position:relative;}
.ec-plan-card .ec-badge{position:absolute;top:0;left:50%;transform:translate(-50%,-50%);background:var(--ec-dark);color:var(--ec-teal);padding:4px 16px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.25em;white-space:nowrap;}
.ec-plan-card .ec-plan-name{font-family:'Inter Tight';font-style:italic;font-weight:900;text-transform:uppercase;font-size:1.875rem;letter-spacing:-0.02em;margin-bottom:8px;}
.ec-plan-card .ec-plan-desc{font-size:.875rem;margin-bottom:32px;color:rgba(var(--ec-ink-rgb),.66);}
.ec-plan-card.featured .ec-plan-desc{color:rgba(var(--ec-base-rgb),.7);}
.ec-plan-card .ec-plan-price{display:flex;align-items:baseline;gap:8px;margin-bottom:40px;flex-wrap:wrap;}
.ec-plan-card .ec-plan-price .amount{font-family:'Inter Tight';font-style:italic;font-weight:900;font-size:3.75rem;letter-spacing:-0.02em;line-height:1;}
.ec-plan-card .ec-plan-price .unit{font-size:.75rem;text-transform:uppercase;letter-spacing:.1em;color:rgba(var(--ec-ink-rgb),.62);}
.ec-plan-card.featured .ec-plan-price .unit{color:rgba(var(--ec-base-rgb),.6);}
.ec-plan-card .ec-plan-feats{list-style:none;display:flex;flex-direction:column;gap:12px;margin-bottom:40px;flex:1;padding:0;}
.ec-plan-card .ec-plan-feats li{display:flex;gap:12px;font-size:.875rem;}
.ec-plan-card .ec-plan-feats .dot{color:var(--ec-teal);}
.ec-plan-card.featured .ec-plan-feats .dot{color:var(--ec-dark);}
.ec-plan-card .ec-plan-cta{display:inline-flex;align-items:center;justify-content:center;padding:20px 40px;font-weight:700;text-transform:uppercase;letter-spacing:.2em;font-size:.75rem;transition:background .2s,color .2s;background:var(--ec-teal);color:var(--ec-dark);}
.ec-plan-card .ec-plan-cta:hover{background:var(--ec-accent-hover);}
.ec-plan-card.featured .ec-plan-cta{background:var(--ec-dark);color:var(--ec-fg);}
.ec-plan-card.featured .ec-plan-cta:hover{background:rgba(var(--ec-base-rgb),.82);color:var(--ec-fg);}

/* ===================== COMPARE TABLE ===================== */
.ec-compare{padding:80px 24px;background:var(--ec-surface);}
@media(min-width:768px){.ec-compare{padding:80px 40px;}}
.ec-compare h2{font-family:'Inter Tight';font-weight:900;font-style:italic;text-transform:uppercase;line-height:.85;letter-spacing:-0.04em;margin:20px 0 48px;font-size:clamp(2rem,5vw,3.75rem);overflow-wrap:anywhere;}
.ec-compare .ec-table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;}
.ec-compare table{width:100%;min-width:640px;text-align:left;border-collapse:collapse;}
.ec-compare thead tr{border-bottom:1px solid rgba(var(--ec-ink-rgb),.15);}
.ec-compare th{padding:20px 12px 20px 0;font-family:'Inter Tight';font-style:italic;font-weight:900;text-transform:uppercase;font-size:1.25rem;letter-spacing:-0.02em;}
.ec-compare th.is-teal{color:var(--ec-teal);}
.ec-compare tbody tr{border-bottom:1px solid rgba(var(--ec-ink-rgb),.1);}
.ec-compare td{padding:20px 12px 20px 0;font-size:.875rem;}
.ec-compare td.label{text-transform:uppercase;letter-spacing:.1em;color:rgba(var(--ec-ink-rgb),.7);font-weight:600;}
.ec-compare td.muted{color:rgba(var(--ec-ink-rgb),.7);}
.ec-compare td.bold{font-weight:700;}

/* ===================== BOLT-ONS ===================== */
.ec-bolt{padding:80px 24px;background:var(--ec-dark);}
@media(min-width:768px){.ec-bolt{padding:96px 40px;}}
.ec-bolt h2{font-family:'Inter Tight';font-weight:900;font-style:italic;text-transform:uppercase;line-height:.85;letter-spacing:-0.04em;margin:20px 0 48px;font-size:clamp(2rem,5vw,3.75rem);overflow-wrap:anywhere;}
.ec-bolt-grid{display:grid;grid-template-columns:1fr;gap:24px;max-width:1280px;margin:0 auto;}
@media(min-width:768px){.ec-bolt-grid{grid-template-columns:repeat(3,minmax(0,1fr));}}
.ec-bolt-card{border:1px solid rgba(var(--ec-ink-rgb),.1);padding:32px;transition:border-color .2s;}
.ec-bolt-card:hover{border-color:rgba(var(--ec-ink-rgb),.55);}
.ec-bolt-card h3{font-family:'Inter Tight';font-style:italic;font-weight:900;text-transform:uppercase;font-size:1.5rem;letter-spacing:-0.02em;}
.ec-bolt-card .ec-bolt-price{color:var(--ec-teal);font-size:.875rem;text-transform:uppercase;letter-spacing:.1em;font-weight:700;margin-top:8px;}
.ec-bolt-card .ec-bolt-desc{color:rgba(var(--ec-ink-rgb),.68);margin-top:16px;font-size:.875rem;line-height:1.6;}

/* ===================== FAQ (native details accordion) ===================== */
.ec-faq{padding:96px 24px;background:var(--ec-surface);}
@media(min-width:768px){.ec-faq{padding:96px 40px;}}
.ec-faq-grid{display:grid;gap:48px;max-width:1280px;margin:0 auto;}
@media(min-width:768px){.ec-faq-grid{grid-template-columns:repeat(12,minmax(0,1fr));}.ec-faq-head{grid-column:span 4;}.ec-faq-list{grid-column:span 8;}}
.ec-faq h2{font-family:'Inter Tight';font-weight:900;font-style:italic;text-transform:uppercase;line-height:.85;letter-spacing:-0.04em;margin-top:20px;font-size:clamp(2rem,5vw,3.75rem);overflow-wrap:anywhere;}
.ec-faq-item{border-bottom:1px solid rgba(var(--ec-ink-rgb),.1);}
.ec-faq-item summary{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;padding:32px 0;cursor:pointer;list-style:none;}
.ec-faq-item summary::-webkit-details-marker{display:none;}
.ec-faq-label{display:flex;align-items:baseline;gap:20px;}
@media(min-width:768px){.ec-faq-label{gap:32px;}}
.ec-faq-num{color:var(--ec-teal);font-family:'Inter Tight';font-style:italic;font-size:.875rem;font-weight:900;}
.ec-faq-q{font-family:'Inter Tight';font-style:italic;font-weight:900;text-transform:uppercase;font-size:1.25rem;letter-spacing:-0.02em;transition:color .2s;}
@media(min-width:768px){.ec-faq-q{font-size:1.5rem;}}
.ec-faq-item summary:hover .ec-faq-q{color:var(--ec-fg);opacity:.62;}
.ec-faq-chevron{width:16px;height:16px;flex-shrink:0;color:rgba(var(--ec-ink-rgb),.7);transition:transform .2s;}
.ec-faq-item[open] .ec-faq-chevron{transform:rotate(180deg);}
.ec-faq-answer{padding-bottom:32px;padding-left:36px;color:rgba(var(--ec-ink-rgb),.7);font-size:.9375rem;line-height:1.6;}

/* ===================== MEDIA HERO (Travel hero: bg image) ===================== */
.ec-media-hero{position:relative;min-height:80vh;display:flex;align-items:flex-end;padding:0 24px 80px;overflow:hidden;background:var(--ec-dark);}
@media(min-width:768px){.ec-media-hero{padding:0 40px 80px;}}
.ec-media-hero .ec-mh-bg{position:absolute;inset:0;z-index:0;background-size:cover;background-position:center;}
.ec-media-hero .ec-mh-bg.is-default{background:linear-gradient(160deg,rgba(var(--ec-ink-rgb),.20) 0%,rgba(var(--ec-ink-rgb),.13) 45%,rgba(var(--ec-ink-rgb),.05) 100%);}
.ec-media-hero .ec-mh-overlay{position:absolute;inset:0;z-index:1;background:linear-gradient(to top,var(--ec-dark),rgba(var(--ec-base-rgb),.4) 50%,rgba(var(--ec-base-rgb),.2));}
.ec-media-hero .ec-mh-content{position:relative;z-index:2;max-width:1024px;}
.ec-media-hero h1{font-family:'Inter Tight';font-weight:900;font-style:italic;text-transform:uppercase;line-height:.85;letter-spacing:-0.04em;margin-top:24px;font-size:clamp(2.75rem,13vw,10rem);overflow-wrap:anywhere;}

/* ===================== RETREATS (cards + CTA) ===================== */
.ec-retreats{padding:96px 24px;background:var(--ec-dark);}
@media(min-width:768px){.ec-retreats{padding:96px 40px;}}
.ec-retreat-grid{display:grid;grid-template-columns:1fr;gap:24px;max-width:1280px;margin:0 auto;}
@media(min-width:768px){.ec-retreat-grid{grid-template-columns:repeat(3,minmax(0,1fr));}}
.ec-retreat{display:block;}
.ec-retreat .ec-retreat-img{aspect-ratio:4/5;overflow:hidden;position:relative;}
.ec-retreat .ec-retreat-img.is-default{background:linear-gradient(160deg,rgba(var(--ec-ink-rgb),.10) 0%,rgba(var(--ec-ink-rgb),.06) 60%,rgba(var(--ec-ink-rgb),.02) 100%);}
.ec-retreat .ec-retreat-img img{width:100%;height:100%;object-fit:cover;transition:transform .7s;display:block;}
.ec-retreat:hover .ec-retreat-img img{transform:scale(1.05);}
.ec-retreat .ec-retreat-meta{margin-top:20px;display:flex;justify-content:space-between;align-items:baseline;}
.ec-retreat .ec-retreat-date{font-size:10px;text-transform:uppercase;letter-spacing:.25em;color:var(--ec-teal);font-weight:700;}
.ec-retreat .ec-retreat-len{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:rgba(var(--ec-ink-rgb),.62);}
.ec-retreat h3{font-family:'Inter Tight';font-style:italic;font-weight:900;text-transform:uppercase;font-size:1.875rem;letter-spacing:-0.02em;margin-top:8px;}
.ec-retreat .ec-retreat-loc{font-size:.875rem;color:rgba(var(--ec-ink-rgb),.66);margin-top:4px;}
.ec-retreats-cta{margin-top:64px;text-align:center;}

/* ===================== FEATURE LIST (All In) ===================== */
.ec-allin{padding:96px 24px;background:var(--ec-surface);}
@media(min-width:768px){.ec-allin{padding:96px 40px;}}
.ec-allin-grid{display:grid;gap:48px;max-width:1280px;margin:0 auto;}
@media(min-width:768px){.ec-allin-grid{grid-template-columns:repeat(12,minmax(0,1fr));}.ec-allin-copy{grid-column:span 5;}.ec-allin-feats{grid-column:span 7;}}
.ec-allin h2{font-family:'Inter Tight';font-weight:900;font-style:italic;text-transform:uppercase;line-height:.85;letter-spacing:-0.04em;margin-top:20px;font-size:clamp(2rem,5vw,3.75rem);overflow-wrap:anywhere;}
.ec-allin .ec-allin-lead{margin-top:24px;color:rgba(var(--ec-ink-rgb),.68);font-size:1.125rem;line-height:1.6;max-width:448px;}
.ec-allin-list{list-style:none;display:grid;grid-template-columns:1fr;padding:0;}
@media(min-width:640px){.ec-allin-list{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:48px;}}
.ec-allin-list li{display:flex;gap:20px;padding:20px 0;border-bottom:1px solid rgba(var(--ec-ink-rgb),.1);align-items:baseline;}
.ec-allin-num{color:var(--ec-teal);font-family:'Inter Tight';font-style:italic;font-weight:900;font-size:.875rem;width:32px;flex-shrink:0;}
.ec-allin-item{font-weight:600;text-transform:uppercase;letter-spacing:.15em;font-size:.875rem;}

/* ===================== TIMELINE (Day In Camp / Origin Story) ===================== */
.ec-timeline{padding:96px 24px;background:var(--ec-dark);}
@media(min-width:768px){.ec-timeline{padding:96px 40px;}}
.ec-timeline .ec-tl-inner{max-width:1024px;margin:0 auto;}
.ec-timeline h2{font-family:'Inter Tight';font-weight:900;font-style:italic;text-transform:uppercase;line-height:.85;letter-spacing:-0.04em;margin:20px 0 48px;font-size:clamp(2rem,5vw,3.75rem);overflow-wrap:anywhere;}
.ec-tl-row{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px 16px;align-items:baseline;padding:20px 0;border-top:1px solid var(--ec-line);}
@media(min-width:768px){.ec-tl-row{grid-template-columns:repeat(12,minmax(0,1fr));gap:24px;}}
.ec-tl-row.has-desc{padding:32px 0;}
.ec-tl-row:last-child{border-bottom:1px solid rgba(var(--ec-ink-rgb),.1);}
.ec-tl-left{font-family:'Inter Tight';font-style:italic;font-weight:900;font-size:1.5rem;color:var(--ec-teal);}
.ec-tl-body{min-width:0;}
.ec-tl-body h3{font-family:'Inter Tight';font-style:italic;font-weight:900;text-transform:uppercase;font-size:1.25rem;letter-spacing:-0.02em;}
.ec-tl-body p{margin-top:8px;color:rgba(var(--ec-ink-rgb),.68);}
@media(min-width:768px){.ec-tl-left{grid-column:span 2;font-size:1.875rem;}.ec-tl-body{grid-column:span 10;}.ec-tl-body h3{font-size:1.5rem;}}

/* ===================== IMAGE BAND (Team image) ===================== */
.ec-image-band{padding:96px 24px;background:var(--ec-dark);}
@media(min-width:768px){.ec-image-band{padding:96px 40px;}}
.ec-image-band .ec-ib-wrap{max-width:1280px;margin:0 auto;}
.ec-image-band .ec-ib-media{width:100%;height:60vh;object-fit:cover;display:block;background:linear-gradient(160deg,rgba(var(--ec-ink-rgb),.10) 0%,rgba(var(--ec-ink-rgb),.06) 60%,rgba(var(--ec-ink-rgb),.02) 100%);background-size:cover;background-position:center;}
.ec-image-band .ec-ib-ph{display:flex;align-items:center;justify-content:center;color:rgba(var(--ec-ink-rgb),.45);font-size:.75rem;text-transform:uppercase;letter-spacing:.25em;}

/* ===================== STATS ===================== */
.ec-stats{padding:96px 24px;background:var(--ec-surface);}
@media(min-width:768px){.ec-stats{padding:96px 40px;}}
.ec-stats-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px;max-width:1280px;margin:0 auto;}
@media(min-width:768px){.ec-stats-grid{grid-template-columns:repeat(4,minmax(0,1fr));}}
.ec-stat{border-left:2px solid var(--ec-teal);padding-left:24px;}
.ec-stat .ec-stat-num{font-family:'Inter Tight';font-style:italic;font-weight:900;font-size:3rem;line-height:1;}
@media(min-width:768px){.ec-stat .ec-stat-num{font-size:4.5rem;}}
.ec-stat .ec-stat-label{font-size:10px;text-transform:uppercase;letter-spacing:.25em;color:rgba(var(--ec-ink-rgb),.66);margin-top:8px;}

/* ===================== TEXT COLUMNS (Method) ===================== */
.ec-textcols{padding:96px 24px;background:var(--ec-dark);}
@media(min-width:768px){.ec-textcols{padding:112px 40px;}}
.ec-textcols .ec-tc-inner{max-width:1024px;margin:0 auto;}
.ec-textcols h2{font-family:'Inter Tight';font-weight:900;font-style:italic;text-transform:uppercase;line-height:.85;letter-spacing:-0.04em;margin:24px 0 40px;font-size:clamp(2rem,5vw,3.75rem);overflow-wrap:anywhere;}
.ec-textcols .ec-tc-cols{display:grid;grid-template-columns:1fr;gap:48px;color:rgba(var(--ec-ink-rgb),.7);font-size:1.125rem;line-height:1.6;}
@media(min-width:768px){.ec-textcols .ec-tc-cols{grid-template-columns:repeat(2,minmax(0,1fr));}}
.ec-textcols .ec-tc-cols p{margin:0;}
.ec-textcols .ec-tc-cols strong,.ec-textcols .ec-tc-cols .hl{color:var(--ec-fg);font-weight:600;}
.ec-textcols .ec-tc-cta{margin-top:56px;}

/* ===================== RULES (House Rules — numbered cards) ===================== */
.ec-rules{padding:96px 24px;background:var(--ec-surface);}
@media(min-width:768px){.ec-rules{padding:96px 40px;}}
.ec-rules .ec-rules-inner{max-width:1280px;margin:0 auto;}
.ec-rules h2{font-family:'Inter Tight';font-weight:900;font-style:italic;text-transform:uppercase;line-height:.85;letter-spacing:-0.04em;margin:20px 0 56px;font-size:clamp(2rem,5vw,3.75rem);overflow-wrap:anywhere;}
.ec-rules-grid{display:grid;grid-template-columns:1fr;gap:40px;}
@media(min-width:768px){.ec-rules-grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr));}.ec-rules-grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr));}.ec-rules-grid.cols-4{grid-template-columns:repeat(4,minmax(0,1fr));}}
.ec-rule{border-top:1px solid rgba(var(--ec-ink-rgb),.15);padding-top:32px;}
.ec-rule .ec-rule-num{color:var(--ec-teal);font-family:'Inter Tight';font-style:italic;font-size:1.5rem;font-weight:900;}
.ec-rule h3{font-family:'Inter Tight';font-style:italic;font-weight:900;text-transform:uppercase;font-size:1.5rem;letter-spacing:-0.02em;margin-top:12px;}
.ec-rule p{margin-top:16px;color:rgba(var(--ec-ink-rgb),.68);line-height:1.6;}

/* ===================== MEDIA COPY (Coaches — image + copy split) ===================== */
.ec-mediacopy{padding:96px 24px;background:var(--ec-surface);}
@media(min-width:768px){.ec-mediacopy{padding:96px 40px;}}
.ec-mediacopy-grid{display:grid;grid-template-columns:1fr;gap:40px;align-items:center;max-width:1280px;margin:0 auto;}
@media(min-width:768px){.ec-mediacopy-grid{grid-template-columns:repeat(12,minmax(0,1fr));}.ec-mediacopy-media{grid-column:span 5;}.ec-mediacopy-copy{grid-column:span 7;}.ec-mediacopy-grid.img-right .ec-mediacopy-media{order:2;}}
.ec-mediacopy .ec-mc-img{width:100%;aspect-ratio:3/4;object-fit:cover;display:block;background:linear-gradient(160deg,rgba(var(--ec-ink-rgb),.16) 0%,rgba(var(--ec-ink-rgb),.07) 60%,transparent 100%);background-size:cover;background-position:center;}
.ec-mediacopy .ec-mc-ph{display:flex;align-items:center;justify-content:center;color:rgba(var(--ec-ink-rgb),.45);font-size:.75rem;text-transform:uppercase;letter-spacing:.25em;}
.ec-mediacopy h2{font-family:'Inter Tight';font-weight:900;font-style:italic;text-transform:uppercase;line-height:.85;letter-spacing:-0.04em;margin-top:20px;font-size:clamp(2rem,5vw,3.75rem);overflow-wrap:anywhere;}
.ec-mediacopy .ec-mc-lead{margin-top:32px;color:rgba(var(--ec-ink-rgb),.7);font-size:1.125rem;line-height:1.6;max-width:576px;}
.ec-mediacopy .ec-mc-cta{margin-top:40px;}

/* ===================== LOGO IMAGE (nav + footer) ===================== */
.ec-logo-img{display:block;height:auto;width:auto;}

/* ===================== TOP BAR ===================== */
.ec-topbar{background:var(--ec-accent);color:rgba(var(--ec-base-rgb),.88);font-size:12px;}
.ec-topbar .ec-tb-inner{max-width:1280px;margin:0 auto;padding:8px 24px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;}
@media(min-width:768px){.ec-topbar .ec-tb-inner{padding:8px 40px;}}
.ec-topbar a{color:inherit;transition:color .2s;}
.ec-topbar a:hover{color:#fff;}
.ec-topbar .ec-tb-left,.ec-topbar .ec-tb-center,.ec-topbar .ec-tb-right{display:flex;align-items:center;gap:12px;}
.ec-topbar .ec-tb-center{gap:8px;}
.ec-topbar .ec-tb-icon{display:inline-flex;width:16px;height:16px;}
.ec-topbar .ec-tb-icon svg{width:100%;height:100%;fill:currentColor;}
.ec-topbar .ec-tb-store{display:inline-flex;width:18px;height:18px;}
.ec-topbar .ec-tb-social{display:inline-flex;width:16px;height:16px;}

/* ===================== PAGE BANNER (inner page: Release Room / Blogs) ===================== */
.ec-page-banner{position:relative;min-height:300px;display:flex;align-items:center;justify-content:center;text-align:center;overflow:hidden;background:var(--ec-dark);padding:48px 24px;}
.ec-page-banner .ec-pb-bg{position:absolute;inset:0;z-index:0;background-size:cover;background-position:center;}
.ec-page-banner .ec-pb-bg.is-default{background:linear-gradient(160deg,rgba(var(--ec-ink-rgb),.085),transparent 70%);}
.ec-page-banner .ec-pb-overlay{position:absolute;inset:0;z-index:1;background:rgba(var(--ec-base-rgb),.4);}
.ec-page-banner .ec-pb-title{position:relative;z-index:2;font-family:'Inter Tight';font-weight:900;font-style:italic;text-transform:uppercase;font-size:clamp(2rem,6vw,3.5rem);letter-spacing:-0.02em;color:var(--ec-fg);background:rgba(var(--ec-base-rgb),.62);padding:12px 32px;overflow-wrap:anywhere;}

/* ===================== COMING SOON ===================== */
.ec-coming{padding:80px 24px;background:var(--ec-dark);}
@media(min-width:768px){.ec-coming{padding:96px 40px;}}
.ec-coming-grid{display:grid;grid-template-columns:1fr;gap:40px;align-items:center;max-width:1280px;margin:0 auto;}
@media(min-width:768px){.ec-coming-grid{grid-template-columns:minmax(0,7fr) minmax(0,5fr);}}
.ec-coming h2{font-family:'Inter Tight';font-weight:900;font-style:italic;text-transform:uppercase;line-height:.9;letter-spacing:-0.03em;font-size:clamp(2.25rem,6vw,3.5rem);overflow-wrap:anywhere;}
.ec-coming-actions{display:flex;align-items:center;gap:24px;flex-wrap:wrap;margin-top:32px;}
.ec-help{display:flex;align-items:center;gap:14px;}
.ec-help-icon{width:48px;height:48px;border-radius:50%;border:1px solid rgba(var(--ec-ink-rgb),.2);display:flex;align-items:center;justify-content:center;color:var(--ec-teal);flex-shrink:0;}
.ec-help-icon svg{width:20px;height:20px;fill:currentColor;}
.ec-help-label{font-size:12px;color:rgba(var(--ec-ink-rgb),.7);font-weight:600;}
.ec-help-num{font-weight:800;font-size:1.05rem;margin-top:2px;}
.ec-coming-img img{width:100%;height:auto;display:block;border-radius:8px;}
.ec-coming-img .ec-ph-box{width:100%;aspect-ratio:4/3;border-radius:8px;background:linear-gradient(160deg,rgba(var(--ec-ink-rgb),.09),transparent);display:flex;align-items:center;justify-content:center;color:rgba(var(--ec-ink-rgb),.45);font-size:12px;letter-spacing:.2em;text-transform:uppercase;}

/* ===================== MISSION / VISION / GOAL (icon cards) ===================== */
.ec-mvg{padding:80px 24px;background:var(--ec-dark);}
@media(min-width:768px){.ec-mvg{padding:96px 40px;}}
.ec-mvg-grid{display:grid;grid-template-columns:1fr;gap:24px;max-width:1280px;margin:0 auto;}
@media(min-width:768px){.ec-mvg-grid{grid-template-columns:repeat(3,minmax(0,1fr));}}
.ec-mvg-card{background:var(--ec-surface);border:1px solid rgba(var(--ec-ink-rgb),.06);border-radius:8px;padding:40px 32px;}
.ec-mvg-icon{width:88px;height:88px;border-radius:12px;background:linear-gradient(160deg,rgba(var(--ec-ink-rgb),.09),transparent);display:flex;align-items:center;justify-content:center;overflow:hidden;margin-bottom:24px;}
.ec-mvg-icon img{width:100%;height:100%;object-fit:cover;}
.ec-mvg-card h3{font-family:'Inter Tight';font-style:italic;font-weight:900;text-transform:uppercase;font-size:1.5rem;letter-spacing:-0.02em;}
.ec-mvg-card p{margin-top:16px;color:rgba(var(--ec-ink-rgb),.68);font-size:.95rem;line-height:1.7;}

/* ===================== INDIVIDUALLY (copy + button + image) ===================== */
.ec-indiv{padding:80px 24px;background:var(--ec-dark);}
@media(min-width:768px){.ec-indiv{padding:96px 40px;}}
.ec-indiv-grid{display:grid;grid-template-columns:1fr;gap:40px;align-items:center;max-width:1280px;margin:0 auto;}
@media(min-width:768px){.ec-indiv-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);}.ec-indiv-grid.img-right .ec-indiv-media{order:2;}}
.ec-indiv h2{font-family:'Inter Tight';font-weight:900;font-style:italic;text-transform:uppercase;line-height:.9;letter-spacing:-0.03em;font-size:clamp(2rem,5vw,3.25rem);overflow-wrap:anywhere;}
.ec-indiv p{margin-top:24px;color:rgba(var(--ec-ink-rgb),.7);font-size:1.05rem;line-height:1.7;max-width:520px;}
.ec-indiv-cta{margin-top:32px;}
.ec-indiv-media img{width:100%;height:auto;display:block;border-radius:8px;}
.ec-indiv-media .ec-ph-box{width:100%;aspect-ratio:4/3;border-radius:8px;background:linear-gradient(160deg,rgba(var(--ec-ink-rgb),.09),transparent);display:flex;align-items:center;justify-content:center;color:rgba(var(--ec-ink-rgb),.45);font-size:12px;letter-spacing:.2em;text-transform:uppercase;}

/* ===================== FEATURE COLUMNS (dark 3-col icon + title + desc) ===================== */
.ec-featcols{padding:80px 24px;background:var(--ec-surface);}
@media(min-width:768px){.ec-featcols{padding:96px 40px;}}
.ec-featcols-grid{display:grid;grid-template-columns:1fr;gap:40px;max-width:1280px;margin:0 auto;}
@media(min-width:768px){.ec-featcols-grid{grid-template-columns:repeat(3,minmax(0,1fr));}}
.ec-fc-col{display:flex;gap:20px;align-items:flex-start;}
@media(min-width:768px){.ec-fc-col{padding:0 32px;border-left:1px solid rgba(var(--ec-ink-rgb),.1);}.ec-fc-col:first-child{padding-left:0;border-left:none;}}
.ec-fc-icon{width:64px;height:64px;border-radius:50%;background:linear-gradient(160deg,rgba(var(--ec-ink-rgb),.115),transparent);display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0;}
.ec-fc-icon img{width:100%;height:100%;object-fit:cover;}
.ec-fc-col h3{font-family:'Inter Tight';font-style:italic;font-weight:900;text-transform:uppercase;font-size:1.25rem;letter-spacing:-0.02em;line-height:1.1;}
.ec-fc-col p{margin-top:10px;color:rgba(var(--ec-ink-rgb),.68);font-size:.8rem;line-height:1.6;text-transform:uppercase;letter-spacing:.05em;}

/* ===================== BLOG LIST ===================== */
.ec-blog{padding:80px 24px;background:var(--ec-dark);}
@media(min-width:768px){.ec-blog{padding:96px 40px;}}
.ec-blog-list{display:flex;flex-direction:column;gap:32px;max-width:1152px;margin:0 auto;}
.ec-blog-card{display:grid;grid-template-columns:1fr;background:var(--ec-surface);border:1px solid rgba(var(--ec-ink-rgb),.06);border-radius:10px;overflow:hidden;}
@media(min-width:768px){.ec-blog-card{grid-template-columns:minmax(0,2fr) minmax(0,3fr);}}
.ec-blog-img{position:relative;min-height:240px;background:linear-gradient(160deg,rgba(var(--ec-ink-rgb),.09),transparent);background-size:cover;background-position:center;}
.ec-blog-body{padding:32px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;}
.ec-blog-date{display:inline-block;font-size:11px;font-weight:700;color:var(--ec-teal);border:1px solid rgba(var(--ec-ink-rgb),.15);border-radius:999px;padding:6px 16px;letter-spacing:.05em;}
.ec-blog-card h3{font-family:'Inter Tight';font-style:italic;font-weight:900;text-transform:uppercase;font-size:1.4rem;letter-spacing:-0.02em;margin-top:20px;line-height:1.15;}
.ec-blog-excerpt{margin-top:16px;color:rgba(var(--ec-ink-rgb),.68);font-size:.9rem;line-height:1.7;}
.ec-blog-more{display:inline-flex;align-items:center;gap:12px;margin-top:24px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.2em;color:var(--ec-fg);transition:gap .2s,color .2s;}
.ec-blog-more:hover{color:var(--ec-fg);gap:16px;opacity:.7;}
.ec-blog-arrow{width:36px;height:36px;border-radius:50%;border:1px solid rgba(var(--ec-ink-rgb),.2);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;}
.ec-blog-arrow svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;}

/* ===================== BOOK CLASSES (Book Now page) ===================== */
.ec-book{padding:80px 24px;background:var(--ec-dark);}
@media(min-width:768px){.ec-book{padding:96px 40px;}}
.ec-book-inner{max-width:1152px;margin:0 auto;}
.ec-book h2{font-family:'Inter Tight';font-weight:900;font-style:italic;text-transform:uppercase;letter-spacing:-0.03em;font-size:clamp(1.9rem,5vw,2.75rem);text-align:center;margin-bottom:32px;overflow-wrap:anywhere;}
.ec-book-login{display:flex;justify-content:flex-end;align-items:center;gap:8px;font-size:.85rem;color:rgba(var(--ec-ink-rgb),.66);margin-bottom:20px;}
.ec-book-login a{color:rgba(var(--ec-ink-rgb),.7);transition:color .2s;}
.ec-book-login a:hover{color:var(--ec-fg);}
.ec-book-login svg{width:14px;height:14px;fill:currentColor;}
.ec-book-filters{display:grid;grid-template-columns:1fr;gap:16px;}
@media(min-width:640px){.ec-book-filters{grid-template-columns:minmax(0,1fr) minmax(0,1fr);}}
.ec-book-filter{border:1px solid rgba(var(--ec-ink-rgb),.12);border-radius:6px;padding:12px 18px;display:flex;justify-content:space-between;align-items:center;gap:12px;background:var(--ec-surface);}
.ec-book-filter .ec-bf-txt .lbl{font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:rgba(var(--ec-ink-rgb),.62);display:block;}
.ec-book-filter .ec-bf-txt .val{font-weight:600;margin-top:3px;}
.ec-book-filter .ec-bf-chev{color:rgba(var(--ec-ink-rgb),.62);flex-shrink:0;}
.ec-book-filter .ec-bf-chev svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;}
.ec-book-daterow{display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:space-between;margin:40px 0 8px;}
.ec-book-date-left{display:flex;align-items:center;gap:18px;flex-wrap:wrap;}
.ec-book-current{font-family:'Inter Tight';font-style:italic;font-weight:900;font-size:1.5rem;}
.ec-book-range{font-size:.85rem;color:rgba(var(--ec-ink-rgb),.7);display:inline-flex;align-items:center;gap:6px;}
.ec-book-range svg{width:14px;height:14px;fill:currentColor;opacity:.7;}
.ec-book-legend{display:flex;gap:16px;font-size:11px;color:rgba(var(--ec-ink-rgb),.68);flex-wrap:wrap;}
.ec-book-legend span{display:inline-flex;align-items:center;gap:6px;}
.ec-book .ec-dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex-shrink:0;}
.ec-book .ec-dot.available{background:var(--ec-teal);}
.ec-book .ec-dot.full{background:rgba(var(--ec-ink-rgb),.22);box-shadow:inset 0 0 0 1px rgba(var(--ec-ink-rgb),.45);}
.ec-book .ec-dot.waiting{background:rgba(var(--ec-ink-rgb),.55);}
.ec-bc-day{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:rgba(var(--ec-ink-rgb),.62);font-weight:700;margin:32px 0 14px;}
.ec-bc-card{display:grid;grid-template-columns:1fr;gap:16px;background:var(--ec-surface);border:1px solid rgba(var(--ec-ink-rgb),.08);border-radius:8px;padding:24px;margin-bottom:14px;}
@media(min-width:768px){.ec-bc-card{grid-template-columns:minmax(0,1fr) auto;align-items:center;}}
.ec-bc-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.ec-bc-name{font-weight:700;font-size:1rem;}
.ec-bc-time{color:rgba(var(--ec-ink-rgb),.7);font-size:.9rem;}
.ec-bc-pill{display:inline-block;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:4px 12px;border-radius:999px;margin-top:10px;}
.ec-bc-pill.available{background:var(--ec-accent);color:var(--ec-on-accent);}
.ec-bc-pill.full{background:rgba(var(--ec-ink-rgb),.06);color:rgba(var(--ec-ink-rgb),.66);box-shadow:inset 0 0 0 1px rgba(var(--ec-ink-rgb),.18);}
.ec-bc-pill.waiting{background:rgba(var(--ec-ink-rgb),.1);color:rgba(var(--ec-ink-rgb),.72);}
.ec-bc-meta{margin-top:14px;font-size:.8rem;color:rgba(var(--ec-ink-rgb),.66);line-height:1.8;}
.ec-bc-meta .ec-bc-trainers{color:rgba(var(--ec-ink-rgb),.75);}
.ec-bc-book{display:inline-flex;align-items:center;justify-content:center;padding:12px 32px;border-radius:999px;background:var(--ec-teal);color:var(--ec-dark);font-weight:700;font-size:.8rem;text-transform:uppercase;letter-spacing:.1em;transition:background .2s;white-space:nowrap;}
.ec-bc-book:hover{background:var(--ec-accent-hover);}
.ec-bc-card.is-full .ec-bc-book{background:rgba(var(--ec-ink-rgb),.15);color:rgba(var(--ec-ink-rgb),.66);cursor:not-allowed;}

/* ===================== CLASS HERO (inner page) ===================== */
.ec-clshero{position:relative;min-height:88vh;display:flex;align-items:flex-end;padding:0 24px 72px;overflow:hidden;background:var(--ec-dark);}
@media(min-width:768px){.ec-clshero{padding:0 40px 80px;}}
.ec-clshero .ec-ch-bg{position:absolute;inset:0;z-index:0;background-size:cover;background-position:center;}
.ec-clshero .ec-ch-bg.is-default{background:radial-gradient(ellipse at 60% 20%,rgba(var(--ec-ink-rgb),.085),transparent 70%);}
.ec-clshero .ec-ch-overlay{position:absolute;inset:0;z-index:1;background:linear-gradient(to top,var(--ec-dark),rgba(var(--ec-base-rgb),.35) 55%,rgba(var(--ec-base-rgb),.15)),linear-gradient(to right,rgba(var(--ec-base-rgb),.7),rgba(var(--ec-base-rgb),.1) 60%);}
.ec-clshero .ec-ch-content{position:relative;z-index:2;max-width:1000px;}
.ec-clshero .ec-ch-crumb{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.25em;color:rgba(var(--ec-ink-rgb),.68);margin-bottom:20px;display:inline-block;}
.ec-clshero .ec-ch-crumb a{color:inherit;transition:color .2s;}
.ec-clshero .ec-ch-crumb a:hover{color:var(--ec-fg);}
.ec-clshero h1{font-family:'Inter Tight';font-weight:900;font-style:italic;text-transform:uppercase;line-height:.82;letter-spacing:-0.04em;font-size:clamp(3rem,13vw,9rem);overflow-wrap:anywhere;margin-bottom:24px;}
.ec-clshero h1 .accent{color:var(--ec-teal);}
.ec-clshero .ec-ch-meta{display:flex;flex-wrap:wrap;gap:10px 20px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.2em;color:rgba(var(--ec-ink-rgb),.65);margin-bottom:32px;}
.ec-clshero .ec-ch-meta span{display:inline-flex;align-items:center;gap:20px;}
.ec-clshero .ec-ch-meta .sep{color:var(--ec-teal);}
.ec-clshero .ec-ch-ctas{display:flex;flex-wrap:wrap;gap:16px;}

/* ===================== CLASS PROTOCOL ===================== */
.ec-protocol{padding:80px 24px;background:var(--ec-dark);}
@media(min-width:768px){.ec-protocol{padding:96px 40px;}}
.ec-protocol-grid{display:grid;grid-template-columns:1fr;gap:48px;max-width:1200px;margin:0 auto;align-items:start;}
@media(min-width:900px){.ec-protocol-grid{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);}}
.ec-protocol h2{font-family:'Inter Tight';font-weight:900;font-style:italic;text-transform:uppercase;line-height:.9;letter-spacing:-0.03em;font-size:clamp(1.8rem,4vw,2.6rem);margin-top:20px;overflow-wrap:anywhere;}
.ec-protocol .ec-pr-lead{margin-top:24px;color:rgba(var(--ec-ink-rgb),.7);font-size:1.05rem;line-height:1.7;max-width:560px;}
.ec-protocol-sub{display:grid;grid-template-columns:1fr;gap:32px;margin-top:40px;}
@media(min-width:560px){.ec-protocol-sub{grid-template-columns:minmax(0,1fr) minmax(0,1fr);}}
.ec-pr-sub-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.25em;color:var(--ec-orange);margin-bottom:14px;}
.ec-pr-sub-text{color:rgba(var(--ec-ink-rgb),.7);font-size:.9rem;line-height:1.7;}
.ec-pr-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px;color:rgba(var(--ec-ink-rgb),.7);font-size:.9rem;}
.ec-pr-list li{position:relative;padding-left:16px;}
.ec-pr-list li::before{content:"\00B7";position:absolute;left:2px;color:var(--ec-teal);}
.ec-protocol-card{background:var(--ec-surface);border:1px solid rgba(var(--ec-ink-rgb),.08);border-radius:10px;padding:32px;}
.ec-pc-int-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.25em;color:rgba(var(--ec-ink-rgb),.62);margin-bottom:12px;}
.ec-pc-bars{display:flex;gap:6px;margin-bottom:28px;}
.ec-pc-bars i{flex:1;height:6px;border-radius:3px;background:rgba(var(--ec-ink-rgb),.12);}
.ec-pc-bars i.on{background:var(--ec-teal);}
.ec-pc-stats{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px;margin-bottom:28px;}
.ec-pc-stat .k{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.2em;color:rgba(var(--ec-ink-rgb),.62);}
.ec-pc-stat .v{font-family:'Inter Tight';font-style:italic;font-weight:900;font-size:1.6rem;margin-top:4px;}
.ec-pc-stat .v.is-teal{color:var(--ec-teal);}
.ec-pc-btn{display:flex;align-items:center;justify-content:center;width:100%;padding:16px;border-radius:6px;background:var(--ec-teal);color:var(--ec-dark);font-weight:700;font-size:.8rem;text-transform:uppercase;letter-spacing:.15em;border:none;cursor:pointer;transition:background .2s;}
.ec-pc-btn:hover{background:var(--ec-accent-hover);}
.ec-pc-note{text-align:center;font-size:10px;text-transform:uppercase;letter-spacing:.2em;color:rgba(var(--ec-ink-rgb),.58);margin-top:14px;}

/* ===================== CLASS STATS (Numbers That Show Up) ===================== */
.ec-clstats{padding:80px 24px;background:var(--ec-surface);}
@media(min-width:768px){.ec-clstats{padding:96px 40px;}}
.ec-clstats-inner{max-width:1200px;margin:0 auto;}
.ec-clstats h2{font-family:'Inter Tight';font-weight:900;font-style:italic;text-transform:uppercase;line-height:.9;letter-spacing:-0.03em;font-size:clamp(1.9rem,5vw,3rem);margin:20px 0 48px;overflow-wrap:anywhere;}
.ec-clstats-grid{display:grid;grid-template-columns:1fr;gap:40px;}
@media(min-width:768px){.ec-clstats-grid{grid-template-columns:repeat(3,minmax(0,1fr));}}
.ec-clstat .n{font-family:'Inter Tight';font-style:italic;font-weight:900;font-size:clamp(2.6rem,6vw,3.75rem);line-height:1;}
.ec-clstat .l{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.2em;color:rgba(var(--ec-ink-rgb),.66);margin-top:12px;}

/* ===================== CLASS STEPS (Inside The Session / Why People Stay) ===================== */
.ec-steps{padding:80px 24px;background:var(--ec-dark);}
@media(min-width:768px){.ec-steps{padding:96px 40px;}}
.ec-steps-grid{display:grid;grid-template-columns:1fr;gap:40px;max-width:1200px;margin:0 auto;align-items:start;}
@media(min-width:900px){.ec-steps-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);}}
.ec-steps h2{font-family:'Inter Tight';font-weight:900;font-style:italic;text-transform:uppercase;line-height:.9;letter-spacing:-0.03em;font-size:clamp(2rem,5vw,3.25rem);margin-top:16px;overflow-wrap:anywhere;}
.ec-steps-list{display:flex;flex-direction:column;}
.ec-step{display:grid;grid-template-columns:auto minmax(0,1fr);gap:24px;padding:24px 0;border-top:1px solid rgba(var(--ec-ink-rgb),.1);align-items:baseline;}
.ec-step:last-child{border-bottom:1px solid rgba(var(--ec-ink-rgb),.1);}
.ec-step .num{color:var(--ec-teal);font-family:'Inter Tight';font-style:italic;font-weight:900;font-size:1.5rem;}
.ec-step h3{font-family:'Inter Tight';font-style:italic;font-weight:900;text-transform:uppercase;font-size:1.15rem;letter-spacing:-0.01em;}
.ec-step p{margin-top:8px;color:rgba(var(--ec-ink-rgb),.68);font-size:.9rem;line-height:1.6;}
.ec-step.no-desc h3{font-size:1.05rem;}

/* ===================== COACH ===================== */
.ec-coach{padding:80px 24px;background:var(--ec-dark);}
@media(min-width:768px){.ec-coach{padding:112px 40px;}}
.ec-coach-grid{display:grid;grid-template-columns:1fr;gap:40px;align-items:center;max-width:1100px;margin:0 auto;}
@media(min-width:768px){.ec-coach-grid{grid-template-columns:320px minmax(0,1fr);}}
.ec-coach .ec-coach-img{width:100%;max-width:340px;aspect-ratio:3/4;object-fit:cover;display:block;background:linear-gradient(160deg,rgba(var(--ec-ink-rgb),.115),transparent);background-size:cover;background-position:center;border-radius:8px;}
.ec-coach .ec-coach-ph{display:flex;align-items:center;justify-content:center;color:rgba(var(--ec-ink-rgb),.45);font-size:12px;letter-spacing:.2em;text-transform:uppercase;}
.ec-coach h2{font-family:'Inter Tight';font-weight:900;font-style:italic;text-transform:uppercase;line-height:.9;letter-spacing:-0.02em;font-size:clamp(2.25rem,6vw,3.5rem);margin-top:12px;overflow-wrap:anywhere;}
.ec-coach .ec-coach-role{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.2em;color:var(--ec-teal);margin-top:8px;}
.ec-coach .ec-coach-bio{margin-top:24px;color:rgba(var(--ec-ink-rgb),.7);font-size:1rem;line-height:1.7;max-width:520px;}
.ec-coach-stats{display:flex;flex-wrap:wrap;gap:40px;margin-top:32px;}
.ec-coach-stat .n{font-family:'Inter Tight';font-style:italic;font-weight:900;font-size:1.6rem;}
.ec-coach-stat .l{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.2em;color:rgba(var(--ec-ink-rgb),.64);margin-top:4px;}

/* ===================== WEEK SCHEDULE (This Week mini) ===================== */
.ec-week{padding:80px 24px;background:var(--ec-surface);}
@media(min-width:768px){.ec-week{padding:96px 40px;}}
.ec-week-inner{max-width:1000px;margin:0 auto;}
.ec-week-head{display:flex;flex-wrap:wrap;gap:12px;align-items:baseline;justify-content:space-between;margin-bottom:32px;}
.ec-week-head h2{font-family:'Inter Tight';font-weight:900;font-style:italic;text-transform:uppercase;letter-spacing:-0.02em;font-size:clamp(1.6rem,4vw,2.25rem);}
.ec-week-all{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.2em;color:var(--ec-teal);}
.ec-week-all:hover{color:var(--ec-fg);opacity:.65;}
.ec-week-row{display:grid;grid-template-columns:1fr;gap:8px 24px;padding:18px 0;border-top:1px solid rgba(var(--ec-ink-rgb),.1);align-items:center;}
.ec-week-row:last-child{border-bottom:1px solid rgba(var(--ec-ink-rgb),.1);}
@media(min-width:640px){.ec-week-row{grid-template-columns:80px 100px minmax(0,1fr) auto;}}
.ec-week-day{font-family:'Inter Tight';font-style:italic;font-weight:900;font-size:.95rem;text-transform:uppercase;}
.ec-week-time{font-weight:700;font-size:.95rem;}
.ec-week-spots{font-size:.85rem;color:rgba(var(--ec-ink-rgb),.66);text-transform:uppercase;letter-spacing:.05em;}
.ec-week-btn{display:inline-flex;align-items:center;justify-content:center;padding:9px 26px;border-radius:4px;border:1px solid var(--ec-teal);color:var(--ec-teal);font-weight:700;font-size:.7rem;text-transform:uppercase;letter-spacing:.15em;transition:background .2s,color .2s;justify-self:start;}
.ec-week-btn:hover{background:var(--ec-accent);color:var(--ec-on-accent);}
@media(min-width:640px){.ec-week-btn{justify-self:end;}}

/* ===================== WHY PEOPLE STAY (edge list — single-line italic) ===================== */
.ec-edge{padding:80px 24px;background:var(--ec-dark);}
@media(min-width:768px){.ec-edge{padding:96px 40px;}}
.ec-edge-grid{display:grid;grid-template-columns:1fr;gap:40px;max-width:1200px;margin:0 auto;align-items:start;}
@media(min-width:900px){.ec-edge-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);}}
.ec-edge h2{font-family:'Inter Tight';font-weight:900;font-style:italic;text-transform:uppercase;line-height:.9;letter-spacing:-0.03em;font-size:clamp(2rem,5vw,3.25rem);margin-top:16px;overflow-wrap:anywhere;}
.ec-edge-list{display:flex;flex-direction:column;}
.ec-edge-row{display:grid;grid-template-columns:auto minmax(0,1fr);gap:24px;padding:20px 0;border-top:1px solid rgba(var(--ec-ink-rgb),.1);align-items:baseline;}
.ec-edge-row:last-child{border-bottom:1px solid rgba(var(--ec-ink-rgb),.1);}
.ec-edge-row .num{color:var(--ec-teal);font-family:'Inter Tight';font-style:italic;font-weight:900;font-size:1.25rem;}
.ec-edge-row .txt{font-family:'Inter Tight';font-style:italic;font-weight:600;font-size:1.15rem;line-height:1.4;color:rgba(var(--ec-ink-rgb),.92);}

/* ============================================================================
   RESPONSIVE LAYER
   Breakpoints:  <=479 small phone | <=767 phone | 768-1023 tablet | 1024+ desktop
   Goals: zero horizontal overflow, no stray hairlines, overlays that never
          spill out of their own box, and comfortable touch targets.
   ============================================================================ */

/* ---------------------------------------------------------------------------
   0. OVERFLOW CONTAINMENT  (this is what produced the stray white line /
      white strip on the right edge: any child wider than the viewport makes
      the page horizontally scrollable, and the page background shows through
      as a band next to the black sections.)
   --------------------------------------------------------------------------- */
.ec{max-width:100%;}
.ec > *{max-width:100%;}
/* every grid/flex child gets min-width:0 so long words + tables can shrink */
.ec [class*="-grid"] > *,
.ec [class*="-list"] > *,
.ec [class*="-row"] > *,
.ec [class*="-inner"] > *{min-width:0;}
/* scroll wrappers must never widen their parent */
.ec .ec-table-scroll{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;}
/* absolutely-positioned overlays: pin to all four edges, never overflow */
.ec .ec-hero-overlay,.ec .ec-mh-overlay,.ec .ec-ch-overlay,.ec .ec-pb-overlay,
.ec .ec-hero-bg,.ec .ec-mh-bg,.ec .ec-ch-bg,.ec .ec-pb-bg,
.ec .ec-travel-bg,.ec .ec-card-img,.ec .ec-card-scrim,.ec .ec-card-fallback{
  inset:0;width:100%;height:100%;max-width:100%;
}
/* sections that host an absolute overlay must clip it */
.ec-hero,.ec-media-hero,.ec-clshero,.ec-page-banner,.ec-travel,
.ec-facility,.ec-class-card,.ec-retreat .ec-retreat-img{overflow:hidden;}

/* ---------------------------------------------------------------------------
   1. VIEWPORT-HEIGHT HEROES
      100vh on mobile = 100% of the *largest* viewport, so the browser's
      URL bar pushes content out of view and creates a scroll jump.
      svh/dvh fix it; the vh line stays as the fallback.
   --------------------------------------------------------------------------- */
.ec-hero{min-height:100vh;}
.ec-media-hero{min-height:80vh;}
.ec-clshero{min-height:88vh;}
@supports (height:100svh){
  .ec-hero{min-height:100svh;}
  .ec-media-hero{min-height:80svh;}
  .ec-clshero{min-height:88svh;}
}

/* ---------------------------------------------------------------------------
   2. TABLET  (768 - 1023)
      The 12-column grids carry 48px gaps here, which starves the tracks.
   --------------------------------------------------------------------------- */
@media (min-width:768px) and (max-width:1023px){
  .ec-nav .ec-nav-right .ec-btn-join{display:none;}   /* Join lives in drawer */

  .ec-prog-cta-grid,.ec-faq-grid,.ec-plan-grid,
  .ec-allin-grid,.ec-mediacopy-grid,.ec-grid{column-gap:28px;}

  .ec-coach-grid{grid-template-columns:260px minmax(0,1fr);gap:32px;}
  .ec-blog-card{grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);}
  .ec-fc-col{padding:0 20px;}
  .ec-stat .ec-stat-num{font-size:3.25rem;}
  .ec-footer-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:40px;}
}

/* ---------------------------------------------------------------------------
   3. PHONE  (<= 767)
   --------------------------------------------------------------------------- */
@media (max-width:767px){

  .ec,.ec *{box-sizing:border-box;}
  .ec img,.ec video,.ec iframe,.ec svg{max-width:100%;}
  .ec table{max-width:none;}

  /* ---- consistent 20px gutter on every section ---- */
  .ec-hero,.ec-media-hero,.ec-clshero,
  .ec-section,.ec-travel,
  .ec-page-head,.ec-page-banner,.ec-prog-head,.ec-prog-cta,
  .ec-goals,.ec-sched,.ec-plan,.ec-pricing,.ec-compare,.ec-bolt,.ec-faq,
  .ec-allin,.ec-retreats,.ec-timeline,.ec-image-band,.ec-stats,.ec-textcols,
  .ec-rules,.ec-mediacopy,.ec-cta,.ec-news,.ec-footer,
  .ec-coming,.ec-mvg,.ec-indiv,.ec-featcols,.ec-blog,.ec-book,
  .ec-protocol,.ec-clstats,.ec-steps,.ec-edge,.ec-coach,.ec-week{
    padding-left:20px !important;padding-right:20px !important;
  }
  .ec-nav .ec-nav-inner,.ec-nav .ec-mobile-menu,
  .ec-topbar .ec-tb-inner,.ec-facility .ec-facility-caption{
    padding-left:20px !important;padding-right:20px !important;
  }

  /* ---- vertical rhythm: phones shouldn't be 90% whitespace ---- */
  .ec-hero{padding-bottom:104px;}          /* clears the ticker, see §3.3 */
  .ec-media-hero,.ec-clshero{padding-bottom:56px;}
  .ec-section{padding-top:72px;padding-bottom:72px;}
  .ec-travel{padding-top:88px;padding-bottom:88px;}
  .ec-page-head,.ec-prog-head{padding-top:104px;padding-bottom:48px;}
  .ec-pricing,.ec-cta,.ec-prog-cta,.ec-coach,.ec-faq{padding-top:64px;padding-bottom:64px;}
  .ec-blog,.ec-book,.ec-protocol,.ec-clstats,.ec-steps,.ec-edge,.ec-week,
  .ec-coming,.ec-mvg,.ec-indiv,.ec-featcols,.ec-retreats,.ec-plan,.ec-compare,
  .ec-bolt,.ec-stats,.ec-textcols,.ec-rules,.ec-mediacopy,.ec-timeline,
  .ec-image-band,.ec-allin,.ec-news,.ec-goals,.ec-sched{
    padding-top:56px;padding-bottom:56px;
  }

  /* ---- 3.1 TYPE: long words never clip, tracking loosens off ---- */
  .ec h1,.ec h2,.ec h3,.ec h4,.ec p,.ec li,.ec blockquote,.ec td,.ec th{
    overflow-wrap:anywhere;word-break:break-word;
  }
  .ec .ec-eyebrow{letter-spacing:.18em;font-size:11px;margin-bottom:16px;
    max-width:100%;overflow-wrap:anywhere;}
  .ec .ec-lead{font-size:1rem;margin-bottom:32px;}
  .ec .ec-title{margin:16px 0 24px;}

  /* ---- 3.2 BUTTONS: full width, thumb-friendly, never side-by-side-cramped */
  .ec .ec-btn,.ec-plan-card .ec-plan-cta,.ec-pc-btn,
  .ec-prog-cta .ec-btn-build,.ec-cta .ec-btn-dark{
    width:100%;padding:17px 24px;min-height:52px;letter-spacing:.14em;
  }
  .ec-hero .ec-hero-ctas,.ec-clshero .ec-ch-ctas,.ec-coming-actions{
    flex-direction:column;align-items:stretch;gap:12px;width:100%;
  }
  .ec-bc-book,.ec-week-btn{width:100%;min-height:48px;}
  .ec-nav .ec-nav-toggle{width:44px;height:44px;}   /* 44px tap target */
  .ec-news-form button{min-height:50px;}

  /* ---- 3.3 HERO TICKER: was a floating hairline strip mid-air. Now a solid
       flush-bottom bar, so no orphan white line across the artwork. ---- */
  .ec-hero .ec-ticker{
    bottom:0;left:0;right:0;width:100%;
    padding:11px 0;background:rgba(var(--ec-base-rgb),.8);
    border-top:1px solid var(--ec-line-soft);border-bottom:none;
    backdrop-filter:blur(6px);
  }
  .ec-hero .ec-ticker-track{font-size:10px;letter-spacing:.22em;gap:32px;}
  .ec-hero h1{margin-bottom:24px;}
  .ec-hero p{font-size:1rem;margin-bottom:28px;}
  .ec-hero .ec-stroke{border-bottom-width:3px;padding-bottom:6px;}

  /* ---- 3.4 TOP BAR: 3 flex groups crushed into 320px. Center + wrap. ---- */
  .ec-topbar{font-size:11px;}
  .ec-topbar .ec-tb-inner{
    justify-content:center;row-gap:6px;column-gap:14px;padding-top:9px;padding-bottom:9px;
  }
  .ec-topbar .ec-tb-left,.ec-topbar .ec-tb-center,.ec-topbar .ec-tb-right{
    flex-wrap:wrap;justify-content:center;gap:10px;
  }

  /* ---- 3.5 NAV ---- */
  .ec-nav .ec-nav-right .ec-btn-join{display:none;}
  .ec-nav .ec-nav-inner{padding-top:16px;padding-bottom:16px;gap:12px;}
  .ec-nav .ec-logo{font-size:19px;}
  .ec-nav .ec-mobile-menu{max-height:calc(100svh - 72px);overflow-y:auto;}

  /* ---- 3.6 FACILITY: the caption was absolutely positioned over a 60vh
       image; long headings escaped the image box. On phones it flows
       underneath instead, so nothing overlaps or gets cut. ---- */
  .ec-facility .ec-facility-img{height:46vh;min-height:280px;}
  .ec-facility .ec-facility-caption{
    position:static;padding-top:28px !important;padding-bottom:40px !important;
    background:var(--ec-dark);
  }
  .ec-facility h2{font-size:clamp(1.75rem,8vw,2.5rem);margin-top:12px;}

  /* ---- 3.7 STATS: 2 columns × 3rem numerals overflowed a 320px screen ---- */
  .ec-stats-grid{gap:28px 20px;}
  .ec-stat{padding-left:16px;border-left-width:2px;}
  .ec-stat .ec-stat-num{font-size:clamp(1.75rem,9vw,2.5rem);}
  .ec-stat .ec-stat-label{font-size:9px;letter-spacing:.16em;}
  .ec-clstats-grid{gap:32px;}
  .ec-clstat .n{font-size:clamp(2rem,10vw,2.75rem);}
  .ec-pc-stats{gap:18px;}
  .ec-pc-stat .v{font-size:1.35rem;}
  .ec-coach-stats{gap:24px 32px;}

  /* ---- 3.8 TIMELINE (the 12-col/24px-gap row) ---- */
  .ec-timeline .ec-tl-row{gap:6px 14px;padding:18px 0;}
  .ec-tl-left{font-size:1.15rem;}
  .ec-tl-body h3{font-size:1.05rem;}
  .ec-tl-body p{font-size:.9rem;}

  /* ---- 3.9 TABLES: keep the horizontal scroll INSIDE the gutter and give
       an affordance that it scrolls ---- */
  .ec-sched .ec-table-scroll,.ec-compare .ec-table-scroll{
    margin-left:-20px;margin-right:-20px;padding-left:20px;padding-right:20px;
  }
  .ec-sched table{min-width:640px;}
  .ec-compare table{min-width:560px;}
  .ec-compare th{font-size:1rem;padding-right:16px;}
  .ec-compare td,.ec-sched td{font-size:.82rem;padding-right:16px;}
  .ec-sched .ec-time-cell{font-size:1.05rem;}

  /* ---- 3.10 IMAGE BAND: 60vh on a phone is a tall thin crop ---- */
  .ec-image-band .ec-ib-media{height:auto;aspect-ratio:4/3;min-height:220px;}

  /* ---- 3.11 CARDS: comfortable inner padding ---- */
  .ec-plan-card{padding:32px 22px;}
  .ec-bolt-card,.ec-protocol-card,.ec-blog-body,.ec-mvg-card,.ec-bc-card{padding:26px 20px;}
  .ec-class-card{padding:20px;aspect-ratio:4/5;}
  .ec-class-card h3{font-size:1.5rem;}
  .ec-mvg-card{padding:32px 22px;}
  .ec-mvg-icon{width:68px;height:68px;margin-bottom:18px;}
  .ec-fc-icon{width:52px;height:52px;}
  .ec-fc-col{gap:16px;}
  .ec-blog-img{min-height:190px;}
  .ec-blog-card h3{font-size:1.2rem;}

  /* ---- 3.12 PRICING: featured badge sat half-off the card top edge ---- */
  .ec-plan-card.featured{margin-top:14px;}
  .ec-plan-card .ec-badge{font-size:9px;letter-spacing:.18em;padding:4px 12px;
    max-width:calc(100% - 24px);text-align:center;}
  .ec-plan-card .ec-plan-price .amount{font-size:2.75rem;}
  .ec-plan-card .ec-plan-name{font-size:1.6rem;}

  /* ---- 3.13 PAGE BANNER: title chip could exceed the frame ---- */
  .ec-page-banner{min-height:220px;padding-top:40px;padding-bottom:40px;}
  .ec-page-banner .ec-pb-title{
    padding:10px 18px;max-width:100%;font-size:clamp(1.5rem,7.5vw,2.25rem);
  }

  /* ---- 3.14 FAQ / accordions ---- */
  .ec-faq-item summary{padding:24px 0;gap:12px;}
  .ec-faq-label{gap:14px;}
  .ec-faq-q{font-size:1.05rem;}
  .ec-faq-answer{padding-left:0;padding-bottom:24px;font-size:.9rem;}

  /* ---- 3.15 CLASS HERO meta chips ---- */
  .ec-clshero .ec-ch-meta{gap:8px 12px;font-size:9px;letter-spacing:.16em;}
  .ec-clshero .ec-ch-meta span{flex-wrap:wrap;gap:8px 12px;}
  .ec-clshero h1{font-size:clamp(2.5rem,13vw,4.5rem);}

  /* ---- 3.16 BOOKING widget ---- */
  .ec-book-daterow{margin-top:28px;gap:12px;}
  .ec-book-login{justify-content:flex-start;}
  .ec-book-legend{gap:10px 14px;font-size:10px;}
  .ec-bc-head{gap:8px;}
  .ec-book-current{font-size:1.25rem;}

  /* ---- 3.17 WEEK / SCHEDULE rows ---- */
  .ec-week-row{gap:6px;padding:16px 0;}
  .ec-week-head{margin-bottom:24px;}

  /* ---- 3.18 FORMS: 16px min font-size stops iOS auto-zoom on focus ---- */
  .ec input,.ec select,.ec textarea{font-size:16px !important;}
  .ec-cta .ec-field,.ec-prog-cta .ec-field{margin-bottom:20px;}
  .ec-news-form{gap:14px;}

  /* ---- 3.19 misc spacing ---- */
  .ec-footer-grid{gap:36px;margin-bottom:44px;}
  .ec-footer .ec-copyright{padding-top:32px;font-size:9px;letter-spacing:.18em;}
  .ec-section-head{gap:20px;margin-bottom:36px;}
  .ec-pillar{gap:20px;padding:28px 0;}
  .ec-pillar .n{width:34px;font-size:1.5rem;}
  .ec-pillar h3{font-size:1.3rem;}
  .ec-retreats-cta{margin-top:40px;}
  .ec-testi{padding-top:24px;}
  .ec-testi blockquote{font-size:1.12rem;}
  .ec-step{gap:16px;padding:20px 0;}
  .ec-edge-row{gap:16px;padding:16px 0;}
  .ec-edge-row .txt{font-size:1.02rem;}
  .ec-num-row{gap:16px;}
}

/* ---------------------------------------------------------------------------
   4. SMALL PHONE  (<= 479)  — 320-400px devices
   --------------------------------------------------------------------------- */
@media (max-width:479px){
  .ec-stats-grid{grid-template-columns:minmax(0,1fr);gap:24px;}
  .ec-stat .ec-stat-num{font-size:2.5rem;}
  .ec-pc-stats{grid-template-columns:minmax(0,1fr);}
  .ec-protocol-sub{grid-template-columns:minmax(0,1fr);gap:24px;}
  .ec-coach-stats{gap:20px 24px;}
  .ec-coach-stat .n{font-size:1.4rem;}
  .ec-book-filters{gap:12px;}
  .ec-topbar .ec-tb-inner{font-size:10px;}
  .ec-plan-card .ec-plan-price .amount{font-size:2.4rem;}
  .ec-class-card h3{font-size:1.35rem;}
  .ec-hero .ec-ticker-track{gap:24px;letter-spacing:.18em;}
  .ec-tl-row{grid-template-columns:minmax(0,1fr);gap:4px;}
  .ec-facility .ec-facility-img{height:38vh;min-height:230px;}
}

/* ---------------------------------------------------------------------------
   5. ACCESSIBILITY / QUALITY FLOOR
   --------------------------------------------------------------------------- */
.ec a:focus-visible,.ec button:focus-visible,
.ec input:focus-visible,.ec summary:focus-visible{
  outline:2px solid var(--ec-fg);outline-offset:3px;border-radius:2px;
}
@media (prefers-reduced-motion:reduce){
  .ec *,.ec *::before,.ec *::after{
    animation-duration:.01ms !important;animation-iteration-count:1 !important;
    transition-duration:.01ms !important;scroll-behavior:auto !important;
  }
  .ec-hero .ec-ticker-track{animation:none;}
}

/* ---------------------------------------------------------------------------
   6. SPECIFICITY REPAIR
      `.ec a{color:inherit}` has specificity 0,1,1 and therefore outranks any
      single-class component rule (0,1,0). Every anchor-based button below was
      silently inheriting white text — invisible once the palette went white.
      Re-asserted at 0,2,0 so the component wins.
   --------------------------------------------------------------------------- */
.ec .ec-bc-book{color:var(--ec-dark);}
.ec .ec-bc-card.is-full .ec-bc-book{color:rgba(var(--ec-ink-rgb),.66);}
.ec .ec-week-btn{color:var(--ec-accent);}
.ec .ec-week-btn:hover{color:var(--ec-dark);}
.ec .ec-week-all{color:var(--ec-accent);}
.ec .ec-view-all{color:rgba(var(--ec-ink-rgb),.72);}
.ec .ec-blog-more{color:var(--ec-fg);}
.ec .ec-retreat .ec-retreat-date{color:var(--ec-accent);}
.ec .ec-class-card .enter{color:var(--ec-accent);}

/* ---------------------------------------------------------------------------
   7. LEGIBILITY: micro-labels were rgba(var(--ec-ink-rgb),.4) — under 4.5:1 at
      9-12px. Lifted to .58 so small uppercase data stays readable on phones.
   --------------------------------------------------------------------------- */
.ec .ec-plan-card .ec-plan-price .unit,
.ec .ec-bc-day,
.ec .ec-book-filter .ec-bf-txt .lbl,
.ec .ec-book-filter .ec-bf-chev,
.ec .ec-sched th,
.ec .ec-retreat .ec-retreat-len,
.ec .ec-pc-int-label,
.ec .ec-pc-stat .k,
.ec .ec-footer-grid h4{color:rgba(var(--ec-ink-rgb),.68);}

/* The featured pricing card is a WHITE card, so it must re-win the micro-label
   colour from rule §7 above (which assumes a black background). */
.ec .ec-plan-card.featured .ec-plan-price .unit{color:rgba(var(--ec-base-rgb),.7);}
.ec .ec-plan-card.featured .ec-plan-desc{color:rgba(var(--ec-base-rgb),.72);}
.ec .ec-plan-card.featured .ec-plan-feats .dot{color:rgba(var(--ec-base-rgb),.8);}


/* ---------------------------------------------------------------------------
   8. LIGHT-THEME SPECIFICITY REPAIR
      Same 0,1,1 vs 0,1,0 trap as §6: these are <a> elements, so
      `.ec a{color:inherit}` beat their own colour rule and they inherited
      black text onto a black button.
   --------------------------------------------------------------------------- */
.ec .ec-pc-btn{color:var(--ec-on-accent);}
.ec .ec-pc-btn:hover{color:var(--ec-on-accent);}
.ec .ec-bc-book{color:var(--ec-on-accent);}
.ec .ec-btn-primary{color:var(--ec-on-accent);}
.ec .ec-nav .ec-btn-join{color:var(--ec-on-accent);}
.ec .ec-plan-card .ec-plan-cta{color:var(--ec-on-accent);}
.ec .ec-plan-card.featured .ec-plan-cta{color:var(--ec-fg);}
.ec .ec-bc-pill.available{color:var(--ec-on-accent);}
.ec .ec-topbar a{color:inherit;}

/* placeholder captions must stay readable in the Elementor editor */
.ec .ec-recovery-img,.ec .ec-mc-ph,.ec .ec-coach-ph,.ec .ec-ib-ph,
.ec .ec-ph-box,.ec .ec-card-fallback{color:rgba(var(--ec-ink-rgb),.66);}
.ec .ec-footer .ec-copyright{color:rgba(var(--ec-ink-rgb),.62);}

/* ===========================================================================
   9. SECTION COLOR SCHEMES
   Driven by the per-widget "Section Color Scheme" dropdown, which puts an
   .ec-scheme-* class on the Elementor widget wrapper. Because every colour
   in this file resolves to --ec-ink-rgb / --ec-base-rgb plus a handful of
   named tokens, a scheme only has to redefine those.
   Selectors cover both the wrapper (ancestor) and the .ec root itself.
   =========================================================================== */

/* ---- White & Black — white background, black text (default) ---- */
.ec-scheme-white .ec,.ec.ec-scheme-white{
  --ec-ink-rgb:0,0,0; --ec-base-rgb:255,255,255;
  --ec-dark:#ffffff; --ec-surface:#ffffff; --ec-elevated:#f2f2f2;
  --ec-fg:#000000; --ec-accent:#000000; --ec-accent-2:#000000;
  --ec-accent-hover:#333333; --ec-on-accent:#ffffff;
}

/* ---- Light Grey & Black — light grey background, black text ---- */
.ec-scheme-lightgrey .ec,.ec.ec-scheme-lightgrey{
  --ec-ink-rgb:0,0,0; --ec-base-rgb:255,255,255;
  --ec-dark:#f2f2f2; --ec-surface:#e9e9e9; --ec-elevated:#e0e0e0;
  --ec-fg:#000000; --ec-accent:#000000; --ec-accent-2:#000000;
  --ec-accent-hover:#333333; --ec-on-accent:#ffffff;
}

/* ---- Black & White — black background, white text ---- */
.ec-scheme-black .ec,.ec.ec-scheme-black{
  --ec-ink-rgb:255,255,255; --ec-base-rgb:0,0,0;
  --ec-dark:#000000; --ec-surface:#000000; --ec-elevated:#141414;
  --ec-fg:#ffffff; --ec-accent:#ffffff; --ec-accent-2:#ffffff;
  --ec-accent-hover:#cccccc; --ec-on-accent:#000000;
}

/* ---- Charcoal & White — dark grey background, white text ---- */
.ec-scheme-charcoal .ec,.ec.ec-scheme-charcoal{
  --ec-ink-rgb:255,255,255; --ec-base-rgb:0,0,0;
  --ec-dark:#1c1c1c; --ec-surface:#232323; --ec-elevated:#2b2b2b;
  --ec-fg:#ffffff; --ec-accent:#ffffff; --ec-accent-2:#ffffff;
  --ec-accent-hover:#cccccc; --ec-on-accent:#000000;
}
