/* Ellery Health Partners. Measurements follow the reference mockup, which is 1056 px wide: --u is one mockup pixel,
   scaled with the viewport (0.78 to 1.3 px) so the desktop composition keeps its proportions. */
:root {
  --navy: #0A1C42;
  --navy-deep: #06122E;
  --btn-navy: #0A1C42;
  --btn-navy-dark: #061330;
  --teal: #2F4F7A;
  --teal-dark: #24406A;
  --taupe: #908880;
  --text: #4A5568;
  --text-soft: #5C6B7D;
  --pale: #EEF2F5;
  --pale-2: #F5F7F9;
  --line: #D8DFE6;
  --line-soft: #E6EBF0;
  --white: #FFFFFF;
  --footer: #0A1C42;
  /* Aliases for rules ported from the earlier stylesheet (secondary pages). */
  --green: var(--teal);
  --green-text: var(--teal-dark);
  --btn-green: var(--btn-navy);
  --btn-green-dark: var(--btn-navy-dark);
  --blue: var(--teal);
  --green-soft: var(--pale);
  --navy-deep: #16233B;
  --radius-field: 4px;

  /* The wordmark is set in Montserrat (the closest open match to its letterforms); the whole site uses it. */
  --display: "Montserrat", "Avenir Next", "Helvetica Neue", Arial, sans-serif;
  --sans: var(--display);
  /* Rules ported from the earlier reference --serif; here it is the same face. */
  --serif: var(--display);

  --u: clamp(0.78px, calc(100vw / 1056), 1.3px);
  --container: calc(1056 * var(--u));
  --edge: calc(54 * var(--u));
  --header-h: calc(76 * var(--u));
  --radius: 3px;
}

@font-face { font-family: "Montserrat"; font-style: normal; font-weight: 400; font-display: swap; src: url(/fonts/Montserrat-400.woff2) format("woff2"); }
@font-face { font-family: "Montserrat"; font-style: normal; font-weight: 500; font-display: swap; src: url(/fonts/Montserrat-500.woff2) format("woff2"); }
@font-face { font-family: "Montserrat"; font-style: normal; font-weight: 600; font-display: swap; src: url(/fonts/Montserrat-600.woff2) format("woff2"); }
@font-face { font-family: "Montserrat"; font-style: normal; font-weight: 700; font-display: swap; src: url(/fonts/Montserrat-700.woff2) format("woff2"); }

*, *::before, *::after { box-sizing: border-box; }
html { scroll-padding-top: calc(var(--header-h) + 16px); -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body { margin: 0; background: var(--white); color: var(--text); font-family: var(--sans); font-size: calc(14.5 * var(--u)); line-height: 1.55; -webkit-font-smoothing: antialiased; }
h1, h2, h3, p, ul, ol, figure, blockquote { margin: 0; }
h1, h2, h3 { font-family: var(--display); font-weight: 600; color: var(--navy); letter-spacing: -0.015em; }
a { color: var(--navy); }
img, svg { display: block; max-width: 100%; height: auto; }
button, input, select { font: inherit; color: inherit; }
:focus-visible { outline: 3px solid var(--teal); outline-offset: 3px; border-radius: 4px; }
.visually-hidden { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; border: 0; }
.skip-link { position: absolute; left: 16px; top: -100px; z-index: 100; background: var(--navy); color: var(--white); padding: 12px 16px; border-radius: 6px; text-decoration: none; font-weight: 600; }
.skip-link:focus { top: 12px; }
.container { max-width: var(--container); margin-inline: auto; padding-inline: var(--edge); }
.eyebrow { font-family: var(--display); font-size: calc(9 * var(--u)); font-weight: 500; letter-spacing: 0.28em; text-transform: uppercase; color: var(--navy); }
.icon { color: var(--navy); }

/* Buttons and links */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 0.55em; min-height: calc(38 * var(--u)); padding: 0 calc(20 * var(--u)); border: 1px solid transparent; border-radius: var(--radius); font-family: var(--display); font-weight: 500; font-size: calc(12.5 * var(--u)); letter-spacing: 0.02em; line-height: 1.2; color: var(--white); text-decoration: none; cursor: pointer; white-space: nowrap; transition: background-color 180ms ease, color 180ms ease, box-shadow 180ms ease, transform 180ms ease; }
.btn:hover { transform: translateY(-1px); box-shadow: 0 6px 14px rgba(30, 45, 74, 0.16); }
.btn:active { transform: none; box-shadow: none; transition-duration: 80ms; }
.btn-navy { background: var(--btn-navy); border-color: var(--btn-navy); }
.btn-navy:hover { background: var(--btn-navy-dark); border-color: var(--btn-navy-dark); color: var(--white); }
.btn-outline { background: var(--white); border-color: var(--navy); color: var(--navy); }
.btn-outline:hover { background: var(--navy); color: var(--white); }
.btn-header { min-height: calc(34 * var(--u)); padding: 0 calc(14 * var(--u)); font-size: calc(12 * var(--u)); }
.arrow { font-weight: 500; }
.text-link { display: inline-block; padding-block: calc(8 * var(--u)); color: var(--navy); font-weight: 600; font-size: calc(11.5 * var(--u)); line-height: 1.3; white-space: nowrap; text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.text-link .arrow { display: inline-block; margin-left: 0.4em; text-decoration: none; }
.text-link:hover { color: var(--teal); }

/* Brand */
.brand { display: inline-flex; align-items: center; text-decoration: none; flex: none; }
.logo { height: calc(58 * var(--u)); width: auto; }
.brand-footer .logo { height: calc(50 * var(--u)); }

/* Header */
.site-header { position: sticky; top: 0; z-index: 40; height: var(--header-h); background: var(--white); border-bottom: 1px solid var(--line-soft); }
.header-inner { display: flex; align-items: center; justify-content: space-between; gap: 24px; height: 100%; }
.site-nav { display: none; align-items: center; gap: calc(20 * var(--u)); }
.nav-list { display: flex; align-items: center; gap: calc(18 * var(--u)); list-style: none; padding: 0; white-space: nowrap; }
.nav-link { position: relative; display: inline-block; padding-block: 10px; color: var(--navy); font-family: var(--display); font-size: calc(12.5 * var(--u)); font-weight: 500; letter-spacing: 0.02em; text-decoration: none; transition: color 150ms; }
.nav-link:hover { color: var(--teal); }
.nav-link::after { content: ""; position: absolute; left: 0; right: 0; bottom: 4px; height: 1.5px; background: var(--teal); transform: scaleX(0); transform-origin: left center; transition: transform 220ms ease; }
.nav-link.is-current::after, .nav-link:hover::after, .nav-link:focus-visible::after { transform: scaleX(1); }
.menu { position: relative; }
.menu-toggle { list-style: none; cursor: pointer; min-height: 44px; display: inline-flex; align-items: center; padding-inline: 4px; font-weight: 600; color: var(--navy); }
.menu-toggle::-webkit-details-marker { display: none; }
.menu-panel { position: fixed; left: 0; right: 0; top: var(--header-h); bottom: 0; background: var(--white); padding: 24px var(--edge); overflow: auto; z-index: 39; }
.menu-list { list-style: none; padding: 0; display: grid; gap: 4px; }
.menu-list a { display: block; padding: 14px 0; font-size: 22px; font-weight: 600; color: var(--navy); text-decoration: none; border-bottom: 1px solid var(--line-soft); }
body:has(.menu[open]) { overflow: hidden; }
/* Eight-item primary navigation (September 2026): How It Works through Contact plus the consultation button sit on one
   line beside the wordmark, so the header is set one step tighter than the mockup. The Menu toggle serves below 1024px,
   where the nav type would otherwise fall under 11px. */
@media (min-width: 1024px) {
  .site-nav { display: flex; gap: calc(12 * var(--u)); }
  .menu { display: none; }
  .header-inner { gap: 14px; }
  .site-header .logo { height: calc(42 * var(--u)); }
  .nav-list { gap: calc(10 * var(--u)); }
  .nav-link { font-size: calc(11.5 * var(--u)); letter-spacing: 0.01em; }
  .btn-header { padding: 0 calc(10 * var(--u)); font-size: calc(11.5 * var(--u)); }
}

/* Hero */
.hero { position: relative; overflow: hidden; background: var(--pale-2); }
.hero-inner { max-width: var(--container); margin-inline: auto; display: grid; }
.hero-copy { padding: calc(38 * var(--u)) calc(16 * var(--u)) calc(34 * var(--u)) var(--edge); }
.hero h1 { margin-top: calc(14 * var(--u)); font-size: calc(38 * var(--u)); line-height: 1.1; letter-spacing: -0.02em; max-width: 11.3em; }
.lead { margin-top: calc(18 * var(--u)); max-width: calc(390 * var(--u)); font-size: calc(14 * var(--u)); line-height: 1.45; color: var(--text); }
.hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px calc(14 * var(--u)); margin-top: calc(22 * var(--u)); }
.hero-media { position: relative; }
.hero-media picture { display: block; position: relative; aspect-ratio: 590 / 340; overflow: hidden; }
.hero-photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 100% 40%; }
.photo-caption { position: absolute; font-family: var(--display); font-size: calc(9.5 * var(--u)); font-weight: 500; letter-spacing: 0.24em; text-transform: uppercase; line-height: 1.55; color: var(--white); text-shadow: 0 1px 12px rgba(0, 0, 0, 0.35); pointer-events: none; }
.photo-caption::after { content: ""; display: block; width: calc(36 * var(--u)); height: 2px; margin-top: calc(10 * var(--u)); background: var(--taupe); }
@media (min-width: 900px) {
  .hero-inner { grid-template-columns: 48% 52%; }
  .hero-media picture { position: absolute; inset: 0; aspect-ratio: auto; }
  .hero-media { min-height: calc(340 * var(--u)); width: calc(100% + max(0px, (100vw - var(--container)) / 2)); }
}

