/* ============================================================
   THRIVE PAMOJA — Design tokens (v2)
   ============================================================ */
:root{
  --coral:      #FF5A3C;
  --coral-dark: #E23F22;
  --coral-tint: #FFE1D6;
  --sun:        #FFB800;
  --sun-tint:   #FFF1CC;
  --sky:        #3E5AE0;
  --sky-dark:   #2C3FB8;
  --sky-tint:   #E4E9FF;
  --teal:       #14A399;
  --teal-tint:  #DEF6F2;
  --violet:     #7C5CFC;
  --violet-tint:#EBE5FF;
  --ink:        #221C4F;
  --ink-70:     #4E4A78;
  --ink-45:     #85819F;
  --cream:      #FFF6ED;
  --cream-2:    #FFEEDC;
  --white:      #FFFFFF;
  --line:       #F0E3D3;

  --font-display: "Baloo 2", ui-rounded, "Segoe UI", sans-serif;
  --font-body: "Plus Jakarta Sans", "Segoe UI", sans-serif;

  --radius-sm: 14px;
  --radius-md: 22px;
  --radius-lg: 34px;
  --radius-xl: 46px;
  --radius-pill: 999px;

  --shadow-soft: 0 14px 34px -14px rgba(34,28,79,.20);
  --shadow-pop:  0 20px 44px -12px rgba(255,90,60,.35);

  --container: 1180px;
}

/* ============================================================
   Reset / base
   ============================================================ */
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important;}
}
body{
  margin:0;
  font-family:var(--font-body);
  color:var(--ink);
  background:var(--cream);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%; display:block;}
a{color:inherit; text-decoration:none;}
ul{margin:0; padding:0; list-style:none;}
h1,h2,h3,h4{
  font-family:var(--font-display);
  line-height:1.1;
  margin:0 0 .5em;
  font-weight:700;
  letter-spacing:.2px;
  color:var(--ink);
}
p{margin:0 0 1em;}
button{font-family:inherit;}

:focus-visible{
  outline:3px solid var(--sky);
  outline-offset:3px;
  border-radius:6px;
}

.container{
  width:100%;
  max-width:var(--container);
  margin:0 auto;
  padding:0 24px;
}
section{position:relative;}

/* ============================================================
   Eyebrow label + hand-drawn squiggle underline
   ============================================================ */
.eyebrow{
  display:inline-block;
  position:relative;
  font-family:var(--font-display);
  font-weight:700;
  font-size:1.05rem;
  color:var(--coral);
  margin-bottom:22px;
  padding-bottom:10px;
}
.eyebrow svg{position:absolute; left:0; bottom:-2px; width:100%; height:12px;}
.eyebrow.on-dark{color:var(--sun);}

