/*
Theme Name: Harmony Health
Theme URI: https://harmony.crabill.dev/
Description: Design A child theme for Harmony Health.
Author: Crabill Digital Partners, LLC
Template: hello-elementor
Version: 1.1.1
Text Domain: harmony-health
*/

@font-face{font-family:'Public Sans';font-style:normal;font-weight:400 600;font-display:swap;src:url('assets/fonts/public-sans-latin.woff2') format('woff2')}
@font-face{font-family:'Source Serif 4';font-style:normal;font-weight:400 500;font-display:swap;src:url('assets/fonts/source-serif-4-latin.woff2') format('woff2')}
.elementor-page .elementor-widget-html,.elementor-page .elementor-widget-html>.elementor-widget-container{width:100%}
.elementor-page .hh-page-container{--padding-top:0;--padding-right:0;--padding-bottom:0;--padding-left:0;--container-max-width:100%;width:100%;max-width:none}

:root{
  --blue:#1AABD6; --blue-deep:#128FB5;
  --ink:#504D54; --ink-soft:rgba(80,77,84,.68);
  --coral:#E4685A;
  --paper:#FFFFFF; --paper-warm:#F7F6F3;
  --navy:#1B2534; --navy-deep:#141C28;
  --hairline:rgba(80,77,84,.16);
  --display:"Source Serif 4",serif; --sans:"Public Sans",system-ui,sans-serif;
  --max:1280px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--sans);color:var(--ink);background:var(--paper);font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