/* Trust strip */
.strip { background: var(--pale); }
.strip-list { list-style: none; margin: 0; padding-block: calc(26 * var(--u)); display: grid; gap: calc(18 * var(--u)); }
.strip-item { display: grid; grid-template-columns: calc(36 * var(--u)) 1fr; gap: calc(16 * var(--u)); align-items: start; }
.strip-item .icon { width: calc(34 * var(--u)); height: calc(34 * var(--u)); margin-top: calc(2 * var(--u)); }
.strip-title { font-size: calc(15.5 * var(--u)); line-height: 1.2; }
.strip-text { margin-top: calc(6 * var(--u)); font-size: calc(11.5 * var(--u)); line-height: 1.4; color: var(--text-soft); }
@media (min-width: 640px) { .strip-list { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 900px) {
  .strip-list { grid-template-columns: repeat(4, 1fr); gap: 0; }
  .strip-item { padding-inline: calc(20 * var(--u)); border-left: 1px solid var(--line); }
  .strip-item:first-child { padding-left: 0; border-left: 0; }
}

/* Sections */
.section { background: var(--white); padding-block: calc(30 * var(--u)) calc(26 * var(--u)); }
.section-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px calc(24 * var(--u)); flex-wrap: wrap; }
.section-head h2 { margin-top: calc(8 * var(--u)); font-size: calc(28 * var(--u)); line-height: 1.15; text-wrap: balance; }
.section-head .text-link { padding-block: 0 calc(4 * var(--u)); }
.cards { list-style: none; padding: 0; margin-top: calc(18 * var(--u)); display: grid; gap: calc(12 * var(--u)); }
.card { background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); padding: calc(18 * var(--u)) calc(16 * var(--u)) calc(14 * var(--u)); display: grid; align-content: start; gap: calc(8 * var(--u)); }
.card .icon { width: calc(30 * var(--u)); height: calc(30 * var(--u)); margin-bottom: calc(10 * var(--u)); }
.card h3 { font-size: calc(17 * var(--u)); line-height: 1.2; text-wrap: balance; }
.card p { font-size: calc(12 * var(--u)); line-height: 1.45; color: var(--text-soft); }
.card-link { margin-top: calc(4 * var(--u)); justify-self: start; }
/* Service cards: the description takes the spare height, so every Learn More sits on the same line at the foot of its card. */
.cards-5 .card { grid-template-rows: auto auto 1fr auto; }
.cards-5 .card-link { align-self: end; }
@media (min-width: 640px) { .cards-5 { grid-template-columns: repeat(2, 1fr); } .cards-3 { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 900px) { .cards-5 { grid-template-columns: repeat(5, 1fr); } .cards-3 { grid-template-columns: repeat(3, 1fr); gap: calc(20 * var(--u)); } }

/* About */
.about { background: var(--pale-2); }
.about-inner { max-width: var(--container); margin-inline: auto; display: grid; }
.about-copy { padding: calc(30 * var(--u)) var(--edge) calc(30 * var(--u)); }
.about-copy h2 { margin-top: calc(8 * var(--u)); font-size: calc(28 * var(--u)); line-height: 1.15; max-width: 12em; text-wrap: balance; }
.about-copy p { margin-top: calc(14 * var(--u)); font-size: calc(12.5 * var(--u)); line-height: 1.5; max-width: calc(400 * var(--u)); }
.about-copy .btn { margin-top: calc(22 * var(--u)); }
.about-media { position: relative; }
.about-media picture { display: block; position: relative; aspect-ratio: 320 / 270; overflow: hidden; }
.about-photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 30%; }
.about-caption { right: 10%; bottom: 14%; }
.about-caption span { display: block; }
@media (min-width: 900px) {
  .about-inner { grid-template-columns: 50% 50%; }
  .about-media picture { position: absolute; inset: 0; aspect-ratio: auto; }
  .about-media { min-height: calc(270 * var(--u)); }
}

/* Insights */
.post { grid-template-columns: calc(100 * var(--u)) 1fr; gap: calc(14 * var(--u)); padding: calc(8 * var(--u)); align-items: start; }
.post picture { display: block; aspect-ratio: 1; overflow: hidden; border-radius: 2px; }
.post-photo { width: 100%; height: 100%; object-fit: cover; }
.post-body { display: grid; gap: calc(5 * var(--u)); padding-block: calc(6 * var(--u)) calc(4 * var(--u)); }
.post-category { font-family: var(--display); font-size: calc(7.5 * var(--u)); font-weight: 500; letter-spacing: 0.2em; text-transform: uppercase; color: var(--teal); }
.post h3 { font-size: calc(14.5 * var(--u)); line-height: 1.2; }
.post p { font-size: calc(10.5 * var(--u)); }
.post .card-link { margin-top: 0; }

