/* ============================================================
   APEX MEDICAL BILLING — Marketing site styles (full-bleed v2)
     - Color tokens verbatim from apex-brand-system-v1.1.
     - Shadow / radius / spacing / components from apex-overlay-elements-v2,
       with the handoff §6.2 contrast failures corrected at lift.
     - Photos are primary content: full-bleed split heroes and full-width
       photo bands. Any text over a photo sits on a scrim or a solid card.
   ============================================================ */

:root{
  --apex-blue:#3375d3;
  --sky-blue:#4787eb;
  --apex-teal:#1eccb5;
  --deep-navy:#0d1a38;
  --light-navy:#8ba7d4;
  --cloud-white:#f4f8ff;
  --pale-blue:#e8eef8;
  --text-gray:#6b6b6b;
  --grad:linear-gradient(135deg,#3375d3 0%,#4787eb 51%,#1eccb5 100%);

  /* Accessible text tokens (v1.1) */
  --blue-text:#2a62b4;
  --sky-text:#2f6fd0;
  --teal-text:#0e7c6e;
  --ink:#1a2540;
  --ink-meta:#636e7d;
  --on-navy:#a9bad6;
  --metric-blue:#6fa8f5;
  --alert:#b03a3a;
  --alert-ink:#6b3030;
  --alert-bg:#fef5f5;
  --alert-line:#f5d4d4;

  --page:#f9fbff;
  --rule:#e8eef8;
  --rule-soft:#f0f4fb;
  --border-strong:#8ba7d4;

  --ink-soft:#41527a;       /* 7.74 on white — secondary text */
  --grad-soft:linear-gradient(135deg,#eef4fd 0%,#eafaf6 100%);
  --on-navy-body:#b6c5e2;   /* 9.9:1 body text on deep navy */

  /* Status colors — foregrounds per handoff 6.2.5 (verified ≥4.5).
     Library --red dropped; error state uses v1.1 --alert tokens. */
  --amber:#8a5200;   --amber-bg:#fff8ec;  --amber-line:#f0ddbe;
  --green:#0a7d5e;   --green-bg:#e9faf4;  --green-line:#c3ecdf;
  --violet:#5748c4;  --violet-bg:#f0eefc;

  --sh-sm:0 2px 8px rgba(13,26,56,.10), 0 1px 2px rgba(13,26,56,.06);
  --sh-md:0 8px 24px rgba(13,26,56,.14), 0 2px 6px rgba(13,26,56,.07);
  --sh-lg:0 18px 46px rgba(13,26,56,.18), 0 4px 12px rgba(13,26,56,.08);
  --sh-xl:0 30px 72px rgba(13,26,56,.22), 0 6px 18px rgba(13,26,56,.10);
  --r-sm:8px; --r-md:12px; --r-lg:16px; --r-xl:20px;

  --wrap:1280px;
  --gut:40px;
  --header-h:68px;

  /* ---- Type scale — single source of truth for font sizing ----
     Fluid steps use clamp(min, vw, max); fixed steps stay constant. */
  --fs-hero: clamp(46px,7.6vw,96px);  /* hero headline */
  --fs-h1:   clamp(34px,4.6vw,60px);  /* primary section headings */
  --fs-h2:   clamp(27px,3.3vw,44px);  /* secondary headings, display numbers */
  --fs-h3:   clamp(20px,2vw,27px);    /* card / block headings */
  --fs-lede: clamp(17px,1.4vw,20px);  /* intros, ledes, large body */
  --fs-lg:   20px;   /* prominent fixed labels / emphasis */
  --fs-body: 16px;   /* base body */
  --fs-md:   15px;   /* dense body: descriptions, inputs, notes */
  --fs-sm:   14px;   /* secondary UI: nav, footer, labels */
  --fs-xs:   12px;   /* eyebrows, captions, meta */
  --fs-2xs:  11px;   /* micro uppercase labels */
}

/* ---- Reset + base ---- */
*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:var(--header-h);}
body{margin:0;background:#fff;color:var(--deep-navy);
  font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-size:var(--fs-body);line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:clip;}
img{max-width:100%;display:block;}
a{color:var(--blue-text);}
h1,h2,h3{color:var(--deep-navy);letter-spacing:-.02em;line-height:1.12;margin:0;}
.on-dark :is(h1,h2,h3),.is-dark :is(h2,h3),.is-glass-dark :is(h2,h3){color:#fff;}

.skip{position:absolute;left:-9999px;top:0;z-index:200;padding:12px 20px;
  background:var(--deep-navy);color:#fff;font-size:var(--fs-sm);font-weight:600;
  border-radius:0 0 var(--r-sm) 0;text-decoration:none;}
.skip:focus{left:0;}

:focus-visible{outline:3px solid var(--deep-navy);outline-offset:2px;border-radius:2px;}
.on-dark :focus-visible{outline-color:var(--apex-teal);}

.wrap{width:100%;max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gut);}
.section-pad{padding-block:clamp(72px,9vw,132px);}
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;}

/* Section heads — larger type scale */
.section-head{max-width:760px;}
.section-head .ax-eyebrow{margin:0 0 14px;font-size:var(--fs-xs);}
.section-head h2{font-size:var(--fs-h1);font-weight:800;letter-spacing:-.03em;line-height:1.02;}
.section-lede{font-size:var(--fs-lede);line-height:1.6;color:var(--text-gray);margin:20px 0 0;}
.on-dark .section-lede{color:var(--on-navy-body);}

/* ============================================================
   Header / nav — sticky white (.92 over navy resolves ~#ecedef)
   ============================================================ */
