/* Ellery Health Partners homepage, Phase 1 visual system. Loaded after main.css on the homepage only; every
   rule is scoped to body.is-editorial so the shared stylesheet is untouched. Units follow main.css (--u). */
.is-editorial {
  --sand: #C9B79C;
  --sand-deep: #A98F6E;
  --sand-text: #7E6644;
  --ink: #06122E;
  --ink-2: #0A1C42;
  --ink-3: #12285A;
  --on-dark: rgba(255, 255, 255, 0.78);
  --on-dark-soft: rgba(255, 255, 255, 0.56);
  --glass: rgba(255, 255, 255, 0.05);
  --glass-line: rgba(255, 255, 255, 0.12);
  --shadow-lift: 0 18px 40px rgba(10, 28, 66, 0.12);
}

/* Type scale for the homepage bands */
.is-editorial .psection, .is-editorial .pband { padding-block: calc(72 * var(--u)); }
.is-editorial .psection h2, .is-editorial .pband h2, .is-editorial .pcta h2 { font-size: calc(36 * var(--u)); line-height: 1.14; letter-spacing: -0.01em; max-width: 22ch; text-wrap: balance; }
.is-editorial .psection p, .is-editorial .pband p { font-size: calc(16.5 * var(--u)); line-height: 1.6; }
.is-editorial .eyebrow { color: var(--sand-text); }

/* Buttons on dark surfaces */
.is-editorial .btn-light { background: var(--white); border-color: var(--white); color: var(--navy); }
.is-editorial .btn-light:hover { background: var(--pale); border-color: var(--pale); color: var(--navy); box-shadow: 0 10px 24px rgba(0, 0, 0, 0.28); }
.is-editorial .btn-ghost { background: transparent; border-color: rgba(255, 255, 255, 0.55); color: var(--white); }
.is-editorial .btn-ghost:hover { background: rgba(255, 255, 255, 0.1); border-color: var(--white); color: var(--white); box-shadow: none; }