/* Footer: brand and description on the left, titled columns on the right, everything on the wordmark's navy */
.site-footer { background: var(--footer); color: var(--white); }
.footer-top { display: grid; gap: calc(26 * var(--u)); align-items: start; padding-block: calc(30 * var(--u)) calc(24 * var(--u)); }
.footer-brand { display: grid; gap: calc(14 * var(--u)); justify-items: start; }
.footer-desc { font-size: calc(12.5 * var(--u)); line-height: 1.5; color: rgba(255, 255, 255, 0.75); max-width: 36ch; }
.footer-groups { display: grid; gap: calc(22 * var(--u)) calc(40 * var(--u)); align-items: start; }
.footer-group-title { margin: 0 0 calc(6 * var(--u)); font-family: var(--display); font-size: calc(9.5 * var(--u)); font-weight: 600; letter-spacing: 0.22em; text-transform: uppercase; color: var(--taupe); }
.footer-links { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.footer-links a { display: inline-block; padding-block: calc(4 * var(--u)); font-size: calc(12.5 * var(--u)); color: var(--white); text-decoration: none; }
.footer-links a:hover { text-decoration: underline; }
.footer-contact { margin: 0; padding-block: calc(4 * var(--u)); font-size: calc(12.5 * var(--u)); line-height: 1.45; color: rgba(255, 255, 255, 0.85); }
.footer-contact a { color: var(--white); text-decoration: none; }
.footer-contact a:hover { text-decoration: underline; }
.footer-tagline { font-family: var(--display); font-size: calc(8.5 * var(--u)); font-weight: 500; letter-spacing: 0.24em; text-transform: uppercase; line-height: 1.6; color: rgba(255, 255, 255, 0.85); }
.footer-bottom { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: calc(8 * var(--u)) calc(24 * var(--u)); padding-block: calc(14 * var(--u)) calc(18 * var(--u)); border-top: 1px solid rgba(255, 255, 255, 0.12); }
.footer-copy { font-size: calc(9.5 * var(--u)); color: rgba(255, 255, 255, 0.7); }
@media (min-width: 640px) { .footer-groups { grid-template-columns: repeat(2, auto); } }
@media (min-width: 900px) { .footer-top { grid-template-columns: minmax(calc(260 * var(--u)), 1fr) auto; gap: calc(60 * var(--u)); } }
@media (min-width: 1200px) { .footer-groups { grid-template-columns: repeat(4, auto); } }

/* Not found */
.notfound { display: grid; gap: calc(14 * var(--u)); justify-items: start; padding-block: calc(40 * var(--u)); }
.notfound h1 { font-size: calc(32 * var(--u)); }

/* Motion: hero on load, one-time section reveals on scroll. Content is always visible; motion is a small rise. */
@keyframes rise { from { transform: translateY(10px); } to { transform: none; } }
.hero-copy, .phero-copy { animation: rise 520ms ease-out both; }
.hero-media, .phero-media { animation: rise 520ms ease-out 120ms both; }
.strip-item .icon, .card .icon { transition: transform 200ms ease; }
.strip-item:hover .icon, .card:hover .icon { transform: scale(1.06); }
.reveal { transform: translateY(12px); }
.reveal.is-visible { transform: none; transition: transform 600ms ease-out; }
/* Mobile: the scale unit is a real pixel so type never shrinks below its designed size. */
@media (max-width: 767px) {
  :root { --u: 1px; --edge: 20px; --header-h: 64px; }
  .hero h1 { font-size: clamp(30px, 8.5vw, 38px); }
  .hero-actions .btn { width: 100%; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition: none !important; animation: none !important; } .reveal { transform: none; } .btn:hover { transform: none; } }

/* ===== Secondary pages (Services, About, Contact, Thank you): ported from the earlier stylesheet ===== */
/* Pricing and form */
.offer { background: var(--white); }
.offer-inner { display: grid; gap: calc(32 * var(--u)); padding-block: calc(22 * var(--u)) calc(22 * var(--u)); align-items: start; }
.price-lead { margin-top: calc(12 * var(--u)); font-size: calc(30 * var(--u)); line-height: 1.15; }
.price { margin-top: calc(4 * var(--u)); font-family: var(--serif); font-weight: 700; font-size: calc(44 * var(--u)); line-height: 1.1; color: var(--green-text); }
.price-text { margin-top: calc(18 * var(--u)); font-size: calc(16 * var(--u)); line-height: 1.45; color: var(--text); max-width: calc(410 * var(--u)); }
.pricing .btn { margin-top: calc(22 * var(--u)); }
.price-note { margin-top: calc(12 * var(--u)); font-size: calc(14 * var(--u)); color: var(--text); }
.proposal-card { background: var(--white); border: 1px solid #E3E9F0; border-radius: 10px; box-shadow: 0 2px 10px rgba(11, 46, 91, 0.06); padding: calc(22 * var(--u)) calc(24 * var(--u)); }
.proposal-title { font-size: calc(20 * var(--u)); line-height: 1.2; }
.proposal-lead { margin-top: calc(4 * var(--u)); font-size: calc(13 * var(--u)); color: var(--text); }
.form { margin-top: calc(14 * var(--u)); }
.form-grid { display: grid; gap: calc(8 * var(--u)); }
.field input, .field select { display: block; width: 100%; min-height: calc(30 * var(--u)); padding: 0 calc(10 * var(--u)); background: var(--white); color: var(--navy); font-size: calc(12.5 * var(--u)); border: 1px solid var(--line); border-radius: 4px; transition: border-color 150ms, box-shadow 150ms; }
.field input::placeholder { color: var(--text-soft); opacity: 1; }
.field select:invalid, .field select option[value=""] { color: var(--text-soft); }
.field select option { color: var(--navy); }
.field input:hover, .field select:hover { border-color: #9FB0C4; }
.field input:focus, .field select:focus { outline: none; border-color: var(--green); box-shadow: 0 0 0 3px rgba(40, 104, 168, 0.16), 0 0 0 1px rgba(47, 138, 92, 0.35); }
.field input[aria-invalid="true"], .field select[aria-invalid="true"] { border-color: var(--navy); }
.select { position: relative; }
.select select { appearance: none; -webkit-appearance: none; padding-right: calc(28 * var(--u)); cursor: pointer; }
.select::after { content: ""; position: absolute; right: calc(12 * var(--u)); top: 50%; width: 6px; height: 6px; border-right: 1.5px solid var(--text); border-bottom: 1.5px solid var(--text); transform: translateY(-70%) rotate(45deg); pointer-events: none; }
.error { display: none; margin-top: 6px; padding-left: 8px; border-left: 3px solid var(--blue); font-size: calc(12 * var(--u)); color: var(--navy); }
.field.is-invalid .error { display: block; }
.form-error { margin-top: 10px; }
.form-error:not([hidden]) { display: block; }
.hp { position: absolute; left: -10000px; top: auto; width: 1px; height: 1px; overflow: hidden; }
.btn-submit { width: 100%; margin-top: calc(14 * var(--u)); }
.caution { margin-top: calc(10 * var(--u)); font-size: calc(12 * var(--u)); color: var(--navy); }
.form-success h3 { font-family: var(--serif); font-size: calc(22 * var(--u)); color: var(--navy); margin-top: calc(16 * var(--u)); }
.form-success p { margin-top: 8px; color: var(--text); }
@media (min-width: 640px) {
  .form-grid { grid-template-columns: 1fr 1fr; }
  .field-wide { grid-column: 1 / -1; }
}
@media (min-width: 768px) {
  .offer-inner { grid-template-columns: 1fr calc(460 * var(--u)); gap: calc(40 * var(--u)); }
}


/* Simple pages */
.page { padding-block: calc(40 * var(--u)) calc(70 * var(--u)); }
.page-inner { max-width: 760px; }
.page h1 { font-size: clamp(32px, 3vw, 44px); margin-bottom: 24px; }
.legal-content { max-width: 72ch; }
.legal-content h2 { font-size: 22px; margin: 36px 0 10px; }
.legal-content p { margin-bottom: 16px; font-size: 17px; line-height: 1.6; color: var(--text); }
.legal-content .legal-date { color: var(--text-soft); font-size: 15px; }
.legal-content h3 { font-family: var(--sans); font-size: 17px; font-weight: 700; color: var(--navy); margin: 22px 0 8px; }
.legal-content ul { margin: 0 0 16px; padding-left: 22px; color: var(--text); font-size: 17px; line-height: 1.6; }
.legal-content li { margin-bottom: 4px; }
.legal-content .legal-sign { margin-top: 32px; color: var(--navy); font-weight: 500; }
.page h1 { max-width: 30ch; }
.page h1 + .legal-content .legal-date { margin-top: -8px; }

/* Secondary pages */
.phero { background: var(--white); padding-block: calc(44 * var(--u)) calc(36 * var(--u)); border-bottom: 1px solid var(--line-soft); }
.phero h1 { font-size: calc(40 * var(--u)); line-height: 1.15; letter-spacing: -0.015em; max-width: 22ch; text-wrap: balance; }
.phero-lead { margin-top: calc(14 * var(--u)); font-size: calc(18 * var(--u)); line-height: 1.5; color: var(--text); max-width: 62ch; }
.psection { background: var(--white); padding-block: calc(40 * var(--u)); }
.pband { background: var(--pale); padding-block: calc(40 * var(--u)); }
.psection h2, .pband h2, .pcta h2 { font-size: calc(30 * var(--u)); line-height: 1.15; }
.psection p, .pband p { margin-top: calc(10 * var(--u)); font-size: calc(16 * var(--u)); line-height: 1.55; color: var(--text); max-width: 64ch; }
.pband-split { display: grid; gap: calc(28 * var(--u)); align-items: start; }
.pband-split .lands-list { border-left: 0; padding-left: 0; }
.pnote { margin-top: calc(18 * var(--u)) !important; font-size: calc(15 * var(--u)) !important; color: var(--text-soft) !important; }
.pstatement { font-family: var(--serif); font-weight: 600; font-size: calc(22 * var(--u)) !important; line-height: 1.45; color: var(--navy) !important; max-width: 60ch; margin-top: calc(18 * var(--u)) !important; }
.pstep-num { display: inline-block; font-family: var(--serif); font-weight: 700; font-size: calc(30 * var(--u)); line-height: 1; color: var(--green-text); margin-bottom: calc(8 * var(--u)); }
.psteps, .pgrid { list-style: none; padding: 0; margin-top: calc(20 * var(--u)); display: grid; gap: calc(22 * var(--u)) calc(28 * var(--u)); }
.psteps h3, .pgrid h3 { font-family: var(--sans); font-size: calc(17 * var(--u)); font-weight: 700; color: var(--navy); }
.psteps p, .pgrid p { margin-top: calc(6 * var(--u)); }
.pabout { display: grid; gap: calc(26 * var(--u)); }
.pabout h2 { font-size: calc(24 * var(--u)); }
.faq { margin-top: calc(16 * var(--u)); max-width: 72ch; border-top: 1px solid var(--line); }
.qa { border-bottom: 1px solid var(--line); }
.qa summary { list-style: none; cursor: pointer; position: relative; padding: calc(14 * var(--u)) calc(36 * var(--u)) calc(14 * var(--u)) 0; font-weight: 700; font-size: calc(16 * var(--u)); color: var(--navy); }
.qa summary::-webkit-details-marker { display: none; }
.qa summary::after { content: "+"; position: absolute; right: 4px; top: 50%; transform: translateY(-50%); font-size: calc(22 * var(--u)); color: var(--green-text); transition: transform 150ms; }
.qa[open] summary::after { transform: translateY(-50%) rotate(45deg); }
.qa-a { padding-bottom: calc(14 * var(--u)); }
.qa-a p { margin-top: 0; }
.pcta { background: var(--pale); padding-block: calc(36 * var(--u)); border-top: 1px solid var(--line-soft); }
.pcta-inner { display: grid; gap: calc(20 * var(--u)); align-items: center; }
.pcta p { margin-top: calc(8 * var(--u)); color: var(--text); max-width: 60ch; }
.pcontact { display: grid; gap: calc(28 * var(--u)); align-items: start; }
.pother h2 { font-size: calc(21 * var(--u)); }
.pcontact-block + .pcontact-block { margin-top: calc(26 * var(--u)); padding-top: calc(24 * var(--u)); border-top: 1px solid var(--line-soft); }
.pcontact-caution { margin-top: calc(26 * var(--u)); padding-top: calc(20 * var(--u)); border-top: 1px solid var(--line-soft); color: var(--navy); font-weight: 500; }
.pemail a { color: var(--green-text); font-weight: 600; }
@media (min-width: 768px) {
  .psteps { grid-template-columns: repeat(4, 1fr); }
  .pgrid { grid-template-columns: repeat(2, 1fr); }
  .pgrid-3 { grid-template-columns: repeat(3, 1fr); }
  .pband-split { grid-template-columns: 1fr 1fr; gap: calc(40 * var(--u)); }
  .pcta-inner { grid-template-columns: 1fr auto; }
  .pcontact { grid-template-columns: calc(460 * var(--u)) 1fr; gap: calc(40 * var(--u)); }
}

/* Seven-step flow and payer follow-up list */
.pflow-num { display: inline-flex; align-items: center; justify-content: center; width: calc(28 * var(--u)); height: calc(28 * var(--u)); border-radius: 50%; background: var(--pale); color: var(--navy); font-family: var(--serif); font-weight: 700; font-size: calc(15 * var(--u)); margin-bottom: calc(8 * var(--u)); }
.pcalls { list-style: none; padding: 0; margin-top: calc(20 * var(--u)); display: grid; gap: calc(12 * var(--u)) calc(28 * var(--u)); }
.pcalls li { display: grid; grid-template-columns: calc(20 * var(--u)) 1fr; gap: calc(12 * var(--u)); align-items: start; font-size: calc(15.5 * var(--u)); line-height: 1.45; color: var(--text); }
.pcalls .icon { color: var(--green); margin-top: 2px; }
.pcalls-note { margin-top: calc(20 * var(--u)) !important; padding-top: calc(16 * var(--u)); border-top: 1px solid var(--line); font-size: calc(14.5 * var(--u)) !important; color: var(--text-soft) !important; }
@media (min-width: 768px) {
  .pcalls { grid-template-columns: 1fr 1fr; }
}

/* Pricing page */
.psection .plabel, .pband .plabel { font-size: calc(12 * var(--u)); font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--green-text); margin-bottom: calc(8 * var(--u)); }
.pcards { list-style: none; padding: 0; margin-top: calc(24 * var(--u)); display: grid; gap: calc(20 * var(--u)); }
.pcard { background: var(--white); border: 1px solid var(--line); border-radius: 12px; padding: calc(28 * var(--u)); }
.pcard .pcard-name { font-family: var(--sans); font-size: calc(16 * var(--u)); font-weight: 700; color: var(--navy); }
.pcard .pcard-price { margin-top: calc(6 * var(--u)); font-family: var(--serif); font-weight: 700; font-size: calc(38 * var(--u)); line-height: 1.05; color: var(--green-text); }
.pcard .pcard-unit { display: block; font-family: var(--sans); font-size: calc(14 * var(--u)); font-weight: 500; color: var(--text-soft); margin-top: calc(4 * var(--u)); }
.pcard .pcard-blurb { margin-top: calc(12 * var(--u)) !important; font-size: calc(15.5 * var(--u)) !important; line-height: 1.5; }
.pcard-list { list-style: none; padding: 0; margin-top: calc(16 * var(--u)); border-top: 1px solid var(--line-soft); padding-top: calc(16 * var(--u)); display: grid; gap: calc(8 * var(--u)); }
.pcard .pcard-list li { position: relative; padding-left: calc(20 * var(--u)); font-size: calc(15 * var(--u)); line-height: 1.45; color: var(--text); }
.pcard-list li::before { content: ""; position: absolute; left: 0; top: 0.55em; width: calc(8 * var(--u)); height: calc(8 * var(--u)); border-radius: 50%; background: var(--green); }
.pswitch { background: var(--navy); color: var(--white); padding-block: calc(26 * var(--u)); }
.pswitch p { margin: 0 auto; max-width: 62ch; text-align: center; font-family: var(--serif); font-weight: 600; font-size: calc(21 * var(--u)); line-height: 1.4; color: var(--white); }
@media (min-width: 700px) { .pcards-2 { grid-template-columns: 1fr 1fr; } }
@media (min-width: 700px) and (max-width: 1023px) { .pcards-4 { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1024px) { .pcards-4 { grid-template-columns: repeat(4, 1fr); } .pcards-4 .pcard-price { font-size: calc(32 * var(--u)); } }
/* homepage pricing block */
.price-aside { display: block; font-family: var(--sans); font-size: calc(16 * var(--u)); font-weight: 500; color: var(--text); margin-top: calc(6 * var(--u)); }
.price-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px calc(20 * var(--u)); margin-top: calc(22 * var(--u)); }
.price-actions .btn { margin-top: 0; }

/* Get Started intake + what happens next */
.pintake { display: grid; gap: calc(32 * var(--u)); align-items: start; }
.pintake-form .form { margin-top: calc(16 * var(--u)); }
.pintake-form .field label { font-size: calc(14 * var(--u)); }
.pintake .opt { font-weight: 400; color: var(--text-soft); }
.pintake .help { margin-top: calc(6 * var(--u)); font-size: calc(12 * var(--u)); color: var(--text-soft); }
.pintake textarea { display: block; width: 100%; padding: calc(12 * var(--u)) calc(14 * var(--u)); font-size: calc(15 * var(--u)); line-height: 1.5; color: var(--navy); background: var(--white); border: 1px solid var(--line); border-radius: var(--radius-field); resize: vertical; }
.pintake textarea:focus { outline: none; border-color: var(--blue); box-shadow: 0 0 0 3px rgba(47, 111, 182, 0.2); }
.pintake-next { background: var(--pale); border-radius: 12px; padding: calc(28 * var(--u)); }
.pintake-next h2 { font-size: calc(22 * var(--u)); }
.pnext { list-style: none; padding: 0; margin-top: calc(18 * var(--u)); display: grid; gap: calc(18 * var(--u)); }
.pnext-num { display: inline-flex; align-items: center; justify-content: center; width: calc(26 * var(--u)); height: calc(26 * var(--u)); border-radius: 50%; background: var(--navy); color: var(--white); font-weight: 700; font-size: calc(13 * var(--u)); margin-bottom: calc(6 * var(--u)); }
.pintake-next .pnext h3 { font-family: var(--sans); font-size: calc(15.5 * var(--u)); font-weight: 700; color: var(--navy); }
.pintake-next .pnext p { margin-top: calc(4 * var(--u)) !important; font-size: calc(14.5 * var(--u)) !important; }
.hnext { list-style: none; padding: 0; margin-top: calc(16 * var(--u)); display: grid; gap: calc(12 * var(--u)); }
.hnext li { display: grid; grid-template-columns: calc(24 * var(--u)) 1fr; gap: calc(12 * var(--u)); align-items: start; font-size: calc(14 * var(--u)); line-height: 1.5; color: var(--text); }
.hnext-num { display: inline-flex; align-items: center; justify-content: center; width: calc(24 * var(--u)); height: calc(24 * var(--u)); border-radius: 50%; background: var(--pale); color: var(--navy); font-weight: 700; font-size: calc(12 * var(--u)); }
.hnext strong { color: var(--navy); }
.pcard .pcard-cta { margin-top: calc(24 * var(--u)); width: 100%; }
.pcard { display: flex; flex-direction: column; }
.pcard-cta { margin-top: auto; }
.pcard-blurb, .pcard-list { flex: none; }
.pcta-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px calc(20 * var(--u)); }
.received-back { margin-top: calc(28 * var(--u)); }
@media (min-width: 900px) { .pintake { grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); gap: calc(44 * var(--u)); } }