.site-header{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.92);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--rule);}
.site-header .wrap{min-height:var(--header-h);display:flex;align-items:center;justify-content:space-between;gap:20px;}
.site-header .logo{height:34px;width:auto;}
.nav{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.nav a{text-decoration:none;color:var(--deep-navy);font-size:var(--fs-sm);font-weight:600;
  padding:8px 12px;border-radius:var(--r-sm);transition:background .15s ease,color .15s ease;}
.nav a:hover{background:var(--cloud-white);color:var(--blue-text);}
.nav a.cta{background:var(--grad);color:#fff;padding-inline:16px;}
.nav a.cta:hover{filter:brightness(.94);color:#fff;}
.nav-phone{display:inline-flex;align-items:center;gap:7px;font-weight:700;}
.nav-phone svg{width:16px;height:16px;color:var(--apex-blue);flex:0 0 auto;}

/* Compact phone shown in the header bar only when the nav collapses (see 900px query) */
.header-phone{display:none;align-items:center;gap:7px;font-weight:700;font-size:var(--fs-sm);
  color:var(--deep-navy);text-decoration:none;padding:8px 8px;border-radius:var(--r-sm);white-space:nowrap;}
.header-phone svg{width:16px;height:16px;color:var(--apex-blue);flex:0 0 auto;}
.header-phone:hover{color:var(--blue-text);background:var(--cloud-white);}

/* Mobile menu toggle — CSS-only (checkbox); burger hidden on desktop */
.nav-toggle{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden;}
.nav-burger{display:none;flex-direction:column;justify-content:center;gap:5px;flex:0 0 auto;
  width:44px;height:44px;padding:11px;border-radius:var(--r-sm);cursor:pointer;}
.nav-burger span{display:block;width:100%;height:2px;border-radius:2px;background:var(--deep-navy);
  transition:transform .25s ease,opacity .2s ease;}
.nav-toggle:focus-visible ~ .nav-burger{outline:3px solid var(--deep-navy);outline-offset:2px;}

/* ============================================================
   COMPONENTS (lifted, demo chrome stripped, 6.2 fixes applied)
   ============================================================ */
.ax{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased;color:var(--ink);}
.ax,.ax *,.ax *::before,.ax *::after{box-sizing:border-box;}
.ax-card{background:#fff;border-radius:var(--r-lg);box-shadow:var(--sh-lg);padding:20px;}
.ax-card.is-dark{background:var(--deep-navy);color:#fff;}

.ax-eyebrow{font-size:var(--fs-xs);line-height:1.1;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--blue-text);}
.on-dark .ax-eyebrow,.is-dark .ax-eyebrow,.is-glass-dark .ax-eyebrow{color:var(--apex-teal);}
.ax-h{font-size:var(--fs-body);line-height:1.3;font-weight:700;letter-spacing:-.012em;}
.ax-h-sm{font-size:var(--fs-sm);line-height:1.35;font-weight:600;letter-spacing:-.008em;}
.ax-body{font-size:var(--fs-sm);line-height:1.55;font-weight:400;color:var(--text-gray);margin:0;}
.is-dark .ax-body,.is-glass-dark .ax-body{color:var(--on-navy-body);}
.ax-meta{font-size:var(--fs-xs);line-height:1.4;font-weight:500;color:var(--ink-soft);}
.is-dark .ax-meta{color:var(--light-navy);}
.ax-micro{font-size:var(--fs-2xs);line-height:1.3;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-soft);}

/* Avatars — apex-blue text on grad-soft fails small → blue-text (v-blue used for MR) */
.ax-av{border-radius:50%;flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;
  font-weight:700;letter-spacing:.01em;overflow:hidden;position:relative;
  width:40px;height:40px;font-size:var(--fs-sm);background:var(--grad-soft);color:var(--blue-text);}
.ax-av.sz-sm{width:34px;height:34px;font-size:var(--fs-xs);}
.ax-av.sz-xl{width:68px;height:68px;font-size:var(--fs-lg);}
.ax-av.v-blue{background:var(--apex-blue);color:#fff;}
.ax-av.v-grad{background:var(--grad);color:#fff;}
.ax-av.v-teal{background:var(--apex-teal);color:#06382f;}

/* Buttons. Focus from global :focus-visible. v-grad hover-brightness NOT lifted
   (worsens white-on-teal); v-grad, if used, carries no small text. */
.ax-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:15px 28px;
  border-radius:999px;border:0;cursor:pointer;font-family:inherit;font-size:var(--fs-md);font-weight:600;
  line-height:1;text-decoration:none;transition:background .18s ease;}
.ax-btn.v-primary{background:var(--grad);color:#fff;}
.ax-btn.v-primary:hover{filter:brightness(.94);}
.ax-btn.v-white{background:#fff;color:var(--blue-text);box-shadow:var(--sh-sm);}
.ax-btn.v-white:hover{background:var(--cloud-white);}
.ax-btn.v-ghost{background:transparent;color:var(--blue-text);border:1.5px solid var(--apex-blue);}
.ax-btn.v-ghost:hover{background:#eaf2fe;}
.on-dark .ax-btn.v-ghost{color:#fff;border-color:rgba(255,255,255,.55);}
.on-dark .ax-btn.v-ghost:hover{background:rgba(255,255,255,.10);}
.ax-btn svg{width:16px;height:16px;}

.ax-statpill{display:inline-flex;align-items:center;gap:11px;padding:13px 18px;border-radius:var(--r-md);background:#fff;box-shadow:var(--sh-lg);}
.ax-statpill .ico{width:32px;height:32px;border-radius:9px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;background:var(--grad-soft);color:var(--blue-text);}
.ax-statpill .ico svg{width:16px;height:16px;}
.ax-statpill .val{font-size:var(--fs-lg);font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums;line-height:1.1;}
.ax-statpill .cap{font-size:var(--fs-2xs);font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-soft);}
.ax-statpill.is-navy{background:var(--deep-navy);color:#fff;}
.ax-statpill.is-navy .ico{background:rgba(30,204,181,.14);color:var(--apex-teal);}
.ax-statpill.is-navy .cap{color:var(--light-navy);}

.ax-iconbadge{display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:50%;background:#fff;box-shadow:var(--sh-md);color:var(--apex-blue);flex:0 0 auto;}
.ax-iconbadge svg{width:22px;height:22px;}
.ax-iconbadge.is-navy{background:var(--deep-navy);color:var(--apex-teal);}
.ax-iconbadge.is-tinted{background:var(--cloud-white);box-shadow:var(--sh-sm);}

.ax-bar{height:7px;border-radius:99px;background:var(--pale-blue);overflow:hidden;}
.ax-bar > span{display:block;height:100%;border-radius:99px;background:var(--grad);}
.ax-bar.v-flat > span{background:var(--apex-blue);}

.ax-aging .row{margin-bottom:14px;}
.ax-aging .row:last-child{margin-bottom:0;}
.ax-aging .rt{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:7px;}
.ax-aging .rn{font-size:var(--fs-sm);font-weight:500;color:var(--deep-navy);}

.ax-cadence .wk{display:flex;gap:6px;margin-top:14px;}
.ax-cadence .d{flex:1;text-align:center;padding:11px 0 9px;border-radius:9px;background:var(--cloud-white);}
.ax-cadence .d .lt{font-size:var(--fs-2xs);font-weight:700;letter-spacing:.04em;color:var(--ink-soft);text-transform:uppercase;}
.ax-cadence .d .mk{width:16px;height:16px;border-radius:50%;margin:7px auto 0;background:var(--pale-blue);display:flex;align-items:center;justify-content:center;color:transparent;}
.ax-cadence .d.on{background:#eaf2fe;}
.ax-cadence .d.on .lt{color:var(--blue-text);}
.ax-cadence .d.on .mk{background:var(--apex-blue);color:#fff;}
.ax-cadence .d .mk svg{width:9px;height:9px;}

/* Flow — .n was --apex-blue (fails 12px) → --blue-text; +is-dark for navy band */
.ax-flow .st{display:flex;gap:15px;padding:15px 0;}
.ax-flow .st + .st{border-top:1px solid var(--pale-blue);}
.ax-flow .n{width:29px;height:29px;border-radius:8px;flex:0 0 auto;background:var(--cloud-white);color:var(--blue-text);display:flex;align-items:center;justify-content:center;font-size:var(--fs-xs);font-weight:700;font-variant-numeric:tabular-nums;}
.ax-flow .tt{font-size:var(--fs-sm);font-weight:600;line-height:1.35;color:var(--deep-navy);}
.ax-flow .ds{font-size:var(--fs-xs);line-height:1.5;color:var(--text-gray);margin-top:5px;}
.ax-flow.is-row{display:grid;grid-template-columns:repeat(5,1fr);}
.ax-flow.is-row .st{flex-direction:column;gap:11px;padding:4px 22px;}
.ax-flow.is-row .st + .st{border-top:0;border-left:1px solid var(--pale-blue);}
.ax-flow.is-dark .n{background:rgba(30,204,181,.16);color:var(--apex-teal);}
.ax-flow.is-dark .tt{color:#fff;}
.ax-flow.is-dark .ds{color:var(--on-navy-body);}
.ax-flow.is-dark.is-row .st + .st{border-left-color:rgba(255,255,255,.14);}
.ax-flow.is-dark .st + .st{border-top-color:rgba(255,255,255,.12);}

.ax-chip{display:inline-flex;align-items:center;padding:9px 15px;border-radius:999px;background:#fff;
  box-shadow:var(--sh-sm);border:1px solid var(--pale-blue);font-size:var(--fs-sm);font-weight:500;color:var(--ink);white-space:nowrap;}

/* Checklist — teal ticks on navy 6.23:1; text inherits card #fff */
.ax-check ul{list-style:none;margin:14px 0 0;padding:0;}
.ax-check li{display:flex;gap:12px;align-items:flex-start;padding:11px 0;font-size:var(--fs-md);line-height:1.45;}
.ax-check li + li{border-top:1px solid var(--pale-blue);}
.ax-check.is-dark li + li{border-top-color:rgba(255,255,255,.12);}
.ax-check .tk{width:20px;height:20px;border-radius:50%;flex:0 0 auto;margin-top:1px;background:var(--green-bg);color:var(--green);display:flex;align-items:center;justify-content:center;}
.ax-check .tk svg{width:11px;height:11px;}
.ax-check.is-dark .tk{background:rgba(30,204,181,.16);color:var(--apex-teal);}

/* Contingency fee card. is-dark icon: white on solid --apex-blue (4.54) */
.ax-fee{padding:26px;text-align:center;}
.ax-fee .ico{width:52px;height:52px;border-radius:14px;margin:0 auto 16px;background:var(--grad);color:#fff;display:flex;align-items:center;justify-content:center;}
.ax-fee.is-dark .ico{background:var(--apex-blue);}
.ax-fee .ico svg{width:24px;height:24px;}
.ax-fee .tt{font-size:var(--fs-lg);font-weight:700;letter-spacing:-.015em;line-height:1.3;}
.ax-fee .ds{font-size:var(--fs-sm);line-height:1.55;color:var(--text-gray);margin-top:10px;}
.ax-fee.is-dark .ds{color:var(--on-navy-body);}

/* Persona chip + quote */
.ax-person{display:inline-flex;align-items:center;gap:11px;padding:10px 18px 10px 10px;border-radius:999px;background:#fff;box-shadow:var(--sh-lg);}
.ax-person .nm{font-size:var(--fs-sm);font-weight:600;line-height:1.25;display:block;color:var(--deep-navy);}
.ax-person .rl{font-size:var(--fs-xs);font-weight:500;color:var(--ink-soft);line-height:1.3;display:block;margin-top:1px;}

/* ============================================================
   SECTION 2 — HERO (full-bleed split: copy left, photo right)
   ============================================================ */
/* Full-bleed photo hero: image behind, heavy scrim, headline anchored bottom-left */
.hero{position:relative;overflow:hidden;display:flex;flex-direction:column;
  min-height:clamp(600px,88vh,880px);color:#fff;background:var(--deep-navy);}
.hero-bg{position:absolute;inset:0;z-index:0;}
.hero-bg img{width:100%;height:100%;object-fit:cover;object-position:72% center;}
.hero-scrim{position:absolute;inset:0;z-index:0;
  background:
    linear-gradient(84deg, rgba(13,26,56,.96) 0%, rgba(13,26,56,.82) 38%, rgba(13,26,56,.42) 68%, rgba(13,26,56,.22) 100%),
    linear-gradient(0deg, rgba(13,26,56,.92) 0%, rgba(13,26,56,.25) 42%, transparent 68%);}
.hero-inner{position:relative;z-index:2;flex:1;display:flex;flex-direction:column;justify-content:flex-end;
  padding-block:clamp(96px,13vh,150px) clamp(40px,6vh,76px);}
.hero-inner .ax-eyebrow{margin:0 0 18px;font-size:var(--fs-xs);}
.hero h1{font-size:var(--fs-hero);font-weight:800;line-height:1.0;letter-spacing:-.035em;color:#fff;margin:0;max-width:15ch;}
.hero-lede{font-size:var(--fs-lede);line-height:1.55;color:#eaf1fb;margin:26px 0 0;max-width:52ch;}
.hero-cta{display:flex;flex-wrap:wrap;gap:16px;margin-top:36px;}

.servicebar{position:relative;z-index:2;background:var(--deep-navy);border-top:1px solid rgba(255,255,255,.09);}
.servicebar .wrap{padding-block:16px;}
.servicebar ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:9px 22px;}
.servicebar li{display:flex;align-items:center;font-size:var(--fs-xs);font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:#fff;}
.servicebar li::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--apex-teal);flex:0 0 auto;margin-right:12px;}
.servicebar li:first-child::before{display:none;}

/* ============================================================
   SECTION 3 — SERVICES
   ============================================================ */
/* Full-width photo band with copy on a left-heavy navy scrim */
.photo-band{position:relative;display:flex;align-items:center;min-height:clamp(440px,47vw,600px);overflow:hidden;}
.photo-band > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:60% center;}
.photo-band::after{content:"";position:absolute;inset:0;
  background:linear-gradient(90deg, rgba(13,26,56,.93) 0%, rgba(13,26,56,.88) 36%, rgba(13,26,56,.5) 64%, rgba(13,26,56,.05) 94%);}
.photo-band .band-copy{position:relative;z-index:2;width:100%;max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gut);}
.photo-band .inner{max-width:520px;color:#fff;}      /* stays in the ≥.85 scrim zone */
.photo-band .inner h3{font-size:var(--fs-h2);font-weight:800;letter-spacing:-.025em;color:#fff;margin:10px 0 0;line-height:1.03;}
.photo-band .inner p{font-size:var(--fs-lede);line-height:1.6;color:#e3ebf7;margin:16px 0 0;}

/* 2×2 service grid */
.svc-grid2{display:grid;grid-template-columns:1fr 1fr;gap:24px;}
.svc-tile{background:#fff;border:1px solid var(--rule);border-radius:var(--r-lg);box-shadow:var(--sh-sm);padding:clamp(28px,3vw,44px);display:flex;flex-direction:column;height:100%;}
.svc-cat{font-size:var(--fs-2xs);font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--blue-text);}
.svc-tile h3{font-size:var(--fs-h3);font-weight:800;letter-spacing:-.015em;margin:10px 0 0;color:var(--deep-navy);}
.svc-tile p{font-size:var(--fs-md);line-height:1.55;color:var(--text-gray);margin:12px 0 0;}
.svc-tile .ax-iconbadge{margin-bottom:20px;width:60px;height:60px;}
.svc-tile .ax-iconbadge svg{width:26px;height:26px;}
.svc-frag{margin-top:auto;padding-top:22px;}
.svc-frag .ax-micro{display:block;margin-bottom:6px;color:var(--ink-soft);}

.specialties{margin-top:46px;padding-top:38px;border-top:1px solid var(--rule);}
.specialties.spec-standalone{margin-top:0;padding-top:0;border-top:0;}
.specialties h3{font-size:var(--fs-body);font-weight:700;color:var(--deep-navy);}
.chip-row{list-style:none;margin:18px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:10px;}

/* Flow anchor on its own full-width navy band */
.flow-band{background:var(--deep-navy);color:#fff;}
.flow-band .wrap{padding-block:clamp(64px,8vw,110px);}
.flow-band .ax-eyebrow{margin:0 0 8px;}
.flow-band h3{font-size:var(--fs-h2);font-weight:800;letter-spacing:-.025em;color:#fff;margin:0 0 36px;line-height:1.03;}
.flow-band .ax-flow{padding:0;}


/* ============================================================
   SECTION 4 — WHY (navy; challenges panel overlaps the photo)
   ============================================================ */
.why{background:var(--deep-navy);color:#fff;}
.why-stage{position:relative;margin-top:44px;}
.why-photo{margin-left:auto;width:82%;height:clamp(540px,54vw,660px);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--sh-lg);}
.why-photo img{width:100%;height:100%;object-fit:cover;object-position:62% center;}
.why-panel{position:absolute;left:0;top:50%;transform:translateY(-50%);width:min(400px,44%);z-index:2;
  padding:28px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.16);
  -webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);}
.why-panel > h3{font-size:var(--fs-lg);font-weight:700;color:#fff;margin:0;}
.why-fee{position:absolute;right:20px;bottom:-28px;width:min(300px,52%);z-index:2;border:1px solid rgba(255,255,255,.16);}
/* same card treatment as the outcome/values cards — gradient top + body glow +
   hover. Layered over solid navy so these panels stay opaque over the photo.
   (.ax-card.is-dark specificity requires the tripled class selector here.) */
.ax-card.is-dark.why-panel,.ax-card.is-dark.why-fee{overflow:hidden;
  border:1px solid rgba(255,255,255,.12);
  background:
    radial-gradient(135% 95% at 100% 0%, rgba(30,204,181,.14), transparent 62%),
    linear-gradient(180deg, rgba(255,255,255,.075), rgba(255,255,255,.028)),
    var(--deep-navy);
  transition:transform .28s ease, border-color .28s ease, box-shadow .28s ease;}
.why-panel::before,.why-fee::before{content:"";position:absolute;inset:0 0 auto 0;height:2px;background:var(--grad);opacity:.55;transition:opacity .28s ease;}
.why-panel:hover,.why-fee:hover{border-color:rgba(30,204,181,.42);box-shadow:0 22px 46px rgba(0,0,0,.42);}
.why-panel:hover::before,.why-fee:hover::before{opacity:1;}
.why-panel:hover{transform:translateY(calc(-50% - 5px));}  /* keep centered while lifting */
.why-fee:hover{transform:translateY(-5px);}

.outcomes{margin-top:88px;}
.outcomes .ax-eyebrow{margin:0 0 12px;}
.outcomes > h3{font-size:var(--fs-h2);font-weight:800;letter-spacing:-.02em;color:#fff;}
.outcome-grid{list-style:none;margin:34px 0 0;padding:0;display:grid;grid-template-columns:repeat(6,1fr);gap:20px;}
.outcome{position:relative;overflow:hidden;grid-column:span 2;
  border:1px solid rgba(255,255,255,.10);border-radius:var(--r-lg);
  padding:clamp(26px,2.4vw,36px);
  background:
    radial-gradient(135% 95% at 100% 0%, rgba(30,204,181,.14), transparent 62%),
    linear-gradient(180deg, rgba(255,255,255,.075), rgba(255,255,255,.028));
  transition:transform .28s ease, border-color .28s ease, box-shadow .28s ease;}
.outcome:nth-child(4){grid-column:2 / span 2;}
.outcome:nth-child(5){grid-column:4 / span 2;}
/* gradient hairline across the top */
.outcome::before{content:"";position:absolute;inset:0 0 auto 0;height:2px;background:var(--grad);opacity:.55;transition:opacity .28s ease;}
.outcome:hover{transform:translateY(-5px);border-color:rgba(30,204,181,.42);box-shadow:0 20px 44px rgba(0,0,0,.34);}
.outcome:hover::before{opacity:1;}
/* content styled to match the values cards: 40px icon + title + short copy */
.outcome .ico{width:40px;height:40px;color:var(--apex-teal);margin-bottom:20px;}
.outcome .tt{font-size:var(--fs-lg);font-weight:700;color:#fff;line-height:1.25;letter-spacing:-.01em;}
.outcome .ds{margin-top:10px;font-size:var(--fs-body);line-height:1.6;color:var(--on-navy-body);}

/* ============================================================
   SECTION 5 — ABOUT (mirror hero: copy left, full-bleed photo right)
   + core values on a navy band
   ============================================================ */
/* 2/3 copy + 1/3 circular portrait, content aligned to the page container */
.about-split{position:relative;display:flex;align-items:center;gap:clamp(32px,5vw,72px);
  min-height:clamp(460px,56vh,620px);background:var(--cloud-white);
  padding-inline:max(var(--gut), calc((100% - var(--wrap))/2 + var(--gut)));
  padding-block:clamp(56px,7vw,90px);}
.about-copy{position:relative;z-index:2;flex:2 1 0;min-width:0;}
.about-copy .ax-eyebrow{margin:0 0 12px;}
.about-copy h2{font-size:var(--fs-h1);font-weight:800;letter-spacing:-.03em;line-height:1.02;}
.about-copy p:not(.ax-eyebrow){color:var(--text-gray);font-size:var(--fs-lede);line-height:1.7;margin:20px 0 0;}
.about-lead{color:var(--deep-navy)!important;font-size:var(--fs-h3);font-weight:600;line-height:1.4;letter-spacing:-.012em;margin-top:20px;}
.about-actions{display:flex;flex-wrap:wrap;align-items:center;gap:16px;margin-top:26px;}
.about-photo{flex:1 1 0;min-width:0;display:flex;align-items:center;justify-content:center;}
.about-photo img{width:100%;max-width:clamp(220px,26vw,360px);aspect-ratio:1;
  border-radius:50%;object-fit:cover;object-position:center;box-shadow:var(--sh-lg);}

.values-band{background:var(--deep-navy);color:#fff;}
.values-band .wrap{padding-block:clamp(48px,6vw,72px);}
.values-band .ax-eyebrow{margin:0 0 6px;}
.values-band > .wrap > h3{font-size:var(--fs-h2);font-weight:800;letter-spacing:-.025em;color:#fff;margin:0;line-height:1.03;}
.values-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:28px;}
.value-cl{position:relative;overflow:hidden;
  border:1px solid rgba(255,255,255,.10);border-radius:var(--r-lg);padding:30px;
  background:
    radial-gradient(135% 95% at 100% 0%, rgba(30,204,181,.14), transparent 62%),
    linear-gradient(180deg, rgba(255,255,255,.075), rgba(255,255,255,.028));
  transition:transform .28s ease, border-color .28s ease, box-shadow .28s ease;}
.value-cl::before{content:"";position:absolute;inset:0 0 auto 0;height:2px;background:var(--grad);opacity:.55;transition:opacity .28s ease;}
.value-cl:hover{transform:translateY(-5px);border-color:rgba(30,204,181,.42);box-shadow:0 20px 44px rgba(0,0,0,.34);}
.value-cl:hover::before{opacity:1;}
.value-cl .ico{width:40px;height:40px;color:var(--apex-teal);margin-bottom:20px;}
.value-cl .tt{font-size:var(--fs-lg);font-weight:700;color:#fff;line-height:1.25;letter-spacing:-.01em;}
.value-cl .ds{font-size:var(--fs-body);line-height:1.6;color:var(--on-navy-body);margin-top:10px;}

/* ============================================================
   SECTION 6 — CONTACT + FORM
   ============================================================ */
/* Cloud-white band so the white form card pops */
#contact{background:var(--cloud-white);}
.contact-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:clamp(36px,5vw,72px);align-items:start;}
/* Left column holds the intro + call info; space the call block below the intro. */
.contact-info{margin-top:clamp(40px,5vw,64px);}
.contact-info h3{font-size:var(--fs-h3);font-weight:800;letter-spacing:-.015em;color:var(--deep-navy);}
.contact-phone{display:inline-block;margin-top:12px;font-size:var(--fs-h2);font-weight:800;letter-spacing:-.02em;line-height:1.02;color:var(--deep-navy);text-decoration:none;}
.contact-phone span{font-size:.44em;font-weight:700;color:var(--ink-meta);margin-left:6px;letter-spacing:0;}
.contact-phone:hover{color:var(--blue-text);}
.contact-note{font-size:var(--fs-md);line-height:1.6;color:var(--text-gray);margin:20px 0 0;max-width:40ch;}

/* Border #7089b8 = 3.52:1 on white — #8ba7d4 is only 2.45 and fails 3:1 */
.form-card{position:relative;background:#fff;border:1px solid var(--rule);border-radius:var(--r-lg);
  box-shadow:var(--sh-lg);padding:clamp(28px,3vw,40px);overflow:hidden;}
.form-card::before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:var(--grad);}
.form-card > h3{font-size:var(--fs-h3);font-weight:800;letter-spacing:-.015em;color:var(--deep-navy);margin:0 0 22px;}
.field{margin-bottom:18px;}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.field label{display:block;font-size:var(--fs-sm);font-weight:600;color:var(--deep-navy);margin-bottom:6px;}
.field .req{font-weight:500;color:var(--ink-meta);}
.field input,.field select,.field textarea{width:100%;font-family:inherit;font-size:var(--fs-md);color:var(--deep-navy);
  background:#fff;border:1.5px solid #7089b8;border-radius:var(--r-sm);padding:11px 13px;}
.field input::placeholder,.field textarea::placeholder{color:var(--ink-meta);}
.field textarea{min-height:120px;resize:vertical;}
.field :is(input,select,textarea):focus-visible{border-color:var(--apex-blue);outline:3px solid var(--deep-navy);outline-offset:2px;}
.form-card .ax-btn{width:100%;margin-top:6px;}

/* ============================================================
   FOOTER
   ============================================================ */
.site-footer{background:var(--deep-navy);color:#fff;padding-block:52px 32px;}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr auto;gap:40px;align-items:start;}
.footer-brand .logo{height:38px;width:auto;}
.footer-tag{margin:16px 0 0;font-size:var(--fs-sm);line-height:1.6;color:var(--on-navy);max-width:34ch;}
.footer-phone{display:inline-block;margin-top:14px;font-size:var(--fs-lg);font-weight:700;color:#fff;text-decoration:none;}
.footer-phone:hover{color:var(--apex-teal);}
.footer-nav{display:flex;flex-direction:column;gap:10px;}
.footer-nav a{color:var(--light-navy);text-decoration:none;font-size:var(--fs-sm);font-weight:500;width:max-content;}
.footer-nav a:hover{color:#fff;}
.footer-hipaa{display:inline-flex;align-items:center;gap:9px;padding:10px 15px;border-radius:999px;
  background:rgba(30,204,181,.12);border:1px solid rgba(30,204,181,.30);font-size:var(--fs-xs);font-weight:600;color:#fff;white-space:nowrap;}
.footer-hipaa svg{width:16px;height:16px;color:var(--apex-teal);flex:0 0 auto;}
.footer-bottom{margin-top:40px;padding-top:22px;border-top:1px solid rgba(255,255,255,.12);}
.footer-bottom p{margin:0;font-size:var(--fs-xs);color:var(--on-navy);}

/* ============================================================
   TESTIMONIALS — CSS-only carousel
   scroll-snap track = native touch/swipe; anchor dots = button nav;
   active dot via :has() + :target (no JS).
   ============================================================ */
.testimonials{background:#fff;}
.tm-head{max-width:760px;margin-inline:auto;text-align:center;}
.tm-head .ax-eyebrow{margin:0 0 12px;}
.tm-head h2{font-size:var(--fs-h1);font-weight:800;letter-spacing:-.03em;line-height:1.02;}

.tm-carousel{margin-top:clamp(36px,4vw,56px);}
.tm-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;
  -webkit-overflow-scrolling:touch;scrollbar-width:none;}
.tm-track::-webkit-scrollbar{display:none;}
.tm-track:focus-visible{outline:3px solid var(--deep-navy);outline-offset:4px;border-radius:var(--r-md);}
/* one testimonial per view, centered */
.tm-slide{flex:0 0 100%;scroll-snap-align:center;scroll-snap-stop:always;
  display:flex;flex-direction:column;align-items:center;text-align:center;
  padding:clamp(4px,2vw,20px) clamp(12px,5vw,64px);}
.tm-mark{line-height:0;}
.tm-mark svg{width:clamp(34px,4vw,48px);height:auto;fill:url("#apex-icon-grad");}
.tm-quote{margin:clamp(14px,2vw,22px) 0 0;max-width:760px;
  font-size:var(--fs-h3);font-weight:600;line-height:1.45;letter-spacing:-.01em;color:var(--deep-navy);}
.tm-cite{margin-top:clamp(20px,2.5vw,28px);}
.tm-name{display:block;font-weight:700;color:var(--deep-navy);font-size:var(--fs-body);}
.tm-role{display:block;margin-top:4px;font-size:var(--fs-sm);color:var(--text-gray);}

.tm-dots{display:flex;justify-content:center;gap:12px;margin-top:clamp(28px,3.5vw,44px);}
.tm-dots a{width:11px;height:11px;border-radius:50%;background:var(--border-strong);opacity:.45;
  transition:opacity .18s ease,background .18s ease,transform .18s ease;}
.tm-dots a:hover,.tm-dots a:focus-visible{opacity:.85;}
/* active dot: first by default, else whichever slide is :target'd */
.tm-carousel:not(:has(.tm-slide:target)) .tm-dots a:first-child,
.tm-carousel:has(#tm1:target) .tm-dots a[href="#tm1"],
.tm-carousel:has(#tm2:target) .tm-dots a[href="#tm2"],
.tm-carousel:has(#tm3:target) .tm-dots a[href="#tm3"]{
  opacity:1;background:var(--apex-blue);transform:scale(1.18);}

/* ============================================================
   FORM SUCCESS MODAL — revealed by the AJAX handler on submit
   ============================================================ */
.fs-modal{position:fixed;inset:0;z-index:1000;display:none;align-items:center;justify-content:center;
  padding:24px;background:rgba(13,26,56,.55);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);}
.fs-modal.is-open{display:flex;animation:fs-fade .25s ease;}
@keyframes fs-fade{from{opacity:0}to{opacity:1}}
.fs-modal-card{background:#fff;border-radius:var(--r-xl);box-shadow:var(--sh-xl);
  width:100%;max-width:460px;padding:clamp(32px,5vw,48px);text-align:center;
  animation:fs-pop .42s cubic-bezier(.2,.9,.3,1.15);}
@keyframes fs-pop{from{transform:translateY(14px) scale(.96);opacity:0}to{transform:none;opacity:1}}
.fs-check{display:inline-flex;line-height:0;margin-bottom:20px;}
.fs-check svg{width:78px;height:78px;}
.fs-check-circle,.fs-check-mark{stroke:url("#apex-icon-grad");fill:none;stroke-linecap:round;stroke-linejoin:round;}
.fs-check-circle{stroke-width:2.5;stroke-dasharray:151;stroke-dashoffset:151;}
.fs-check-mark{stroke-width:3;stroke-dasharray:40;stroke-dashoffset:40;}
.fs-modal.is-open .fs-check-circle{animation:fs-draw .5s ease .1s forwards;}
.fs-modal.is-open .fs-check-mark{animation:fs-draw .35s ease .55s forwards;}
@keyframes fs-draw{to{stroke-dashoffset:0;}}
.fs-modal-title{font-size:var(--fs-h2);font-weight:800;letter-spacing:-.02em;color:var(--deep-navy);margin:0;}
.fs-modal-text{font-size:var(--fs-body);line-height:1.6;color:var(--text-gray);margin:12px 0 0;}
.fs-modal-text a{color:var(--blue-text);font-weight:600;white-space:nowrap;}
.fs-modal-close{margin-top:26px;min-width:140px;}
@media (prefers-reduced-motion:reduce){
  .fs-modal.is-open,.fs-modal-card,
  .fs-modal.is-open .fs-check-circle,.fs-modal.is-open .fs-check-mark{animation:none;}
  .fs-check-circle,.fs-check-mark{stroke-dashoffset:0;}
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:960px){
  .contact-grid{grid-template-columns:1fr;gap:32px;}
  .outcome-grid{grid-template-columns:repeat(2,1fr);}
  .outcome,.outcome:nth-child(4),.outcome:nth-child(5){grid-column:auto;}
}
@media (max-width:860px){
  /* Split heroes stack: copy then photo band */
  .hero-split,.about-split{flex-direction:column;align-items:stretch;min-height:0;}
  .hero-copy{width:100%;padding-left:var(--gut);padding-right:var(--gut);}
  .hero-photo{position:static;width:100%;height:clamp(240px,44vw,320px);}
  .about-copy,.about-photo{flex:0 0 auto;width:100%;}
  .hero-photo::after{display:none;}

  /* Why: photo full-width, panel + fee return to normal flow below */
  .why-photo{width:100%;height:clamp(300px,52vw,420px);}
  .why-panel{position:static;transform:none;width:100%;margin-top:16px;}
  .why-fee{position:static;width:100%;margin-top:16px;}
  .why-stage{margin-bottom:0;}

  .svc-grid2{grid-template-columns:1fr;}
  .ax-flow.is-row{grid-template-columns:1fr;}
  .ax-flow.is-row .st{flex-direction:row;gap:15px;padding:15px 0;}
  .ax-flow.is-row .st + .st{border-left:0;border-top:1px solid rgba(255,255,255,.12);}
  .values-grid{grid-template-columns:1fr;}
}
/* Mobile menu: hamburger + slide-down panel */
@media (max-width:900px){
  .header-phone{display:inline-flex;margin-left:auto;}  /* sits to the left of the burger */
  .nav-phone{display:none;}                             /* the in-nav phone hides; header-phone covers it */
  .nav-burger{display:flex;}
  .nav{position:absolute;top:100%;left:0;right:0;
    display:flex;flex-direction:column;align-items:stretch;gap:2px;
    background:#fff;border-top:1px solid var(--rule);box-shadow:var(--sh-md);
    padding:10px var(--gut) 18px;
    opacity:0;visibility:hidden;transform:translateY(-10px);pointer-events:none;
    transition:opacity .2s ease,transform .2s ease,visibility .2s;}
  .nav-toggle:checked ~ .nav{opacity:1;visibility:visible;transform:none;pointer-events:auto;}
  .nav a{width:100%;padding:14px 10px;font-size:var(--fs-body);border-radius:var(--r-sm);}
  .nav-phone{font-size:var(--fs-body);}
  .nav a.cta{margin-top:8px;justify-content:center;padding:14px;}
  .nav-toggle:checked ~ .nav-burger span:nth-child(1){transform:translateY(7px) rotate(45deg);}
  .nav-toggle:checked ~ .nav-burger span:nth-child(2){opacity:0;}
  .nav-toggle:checked ~ .nav-burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
}
@media (max-width:640px){
  :root{--gut:20px;--header-h:60px;}
  .site-header .logo{height:30px;}
  .field-row{grid-template-columns:1fr;gap:0;}
  .footer-grid{grid-template-columns:1fr;gap:28px;}
  .outcome-grid{grid-template-columns:1fr;}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *{transition:none!important;animation:none!important;}
}

/* ============================================================
   AGGRESSIVE v2 — A-outline textures + numbered sections
   ============================================================ */
.tex-a{position:absolute;pointer-events:none;z-index:0;
  background:url("images/apex-a-outline-gradient.svg") no-repeat center/contain;opacity:.65;}

/* keep content above textures in dark bands */
.hero,.why,.flow-band,.values-band,.site-footer,.photo-band{position:relative;}
.hero,.values-band,.why{overflow:hidden;}
.hero-split,.servicebar,.why .wrap,.flow-band .wrap,.values-band .wrap,.site-footer .wrap{position:relative;z-index:1;}

/* numbered section marker (inherits eyebrow color → stays accessible) */

/* CTA photo band (doctor-billing) — left-heavy navy scrim, text in ≥.85 zone */
.cta-band{position:relative;display:flex;align-items:center;min-height:clamp(400px,45vw,560px);overflow:hidden;}
.cta-band > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:72% center;}
.cta-band::after{content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(13,26,56,.95) 0%,rgba(13,26,56,.9) 40%,rgba(13,26,56,.55) 74%,rgba(13,26,56,.25) 100%);}
.cta-band .wrap{position:relative;z-index:1;}
.cta-band .cta-inner{max-width:620px;color:#fff;}
.cta-band .cta-h{font-size:var(--fs-h1);font-weight:800;letter-spacing:-.03em;color:#fff;line-height:1.02;margin:12px 0 0;}
.cta-band .cta-inner > p:not(.cta-h):not(.ax-eyebrow){font-size:var(--fs-lede);line-height:1.6;color:#e3ebf7;margin:18px 0 28px;max-width:46ch;}

/* ============================================================
   FEATURE GRID (QuickBooks-style) — services 2×3, 16:9 photo placeholders
   ============================================================ */
.feat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:clamp(36px,4vw,56px);}
.feat-card{display:flex;flex-direction:column;height:100%;background:var(--cloud-white);
  border:1px solid var(--rule);border-radius:var(--r-lg);padding:clamp(24px,2.4vw,32px);}
.feat-head{display:flex;align-items:center;gap:9px;}
.feat-ico{display:inline-flex;color:var(--blue-text);flex:0 0 auto;}
.feat-ico svg{width:20px;height:20px;}
.feat-cat{font-size:var(--fs-2xs);font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-meta);}
.feat-title{font-size:var(--fs-h3);font-weight:800;letter-spacing:-.015em;color:var(--deep-navy);margin:14px 0 0;line-height:1.1;}
.feat-desc{font-size:var(--fs-md);line-height:1.55;color:var(--text-gray);margin:10px 0 0;}
/* 16:9 placeholder — swap for a real <img> later */
.feat-photo{position:relative;margin-top:22px;aspect-ratio:16/9;border-radius:var(--r-md);overflow:hidden;
  background:linear-gradient(135deg,#e2ecf8 0%,#e8f4f0 100%);border:1px solid rgba(13,26,56,.05);}
.feat-photo::after{content:"";position:absolute;inset:0;opacity:.7;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238ba7d4' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='18' height='18' rx='2'/%3E%3Ccircle cx='8.5' cy='8.5' r='1.6'/%3E%3Cpath d='M21 15l-5-5L5 21'/%3E%3C/svg%3E") no-repeat center/46px;}
/* 6th cell is a full image filling the card */
.feat-card.feat-image{padding:0;overflow:hidden;min-height:220px;}
.feat-card.feat-image img{width:100%;height:100%;object-fit:cover;}
@media (max-width:900px){.feat-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:560px){.feat-grid{grid-template-columns:1fr;}}

/* ============================================================
   SPECIALTIES showcase — bold navy panel, per-specialty icons
   ============================================================ */
.spec-band{position:relative;overflow:hidden;border-radius:var(--r-xl);background:var(--deep-navy);
  color:#fff;padding:clamp(36px,4.4vw,60px);margin-top:clamp(44px,5vw,64px);}
.spec-band .spec-inner{position:relative;z-index:1;}
.spec-band h3{font-size:var(--fs-h2);font-weight:800;color:#fff;letter-spacing:-.025em;margin:8px 0 0;line-height:1.05;}
.spec-lede{font-size:var(--fs-lede);line-height:1.6;color:var(--on-navy-body);margin:16px 0 0;max-width:62ch;}
/* Menu (desktop) / accordion (mobile) — CSS-only radios; content stays in the DOM for SEO */
.spec-menu{margin-top:clamp(28px,3vw,40px);}
.spec-radio{position:absolute;width:1px;height:1px;opacity:0;}          /* a11y-hidden but focusable */
.spec-tab{display:flex;align-items:center;justify-content:space-between;gap:16px;cursor:pointer;
  padding:20px 6px;font-size:var(--fs-lede);font-weight:700;color:#fff;letter-spacing:-.012em;
  border-top:1px solid rgba(255,255,255,.14);transition:color .18s ease;}
.spec-radio:first-of-type + .spec-tab{border-top:0;}
.spec-tab:hover{color:var(--apex-teal);}
.spec-radio:checked + .spec-tab{color:var(--apex-teal);}
.spec-radio:focus-visible + .spec-tab{outline:3px solid var(--apex-teal);outline-offset:3px;border-radius:4px;}
.spec-chev{width:18px;height:18px;flex:0 0 auto;transition:transform .22s ease;}
.spec-radio:checked + .spec-tab .spec-chev{transform:rotate(90deg);}
.spec-panel{max-height:0;overflow:hidden;opacity:0;visibility:hidden;transition:max-height .34s ease,opacity .3s ease;}
.spec-radio:checked + .spec-tab + .spec-panel{max-height:1400px;opacity:1;visibility:visible;}
.spec-copy h4{font-size:var(--fs-h3);font-weight:800;color:#fff;letter-spacing:-.02em;line-height:1.15;margin:0;}
.spec-copy p{font-size:var(--fs-md);line-height:1.62;color:var(--on-navy-body);margin:14px 0 0;max-width:56ch;}
.spec-photo{position:relative;margin:20px 0 22px;aspect-ratio:16/9;border-radius:var(--r-md);overflow:hidden;
  background:linear-gradient(135deg,rgba(255,255,255,.08),rgba(30,204,181,.12));border:1px solid rgba(255,255,255,.14);}
.spec-photo::after{content:"";position:absolute;inset:0;opacity:.55;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a9bad6' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='18' height='18' rx='2'/%3E%3Ccircle cx='8.5' cy='8.5' r='1.6'/%3E%3Cpath d='M21 15l-5-5L5 21'/%3E%3C/svg%3E") no-repeat center/46px;}
/* Real specialty photos dropped into the frame — cover it, hide the placeholder */
.spec-photo img{width:100%;height:100%;object-fit:cover;display:block;}
.spec-photo:has(img){background:none;}
.spec-photo:has(img)::after{content:none;}

/* Desktop: vertical menu on the left, single content panel on the right */
@media (min-width:860px){
  .spec-menu{position:relative;min-height:480px;}
  .spec-tab{width:min(320px,42%);padding:20px 20px;border-top:1px solid rgba(255,255,255,.12);border-left:2px solid transparent;}
  .spec-radio:checked + .spec-tab{color:#fff;border-left-color:var(--apex-teal);background:rgba(255,255,255,.05);}
  .spec-radio:checked + .spec-tab:hover{color:#fff;}
  .spec-chev{display:none;}
  .spec-panel{position:absolute;top:0;right:0;width:calc(100% - min(320px,42%) - clamp(32px,4vw,56px));
    max-height:none;overflow:visible;opacity:0;visibility:hidden;transition:opacity .25s ease;}
  .spec-radio:checked + .spec-tab + .spec-panel{opacity:1;visibility:visible;}
  .spec-photo{margin:22px 0 0;aspect-ratio:auto;height:300px;}
}

/* ============================================================
   Brand gradient icon treatment — matches the logo A-mark.
   CSS `stroke:url()` overrides each icon's stroke="currentColor".
   ============================================================ */
.feat-ico svg,
.value-cl .ico,
.outcome .ico,
.footer-hipaa svg,
.nav-phone svg,
.header-phone svg,
.ax-fee.is-dark .ico svg{stroke:url("#apex-icon-grad");}
/* fee heart reads best as a gradient icon on a light chip (on the navy fee card) */
.ax-fee.is-dark .ico{background:#fff;}

/* Real photos dropped into the service-card 16:9 frames */
.feat-photo img{width:100%;height:100%;object-fit:cover;display:block;}
.feat-photo:has(img){background:none;border-color:var(--rule);}
.feat-photo:has(img)::after{content:none;}

/* ============================================================
   SERVICES — conceptual revenue-cycle motion on a light field.
   The section stays white; a transparent, abstract SVG (orbiting
   arcs + a flowing loop + drifting light points, no labels/icons)
   drifts through the header's open right side and dissolves softly
   into the page via a radial mask. Cards keep their light styling.
   ============================================================ */
/* overflow:clip contains the sticky revenue-cycle animation to this section
   (no bleed into the testimonials below). Unlike overflow:hidden, `clip` does
   NOT create a scroll container, so position:sticky on .rc-sticky still works. */
.services{position:relative;overflow:clip;background:#fff;}
/* Parallax via position:sticky — the motion pins in the viewport while the
   section scrolls past it, instead of scrolling away with the content.
   The sticky wrapper takes no space (height:0); the stage is a viewport-tall,
   clipped, flex-centered box; the 3D tilt + edge mask live on the image. */
.rc-sticky{position:sticky;top:0;height:0;z-index:0;}
.rc-stage{position:absolute;top:0;left:0;right:0;height:100vh;
  pointer-events:none;overflow:hidden;display:flex;justify-content:center;}
.rc-anim{flex:0 0 auto;align-self:flex-start;
  width:min(2842px,235%);max-width:none;margin-top:-354px;
  transform:perspective(2720px) rotateX(46deg) rotateZ(-6deg);
  transform-origin:center 42%;
  -webkit-mask-image:radial-gradient(58% 56% at 50% 46%,#000 55%,transparent 90%);
          mask-image:radial-gradient(58% 56% at 50% 46%,#000 55%,transparent 90%);}
.services > .wrap{position:relative;z-index:1;}