.eyebrow-tag{
  display:inline-flex;
  align-items:center;
  gap:8px;
  background:var(--coral-tint);
  color:var(--coral-dark);
  font-weight:700;
  font-size:.85rem;
  padding:7px 16px;
  border-radius:var(--radius-pill);
  margin-bottom:16px;
}
.eyebrow-tag.teal{background:var(--teal-tint); color:#0C7E77;}
.eyebrow-tag.violet{background:var(--violet-tint); color:#5637D6;}
.eyebrow-tag.sun{background:var(--sun-tint); color:#8A5A00;}
.eyebrow-tag.sky{background:var(--sky-tint); color:var(--sky-dark);}

.h1{font-size:clamp(2.4rem, 4.6vw, 4rem);}
.h2{font-size:clamp(1.9rem, 3.4vw, 2.8rem); text-align:center;}
.h2.left{text-align:left;}
.h3{font-size:clamp(1.3rem, 2vw, 1.6rem);}
.lede{font-size:1.15rem; color:var(--ink-70); max-width:640px;}

.btn{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-weight:700;
  font-family:var(--font-body);
  font-size:1rem;
  padding:14px 28px;
  border-radius:var(--radius-pill);
  border:2px solid transparent;
  cursor:pointer;
  transition:transform .22s ease, box-shadow .22s ease, background-color .22s ease, color .22s ease;
  white-space:nowrap;
}
.btn-primary{background:var(--coral); color:#fff; box-shadow:var(--shadow-pop);}
.btn-primary:hover{transform:translateY(-3px) scale(1.03); background:var(--coral-dark);}
.btn-secondary{background:#fff; color:var(--ink); border-color:var(--line); box-shadow:var(--shadow-soft);}
.btn-secondary:hover{transform:translateY(-3px); border-color:var(--coral);}
.btn-ghost{background:transparent; color:var(--ink); border-color:var(--ink);}
.btn-ghost:hover{background:var(--ink); color:#fff;}
.btn-white{background:#fff; color:var(--coral);}
.btn-white:hover{transform:translateY(-3px) scale(1.02);}
.btn-sky{background:var(--sky); color:#fff; box-shadow:0 20px 44px -14px rgba(62,90,224,.5);}
.btn-sky:hover{transform:translateY(-3px) scale(1.03); background:var(--sky-dark);}
.btn-sm{padding:10px 18px; font-size:.92rem;}
.btn-row{display:flex; flex-wrap:wrap; gap:14px; margin-top:28px;}

/* ============================================================
   Header / Nav
   ============================================================ */
.topbar{background:#ff5a3c; color:#fff; font-size:.85rem;}
.topbar .container{display:flex; justify-content:space-between; align-items:center; padding-top:8px; padding-bottom:8px; gap:16px; flex-wrap:wrap;}
.topbar a{opacity:.9;}
.topbar a:hover{opacity:1; text-decoration:underline;}
.topbar-links{display:flex; gap:22px; flex-wrap:wrap;}
.topbar-social{display:flex; gap:14px;}
.topbar-social a{width:26px; height:26px; border-radius:50%; background:rgba(255,255,255,.14); display:flex; align-items:center; justify-content:center;}
.topbar-social svg{width:14px; height:14px;}

.site-header{background:var(--cream); position:sticky; top:0; z-index:200; border-bottom:1px solid var(--line);}
.nav-wrap{display:flex; align-items:center; justify-content:space-between; padding:14px 0; gap:20px;}
.logo{display:flex; align-items:center; gap:10px; font-family:var(--font-display); font-weight:700; font-size:1.18rem; color:var(--ink); white-space:nowrap;}
.logo .mark{width:46px; height:46px; flex:none; transition:transform .35s ease;}
.logo:hover .mark{animation:wiggle .5s ease;}
.logo small{display:block; font-family:var(--font-body); font-weight:600; font-size:.6rem; letter-spacing:.5px; color:var(--coral); text-transform:uppercase;}

.main-nav{display:flex; align-items:center; gap:2px;}
.main-nav > ul{display:flex; align-items:center; gap:2px;}
.main-nav > ul > li{position:relative;}
.main-nav > ul > li > a, .nav-drop-btn{
  display:flex; align-items:center; gap:5px; padding:12px 15px; font-weight:700; font-size:.97rem;
  border-radius:var(--radius-pill); color:var(--ink); transition:background-color .2s ease, color .2s ease, transform .2s ease;
  cursor:pointer; background:transparent; border:none; position:relative;
}
.main-nav > ul > li > a::after{
  content:""; position:absolute; left:50%; bottom:4px; width:0; height:3px; border-radius:3px;
  background:var(--coral); transition:width .25s ease, left .25s ease;
}
.main-nav > ul > li > a:hover::after, .main-nav > ul > li > a.active::after{ width:60%; left:20%; }
.main-nav > ul > li > a:hover, .main-nav > ul > li.open > .nav-drop-btn, .main-nav > ul > li > a.active{
  background:var(--coral-tint); color:var(--coral-dark); transform:translateY(-1px);
}
.nav-drop-btn svg{width:11px; transition:transform .2s ease;}
.main-nav li.open .nav-drop-btn svg{transform:rotate(180deg);}

.dropdown{
  position:absolute; top:calc(100% + 10px); left:0; background:#fff; border-radius:var(--radius-md);
  box-shadow:0 24px 48px -18px rgba(34,28,79,.30); padding:12px; min-width:290px;
  opacity:0; visibility:hidden; transform:translateY(8px) scale(.97); transform-origin:top left;
  transition:opacity .2s ease, transform .2s cubic-bezier(.34,1.56,.64,1), visibility .2s; z-index:50;
}
.main-nav li.open .dropdown{opacity:1; visibility:visible; transform:translateY(0) scale(1);}
.dropdown a{display:flex; align-items:flex-start; gap:12px; padding:11px 12px; border-radius:14px; color:var(--ink); transition:background-color .18s ease, transform .18s ease;}
.dropdown a:hover{background:var(--cream-2); transform:translateX(3px);}
.dropdown .d-icon{width:38px; height:38px; border-radius:11px; flex:none; display:flex; align-items:center; justify-content:center; font-size:1.15rem; transition:transform .25s ease;}
.dropdown a:hover .d-icon{transform:scale(1.12) rotate(-4deg);}
.dropdown strong{display:block; font-size:.94rem;}
.dropdown span{display:block; font-size:.78rem; color:var(--ink-45); margin-top:2px;}
.dropdown .view-all{border-top:1px solid var(--line); margin-top:6px; padding-top:12px; font-weight:700; color:var(--coral-dark); justify-content:center; align-items:center;}
.dropdown .view-all svg{width:15px; height:15px; flex:none;}

.header-cta{display:flex; align-items:center; gap:12px;}
.nav-toggle{display:none; width:46px; height:46px; border-radius:50%; background:var(--coral); border:none; color:#fff; align-items:center; justify-content:center; cursor:pointer; flex:none; transition:transform .3s cubic-bezier(.34,1.56,.64,1), background-color .2s ease;}
.nav-toggle svg{width:20px; height:20px;}
.nav-toggle[aria-expanded="true"]{transform:rotate(90deg); background:var(--ink);}

@media (max-width: 980px){
  .main-nav{position:fixed; inset:0 0 0 auto; width:min(340px, 86vw); height:100vh; background:#fff; box-shadow:-14px 0 40px rgba(0,0,0,.18); transform:translateX(100%); transition:transform .35s cubic-bezier(.34,1.1,.64,1); padding:90px 22px 30px; overflow-y:auto; z-index:150;}
  .main-nav.open{transform:translateX(0);}
  .main-nav > ul{flex-direction:column; align-items:stretch; gap:4px;}
  .main-nav > ul > li{opacity:0; transform:translateX(24px); transition:opacity .35s ease, transform .35s ease;}
  .main-nav.open > ul > li{opacity:1; transform:translateX(0);}
  .main-nav.open > ul > li:nth-child(1){transition-delay:.05s;}
  .main-nav.open > ul > li:nth-child(2){transition-delay:.09s;}
  .main-nav.open > ul > li:nth-child(3){transition-delay:.13s;}
  .main-nav.open > ul > li:nth-child(4){transition-delay:.17s;}
  .main-nav.open > ul > li:nth-child(5){transition-delay:.21s;}
  .main-nav.open > ul > li:nth-child(6){transition-delay:.25s;}
  .main-nav.open > ul > li:nth-child(7){transition-delay:.29s;}
  .main-nav.open > ul > li:nth-child(8){transition-delay:.33s;}
  .main-nav > ul > li > a::after{display:none;}
  .main-nav > ul > li > a, .nav-drop-btn{width:100%; justify-content:space-between;}
  .dropdown{position:static; opacity:1; visibility:visible; transform:none; box-shadow:none; display:none; background:var(--cream); margin-top:4px;}
  .main-nav li.open .dropdown{display:block;}
  .nav-toggle{display:flex;}
  .header-cta .btn-secondary{display:none;}
  .nav-scrim{position:fixed; inset:0; background:rgba(34,28,79,.4); opacity:0; visibility:hidden; transition:opacity .25s ease; z-index:140;}
  .nav-scrim.open{opacity:1; visibility:visible;}
}

/* ============================================================
   Floating decoration
   ============================================================ */
@keyframes float-y{
  0%,100%{ transform:translateY(0) rotate(0deg); }
  50%{ transform:translateY(-16px) rotate(2deg); }
}
@keyframes float-y-slow{
  0%,100%{ transform:translateY(0); }
  50%{ transform:translateY(14px); }
}
@keyframes bounce-in{
  0%{ transform:scale(1) rotate(0deg); }
  30%{ transform:scale(1.18) rotate(-6deg); }
  55%{ transform:scale(.94) rotate(4deg); }
  100%{ transform:scale(1.08) rotate(0deg); }
}
.bounce-hover{transition:transform .2s ease;}
.bounce-hover:hover, .service-card:hover .bounce-hover, .squircle-card:hover .bounce-hover{animation:bounce-in .55s ease;}

@keyframes pop-in{
  0%{ opacity:0; transform:scale(.6) translateY(14px); }
  70%{ opacity:1; transform:scale(1.05) translateY(-2px); }
  100%{ opacity:1; transform:scale(1) translateY(0); }
}
@keyframes wiggle{
  0%,100%{ transform:rotate(0deg); }
  25%{ transform:rotate(-4deg); }
  75%{ transform:rotate(4deg); }
}
@keyframes pulse-ring{
  0%{ box-shadow:0 0 0 0 rgba(255,90,60,.45); }
  70%{ box-shadow:0 0 0 14px rgba(255,90,60,0); }
  100%{ box-shadow:0 0 0 0 rgba(255,90,60,0); }
}
.pulse{animation:pulse-ring 2.6s ease-out infinite;}
.floaty{animation:float-y 5.5s ease-in-out infinite;}
.floaty-slow{animation:float-y-slow 7s ease-in-out infinite;}

.blob{position:absolute; z-index:0; opacity:.55; pointer-events:none;}
.blob-1{top:-120px; right:-140px; width:420px; height:420px; background:var(--sun-tint); border-radius:44% 56% 65% 35% / 45% 40% 60% 55%;}
.blob-2{bottom:-160px; left:-160px; width:380px; height:380px; background:var(--sky-tint); border-radius:60% 40% 40% 60% / 55% 60% 40% 45%;}
.blob-3{top:20%; left:-8%; width:220px; height:220px; background:var(--teal-tint); border-radius:50%;}

/* ============================================================
   HERO — full-bleed image with gradient overlay
   ============================================================ */
.hero-full{
  position:relative; overflow:hidden; min-height:640px; display:flex; align-items:center;
  border-radius:0 0 var(--radius-xl) var(--radius-xl);
}
.hero-full .hero-bg{position:absolute; inset:0; z-index:0;}
.hero-full .hero-bg .slide{position:absolute; inset:0; opacity:0; transition:opacity 1.1s ease;}
.hero-full .hero-bg .slide.active{opacity:1;}
.hero-full .hero-bg img{width:100%; height:100%; object-fit:cover;}
.hero-full .hero-scrim{
  position:absolute; inset:0; z-index:1;
  background:linear-gradient(100deg, rgba(34,20,20,.86) 0%, rgba(34,20,20,.72) 32%, rgba(34,20,20,.30) 62%, rgba(34,20,20,.05) 82%);
}
.hero-full .container{position:relative; z-index:2; padding-top:72px; padding-bottom:72px;}
.hero-full-copy{max-width:600px;}
.hero-full .eyebrow{color:var(--sun);}
.hero-full h1{color:#fff; font-size:clamp(2.6rem, 5.4vw, 4.4rem); margin-bottom:22px;}
.hero-full h1 .accent{color:var(--coral); -webkit-text-stroke:0;}
.hero-full p.lede{color:rgba(255,255,255,.86); font-size:1.15rem;}
.hero-dots-h{position:absolute; z-index:3; right:36px; bottom:34px; display:flex; flex-direction:column; gap:9px;}
.hero-dots-h button{width:10px; height:10px; border-radius:50%; border:2px solid rgba(255,255,255,.7); background:transparent; cursor:pointer; padding:0;}
.hero-dots-h button.active{background:var(--coral); border-color:var(--coral);}

.hero-float-badge{
  position:absolute; z-index:3; background:#fff; border-radius:20px; box-shadow:var(--shadow-soft);
  padding:14px 18px; display:flex; align-items:center; gap:12px;
}
.hero-float-badge .ico{width:40px; height:40px; border-radius:12px; display:flex; align-items:center; justify-content:center; font-size:1.25rem; flex:none;}
.hero-float-badge strong{display:block; font-size:1rem;}
.hero-float-badge span{font-size:.76rem; color:var(--ink-45);}
.hero-full .b1{ top:14%; right:6%; }
.hero-full .b2{ bottom:16%; right:16%; }
@media (max-width:900px){ .hero-float-badge{display:none;} .hero-full{border-radius:0 0 26px 26px; min-height:560px;} }

/* ============================================================
   MVV / squircle feature cards ("Thanks to get started" style)
   ============================================================ */
.mvv-wrap{margin-top:-70px; position:relative; z-index:5;}
.mvv-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
.squircle-card{
  background:#fff; border-radius:40px 40px 26px 26px; padding:38px 28px 32px; box-shadow:var(--shadow-soft);
  text-align:center; transition:transform .25s ease, box-shadow .25s ease;
}
.squircle-card:hover{transform:translateY(-8px); box-shadow:0 30px 54px -18px rgba(34,28,79,.26);}
.squircle-icon{
  width:74px; height:74px; border-radius:26px; display:flex; align-items:center; justify-content:center;
  font-size:2rem; margin:0 auto 18px; background:var(--coral-tint);
}
.mvv-grid .squircle-card:nth-child(2) .squircle-icon{background:var(--sky-tint);}
.mvv-grid .squircle-card:nth-child(3) .squircle-icon{background:var(--sun-tint);}
.squircle-card h3{margin-bottom:8px;}
.squircle-card p{color:var(--ink-70); font-size:.96rem; margin:0;}
@media (max-width:820px){ .mvv-grid{grid-template-columns:1fr;} .mvv-wrap{margin-top:-40px;} }

/* ============================================================
   Generic section paddings
   ============================================================ */
.section{padding:90px 0;}
.section.tight{padding:64px 0;}
.section-head{max-width:680px; margin-bottom:48px;}
.section-head.center{margin-left:auto; margin-right:auto; text-align:center;}
.bg-cream2{background:var(--cream-2);}
.bg-ink{background:var(--ink); color:#fff;}
.bg-ink .ink-70{color:rgba(255,255,255,.72);}
.bg-coral{background:var(--coral); color:#fff;}
.bg-sky{background:var(--sky); color:#fff;}

/* ============================================================
   What we do / service cards (icon based)
   ============================================================ */
.card-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
.card-grid.two{grid-template-columns:repeat(2,1fr);}
.card-grid.four{grid-template-columns:repeat(4,1fr);}

.service-card{
  background:#fff; border-radius:var(--radius-md); padding:30px 26px; box-shadow:var(--shadow-soft);
  display:flex; flex-direction:column; height:100%;
  transition:transform .25s ease, box-shadow .25s ease;
}
.service-card:hover{transform:translateY(-6px); box-shadow:0 28px 50px -18px rgba(34,28,79,.22);}
.service-card .ico{width:56px; height:56px; border-radius:16px; display:flex; align-items:center; justify-content:center; font-size:1.6rem; margin-bottom:18px;}
.service-card h3{margin-bottom:10px;}
.service-card p{color:var(--ink-70); font-size:.96rem; flex:1;}
.service-card .card-link{margin-top:16px; font-weight:700; color:var(--coral-dark); display:inline-flex; align-items:center; gap:6px;}
.service-card .card-link svg{width:14px; transition:transform .2s ease;}
.service-card:hover .card-link svg{transform:translateX(4px);}

.ico-coral{background:var(--coral-tint); color:var(--coral-dark);}
.ico-teal{background:var(--teal-tint); color:#0C7E77;}
.ico-sun{background:var(--sun-tint); color:#8A5A00;}
.ico-violet{background:var(--violet-tint); color:#5637D6;}
.ico-sky{background:var(--sky-tint); color:var(--sky-dark);}

/* Custom glyph icon wrapper */
.gicon{display:inline-flex; align-items:center; justify-content:center;}
.gicon svg{width:100%; height:100%; display:block;}
.ico .gicon, .squircle-icon .gicon, .event-photo .gicon, .dropdown .d-icon .gicon, .contact-info-card .ico .gicon{width:60%; height:60%;}

@media (max-width:980px){ .card-grid{grid-template-columns:repeat(2,1fr);} .card-grid.four{grid-template-columns:repeat(2,1fr);} }
@media (max-width:640px){ .card-grid, .card-grid.two, .card-grid.four{grid-template-columns:1fr;} }

/* ============================================================
   Program cards — blob image + overlapping tag pill
   ============================================================ */
.program-card{
  background:#fff; border-radius:var(--radius-lg); overflow:visible; padding-bottom:26px;
  transition:transform .25s ease, box-shadow .25s ease; box-shadow:var(--shadow-soft);
}
.program-card:hover{transform:translateY(-8px);}
.program-media{position:relative; padding:14px 14px 0;}
.program-media img{width:100%; aspect-ratio:6/5; object-fit:cover; border-radius:32px;}
.program-tag{
  position:absolute; top:26px; right:26px; background:var(--coral); color:#fff; font-family:var(--font-display);
  font-weight:700; font-size:.85rem; padding:9px 18px; border-radius:var(--radius-pill); box-shadow:0 10px 22px -8px rgba(0,0,0,.35);
}
.program-body{padding:22px 26px 0;}
.program-body p{color:var(--ink-70); font-size:.92rem; margin:0 0 6px;}

/* ============================================================
   Image + text split
   ============================================================ */
.split{display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center;}
.split.reverse .split-media{order:2;}
.split-media img{border-radius:var(--radius-lg); box-shadow:var(--shadow-soft); width:100%; aspect-ratio:6/5; object-fit:cover;}
.split-media.blob-frame{position:relative; padding:10px;}
.split-media.blob-frame::before{
  content:""; position:absolute; inset:-18px -18px auto auto; width:70%; height:70%;
  background:var(--sun-tint); border-radius:50%; z-index:0;
}
.split-media.blob-frame img{position:relative; z-index:1; border-radius:40px 40px 50% 50% / 40px 40px 30% 30%;}
.split-media.stack{position:relative; padding:0 28px 28px 0;}
.split-media.stack img.behind{position:absolute; right:0; bottom:0; width:62%; aspect-ratio:1/1; z-index:0; opacity:.9;}
.split-media.stack img.front{position:relative; z-index:1; width:78%; aspect-ratio:4/5;}
.checklist{display:grid; grid-template-columns:1fr 1fr; gap:12px 20px; margin-top:22px;}
.checklist li{display:flex; align-items:center; gap:10px; font-weight:600; font-size:.95rem;}
.checklist .tick{width:24px; height:24px; border-radius:50%; background:var(--sky); color:#fff; display:flex; align-items:center; justify-content:center; flex:none; font-size:.72rem;}
.checklist li:nth-child(even) .tick{background:var(--coral);}
@media (max-width:980px){ .split{grid-template-columns:1fr; gap:36px;} .split.reverse .split-media{order:0;} .checklist{grid-template-columns:1fr;} }

/* ============================================================
   Stats / impact
   ============================================================ */
.stats-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:24px; text-align:center;}
.stat-card{padding:10px;}
.stat-num{font-family:var(--font-display); font-size:clamp(2.1rem,4vw,3rem); font-weight:700; color:var(--sun);}
.stat-label{font-size:.92rem; opacity:.85; margin-top:6px;}
@media (max-width:820px){ .stats-grid{grid-template-columns:repeat(2,1fr);} }

/* ============================================================
   Testimonial / quote card
   ============================================================ */
.quote-card{background:#fff; border-radius:var(--radius-lg); padding:38px 34px; box-shadow:var(--shadow-soft); position:relative;}
.quote-card .qmark{font-family:var(--font-display); font-size:3.4rem; color:var(--sun); line-height:.5; display:block; margin-bottom:14px;}
.quote-card p.quote-text{font-size:1.12rem; font-weight:600; color:var(--ink);}
.quote-person{display:flex; align-items:center; gap:12px; margin-top:18px;}
.quote-avatar{width:46px; height:46px; border-radius:50%; background:var(--coral-tint); color:var(--coral-dark); display:flex; align-items:center; justify-content:center; font-weight:700; flex:none;}

/* ============================================================
   Timeline / steps
   ============================================================ */
.steps{counter-reset:step; display:grid; grid-template-columns:repeat(4,1fr); gap:22px;}
.step-card{position:relative; background:#fff; border-radius:var(--radius-md); padding:30px 24px; box-shadow:var(--shadow-soft);}
.step-num{width:40px; height:40px; border-radius:50%; background:var(--ink); color:#fff; display:flex; align-items:center; justify-content:center; font-family:var(--font-display); font-weight:700; margin-bottom:16px;}
@media (max-width:980px){ .steps{grid-template-columns:repeat(2,1fr);} }
@media (max-width:560px){ .steps{grid-template-columns:1fr;} }

/* ============================================================
   Team cards
   ============================================================ */
.team-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:24px;}
.team-card{background:#fff; border-radius:var(--radius-md); overflow:hidden; box-shadow:var(--shadow-soft); text-align:left;}
.team-photo{aspect-ratio:1/1; background:linear-gradient(135deg,var(--coral-tint),var(--violet-tint)); display:flex; align-items:center; justify-content:center; font-family:var(--font-display); font-size:2.4rem; color:var(--coral-dark); position:relative; overflow:hidden;}
.team-photo img{width:100%; height:100%; object-fit:cover;}
.team-body{padding:20px 20px 24px;}
.team-body .role{color:var(--coral-dark); font-weight:700; font-size:.85rem; margin-bottom:8px;}
.team-body p{font-size:.9rem; color:var(--ink-70); margin:0;}
@media (max-width:980px){ .team-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:560px){ .team-grid{grid-template-columns:1fr;} }

/* ============================================================
   FAQ accordion
   ============================================================ */
.faq{max-width:800px; margin:0 auto;}
.faq-item{background:#fff; border-radius:18px; margin-bottom:14px; box-shadow:var(--shadow-soft); overflow:hidden;}
.faq-q{width:100%; display:flex; justify-content:space-between; align-items:center; gap:16px; padding:20px 24px; font-family:var(--font-display); font-weight:700; font-size:1.02rem; background:none; border:none; text-align:left; cursor:pointer; color:var(--ink);}
.faq-q .plus{width:28px; height:28px; border-radius:50%; background:var(--coral-tint); color:var(--coral-dark); display:flex; align-items:center; justify-content:center; flex:none; transition:transform .25s ease;}
.faq-item.open .faq-q .plus{transform:rotate(45deg); background:var(--coral); color:#fff;}
.faq-a{max-height:0; overflow:hidden; transition:max-height .3s ease;}
.faq-a p{padding:0 24px 22px; color:var(--ink-70); margin:0;}

/* ============================================================
   Event cards — colored block, oval photo, date chip, meta bar
   ============================================================ */
.event-card, .post-card{background:#fff; border-radius:var(--radius-md); overflow:hidden; box-shadow:var(--shadow-soft); transition:transform .25s ease, box-shadow .25s ease;}
.event-card:hover, .post-card:hover{transform:translateY(-6px); box-shadow:0 28px 50px -18px rgba(34,28,79,.24);}
.event-photo{background:var(--coral); padding:22px 22px 0; position:relative;}
.event-photo .frame{border-radius:50% / 38%; overflow:hidden; aspect-ratio:16/12;}
.event-photo .frame img{width:100%; height:100%; object-fit:cover;}
.event-photo .date-chip{position:absolute; top:16px; left:50%; transform:translateX(-50%); background:var(--ink); color:#fff; font-family:var(--font-display); font-weight:700; font-size:.82rem; padding:7px 16px; border-radius:var(--radius-pill); white-space:nowrap; z-index:2;}
.event-meta{display:flex; align-items:center; gap:16px; padding:14px 22px; background:var(--sky); color:#fff; font-size:.82rem; font-weight:700;}
.event-meta span{display:flex; align-items:center; gap:6px;}
.event-meta svg{width:14px; height:14px; flex:none;}
.event-body, .post-body{padding:24px;}

/* ============================================================
   Blog / post cards
   ============================================================ */
.post-media{position:relative; padding:14px 14px 0;}
.post-media img{width:100%; aspect-ratio:16/11; object-fit:cover; border-radius:26px; transition:transform .4s ease;}
.post-card:hover .post-media img{transform:scale(1.04);}
.post-meta-bar{display:flex; align-items:center; gap:18px; padding:16px 24px; color:var(--ink-70); font-size:.82rem; font-weight:700;}
.post-meta-bar span{display:flex; align-items:center; gap:6px;}
.post-meta-bar svg{width:14px; height:14px; flex:none; color:var(--coral);}
.post-tag{display:inline-block; background:var(--teal-tint); color:#0C7E77; font-weight:700; font-size:.75rem; padding:5px 12px; border-radius:var(--radius-pill); margin-bottom:10px;}

/* ============================================================
   Contact
   ============================================================ */
.contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:48px;}
.contact-info-card{background:#fff; border-radius:var(--radius-md); padding:28px; box-shadow:var(--shadow-soft); display:flex; gap:16px; margin-bottom:16px;}
.contact-info-card .ico{width:48px; height:48px; border-radius:14px; display:flex; align-items:center; justify-content:center; font-size:1.3rem; flex:none;}
.form-field{margin-bottom:18px;}
.form-field label{display:block; font-weight:700; font-size:.9rem; margin-bottom:7px;}
.form-field input, .form-field textarea, .form-field select{width:100%; padding:14px 16px; border-radius:14px; border:1.5px solid var(--line); font-family:inherit; font-size:.98rem; background:#fff; color:var(--ink); transition:border-color .2s ease, box-shadow .2s ease;}
.form-field input:focus, .form-field textarea:focus, .form-field select:focus{outline:none; border-color:var(--coral); box-shadow:0 0 0 4px var(--coral-tint);}
.contact-choice{display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:26px 0;}
.choice-card{border:1.5px solid var(--line); border-radius:16px; padding:16px; background:#fff; cursor:pointer; font-weight:700; font-size:.92rem; display:flex; align-items:center; gap:10px; transition:border-color .2s ease, background-color .2s ease;}
.choice-card:hover{border-color:var(--coral); background:var(--coral-tint);}
@media (max-width:900px){ .contact-grid{grid-template-columns:1fr;} .contact-choice{grid-template-columns:1fr;} }

/* ============================================================
   CTA banner
   ============================================================ */
.cta-banner{border-radius:var(--radius-lg); padding:56px; text-align:center; position:relative; overflow:hidden; background:var(--ink); color:#fff;}
.cta-banner h2{margin-bottom:12px; color:#fff;}
.cta-banner p{opacity:.82; max-width:520px; margin:0 auto 8px;}
.cta-banner .btn-row{justify-content:center;}

/* ============================================================
   Footer
   ============================================================ */
.site-footer{background:var(--ink); color:rgba(255,255,255,.78); padding-top:70px;}
.footer-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px; padding-bottom:50px; border-bottom:1px solid rgba(255,255,255,.12);}
.footer-logo{display:flex; align-items:center; gap:10px; color:#fff; font-family:var(--font-display); font-weight:700; font-size:1.25rem; margin-bottom:14px;}
.footer-logo .mark{width:38px; height:38px;}
.footer-col h4{color:#fff; font-family:var(--font-body); font-size:.85rem; text-transform:uppercase; letter-spacing:.6px; margin-bottom:16px;}
.footer-col ul li{margin-bottom:11px; font-size:.92rem;}
.footer-col a:hover{color:#fff; text-decoration:underline;}
.footer-social{display:flex; gap:10px; margin-top:18px;}
.footer-social a{width:38px; height:38px; border-radius:50%; background:rgba(255,255,255,.1); display:flex; align-items:center; justify-content:center;}
.footer-social svg{width:16px; height:16px;}
.footer-bottom{display:flex; justify-content:space-between; align-items:center; padding:22px 0; font-size:.82rem; flex-wrap:wrap; gap:10px;}
@media (max-width:900px){ .footer-grid{grid-template-columns:1fr 1fr; gap:32px;} }
@media (max-width:560px){ .footer-grid{grid-template-columns:1fr;} }

/* ============================================================
   Page header (non-home)
   ============================================================ */
.page-hero{padding:56px 0 70px; position:relative; overflow:hidden;}
.breadcrumb{font-size:.85rem; color:var(--ink-45); margin-bottom:14px; font-weight:600;}
.breadcrumb a:hover{color:var(--coral-dark);}
.page-hero .lede{max-width:620px;}

/* ============================================================
   Scroll reveal
   ============================================================ */
.reveal{opacity:0; transform:translateY(26px); transition:opacity .7s ease, transform .7s ease;}
.reveal.in{opacity:1; transform:translateY(0);}
.reveal-stagger > *{opacity:0; transform:translateY(22px); transition:opacity .6s ease, transform .6s ease;}
.reveal-stagger.in > *{opacity:1; transform:translateY(0);}
.reveal-stagger.in > *:nth-child(1){transition-delay:.02s;}
.reveal-stagger.in > *:nth-child(2){transition-delay:.10s;}
.reveal-stagger.in > *:nth-child(3){transition-delay:.18s;}
.reveal-stagger.in > *:nth-child(4){transition-delay:.26s;}

/* ============================================================
   Utility
   ============================================================ */
.mt-0{margin-top:0;} .mb-0{margin-bottom:0;}
.center-text{text-align:center;}
.tag-row{display:flex; gap:10px; flex-wrap:wrap; margin-bottom:16px;}
.small-note{font-size:.85rem; color:var(--ink-45);}
.divider-space{height:8px;}
.back-link{display:inline-flex; align-items:center; gap:8px; font-weight:700; color:var(--coral-dark); margin-bottom:22px;}
.back-link svg{width:16px;}
.two-col-list{display:grid; grid-template-columns:1fr 1fr; gap:10px 26px;}
@media (max-width:640px){ .two-col-list{grid-template-columns:1fr;} }
.map-embed{border-radius:var(--radius-md); overflow:hidden; box-shadow:var(--shadow-soft); border:none; width:100%; height:320px;}
.skip-link{position:absolute; left:-999px; top:auto; background:var(--ink); color:#fff; padding:12px 18px; border-radius:10px; z-index:999;}
.skip-link:focus{left:16px; top:16px;}

/* ============================================================
   CUSTOM HOME HERO — background fade slideshow
   Scoped to .custom-hero so other pages are not affected.
   ============================================================ */
.custom-hero{position:relative;overflow:hidden;min-height:540px;border-radius:0 0 var(--radius-xl) var(--radius-xl);background:#f5f0e8;display:flex;align-items:center;isolation:isolate;}
.custom-hero .hero-bg{position:absolute;inset:0;z-index:0;overflow:hidden;background:#f5f0e8;}
.custom-hero .hero-slides,.custom-hero .hero-slide{position:absolute;inset:0;}
.custom-hero .hero-slide{opacity:0;visibility:hidden;transition:opacity 1.35s ease-in-out,visibility 0s linear 1.35s;}
.custom-hero .hero-slide.active{opacity:1;visibility:visible;transition:opacity 1.35s ease-in-out;}
.custom-hero .hero-slide img{width:100%;height:100%;max-width:none;object-fit:cover;object-position:center;transform:scale(1.02);}
.custom-hero .hero-scrim{position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,rgba(245,240,232,.97) 0%,rgba(245,240,232,.91) 34%,rgba(245,240,232,.65) 55%,rgba(245,240,232,.25) 78%,rgba(245,240,232,.10) 100%);}
.custom-hero .container{position:relative;z-index:2;width:100%;max-width:1180px;margin:0 auto;padding:30px 24px;}
.custom-hero .hero-content{max-width:480px;position:relative;z-index:4;}
.custom-hero .hero-content .eyebrow{display:inline-block;position:relative;font-family:var(--font-display);font-weight:700;font-size:1.05rem;color:#c0392b;margin-bottom:14px;padding-bottom:8px;}
.custom-hero .hero-content .eyebrow svg{position:absolute;left:0;bottom:-2px;width:100%;height:12px;}
.custom-hero .hero-content .eyebrow svg path{stroke:#c0392b;}
.custom-hero .hero-content h1{font-family:var(--font-display);font-size:clamp(2.2rem,4.2vw,3.6rem);margin-bottom:10px;line-height:1.1;font-weight:700;color:#1a3a2a;}
.custom-hero .hero-content h1 .accent{color:#c0392b;}
.custom-hero .hero-content .lede{font-size:.98rem;color:#2c3e2c;opacity:.9;margin-bottom:18px;max-width:640px;line-height:1.5;}
.custom-hero .hero-content .lede strong{color:#c0392b;}
.custom-hero .hero-content .btn-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:0;}
.custom-hero .hero-content .btn{display:inline-flex;align-items:center;gap:8px;font-weight:700;font-family:var(--font-body);font-size:.92rem;padding:11px 24px;border-radius:var(--radius-pill);border:2px solid transparent;cursor:pointer;transition:transform .22s ease,box-shadow .22s ease,background-color .22s ease,color .22s ease;white-space:nowrap;text-decoration:none;}
.custom-hero .hero-content .btn-primary{background:#c0392b;color:#fff;box-shadow:0 20px 44px -14px rgba(192,57,43,.4);}
.custom-hero .hero-content .btn-primary:hover{transform:translateY(-3px) scale(1.03);background:#a93226;}
.custom-hero .hero-content .btn-white{background:#fff;color:#c0392b;border-color:#c0392b;}
.custom-hero .hero-content .btn-white:hover{transform:translateY(-3px) scale(1.02);background:#c0392b;color:#fff;}
.custom-hero .hero-content .pulse{animation:custom-hero-pulse-ring 2.6s ease-out infinite;}
@keyframes custom-hero-pulse-ring{0%{box-shadow:0 0 0 0 rgba(192,57,43,.45);}70%{box-shadow:0 0 0 14px rgba(192,57,43,0);}100%{box-shadow:0 0 0 0 rgba(192,57,43,0);}}
.custom-hero .hero-float-badge{position:absolute;z-index:5;background:#fff;border-radius:20px;box-shadow:var(--shadow-soft);padding:10px 14px;display:flex;align-items:center;gap:10px;}
.custom-hero .hero-float-badge .ico{width:34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:1rem;flex:none;}
.custom-hero .hero-float-badge strong{display:block;font-size:.9rem;}
.custom-hero .hero-float-badge span{font-size:.7rem;color:var(--ink-45);}
.custom-hero .b1{top:4%;right:4%;}.custom-hero .b2{bottom:6%;left:4%;}
.custom-hero .floaty{animation:custom-hero-float-y 5.5s ease-in-out infinite;}.custom-hero .floaty-slow{animation:custom-hero-float-y-slow 7s ease-in-out infinite;}
@keyframes custom-hero-float-y{0%,100%{transform:translateY(0) rotate(0deg);}50%{transform:translateY(-14px) rotate(2deg);}}
@keyframes custom-hero-float-y-slow{0%,100%{transform:translateY(0);}50%{transform:translateY(12px);}}
@media (max-width:1024px){.custom-hero .hero-content{max-width:400px;}}
@media (max-width:820px){.custom-hero .hero-content{max-width:340px;}.custom-hero .b1,.custom-hero .b2{display:none;}.custom-hero{min-height:480px;}.custom-hero .hero-scrim{background:linear-gradient(90deg,rgba(245,240,232,.94) 0%,rgba(245,240,232,.82) 48%,rgba(245,240,232,.40) 100%);}}
@media (max-width:700px){.custom-hero .hero-content{max-width:100%;}.custom-hero .hero-scrim{background:rgba(245,240,232,.88);}.custom-hero{min-height:440px;}.custom-hero .container{padding:24px 16px;}.custom-hero .hero-slide img{object-position:center;}}
@media (prefers-reduced-motion:reduce){.custom-hero .hero-slide,.custom-hero .hero-slide.active{transition:none;}}
.custom-hero + .mvv-wrap{margin-top:-40px;}