/* --- Revised model: standard-case exclusions, pricing terms, pilot card, homepage band --- */
.pexcl { list-style: none; padding: 0; margin-top: calc(20 * var(--u)); display: grid; gap: calc(10 * var(--u)) calc(30 * var(--u)); }
.pexcl li { position: relative; padding-left: calc(22 * var(--u)); font-size: calc(15.5 * var(--u)); line-height: 1.45; color: var(--text); }
.pexcl li::before { content: ""; position: absolute; left: 0; top: 0.65em; width: calc(12 * var(--u)); height: 2px; background: var(--text-soft); }
@media (min-width: 700px) { .pexcl { grid-template-columns: 1fr 1fr; } }

.pterms { list-style: none; padding: 0; margin-top: calc(18 * var(--u)); display: grid; gap: calc(10 * var(--u)); max-width: 72ch; }
.pterms li { position: relative; padding-left: calc(20 * var(--u)); font-size: calc(15.5 * var(--u)); line-height: 1.5; color: var(--text); }
.pterms li::before { content: ""; position: absolute; left: 0; top: 0.58em; width: calc(7 * var(--u)); height: calc(7 * var(--u)); border-radius: 50%; background: var(--green); }

.pcard .pcard-flag { align-self: start; margin-bottom: calc(12 * var(--u)) !important; margin-top: 0 !important; padding: calc(5 * var(--u)) calc(12 * var(--u)); border-radius: 999px; background: var(--btn-green); color: var(--white) !important; font-size: calc(12 * var(--u)) !important; font-weight: 700; letter-spacing: 0.01em; text-transform: none; white-space: nowrap; max-width: 100%; }
.pcard-featured { border-color: var(--green); box-shadow: 0 3px 16px rgba(11, 46, 91, 0.09); }
.pcard .pcard-link { margin-top: calc(14 * var(--u)) !important; font-size: calc(14.5 * var(--u)) !important; }
@media (min-width: 700px) and (max-width: 1023px) { .pcards-3 { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1024px) { .pcards-3 { grid-template-columns: repeat(3, 1fr); } .pcards-3 .pcard-price { font-size: calc(32 * var(--u)); } }

.pmore-cta { margin-top: calc(18 * var(--u)) !important; }
.home-band { padding-block: calc(34 * var(--u)); }
.home-band + .stays { border-top: 1px solid var(--line-soft); }

/* Contact page: emphasized no-PHI lines within a block */
.pother .pcontact-block-note { margin-top: calc(12 * var(--u)) !important; font-size: calc(15.5 * var(--u)) !important; color: var(--navy) !important; font-weight: 600; }
.pother .pcontact-block-caution p { color: var(--navy) !important; font-weight: 500; }
.pother .pcontact-block p + p { margin-top: calc(12 * var(--u)); }
.pimpl { list-style: none; padding: 0; margin-top: calc(24 * var(--u)); display: grid; gap: calc(22 * var(--u)) calc(28 * var(--u)); }
.pimpl-num { display: block; font-family: var(--serif); font-weight: 700; font-size: calc(30 * var(--u)); line-height: 1; color: var(--green-text); margin-bottom: calc(8 * var(--u)); }
.pimpl h3 { font-family: var(--sans); font-size: calc(11 * var(--u)); font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--navy); }
.pimpl-band .pimpl p { margin-top: calc(6 * var(--u)); }
@media (min-width: 640px) { .pimpl { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 900px) { .pimpl { grid-template-columns: repeat(4, 1fr); } }
/* Inline tel: links keep a 24px tap target without changing the line box. */
.phero-lead a[href^="tel:"], .pother a[href^="tel:"] { padding-block: calc(3 * var(--u)); }

/* Split price-and-scope layouts (kept for the responsibilities and appeals sections) */
.pfu-price { margin-top: calc(12 * var(--u)) !important; font-family: var(--serif); font-weight: 700; font-size: calc(38 * var(--u)) !important; line-height: 1.05; color: var(--green-text) !important; }
.pfu-unit { font-family: var(--sans); font-size: calc(15 * var(--u)); font-weight: 500; color: var(--text-soft); margin-left: calc(10 * var(--u)); }
.pfu-title { font-family: var(--sans); font-size: calc(16 * var(--u)); font-weight: 700; color: var(--navy); }
.pfu-split { display: grid; gap: calc(26 * var(--u)); align-items: start; margin-top: calc(26 * var(--u)); }
.pfu-scope .pcalls-note:first-child { margin-top: 0 !important; padding-top: 0; border-top: 0; }
.pfu-scope .btn { margin-top: calc(22 * var(--u)); }
@media (min-width: 900px) { .pfu-split { grid-template-columns: 1fr 1fr; gap: calc(40 * var(--u)); } }
.pterms strong { color: var(--navy); font-weight: 700; }

/* Pricing cards: labelled include-lists and per-card scope notes */
.pcard .pcard-listlabel { margin-top: calc(18 * var(--u)) !important; font-size: calc(12.5 * var(--u)) !important; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--text-soft) !important; }
.pcard .pcard-listlabel + .pcard-list { margin-top: calc(10 * var(--u)); padding-top: 0; border-top: 0; }
.pcard .pcard-note { margin-top: calc(14 * var(--u)) !important; font-size: calc(14 * var(--u)) !important; line-height: 1.45; color: var(--text-soft) !important; }
.phero-note { margin-top: calc(12 * var(--u)); font-size: calc(15.5 * var(--u)); line-height: 1.5; color: var(--text-soft); max-width: 64ch; }

