/* ==========================================================================
   Infantis — global stylesheet (August 2026 design refinement)
   Self-hosted fonts, consolidated cascade, mobile fixes.
   Brand palette preserved: evergreen ink, teal, coral, cream.
   ========================================================================== */

/* ---- Fonts (self-hosted, no external requests) -------------------------- */
@font-face{
  font-family:'Fraunces Variable';
  font-style:normal;
  font-weight:100 900;
  font-display:swap;
  src:url('fonts/fraunces-latin-wght-normal.woff2') format('woff2-variations');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:'Inter Variable';
  font-style:normal;
  font-weight:100 900;
  font-display:swap;
  src:url('fonts/inter-latin-wght-normal.woff2') format('woff2-variations');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

/* ---- Tokens -------------------------------------------------------------- */
:root{
  --ink:#0d4d46;
  --ink-deep:#072f2b;
  --teal:#18a99a;
  --accessible-teal:#0f7d72;
  --mint:#a7d5c6;
  --coral:#ff7f6e;
  --coral-deep:#f2694f;
  --coral-ink:#4b211b;
  --cream:#fff6ee;
  --wash:#f3faf7;
  --text:#33534f;
  --text-soft:#4f6b67;
  --line:#dce9e5;
  --radius:20px;
  --shadow-card:0 10px 30px rgba(13,77,70,.06);
  --shadow-card-hover:0 18px 42px rgba(13,77,70,.12);
  --shadow-photo:0 26px 64px rgba(13,77,70,.18);
  --font-display:'Fraunces Variable',Georgia,'Times New Roman',serif;
  --font-body:'Inter Variable',Inter,ui-sans-serif,system-ui,-apple-system,'Segoe UI',sans-serif;
  --ease:cubic-bezier(.2,.7,.3,1);
}

/* ---- Base ----------------------------------------------------------------- */
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  margin:0;
  color:var(--text);
  font:17px/1.7 var(--font-body);
  background:#fff;
  overflow-wrap:break-word;
  text-rendering:optimizeLegibility;
}
h1,h2,h3,h4,p,figure{margin-top:0}
h1,h2{
  font-family:var(--font-display);
  font-weight:590;
  color:var(--ink);
  line-height:1.06;
  letter-spacing:-.015em;
}
h1{font-size:clamp(2.6rem,4.6vw,4.3rem);max-width:820px;margin-bottom:24px}
h2{font-size:clamp(1.95rem,3.1vw,2.9rem);margin-bottom:18px}
h3{font-size:1.28rem;font-weight:700;color:var(--ink);line-height:1.3;letter-spacing:-.01em;margin-bottom:10px}
p{margin-bottom:1.05em}
p:last-child{margin-bottom:0}
a{color:var(--ink);text-decoration:none}
small{font-size:.86em;color:var(--text-soft)}
strong{color:var(--ink)}
img{max-width:100%}
::selection{background:rgba(24,169,154,.22)}
:focus-visible{outline:3px solid var(--coral-deep);outline-offset:3px;border-radius:6px}
a:focus-visible,button:focus-visible{outline:3px solid var(--coral-deep);outline-offset:4px;border-radius:8px}

.wrap{width:min(1180px,calc(100% - 44px));margin-inline:auto}
.narrow{max-width:800px}
.center{text-align:center;margin-top:38px}

/* ---- Skip link ------------------------------------------------------------ */
.skip-link{position:fixed;left:12px;top:-90px;z-index:1000;background:#fff;color:var(--ink);padding:10px 16px;border:2px solid var(--ink);border-radius:10px;font-weight:800;transition:top .2s var(--ease)}
.skip-link:focus{top:12px}

/* ---- Header / navigation --------------------------------------------------- */
header{
  position:sticky;top:0;z-index:50;
  background:rgba(255,255,255,.92);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line);
  transition:box-shadow .25s var(--ease);
}
header.scrolled{box-shadow:0 8px 30px rgba(13,77,70,.08)}
.nav{height:74px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.brand{display:inline-flex;align-items:center;font-size:27px;letter-spacing:-.045em;font-weight:760;color:var(--ink)}
.mini{display:inline-grid;place-items:center;width:30px;height:30px;border:3px solid var(--teal);border-radius:50%;margin-right:9px;color:transparent;flex:none}
.mini[aria-hidden="true"]{speak:none}
.nav nav{display:flex;align-items:center;gap:4px}
.nav nav>a:not(.btn),.nav-dropdown>a{
  font-size:14px;font-weight:640;padding:9px 11px;border-radius:10px;
  transition:color .18s var(--ease),background-color .18s var(--ease);
}
.nav nav>a:not(.btn):hover,.nav-dropdown>a:hover{color:var(--accessible-teal);background:var(--wash)}
.nav nav a.active{color:var(--accessible-teal)}
.nav nav>a.active:not(.btn),.nav-dropdown>a.active{background:var(--wash);box-shadow:inset 0 -2px 0 var(--accessible-teal)}
.nav .btn.small{margin-left:10px}
.menu{display:none;border:0;background:none;font-size:26px;color:var(--ink);padding:8px 10px;border-radius:10px;cursor:pointer}

/* Dropdown */
.nav-dropdown{position:relative;display:inline-flex;align-items:center;font-size:14px;font-weight:640}
.nav-dropdown>a::after{content:'';display:inline-block;width:7px;height:7px;margin-left:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-2px);opacity:.65}
.dropdown-menu{
  display:none;position:absolute;top:calc(100% + 6px);left:-6px;min-width:200px;
  padding:10px 0;background:#fff;border:1px solid var(--line);border-radius:16px;
  box-shadow:0 22px 50px rgba(13,77,70,.16);
}
.dropdown-menu::before{content:'';position:absolute;top:-8px;left:0;right:0;height:10px}
.dropdown-menu a{display:block;padding:9px 20px;white-space:nowrap;font-weight:600;transition:background-color .15s var(--ease),color .15s var(--ease)}
.dropdown-menu a:hover,.dropdown-menu a.active{background:var(--wash);color:var(--accessible-teal)}
.nav-dropdown:hover .dropdown-menu,.nav-dropdown:focus-within .dropdown-menu{display:block}