/* ---------- Hero: light field, photograph, copy ---------- */
.is-editorial .hero { position: relative; overflow: hidden; isolation: isolate; display: grid; align-items: center; min-height: calc(500 * var(--u)); color: var(--navy); background: #EEF2F7; }
.is-editorial .hero-field { position: absolute; inset: 0; z-index: 0; width: 100%; height: 100%; display: block; background: linear-gradient(135deg, #F7F9FB 0%, #DCE5EF 55%, #C6D3E3 100%); }
.is-editorial .hero-still-wrap { display: contents; }
.is-editorial .hero-still { position: absolute; z-index: 1; right: 0; bottom: 0; width: 56%; height: 100%; object-fit: cover; object-position: 100% 45%; -webkit-mask-image: linear-gradient(90deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.3) 20%, #000 42%), linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, #000 30%); -webkit-mask-composite: source-in; mask-image: linear-gradient(90deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.3) 20%, #000 42%), linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, #000 30%); mask-composite: intersect; }
.is-editorial .hero-veil { position: absolute; inset: 0; z-index: 2; pointer-events: none; background: linear-gradient(90deg, rgba(255, 255, 255, 0.35) 0%, rgba(255, 255, 255, 0.15) 30%, rgba(255, 255, 255, 0) 44%); }
.is-editorial .hero-inner { position: relative; z-index: 3; width: 100%; max-width: var(--container); margin-inline: auto; padding-inline: var(--edge); }
.is-editorial .hero-copy { max-width: calc(500 * var(--u)); padding: calc(72 * var(--u)) 0 calc(84 * var(--u)); }
.is-editorial .hero h1 { margin-top: calc(16 * var(--u)); color: var(--navy); font-size: calc(44 * var(--u)); line-height: 1.08; letter-spacing: -0.012em; max-width: 12em; text-wrap: balance; }
.is-editorial .hero .lead { color: var(--text); font-size: calc(15.5 * var(--u)); line-height: 1.55; max-width: calc(450 * var(--u)); }
.is-editorial .hero .lead + .lead { margin-top: calc(12 * var(--u)); }
.is-editorial .hero-actions { margin-top: calc(26 * var(--u)); }
@media (max-width: 899px) {
  .is-editorial .hero { min-height: 0; display: block; }
  .is-editorial .hero-still { position: relative; display: block; width: 100%; height: auto; max-height: none; aspect-ratio: 16 / 10; object-position: 80% 40%; -webkit-mask-image: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, #000 22%); -webkit-mask-composite: source-over; mask-image: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, #000 22%); mask-composite: add; }
  .is-editorial .hero-veil { display: none; }
  .is-editorial .hero-copy { padding: calc(28 * var(--u)) 0 calc(44 * var(--u)); }
}

/* Trust bar sits on the hero */
.is-editorial .strip { background: var(--white); border-top: 1px solid var(--line-soft); border-bottom: 1px solid var(--line-soft); }
.is-editorial .strip-list { padding-block: calc(24 * var(--u)); }
.is-editorial .strip-item { border-color: var(--line); }
.is-editorial .strip-item .icon { width: calc(36 * var(--u)); height: calc(36 * var(--u)); padding: calc(7 * var(--u)); border: 1px solid var(--sand); border-radius: 50%; color: var(--navy); margin-top: 0; }
.is-editorial .strip-title { color: var(--navy); font-size: calc(14.5 * var(--u)); }
.is-editorial .strip-text { color: var(--text-soft); }

/* ---------- Operating model ---------- */
.is-editorial .home-intro { counter-reset: svc; }
.is-editorial .intro-grid { display: grid; gap: calc(18 * var(--u)) calc(56 * var(--u)); align-items: start; }
.is-editorial .intro-grid p { max-width: 62ch; }
.is-editorial .intro-grid p:first-child { margin-top: 0; }
@media (min-width: 900px) { .is-editorial .intro-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } }
/* The three-pillar rail: one continuous segmented bar, the cells divided by hairlines. No connectors, no motion. */
.is-editorial .rail { list-style: none; margin: calc(44 * var(--u)) 0 0; padding: 0; display: grid; border: 1px solid var(--line); border-radius: 12px; background: var(--white); overflow: hidden; }
.is-editorial .rail li { display: flex; align-items: center; gap: calc(14 * var(--u)); padding: calc(18 * var(--u)) calc(22 * var(--u)); border-top: 1px solid var(--line-soft); font-weight: 600; color: var(--navy); font-size: calc(14.5 * var(--u)); line-height: 1.3; }
.is-editorial .rail li:first-child { border-top: 0; }
.is-editorial .rail-node { flex: none; display: grid; place-items: center; width: calc(28 * var(--u)); height: calc(28 * var(--u)); border-radius: 50%; background: var(--navy); color: var(--white); font-size: calc(11 * var(--u)); font-weight: 700; }
@media (min-width: 900px) {
  .is-editorial .rail { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .is-editorial .rail li { border-top: 0; border-left: 1px solid var(--line-soft); }
  .is-editorial .rail li:first-child { border-left: 0; }
}
.is-editorial .home-group { margin-top: calc(48 * var(--u)); padding-top: calc(36 * var(--u)); }
.is-editorial .home-group-title { font-size: calc(26 * var(--u)); letter-spacing: -0.015em; }
.is-editorial .svc-card { position: relative; overflow: hidden; padding: calc(26 * var(--u)) calc(24 * var(--u)) calc(24 * var(--u)); border-radius: 12px; transition: transform 380ms cubic-bezier(0.2, 0.7, 0.2, 1), box-shadow 380ms ease, border-color 380ms ease; counter-increment: svc; }
.is-editorial .svc-card::before { content: counter(svc, decimal-leading-zero); display: block; margin-bottom: calc(14 * var(--u)); font-size: calc(11 * var(--u)); font-weight: 700; letter-spacing: 0.18em; color: var(--sand-deep); }
.is-editorial .svc-card::after { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 3px; background: linear-gradient(90deg, var(--navy), var(--teal)); transform: scaleX(0); transform-origin: left; transition: transform 420ms cubic-bezier(0.2, 0.7, 0.2, 1); }
.is-editorial .svc-card:hover { transform: translateY(-5px); box-shadow: var(--shadow-lift); border-color: transparent; }
.is-editorial .svc-card:hover::after { transform: scaleX(1); }
.is-editorial .svc-card .pcard-name { font-size: calc(19 * var(--u)); }

/* ---------- Evidence (dark) ---------- */
.is-editorial .home-evidence { position: relative; overflow: hidden; background: var(--pale); }
.is-editorial .home-evidence::before { content: ""; position: absolute; inset: auto -10% -40% -10%; height: 80%; background: radial-gradient(50% 60% at 50% 100%, rgba(201, 183, 156, 0.22), transparent 70%); pointer-events: none; }
.is-editorial .home-evidence .container { position: relative; }
.is-editorial .home-evidence h2 { color: var(--navy); }
.is-editorial .pstats { margin-top: calc(36 * var(--u)); display: grid; grid-template-columns: 1fr; gap: 0; border-bottom: 1px solid var(--line); }
.is-editorial .pstats li { display: grid; grid-template-columns: minmax(0, calc(200 * var(--u))) 1fr; column-gap: calc(28 * var(--u)); align-items: baseline; padding: calc(18 * var(--u)) 0; border-top: 1px solid var(--line); }
.is-editorial .pstat-figure { font-size: calc(34 * var(--u)); font-weight: 600; letter-spacing: -0.02em; line-height: 1.1; color: var(--navy); font-variant-numeric: tabular-nums; }
.is-editorial .pstat-text { margin-top: 0; color: var(--text); font-size: calc(16 * var(--u)); line-height: 1.5; max-width: 60ch; }
@media (max-width: 599px) { .is-editorial .pstats li { grid-template-columns: 1fr; row-gap: calc(6 * var(--u)); } }
.is-editorial .psources { color: var(--text-soft) !important; }
.is-editorial .psources a { color: var(--text-soft); }
.is-editorial .evidence-after { margin-top: calc(30 * var(--u)) !important; padding-top: calc(24 * var(--u)); border-top: 1px solid var(--line); color: var(--navy) !important; font-size: calc(19 * var(--u)) !important; font-weight: 500; line-height: 1.5; max-width: 52ch; }

/* ---------- Ownership (editorial) ---------- */
.is-editorial .own-grid { display: grid; gap: calc(24 * var(--u)) calc(56 * var(--u)); align-items: start; }
@media (min-width: 900px) { .is-editorial .own-grid { grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); } }
.is-editorial .own-grid .pstatement { margin-top: 0 !important; padding-left: calc(22 * var(--u)); border-left: 3px solid var(--sand); font-size: calc(24 * var(--u)) !important; line-height: 1.4; max-width: none; }
.is-editorial .home-statements { list-style: none; padding: 0; margin: calc(44 * var(--u)) 0 0; display: grid; counter-reset: own; }
.is-editorial .home-statements li { counter-increment: own; display: grid; grid-template-columns: calc(52 * var(--u)) 1fr; align-items: center; gap: calc(12 * var(--u)); padding: calc(18 * var(--u)) 0; border-top: 1px solid var(--line); }
.is-editorial .home-statements li:last-child { border-bottom: 1px solid var(--line); }
.is-editorial .home-statements li::before { content: counter(own, decimal-leading-zero); font-size: calc(11 * var(--u)); font-weight: 700; letter-spacing: 0.18em; color: var(--sand-deep); }
.is-editorial .home-statements .pfu-title { margin: 0; font-size: calc(19 * var(--u)); font-weight: 600; }
@media (min-width: 900px) { .is-editorial .home-statements { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 calc(40 * var(--u)); } .is-editorial .home-statements li { grid-template-columns: 1fr; align-content: start; gap: calc(14 * var(--u)); padding: calc(22 * var(--u)) 0; } .is-editorial .home-statements li:last-child { border-bottom: 0; } .is-editorial .home-statements { border-bottom: 1px solid var(--line); } }

/* ---------- Who (tiles) ---------- */
.is-editorial .spec-list { display: grid; grid-template-columns: 1fr; gap: calc(12 * var(--u)); max-width: none; margin-top: calc(32 * var(--u)); }
@media (min-width: 640px) { .is-editorial .spec-list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .is-editorial .spec-list { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.is-editorial .spec-list li { padding: 0; border-radius: 10px; font-size: calc(14.5 * var(--u)); transition: transform 320ms cubic-bezier(0.2, 0.7, 0.2, 1), box-shadow 320ms ease, border-color 320ms ease; }
.is-editorial .spec-list li:hover { transform: translateY(-3px); box-shadow: var(--shadow-lift); border-color: var(--navy); }
.is-editorial .spec-list a, .is-editorial .spec-list span { display: flex; align-items: center; justify-content: space-between; gap: calc(12 * var(--u)); padding: calc(18 * var(--u)) calc(18 * var(--u)); min-height: calc(72 * var(--u)); }
.is-editorial .spec-list a:hover { text-decoration: none; }
.is-editorial .spec-list .arrow { flex: none; width: calc(16 * var(--u)); height: calc(16 * var(--u)); color: var(--sand-deep); transition: transform 320ms ease; }
.is-editorial .spec-list li:hover .arrow { transform: translateX(4px); }
.is-editorial .home-who .who-note { margin-top: calc(28 * var(--u)); }

/* ---------- Managed service and report mock ---------- */
.is-editorial .managed-grid { display: grid; gap: calc(36 * var(--u)) calc(64 * var(--u)); align-items: center; }
@media (min-width: 900px) { .is-editorial .managed-grid { grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr); } }
.is-editorial .mor { margin: 0; padding: calc(24 * var(--u)) calc(26 * var(--u)) calc(22 * var(--u)); border-radius: 14px; background: var(--white); border: 1px solid var(--line); box-shadow: 0 30px 60px rgba(10, 28, 66, 0.14), 0 2px 6px rgba(10, 28, 66, 0.06); position: relative; }
.is-editorial .mor::before { content: ""; position: absolute; left: calc(26 * var(--u)); right: calc(26 * var(--u)); top: 0; height: 3px; border-radius: 0 0 3px 3px; background: linear-gradient(90deg, var(--navy), var(--teal)); }
.is-editorial .mor-head { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding-bottom: calc(14 * var(--u)); border-bottom: 1px solid var(--line-soft); }
.is-editorial .mor-kicker { font-size: calc(12 * var(--u)); font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--navy); }
.is-editorial .mor-period { font-size: calc(10.5 * var(--u)); letter-spacing: 0.12em; text-transform: uppercase; color: var(--text-soft); }
.is-editorial .mor-rows { list-style: none; margin: calc(6 * var(--u)) 0 0; padding: 0; }
.is-editorial .mor-rows li { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); align-items: center; gap: calc(16 * var(--u)); padding: calc(11 * var(--u)) 0; border-bottom: 1px solid var(--line-soft); font-size: calc(13 * var(--u)); font-weight: 600; color: var(--navy); }
.is-editorial .mor-rows i { display: block; height: calc(8 * var(--u)); border-radius: 999px; background: linear-gradient(90deg, var(--navy), var(--teal)); transform-origin: left; transform: scaleX(1); }
.is-editorial .reveal .mor-rows i { transform: scaleX(0); transition: transform 900ms cubic-bezier(0.2, 0.7, 0.2, 1); }
.is-editorial .reveal.is-visible .mor-rows i { transform: scaleX(1); }
.is-editorial .mor-rows li:nth-child(2) i { transition-delay: 90ms; } .is-editorial .mor-rows li:nth-child(3) i { transition-delay: 180ms; } .is-editorial .mor-rows li:nth-child(4) i { transition-delay: 270ms; } .is-editorial .mor-rows li:nth-child(5) i { transition-delay: 360ms; } .is-editorial .mor-rows li:nth-child(6) i { transition-delay: 450ms; }
.is-editorial .mor-rows .w2 { width: 34%; } .is-editorial .mor-rows .w3 { width: 48%; } .is-editorial .mor-rows .w4 { width: 62%; } .is-editorial .mor-rows .w5 { width: 78%; } .is-editorial .mor-rows .w6 { width: 90%; }
.is-editorial .mor-foot { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: calc(10 * var(--u)); margin-top: calc(16 * var(--u)); }
.is-editorial .mor-foot span { padding: calc(10 * var(--u)) calc(10 * var(--u)); border-radius: 8px; background: var(--pale-2); border: 1px solid var(--line-soft); font-size: calc(10.5 * var(--u)); font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--text-soft); }
.is-editorial .home-managed .home-group-title { margin-top: calc(56 * var(--u)); }
.is-editorial .includes { margin-top: calc(24 * var(--u)); gap: calc(22 * var(--u)) calc(28 * var(--u)); }
.is-editorial .includes li { padding-top: calc(16 * var(--u)); border-top: 2px solid var(--line); }
.is-editorial .includes h4 { font-size: calc(15.5 * var(--u)); }
.is-editorial .includes p { font-size: calc(14.5 * var(--u)); }
@media (min-width: 1024px) { .is-editorial .includes { grid-template-columns: repeat(5, minmax(0, 1fr)); } }
.is-editorial .seq { list-style: none; margin: calc(48 * var(--u)) 0 0; padding: calc(40 * var(--u)) 0 0; border-top: 1px solid var(--line-soft); position: relative; display: grid; gap: calc(18 * var(--u)); }
.is-editorial .seq li { position: relative; display: flex; align-items: center; gap: calc(12 * var(--u)); font-size: calc(14.5 * var(--u)); font-weight: 600; color: var(--navy); }
.is-editorial .seq-n { flex: none; display: grid; place-items: center; width: calc(26 * var(--u)); height: calc(26 * var(--u)); border-radius: 50%; background: var(--white); border: 2px solid var(--navy); color: var(--navy); font-size: calc(11 * var(--u)); font-weight: 700; }
.is-editorial .seq li:first-child .seq-n { background: var(--navy); color: var(--white); }
@media (min-width: 900px) {
  .is-editorial .seq { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: calc(16 * var(--u)); }
  .is-editorial .seq li { display: grid; gap: calc(12 * var(--u)); align-content: start; }
  .is-editorial .seq::before { content: ""; position: absolute; left: calc(13 * var(--u)); right: calc(13 * var(--u)); top: calc(40 * var(--u) + 13 * var(--u)); height: 1px; background: var(--line); }
  .is-editorial .seq-n { position: relative; z-index: 1; }
}
.is-editorial .seq-link { margin-top: calc(22 * var(--u)) !important; }
.is-editorial .seq-link .text-link { font-weight: 600; color: var(--navy); }

/* ---------- Closing call ---------- */
.is-editorial .pcta { position: relative; overflow: hidden; padding-block: calc(80 * var(--u)); border-top: 1px solid var(--line-soft); background: linear-gradient(180deg, var(--white), var(--pale-2)); }
.is-editorial .pcta::before { content: ""; position: absolute; width: 60vw; height: 60vw; max-width: 720px; max-height: 720px; right: -20vw; top: -30vw; border-radius: 50%; background: radial-gradient(circle, rgba(201, 183, 156, 0.28), transparent 65%); animation: drift 14s ease-in-out infinite alternate; pointer-events: none; }
.is-editorial .pcta-inner { position: relative; }
.is-editorial .pcta h2 { color: var(--navy); font-size: calc(40 * var(--u)); }
.is-editorial .pcta p { color: var(--text); font-size: calc(16.5 * var(--u)); }
@keyframes drift { from { transform: translate(0, 0); } to { transform: translate(-8%, 10%); } }

/* ---------- Motion: staggered reveals ---------- */
.is-editorial .reveal [data-stagger] > * { opacity: 0; transform: translateY(14px); transition: opacity 640ms ease-out, transform 640ms cubic-bezier(0.2, 0.7, 0.2, 1); }
.is-editorial .reveal.is-visible [data-stagger] > * { opacity: 1; transform: none; }
.is-editorial [data-stagger] > :nth-child(2) { transition-delay: 80ms; }
.is-editorial [data-stagger] > :nth-child(3) { transition-delay: 160ms; }
.is-editorial [data-stagger] > :nth-child(4) { transition-delay: 240ms; }
.is-editorial [data-stagger] > :nth-child(5) { transition-delay: 320ms; }
.is-editorial [data-stagger] > :nth-child(6) { transition-delay: 400ms; }
.is-editorial [data-stagger] > :nth-child(7) { transition-delay: 480ms; }
.is-editorial [data-stagger] > :nth-child(8) { transition-delay: 560ms; }
.is-editorial .reveal { transform: translateY(18px); opacity: 0.001; transition: transform 700ms cubic-bezier(0.2, 0.7, 0.2, 1), opacity 700ms ease-out; }
.is-editorial .reveal.is-visible { transform: none; opacity: 1; }

/* Mobile adjustments */
@media (max-width: 767px) {
  .is-editorial .psection, .is-editorial .pband { padding-block: 56px; }
  .is-editorial .psection h2, .is-editorial .pband h2, .is-editorial .pcta h2 { font-size: 30px; }
  .is-editorial .hero h1 { font-size: clamp(32px, 9vw, 40px); }
  .is-editorial .hero-copy { padding-top: 48px; }
  .is-editorial .pstat-figure { font-size: 48px; }
  .is-editorial .pcta { padding-block: 64px; }
}

@media (prefers-reduced-motion: reduce) {
  .is-editorial .reveal, .is-editorial .reveal [data-stagger] > *, .is-editorial .mor-rows i { opacity: 1 !important; transform: none !important; }
}

/* ---------- Services page ---------- */
.is-services .hero-still { object-position: 56% 40%; }
.is-editorial:not(.is-home) .hero-copy { max-width: calc(560 * var(--u)); }
.is-editorial:not(.is-home) .hero .lead { max-width: calc(520 * var(--u)); }
.is-practices .hero-still { object-position: 60% 35%; }
.svc-jump { position: sticky; top: 0; z-index: 30; background: rgba(255, 255, 255, 0.92); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); border-bottom: 1px solid var(--line-soft); }
.svc-jump-list { list-style: none; margin: 0; padding: calc(10 * var(--u)) 0; display: flex; gap: calc(8 * var(--u)); overflow-x: auto; scrollbar-width: none; }
.svc-jump-list::-webkit-scrollbar { display: none; }
.svc-jump-list a { display: inline-flex; align-items: center; gap: calc(8 * var(--u)); padding: calc(7 * var(--u)) calc(12 * var(--u)); border-radius: 999px; border: 1px solid var(--line); background: var(--white); color: var(--navy); font-size: calc(12.5 * var(--u)); font-weight: 600; text-decoration: none; white-space: nowrap; transition: background 200ms ease, border-color 200ms ease, color 200ms ease; }
.svc-jump-list a:hover { border-color: var(--navy); }
.svc-jump-list a.is-current { background: var(--navy); border-color: var(--navy); color: var(--white); }
.svc-jump-n { font-size: calc(10 * var(--u)); letter-spacing: 0.14em; color: var(--sand-deep); }
.svc-jump-list a.is-current .svc-jump-n { color: rgba(255, 255, 255, 0.7); }
@media (min-width: 1024px) { .svc-jump { top: calc(46 * var(--u)); } }
@media (max-width: 1023px) { .svc-jump { top: var(--header-h); } }
.is-services .svc-index .rail { margin-top: calc(36 * var(--u)); }
.svc-groups { list-style: none; padding: 0; margin: calc(28 * var(--u)) 0 0; display: grid; gap: calc(20 * var(--u)); counter-reset: line; }
@media (min-width: 900px) { .svc-groups { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: calc(28 * var(--u)); } }
.svc-group { border: 1px solid var(--line); border-radius: 12px; padding: calc(26 * var(--u)) calc(24 * var(--u)); background: var(--white); }
.svc-group h3 { font-size: calc(20 * var(--u)); line-height: 1.2; }
.is-editorial .svc-group p { margin-top: calc(10 * var(--u)); font-size: calc(15 * var(--u)); }
.svc-group-lines { list-style: none; padding: 0; margin: calc(18 * var(--u)) 0 0; border-top: 1px solid var(--line-soft); }
.svc-group-lines li { counter-increment: line; display: flex; gap: calc(12 * var(--u)); align-items: baseline; padding: calc(10 * var(--u)) 0; border-bottom: 1px solid var(--line-soft); font-size: calc(14.5 * var(--u)); font-weight: 600; }
.svc-group-lines li::before { content: counter(line, decimal-leading-zero); font-size: calc(11 * var(--u)); letter-spacing: 0.14em; color: var(--sand-deep); }
.svc-group-lines a { color: var(--navy); text-decoration: none; }
.svc-group-lines a:hover { text-decoration: underline; }
.ledger { margin: calc(30 * var(--u)) 0 0; display: grid; }
.ledger-row { display: grid; grid-template-columns: 1fr; gap: calc(6 * var(--u)) calc(36 * var(--u)); padding: calc(18 * var(--u)) 0; border-top: 1px solid var(--line); }
.ledger-row:last-child { border-bottom: 1px solid var(--line); }
@media (min-width: 700px) { .ledger-row { grid-template-columns: minmax(0, calc(240 * var(--u))) 1fr; } }
.ledger dt { font-weight: 700; color: var(--navy); font-size: calc(16 * var(--u)); line-height: 1.4; }
.ledger dd { margin: 0; color: var(--text); font-size: calc(15.5 * var(--u)); line-height: 1.55; }
.is-editorial .svc-area { padding-block: calc(56 * var(--u)) calc(20 * var(--u)); }
.svc-area .eyebrow { margin-bottom: calc(12 * var(--u)); }
.is-editorial .svc-area h2 { max-width: 28ch; }
.is-editorial .svc-block { padding-block: calc(40 * var(--u)); }
.svc-block + .svc-block .svc-block-inner { border-top: 1px solid var(--line-soft); padding-top: calc(40 * var(--u)); }
.svc-block-inner { display: grid; gap: calc(20 * var(--u)) calc(56 * var(--u)); }
@media (min-width: 1024px) { .svc-block-inner { grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.4fr); } .svc-block-side { position: sticky; top: calc(46 * var(--u) + 70 * var(--u)); align-self: start; } }
.svc-num { font-size: calc(11 * var(--u)); font-weight: 700; letter-spacing: 0.18em; color: var(--sand-deep); }
.is-editorial .svc-block h2 { margin-top: calc(10 * var(--u)); font-size: calc(30 * var(--u)); }
.is-editorial .svc-block .svc-sub { margin-top: calc(12 * var(--u)); font-size: calc(18.5 * var(--u)); font-weight: 600; line-height: 1.4; color: var(--navy); max-width: 30ch; }
.is-editorial .svc-block-main > p:first-child { margin-top: 0; }
.is-editorial .svc-block .pterms { margin-top: calc(12 * var(--u)); }
.svc-structure { list-style: none; padding: 0; margin: calc(32 * var(--u)) 0 0; display: grid; gap: calc(22 * var(--u)) calc(32 * var(--u)); counter-reset: how; }
@media (min-width: 700px) { .svc-structure { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .svc-structure { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.svc-structure li { counter-increment: how; padding-top: calc(16 * var(--u)); border-top: 2px solid var(--line); }
.svc-structure li::before { content: counter(how, decimal-leading-zero); display: block; margin-bottom: calc(10 * var(--u)); font-size: calc(11 * var(--u)); font-weight: 700; letter-spacing: 0.18em; color: var(--sand-deep); }
.svc-structure h3 { font-family: var(--sans); font-size: calc(16 * var(--u)); font-weight: 700; color: var(--navy); }
.is-editorial .svc-structure p { margin-top: calc(6 * var(--u)); font-size: calc(14.5 * var(--u)); }
.is-editorial .svc-env .spec-list li { font-weight: 500; }
.is-editorial .svc-env .spec-list span { min-height: calc(56 * var(--u)); padding: calc(12 * var(--u)) calc(16 * var(--u)); }
.is-services .svc-block { scroll-margin-top: calc(var(--header-h) + 64 * var(--u)); }
@media (min-width: 1024px) { .is-services .svc-block { scroll-margin-top: calc(112 * var(--u)); } }
.svc-final { padding-block: calc(22 * var(--u)); border-top: 1px solid var(--line-soft); }
.is-editorial .svc-final .pnote { margin: 0; }
@media (max-width: 899px) { .is-services .svc-index .rail { display: none; } .is-services .svc-groups { margin-top: calc(24 * var(--u)); } }
/* For Practices photo: the physician stands at the top of the frame, so the top fade is short and the side fade a little tighter. */
@media (min-width: 900px) { .is-practices .hero-still { -webkit-mask-image: linear-gradient(90deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.35) 16%, #000 36%), linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, #000 10%); mask-image: linear-gradient(90deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.35) 16%, #000 36%), linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, #000 10%); } }

/* ---------- Pricing page ---------- */
@media (min-width: 900px) { .is-pricing .hero-still { width: 60%; object-position: 42% 50%; } }
.is-pricing .hero-still { object-position: 50% 40%; }
.is-editorial.is-pricing .hero-copy { max-width: calc(600 * var(--u)); }
.is-editorial .hero-note { margin-top: calc(24 * var(--u)); padding-top: calc(16 * var(--u)); border-top: 1px solid rgba(16, 32, 64, 0.14); max-width: calc(520 * var(--u)); font-size: calc(14.5 * var(--u)); line-height: 1.5; color: var(--text); }
.is-editorial .hero-note strong { display: block; margin-bottom: calc(3 * var(--u)); font-size: calc(19 * var(--u)); color: var(--navy); }
.hero-caption { background: var(--white); border-bottom: 1px solid var(--line-soft); }
.hero-caption p { margin: 0; padding: calc(14 * var(--u)) 0; font-size: calc(11.5 * var(--u)); font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--navy); }
.is-editorial .intro-grid .eyebrow { margin-bottom: calc(10 * var(--u)); }
.is-editorial .intro-grid + .pcards, .is-editorial .intro-grid + .svc-structure, .is-editorial .intro-grid + .line-list { margin-top: calc(36 * var(--u)); }
.pcard-kicker { margin-bottom: calc(12 * var(--u)); font-size: calc(11 * var(--u)); font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--sand-deep); }
.is-editorial .pcard-structure .pcard-name { font-size: calc(20 * var(--u)); line-height: 1.2; }
.is-editorial .pcard-structure .pcard-foot { display: flex; align-items: center; justify-content: space-between; gap: calc(16 * var(--u)); border-top: 1px solid var(--line-soft); padding-top: calc(16 * var(--u)); margin-top: calc(22 * var(--u)); }
.is-editorial .pcard-structure .pcard-foot .pcard-price { margin: 0; font-size: calc(16 * var(--u)); }
.is-editorial .payer-desk .pcard-foot { margin-top: auto; padding-top: calc(20 * var(--u)); }
.is-editorial .core-title { margin-top: calc(44 * var(--u)); font-size: calc(20 * var(--u)); }
.is-editorial .core-list { margin-top: calc(16 * var(--u)); }
.line-list { list-style: none; padding: 0; margin: 0; display: grid; border-top: 1px solid var(--line); }
@media (min-width: 800px) { .line-list { grid-template-columns: 1fr 1fr; column-gap: calc(56 * var(--u)); } }
.line-list li { border-bottom: 1px solid var(--line-soft); }
.line-list a { display: flex; align-items: center; justify-content: space-between; gap: calc(16 * var(--u)); padding: calc(18 * var(--u)) 0; color: var(--navy); font-size: calc(16 * var(--u)); font-weight: 600; text-decoration: none; }
.line-list a:hover span { text-decoration: underline; text-underline-offset: 3px; }
.line-list svg { flex: none; color: var(--sand-deep); }
@media (min-width: 1024px) { .svc-structure.cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.is-editorial .pcta .eyebrow { margin-bottom: calc(10 * var(--u)); }
@media (min-width: 700px) { .is-editorial .core-list { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.is-editorial .pcard-structure .pcard-foot { flex-wrap: wrap; }
.is-editorial .pcard-structure .pcard-foot .pcard-price { white-space: nowrap; }
@media (max-width: 899px) { .hero-caption p { letter-spacing: 0.08em; font-size: calc(11 * var(--u)); } }

/* ---------- Editorial hero variants: sequence panel, no photo ---------- */
.is-editorial .hero.has-panel .hero-inner { display: grid; gap: calc(24 * var(--u)); align-items: center; }
@media (min-width: 900px) { .is-editorial .hero.has-panel .hero-inner { grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr); gap: calc(64 * var(--u)); } .is-editorial .hero.has-panel .hero-copy { max-width: calc(520 * var(--u)); } }
.hero-card { position: relative; z-index: 3; background: rgba(255, 255, 255, 0.88); border: 1px solid var(--line); border-radius: 14px; padding: calc(24 * var(--u)) calc(28 * var(--u)); box-shadow: 0 24px 60px rgba(16, 32, 64, 0.08); }
.hero-card-kicker { margin: 0 0 calc(10 * var(--u)); font-size: calc(11 * var(--u)); font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--sand-deep); }
.hero-seq { list-style: none; margin: 0; padding: 0; }
.hero-seq li { display: flex; align-items: baseline; gap: calc(14 * var(--u)); padding: calc(12 * var(--u)) 0; border-top: 1px solid var(--line-soft); font-size: calc(15.5 * var(--u)); font-weight: 600; color: var(--navy); }
.hero-seq li:first-child { border-top: 0; }
.hero-seq-n { flex: none; min-width: calc(24 * var(--u)); font-size: calc(11 * var(--u)); font-weight: 700; letter-spacing: 0.14em; color: var(--sand-deep); }
@media (max-width: 899px) { .is-editorial .hero.has-panel .hero-copy { padding-bottom: calc(12 * var(--u)); } .is-editorial .hero.has-panel .hero-card { margin-bottom: calc(44 * var(--u)); } }
.is-editorial .hero.no-photo:not(.has-panel) .hero-copy { max-width: calc(760 * var(--u)); }
.is-contact .hero { min-height: 0; }
.is-editorial.is-contact .hero-copy { padding: calc(60 * var(--u)) 0 calc(72 * var(--u)); }
@media (min-width: 900px) { .is-partner .hero-still { object-position: 50% 35%; } }
@media (min-width: 900px) { .is-hiw .hero-copy h1 { max-width: calc(440 * var(--u)); } }

/* Headline measures tuned for the serif. The hero copy column is 48% of the container, so each rule keeps a phrase whole inside it. */
.is-services .svc-scope h2 { font-size: calc(32 * var(--u)); max-width: 11.6em; }
@media (min-width: 900px) {
  .is-pricing .hero h1 { font-size: calc(41 * var(--u)); max-width: none; text-wrap: wrap; }
  .is-partner .hero h1 { font-size: calc(36 * var(--u)); max-width: none; }
}
@media (max-width: 899px) { .is-pricing .hero h1 br { display: none; } .is-partner .hero h1 { font-size: clamp(30px, 8.4vw, 38px); } }