/* Pricing card rows: equal columns, and CTAs pinned to the bottom so card feet line up.
   minmax(0,1fr) stops a long card name (Standard Complete Prior Authorization) from
   widening its own column and squeezing the others. */
@media (min-width: 700px) and (max-width: 1023px) { .pcards-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .pcards-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.pcard-foot { margin-top: auto; padding-top: calc(24 * var(--u)); }
.pcard .pcard-foot .pcard-cta { margin-top: 0; width: 100%; }
/* Inside a pricing card these are nowrap by default, which sets a min-content wider than the
   card track on a phone and pushes the whole row sideways. Let them wrap in the card. */
.pcard .pcard-link .text-link { white-space: normal; }
.pcard .pcard-foot .pcard-cta { white-space: normal; }

/* For Practices: hero actions, list labels, single-column retained-responsibility list */
.phero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px calc(16 * var(--u)); margin-top: calc(24 * var(--u)); }
.psection .plistlabel, .pband .plistlabel { margin-top: calc(18 * var(--u)) !important; font-size: calc(13 * var(--u)) !important; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--text-soft) !important; }
.pexcl-1 { grid-template-columns: 1fr !important; }
@media (min-width: 700px) { .pterms-2 { grid-template-columns: 1fr 1fr; column-gap: calc(30 * var(--u)); } }

