/* =====================================================================
   CareFwrd — Compassion in Motion
   Shared design system
   Palette:
     --navy   #242743  (primary)
     --slate  #2F3153
     --mint   #8DBDBC
     --copper #C58A53
     --berry  #C33D78
     --white  #F8F9FA
   ===================================================================== */

:root{
  --navy:#242743;
  --slate:#2F3153;
  --mint:#8DBDBC;
  --mint-dark:#6fa5a4;
  --mint-soft:#e7f1f0;
  --copper:#C58A53;
  --copper-soft:#f4e9dd;
  --berry:#C33D78;
  --berry-soft:#f8e3ee;
  --white:#F8F9FA;
  --ink:#242743;
  --muted:#5b5f78;
  --line:#e6e7ee;
  --shadow-sm:0 2px 10px rgba(36,39,67,.06);
  --shadow-md:0 14px 40px rgba(36,39,67,.10);
  --shadow-lg:0 30px 70px rgba(36,39,67,.16);
  --radius:18px;
  --radius-sm:12px;
  --radius-lg:28px;
  --maxw:1180px;
  --font-head:"Fraunces","Georgia",serif;
  --font-body:"Plus Jakarta Sans","Segoe UI",system-ui,-apple-system,sans-serif;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:var(--font-body);
  color:var(--ink);
  background:var(--white);
  line-height:1.65;
  font-size:17px;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}

h1,h2,h3,h4{font-family:var(--font-head);font-weight:600;color:var(--navy);line-height:1.12;letter-spacing:-.015em;margin:0 0 .5em}
h1{font-size:clamp(2.5rem,5.4vw,4rem)}
h2{font-size:clamp(2rem,3.6vw,2.9rem)}
h3{font-size:clamp(1.3rem,2vw,1.6rem)}
p{margin:0 0 1.1em}

.container{max-width:var(--maxw);margin:0 auto;padding:0 clamp(20px,5vw,40px)}
.section{padding:clamp(64px,9vw,120px) 0}
.section--tight{padding:clamp(48px,6vw,80px) 0}
.center{text-align:center}
.narrow{max-width:760px;margin-inline:auto}

