/* Broad Recovery, house style v2, Kit: navy/mint premium service */

:root{
  --ticker-h:52px;
  --ink:#0a1615;
  --ink-2:#0f201e;
  --card:#132725;
  --paper:#f5f6f4;
  --white:#ffffff;
  --mint:#4fe3b0;
  --mint-dim:#3bb98f;
  --text-dark:#0a1615;
  --text-light:#eef7f3;
  --muted-dark:rgba(10,22,21,.62);
  --muted-light:rgba(238,247,243,.68);
  --line-dark:rgba(10,22,21,.12);
  --line-light:rgba(238,247,243,.14);
  --radius-lg:26px;
  --radius-md:18px;
  --radius-sm:12px;
  --container:1240px;
  --ease:cubic-bezier(.22,.7,.2,1);
}

*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:'Inter Tight',sans-serif;
  background:var(--paper);
  color:var(--text-dark);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
ul{list-style:none;}
button{font-family:inherit;border:none;background:none;cursor:pointer;}

h1,h2,h3,h4{
  font-family:'Space Grotesk',sans-serif;
  font-weight:700;
  line-height:1.04;
  letter-spacing:-.03em;
}
em{color:var(--mint);font-style:normal;}

.container{
  max-width:var(--container);
  margin:0 auto;
  padding-left:clamp(20px,5vw,64px);
  padding-right:clamp(20px,5vw,64px);
}

section{padding:104px 0;}
@media (max-width:720px){section{padding:84px 0;}}

.bg-dark{background:var(--ink);color:var(--text-light);}
.bg-dark .muted{color:var(--muted-light);}
.bg-dark h1,.bg-dark h2,.bg-dark h3{color:var(--text-light);}
.bg-paper{background:var(--paper);color:var(--text-dark);}
.bg-paper .muted{color:var(--muted-dark);}
.bg-white{background:var(--white);color:var(--text-dark);}
.bg-white .muted{color:var(--muted-dark);}
.bg-mint{background:var(--mint);color:var(--ink);}
.bg-mint h1,.bg-mint h2,.bg-mint h3{color:var(--ink);}

.muted{color:var(--muted-dark);}

.eyebrow{
  font-family:'Space Grotesk',sans-serif;
  text-transform:uppercase;
  font-size:.8rem;
  letter-spacing:.2em;
  color:var(--mint-dim);
  margin-bottom:14px;
  display:inline-block;
}
.bg-dark .eyebrow,.bg-mint .eyebrow{color:var(--ink);}
.bg-dark .eyebrow{color:var(--mint);}

.lead{
  font-size:1.1rem;
  max-width:56ch;
  color:var(--muted-dark);
  margin-top:16px;
}
.bg-dark .lead{color:var(--muted-light);}

/* skip link */
.skip-link{
  position:absolute;left:-999px;top:0;background:var(--mint);color:var(--ink);
  padding:10px 16px;border-radius:8px;z-index:999;
}
.skip-link:focus{left:16px;top:16px;}

:focus-visible{outline:2px solid var(--mint);outline-offset:3px;}
.bg-dark :focus-visible,.bg-mint :focus-visible{outline-color:var(--white);}

/* header */
header{
  position:fixed;top:0;left:0;right:0;z-index:100;
  background:rgba(10,22,21,.86);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line-light);
}
.header-inner{
  display:flex;align-items:center;justify-content:space-between;
  padding-top:16px;padding-bottom:16px;
}
.logo{
  display:inline-flex;align-items:center;gap:10px;
  font-family:'Space Grotesk',sans-serif;
  font-weight:700;
  font-size:1.25rem;
  color:var(--text-light);
  letter-spacing:-.02em;
}
.logo em{color:var(--mint);}
.logo-mark{border-radius:8px;display:block;}
nav.primary-nav{display:flex;gap:32px;}
nav.primary-nav a{
  font-family:'Space Grotesk',sans-serif;
  font-size:.92rem;
  color:var(--text-light);
  letter-spacing:-.01em;
  transition:color .2s var(--ease);
}
nav.primary-nav a:hover{color:var(--mint);}

.header-actions{display:flex;align-items:center;gap:18px;}