/* Numbered process steps: three across reads cleanly for 5 (3+2) and 9 (3+3+3) steps.
   The number badge is pale, so it needs a white ground when the section is a pale band. */
/* A numbered sequence reads as a process and, unlike a grid, wastes no vertical space:
   grid rows stretch to their tallest cell, which left ~1290px of blank on a nine-step flow. */
.pseq { list-style: none; padding: 0; margin-top: calc(22 * var(--u)); display: grid; }
.pseq > li { display: grid; grid-template-columns: calc(36 * var(--u)) 1fr; gap: calc(18 * var(--u)); align-items: start; padding: calc(20 * var(--u)) 0; border-top: 1px solid var(--line-soft); }
.pseq > li:first-child { border-top: 0; padding-top: calc(4 * var(--u)); }
.pseq .pflow-num { margin-bottom: 0; width: calc(34 * var(--u)); height: calc(34 * var(--u)); font-size: calc(16 * var(--u)); }
.pseq h3 { font-family: var(--sans); font-size: calc(17 * var(--u)); font-weight: 700; color: var(--navy); }
.pseq p { margin-top: calc(6 * var(--u)); font-size: calc(15.5 * var(--u)); line-height: 1.55; max-width: 74ch; }
.pband .pseq .pflow-num { background: var(--white); }
@media (min-width: 900px) { .pseq > li { grid-template-columns: calc(52 * var(--u)) 1fr; gap: calc(24 * var(--u)); } }
.inside-list { margin-top: calc(22 * var(--u)); }
.inside-list li { align-items: start; }
.inside-list .icon { margin-top: calc(2 * var(--u)); }
.pflow-list { list-style: none; padding: 0; margin-top: calc(9 * var(--u)); display: grid; gap: calc(5 * var(--u)); }
.pflow-list li { position: relative; padding-left: calc(16 * var(--u)); font-size: calc(14.5 * var(--u)); line-height: 1.45; color: var(--text); }
.pflow-list li::before { content: ""; position: absolute; left: 0; top: 0.62em; width: calc(5 * var(--u)); height: calc(5 * var(--u)); border-radius: 50%; background: var(--green); }
.pflow-note { margin-top: calc(10 * var(--u)); font-size: calc(14 * var(--u)); color: var(--text-soft); }


/* The case file: the product is a prepared document, so one section is set as one. */
.casefile { background: var(--white); border: 1px solid var(--line); border-top: 3px solid var(--navy); padding: calc(26 * var(--u)) calc(28 * var(--u)) calc(22 * var(--u)); margin-top: calc(26 * var(--u)); max-width: calc(680 * var(--u)); }
.casefile .casefile-label { margin: 0 !important; font-size: calc(11 * var(--u)) !important; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--green-text) !important; }
.casefile .casefile-title { margin-top: calc(6 * var(--u)) !important; font-family: var(--serif); font-size: calc(21 * var(--u)) !important; font-weight: 700; line-height: 1.2; color: var(--navy) !important; max-width: none !important; }
.casefile-rows { margin-top: calc(18 * var(--u)); border-top: 1px solid var(--line-soft); }
.casefile-row { display: grid; gap: calc(3 * var(--u)); padding: calc(11 * var(--u)) 0; border-bottom: 1px solid var(--line-soft); }
.casefile-row dt { font-size: calc(10.5 * var(--u)); font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--text-soft); padding-top: calc(2 * var(--u)); }
.casefile-row dd { margin: 0; font-size: calc(15 * var(--u)); line-height: 1.5; color: var(--navy); }
.casefile-fee { display: flex; align-items: baseline; justify-content: space-between; gap: calc(16 * var(--u)); padding-top: calc(16 * var(--u)); }
.casefile-fee dt { font-size: calc(10.5 * var(--u)); font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--text-soft); }
.casefile-fee dd { margin: 0; font-family: var(--serif); font-weight: 700; font-size: calc(26 * var(--u)); line-height: 1; color: var(--green-text); }
.casefile-fee dd span { display: block; font-family: var(--sans); font-size: calc(13 * var(--u)); font-weight: 500; color: var(--text-soft); margin-top: calc(5 * var(--u)); text-align: right; }
@media (min-width: 700px) { .casefile-row { grid-template-columns: calc(160 * var(--u)) 1fr; gap: calc(22 * var(--u)); align-items: baseline; } }