/* ---- Buttons & links -------------------------------------------------------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;
  padding:13px 22px;border-radius:999px;border:1px solid transparent;
  background:var(--ink);color:#fff;font-weight:720;font-size:15px;line-height:1.2;
  transition:transform .18s var(--ease),box-shadow .18s var(--ease),background-color .18s var(--ease);
}
.btn:hover{transform:translateY(-1px);box-shadow:0 10px 24px rgba(13,77,70,.22);background:#0a423c}
.btn:active{transform:translateY(0)}
.btn.small{padding:9px 17px;font-size:13.5px}
.btn.coral{background:var(--coral);color:var(--coral-ink)}
.btn.coral:hover{background:var(--coral-deep);color:#fff;box-shadow:0 10px 24px rgba(242,105,79,.35)}
.btn.ghost{background:transparent;color:var(--ink);border-color:var(--ink)}
.btn.ghost:hover{background:var(--ink);color:#fff}
.textlink{font-weight:720;transition:color .18s var(--ease)}
.textlink:hover{color:var(--accessible-teal)}
.arrow{font-weight:720;color:var(--ink);transition:color .18s var(--ease)}
.arrow:hover{color:var(--accessible-teal)}
.actions{display:flex;align-items:center;gap:16px;margin-top:32px;flex-wrap:wrap}

/* ---- Eyebrows & section heads ----------------------------------------------- */
.eyebrow,.section-head>span{
  display:block;text-transform:uppercase;letter-spacing:.17em;
  font-size:12px;font-weight:780;color:var(--accessible-teal);margin-bottom:16px;
}
.section-head{max-width:780px;margin-bottom:40px}
.section-head p{font-size:1.14rem;color:var(--text-soft)}
section{padding:88px 0}
section .wrap>p{max-width:760px;font-size:1.06rem}
.positioning{margin-top:30px;font-size:.88rem;font-weight:720;color:var(--ink);letter-spacing:.02em}

/* ---- Hero -------------------------------------------------------------------- */
.hero{
  padding:96px 0 88px;position:relative;overflow:hidden;
  background:
    radial-gradient(circle at 82% 12%,rgba(167,213,198,.4),transparent 32%),
    linear-gradient(135deg,var(--cream),#fff 70%);
}
/* Signature: faint 28-day care ring echoing the brand mark */
.hero::before{
  content:'';position:absolute;right:-140px;top:-140px;width:460px;height:460px;
  border:1.5px solid rgba(24,169,154,.16);border-radius:50%;pointer-events:none;
}
.hero::after{
  content:'';position:absolute;right:-80px;top:-80px;width:340px;height:340px;
  border:1.5px solid rgba(255,127,110,.14);border-radius:50%;pointer-events:none;
}
.hero .wrap{position:relative;z-index:1}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.04fr) minmax(360px,.96fr);gap:56px;align-items:center}
.lead{font-size:clamp(1.14rem,1.7vw,1.34rem);line-height:1.6;max-width:680px;color:var(--text-soft)}
.hero-text-only{max-width:900px}
.hero-text-only .lead{max-width:720px}