.btn{
  display:inline-flex;align-items:center;gap:8px;
  font-family:'Space Grotesk',sans-serif;
  font-size:.92rem;
  font-weight:600;
  letter-spacing:-.01em;
  padding:13px 26px;
  border-radius:999px;
  transition:transform .2s var(--ease), background .2s var(--ease), color .2s var(--ease);
}
.btn-primary{background:var(--mint);color:var(--ink);}
.btn-primary:hover{transform:translateY(-2px);background:var(--mint-dim);}
.btn-ghost{border:1px solid var(--line-light);color:var(--text-light);}
.btn-ghost:hover{border-color:var(--mint);color:var(--mint);}
.bg-paper .btn-ghost,.bg-white .btn-ghost{border:1px solid var(--line-dark);color:var(--text-dark);}
.bg-paper .btn-ghost:hover,.bg-white .btn-ghost:hover{border-color:var(--mint-dim);color:var(--mint-dim);}

.menu-toggle{
  display:none;flex-direction:column;gap:5px;width:28px;
}
.menu-toggle span{height:2px;background:var(--text-light);border-radius:2px;transition:.2s var(--ease);}

@media (max-width:900px){
  nav.primary-nav{
    position:fixed;left:0;right:0;top:72px;height:calc(100vh - 72px);background:var(--ink);
    flex-direction:column;align-items:center;justify-content:center;
    gap:28px;transform:translateY(-120vh);transition:transform .3s var(--ease);
  }
  nav.primary-nav.open{transform:translateY(0);}
  nav.primary-nav a{font-size:1.4rem;}
  .header-actions .btn-ghost{display:none;}
  .menu-toggle{display:flex;}
}

.btn-label-short{display:none;}

@media (max-width:480px){
  .logo{font-size:1.05rem;gap:8px;}
  .logo-mark{width:28px;height:28px;}
  .logo span{white-space:nowrap;}
  .header-actions{gap:10px;}
  .header-actions .btn-primary{padding:10px 14px;font-size:.78rem;white-space:nowrap;}
  .btn-label-full{display:none;}
  .btn-label-short{display:inline;}
  .menu-toggle{width:24px;}
}

@media (max-width:360px){
  .logo{font-size:.92rem;gap:6px;}
  .logo-mark{width:24px;height:24px;}
}

/* hero */
.hero{
  --mx:80%;--my:0%;
  position:relative;overflow:hidden;
  min-height:calc(100vh - var(--ticker-h));
  box-sizing:border-box;
  display:flex;align-items:center;
  padding-top:168px;padding-bottom:48px;
  background:var(--ink);
  color:var(--text-light);
}
.hero::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(600px circle at var(--mx) var(--my), rgba(79,227,176,.22), transparent 60%);
  transition:background .25s var(--ease);
}
@media (max-width:900px){.hero::before{transition:none;}}
.hero > .container{width:100%;position:relative;z-index:1;}
@media (max-width:900px){.hero{min-height:none;}}
.hero-grid{display:grid;grid-template-columns:.95fr 1.05fr;gap:56px;align-items:center;}
@media (max-width:900px){.hero-grid{grid-template-columns:1fr;gap:40px;}}
.hero h1{font-size:clamp(2.4rem,4.4vw,3.9rem);}
.hero-ctas{display:flex;gap:14px;margin-top:34px;flex-wrap:wrap;}
.hero-credentials{margin-top:28px;}
.hero-photo{
  aspect-ratio:4/5;border-radius:var(--radius-lg);
  background:linear-gradient(160deg,var(--card),var(--ink-2));
  display:flex;align-items:center;justify-content:center;
  border:1px solid var(--line-light);
  overflow:hidden;
}
.hero-photo img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease);}
.hero-photo:hover img{transform:scale(1.06);}

/* ticker */
.ticker-wrap{
  height:var(--ticker-h);display:flex;align-items:center;
  background:var(--mint);color:var(--ink);
  overflow:hidden;white-space:nowrap;
  border-top:1px solid rgba(10,22,21,.08);
  border-bottom:1px solid rgba(10,22,21,.08);
}
.ticker{
  display:inline-flex;padding:14px 0;
  animation:scroll 26s linear infinite;
  font-family:'Space Grotesk',sans-serif;
  font-size:.92rem;letter-spacing:.02em;font-weight:600;
}
.ticker span{display:inline-flex;align-items:center;white-space:nowrap;}
@keyframes scroll{from{transform:translateX(0);}to{transform:translateX(-50%);}}
@media (prefers-reduced-motion:reduce){.ticker{animation:none;}}