/* Trust strip: keylines and small caps, not badge chips. Every line is already stated on the site. */
.trust { background: var(--white); border-top: 1px solid var(--line); padding-block: calc(24 * var(--u)); }
.trust-inner { display: grid; gap: calc(13 * var(--u)); }
.trust .trust-item { margin: 0; font-size: calc(11.5 * var(--u)); font-weight: 600; letter-spacing: 0.09em; text-transform: uppercase; line-height: 1.55; color: var(--navy); }
@media (min-width: 820px) { .trust-inner { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: calc(26 * var(--u)); }
  .trust .trust-item + .trust-item { border-left: 1px solid var(--line); padding-left: calc(26 * var(--u)); } }

/* Page hero: copy on the left, a photograph on the right, echoing the homepage.
   Falls back to full-width copy on any page that supplies no image. */
.phero-inner { display: grid; gap: calc(26 * var(--u)); align-items: center; }
.phero-media picture { display: block; overflow: hidden; border-radius: 10px; aspect-ratio: 1400 / 1137; background: var(--pale); }
.phero-media img { display: block; width: 100%; height: 100%; object-fit: cover; }
@media (min-width: 900px) {
  .phero.has-media .phero-inner { grid-template-columns: minmax(0, 1.12fr) minmax(0, 0.88fr); gap: calc(44 * var(--u)); }
  .phero.has-media h1 { max-width: 18ch; }
  .phero-media picture { aspect-ratio: 5 / 4; }
}

/* --- Mockup direction: full-bleed hero, outlined secondary, centred heads, icon cards --- */

.phero .eyebrow { margin-bottom: calc(14 * var(--u)); }

@media (min-width: 900px) {
  .phero.has-media { padding-block: 0; }
  .phero.has-media .phero-inner { max-width: none; padding-inline: 0; grid-template-columns: minmax(0, 0.86fr) minmax(0, 1.14fr); gap: 0; align-items: stretch; }
  .phero.has-media .phero-copy { align-self: center; padding-block: calc(30 * var(--u)); padding-right: calc(52 * var(--u)); padding-left: calc((100vw - min(100vw, var(--container))) / 2 + var(--edge)); }
  .phero.has-media .phero-media { align-self: stretch; }
  .phero.has-media .phero-media picture { border-radius: 0; aspect-ratio: auto; height: 100%; min-height: calc(360 * var(--u)); }
  /* Keep the section close to the photo's own proportions: tighter type in the copy column, a wider photo column,
     and the crop biased toward the subject on the right so both ends of the scene stay in frame. */
  .phero.has-media .phero-media img { object-position: 68% 50%; }
  .phero.has-media h1 { font-size: calc(34 * var(--u)); max-width: 20ch; }
  .phero.has-media .phero-lead { font-size: calc(15.5 * var(--u)); line-height: 1.45; }
  .phero.has-media .phero-actions { margin-top: calc(18 * var(--u)); }
}


.fitgrid { list-style: none; padding: 0; margin-top: calc(30 * var(--u)); display: grid; gap: calc(18 * var(--u)); }
.fitgrid li { background: var(--white); border: 1px solid var(--line); border-radius: 12px; padding: calc(24 * var(--u)) calc(20 * var(--u)); display: grid; justify-items: center; text-align: center; gap: calc(14 * var(--u)); }
.fit-badge { display: grid; place-items: center; width: calc(46 * var(--u)); height: calc(46 * var(--u)); border-radius: 50%; background: var(--green-soft); color: var(--green-text); }
.fitgrid li p { margin: 0 !important; font-size: calc(14.5 * var(--u)) !important; line-height: 1.5; color: var(--text) !important; max-width: none !important; }
@media (min-width: 640px) { .fitgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .fitgrid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: calc(20 * var(--u)); } }

/* Mockup details: filled green step numerals, the price as a green serif line,
   and a three-across step row divided by keylines. */
.pseq .pflow-num { background: var(--btn-green); color: var(--white); }
.pband .pseq .pflow-num { background: var(--btn-green); }
.pfu-price { margin-top: calc(4 * var(--u)) !important; font-size: calc(27 * var(--u)) !important; }
.pfu-unit { margin-left: calc(8 * var(--u)); font-size: calc(17 * var(--u)); color: var(--green-text); font-weight: 600; }
@media (min-width: 900px) {
  .pseq-cols { grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: stretch; }
  .pseq-cols > li { border-top: 0; padding: calc(22 * var(--u)) calc(26 * var(--u)); }
  .pseq-cols > li:not(:nth-child(3n + 1)) { border-left: 1px solid var(--line); }
  .pseq-cols > li:nth-child(n + 4) { border-top: 1px solid var(--line); }
  .pseq-cols > li:first-child { padding-top: calc(22 * var(--u)); }
  .pseq-cols > li:nth-child(3n + 1) { padding-left: 0; }
}
.casefile-rows { margin-top: calc(14 * var(--u)); }
.casefile-row:last-child { border-bottom: 0; padding-bottom: 0; }
.pcalls-outside { margin-top: calc(26 * var(--u)); }
.pscope-note { max-width: 78ch; }

/* Security and Compliance page */
.phero-body { margin-top: calc(12 * var(--u)); font-size: calc(16 * var(--u)); line-height: 1.55; color: var(--text); max-width: 64ch; }
.glance { background: var(--white); border: 1px solid var(--line); border-top: 3px solid var(--navy); padding: calc(24 * var(--u)) calc(28 * var(--u)) calc(26 * var(--u)); max-width: calc(780 * var(--u)); }
.glance h2 { font-size: calc(24 * var(--u)) !important; }
.glance .pterms { margin-top: calc(14 * var(--u)); }
.pnote + .glance { margin-top: calc(26 * var(--u)); }
.psec-contact { margin-top: calc(12 * var(--u)) !important; font-size: calc(17 * var(--u)) !important; line-height: 1.7; }
.psec-contact a { color: var(--green-text); font-weight: 600; }
.psec-reviewed { margin-top: calc(28 * var(--u)) !important; font-size: calc(13.5 * var(--u)) !important; }

/* Expanded service model (2026-09): homepage sections, service sections, expanded-support card, checkbox group.
   Everything reuses the existing tokens, type scale, and card language. */
