:root{
  --green-deep:#16302A;
  --green-mid:#1F4137;
  --paper:#EDEEE5;
  --paper-warm:#E6E7DC;
  --ink:#1B1E19;
  --ink-soft:#4B5148;
  --flag:#B8422C;
  --data-lime:#9FB84A;
  --line:rgba(27,30,25,0.14);
  --line-on-dark:rgba(237,238,229,0.2);
  --max:1120px;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:'Archivo',sans-serif;
  font-size:16px;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,.serif{
  font-family:'Fraunces',serif;
  font-weight:500;
  line-height:1.08;
  margin:0;
  color:var(--ink);
}
a{color:inherit;}
p{margin:0 0 1em 0;max-width:62ch;}
img{max-width:100%;display:block;}
button{font-family:inherit;cursor:pointer;}

/* ---------- Header ---------- */
header{
  position:sticky;top:0;z-index:50;
  background:var(--paper);
  border-bottom:1px solid var(--line);
}
.nav-wrap{
  max-width:var(--max);margin:0 auto;
  display:flex;align-items:center;justify-content:space-between;
  padding:20px 28px;
}
.logo{display:flex;align-items:center;}
.logo img{height:52px;width:auto;display:block;}
nav.primary{display:flex;align-items:center;gap:30px;}
.nav-link{
  background:none;border:none;font-size:14.5px;color:var(--ink);
  padding:6px 0;position:relative;font-family:'Archivo',sans-serif;
  text-decoration:none;
}
.nav-link.active{color:var(--flag);}
.has-drop{position:relative;}
.dropdown{
  position:absolute;top:100%;left:0;margin-top:14px;
  background:var(--green-deep);color:var(--paper);
  min-width:220px;padding:8px 0;
  border-radius:2px;
  opacity:0;visibility:hidden;transform:translateY(-6px);
  transition:opacity .18s ease,transform .18s ease,visibility .18s;
}
.has-drop:hover .dropdown,.has-drop:focus-within .dropdown{
  opacity:1;visibility:visible;transform:translateY(0);
}
.dropdown a{
  display:block;width:100%;text-align:left;background:none;border:none;
  color:var(--paper);padding:11px 20px;font-size:14px;text-decoration:none;
}
.dropdown a:hover{color:var(--data-lime);}
.nav-cta{
  background:var(--flag);color:var(--paper);border:none;
  padding:11px 22px;font-size:14px;border-radius:2px;text-decoration:none;
}
.burger{display:none;background:none;border:none;font-size:22px;}

/* ---------- Sections generic ---------- */
section{max-width:var(--max);margin:0 auto;padding:88px 28px;}
.rule{border-top:1px solid var(--line);}
.kicker{color:var(--ink-soft);font-size:15px;max-width:52ch;margin-top:14px;}

/* ---------- Hero ---------- */
.hero{
  position:relative;overflow:hidden;
  background:var(--green-deep);color:var(--paper);
  padding:120px 28px 96px;
}
.hero-inner{max-width:var(--max);margin:0 auto;position:relative;z-index:2;}
.hero h1{
  font-size:clamp(40px,6vw,68px);color:var(--paper);
  max-width:14ch;
  opacity:0;transform:translateY(14px);
  animation:rise .8s ease forwards .15s;
}
.hero p.tagline{
  font-family:'Archivo',sans-serif;font-size:14px;letter-spacing:0.02em;
  color:#9FAA9A;margin-top:12px;
  opacity:0;transform:translateY(10px);
  animation:rise .8s ease forwards .28s;
}
.hero p.lead{
  color:#C9D2C6;font-size:18px;max-width:46ch;margin-top:22px;
  opacity:0;transform:translateY(14px);
  animation:rise .8s ease forwards .35s;
}
.hero-ctas{
  margin-top:34px;display:flex;gap:16px;flex-wrap:wrap;
  opacity:0;transform:translateY(14px);
  animation:rise .8s ease forwards .5s;
}
@keyframes rise{to{opacity:1;transform:translateY(0);}}
.btn{
  display:inline-block;padding:14px 26px;font-size:14.5px;border-radius:2px;
  border:1px solid transparent;text-decoration:none;
}
.btn-solid{background:var(--flag);color:var(--paper);}
.btn-outline{border-color:var(--line-on-dark);color:var(--paper);background:none;}
.btn-outline.light{border-color:var(--line);color:var(--ink);}
.insta-icon{
  display:inline-flex;align-items:center;justify-content:center;
  width:48px;height:48px;border-radius:2px;
  border:1px solid var(--line-on-dark);color:var(--paper);
  transition:border-color .2s,color .2s;
}
.insta-icon:hover{border-color:var(--data-lime);color:var(--data-lime);}
.contour{
  position:absolute;top:0;right:0;height:100%;width:56%;
  opacity:0.5;z-index:1;
}
.stat-strip{
  margin-top:72px;padding-top:28px;border-top:1px solid var(--line-on-dark);
  display:grid;grid-template-columns:repeat(4,1fr);gap:24px;
}
.stat-strip div small{display:block;color:#9FAA9A;font-size:12.5px;margin-bottom:6px;}
.stat-strip div span{font-family:'Archivo',sans-serif;font-weight:700;color:var(--data-lime);font-size:15px;}

/* ---------- Scorecard rows (coaching / faq) ---------- */
.row{
  display:grid;grid-template-columns:1.1fr 2fr;gap:40px;
  padding:34px 0;border-top:1px solid var(--line);
}
.row:last-child{border-bottom:1px solid var(--line);}
.row h3{font-size:23px;}
.row .venue-tag{
  display:inline-block;margin-top:10px;font-size:12.5px;color:var(--flag);
}

/* ---------- Two-col ---------- */
.split{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start;}
@media(max-width:820px){.split{grid-template-columns:1fr;}}

/* ---------- Location cards ---------- */
.loc{padding:40px 0;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;gap:44px;}
.loc:last-child{border-bottom:1px solid var(--line);}
.loc iframe{width:100%;height:300px;border:1px solid var(--line);filter:grayscale(0.15);}
.loc-address{color:var(--ink-soft);font-size:14.5px;margin-top:8px;}
.hours-list{list-style:none;padding:0;margin:20px 0;}
.hours-list li{display:flex;justify-content:space-between;padding:8px 0;border-top:1px solid var(--line);font-size:14.5px;}
.hours-list li:last-child{border-bottom:1px solid var(--line);}

/* ---------- FAQ ---------- */
.faq-item{border-top:1px solid var(--line);padding:22px 0;}
.faq-item:last-child{border-bottom:1px solid var(--line);}
.faq-q{
  width:100%;background:none;border:none;text-align:left;
  display:flex;justify-content:space-between;align-items:center;
  font-family:'Fraunces',serif;font-size:19px;padding:0;
}
.faq-q .plus{font-family:'Archivo',sans-serif;font-size:20px;color:var(--flag);transition:transform .2s;}
.faq-item.open .plus{transform:rotate(45deg);}
.faq-a{max-height:0;overflow:hidden;transition:max-height .25s ease;}
.faq-item.open .faq-a{max-height:200px;}
.faq-a p{margin-top:14px;color:var(--ink-soft);}

/* ---------- Instagram showcase ---------- */
.insta-showcase{max-width:none;}
.insta-showcase-head{
  max-width:var(--max);margin:0 auto 40px;padding:0 28px;
  display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:20px;
}
.insta-showcase-grid{
  max-width:var(--max);margin:0 auto;padding:0 28px;
  display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:28px;
}
.insta-showcase-grid iframe,.insta-showcase-grid blockquote.instagram-media{
  width:100% !important;min-width:0 !important;margin:0 !important;
}
@media(max-width:820px){
  .insta-showcase-grid{grid-template-columns:1fr;}
}

/* ---------- Reviews CTA ---------- */
.reviews-cta{background:var(--paper-warm);}
.reviews-box{
  margin-top:36px;border:1px solid var(--line);border-top:2px solid var(--flag);
  background:var(--paper);padding:36px;display:flex;flex-wrap:wrap;gap:24px;
  align-items:center;justify-content:space-between;
}
.reviews-box p{margin:0;max-width:44ch;}

/* ---------- Testimonials ---------- */
.testi-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:44px;}
@media(max-width:820px){.testi-grid{grid-template-columns:1fr;}}
.testi-card{
  background:var(--paper);
  border:1px solid var(--line);
  border-top:2px solid var(--flag);
  padding:30px 28px;
}
.testi-card blockquote{margin:0;font-family:'Fraunces',serif;font-size:18px;font-style:italic;color:var(--ink);line-height:1.4;}
.testi-card cite{display:block;margin-top:18px;font-family:'Archivo',sans-serif;font-style:normal;font-size:13px;color:var(--ink-soft);}

/* ---------- Pricing ---------- */
.price-row{
  display:grid;grid-template-columns:2fr 1fr;gap:20px;align-items:baseline;
  padding:26px 0;border-top:1px solid var(--line);
}
.price-row:last-child{border-bottom:1px solid var(--line);}
.price-row span.amount{font-family:'Fraunces',serif;font-size:26px;justify-self:end;}

footer{background:var(--green-deep);color:#C9D2C6;padding:64px 28px 36px;}
.foot-inner{max-width:var(--max);margin:0 auto;display:grid;grid-template-columns:2fr 1fr 1fr;gap:40px;}
footer h4{font-family:'Fraunces',serif;color:var(--paper);font-size:16px;margin-bottom:14px;}
footer a{display:block;color:#C9D2C6;text-decoration:none;font-size:14px;margin-bottom:9px;}
footer a:hover{color:var(--data-lime);}
.foot-bottom{max-width:var(--max);margin:48px auto 0;border-top:1px solid var(--line-on-dark);padding-top:22px;font-size:12.5px;color:#8B9A87;}

/* ---------- Floating book button ---------- */
.sticky-book-bar{
  position:fixed;bottom:28px;right:28px;z-index:60;
  background:var(--flag);color:var(--paper);
  padding:16px 30px;border-radius:999px;
  box-shadow:0 6px 20px rgba(27,30,25,0.25);
  font-family:'Archivo',sans-serif;font-weight:600;font-size:14.5px;
  text-decoration:none;display:inline-flex;align-items:center;gap:8px;
  transition:transform .15s ease,box-shadow .15s ease;
}
.sticky-book-bar:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(27,30,25,0.3);}
@media(max-width:480px){
  .sticky-book-bar{right:18px;bottom:18px;padding:14px 24px;font-size:13.5px;}
}

@media(max-width:760px){
  nav.primary{position:fixed;inset:64px 0 0 0;background:var(--paper);flex-direction:column;align-items:flex-start;padding:28px;gap:22px;display:none;border-top:1px solid var(--line);}
  nav.primary.open{display:flex;}
  .burger{display:block;}
  .row,.loc,.stat-strip{grid-template-columns:1fr;}
  .foot-inner{grid-template-columns:1fr;}
  .contour{display:none;}
  .reviews-box{flex-direction:column;align-items:flex-start;}
}