.eyebrow{
  display:inline-flex;align-items:center;gap:.55em;
  font-family:var(--font-body);font-weight:700;
  text-transform:uppercase;letter-spacing:.16em;font-size:.72rem;
  color:var(--mint-dark);margin:0 0 1rem;
}
.eyebrow::before{content:"";width:26px;height:2px;background:var(--copper);border-radius:2px}
.eyebrow.center-line{justify-content:center}
.lead{font-size:clamp(1.05rem,1.6vw,1.22rem);color:var(--muted);max-width:640px}
.center .lead{margin-inline:auto}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.55em;
  font-family:var(--font-body);font-weight:700;font-size:1rem;
  padding:.95em 1.7em;border-radius:999px;cursor:pointer;border:2px solid transparent;
  transition:transform .2s ease, box-shadow .2s ease, background .2s ease, color .2s ease;
  white-space:nowrap;
}
.btn:active{transform:translateY(1px)}
.btn--primary{background:var(--berry);color:#fff;box-shadow:0 12px 26px rgba(195,61,120,.28)}
.btn--primary:hover{transform:translateY(-2px);box-shadow:0 18px 34px rgba(195,61,120,.36)}
.btn--copper{background:var(--copper);color:#fff;box-shadow:0 12px 26px rgba(197,138,83,.28)}
.btn--copper:hover{transform:translateY(-2px);box-shadow:0 18px 34px rgba(197,138,83,.36)}
.btn--ghost{background:transparent;color:var(--navy);border-color:rgba(36,39,67,.18)}
.btn--ghost:hover{border-color:var(--navy);background:var(--navy);color:#fff}
.btn--light{background:#fff;color:var(--navy)}
.btn--light:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}
.btn--outline-light{background:transparent;color:#fff;border-color:rgba(255,255,255,.4)}
.btn--outline-light:hover{background:#fff;color:var(--navy)}

/* ---------- Header / Nav ---------- */
.site-header{
  position:sticky;top:0;z-index:60;
  background:rgba(248,249,250,.82);backdrop-filter:saturate(180%) blur(14px);
  border-bottom:1px solid transparent;transition:border-color .25s ease, box-shadow .25s ease, background .25s ease;
}
.site-header.scrolled{border-color:var(--line);box-shadow:var(--shadow-sm)}
.nav{display:flex;align-items:center;justify-content:space-between;height:78px}
.nav__menu{display:flex;align-items:center;gap:1.2rem}
.nav__brand{display:flex;align-items:center;gap:.6rem}
.nav__brand img{height:42px;width:auto}
.nav__links{display:flex;align-items:center;gap:.35rem;list-style:none;margin:0;padding:0}
.nav__links a{
  font-weight:600;font-size:.98rem;color:var(--slate);
  padding:.5rem .95rem;border-radius:999px;transition:color .2s,background .2s;
}
.nav__links a:hover{color:var(--navy);background:var(--mint-soft)}
.nav__links a.active{color:var(--navy);background:var(--mint-soft)}
.nav__cta{margin-left:.6rem}
.nav__toggle{display:none;background:none;border:0;cursor:pointer;padding:8px;border-radius:10px}
.nav__toggle span{display:block;width:24px;height:2px;background:var(--navy);margin:5px 0;border-radius:2px;transition:.3s}
.nav__toggle.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav__toggle.open span:nth-child(2){opacity:0}
.nav__toggle.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

@media(max-width:1040px){
  .nav__toggle{display:block}
  .nav__menu{
    position:fixed;inset:78px 0 auto 0;background:var(--white);
    border-bottom:1px solid var(--line);box-shadow:var(--shadow-md);
    flex-direction:column;align-items:stretch;gap:0;padding:14px 20px 24px;
    display:none;
  }
  .nav__menu.open{display:flex}
  .nav__links{flex-direction:column;align-items:stretch;gap:2px}
  .nav__links a{padding:.85rem 1rem;font-size:1.05rem}
  .nav__cta{margin:12px 0 0}
  .nav__cta .btn{width:100%}
}

/* ---------- Hero ---------- */
.hero{position:relative;overflow:hidden;background:linear-gradient(180deg,#fff 0%,var(--mint-soft) 100%)}
.hero__grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(32px,5vw,64px);align-items:center;
  padding:clamp(48px,7vw,90px) 0 clamp(56px,8vw,100px)}
.badge{
  display:inline-flex;flex-direction:column;gap:2px;align-items:flex-start;
  background:#fff;border:1px solid var(--line);border-radius:14px;
  padding:.6rem 1rem;box-shadow:var(--shadow-sm);margin-bottom:1.4rem;
}
.badge strong{font-weight:800;font-size:.82rem;letter-spacing:.02em;color:var(--navy);display:flex;align-items:center;gap:.5em}
.badge strong::before{content:"";width:9px;height:9px;border-radius:50%;background:var(--mint-dark);box-shadow:0 0 0 4px var(--mint-soft)}
.badge span{font-size:.78rem;color:var(--muted);font-weight:600;letter-spacing:.04em}
.hero h1{margin-bottom:.35em}
.hero h1 .accent{color:var(--berry)}
.hero__sub{font-size:clamp(1.05rem,1.7vw,1.25rem);color:var(--slate);font-weight:600;margin-bottom:.6em}
.hero__text{color:var(--muted);max-width:520px;margin-bottom:1.8em}
.hero__actions{display:flex;flex-wrap:wrap;gap:.9rem}
.hero__media{position:relative}
.hero__photo{
  position:relative;border-radius:var(--radius-lg);overflow:hidden;aspect-ratio:4/5;
  background:
    radial-gradient(120% 90% at 20% 10%, rgba(141,189,188,.55), transparent 60%),
    radial-gradient(120% 90% at 90% 90%, rgba(197,138,83,.45), transparent 55%),
    linear-gradient(160deg,#e9f0ef,#f6ede2);
  box-shadow:var(--shadow-lg);border:1px solid rgba(255,255,255,.6);
  display:flex;align-items:center;justify-content:center;text-align:center;
}
.hero__photo .photo-slot{padding:2rem;color:var(--slate)}
.hero__photo .photo-slot svg{width:60px;height:60px;margin:0 auto .8rem;opacity:.7}
.hero__photo .photo-slot p{font-weight:600;font-size:.92rem;margin:0;color:var(--slate)}
.hero__photo .photo-slot small{display:block;color:var(--muted);font-weight:500;margin-top:.35rem;font-size:.78rem}
.hero__float{
  position:absolute;background:#fff;border-radius:16px;box-shadow:var(--shadow-md);
  padding:.85rem 1.1rem;display:flex;align-items:center;gap:.7rem;font-weight:700;font-size:.9rem;color:var(--navy);
}
.hero__float .dot{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;color:#fff;font-size:1.1rem}
.hero__float--tl{top:8%;left:-18px}
.hero__float--br{bottom:9%;right:-14px}
.hero__float small{display:block;font-weight:500;color:var(--muted);font-size:.72rem}

@media(max-width:860px){
  .hero__grid{grid-template-columns:1fr;text-align:center}
  .hero__text,.hero__sub{margin-inline:auto}
  .badge{align-items:center}
  .hero__actions{justify-content:center}
  .hero__media{max-width:420px;margin:0 auto}
  .hero__float--tl{left:-6px}
  .hero__float--br{right:-6px}
}

/* ---------- Section headers ---------- */
.sec-head{max-width:720px}
.sec-head.center{margin-inline:auto}

/* ---------- Cards ---------- */
.grid{display:grid;gap:clamp(18px,2.5vw,28px)}
.grid-2{grid-template-columns:repeat(2,1fr)}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-4{grid-template-columns:repeat(4,1fr)}
@media(max-width:900px){.grid-3,.grid-4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}}

.card{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:clamp(24px,3vw,34px);box-shadow:var(--shadow-sm);
  transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;
  height:100%;
}
.card:hover{transform:translateY(-5px);box-shadow:var(--shadow-md);border-color:transparent}
.card__icon{
  width:54px;height:54px;border-radius:15px;display:grid;place-items:center;
  font-size:1.5rem;margin-bottom:1.1rem;
}
.card h3{margin-bottom:.4em}
.card p{color:var(--muted);margin:0;font-size:.98rem}

.ico-mint{background:var(--mint-soft);color:var(--mint-dark)}
.ico-copper{background:var(--copper-soft);color:var(--copper)}
.ico-berry{background:var(--berry-soft);color:var(--berry)}
.ico-navy{background:#e7e8f0;color:var(--navy)}

/* ---------- Value / philosophy band ---------- */
.band{background:var(--navy);color:#fff;position:relative;overflow:hidden}
.band h2,.band h3{color:#fff}
.band .lead{color:rgba(255,255,255,.8)}
.band .eyebrow{color:var(--mint)}
.band::before{content:"";position:absolute;width:520px;height:520px;border-radius:50%;
  background:radial-gradient(circle,rgba(141,189,188,.22),transparent 70%);top:-180px;right:-120px}
.band::after{content:"";position:absolute;width:460px;height:460px;border-radius:50%;
  background:radial-gradient(circle,rgba(197,138,83,.18),transparent 70%);bottom:-200px;left:-140px}
.band .container{position:relative;z-index:1}

.philosophy{text-align:center}
.philosophy .big{
  font-family:var(--font-head);font-size:clamp(2rem,4.5vw,3.4rem);font-weight:600;
  letter-spacing:-.02em;margin:.2em 0 .5em;color:#fff;
}
.philosophy .big em{font-style:italic;color:var(--mint)}

/* value list */
.values{display:grid;gap:clamp(14px,2vw,20px);grid-template-columns:repeat(2,1fr);margin-top:2.4rem;text-align:left}
@media(max-width:760px){.values{grid-template-columns:1fr}}
.value{
  display:flex;gap:1rem;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.09);
  border-radius:16px;padding:1.3rem 1.4rem;
}
.value .v-ico{flex:0 0 46px;height:46px;border-radius:13px;display:grid;place-items:center;font-size:1.3rem;background:rgba(141,189,188,.18)}
.value h4{color:#fff;margin:0 0 .3em;font-size:1.12rem}
.value p{color:rgba(255,255,255,.72);margin:0;font-size:.94rem}

/* ---------- Programs split ---------- */
.split{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(20px,3vw,30px)}
@media(max-width:760px){.split{grid-template-columns:1fr}}
.program{
  position:relative;border-radius:var(--radius);padding:clamp(28px,3.4vw,42px);
  border:1px solid var(--line);background:#fff;box-shadow:var(--shadow-sm);overflow:hidden;
}
.program::before{content:"";position:absolute;top:0;left:0;right:0;height:5px}
.program--obra::before{background:linear-gradient(90deg,var(--mint),var(--mint-dark))}
.program--act::before{background:linear-gradient(90deg,var(--copper),#e0a86f)}
.program .tag{display:inline-block;font-weight:800;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;
  padding:.35em .8em;border-radius:999px;margin-bottom:1rem}
.program--obra .tag{background:var(--mint-soft);color:var(--mint-dark)}
.program--act .tag{background:var(--copper-soft);color:var(--copper)}
.program h3{font-size:clamp(1.5rem,2.4vw,1.9rem)}
.program p{color:var(--muted)}
.program a.link{display:inline-flex;align-items:center;gap:.4em;font-weight:700;color:var(--navy);margin-top:.4rem}
.program a.link:hover{color:var(--berry)}

/* ---------- Steps / How it works ---------- */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(18px,2.4vw,26px);counter-reset:step}
@media(max-width:900px){.steps{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.steps{grid-template-columns:1fr}}
.step{position:relative;padding:1.6rem 1.4rem;background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm)}
.step__num{
  width:44px;height:44px;border-radius:13px;background:var(--navy);color:#fff;
  font-family:var(--font-head);font-weight:600;font-size:1.2rem;display:grid;place-items:center;margin-bottom:1rem;
}
.step h4{margin:0 0 .35em;font-size:1.12rem}
.step p{margin:0;color:var(--muted);font-size:.94rem}

/* ---------- CTA band ---------- */
.cta-band{
  background:linear-gradient(135deg,var(--berry),#a8306a);color:#fff;border-radius:var(--radius-lg);
  padding:clamp(40px,6vw,72px);text-align:center;position:relative;overflow:hidden;box-shadow:var(--shadow-lg);
}
.cta-band h2{color:#fff}
.cta-band p{color:rgba(255,255,255,.88);max-width:560px;margin:0 auto 1.6em}
.cta-band .btn{margin:.3rem}
.cta-band::after{content:"";position:absolute;width:360px;height:360px;border-radius:50%;
  background:rgba(255,255,255,.08);top:-140px;right:-90px}

/* ---------- Feature rows (About/Services) ---------- */
.feature{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,5vw,64px);align-items:center}
.feature--rev .feature__media{order:2}
@media(max-width:820px){.feature{grid-template-columns:1fr}.feature--rev .feature__media{order:0}}
.feature__media{
  border-radius:var(--radius-lg);aspect-ratio:5/4;box-shadow:var(--shadow-md);
  display:flex;align-items:center;justify-content:center;text-align:center;color:var(--slate);
  border:1px solid rgba(255,255,255,.6);
}
.media-mint{background:
  radial-gradient(120% 90% at 15% 15%,rgba(141,189,188,.6),transparent 60%),
  linear-gradient(160deg,#e9f0ef,#f4f7f6)}
.media-copper{background:
  radial-gradient(120% 90% at 85% 20%,rgba(197,138,83,.5),transparent 60%),
  linear-gradient(160deg,#f6ede2,#fbf6ef)}
.media-berry{background:
  radial-gradient(120% 90% at 20% 80%,rgba(195,61,120,.4),transparent 60%),
  linear-gradient(160deg,#f8e3ee,#fdf3f8)}
.feature__media .slot{padding:1.6rem}
.feature__media .slot svg{width:48px;height:48px;margin:0 auto .6rem;opacity:.65}
.feature__media .slot small{font-weight:600;font-size:.82rem}

/* bullet list */
.check-list{list-style:none;margin:1.2rem 0 0;padding:0;display:grid;gap:.75rem}
.check-list li{display:flex;gap:.7rem;align-items:flex-start;color:var(--slate);font-weight:500}
.check-list li::before{
  content:"";flex:0 0 22px;height:22px;margin-top:2px;border-radius:50%;
  background:var(--mint-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236fa5a4' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") center/12px no-repeat;
}

/* ---------- Stats ---------- */
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2.4vw,28px)}
@media(max-width:640px){.stats{grid-template-columns:1fr}}
.stat{text-align:center;padding:1.6rem 1rem;background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm)}
.stat .num{font-family:var(--font-head);font-size:clamp(2.2rem,4vw,3rem);font-weight:600;color:var(--berry);line-height:1}
.stat .lbl{color:var(--muted);font-weight:600;font-size:.92rem;margin-top:.4rem}

/* ---------- FAQ ---------- */
.faq{max-width:820px;margin-inline:auto;display:grid;gap:14px}
.faq__item{background:#fff;border:1px solid var(--line);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);overflow:hidden}
.faq__q{width:100%;text-align:left;background:none;border:0;cursor:pointer;
  padding:1.15rem 1.3rem;font-family:var(--font-body);font-weight:700;font-size:1.03rem;color:var(--navy);
  display:flex;justify-content:space-between;align-items:center;gap:1rem}
.faq__q .chev{flex:0 0 auto;transition:transform .3s;color:var(--mint-dark);font-size:1.3rem;line-height:1}
.faq__item.open .chev{transform:rotate(45deg)}
.faq__a{max-height:0;overflow:hidden;transition:max-height .35s ease}
.faq__a p{margin:0;padding:0 1.3rem 1.2rem;color:var(--muted)}

/* ---------- Forms ---------- */
.form-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);
  box-shadow:var(--shadow-md);padding:clamp(28px,4vw,44px)}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem}
@media(max-width:620px){.form-grid{grid-template-columns:1fr}}
.field{display:flex;flex-direction:column;gap:.4rem}
.field.full{grid-column:1/-1}
.field label{font-weight:700;font-size:.86rem;color:var(--slate)}
.field label .req{color:var(--berry)}
.field input,.field select,.field textarea{
  font-family:var(--font-body);font-size:1rem;color:var(--ink);
  padding:.85rem 1rem;border:1.5px solid var(--line);border-radius:12px;background:#fdfdfe;
  transition:border-color .2s, box-shadow .2s;width:100%;
}
.field textarea{resize:vertical;min-height:130px}
.field input:focus,.field select:focus,.field textarea:focus{
  outline:none;border-color:var(--mint-dark);box-shadow:0 0 0 4px var(--mint-soft)
}
.form-note{font-size:.82rem;color:var(--muted);margin-top:1rem}
.form-success{
  display:none;background:var(--mint-soft);border:1px solid var(--mint);color:var(--navy);
  border-radius:14px;padding:1rem 1.2rem;margin-bottom:1.2rem;font-weight:600;
}
.form-success.show{display:block}

/* radio pills */
.pill-group{display:flex;flex-wrap:wrap;gap:.6rem}
.pill{position:relative}
.pill input{position:absolute;opacity:0;inset:0;cursor:pointer}
.pill span{display:inline-block;padding:.6rem 1.1rem;border:1.5px solid var(--line);border-radius:999px;
  font-weight:600;font-size:.92rem;color:var(--slate);transition:.2s;cursor:pointer}
.pill input:checked + span{background:var(--navy);color:#fff;border-color:var(--navy)}

/* ---------- Contact info ---------- */
.info-list{display:grid;gap:1.1rem}
.info-item{display:flex;gap:1rem;align-items:flex-start}
.info-item .i-ico{flex:0 0 46px;height:46px;border-radius:13px;display:grid;place-items:center;font-size:1.2rem;background:var(--mint-soft);color:var(--mint-dark)}
.info-item h4{margin:0 0 .15em;font-size:1.05rem}
.info-item p{margin:0;color:var(--muted)}
.info-item a:hover{color:var(--berry)}
.map-embed{border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm);border:1px solid var(--line);height:100%;min-height:280px}
.map-embed iframe{width:100%;height:100%;border:0;display:block;min-height:280px}

/* ---------- Page hero (interior) ---------- */
.page-hero{background:linear-gradient(180deg,#fff, var(--mint-soft));padding:clamp(52px,7vw,88px) 0 clamp(40px,5vw,64px);text-align:center}
.page-hero .lead{margin-inline:auto}
.breadcrumb{font-size:.82rem;color:var(--muted);font-weight:600;margin-bottom:1rem;letter-spacing:.04em}
.breadcrumb a:hover{color:var(--berry)}

/* ---------- Footer ---------- */
.footer{background:#1a1c31;color:rgba(255,255,255,.8);padding:clamp(48px,6vw,72px) 0 28px;margin-top:0;
  border-top:1px solid rgba(255,255,255,.08)}
.footer a{color:rgba(255,255,255,.8);transition:color .2s}
.footer a:hover{color:#fff}
.footer__top{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.2fr;gap:clamp(24px,3vw,40px)}
@media(max-width:860px){.footer__top{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.footer__top{grid-template-columns:1fr}}
.footer__brand img{height:40px;margin-bottom:1rem}
.footer__brand p{color:rgba(255,255,255,.62);font-size:.94rem;max-width:300px}
.footer h5{color:#fff;font-family:var(--font-body);font-weight:700;font-size:.82rem;text-transform:uppercase;letter-spacing:.12em;margin:0 0 1.1rem}
.footer ul{list-style:none;margin:0;padding:0;display:grid;gap:.6rem;font-size:.94rem}
.footer__badge{display:inline-flex;flex-direction:column;gap:2px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);
  border-radius:12px;padding:.7rem .95rem;margin-top:.4rem}
.footer__badge strong{color:#fff;font-size:.82rem}
.footer__badge span{font-size:.76rem;color:rgba(255,255,255,.6)}
.footer__bottom{border-top:1px solid rgba(255,255,255,.12);margin-top:2.6rem;padding-top:1.6rem;
  display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;align-items:center;font-size:.84rem;color:rgba(255,255,255,.55)}
.footer__legal{display:flex;flex-wrap:wrap;gap:1.2rem}
.footer__legal a{font-size:.84rem}

/* ---------- Reveal animation ---------- */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease, transform .7s ease}
.reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}html{scroll-behavior:auto}}

/* utility */
.mt-0{margin-top:0}.mb-0{margin-bottom:0}
.tint{background:var(--mint-soft)}
.tint-soft{background:linear-gradient(180deg,#fff,var(--mint-soft))}

/* =====================================================================
   REDESIGN LAYER — animated W mark, line icons, de-boxed sections
   ===================================================================== */

/* ---- Brand wordmark in nav/footer ---- */
.nav__brand img{height:34px;width:auto}
.footer__brand img{height:34px}

/* ---- Logo mark (real logo, split into W + dot for animation) ---- */
.wmark{position:relative;display:block;line-height:0}
.wmark-w{width:100%;height:auto;display:block}
.wmark-dot{position:absolute;top:0;left:0;width:100%;height:auto;transform-origin:50% 45%}
.wmark[data-drop] .wmark-dot{opacity:0;transform:translateY(-34%)}
.wmark[data-drop].in .wmark-dot{animation:dotDrop2 1s cubic-bezier(.18,.7,.3,1.4) forwards}
@keyframes dotDrop2{
  0%{opacity:0;transform:translateY(-34%)}
  55%{opacity:1;transform:translateY(0)}
  72%{transform:translateY(5%)}
  86%{transform:translateY(-2%)}
  100%{opacity:1;transform:translateY(0)}
}
@media(prefers-reduced-motion:reduce){
  .wmark[data-drop] .wmark-dot{opacity:1;transform:none}
  .wmark[data-drop].in .wmark-dot{animation:none}
}

/* ---- (legacy) Animated W-dot SVG mark ---- */
.wmark svg{display:none}
.wmark svg{width:100%;height:auto;overflow:visible}
.wmark .w-stroke{fill:none;stroke:var(--wmark-color,#242743);stroke-width:15;stroke-linecap:round;stroke-linejoin:round}
.wmark .w-dot{fill:var(--wdot-color,#C58A53);transform-box:fill-box;transform-origin:center}
/* resting state before animation */
.wmark[data-drop] .w-dot{opacity:0;transform:translateY(-46px) scale(.55)}
.wmark[data-drop].in .w-dot{animation:dotDrop 1s cubic-bezier(.18,.7,.3,1.35) forwards}
@keyframes dotDrop{
  0%{opacity:0;transform:translateY(-46px) scale(.55)}
  55%{opacity:1;transform:translateY(0) scale(1)}
  70%{transform:translateY(2px) scale(1.06)}
  82%{transform:translateY(-6px) scale(.98)}
  100%{opacity:1;transform:translateY(0) scale(1)}
}
@media(prefers-reduced-motion:reduce){
  .wmark[data-drop] .w-dot{opacity:1;transform:none}
  .wmark[data-drop].in .w-dot{animation:none}
}
.wmark--light{--wmark-color:var(--mint);--wdot-color:var(--berry)}
.wmark--onnavy{--wmark-color:#fff;--wdot-color:var(--berry)}

/* small static mark for nav */
.brand-mark{width:30px;flex:0 0 30px}
.brand-mark .w-dot{opacity:1;transform:none}

/* ---- Line icons ---- */
.ico{width:26px;height:26px;stroke:currentColor;fill:none;stroke-width:1.7;
  stroke-linecap:round;stroke-linejoin:round;display:inline-block;vertical-align:middle}
.ico--lg{width:32px;height:32px}
.txt-mint{color:var(--mint-dark)}
.txt-copper{color:var(--copper)}
.txt-berry{color:var(--berry)}
.txt-navy{color:var(--navy)}

/* ---- De-boxed: soft feature columns (no borders) ---- */
.cols{display:grid;gap:clamp(28px,4vw,48px)}
.cols-3{grid-template-columns:repeat(3,1fr)}
.cols-2{grid-template-columns:repeat(2,1fr)}
@media(max-width:760px){.cols-3{grid-template-columns:1fr}.cols-2{grid-template-columns:1fr}}
.col-item{max-width:340px}
.col-item .ico{margin-bottom:.9rem}
.col-item h3{font-size:1.25rem;margin-bottom:.35em}
.col-item p{color:var(--muted);margin:0;font-size:.98rem}

/* ---- De-boxed value list (hairline dividers) ---- */
.vlist{max-width:940px;margin:2.4rem auto 0;display:grid;gap:0}
.vrow{display:grid;grid-template-columns:36px 1fr;gap:1.1rem;align-items:start;
  padding:1.5rem 0;border-top:1px solid var(--line)}
.vrow:last-child{border-bottom:1px solid var(--line)}
.vrow .vr-ico{color:var(--mint-dark);margin-top:2px}
.vrow h4{margin:0 0 .3em;font-size:1.18rem}
.vrow p{margin:0;color:var(--muted)}
.band .vrow{border-color:rgba(255,255,255,.14)}
.band .vrow h4{color:#fff}
.band .vrow p{color:rgba(255,255,255,.72)}
.band .vrow .vr-ico{color:var(--mint)}
@media(min-width:720px){
  .vlist--2{grid-template-columns:1fr 1fr;column-gap:3.2rem}
  .vlist--2 .vrow:nth-child(2){border-top:1px solid var(--line)}
}

/* ---- Steps as a connected flow (lighter) ---- */
.flow{display:grid;grid-template-columns:repeat(4,1fr);gap:0;position:relative;margin-top:3rem}
@media(max-width:820px){.flow{grid-template-columns:1fr 1fr;row-gap:2.4rem}}
@media(max-width:480px){.flow{grid-template-columns:1fr;row-gap:1.8rem}}
.fstep{position:relative;padding:0 1.2rem;text-align:center}
.fstep__num{width:52px;height:52px;border-radius:50%;background:#fff;border:2px solid var(--mint);
  color:var(--navy);font-family:var(--font-head);font-weight:600;font-size:1.25rem;
  display:grid;place-items:center;margin:0 auto 1rem;position:relative;z-index:2}
.fstep__line{position:absolute;top:26px;left:50%;width:100%;height:2px;background:var(--line);z-index:1}
.fstep:last-child .fstep__line{display:none}
@media(max-width:820px){.fstep__line{display:none}}
.fstep h4{margin:0 0 .3em;font-size:1.1rem}
.fstep p{margin:0;color:var(--muted);font-size:.94rem}

/* ---- Lighter cards (soft, minimal) ---- */
.card{border:0;box-shadow:none;background:transparent;padding:0}
.card:hover{transform:none;box-shadow:none}
.soft{background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:clamp(24px,3vw,32px);box-shadow:var(--shadow-sm);transition:transform .25s,box-shadow .25s}
.soft:hover{transform:translateY(-4px);box-shadow:var(--shadow-md)}

/* ---- Programs lighter ---- */
.program{box-shadow:none;background:#fff}
.program:hover{box-shadow:var(--shadow-sm)}

/* ---- Pathway (referrals) minimal ---- */
.pathways{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(24px,3vw,40px)}
@media(max-width:760px){.pathways{grid-template-columns:1fr}}
.pathway{padding:0}
.pathway .ico{margin-bottom:.8rem}
.pathway h3{font-size:1.25rem;margin-bottom:.35em}
.pathway p{color:var(--muted);margin:0 0 .6rem}

/* ---- Reworked CTA: light, compact, mark-led ---- */
.cta{position:relative;text-align:center;max-width:720px;margin-inline:auto;padding:0}
.cta .wmark{width:74px;margin:0 auto 1.4rem}
.cta h2{margin-bottom:.4em}
.cta p{color:var(--muted);max-width:520px;margin:0 auto 1.7em}
.cta__actions{display:flex;flex-wrap:wrap;gap:.9rem;justify-content:center}
.cta-rule{max-width:1180px;margin:0 auto;border:0;border-top:1px solid var(--line)}

/* CTA with big animated mark on the left */
.cta--split{max-width:1000px;display:grid;grid-template-columns:auto 1fr;
  column-gap:clamp(28px,5vw,60px);align-items:center;text-align:left}
.cta--split .wmark{grid-column:1;grid-row:1 / 4;width:clamp(120px,15vw,180px);margin:0;align-self:center}
.cta--split h2{grid-column:2;margin-bottom:.35em}
.cta--split p{grid-column:2;margin-left:0;margin-right:0;max-width:600px}
.cta--split .cta__actions{grid-column:2;justify-content:flex-start}
@media(max-width:640px){
  .cta--split{grid-template-columns:1fr;text-align:center;justify-items:center}
  .cta--split .wmark{grid-column:1;grid-row:auto;margin:0 auto 1rem}
  .cta--split h2,.cta--split p,.cta--split .cta__actions{grid-column:1}
  .cta--split p{margin-inline:auto}
  .cta--split .cta__actions{justify-content:center}
}

/* mark divider used between sections */
.mark-divider{display:flex;align-items:center;gap:1.4rem;max-width:520px;margin:0 auto}
.mark-divider::before,.mark-divider::after{content:"";flex:1;height:1px;background:var(--line)}
.mark-divider .wmark{width:38px;flex:0 0 38px}

/* nav brand layout */
.nav__brand{gap:.55rem}
.nav__brand img{height:32px}

/* ---- Photo hero with text overlay ---- */
.hero--photo{position:relative;min-height:82vh;display:flex;align-items:center;
  background:var(--navy);overflow:hidden}
.hero--photo .hero-bg{position:absolute;inset:0;
  background-image:url("../assets/img/hero.jpg");background-size:cover;
  background-position:75% center;background-repeat:no-repeat}
.hero--photo .hero-overlay{position:absolute;inset:0;
  background:linear-gradient(90deg, rgba(30,33,58,.94) 0%, rgba(30,33,58,.82) 34%, rgba(30,33,58,.45) 62%, rgba(30,33,58,.12) 100%)}
.hero--photo .container{position:relative;z-index:2;width:100%;
  padding-top:clamp(48px,7vw,84px);padding-bottom:clamp(48px,7vw,84px)}
.hero--photo .hero__copy{max-width:600px}
.hero--photo h1{color:#fff}
.hero--photo h1 .accent{color:var(--mint)}
.hero--photo .hero__sub{color:#fff}
.hero--photo .hero__text{color:rgba(255,255,255,.85)}
.hero--photo .badge{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.22);backdrop-filter:blur(6px)}
.hero--photo .badge strong{color:#fff}
.hero--photo .badge span{color:rgba(255,255,255,.8)}
.hero--photo .badge strong::before{box-shadow:0 0 0 4px rgba(141,189,188,.25)}
@media(max-width:720px){
  .hero--photo{min-height:0}
  .hero--photo .hero-bg{background-position:70% center}
  .hero--photo .hero-overlay{background:linear-gradient(180deg, rgba(30,33,58,.72) 0%, rgba(30,33,58,.86) 60%, rgba(30,33,58,.94) 100%)}
  .hero--photo .hero__copy{max-width:none;text-align:center;margin-inline:auto}
  .hero--photo .badge{margin-inline:auto}
  .hero--photo .hero__actions{justify-content:center}
}

/* photos filling feature media boxes */
.feature__media{overflow:hidden;padding:0}
.feature__media img{width:100%;height:100%;object-fit:cover;display:block;
  transform:scale(1.08);transition:transform 1.1s cubic-bezier(.2,.7,.2,1)}
.feature__media.in img{transform:scale(1)}
.feature__media:hover img{transform:scale(1.05)}

/* round leadership headshots */
.team-photo{width:132px;height:132px;border-radius:50%;object-fit:cover;
  margin:0 auto .9rem;box-shadow:var(--shadow-sm);border:3px solid #fff;
  transition:transform .3s ease, box-shadow .3s ease}
.team-photo:hover{transform:translateY(-4px) scale(1.03);box-shadow:var(--shadow-md)}

@media(prefers-reduced-motion:reduce){
  .feature__media img{transform:none;transition:none}
  .feature__media.in img,.feature__media:hover img{transform:none}
  .hero--photo .hero-bg{animation:none}
}

/* left-aligned section head variant */
.sec-head.left{margin-inline:0;max-width:640px}
.cols.left-align{justify-items:start}
.cols.left-align .col-item{text-align:left}

/* =====================================================================
   SIGNATURE EXPERIENCES / CARECIRCLE / CAREJOURNEY
   ===================================================================== */
.tm{font-size:.5em;vertical-align:super;font-weight:600;opacity:.7}

/* Three signature experience cards */
.exp-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,2.6vw,28px);margin-top:2.8rem}
@media(max-width:860px){.exp-grid{grid-template-columns:1fr}}
.exp-card{position:relative;display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);
  border-radius:var(--radius-lg);padding:clamp(28px,3vw,38px);box-shadow:var(--shadow-sm);
  transition:transform .25s ease, box-shadow .25s ease;overflow:hidden}
.exp-card::before{content:"";position:absolute;top:0;left:0;right:0;height:5px}
.exp-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-md)}
.exp--tbi::before{background:linear-gradient(90deg,var(--mint),var(--mint-dark))}
.exp--home::before{background:linear-gradient(90deg,var(--copper),#e0a86f)}
.exp--circle::before{background:linear-gradient(90deg,var(--berry),#e070a0)}
.exp-card .exp-ico{width:60px;height:60px;border-radius:17px;display:grid;place-items:center;margin-bottom:1.2rem}
.exp--tbi .exp-ico{background:var(--mint-soft);color:var(--mint-dark)}
.exp--home .exp-ico{background:var(--copper-soft);color:var(--copper)}
.exp--circle .exp-ico{background:var(--berry-soft);color:var(--berry)}
.exp-card h3{font-size:1.5rem;margin-bottom:.15em}
.exp-card .exp-sub{font-weight:700;font-size:.82rem;letter-spacing:.06em;text-transform:uppercase;
  color:var(--muted);margin-bottom:.9rem}
.exp--tbi .exp-sub{color:var(--mint-dark)}
.exp--home .exp-sub{color:var(--copper)}
.exp--circle .exp-sub{color:var(--berry)}
.exp-card p{color:var(--muted);margin:0 0 1.4rem;flex:1}
.exp-card .link{font-weight:700;color:var(--navy);display:inline-flex;align-items:center;gap:.4em}
.exp-card .link:hover{color:var(--berry)}

/* CareCircle spotlight section */
.cc-spot{position:relative;overflow:hidden;
  background:radial-gradient(70% 120% at 12% 30%, rgba(195,61,120,.10), transparent 60%),
             radial-gradient(60% 120% at 92% 80%, rgba(141,189,188,.16), transparent 60%),
             linear-gradient(180deg,#fff,var(--mint-soft))}
.cc-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(28px,5vw,60px);align-items:center}
@media(max-width:820px){.cc-grid{grid-template-columns:1fr;text-align:center;justify-items:center}}
.cc-copy .statement{text-align:left;margin:0}
@media(max-width:820px){.cc-copy .statement{text-align:center}}
.cc-copy .statement p{font-size:clamp(1.5rem,3vw,2.3rem)}
.cc-copy .lead{margin:1.2rem 0 1.8rem}
.cc-visual{position:relative;display:flex;justify-content:center}
.cc-emblem{width:min(380px,86%);height:auto;overflow:visible}
.cc-ring-rot{transform-box:fill-box;transform-origin:center;animation:ccspin 40s linear infinite}
.cc-core{transform-box:fill-box;transform-origin:center;animation:ccpulse 3.6s ease-in-out infinite}
.cc-dot{transform-box:fill-box;transform-origin:center}
@keyframes ccspin{to{transform:rotate(360deg)}}
@keyframes ccpulse{0%,100%{transform:scale(1)}50%{transform:scale(1.05)}}
@media(prefers-reduced-motion:reduce){
  .cc-ring-rot,.cc-core{animation:none}
}

/* Big statement line (CareCircle) */
.statement{text-align:center;max-width:860px;margin-inline:auto}
.statement p{font-family:var(--font-head);font-weight:500;font-size:clamp(1.6rem,3.4vw,2.6rem);
  line-height:1.25;letter-spacing:-.01em;color:var(--navy);margin:0}
.statement .accent{color:var(--berry)}
.band .statement p{color:#fff}
.band .statement .accent{color:var(--mint)}

/* CareJourney 5-step */
.flow--5{grid-template-columns:repeat(5,1fr)}
@media(max-width:960px){.flow--5{grid-template-columns:repeat(2,1fr);row-gap:2.4rem}}
@media(max-width:480px){.flow--5{grid-template-columns:1fr;row-gap:1.8rem}}

/* Care Corner grid (5 experiences) */
.corner-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:clamp(14px,1.8vw,20px);margin-top:2.6rem}
@media(max-width:900px){.corner-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.corner-grid{grid-template-columns:1fr}}
.corner-item{background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:1.6rem 1.3rem;text-align:center;box-shadow:var(--shadow-sm);transition:transform .2s,box-shadow .2s}
.corner-item:hover{transform:translateY(-4px);box-shadow:var(--shadow-md)}
.corner-item .c-ico{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;margin:0 auto .9rem;
  background:var(--mint-soft);color:var(--mint-dark)}
.corner-item:nth-child(2) .c-ico{background:var(--copper-soft);color:var(--copper)}
.corner-item:nth-child(3) .c-ico{background:var(--berry-soft);color:var(--berry)}
.corner-item:nth-child(4) .c-ico{background:#e7e8f0;color:var(--navy)}
.corner-item:nth-child(5) .c-ico{background:var(--mint-soft);color:var(--mint-dark)}
.corner-item h4{margin:0 0 .3em;font-size:1.08rem}
.corner-item p{margin:0;color:var(--muted);font-size:.9rem}

/* CareCircle benefits list */
.benefits{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,2.4vw,26px);margin-top:2.6rem}
@media(max-width:860px){.benefits{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.benefits{grid-template-columns:1fr}}
.benefit{display:flex;gap:.9rem;align-items:flex-start}
.benefit .b-ico{flex:0 0 40px;height:40px;border-radius:12px;display:grid;place-items:center;
  background:var(--berry-soft);color:var(--berry)}
.benefit h4{margin:0 0 .25em;font-size:1.06rem}
.benefit p{margin:0;color:var(--muted);font-size:.94rem}

/* pill badge for experiences (page heroes) */
.pillar-badge{display:inline-flex;align-items:center;gap:.5em;font-weight:800;font-size:.72rem;
  letter-spacing:.12em;text-transform:uppercase;padding:.4em .9em;border-radius:999px;margin-bottom:1rem}
.pillar-badge.tbi{background:var(--mint-soft);color:var(--mint-dark)}
.pillar-badge.home{background:var(--copper-soft);color:var(--copper)}
.pillar-badge.circle{background:var(--berry-soft);color:var(--berry)}