.home-intro p { max-width: 68ch; }
.home-services { padding-block: calc(34 * var(--u)) calc(40 * var(--u)); }
.svc-grid { list-style: none; padding: 0; margin: 0; display: grid; gap: calc(18 * var(--u)); }
.svc-card .pcard-name { font-family: var(--serif); font-size: calc(20 * var(--u)); line-height: 1.2; }
.svc-card .pcard-blurb { margin-top: calc(10 * var(--u)) !important; }
.svc-card .svc-link { margin-top: auto; padding-top: calc(14 * var(--u)); }
@media (min-width: 640px) { .svc-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .svc-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: calc(20 * var(--u)); } .svc-grid > li { grid-column: span 2; } .svc-grid > li:nth-child(4), .svc-grid > li:nth-child(5) { grid-column: span 3; } }
.problem-list { margin-top: calc(22 * var(--u)); }
.problem-list li { font-weight: 600; color: var(--navy); }
.spec-list { list-style: none; padding: 0; margin-top: calc(22 * var(--u)); display: flex; flex-wrap: wrap; gap: calc(10 * var(--u)); max-width: calc(760 * var(--u)); }
.spec-list li { padding: calc(8 * var(--u)) calc(14 * var(--u)); border: 1px solid var(--line); border-radius: 999px; background: var(--white); font-size: calc(14 * var(--u)); font-weight: 600; color: var(--navy); line-height: 1.3; }
.home-who .who-note { margin-top: calc(22 * var(--u)); max-width: 62ch; }
.home-who .who-actions { margin-top: calc(18 * var(--u)); }
.svc-section .svc-sub { margin-top: calc(8 * var(--u)); font-family: var(--serif); font-weight: 600; font-size: calc(21 * var(--u)); line-height: 1.35; color: var(--navy); max-width: 48ch; text-wrap: balance; }
.pseq-top > li:first-child { padding-top: 0; }
.fit-list { max-width: 74ch; }
.pcards-1 { max-width: calc(560 * var(--u)); }
.pcard .pcard-price-text { font-size: calc(24 * var(--u)); line-height: 1.2; }
.phi-notice { margin-top: calc(10 * var(--u)) !important; font-size: calc(15 * var(--u)) !important; color: var(--navy) !important; font-weight: 500; }
.fset { margin: 0; padding: 0; border: 0; min-width: 0; }
.fset-grid { display: grid; gap: calc(8 * var(--u)); margin-top: calc(8 * var(--u)); }
@media (min-width: 640px) { .fset-grid { grid-template-columns: 1fr 1fr; } }
.pintake-form .fset legend, .pintake-form .checks legend, .pintake-form .fgroup legend { padding: 0; font-family: var(--sans); font-size: calc(11 * var(--u)); font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--navy); }
.pintake-form .checks, .pintake-form .fgroup, .pintake-form .field-notes { margin-top: calc(10 * var(--u)); padding-top: calc(14 * var(--u)); border-top: 1px solid var(--line); }
.checks { margin: 0; padding: 0; border: 0; min-width: 0; }
.checks legend { padding: 0; font-size: calc(14 * var(--u)); font-weight: 600; color: var(--navy); }
.checks-grid { margin-top: calc(8 * var(--u)); display: grid; gap: calc(8 * var(--u)) calc(16 * var(--u)); }
@media (min-width: 640px) { .checks-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.check { display: flex; align-items: flex-start; gap: calc(10 * var(--u)); font-size: calc(14.5 * var(--u)); line-height: 1.4; color: var(--text); cursor: pointer; }
.checks .check input { width: calc(17 * var(--u)); height: calc(17 * var(--u)); min-height: 0; margin: calc(2 * var(--u)) 0 0; padding: 0; accent-color: var(--btn-green); flex: none; cursor: pointer; }
.checks .check input:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; }
.checks.is-invalid legend { color: var(--navy); }

/* Pricing (2026-09): side-by-side Payer Desk cards and the expected-volume input group. Same tokens and card language as
   the rest of the site. The desk-tier and price-tile rules were retired with the public rate card. */
.payer-desk .eyebrow { margin-bottom: calc(10 * var(--u)); color: var(--green-text); }
.payer-desk .pcards { margin-top: calc(26 * var(--u)); }
.payer-desk .pcard { background: var(--white); }
.payer-desk .pscope-note { max-width: 78ch; }
.pband .pcards-1 { margin-top: calc(24 * var(--u)); }
.svc-availability { margin-top: calc(10 * var(--u)) !important; font-weight: 600; color: var(--navy) !important; }
.fgroup { margin: 0; padding: 0; border: 0; min-width: 0; }
.fgroup legend { padding: 0; font-size: calc(14 * var(--u)); font-weight: 600; color: var(--navy); }
.fgroup-grid { margin-top: calc(8 * var(--u)); display: grid; gap: calc(8 * var(--u)) calc(12 * var(--u)); }
@media (min-width: 640px) { .fgroup-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.fgroup .group-item label { display: block; font-size: calc(13 * var(--u)); font-weight: 500; color: var(--text); margin-bottom: calc(4 * var(--u)); }
/* Long card buttons wrap as centred text with the arrow inline, not pinned to the far edge. */
.pcard .pcard-foot .pcard-cta { display: inline-block; text-align: center; line-height: 1.3; padding-block: calc(11 * var(--u)); }
.pcard .pcard-foot .pcard-cta .arrow { margin-left: 0.4em; }

.spec-links a { color: var(--green-text); font-weight: 600; text-decoration: none; }
.spec-links a:hover { text-decoration: underline; }
.pcta .eyebrow { margin-bottom: calc(8 * var(--u)); color: var(--green-text); }

/* Eight service lines: homepage grid, services index and area dividers, expandable scope lists, linked grid tiles */
.svc-grid { margin-top: calc(26 * var(--u)); }
@media (min-width: 1024px) { .svc-grid-8 { grid-template-columns: repeat(4, minmax(0, 1fr)); } .svc-grid-8 > li, .svc-grid-8 > li:nth-child(4), .svc-grid-8 > li:nth-child(5) { grid-column: auto; } }
.svc-index .pflow-list { margin-top: calc(10 * var(--u)); }
.svc-index .pflow-list a { color: var(--green-text); font-weight: 600; text-decoration: none; }
.svc-index .pflow-list a:hover { text-decoration: underline; }
.svc-area .eyebrow { margin-bottom: calc(8 * var(--u)); color: var(--green-text); }
.svc-area h2 { max-width: 30ch; }
.pgrid-links h3 a { color: inherit; text-decoration: none; }
.pgrid-links h3 a:hover { text-decoration: underline; }

/* Lifecycle strip, service detail pages, resources */
.lifecycle { margin-top: calc(22 * var(--u)); grid-template-columns: repeat(2, minmax(0, 1fr)); gap: calc(16 * var(--u)) calc(20 * var(--u)); }
.lifecycle li { padding-top: calc(10 * var(--u)); border-top: 2px solid var(--line); }
.lifecycle .pimpl-num { font-size: calc(22 * var(--u)); margin-bottom: calc(6 * var(--u)); }
@media (min-width: 640px) { .lifecycle { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 900px) { .lifecycle { grid-template-columns: repeat(6, minmax(0, 1fr)); } }
.home-services-lead { margin-top: calc(22 * var(--u)) !important; max-width: 64ch; }
.svc-title { color: inherit; text-decoration: none; }
.svc-title:hover { text-decoration: underline; }
.wf-grid .pterms { margin-top: calc(8 * var(--u)); }
.svc-links { margin-top: calc(14 * var(--u)); }
.svc-links a { color: var(--green-text); font-weight: 600; text-decoration: none; }
.svc-links a:hover { text-decoration: underline; }
.guides .pcard-name a { color: inherit; text-decoration: none; }
.guides .pcard-name a:hover { text-decoration: underline; }
.article .eyebrow a { color: inherit; text-decoration: none; }
.article .eyebrow a:hover { text-decoration: underline; }
.article-dek { font-size: 19px !important; color: var(--text-soft) !important; }
.legal-content .sources { font-size: 15px; }
.legal-content .sources a { color: var(--green-text); }