.wrap{max-width:var(--max);margin:0 auto;padding:0 40px}
.eyebrow{display:flex;align-items:center;gap:12px;font-size:12px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:20px;line-height:1;white-space:nowrap}
.eyebrow::before{content:"";width:28px;height:3px;background:var(--coral);border-radius:0;flex:0 0 auto}
.difference .eyebrow{justify-content:center}
h1,h2{font-family:var(--display);font-weight:400;color:var(--ink);line-height:1.1;letter-spacing:-.005em}
.btn{display:inline-block;font-size:16px;font-weight:600;padding:15px 30px;border-radius:8px;background:var(--blue);color:#fff;box-shadow:0 1px 3px rgba(0,0,0,.14);transition:background .18s,transform .18s,box-shadow .18s}
.btn:hover{background:var(--blue-deep);transform:translateY(-1px);box-shadow:0 3px 8px rgba(0,0,0,.16)}
.btn .arr{display:inline-block;vertical-align:-2px;margin-left:10px;transition:transform .18s}
.btn:hover .arr{transform:translateX(4px)}
.btn.ghost{background:transparent;border:1.5px solid rgba(255,255,255,.85);box-shadow:none}
.btn.ghost:hover{background:#fff;color:var(--navy);transform:translateY(-1px)}

header{position:sticky;top:0;background:rgba(255,255,255,.95);backdrop-filter:blur(8px);z-index:50;border-bottom:1px solid var(--hairline)}
.nav{display:flex;align-items:center;justify-content:space-between;height:78px}
.nav .logo img{height:42px;width:auto}
.nav ul{display:flex;gap:30px;list-style:none}
.nav ul a{font-size:13px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--ink);transition:color .15s}
.nav ul a:hover{color:var(--blue-deep)}
.nav .btn{padding:12px 24px;font-size:15px}

/* hero: photo clipped by a sweeping circular left edge, coral stroke traced on the same curve, full bleed right */
.hero{position:relative;overflow:hidden;background:var(--paper-warm)}
.hero-inner{display:grid;grid-template-columns:minmax(0,47fr) minmax(0,53fr);align-items:stretch}
.hero-copy{padding:90px 64px 90px max(40px,calc((100vw - var(--max))/2 + 40px));position:relative;z-index:3}
.hero-copy h1{font-size:clamp(40px,4vw,58px);margin-bottom:26px;white-space:nowrap}
.hero-copy .lede{font-size:21px;font-weight:600;color:var(--ink);margin-bottom:16px;line-height:1.4}
.hero-copy p.body{font-size:17px;color:var(--ink-soft);margin-bottom:36px;max-width:44ch}
.hero-photo{position:relative;min-height:520px;z-index:2;clip-path:url(#heroClip)}
.hero-photo img{position:absolute;top:0;left:-2%;height:100%;width:auto;max-width:none}
.hero-photo svg.edge{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}

.difference{padding:100px 0 44px;text-align:center}
.difference h2{font-size:clamp(36px,3.4vw,50px);margin-bottom:28px}
.difference p{max-width:62ch;margin:0 auto;font-size:18px;color:var(--ink-soft)}

.story{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:80px;padding:65px 0}
.story .media img{width:100%;height:520px;object-fit:cover}
.story.media-right .media{order:2}
.story.media-right .media img{border-bottom-left-radius:120px}
.story.media-left .media img{border-bottom-right-radius:120px}
.story h2{font-size:clamp(32px,3vw,44px);margin-bottom:22px}
.story p{color:var(--ink-soft);max-width:52ch}
.band{background:var(--paper-warm)}
.band .story{padding:75px 0}

.journey{display:flex;margin-top:44px;border-top:1px solid var(--hairline);padding-top:26px;gap:0}
.journey .step{flex:1;position:relative;padding-right:12px}
.journey .step + .step::before{content:"";position:absolute;left:-8px;top:9px;width:1px;height:34px;background:var(--hairline)}
.journey .num{font-family:var(--display);font-size:15px;color:var(--coral);display:block;margin-bottom:4px}
.journey .name{font-size:13.5px;font-weight:600;color:var(--ink)}

.network-visual{padding:20px 0}
.network-visual svg{width:100%;height:auto}
.network-visual .cap{margin-top:18px;text-align:center;font-size:11px;font-weight:600;letter-spacing:.24em;color:var(--ink-soft);text-transform:uppercase}
.network-visual .cap::before{content:"";display:block;width:28px;height:3px;background:var(--coral);margin:0 auto 12px}
.checks{list-style:none;margin-top:28px}
.checks li{position:relative;padding:12px 0 12px 34px;border-top:1px solid var(--hairline);font-size:16px}
.checks li:last-child{border-bottom:1px solid var(--hairline)}
.checks li::before{content:"✓";position:absolute;left:4px;color:var(--blue);font-weight:600}

.vbc{padding:90px 0 130px;background:var(--paper-warm)}
.vbc h2{font-size:clamp(36px,3.4vw,50px);margin-bottom:24px}
.vbc .intro{max-width:62ch;color:var(--ink-soft);font-size:18px;margin-bottom:64px}
.vbc-split{display:grid;grid-template-columns:1.05fr .95fr;gap:80px;align-items:center;margin-bottom:100px}
.goals{list-style:none;counter-reset:goal}
.goals li{counter-increment:goal;border-top:1px solid var(--hairline);padding:16px 0 16px 54px;position:relative;font-size:17px}
.goals li:last-child{border-bottom:1px solid var(--hairline)}
.goals li::before{content:counter(goal,decimal-leading-zero);position:absolute;left:0;top:17px;font-family:var(--display);font-size:15px;color:var(--blue)}
.chart-block .chart-cap{margin-top:16px;font-size:14px;color:var(--ink-soft);max-width:44ch}
.chart-block .chart-cap strong{color:var(--ink);font-weight:600}
.stats-1{display:grid;grid-template-columns:repeat(3,1fr);gap:60px;margin-bottom:80px}
.stats-2{display:grid;grid-template-columns:repeat(4,1fr);gap:40px;border-top:1px solid var(--hairline);padding-top:56px}
.stat .ic{margin-bottom:18px;color:var(--blue)}
.stat .ic svg{width:30px;height:30px;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.stats-2 .ic svg{width:24px;height:24px}
.stat .n{font-family:var(--display);color:var(--blue);line-height:1;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.stats-1 .n{font-size:clamp(72px,8vw,118px)}
.stats-2 .n{font-size:clamp(40px,4vw,56px)}
.stat .l{margin-top:14px;font-size:16px;font-weight:600;color:var(--ink);max-width:22ch}
.stats-2 .l{font-size:14px;max-width:none}

.cta{background:var(--navy);color:#fff;position:relative;overflow:hidden}
.cta-grid{display:grid;grid-template-columns:.8fr 1.2fr;align-items:center;min-height:440px}
.cta-copy{padding:72px 48px 72px 0}
.cta-copy h2{color:#fff;font-size:clamp(28px,2.4vw,38px);margin-bottom:18px}
.cta-copy p{color:rgba(255,255,255,.72);max-width:46ch;margin-bottom:36px}
.cta-copy .em{color:var(--coral);font-style:normal}
.badges{display:flex;gap:14px;margin-top:32px}
.badges span{font-size:12.5px;font-weight:600;letter-spacing:.04em;color:rgba(255,255,255,.75);border:1px solid rgba(255,255,255,.28);border-radius:999px;padding:8px 16px}
.cta-photo{position:relative;height:100%;min-height:420px}
.cta-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.95;border-top-left-radius:120px}
.cta-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--navy) 0%,rgba(27,37,52,0) 26%);border-top-left-radius:120px}

footer{background:var(--navy-deep);color:rgba(255,255,255,.66);padding:64px 0 40px;font-size:14px}
.foot-top{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:40px;margin-bottom:44px}
.foot-logo img{height:52px;width:auto}
.foot-badges{display:flex;justify-content:space-between;align-items:center;width:584px;gap:0}
.foot-badges .chip{background:#fff;border-radius:10px;padding:7px 10px;display:flex;align-items:center}
.foot-badges .chip.vet{padding:7px 6px}
.foot-badges img{display:block;height:66px;width:auto}
.foot-contact{display:flex;flex-direction:column;gap:14px;justify-self:end}
.foot-contact .line{display:flex;align-items:center;gap:10px;font-size:14px;line-height:1.5;color:rgba(255,255,255,.72)}
.foot-contact .line.addr{align-items:flex-start}
.foot-contact .line.addr .ic{margin-top:3px}
.foot-contact .line a{color:rgba(255,255,255,.72)}
.foot-contact .line a:hover{color:#fff}
.foot-contact .ic{width:16px;height:16px;stroke:rgba(255,255,255,.72);fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto}
.foot-bottom{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:40px;border-top:1px solid rgba(255,255,255,.12);padding-top:28px}
.foot-bottom .copy{justify-self:start}
.foot-bottom nav{display:flex;justify-self:center;flex-wrap:nowrap;white-space:nowrap}
.foot-bottom nav .sep{margin:0 6px;color:rgba(255,255,255,.35)}
.foot-bottom a:hover{color:#fff}
.foot-bottom .social{justify-self:end;margin-right:76px;display:flex;gap:10px}
.foot-bottom .social a{width:30px;height:30px;border:1px solid rgba(255,255,255,.28);border-radius:50%;display:grid;place-items:center;transition:border-color .15s}
.foot-bottom .social a svg{width:13px;height:13px;fill:rgba(255,255,255,.78);transition:fill .15s}
.foot-bottom .social a:hover{border-color:#fff}
.foot-bottom .social a:hover svg{fill:#fff}

/* outcomes ledger */
.outcomes{padding:110px 0 120px;background:var(--paper-warm)}
.outcomes-grid{display:grid;grid-template-columns:5fr 7fr;gap:90px;align-items:start}
.outcomes-intro{position:sticky;top:110px}
.outcomes-intro h2{font-size:clamp(36px,3.4vw,50px);margin-bottom:24px}
.outcomes-intro p{font-size:18px;color:var(--ink-soft)}
.outcomes-intro .rule{width:44px;height:3px;background:var(--coral);border-radius:2px;margin-top:34px}
.ledger{border-top:1px solid var(--hairline)}
.ledger-row{display:grid;grid-template-columns:76px 1fr;gap:30px;padding:36px 0;border-bottom:1px solid var(--hairline);align-items:start}
.ledger-icon{width:64px;height:64px;border-radius:50%;background:#EAF7FC;display:flex;align-items:center;justify-content:center;color:var(--blue-deep)}
.ledger-icon svg{width:34px;height:34px;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.ledger-row h3{font-family:var(--display);font-weight:500;font-size:23px;color:var(--ink);margin-bottom:8px;line-height:1.25}
.ledger-row p{font-size:16.5px;color:var(--ink-soft)}

.rv{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s ease}
.rv.in{opacity:1;transform:none}
@media (prefers-reduced-motion: reduce){.rv{opacity:1;transform:none;transition:none}}

@media (max-width:940px){
  .wrap{padding:0 24px}
  .nav ul{display:none}
  .hero-inner,.story,.cta-grid,.vbc-split{grid-template-columns:1fr}
  .hero-copy{padding:70px 24px 40px}
  .hero-copy h1{white-space:normal}
  .eyebrow{white-space:normal}
  .hero-photo{min-height:320px;clip-path:none}
  .hero-photo img{left:50%;transform:translateX(-50%)}
  .hero-photo svg.edge{display:none}
  .story{gap:36px;padding:56px 0}
  .story.media-right .media{order:0}
  .story .media img{height:360px}
  .stats-1{grid-template-columns:1fr;gap:44px}
  .stats-2{grid-template-columns:repeat(2,1fr)}
  .cta-copy{padding:70px 0 40px}
  .cta-photo{min-height:320px}
  .journey{flex-wrap:wrap;gap:18px}
  .journey .step{flex:1 1 28%}
  .vbc-split{gap:44px;margin-bottom:64px}
  .outcomes{padding:72px 0 80px}
  .outcomes-grid{grid-template-columns:1fr;gap:56px}
  .outcomes-intro{position:static}
  .ledger-row{grid-template-columns:56px 1fr;gap:20px;padding:28px 0}
  .ledger-icon{width:52px;height:52px}
  .ledger-icon svg{width:28px;height:28px}
  .ledger-row h3{font-size:20px}
  .foot-top{grid-template-columns:1fr;gap:32px;justify-items:center}
  .foot-contact{justify-self:center;align-items:center}
  .foot-badges{width:auto;justify-content:center;gap:10px}
  .foot-badges img{height:46px}
  .foot-bottom{grid-template-columns:1fr;justify-items:center;gap:14px}
  .foot-bottom .copy,.foot-bottom nav,.foot-bottom .social{justify-self:center;margin-right:0}
  .foot-bottom nav{flex-wrap:wrap;white-space:normal;justify-content:center}
}