.hero-media{position:relative;margin:0;min-width:0}
.hero-media img{
  display:block;width:100%;height:clamp(380px,40vw,560px);object-fit:cover;
  border-radius:28px;box-shadow:var(--shadow-photo);
}
.hero-media figcaption{
  position:absolute;left:16px;bottom:16px;width:max-content;max-width:calc(100% - 32px);
  padding:9px 15px;border-radius:999px;background:rgba(255,255,255,.93);
  color:#244844;font-size:.78rem;font-weight:720;
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  box-shadow:0 6px 18px rgba(13,77,70,.12);
}
.hero-media.product{
  display:grid;place-items:center;padding:28px;border-radius:28px;
  background:linear-gradient(150deg,#dff0ef,#fbf3ea);
}
.hero-media.product img{height:min(560px,50vw);width:auto;max-width:100%;object-fit:contain;border-radius:24px;box-shadow:0 22px 55px rgba(19,51,79,.2)}
img.hero-media{border-radius:28px;box-shadow:var(--shadow-photo)}

/* ---- Cards --------------------------------------------------------------------- */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.card{
  display:flex;flex-direction:column;padding:30px 28px;
  border:1px solid var(--line);border-radius:var(--radius);background:#fff;
  box-shadow:var(--shadow-card);
  transition:transform .22s var(--ease),box-shadow .22s var(--ease),border-color .22s var(--ease);
}
.card:hover{transform:translateY(-4px);box-shadow:var(--shadow-card-hover);border-color:#cfe2dd}
.card p{font-size:.99rem;line-height:1.62}
.card .arrow{margin-top:auto;padding-top:14px;font-size:.95rem}
.card small{display:inline-block;margin-top:8px;font-size:.8rem;color:var(--text-soft);line-height:1.5}
.icon{
  display:grid;place-items:center;width:46px;height:46px;border-radius:14px;
  background:var(--cream);color:var(--coral-deep);font-weight:850;font-size:18px;margin-bottom:20px;flex:none;
}

/* Statistic cards (large numerals) */
.card.stat h3{font-family:var(--font-display);font-weight:600;font-size:2.5rem;letter-spacing:-.02em;color:var(--ink);margin-bottom:8px}
.card.stat{background:linear-gradient(180deg,#fff,var(--wash));border-color:#d3e7e1}

/* ---- Bands, soft sections, CTA ---------------------------------------------------- */
.band{background:var(--ink);color:#dcefeb}
.band h2{color:#fff}
.band .eyebrow,.band .section-head>span{color:var(--mint)}
.band a:not(.btn){color:#fff;text-decoration:underline;text-decoration-color:rgba(255,255,255,.4);text-underline-offset:3px}
.band a:not(.btn):hover{text-decoration-color:#fff}
.band .card{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.14);box-shadow:none;color:#dcefeb}
.band .card:hover{transform:translateY(-4px);border-color:rgba(255,255,255,.3);box-shadow:0 16px 36px rgba(0,0,0,.22)}
.band .card h3{color:#fff}
.band .card p{color:#cfe4df}
.band .btn:not(.coral){background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.55);color:#fff}
.band .btn:not(.coral):hover{background:#fff;color:var(--ink);box-shadow:0 10px 24px rgba(0,0,0,.25)}
.band .textlink{color:#fff;text-decoration:none}
.soft{background:var(--wash)}
.soft .card,.cream .card{background:#fff}

.cta{text-align:center;background:var(--cream);position:relative;overflow:hidden}
.cta::before{
  content:'';position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  width:640px;height:640px;border:1.5px solid rgba(24,169,154,.13);border-radius:50%;pointer-events:none;
}
.cta .wrap{position:relative;z-index:1}
.cta h2{max-width:720px;margin-inline:auto}
.cta p{max-width:640px;margin:0 auto 26px;font-size:1.1rem;color:var(--text-soft)}
.cta .actions{justify-content:center}

/* ---- Split layouts & checklists ----------------------------------------------------- */
.split{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}
.checks{list-style:none;padding:0;margin:0}
.checks li{padding:15px 0 15px 34px;position:relative;border-bottom:1px solid var(--line);font-weight:640;color:var(--ink)}
.soft .checks li{border-color:#d8e8e2}
.checks li::before{content:'✓';position:absolute;left:0;top:14px;width:22px;height:22px;display:grid;place-items:center;border-radius:50%;background:rgba(24,169,154,.14);color:var(--accessible-teal);font-size:13px;font-weight:800}
.guard{padding:34px;border-radius:22px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.16);font-size:1.05rem}
.guard b{display:block;color:#fff;font-size:1.15rem;margin-bottom:10px}
.guard p{color:#cfe4df;margin:0}

/* ---- Team (About page) ---------------------------------------------------------------- */
.team{display:grid;gap:22px;margin-top:14px}
.team article{
  display:grid;grid-template-columns:170px 1fr;gap:28px;align-items:center;
  padding:26px;border:1px solid var(--line);border-radius:22px;background:#fff;
  box-shadow:var(--shadow-card);
  transition:transform .22s var(--ease),box-shadow .22s var(--ease);
}
.team article:hover{transform:translateY(-3px);box-shadow:var(--shadow-card-hover)}
.team img{width:170px;height:170px;min-height:170px;aspect-ratio:1/1;object-fit:cover;border-radius:18px}
.team h3{margin-bottom:2px}
.team b{display:block;color:var(--accessible-teal);font-size:.92rem;letter-spacing:.01em;margin-bottom:2px}
.team p{margin:10px 0 0;font-size:.98rem}

/* ---- Notices & legal --------------------------------------------------------------------- */
.notice{
  margin-top:44px;margin-bottom:84px;padding:24px 26px;
  border-left:5px solid var(--coral);background:var(--cream);border-radius:0 16px 16px 0;
  font-size:.98rem;color:var(--ink);
}
.legal-hero{padding:88px 0 54px;background:linear-gradient(135deg,var(--cream),#fff 75%)}
.legal-hero h1{font-size:clamp(2.5rem,4.6vw,3.9rem)}
.legal-hero .lead{font-size:1.18rem}
.legal{padding-bottom:70px}
.legal .wrap>p,.legal p,.legal li{max-width:76ch}
.legal h2{font-size:1.45rem;margin-top:44px;letter-spacing:-.01em}
.legal ul{padding-left:1.3rem}
.legal li{margin:.6rem 0}
.legal .effective{font-weight:720;color:var(--ink)}
.legal-note{padding:22px 26px;border-left:4px solid var(--teal);background:#eef7f4;border-radius:0 14px 14px 0}
.provider-list{display:grid;gap:14px;margin:26px 0}
.provider-list article{padding:18px 22px;border:1px solid var(--line);border-radius:16px;background:#fff}
.provider-list h3{margin-bottom:4px;font-size:1.08rem}
.provider-list p{margin:0;font-size:.96rem}

/* ---- Forms ------------------------------------------------------------------------------ */
.form-wrap{max-width:820px}
.site-form{
  display:grid;gap:22px;padding:36px;margin-top:8px;
  background:#fff;border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow-card);
}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.site-form label{display:grid;gap:8px;color:var(--ink);font-weight:660;font-size:.95rem}
.site-form label span{font-weight:450;color:var(--text-soft)}
.site-form input,.site-form select,.site-form textarea{
  width:100%;padding:13px 15px;border:1.5px solid #b7cbc6;border-radius:12px;
  background:#fff;color:var(--text);font:inherit;font-size:1rem;
  transition:border-color .18s var(--ease),box-shadow .18s var(--ease);
}
.site-form textarea{resize:vertical;min-height:150px}
.site-form input:hover,.site-form select:hover,.site-form textarea:hover{border-color:#93b2ac}
.site-form input:focus,.site-form select:focus,.site-form textarea:focus{
  outline:none;border-color:var(--accessible-teal);box-shadow:0 0 0 4px rgba(24,169,154,.18);
}
.site-form .consent{display:flex;align-items:flex-start;gap:12px;font-weight:450;color:var(--text)}
.site-form .consent input{width:18px;height:18px;margin-top:4px;accent-color:var(--accessible-teal);flex:none}
.site-form .consent a{font-weight:660;text-decoration:underline;text-underline-offset:2px}
.form-safety{padding:16px 18px;border-left:4px solid var(--coral);background:var(--cream);border-radius:0 12px 12px 0;font-size:.92rem;color:var(--ink)}
.site-form .btn{justify-self:start}
.honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}

/* Contact page email cards: balanced 2×2 */
.contact-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}
.contact-grid>.cards{grid-column:1/-1;grid-template-columns:repeat(2,1fr)}
.contact-grid .card p{margin-bottom:6px;color:var(--accessible-teal);font-weight:620}

/* ---- Diagram sections (care flow) ---------------------------------------------------------- */
.diagram-section,.climate-flow-section{padding:88px 0}
.care-flow{display:flex;align-items:stretch;gap:14px}
.care-flow>div{
  flex:1;padding:28px 22px;border:1px solid var(--line);border-radius:20px;background:#fff;
  display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px;
  box-shadow:var(--shadow-card);
}
.care-flow>em{font-size:26px;color:var(--teal);align-self:center;font-style:normal}
.care-flow b{color:var(--ink)}
.care-flow span{font-size:.82rem;color:var(--text-soft)}
.flow{display:block;width:54px;height:54px;border-radius:16px;background:#e8f5f1;margin-bottom:12px;position:relative}
.flow::after{position:absolute;inset:0;display:grid;place-items:center;font-size:24px;font-style:normal;color:var(--ink)}
.flow.family::after{content:'⌂'}
.flow.worker::after{content:'+'}
.flow.clinic::after{content:'✚'}
.flow.system::after{content:'▦'}
.flow.weather::after{content:'☀'}
.flow.intelligence::after{content:'◉'}
.flow.action::after{content:'✓'}

/* ---- Footer ----------------------------------------------------------------------------------- */
footer{background:var(--ink-deep);color:#c3dcd7}
.foot{display:grid;grid-template-columns:2.1fr repeat(4,1fr);gap:44px;padding:72px 0 58px}
footer .brand,footer b{color:#fff}
footer .foot b{display:block;margin-bottom:14px;font-size:.95rem;letter-spacing:.02em}
footer .foot>div>p{font-size:.94rem;line-height:1.65;margin-top:14px;max-width:34ch}
footer a:not(.brand){display:block;color:#c3dcd7;margin:9px 0;font-size:.93rem;transition:color .15s var(--ease)}
footer a:not(.brand):hover{color:#fff}
.fine{padding:22px 0 26px;border-top:1px solid rgba(255,255,255,.12);font-size:12.5px;line-height:1.7;color:#9dc0ba}

/* ---- Responsive ------------------------------------------------------------------------------- */
@media(max-width:1080px){
  .menu{display:block}
  .nav nav{
    display:none;position:absolute;top:74px;left:0;right:0;
    background:#fff;padding:18px 22px 26px;flex-direction:column;align-items:stretch;gap:2px;
    border-bottom:1px solid var(--line);box-shadow:0 30px 50px rgba(13,77,70,.14);
    max-height:calc(100vh - 74px);overflow-y:auto;
  }
  .nav nav.open{display:flex}
  .nav nav>a:not(.btn){padding:13px 10px;font-size:16px;border-bottom:1px solid #eef5f2;border-radius:0}
  .nav nav>a.active:not(.btn){box-shadow:none;background:transparent}
  .nav-dropdown{width:100%;flex-direction:column;align-items:stretch}
  .nav-dropdown>a{padding:13px 10px;font-size:16px;border-bottom:1px solid #eef5f2;border-radius:0}
  .nav-dropdown>a::after{display:none}
  .dropdown-menu{display:block;position:static;border:0;box-shadow:none;padding:2px 0 6px 16px;min-width:0}
  .dropdown-menu a{padding:10px 8px;font-size:15px}
  .nav .btn.small{margin:16px 0 0;justify-content:center;padding:13px}
  .hero-grid,.split{grid-template-columns:1fr}
  .hero-media{max-width:760px}
  .hero-media img{height:min(62vw,520px)}
  .hero-media.product img{height:min(640px,84vw)}
  .cards{grid-template-columns:1fr 1fr}
  .foot{grid-template-columns:1fr 1fr;gap:36px}
  .split{gap:44px}
  .team article{grid-template-columns:132px 1fr;gap:22px}
  .team img{width:132px;height:132px}
}

@media(max-width:760px){
  .care-flow{display:grid;gap:10px}
  .care-flow>em{transform:rotate(90deg)}
}

@media(max-width:620px){
  body{font-size:16px}
  section{padding:60px 0}
  .hero{padding:56px 0 60px}
  .hero::before{width:280px;height:280px;right:-120px;top:-120px}
  .hero::after{width:200px;height:200px;right:-70px;top:-70px}
  h1{font-size:2.3rem;line-height:1.1}
  .legal-hero h1{font-size:2.3rem}
  .actions{gap:12px}
  .actions .btn{flex:1 1 auto;min-width:0}
  .hero-media img{height:76vw;min-height:300px;border-radius:20px}
  .hero-media figcaption{position:static;display:block;width:auto;max-width:none;background:transparent;box-shadow:none;padding:10px 2px 0}
  .hero-media.product{padding:16px;border-radius:20px}
  .hero-media.product img{height:auto;max-height:600px}
  .cards{grid-template-columns:1fr}
  .contact-grid{grid-template-columns:1fr}
  .contact-grid>.cards{grid-template-columns:1fr}
  .form-grid{grid-template-columns:1fr}
  .site-form{padding:24px 20px}
  .site-form .btn{justify-self:stretch}
  .foot{grid-template-columns:1fr;gap:8px;padding:56px 0 40px}
  footer .foot b{margin-top:26px}
  .team article{grid-template-columns:1fr;text-align:left}
  .team img{width:min(100%,320px);height:auto;aspect-ratio:4/5}
  .wrap{width:min(100% - 32px,1180px)}
  .split{gap:36px}
  .notice{margin-bottom:60px}
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}

/* ---- People & careers components (team/careers rebuild) --------------------- */
.people-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.people-grid.two{grid-template-columns:repeat(2,1fr)}
.person{display:flex;flex-direction:column;padding:0;border:1px solid var(--line);border-radius:22px;background:#fff;overflow:hidden;box-shadow:var(--shadow-card);transition:transform .22s var(--ease),box-shadow .22s var(--ease)}
.person:hover{transform:translateY(-4px);box-shadow:var(--shadow-card-hover)}
.person img{width:100%;aspect-ratio:4/5;object-fit:cover;display:block}
.person-body{padding:22px 24px 26px;display:flex;flex-direction:column;flex:1}
.person h3{margin-bottom:2px;font-size:1.18rem}
.person .role{display:block;color:var(--accessible-teal);font-weight:680;font-size:.9rem;margin-bottom:12px}
.person p{font-size:.95rem;line-height:1.62;margin-bottom:.8em}
.people-grid.two .person img{aspect-ratio:1/1}
.person.open{border-style:dashed;border-color:#bcd8d1;background:var(--wash);box-shadow:none}
.person.open:hover{transform:none;box-shadow:none;border-color:var(--accessible-teal)}
.open-visual{display:grid;place-items:center;aspect-ratio:4/5;background:repeating-linear-gradient(-45deg,#eef7f4,#eef7f4 14px,#f6fbf9 14px,#f6fbf9 28px)}
.people-grid.two .open-visual{aspect-ratio:1/1}
.open-visual span{display:grid;place-items:center;width:76px;height:76px;border-radius:50%;border:2.5px dashed var(--accessible-teal);color:var(--accessible-teal)}
.open-visual svg{width:30px;height:30px}
.open-note{font-style:italic;color:var(--text-soft);font-size:.88rem}

/* SVG icon chips (replace glyph icons) */
.sicon{display:grid;place-items:center;width:48px;height:48px;border-radius:14px;background:var(--cream);color:var(--coral-deep);margin-bottom:20px;flex:none}
.sicon svg{width:24px;height:24px}
.band .sicon{background:rgba(255,255,255,.12);color:var(--mint)}

/* Careers role listings */
.roles{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.role-card{display:flex;flex-direction:column;padding:30px 28px;border:1px solid var(--line);border-radius:20px;background:#fff;box-shadow:var(--shadow-card);transition:transform .22s var(--ease),box-shadow .22s var(--ease)}
.role-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-card-hover)}
.role-top{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:10px}
.role-top h3{margin:0;font-size:1.22rem}
.role-tag{flex:none;padding:6px 12px;border-radius:999px;background:#ddf4ed;color:#087565;font-size:11px;font-weight:760;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}
.role-tag.gold{background:#fff0ce;color:#7a5a12}
.role-tag.coral{background:#ffe5df;color:#8a3325}
.role-card p{font-size:.96rem;line-height:1.62}
.role-apply{margin-top:auto;padding-top:16px;border-top:1px solid var(--line);font-size:.92rem}
.role-apply b{color:var(--ink)}
.include-list{list-style:none;padding:0;margin:18px 0 0}
.include-list li{padding:10px 0 10px 32px;position:relative;border-bottom:1px solid var(--line);font-size:.98rem}
.include-list li::before{content:'';position:absolute;left:4px;top:16px;width:8px;height:8px;border-radius:50%;background:var(--coral)}

/* Origin story band */
.origin{background:linear-gradient(135deg,var(--cream),#fff 78%);position:relative;overflow:hidden}
.origin::before{content:'';position:absolute;right:-160px;bottom:-160px;width:480px;height:480px;border:1.5px solid rgba(255,127,110,.18);border-radius:50%}
.origin::after{content:'';position:absolute;right:-80px;bottom:-80px;width:300px;height:300px;border:1.5px solid rgba(24,169,154,.18);border-radius:50%}
.origin .wrap{position:relative;z-index:1}

@media(max-width:1080px){
  .people-grid{grid-template-columns:1fr 1fr}
  .roles{grid-template-columns:1fr}
}
@media(max-width:620px){
  .people-grid,.people-grid.two{grid-template-columns:1fr}
  .person img{aspect-ratio:4/4.4}
  .open-visual{aspect-ratio:4/2.6}
  .role-top{flex-direction:column-reverse;gap:8px}
}

/* Two-column card variant + card role labels */
.cards.two{grid-template-columns:repeat(2,1fr)}
.card .role{display:block;color:var(--accessible-teal);font-weight:680;font-size:.9rem;margin-bottom:10px}
@media(max-width:1080px){.cards.two{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.cards.two{grid-template-columns:1fr}}

/* ==========================================================================
   August 2026 content rebuild — new components
   ========================================================================== */

/* SVG icon sizing */
.icon svg{width:22px;height:22px;display:block}
.icon{color:var(--accessible-teal);background:var(--wash)}
.card:hover .icon{background:var(--cream);color:var(--coral-deep)}

/* Positioning chip strip */
.chips{display:flex;flex-wrap:wrap;gap:12px}
.chip{display:inline-flex;align-items:center;gap:9px;padding:11px 18px;border:1px solid var(--line);border-radius:999px;background:#fff;font-weight:660;font-size:.93rem;color:var(--ink);box-shadow:0 6px 18px rgba(13,77,70,.05)}
.chip svg{width:17px;height:17px;color:var(--accessible-teal);flex:none}

/* Split layouts with photos */
.split .photo{margin:0;min-width:0}
.split .photo img{display:block;width:100%;height:auto;aspect-ratio:7/5;object-fit:cover;border-radius:26px;box-shadow:var(--shadow-photo)}
.split .photo.app{display:grid;place-items:center;padding:26px;border-radius:26px;background:linear-gradient(150deg,#dff0ef,#fbf3ea)}
.split .photo.app img{aspect-ratio:auto;width:auto;max-width:100%;max-height:520px;object-fit:contain;border-radius:20px;box-shadow:0 20px 50px rgba(19,51,79,.18)}

/* Numbered process steps */
.steps{counter-reset:step;display:grid;gap:14px;max-width:860px}
.step{counter-increment:step;display:grid;grid-template-columns:56px 1fr;gap:20px;align-items:start;padding:24px 26px;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:var(--shadow-card)}
.step::before{content:counter(step,decimal-leading-zero);font-family:var(--font-display);font-weight:620;font-size:1.7rem;color:var(--coral-deep);line-height:1.1;padding-top:2px}
.step h3{font-size:1.12rem;margin-bottom:6px}
.step p{margin:0;font-size:.98rem}

/* Theory-of-change vertical flow */
.flow-chain{display:grid;gap:0;max-width:760px}
.flow-chain .step{grid-template-columns:56px 1fr}
.flow-chain .chain-arrow{width:2px;height:34px;margin:0 auto;background:linear-gradient(var(--teal),var(--mint));position:relative}
.flow-chain .chain-arrow::after{content:'';position:absolute;bottom:0;left:50%;transform:translateX(-50%);border:6px solid transparent;border-top:8px solid var(--mint);border-bottom:0}

/* Team portrait grid */
.people-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.people-grid.two{grid-template-columns:repeat(2,minmax(0,420px))}
.person{display:flex;flex-direction:column;padding:0;overflow:hidden;border:1px solid var(--line);border-radius:22px;background:#fff;box-shadow:var(--shadow-card);transition:transform .22s var(--ease),box-shadow .22s var(--ease)}
.person:hover{transform:translateY(-4px);box-shadow:var(--shadow-card-hover)}
.person img,.person .avatar-fallback{width:100%;height:auto;aspect-ratio:4/4.4;object-fit:cover}
.person .avatar-fallback{display:grid;place-items:center;background:linear-gradient(150deg,#e2f1ec,#fdf1e7)}
.person .avatar-fallback span{width:92px;height:92px;display:grid;place-items:center;border-radius:50%;background:var(--ink);color:#fff;font-family:var(--font-display);font-size:2rem;font-weight:600}
.person .person-body{display:flex;flex-direction:column;flex:1;padding:22px 24px 26px}
.person h3{margin-bottom:2px;font-size:1.18rem}
.person b{display:block;color:var(--accessible-teal);font-size:.88rem;margin-bottom:10px}
.person p{font-size:.94rem;line-height:1.6;margin:0 0 10px}
.person p:last-child{margin-bottom:0}
.person .note{font-style:italic;color:var(--text-soft);font-size:.88rem}

/* Role / opportunity cards */
.role-card{position:relative}
.role-card .rpill{display:inline-block;align-self:flex-start;padding:6px 12px;border-radius:999px;background:#e5f4f0;color:var(--accessible-teal);font-size:.76rem;font-weight:750;letter-spacing:.05em;text-transform:uppercase;margin-bottom:14px}
.role-card .apply{margin-top:auto;padding-top:16px;font-size:.93rem}
.role-card .apply a{font-weight:700;text-decoration:underline;text-underline-offset:3px}

/* Legal layout with sticky contents */
.legal-layout{display:grid;grid-template-columns:230px minmax(0,1fr);gap:56px;align-items:start}
.legal-toc{position:sticky;top:96px;padding:20px 0;border-top:3px solid var(--teal)}
.legal-toc b{display:block;font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;color:var(--accessible-teal);margin-bottom:12px}
.legal-toc a{display:block;padding:6px 0;font-size:.88rem;color:var(--text-soft);line-height:1.4;transition:color .15s var(--ease)}
.legal-toc a:hover{color:var(--ink)}

/* Contact two-column */
.contact-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.85fr);gap:44px;align-items:start}
.contact-side{display:grid;gap:16px}
.contact-side .card{padding:24px}
.contact-side .card h3{font-size:1.05rem;margin-bottom:4px}
.contact-side .card p{font-size:.92rem;margin-bottom:8px}
.contact-side .card a.mailto{font-weight:700;color:var(--accessible-teal);font-size:.95rem;word-break:break-all}

/* Checks variants */
.checks.cols{display:grid;grid-template-columns:1fr 1fr;gap:0 40px}
.band .checks li{border-color:rgba(255,255,255,.16);color:#eaf6f3}
.band .checks li::before{background:rgba(255,255,255,.14);color:#9fe0d5}

/* Feature line */
.feature-line{font-weight:700;color:var(--ink);letter-spacing:.01em}
.band .feature-line{color:#fff}

/* Inline note (italic caveats) */
.note-line{font-size:.9rem;color:var(--text-soft);font-style:italic}

/* Source caption under evidence cards */
.sources-line{margin-top:26px;font-size:.88rem;color:var(--text-soft);font-style:italic;max-width:760px}

/* Section on cream */
.cream{background:var(--cream)}

@media(max-width:1080px){
  .people-grid{grid-template-columns:repeat(2,1fr)}
  .people-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}
  .legal-layout{grid-template-columns:1fr;gap:10px}
  .legal-toc{position:static;border-top:0;border-bottom:1px solid var(--line);padding:0 0 18px;margin-bottom:10px}
  .contact-layout{grid-template-columns:1fr}
}
@media(max-width:620px){
  .people-grid,.people-grid.two{grid-template-columns:1fr}
  .step{grid-template-columns:40px 1fr;gap:14px;padding:20px}
  .step::before{font-size:1.35rem}
  .checks.cols{grid-template-columns:1fr}
  .chips{gap:8px}
  .chip{padding:9px 14px;font-size:.86rem}
}

/* Card grid variants (responsive-safe) */
.cards.g2{grid-template-columns:1fr 1fr}
.cards.g4{grid-template-columns:repeat(4,1fr)}
@media(max-width:1080px){.cards.g4{grid-template-columns:1fr 1fr}}
@media(max-width:720px){.cards.g2,.cards.g4{grid-template-columns:1fr}}

/* Dark hero variant — white text on photo backgrounds */
.hero.hero-dark{background:var(--ink)}
.hero.hero-dark .eyebrow{color:rgba(255,255,255,.65)}
.hero.hero-dark h1,.hero.hero-dark .lead,.hero.hero-dark p{color:#fff}
.hero.hero-dark .btn.coral{background:var(--coral);color:#fff}
.hero.hero-dark .textlink{color:rgba(255,255,255,.85)}
.hero.hero-dark .hero-media img{opacity:.8}

/* Hero text-only centre alignment */
.wrap.hero-text-only{max-width:860px;padding-top:80px;padding-bottom:80px}
.wrap.hero-text-only .lead{max-width:720px}

/* Better hero-media aspect on landscape photos (non-product) */
.hero-media img:not([src*=".png"]){width:100%;height:auto;aspect-ratio:16/10;object-fit:cover;border-radius:26px}

/* ── Product screen presentation ─────────────────────────────────────── */
/* Full-bleed hero with photo overlay (homepage v2) */
.hero.hero-photo{position:relative;background:var(--ink);min-height:560px}
.hero.hero-photo .hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 30%;opacity:.52;border-radius:0}
.hero.hero-photo .wrap{position:relative;z-index:1}
.hero.hero-photo h1,.hero.hero-photo .lead,.hero.hero-photo p{color:#fff}
.hero.hero-photo .eyebrow{color:rgba(255,255,255,.7)}
.hero.hero-photo .btn.coral{background:var(--coral);color:#fff}
.hero.hero-photo .textlink{color:rgba(255,255,255,.85)}
.hero.hero-photo .chips .chip{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.22);color:#fff;backdrop-filter:blur(8px)}
.hero.hero-photo .chips .chip svg{color:var(--teal)}

/* App screen frame — phone */
.app-frame{display:flex;justify-content:center;align-items:center;padding:24px;border-radius:32px;background:linear-gradient(150deg,#dff0ef,#f5ede4)}
.app-frame img{width:100%;max-width:320px;height:auto;border-radius:22px;box-shadow:0 24px 56px rgba(13,51,70,.22),0 4px 12px rgba(0,0,0,.12)}

/* App screen frame — desktop/dashboard */
.dash-frame{border-radius:18px;overflow:hidden;box-shadow:0 20px 60px rgba(13,51,70,.2),0 2px 8px rgba(0,0,0,.08);border:1px solid var(--line);background:#f8fafc}
.dash-frame img{display:block;width:100%;height:auto}

/* Three-phone showcase (hero product variant) */
.phone-trio{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px;align-items:end}
.phone-trio .app-frame{padding:18px}
.phone-trio .app-frame:nth-child(2){transform:scale(1.06);z-index:1}

/* Section with dashboard — full bleed */
.dash-section{padding:72px 0;background:var(--ink)}
.dash-section .eyebrow{color:rgba(255,255,255,.65)}
.dash-section h2,.dash-section p{color:#fff}

@media(max-width:900px){
  .phone-trio{grid-template-columns:1fr;max-width:300px;margin:0 auto}
  .phone-trio .app-frame:nth-child(2){transform:none}
  .dash-frame img{border-radius:10px}
}

/* ── Team grid v2 — compact 4-col cards ──────────────────────────────── */
.team-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.team-card{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:18px;overflow:hidden;background:#fff;box-shadow:var(--shadow-card);transition:transform .2s var(--ease),box-shadow .2s var(--ease)}
.team-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-card-hover)}
.team-card img,.team-card .avatar-fallback{display:block;width:100%;height:auto;aspect-ratio:1/1;object-fit:cover;object-position:top center}
.team-card .avatar-fallback{display:grid;place-items:center;background:linear-gradient(150deg,#e2f1ec,#fdf1e7)}
.team-card .avatar-fallback span{width:72px;height:72px;display:grid;place-items:center;border-radius:50%;background:var(--ink);color:#fff;font-family:var(--font-display);font-size:1.6rem;font-weight:600}
.team-card .tc-body{padding:16px 18px 20px}
.team-card h3{font-size:1rem;margin-bottom:3px;line-height:1.3}
.team-card b{display:block;color:var(--accessible-teal);font-size:.8rem;font-weight:700;margin-bottom:8px;line-height:1.4}
.team-card p{font-size:.87rem;line-height:1.6;margin:0;color:var(--text)}
.team-card.open-role{background:var(--wash);border-style:dashed}
.team-card.open-role .tc-body{opacity:.85}

/* Compact form styling */
.site-form.compact input,.site-form.compact select,.site-form.compact textarea{padding:10px 14px;font-size:.93rem}
.site-form.compact label{gap:5px;font-size:.9rem}
.site-form.compact{max-width:680px}
.contact-form-wrap{max-width:700px}

/* Section divider — full-width dark band used as visual break */
.section-divider{height:4px;background:linear-gradient(90deg,var(--teal),var(--accessible-teal),var(--ink));opacity:.18;margin:0}

@media(max-width:1080px){.team-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:720px){.team-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:420px){.team-grid{grid-template-columns:1fr}}

/* ── Hero system v3 — deliberate variety across page types ───────────── */
/* Full-bleed dark photo hero (index, about, team, innovation) */
.hero.hero-full{position:relative;background:var(--ink);min-height:520px;display:flex;align-items:center}
.hero.hero-full .hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.45;border-radius:0}
.hero.hero-full .wrap{position:relative;z-index:1;padding-top:88px;padding-bottom:88px}
.hero.hero-full h1,.hero.hero-full .lead,.hero.hero-full p{color:#fff}
.hero.hero-full .eyebrow{color:rgba(255,255,255,.72)}
.hero.hero-full .btn:not(.coral){background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.28);color:#fff;backdrop-filter:blur(6px)}
.hero.hero-full .btn:not(.coral):hover{background:rgba(255,255,255,.22)}
.hero.hero-full .textlink{color:rgba(255,255,255,.88)}
.hero.hero-full .chips .chip{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.22);color:#fff}
.hero.hero-full .chips .chip svg{color:var(--teal)}

/* Dark split hero (climate-health, health-systems) */
.hero.hero-dark{background:var(--ink)}
.hero.hero-dark h1,.hero.hero-dark .lead,.hero.hero-dark p{color:#fff}
.hero.hero-dark .eyebrow{color:rgba(255,255,255,.7)}
.hero.hero-dark .btn:not(.coral){background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.28);color:#fff}
.hero.hero-dark .textlink{color:rgba(255,255,255,.86)}
.hero.hero-dark .hero-media img{opacity:.92}

/* Cream split hero (families, partners) — warm, approachable */
.hero.hero-cream{background:linear-gradient(160deg,var(--cream) 0%,#fdf7f0 55%,#eef7f4 100%)}

/* Text-only hero (contact) */
.hero.hero-simple{background:linear-gradient(160deg,#f4faf8,#fdf7f0)}
.hero.hero-simple .wrap{max-width:820px;padding-top:76px;padding-bottom:76px}

/* Larger phone display in product heroes */
.hero .phone-trio{max-width:none}
.hero .phone-trio .app-frame{padding:14px;border-radius:26px}
.hero .phone-trio .app-frame img{max-width:none;width:100%;border-radius:18px}
.hero-grid .phone-trio{grid-template-columns:1fr 1fr;gap:18px}

/* Accent hero — distinct teal treatment (Partners) */
.hero.hero-accent{background:linear-gradient(140deg,#0f7d72 0%,#12655e 45%,#0d4d46 100%);position:relative;overflow:hidden}
.hero.hero-accent::after{content:'';position:absolute;top:-30%;right:-8%;width:620px;height:620px;border-radius:50%;border:1px solid rgba(255,255,255,.12);pointer-events:none}
.hero.hero-accent::before{content:'';position:absolute;top:-14%;right:4%;width:420px;height:420px;border-radius:50%;border:1px solid rgba(255,255,255,.1);pointer-events:none}
.hero.hero-accent h1,.hero.hero-accent .lead,.hero.hero-accent p{color:#fff}
.hero.hero-accent .eyebrow{color:rgba(255,255,255,.75)}
.hero.hero-accent .btn:not(.coral){background:rgba(255,255,255,.16);border-color:rgba(255,255,255,.3);color:#fff}
.hero.hero-accent .textlink{color:rgba(255,255,255,.9)}
.hero.hero-accent .hero-media img{border:3px solid rgba(255,255,255,.15)}

/* Fix: .lead must win over `section .wrap > p` in full-bleed heroes */
section .wrap > p.lead,
.hero .wrap > p.lead,
.hero .lead{font-size:clamp(1.18rem,1.8vw,1.4rem);line-height:1.62}
/* Slightly stronger hero eyebrow for the large photo heroes */
.hero.hero-full .eyebrow,.hero.hero-dark .eyebrow,.hero.hero-accent .eyebrow{font-size:.8rem;letter-spacing:.16em}
/* Supporting paragraphs in full-bleed heroes sit just under the lead */
.hero.hero-full .wrap > p:not(.lead){font-size:1.05rem;line-height:1.68}

/* Form submission states */
.form-sent{padding:34px 32px;border:1px solid var(--line);border-left:4px solid var(--teal);border-radius:16px;background:#fff;box-shadow:var(--shadow-card)}
.form-sent strong{display:block;font-family:var(--font-display);font-size:1.3rem;color:var(--ink);margin-bottom:8px}
.form-sent span{display:block;color:var(--text-soft);font-size:.97rem}
.form-error{margin-top:16px;padding:14px 18px;border-radius:12px;background:#fdeeeb;border:1px solid #f6cfc7;color:#8c3322;font-size:.92rem}
.form-error a{color:#8c3322;font-weight:700;text-decoration:underline}
.site-form button[type=submit]:disabled{opacity:.6;cursor:progress}

/* Brand mark in header and footer */
.brand-mark{width:34px;height:34px;border-radius:9px;margin-right:10px;flex:none;display:block}
footer .brand-mark{width:36px;height:36px;border-radius:10px}
@media(max-width:620px){.brand-mark{width:30px;height:30px;border-radius:8px;margin-right:8px}}