/* generic section head */
.section-head{max-width:640px;margin-bottom:56px;}
.section-head.center{margin-left:auto;margin-right:auto;text-align:center;}
h2{font-size:clamp(2.2rem,4vw,3.6rem);}

/* about split */
.split{display:grid;grid-template-columns:.9fr 1.1fr;gap:64px;align-items:center;}
@media (max-width:900px){.split{grid-template-columns:1fr;gap:36px;}}
.split-photo{
  aspect-ratio:4/5;border-radius:var(--radius-lg);overflow:hidden;
  background:linear-gradient(160deg,#dfe7e3,#c7d4ce);
}
.split-photo img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease);}
.split-photo:hover img{transform:scale(1.06);}

/* card hover-lift pattern: the outer element (.card/.principle/.feature/.step)
   is the stable hover hit-box and never transforms, so a cursor sitting right
   on its edge can't flicker in and out. Only .card-face (the visible box)
   lifts, so the visual motion never shifts the boundary the browser is
   hover-testing against. */
.card-face{transition:transform .25s var(--ease), box-shadow .25s var(--ease), border-color .25s var(--ease), background .25s var(--ease);}

/* intro + recovery markers */
.intro-grid{display:grid;grid-template-columns:1fr .95fr;gap:48px;align-items:center;}
@media (max-width:900px){.intro-grid{grid-template-columns:1fr;gap:36px;}}
.intro-copy .muted{margin-top:16px;max-width:52ch;}
.intro-copy .hero-ctas{margin-top:30px;}

.markers-card .card-face{
  background:linear-gradient(160deg,var(--card),var(--ink-2));border-radius:var(--radius-lg);
  padding:32px;border:1px solid var(--line-light);
}
.markers-toggle{
  display:flex;gap:6px;padding:5px;border-radius:999px;
  background:rgba(255,255,255,.04);border:1px solid var(--line-light);margin-bottom:28px;
}
.markers-btn{
  flex:1;padding:10px 14px;border-radius:999px;
  font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:.85rem;
  color:var(--muted-light);transition:background .2s var(--ease), color .2s var(--ease);
}
.markers-btn.active{background:var(--mint);color:var(--ink);}
.markers-list{display:flex;flex-direction:column;gap:18px;}
.marker-top{
  display:flex;justify-content:space-between;align-items:baseline;
  font-size:.92rem;margin-bottom:8px;
}
.marker-top span:first-child{color:var(--text-light);}
.marker-value{font-family:'Space Grotesk',sans-serif;font-weight:700;color:var(--mint);}
.marker-track{height:8px;border-radius:999px;background:rgba(255,255,255,.08);overflow:hidden;}
.marker-fill{height:100%;border-radius:999px;background:var(--mint);transition:width .6s var(--ease);}
.markers-note{margin-top:24px;font-size:.82rem;line-height:1.5;color:var(--muted-light);}

/* principles / way */
.principles{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;}
@media (max-width:900px){.principles{grid-template-columns:1fr 1fr;}}
@media (max-width:560px){.principles{grid-template-columns:1fr;}}
.principle .card-face{
  background:var(--white);border:1px solid var(--line-dark);border-radius:var(--radius-md);
  padding:30px 26px;height:100%;box-sizing:border-box;
}
.principle:hover .card-face{transform:translateY(-6px);box-shadow:0 22px 40px -26px rgba(10,22,21,.3);border-color:rgba(79,227,176,.4);}
.principle-icon{
  width:50px;height:50px;border-radius:14px;margin-bottom:20px;
  display:flex;align-items:center;justify-content:center;
  background:rgba(79,227,176,.12);color:var(--mint-dim);
  transition:background .25s var(--ease), transform .3s var(--ease), color .25s var(--ease);
}
.principle-icon svg{width:24px;height:24px;}
.principle:hover .principle-icon{background:var(--mint);color:var(--ink);transform:rotate(-6deg) scale(1.08);}
.principle h3{font-size:1.2rem;margin-bottom:10px;}

/* why us grid */
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
@media (max-width:900px){.grid-3{grid-template-columns:1fr;}}
.feature .card-face{
  padding:28px 26px;border-radius:var(--radius-md);
  border:1px solid var(--line-light);background:rgba(255,255,255,.03);
  height:100%;box-sizing:border-box;display:block;
}
.feature:hover .card-face{transform:translateY(-6px);background:rgba(255,255,255,.06);border-color:rgba(79,227,176,.4);}
.feature .icon{
  width:48px;height:48px;border-radius:12px;background:var(--mint);
  color:var(--ink);display:flex;align-items:center;justify-content:center;
  margin-bottom:18px;transition:transform .3s var(--ease);
}
.feature .icon svg{width:24px;height:24px;}
.feature:hover .icon{transform:rotate(-6deg) scale(1.08);}
.feature h3{font-size:1.15rem;margin-bottom:8px;}

/* stats */
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;text-align:center;}
@media (max-width:720px){.stats{grid-template-columns:1fr;}}
.stat .count{
  font-family:'Space Grotesk',sans-serif;font-size:3rem;font-weight:700;color:var(--mint);
}
.stat .label{margin-top:8px;color:var(--muted-light);font-size:.95rem;}

/* coach */
.coach{display:grid;grid-template-columns:.8fr 1.2fr;gap:48px;align-items:center;}
@media (max-width:900px){.coach{grid-template-columns:1fr;}}
.coach-photo{aspect-ratio:4/5;border-radius:var(--radius-lg);overflow:hidden;background:linear-gradient(160deg,var(--card),var(--ink-2));}
.coach-photo img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease);}
.coach-photo:hover img{transform:scale(1.06);}
.coach-credentials{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px;}
.pill{
  border:1px solid var(--line-light);border-radius:999px;padding:8px 16px;
  font-size:.82rem;font-family:'Space Grotesk',sans-serif;color:var(--text-light);
}

/* venue */
.venue-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:28px;align-items:stretch;}
@media (max-width:900px){.venue-grid{grid-template-columns:1fr;}}
.address-block{
  background:var(--paper);border-radius:var(--radius-lg);padding:36px;
  border:1px solid var(--line-dark);
  display:flex;flex-direction:column;
}
.address-icon{
  width:50px;height:50px;border-radius:14px;margin-bottom:20px;
  display:flex;align-items:center;justify-content:center;
  background:rgba(79,227,176,.14);color:var(--mint-dim);
}
.address-icon svg{width:24px;height:24px;}
.address-block h3{margin-bottom:10px;font-size:1.3rem;}
.address-block p{line-height:1.7;}
.address-block .btn{align-self:flex-start;margin-top:24px;}
.map-embed{border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--line-dark);min-height:280px;}
.map-embed iframe{width:100%;height:100%;border:0;display:block;}

/* FAQ */
.faq-item{border-bottom:1px solid var(--line-dark);}
.faq-q{
  width:100%;display:flex;justify-content:space-between;align-items:center;
  padding:22px 0;font-family:'Space Grotesk',sans-serif;font-size:1.05rem;font-weight:600;
  text-align:left;color:var(--text-dark);
}
.faq-q .plus{transition:transform .25s var(--ease);font-size:1.4rem;color:var(--mint-dim);}
.faq-q[aria-expanded="true"] .plus{transform:rotate(45deg);}
.faq-a{max-height:0;overflow:hidden;transition:max-height .3s var(--ease);}
.faq-a p{padding-bottom:22px;max-width:60ch;color:var(--muted-dark);}

/* closing cta */
.closing-cta{text-align:center;}
.closing-cta .eyebrow{color:var(--ink);opacity:.7;}
.closing-cta h2{margin-bottom:28px;}
.closing-ctas{display:flex;justify-content:center;gap:14px;flex-wrap:wrap;}
.bg-mint .btn-ghost{border:1px solid rgba(10,22,21,.3);color:var(--ink);}
.bg-mint .btn-primary{background:var(--ink);color:var(--mint);}
.bg-mint .btn-primary:hover{background:var(--ink-2);}

/* footer */
footer{background:var(--ink);color:var(--muted-light);padding:72px 0 28px;}
footer .muted{color:var(--muted-light);}
.footer-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr 1.2fr;gap:40px;}
@media (max-width:900px){.footer-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:560px){.footer-grid{grid-template-columns:1fr;}}
.footer-grid h4{color:var(--text-light);font-size:.95rem;margin-bottom:18px;letter-spacing:-.01em;}
.footer-grid ul li{margin-bottom:10px;}
.footer-grid a:hover{color:var(--mint);}
.footer-bottom{
  display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;
  margin-top:56px;padding-top:28px;border-top:1px solid var(--line-light);
  font-size:.85rem;
}
.socials{display:flex;gap:16px;}

.tbc{border-bottom:1px dashed var(--mint);padding-bottom:1px;}

/* techniques grid */
.tech-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
@media (max-width:900px){.tech-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:620px){.tech-grid{grid-template-columns:1fr;}}
.tech-card .card-face{
  background:linear-gradient(160deg,var(--card),var(--ink-2));
  border-radius:var(--radius-md);padding:28px;border:1px solid var(--line-light);
  height:100%;box-sizing:border-box;
}
.tech-card:hover .card-face{transform:translateY(-6px);box-shadow:0 22px 40px -26px rgba(0,0,0,.4);border-color:rgba(79,227,176,.4);}
.tech-icon{
  width:48px;height:48px;border-radius:12px;margin-bottom:18px;
  display:flex;align-items:center;justify-content:center;
  background:rgba(79,227,176,.12);color:var(--mint);
  transition:background .25s var(--ease), transform .3s var(--ease), color .25s var(--ease);
}
.tech-icon svg{width:24px;height:24px;}
.tech-card:hover .tech-icon{background:var(--mint);color:var(--ink);transform:rotate(-6deg) scale(1.08);}
.tech-card h3{margin-bottom:8px;font-size:1.2rem;color:var(--text-light);}
.tech-card p{color:var(--muted-light);font-size:.95rem;}

/* steps */
.step-icon{
  flex:none;width:48px;height:48px;border-radius:12px;
  display:flex;align-items:center;justify-content:center;
  background:rgba(79,227,176,.14);color:var(--mint-dim);
}
.step-icon svg{width:22px;height:22px;}

/* session timeline */
.timeline{margin-top:48px;}
.timeline-bar{
  position:relative;display:flex;height:54px;border-radius:999px;overflow:hidden;
  border:1px solid var(--line-dark);background:var(--white);
}
.timeline-seg{
  position:relative;display:flex;align-items:center;justify-content:center;
  border-right:1px solid var(--line-dark);
  background:var(--white);color:var(--muted-dark);
  font-family:'Space Grotesk',sans-serif;font-size:.85rem;font-weight:600;
  transition:background .25s var(--ease), color .25s var(--ease);
  overflow:hidden;padding:0 6px;
}
.timeline-seg:last-child{border-right:none;}
.timeline-seg-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.timeline-seg-time{display:none;font-family:'Space Grotesk',sans-serif;white-space:nowrap;}
.timeline-seg:hover{background:rgba(79,227,176,.14);}
.timeline-seg.active{background:var(--mint);color:var(--ink);}
.timeline-ticks{
  display:flex;justify-content:space-between;margin-top:10px;
  font-family:'Space Grotesk',sans-serif;font-size:.78rem;color:var(--muted-dark);
}
.timeline-detail{position:relative;margin-top:28px;min-height:110px;}
.timeline-panel{
  display:none;align-items:flex-start;gap:20px;
  background:var(--white);border:1px solid var(--line-dark);border-radius:var(--radius-md);
  padding:28px;
}
.timeline-panel.active{display:flex;}
.timeline-range{
  display:block;font-family:'Space Grotesk',sans-serif;font-weight:700;
  font-size:.95rem;margin-bottom:8px;color:var(--text-dark);
}
@media (max-width:700px){
  .timeline-bar{height:60px;}
  .timeline-seg{padding:0 4px;font-size:.7rem;}
  .timeline-seg-label{display:none;}
  .timeline-seg-time{display:block;}
}
.reveal{opacity:0;transform:translateY(18px);transition:opacity .6s var(--ease),transform .6s var(--ease);}
.reveal.in{opacity:1;transform:translateY(0);}
