/* ==========================================================================
   NDCC R6 redesign layer — loaded AFTER ndcc-hospital-care-20260914-r5.css
   Typography: Inter (UI/body) + Fraunces (headlines), both self-hosted.
   Logo, copy, URLs and form logic are untouched.
   ========================================================================== */

/* ---------- Fonts (self-hosted, no third-party requests) ---------- */
@font-face {
  font-family: "Inter Variable";
  font-style: normal; font-weight: 100 900; font-display: swap;
  src: url("/assets/fonts/inter-latin-wght-normal.woff2") format("woff2-variations");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Inter Variable";
  font-style: normal; font-weight: 100 900; font-display: swap;
  src: url("/assets/fonts/inter-latin-ext-wght-normal.woff2") format("woff2-variations");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Fraunces Variable";
  font-style: normal; font-weight: 100 900; font-display: swap;
  src: url("/assets/fonts/fraunces-latin-wght-normal.woff2") format("woff2-variations");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* metric-matched fallbacks keep layout from jumping while fonts load */
@font-face { font-family: "Inter Fallback"; src: local("Arial"); size-adjust: 107.4%; ascent-override: 90.2%; descent-override: 22.5%; line-gap-override: 0%; }
@font-face { font-family: "Fraunces Fallback"; src: local("Georgia"); size-adjust: 104%; ascent-override: 93%; descent-override: 24%; line-gap-override: 0%; }

/* ---------- Tokens ---------- */
:root {
  --font-sans: "Inter Variable", "Inter Fallback", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  --font-serif: "Fraunces Variable", "Fraunces Fallback", Georgia, "Times New Roman", serif;

  --ink: #0a2540;
  --ink-soft: #2b4a63;
  --text: #36546b;
  --muted: #566f82;
  --teal: #046d79;
  --teal-deep: #035a64;
  --teal-bright: #24b8aa;
  --aqua-50: #f0f8f9;
  --aqua-100: #e4f2f4;
  --aqua-200: #cfe6ea;
  --plum: #6b21a8;
  --plum-50: #f5eefb;
  --paper: #f7fafb;
  --surface: #ffffff;
  --hair: rgba(10, 37, 64, .11);
  --hair-strong: rgba(10, 37, 64, .2);

  --r-sm: 10px;
  --r-md: 16px;
  --r-lg: 24px;
  --r-xl: 32px;
  --shadow-1: 0 1px 2px rgba(10,37,64,.05), 0 8px 24px -12px rgba(10,37,64,.14);
  --shadow-2: 0 2px 4px rgba(10,37,64,.05), 0 24px 48px -24px rgba(10,37,64,.28);
  --ease: cubic-bezier(.22,.8,.28,1);

  --section-pad: clamp(56px, 8vw, 112px);
  --shell: 1180px;
}

/* ---------- Base typography ---------- */
html { scroll-padding-top: 110px; }
body {
  font-family: var(--font-sans);
  font-size: 1rem;
  line-height: 1.65;
  color: var(--ink);
  background: var(--paper);
  font-feature-settings: "cv11", "ss03", "calt";
  text-rendering: optimizeLegibility;
  -webkit-text-size-adjust: 100%;
}
h1, h2, h3, h4,
.r4-home-hero h1, .r4-page-hero h1, .page-hero h1,
.section-heading h2, .r4-section h2 {
  font-family: var(--font-serif);
  font-weight: 560;
  color: inherit;
  letter-spacing: -.018em;
  text-wrap: balance;
}
h1 { line-height: 1.06; }
h2 { line-height: 1.12; }
h3 { line-height: 1.22; }
h4 { font-family: var(--font-sans); font-weight: 650; letter-spacing: 0; }
p { text-wrap: pretty; }
strong, b { font-weight: 650; }
a { text-underline-offset: 3px; }

.eyebrow, .r4-kicker {
  display: inline-flex; align-items: center; gap: 10px;
  font-family: var(--font-sans);
  font-size: .75rem; font-weight: 680; letter-spacing: .12em; text-transform: uppercase;
  color: var(--teal);
}
.eyebrow::before { width: 22px; height: 2px; border-radius: 2px; background: linear-gradient(90deg, var(--teal-bright), var(--teal)); }
.eyebrow--light, .section--dark .eyebrow { color: #9fe3dc; }
.eyebrow--plum, .eyebrow--oncology { color: var(--plum); }
.eyebrow--plum::before, .eyebrow--oncology::before { background: var(--plum); }
.eyebrow--plum-light { color: #e3c9fa; }

/* ---------- Announcement bar ---------- */
.announcement { background: linear-gradient(90deg, #08203a, #0c3350 60%, #08203a); font-size: .75rem; letter-spacing: .08em; font-weight: 600; }
.announcement-inner { min-height: 36px; }
.announcement a { transition: color .2s; }
.announcement a:hover { color: #9fe3dc; }

/* ---------- Header / navigation ---------- */
.site-header {
  background: rgba(255,255,255,.86);
  -webkit-backdrop-filter: saturate(1.6) blur(18px); backdrop-filter: saturate(1.6) blur(18px);
  border-bottom: 1px solid var(--hair);
  box-shadow: 0 1px 0 rgba(255,255,255,.6) inset;
}
.header-inner { min-height: 88px; gap: 32px; }
.desktop-nav { gap: 6px; }
.desktop-nav a {
  padding: 9px 13px; border-radius: 999px;
  font-size: .875rem; font-weight: 560; color: var(--ink-soft);
  transition: background .2s var(--ease), color .2s var(--ease);
}
.desktop-nav a::after { display: none; }
.desktop-nav a:hover { background: var(--aqua-100); color: var(--teal-deep); }
.desktop-nav a[aria-current="page"], .desktop-nav a.active, .desktop-nav a.is-current {
  background: var(--aqua-100); color: var(--teal-deep); font-weight: 650;
}
.header-cta, .site-header .button--dark {
  border-radius: 999px; padding: 0 22px; min-height: 46px; font-size: .875rem; font-weight: 650;
  background: linear-gradient(180deg, #0f3556, #0a2540);
  box-shadow: 0 1px 0 rgba(255,255,255,.18) inset, 0 8px 18px -8px rgba(10,37,64,.55);
}
.mobile-nav summary { border-radius: 999px; font-weight: 650; }
.mobile-nav[open] > div, .mobile-nav > div { border-radius: var(--r-md); box-shadow: var(--shadow-2); border: 1px solid var(--hair); }

/* ---------- Buttons ---------- */
.button {
  min-height: 52px; padding: 0 26px; border-radius: 999px; gap: 10px;
  font-family: var(--font-sans); font-size: .9375rem; font-weight: 650; letter-spacing: -.003em;
  transition: transform .25s var(--ease), box-shadow .25s var(--ease), background .2s, border-color .2s, color .2s;
}
.button:hover { transform: translateY(-2px); }
.button:active { transform: translateY(0); }
.button--dark {
  background: linear-gradient(180deg, #0f3556, #0a2540); color: #fff;
  box-shadow: 0 1px 0 rgba(255,255,255,.16) inset, 0 12px 24px -12px rgba(10,37,64,.6);
}
.button--dark:hover { background: linear-gradient(180deg, #14416a, #0d2e4d); box-shadow: 0 1px 0 rgba(255,255,255,.2) inset, 0 16px 28px -12px rgba(10,37,64,.65); }
.button--coral { background: var(--teal-bright); color: #052b30; box-shadow: 0 12px 26px -12px rgba(36,184,170,.7); }
.button--coral:hover { background: #38c9bc; }
.button--plum { background: var(--plum); box-shadow: 0 12px 26px -12px rgba(107,33,168,.6); }
.button--light { background: #fff; color: var(--ink); box-shadow: var(--shadow-1); }
.r4-button-outline {
  background: rgba(255,255,255,.7); color: var(--ink);
  border: 1.5px solid var(--hair-strong); box-shadow: none;
}
.r4-button-outline:hover { background: #fff; border-color: var(--teal); color: var(--teal-deep); }
.r4-whatsapp { background: #0a7a4f; border-color: #0a7a4f; }
.text-link {
  font-weight: 650; color: var(--teal-deep); display: inline-flex; align-items: center; gap: 6px;
  border-bottom: 0; text-decoration: underline; text-decoration-thickness: 1.5px; text-decoration-color: rgba(4,109,121,.3);
  transition: text-decoration-color .2s, gap .25s var(--ease);
}
.text-link:hover { text-decoration-color: var(--teal-deep); gap: 10px; }

/* ---------- Homepage hero ---------- */
.r4-home-hero {
  position: relative; isolation: isolate; overflow: hidden;
  padding: clamp(48px, 7vw, 96px) 0 clamp(48px, 6vw, 80px);
  background:
    radial-gradient(900px 480px at 88% -10%, rgba(36,184,170,.22), transparent 62%),
    radial-gradient(700px 420px at -5% 105%, rgba(107,33,168,.08), transparent 60%),
    linear-gradient(180deg, #eaf5f7 0%, #f4f9fa 100%);
}
.r4-home-hero::before {
  content: ""; position: absolute; inset: 0; z-index: -1; opacity: .5;
  background-image: radial-gradient(rgba(10,37,64,.09) 1px, transparent 1.2px); background-size: 26px 26px;
  -webkit-mask-image: linear-gradient(115deg, transparent 35%, #000 100%); mask-image: linear-gradient(115deg, transparent 35%, #000 100%);
}
.r4-hero-grid { grid-template-columns: minmax(0, 1.12fr) minmax(0, .88fr); gap: clamp(32px, 5vw, 72px); }
.r4-home-hero h1 {
  font-size: clamp(2.4rem, 1.6rem + 2.9vw, 3.95rem);
  line-height: 1.04; letter-spacing: -.028em; margin: 22px 0 24px; font-weight: 540;
}
.r4-home-hero h1 em { color: var(--teal); font-style: normal; }
.r4-home-hero p { font-size: clamp(1.0625rem, 1rem + .3vw, 1.25rem); line-height: 1.7; color: var(--text); max-width: 34em; }
.r4-actions { gap: 12px; margin-top: 30px; }
.r4-hero-links { margin-top: 26px; gap: 10px 28px; font-size: .9375rem; font-weight: 600; }
.r4-hero-links a { color: var(--ink-soft); border-bottom: 1.5px solid rgba(10,37,64,.2); padding-bottom: 2px; transition: color .2s, border-color .2s; }
.r4-hero-links a:hover { color: var(--teal-deep); border-color: var(--teal); }
.r4-hero-image {
  position: relative; border: 0; border-radius: var(--r-xl); overflow: visible; background: transparent;
}
.r4-hero-image::before {
  content: ""; position: absolute; inset: 18px -14px -14px 18px; z-index: -1; border-radius: var(--r-xl);
  background: linear-gradient(145deg, rgba(36,184,170,.35), rgba(4,109,121,.12));
}
.r4-hero-image img {
  height: clamp(340px, 38vw, 520px); border-radius: var(--r-xl);
  box-shadow: var(--shadow-2); object-position: 50% 40%;
}
.r4-hero-image figcaption {
  position: absolute; left: 16px; right: 16px; bottom: 16px; width: fit-content; max-width: calc(100% - 32px);
  padding: 9px 15px; border-radius: 999px; font-size: .75rem; line-height: 1.4; font-weight: 550; letter-spacing: .01em;
  background: rgba(8,32,58,.78); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); color: #fff;
}

/* service strip → three trust tiles */
.r4-service-strip {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px;
  margin-top: -34px; position: relative; z-index: 3; padding: 0; border: 0;
}
.r4-service-strip span {
  display: flex; align-items: center; gap: 14px; padding: 18px 22px;
  background: #fff; border: 1px solid var(--hair); border-radius: var(--r-md); box-shadow: var(--shadow-1);
  font-size: .9375rem; font-weight: 620; color: var(--ink);
}
.r4-service-strip span::before {
  content: ""; flex: 0 0 34px; height: 34px; border-radius: 50%;
  background: var(--aqua-100) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23046d79' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.2 4.2L19 7'/%3E%3C/svg%3E") center/18px no-repeat;
}

/* ---------- Sections ---------- */
.r4-section { padding: var(--section-pad) 0; background: var(--surface); }
.r4-tint { background: linear-gradient(180deg, var(--aqua-50), #eaf4f6); }
.r4-section-heading { max-width: 760px; margin-bottom: clamp(28px, 4vw, 48px); }
.r4-section h2, .r4-form h2, .r4-review h2 {
  font-size: clamp(1.9rem, 1.4rem + 2vw, 3.1rem); line-height: 1.1; letter-spacing: -.022em; margin: 14px 0 0; font-weight: 540;
}
.r4-section p { font-size: 1.0625rem; line-height: 1.75; color: var(--text); }

.r4-grid { gap: 24px; }
.r4-card {
  position: relative; padding: clamp(24px, 3vw, 36px); border-radius: var(--r-lg);
  border: 1px solid var(--hair); background: #fff; box-shadow: var(--shadow-1);
  transition: transform .35s var(--ease), box-shadow .35s var(--ease), border-color .35s;
}
.r4-card::before {
  content: ""; position: absolute; left: 28px; right: 28px; top: 0; height: 3px; border-radius: 0 0 3px 3px;
  background: linear-gradient(90deg, var(--teal-bright), var(--teal)); opacity: .9;
}
.r4-grid .r4-card:nth-child(2)::before { background: linear-gradient(90deg, #a855f7, var(--plum)); }
.r4-grid:not(.r4-two) .r4-card:nth-child(2)::before { background: linear-gradient(90deg, var(--teal-bright), var(--teal)); }
.r4-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-2); border-color: var(--aqua-200); }
.r4-card .r4-kicker { padding: 5px 11px; border-radius: 999px; background: var(--aqua-100); font-size: .6875rem; letter-spacing: .1em; }
.r4-two .r4-card:nth-child(2) .r4-kicker { background: var(--plum-50); color: var(--plum); }
.r4-card h3 { font-size: clamp(1.4rem, 1.2rem + .8vw, 1.8rem); font-weight: 560; letter-spacing: -.018em; line-height: 1.18; margin: 18px 0 12px; }
.r4-card p { font-size: 1rem; line-height: 1.7; margin-bottom: 22px; color: var(--text); }
.r4-card .text-link { font-size: .9375rem; }
.r4-two .r4-card:nth-child(2) .text-link { color: var(--plum); text-decoration-color: rgba(107,33,168,.3); }

/* steps */
.r4-steps { gap: 24px; counter-reset: s; position: relative; }
.r4-steps li {
  position: relative; padding: 28px 26px 26px; background: #fff; border: 1px solid var(--hair); border-radius: var(--r-lg); box-shadow: var(--shadow-1);
}
.r4-steps b {
  display: grid; place-items: center; width: 46px; height: 46px; margin-bottom: 20px; border-radius: 50%;
  font-family: var(--font-serif); font-size: 1.125rem; font-weight: 600; color: #fff;
  background: linear-gradient(145deg, var(--teal), #0a8f9c); box-shadow: 0 10px 20px -10px rgba(4,109,121,.7);
}
.r4-steps h3 { font-size: 1.375rem; margin: 0 0 10px; }
.r4-steps p { font-size: .9688rem; line-height: 1.7; margin: 0; }
@media (min-width: 761px) {
  .r4-steps li:not(:last-child)::after {
    content: ""; position: absolute; top: 51px; left: calc(26px + 46px + 12px); right: -24px; height: 2px; z-index: 1;
    background: repeating-linear-gradient(90deg, rgba(4,109,121,.4) 0 6px, transparent 6px 12px);
    -webkit-mask-image: linear-gradient(90deg, #000 70%, transparent); mask-image: linear-gradient(90deg, #000 70%, transparent);
    pointer-events: none;
  }
}

.r4-notice {
  position: relative; border: 1px solid #b9dde2; border-left: 4px solid var(--teal); border-radius: var(--r-md);
  padding: 20px 24px 20px 26px; background: #fff; box-shadow: var(--shadow-1);
  font-size: .9688rem; line-height: 1.7; color: var(--ink-soft);
}
.r4-notice strong { font-family: var(--font-sans); font-weight: 680; color: var(--ink); margin-bottom: 6px; }

.r4-split { gap: clamp(28px, 5vw, 72px); align-items: start; }
.r6-band .r4-split { align-items: center; }
.r4-split > p { margin: 0; font-size: clamp(1.0625rem, 1rem + .35vw, 1.25rem); line-height: 1.7; }
.r4-split > div p { margin-top: 0; }

/* homepage dark band for partners (class added in markup) */
.r6-band { background: linear-gradient(135deg, #072038 0%, #0b3a52 55%, #07566a 100%); position: relative; overflow: hidden; }
.r6-band::after {
  content: ""; position: absolute; right: -120px; top: -140px; width: 480px; height: 480px; border-radius: 50%;
  background: radial-gradient(circle, rgba(36,184,170,.35), transparent 65%); pointer-events: none;
}
.r6-band .shell { position: relative; z-index: 1; }
.r6-band h2 { color: #fff; }
.r6-band .eyebrow { color: #9fe3dc; }
.r6-band p, .r6-band .r4-section p { color: #cfe4ea; }
.r6-band .button--dark { background: #fff; color: var(--ink); box-shadow: 0 14px 28px -14px rgba(0,0,0,.6); }
.r6-band .button--dark:hover { background: #e8fbf8; }

/* team teaser, final CTA — centred, calmer */
.r6-cta .r4-section-heading, .r6-cta > .shell > p, .r6-cta .r4-actions { margin-left: auto; margin-right: auto; text-align: center; justify-content: center; }
.r6-cta .eyebrow { justify-content: center; }
.r6-cta > .shell > p { max-width: 36em; }

/* ---------- Interior page heroes ---------- */
.r4-page-hero {
  position: relative; isolation: isolate; overflow: hidden;
  padding: clamp(48px, 6.5vw, 92px) 0 clamp(40px, 5vw, 68px);
  background:
    radial-gradient(700px 360px at 92% -20%, rgba(36,184,170,.2), transparent 65%),
    linear-gradient(180deg, #e9f4f6, #f3f9fa);
  border-bottom: 1px solid var(--hair);
}
.r4-page-hero::before {
  content: ""; position: absolute; inset: 0; z-index: -1; opacity: .45;
  background-image: radial-gradient(rgba(10,37,64,.09) 1px, transparent 1.2px); background-size: 26px 26px;
  -webkit-mask-image: linear-gradient(110deg, transparent 45%, #000); mask-image: linear-gradient(110deg, transparent 45%, #000);
}
.r4-page-hero h1 { font-size: clamp(2.25rem, 1.6rem + 3vw, 4rem); line-height: 1.05; letter-spacing: -.026em; font-weight: 540; margin: 18px 0 20px; max-width: 18em; }
.r4-page-hero p { font-size: clamp(1.0625rem, 1rem + .3vw, 1.25rem); line-height: 1.7; color: var(--text); max-width: 40em; }

.page-hero { background: linear-gradient(135deg, #072038, #0b3a52 60%, #07566a); min-height: 0; padding: clamp(64px, 8vw, 112px) 0 clamp(56px, 7vw, 96px); }
.page-hero h1 { font-weight: 540; line-height: 1.03; letter-spacing: -.026em; font-size: clamp(2.4rem, 1.7rem + 3.4vw, 4.4rem); color: #fff; }
.page-hero-copy > p { font-size: 1.1875rem; line-height: 1.7; color: #cfe4ea; }
.page-hero-copy > span { color: #9fe3dc; }

/* legacy section headings */
.section-heading h2 { font-weight: 540; font-size: clamp(2rem, 1.5rem + 2.2vw, 3.3rem); line-height: 1.08; letter-spacing: -.022em; }
.section-heading p { font-size: 1.0625rem; line-height: 1.75; color: var(--text); }
.section--dark { background: linear-gradient(135deg, #072038, #0b3a52 70%, #07566a); }
.section--dark h1, .section--dark h2, .section--dark h3 { color: #fff; }
.section--mint, .section--paper { background: var(--aqua-50); }
.section--paper { background: var(--paper); }

/* ---------- Cards & components on inner pages ---------- */
.safety-card, .guide-card, .blog-card, .scope-card, .stat-tile, .source-card, .lead-doctor-card,
.feature-panel, .article-download-card, .faq-item, .session-step, .process-cards > *, .values-grid > *, .protocol-ledger > * {
  border-radius: var(--r-lg);
}
.safety-card, .guide-card, .blog-card, .scope-card, .stat-tile, .session-step, .source-card, .article-download-card {
  background: #fff; border: 1px solid var(--hair); box-shadow: var(--shadow-1);
  transition: transform .35s var(--ease), box-shadow .35s var(--ease), border-color .35s;
}
.guide-card:hover, .blog-card:hover, .safety-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-2); border-color: var(--aqua-200); }
.safety-card h3, .guide-card h3, .blog-card h3, .scope-card h3, .session-step h3 { font-weight: 560; letter-spacing: -.016em; }
.blog-card-meta { font-size: .75rem; font-weight: 650; letter-spacing: .08em; text-transform: uppercase; color: var(--teal); }
.stat-tile strong, .stat-tile b { font-family: var(--font-serif); font-weight: 560; color: var(--teal-deep); }
.session-step-num { font-family: var(--font-serif); font-weight: 600; }
.faq-item { background: #fff; border: 1px solid var(--hair); box-shadow: var(--shadow-1); }
.faq-item summary { font-weight: 640; color: var(--ink); }
.medical-note, .urgent-note { border-radius: var(--r-md); font-size: .9688rem; line-height: 1.7; }
.check-list li, .numbered-question-list li { line-height: 1.7; }
.team-photo-photo, .team-photo-placeholder { border-radius: var(--r-lg); }
.illus-frame { border-radius: var(--r-lg); box-shadow: var(--shadow-1); }
.editorial-image img, .article-feature-image img, .guide-media-grid img { border-radius: var(--r-lg); }

/* ---------- Articles (blog + guides) ---------- */
.article-header h1 { font-weight: 540; font-size: clamp(2.2rem, 1.6rem + 2.6vw, 3.8rem); line-height: 1.06; letter-spacing: -.026em; }
.article-body { font-size: 1.0938rem; line-height: 1.85; color: #2f4b61; }
.article-body p { max-width: 68ch; }
.article-body h2 { font-size: clamp(1.6rem, 1.3rem + 1.1vw, 2.15rem); margin: 2.2em 0 .6em; }
.article-body h3 { font-size: 1.4rem; margin: 1.8em 0 .5em; }
.article-body a { color: var(--teal-deep); text-decoration: underline; text-decoration-color: rgba(4,109,121,.35); text-underline-offset: 3px; }
.article-body a:hover { text-decoration-color: var(--teal-deep); }
.article-body blockquote { border-left: 3px solid var(--teal-bright); padding-left: 1.2em; font-family: var(--font-serif); font-size: 1.2em; color: var(--ink); }
.answer-summary { border-radius: var(--r-lg); }

/* ---------- Forms ---------- */
.r4-booking-grid { gap: clamp(24px, 3vw, 40px); }
.r4-form, .r4-review { border-radius: var(--r-xl); padding: clamp(24px, 4vw, 44px); border: 1px solid var(--hair); box-shadow: var(--shadow-2); }
.r4-form h2, .r4-review h2 { font-size: clamp(1.7rem, 1.4rem + 1vw, 2.2rem); }
.r4-form label:not(.r4-consent) { font-size: .875rem; font-weight: 640; color: var(--ink); margin-bottom: 7px; }
.r4-form input:not([type=checkbox]), .r4-form select, .r4-form textarea {
  min-height: 52px; border: 1.5px solid #b7c8d3; border-radius: 12px; background: #fff; font-size: 1rem; color: var(--ink);
  transition: border-color .2s, box-shadow .2s, background .2s;
}
.r4-form input:not([type=checkbox]):hover, .r4-form select:hover { border-color: #7d96a4; }
.r4-form input:not([type=checkbox]):focus, .r4-form select:focus, .r4-form textarea:focus {
  outline: 0; border-color: var(--teal); box-shadow: 0 0 0 4px rgba(36,184,170,.22);
}
.r4-form small { font-size: .8125rem; color: var(--muted); }
.r4-consent { padding: 16px 18px; border-radius: 12px; background: var(--aqua-50); border: 1px solid var(--aqua-200); }
.r4-booking-aside .r4-card::before { display: none; }
.r4-contact-number { font-family: var(--font-serif); font-size: 1.75rem; font-weight: 560; color: var(--teal-deep); }
.r4-review pre { border-radius: 14px; background: var(--aqua-50); border: 1px solid var(--aqua-200); }
.r4-service-row { border-bottom: 1px solid var(--hair); padding: clamp(28px, 4vw, 44px) 0; gap: clamp(24px, 5vw, 64px); }
.r4-service-row h2 { font-size: clamp(1.6rem, 1.3rem + 1vw, 2.1rem); }
.r4-prose h2 { font-size: clamp(1.5rem, 1.3rem + .8vw, 2rem); }

/* ---------- Footer ---------- */
.site-footer {
  position: relative; padding: clamp(56px, 7vw, 96px) 0 28px;
  background: radial-gradient(800px 380px at 100% 0, rgba(36,184,170,.14), transparent 60%), linear-gradient(180deg, #072a2f, #051e22);
}
.site-footer::before { content: ""; position: absolute; inset: 0 0 auto; height: 3px; background: linear-gradient(90deg, var(--teal-bright), var(--teal), #8b3fd1); }
.footer-grid { gap: clamp(32px, 5vw, 64px); }
.footer-brand p { color: #a9cdc6; font-size: .9688rem; line-height: 1.7; max-width: 24em; }
.footer-grid .footer-heading { color: #8fdad2; font-size: .75rem; font-weight: 680; letter-spacing: .14em; text-transform: uppercase; margin-bottom: 18px; }
.footer-grid a { color: #e6f2ef; font-size: .9375rem; transition: color .2s, transform .2s var(--ease); }
.footer-grid a:hover { color: var(--teal-bright); transform: translateX(3px); }
.r4-footer-contact { border-color: rgba(255,255,255,.13); gap: clamp(24px, 4vw, 48px); }
.r4-footer-contact strong { font-family: var(--font-serif); font-weight: 560; font-size: 1.125rem; color: #fff; }
.r4-footer-contact address { color: #d3e6e2; line-height: 1.7; }
.r4-footer-contact a { color: #e6f2ef; transition: color .2s; }
.r4-footer-contact a:hover { color: var(--teal-bright); }
.footer-bottom { color: #8fb3ab; font-size: .8125rem; border-color: rgba(255,255,255,.1); }
.footer-bottom a { color: #c3dcd6; }
.footer-bottom a:hover { color: #fff; }
.status-pill--light { letter-spacing: .1em; font-weight: 650; }

/* ---------- Floating quick contact ---------- */
.r4-quick-contact {
  right: 20px; bottom: 20px; border-radius: 999px; border: 1px solid rgba(255,255,255,.14);
  background: rgba(8,32,58,.9); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
  box-shadow: 0 18px 40px -14px rgba(8,32,58,.55);
}
.r4-quick-contact a { padding: 0 20px; min-height: 48px; display: inline-flex; align-items: center; font-size: .8125rem; font-weight: 650; letter-spacing: .01em; transition: background .2s; }
.r4-quick-contact a:first-child { padding-left: 24px; }
.r4-quick-contact a:last-child { padding-right: 24px; }

/* ---------- Motion polish ---------- */
.js-motion [data-reveal] { transition-duration: .8s; transition-timing-function: var(--ease); }
@media (prefers-reduced-motion: no-preference) {
  .r4-hero-image img { animation: r6-float 9s ease-in-out infinite alternate; }
  @keyframes r6-float { from { transform: translateY(0); } to { transform: translateY(-8px); } }
}
@media (prefers-reduced-motion: reduce) {
  .r4-card, .button, .guide-card, .blog-card, .safety-card, .footer-grid a { transition: none !important; }
  .r4-card:hover, .guide-card:hover, .blog-card:hover, .safety-card:hover { transform: none; }
}

/* ---------- Responsive ---------- */
@media (max-width: 1050px) {
  .header-inner { min-height: 80px; }
  .r4-service-strip { margin-top: -26px; }
}
@media (max-width: 760px) {
  .r4-hero-grid { gap: 36px; }
  .r4-hero-image::before { inset: 12px -8px -10px 12px; }
  .r4-hero-image img { height: 300px; }
  .r4-service-strip { grid-template-columns: 1fr; gap: 10px; margin-top: -20px; }
  .r4-service-strip span { padding: 14px 18px; }
  .r4-steps { gap: 14px; }
  .r4-steps li { padding: 22px; }
  .r4-grid { gap: 16px; }
  .r4-actions .button { flex: 1 1 100%; }
  .r4-quick-contact { left: 12px; right: 12px; bottom: 12px; width: auto; justify-content: stretch; }
  .r4-quick-contact a { flex: 1; justify-content: center; padding: 0 8px; }
  body { padding-bottom: 76px; }
}
@media (max-width: 480px) {
  .r4-home-hero h1 { font-size: 2.35rem; }
  .r4-page-hero h1, .page-hero h1 { font-size: 2.15rem; }
  .r4-hero-image figcaption { font-size: .6875rem; }
}
@media print {
  .r4-quick-contact, .site-header, .announcement { display: none !important; }
  body { background: #fff; padding: 0; }
}

/* footer refinements */
.footer-brand .brand-logo--footer { display: inline-block; }
.footer-brand p { margin: 22px 0 20px; }
.footer-bottom { margin-top: 0; padding-top: 26px; }
.r4-footer-contact { margin-top: clamp(36px, 5vw, 56px); padding-top: 36px; padding-bottom: 36px; border-bottom: 0; }
.footer-legal-block { gap: 6px; }

/* lists inside cards */
.r4-card h2 { font-size: clamp(1.45rem, 1.25rem + .8vw, 1.9rem); line-height: 1.15; margin: 0 0 18px; }
.r4-card ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.r4-card ul li { position: relative; padding-left: 28px; line-height: 1.55; color: var(--text); }
.r4-card ul li::before {
  content: ""; position: absolute; left: 0; top: .2em; width: 18px; height: 18px; border-radius: 50%;
  background: var(--aqua-100) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23046d79' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.2 4.2L19 7'/%3E%3C/svg%3E") center/11px no-repeat;
}
.r4-section address { font-style: normal; font-size: 1.125rem; font-weight: 520; color: var(--ink); margin-bottom: 14px; line-height: 1.6; }

.team-preview-heading h2, .team-section-heading h2 {
  font-weight: 540; line-height: 1.05; letter-spacing: -.024em; font-size: clamp(2.2rem, 1.5rem + 2.8vw, 3.9rem);
}
.team-preview-heading > div:last-child > p, .team-section-heading > p { color: var(--text); font-size: 1.0625rem; }
.team-section-heading--light > p { color: #cfe4ea; }
.leadership-name h3, .lead-doctor-details h3 { font-weight: 560; }
.page-hero h1, .section--dark h2, .section--dark h3 { font-weight: 540; }
.lead-doctor-details h4 { font-family: var(--font-serif); font-weight: 540; letter-spacing: -.02em; }
.doctor-role, .leadership-name span { font-family: var(--font-sans); font-weight: 700; }

/* normalise headline rhythm across every legacy block (R5 used 640–650 weights and .96 line-height) */
h1, h2, h3 { font-weight: 550 !important; }
h1, h2 { line-height: 1.08 !important; letter-spacing: -.022em !important; }
h3 { letter-spacing: -.016em !important; }

/* ---------- mobile corrections (placed last so they win over the desktop layer) ---------- */
@media (max-width: 860px) {
  .r4-hero-grid, .r4-grid, .r4-two, .r4-split, .r4-booking-grid, .r4-service-row { grid-template-columns: minmax(0, 1fr); }
  .r4-hero-image { order: -1; }
}
@media (max-width: 760px) {
  .r4-steps { grid-template-columns: minmax(0, 1fr); }
  .r4-steps li { padding: 22px; }
  .r4-steps b { position: static; margin-bottom: 14px; }
  .r4-home-hero { padding-top: 28px; }
  .r4-home-hero h1 { font-size: clamp(2.2rem, 9vw, 2.7rem); }
  .r4-hero-image img { height: 260px; }
  .r4-footer-contact { grid-template-columns: minmax(0, 1fr); }
  .footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .footer-brand { grid-column: 1 / -1; }
  .r4-card ul li { padding-left: 26px; }
}

/* mobile menu button */
.mobile-nav summary {
  display: inline-flex; align-items: center; gap: 10px; min-height: 46px; padding: 0 18px 0 16px;
  border: 1.5px solid var(--hair-strong); border-radius: 999px; background: #fff; color: var(--ink); font-size: .9rem;
}
.mobile-nav summary::before {
  content: ""; width: 16px; height: 12px;
  background: linear-gradient(var(--ink), var(--ink)) 0 0/100% 2px no-repeat, linear-gradient(var(--ink), var(--ink)) 0 50%/70% 2px no-repeat, linear-gradient(var(--ink), var(--ink)) 0 100%/100% 2px no-repeat;
}
.mobile-nav[open] summary { background: var(--aqua-100); border-color: var(--teal); }
@media (max-width: 1050px) { .mobile-nav { margin-left: 0; } .header-cta { margin-left: auto; } }
@media (max-width: 480px) { .header-inner { justify-content: space-between; } .mobile-nav { margin-left: auto; } }
.mobile-nav nav { top: 56px; border-radius: var(--r-lg); }
@media (max-width: 760px) {
  .footer-grid > div:last-child { grid-column: 1 / -1; }
  .footer-grid a[data-ndcc-email] { overflow-wrap: anywhere; }
}
@media (max-width: 880px) { .mobile-nav { margin-left: auto; } }
.mobile-nav nav .button { display: flex; align-items: center; justify-content: center; min-height: 50px; padding: 0 22px; margin-top: 8px; }

/* articles */
.article-header-inner { display: flex; flex-direction: column; align-items: flex-start; }
.article-header-inner > a { display: inline-flex; font-size: .875rem; font-weight: 600; color: #9fe3dc; margin-bottom: 18px; }
.article-header-inner > a:hover { color: #fff; }
.article-header-inner .eyebrow { margin-bottom: 4px; }
.article-body h2, .article-body h3 { color: var(--ink); }

.prose--large p, .prose--large { font-size: clamp(1.0625rem, 1rem + .3vw, 1.1875rem); line-height: 1.8; color: var(--text); }
.prose--large p:first-child { font-size: clamp(1.1875rem, 1.05rem + .6vw, 1.4rem); line-height: 1.6; color: var(--ink); font-weight: 450; }
.prose--large p { max-width: 62ch; }
.session-step { padding-right: clamp(20px, 3vw, 36px); }
.r4-booking-aside .r4-card .r4-kicker { margin-bottom: 8px; }

/* ==========================================================================
   R7 — layout system pass: one type scale, one spacing rhythm, no empty gaps
   ========================================================================== */
:root { --header-h: 104px; --shell: 1200px; }
.shell { width: min(var(--shell), calc(100% - 48px)); }

/* ----- Header: logo sized to the bar, vertically centred, never overhangs ----- */
.announcement-inner { min-height: 38px; }
.header-inner { min-height: var(--header-h); padding-block: 10px; gap: 28px; align-items: center; }
.brand { align-self: center; flex: 0 0 auto; }
.brand-logo { width: 104px; height: auto; display: block; margin: 0; }
.brand-logo img { width: 100%; height: auto; display: block; }
.site-header { box-shadow: 0 1px 0 var(--hair), 0 10px 30px -22px rgba(10,37,64,.4); }
@media (max-width: 1050px) { :root { --header-h: 92px; } .brand-logo { width: 92px; } }
@media (max-width: 640px) { :root { --header-h: 84px; } .brand-logo { width: 80px; } .shell { width: min(var(--shell), calc(100% - 36px)); } }
@media (max-width: 380px) { .brand-logo { width: 72px; } }

/* ----- Type scale (one hierarchy for every page) ----- */
main h1 { font-size: clamp(2.125rem, 1.55rem + 2.5vw, 3.5rem) !important; line-height: 1.1 !important; }
main h2 { font-size: clamp(1.75rem, 1.4rem + 1.5vw, 2.5rem) !important; line-height: 1.15 !important; }
main h3 { font-size: clamp(1.2rem, 1.1rem + .45vw, 1.45rem) !important; line-height: 1.25 !important; }
main h4 { font-size: 1.0625rem !important; line-height: 1.4 !important; }
main .r4-home-hero h1 { font-size: clamp(2.4rem, 1.6rem + 2.9vw, 3.9rem) !important; line-height: 1.06 !important; }
main .page-hero h1 { font-size: clamp(2.25rem, 1.6rem + 2.8vw, 3.75rem) !important; line-height: 1.08 !important; }
main .article-header h1 { font-size: clamp(2.125rem, 1.6rem + 2.3vw, 3.25rem) !important; line-height: 1.1 !important; }
main .article-body h2 { font-size: clamp(1.5rem, 1.3rem + .9vw, 2rem) !important; line-height: 1.2 !important; }
main .lead-doctor-name h3, main .doctor-preview-profile h3, main .subsection-heading h3 { font-size: clamp(1.75rem, 1.4rem + 1.4vw, 2.4rem) !important; line-height: 1.1 !important; }
main .lead-doctor-details h4 { font-size: clamp(1.3rem, 1.15rem + .7vw, 1.75rem) !important; font-family: var(--font-serif); line-height: 1.25 !important; }
main .r4-contact-number, main .stat-tile strong { font-size: clamp(1.5rem, 1.3rem + .8vw, 1.9rem); }

main p, main li, main dd, main address { font-size: 1rem; line-height: 1.7; }
main .r4-page-hero p, main .page-hero-copy > p, main .article-header p { font-size: clamp(1.0625rem, 1rem + .3vw, 1.1875rem) !important; line-height: 1.7 !important; }
main small { font-size: .875rem; }
main .r4-source-note, main .medical-note, main .medical-note p { font-size: .9rem; line-height: 1.65; }

/* ----- Section rhythm ----- */
main > section:not(.r4-page-hero):not(.page-hero):not(.r4-home-hero):not(.article-header) { padding-block: clamp(52px, 6vw, 88px); }
main > section.r4-page-hero { padding-block: clamp(40px, 5vw, 72px) clamp(36px, 4.5vw, 60px); }
main > section.page-hero { min-height: 0; padding-block: clamp(52px, 6vw, 88px) clamp(48px, 5.5vw, 76px); }
main .r4-section-heading, main .section-heading { margin-bottom: clamp(24px, 3.5vw, 40px); max-width: 720px; }
main .r4-section-heading h2, main .section-heading h2 { margin-top: 12px; margin-bottom: 0; }
main .section-heading p, main .r4-section-heading + p { margin-top: 14px; }
main .section-heading p { font-size: 1.0625rem; }

/* ----- No dead space: cards size to their content ----- */
main :is(.guide-card, .service-card, .clinical-service-card, .principle-card, .values-grid article, .question-grid article,
  .info-panel-grid article, .process-cards article, .contact-card, .blog-card, .home-blog-grid article, .authority-signals article,
  .local-search-points article, .care-standard-grid article, .quick-start-grid a, .feature-panel, .page-hero, .editorial-image,
  .patient-priority-flow > *, .hygiene-points article, .doctor-preview-card) { min-height: 0 !important; }
main :is(.guide-card, .service-card, .clinical-service-card, .principle-card, .values-grid article, .question-grid article,
  .info-panel-grid article, .contact-card, .blog-card, .home-blog-grid article, .authority-signals article,
  .local-search-points article, .care-standard-grid article) :is(h2, h3) { margin-top: 14px !important; margin-bottom: 10px !important; }
main :is(.guide-card, .blog-card) > :is(.text-link) { margin-top: auto; }
main :is(.guide-card, .blog-card) > p { margin-bottom: 20px; }
.question-grid article span { margin-bottom: 4px; }
.question-grid article h3 { font-family: var(--font-serif); font-weight: 500 !important; }

/* ----- Two-column layouts: tighter gaps, top aligned ----- */
main :is(.narrative-grid, .explainer-grid, .guide-checklist-grid, .launch-list, .safety-grid, .faq-layout, .opening-cta-inner,
  .page-hero-grid, .split-intro, .care-planning-grid, .service-sources, .quick-start-heading, .team-section-heading,
  .team-preview-heading, .blog-index-heading, .blog-promise-grid, .dialysis-cta-inner, .local-search-grid, .dialysis-authority-grid,
  .hygiene-band-grid, .services-media-grid, .guide-media-grid, .journey-grid, .home-blog-heading) {
  gap: clamp(24px, 4.5vw, 64px) !important; align-items: start !important;
}
main :is(.page-hero-grid, .opening-cta-inner, .dialysis-cta-inner) { align-items: center !important; }
main :is(.team-section-heading, .blog-index-heading, .home-blog-heading, .quick-start-heading) { margin-bottom: clamp(24px, 3.5vw, 40px); }
main :is(.team-section-heading, .team-preview-heading) > p { margin: 0 !important; }
main .team-section-heading h2, main .team-preview-heading h2, main .blog-index-heading h2, main .home-blog-heading h2,
main .quick-start-heading h2, main .blog-promise h2, main .service-sources h2, main .safety-grid h2, main .opening-cta h2,
main .dialysis-cta h2, main .feature-panel h2, main .local-search-grid h2, main .dialysis-authority-grid h2,
main .journey-sticky h2, main .services-media-copy h2, main .guide-media-grid h2, main .source-card h2, main .hygiene-band-grid h2 {
  font-size: clamp(1.75rem, 1.4rem + 1.5vw, 2.5rem) !important; line-height: 1.15 !important; letter-spacing: -.02em !important; margin-top: 12px;
}
main .feature-panel { min-height: 0 !important; padding: clamp(28px, 4vw, 48px); justify-content: flex-start; }
main .feature-panel h2 { margin: 12px 0 16px; }
main .check-list { padding: clamp(24px, 3.5vw, 40px); }
main .check-list > div { padding: 20px 0; }
main .prose--large p, main .prose--large { font-size: clamp(1.125rem, 1.05rem + .4vw, 1.3rem) !important; line-height: 1.7 !important; letter-spacing: -.005em !important; }
main .prose p { margin-bottom: 18px; }
main .r4-split > p, main .large-copy p { font-size: 1.0625rem; margin-bottom: 18px; }

/* ----- Lists, ledgers and rows ----- */
main :is(.protocol-ledger > div, .big-checklist li, .launch-list li, .numbered-question-list li, .plain-check-list li, .quick-facts article) { padding-block: 18px; }
main .protocol-ledger { margin-top: 32px; }
main .protocol-ledger > div { grid-template-columns: 200px 1fr; gap: 32px; }
main .protocol-ledger h3 { font-size: 1.2rem !important; margin: 0 0 8px; }
main .commitment-pairs { margin-top: 32px; }
main .verify-band, main .cost-note, main .disclosure-strip { margin-top: 32px; }
main .values-grid, main .principles-grid, main .question-grid, main .rights-list { margin-top: 32px; }
main .values-grid article { padding: 28px; }
main .values-grid h3 { margin: 22px 0 10px !important; }
main .clinical-service-grid, main .technical-team-grid { margin-top: 28px; }

/* ----- Home hero spacing ----- */
.r4-home-hero { padding-block: clamp(40px, 5.5vw, 80px) clamp(64px, 7vw, 96px); }
.r4-hero-grid { align-items: center; }

/* ----- Contact / locations: head-office block ----- */
.r4-section address { margin-top: 0; }
main .r4-split > div > address + p { margin-top: 0; color: var(--text); }
main .r4-card h3 { overflow-wrap: anywhere; }
main .r4-card h3 { font-size: clamp(1.2rem, 1.1rem + .45vw, 1.4rem) !important; }
main .r4-grid .r4-card p { margin-bottom: 18px; }

/* ----- Quick contact: mobile only (desktop has the header CTA and phone) ----- */


/* ----- Footer: clean 4-column grid, tidy contact + legal rows ----- */
.site-footer .status-pill { display: none; }
.footer-grid { grid-template-columns: 1.5fr 1fr 1fr 1fr; align-items: start; gap: clamp(28px, 4vw, 56px); }
.footer-brand .brand-logo--footer { width: 156px; }
.footer-brand p { margin: 18px 0 0; max-width: 26em; }
.footer-grid > div:not(.footer-brand) { gap: 10px; }
.footer-grid .footer-heading { margin-bottom: 8px; }
.r4-footer-contact {
  margin-top: clamp(32px, 4vw, 52px); padding: 28px 32px; border: 1px solid rgba(255,255,255,.12); border-radius: var(--r-lg);
  background: rgba(255,255,255,.04); grid-template-columns: 1.4fr 1fr 1fr; gap: clamp(20px, 3vw, 44px);
}
.r4-footer-contact > div { display: flex; flex-direction: column; gap: 8px; align-items: flex-start; }
.r4-footer-contact a { margin: 0; }
.r4-footer-contact strong { margin-bottom: 2px; }
.r4-footer-contact address { margin: 0; }
.footer-bottom { margin-top: clamp(24px, 3vw, 36px); padding-top: 22px; align-items: center; flex-wrap: wrap; }
.footer-bottom > div:last-child { flex-wrap: wrap; gap: 8px 24px; align-items: center; }
@media (max-width: 1050px) { .footer-grid { grid-template-columns: 1.2fr 1fr 1fr; } .footer-grid > div:last-child { grid-column: auto; } }
@media (max-width: 760px) {
  .footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .r4-footer-contact { grid-template-columns: minmax(0, 1fr); padding: 22px; }
  .footer-bottom { flex-direction: column; align-items: flex-start; }
}

/* ----- Breadcrumbs ----- */
.crumbs { background: #fff; border-bottom: 1px solid var(--hair); font-size: .8125rem; }
.crumbs ol { list-style: none; margin: 0; padding: 12px 0; display: flex; flex-wrap: wrap; gap: 4px 0; align-items: center; color: var(--muted); }
.crumbs li { display: inline-flex; align-items: center; font-size: .8125rem !important; line-height: 1.4 !important; }
.crumbs li + li::before { content: ""; width: 5px; height: 5px; margin: 0 10px; border-top: 1.5px solid #8ba0ae; border-right: 1.5px solid #8ba0ae; transform: rotate(45deg); }
.crumbs a { color: var(--teal-deep); font-weight: 560; }
.crumbs a:hover { text-decoration: underline; }
.crumbs [aria-current] { color: var(--ink); font-weight: 600; }

/* ----- In-page section menu (long pages) ----- */
.page-menu { position: sticky; top: var(--header-h); z-index: 40; background: rgba(255,255,255,.92); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); border-bottom: 1px solid var(--hair); }
.page-menu .shell { display: flex; align-items: center; gap: 8px; overflow-x: auto; padding-block: 10px; scrollbar-width: none; }
.page-menu .shell::-webkit-scrollbar { display: none; }
.page-menu b { flex: 0 0 auto; font-size: .6875rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); margin-right: 6px; }
.page-menu a { flex: 0 0 auto; padding: 8px 15px; border-radius: 999px; font-size: .8125rem; font-weight: 600; color: var(--ink-soft); background: var(--aqua-50); border: 1px solid transparent; white-space: nowrap; transition: background .2s, color .2s; }
.page-menu a:hover, .page-menu a.is-active { background: var(--ink); color: #fff; }
@media (max-width: 760px) { .page-menu { position: static; } }
html { scroll-padding-top: calc(var(--header-h) + 64px); }
main section[id] { scroll-margin-top: calc(var(--header-h) + 60px); }

/* ----- Sections with a heading followed by a single paragraph (+ actions): two balanced columns ----- */
@media (min-width: 900px) {
  main .r4-section > .shell:has(> .r4-section-heading + p) {
    display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: clamp(32px, 6vw, 88px); row-gap: 20px; align-items: start;
  }
  main .r4-section > .shell:has(> .r4-section-heading + p) > .r4-section-heading { grid-column: 1; grid-row: 1 / span 3; margin: 0; }
  main .r4-section > .shell:has(> .r4-section-heading + p) > :not(.r4-section-heading) { grid-column: 2; margin-block: 0; max-width: 40em; }
  main .r6-cta > .shell:has(> .r4-section-heading + p) { display: block; }
}
/* head-office style splits: address becomes a proper card */
main .r4-split > div:first-child:has(> address) { padding: clamp(22px, 3vw, 32px); border: 1px solid var(--hair); border-radius: var(--r-lg); background: #fff; box-shadow: var(--shadow-1); }
main .r4-split > div:first-child > address + p { margin-top: 12px; }
main .r4-split > div:first-child:has(> address) .text-link { margin-top: 14px; }
main .r4-split > div > .r4-notice { margin: 0 0 14px; }

/* ----- Home hero: balanced columns ----- */
.r4-hero-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.r4-hero-image img { height: clamp(320px, 34vw, 460px); }

/* ----- Services rows ----- */
main .r4-service-row { grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); align-items: start; padding-block: 28px; }
main .r4-service-row h2 { font-size: clamp(1.3rem, 1.15rem + .6vw, 1.55rem) !important; line-height: 1.3 !important; }
main .r4-service-row .r4-kicker { margin-bottom: 8px; }
main .r4-service-row p { margin-bottom: 12px; }

/* ----- Home: hero headline fit, CTA band, team ----- */
main .r4-home-hero h1 { font-size: clamp(2.3rem, 1.5rem + 2.5vw, 3.5rem) !important; }
.r4-hero-grid { grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr); }
.r6-cta .r4-section-heading { margin: 0 auto 16px !important; text-align: center; max-width: none; }
.r6-cta > .shell > p { margin: 0 auto 24px !important; text-align: center; }
.r6-cta .r4-actions { margin-top: 0; }

.r6-team-grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(28px, 5vw, 72px); align-items: center; }
.r6-team-copy h2 { margin: 12px 0 14px; }
.r6-team-copy p { margin: 0 0 24px; color: var(--text); max-width: 34em; }
.r6-team-cards { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.r6-team-cards li { display: flex; flex-direction: column; padding: 10px 10px 18px; border: 1px solid var(--hair); border-radius: var(--r-lg); background: #fff; box-shadow: var(--shadow-1); transition: transform .35s var(--ease), box-shadow .35s var(--ease); }
.r6-team-cards li:hover { transform: translateY(-4px); box-shadow: var(--shadow-2); }
.r6-team-cards img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: center 22%; border-radius: calc(var(--r-lg) - 8px); background: var(--aqua-100); margin-bottom: 14px; }
.r6-team-cards strong { padding-inline: 8px; font-family: var(--font-serif); font-weight: 560; font-size: 1.125rem; color: var(--ink); line-height: 1.25; }
.r6-team-cards span { padding-inline: 8px; margin-top: 4px; font-size: .8125rem; line-height: 1.45; color: var(--muted); }
@media (max-width: 900px) { .r6-team-grid { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 520px) { .r6-team-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; } .r6-team-cards strong { font-size: .95rem; } .r6-team-cards span { font-size: .75rem; } }

/* closing CTA band */
main .r6-cta { background: linear-gradient(135deg, #07566a 0%, #046d79 55%, #0a8f9c 100%) !important; position: relative; overflow: hidden; }
main .r6-cta::before { content: ""; position: absolute; left: -120px; bottom: -160px; width: 420px; height: 420px; border-radius: 50%; background: radial-gradient(circle, rgba(255,255,255,.18), transparent 65%); pointer-events: none; }
main .r6-cta .shell { position: relative; }
main .r6-cta h2 { color: #fff; }
main .r6-cta .eyebrow { color: #c6f1ec; }
main .r6-cta p { color: #dcf3f3; }
main .r6-cta .button--dark { background: #fff; color: var(--ink); box-shadow: 0 14px 28px -14px rgba(0,0,0,.5); }
main .r6-cta .button--dark:hover { background: #e8fbf8; }
main .r6-cta .r4-button-outline { background: transparent; color: #fff; border-color: rgba(255,255,255,.55); }
main .r6-cta .r4-button-outline:hover { background: rgba(255,255,255,.12); border-color: #fff; color: #fff; }

/* ----- legacy card typography: one readable body size, serif card titles ----- */
main :is(.blog-card, .guide-card) h2 { font-size: clamp(1.2rem, 1.1rem + .45vw, 1.4rem) !important; line-height: 1.25 !important; }
main :is(.blog-card > p, .guide-card p, .home-blog-grid p, .authority-signals p, .info-panel-grid p, .principle-card p, .values-grid p,
  .process-cards p, .plain-check-list p, .quick-facts span, .check-list p, .protocol-ledger p, .commitment-pairs .practice p,
  .rights-list p, .cost-note p, .verify-band p, .verify-band li, .hygiene-points p, .blog-promise-points p, .editorial-principles p,
  .leadership-grid article > p, .local-search-points p, .care-standard-grid p, .service-answer-body p, .service-summary-copy,
  .lead-doctor-details > p, .doctor-preview-copy > p, .doctor-preview-copy li, .profile-detail-grid strong, .safety-card p,
  .scope-card p, .session-step p, .stat-tile p, .source-links span, .faq-answer p, .launch-list li, .big-checklist p, .legal-copy p) {
  font-size: .9688rem !important; line-height: 1.65 !important;
}
main .blog-card-meta, main .guide-card > div { font-size: .6875rem; }
main .blog-card:nth-child(1) h2 a, main .blog-card:nth-child(5) h2 a { color: #fff; }

/* ==========================================================================
   FINAL mobile/tablet block — last in file so it wins over everything above
   ========================================================================== */
@media (max-width: 900px) {
  .r4-hero-grid, .r6-team-grid { grid-template-columns: minmax(0, 1fr) !important; }
  .r4-hero-image { order: -1; }
  .r4-hero-image img { height: clamp(220px, 52vw, 380px); }
}
@media (max-width: 760px) {
  .footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .footer-grid > div:last-child { grid-column: 1 / -1; }
  .footer-brand { grid-column: 1 / -1; }
  .footer-grid a[data-ndcc-email], .r4-footer-contact a[data-ndcc-email] { overflow-wrap: normal; word-break: normal; white-space: nowrap; }
  main .r4-service-row { grid-template-columns: minmax(0, 1fr); }
  main .r4-section > .shell:has(> .r4-section-heading + p) { display: block; }
  main .protocol-ledger > div { grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .r4-hero-image::before { inset: 12px -8px -10px 12px; }
  main .r4-home-hero h1 { font-size: clamp(2.1rem, 8.6vw, 2.6rem) !important; }
  .r4-service-strip { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 1050px) { .r4-quick-contact { display: flex; } }

/* R7 article closing CTA */
.article-closing-cta{display:flex!important;align-items:center;justify-content:space-between;gap:24px 32px;flex-wrap:wrap;margin-top:40px!important;padding:28px 32px!important;border-radius:20px;background:linear-gradient(135deg,#0b2f4a,#0e6672)!important;color:#fff!important;border:0!important}
.article-closing-cta strong{display:block;font-family:var(--font-serif);font-size:1.3rem;font-weight:550;color:#fff!important;margin-bottom:6px}
.article-closing-cta p{margin:0!important;color:rgba(255,255,255,.82)!important;font-size:.9688rem!important;max-width:46ch}
.article-closing-cta>div:last-child{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.article-closing-cta .button{background:#fff!important;color:#0b2f4a!important;border-color:#fff!important}
.article-closing-cta .text-link{color:#9ff0e3!important}
.article-closing-cta .button:hover{background:#e6fbf7!important}
.article-closing-cta .button{text-decoration:none!important;border-bottom:0!important}
@media (min-width:761px){.article-closing-cta>div:first-child{flex:1 1 320px}}

@media (max-width:760px){
.article-closing-cta{flex-direction:column;align-items:flex-start;padding:24px 22px!important}
.article-closing-cta>div{flex:0 0 auto!important}
.footer-bottom,.footer-bottom>div{text-align:left!important;justify-content:flex-start!important;align-items:flex-start!important}
.footer-bottom>div:last-child{display:flex;flex-wrap:wrap;gap:6px 18px}
}

/* R7.1 logo sizing and spacing */
:root{--header-h:124px}
.brand-logo{width:128px}
.header-inner{padding-block:12px}
.site-header .brand{padding-inline:0;margin-right:clamp(16px,3vw,48px)}
@media (max-width:1050px){:root{--header-h:108px}.brand-logo{width:112px}}
@media (max-width:640px){:root{--header-h:92px}.brand-logo{width:92px}}
@media (max-width:380px){:root{--header-h:84px}.brand-logo{width:84px}}
.footer-brand{display:flex;flex-direction:column;align-items:flex-start;gap:0}
.footer-brand .brand{display:inline-block;align-self:flex-start;margin:0 0 22px}
.footer-brand .brand-logo--footer{width:200px!important}
.footer-brand p{margin:0!important;max-width:34ch}
@media (max-width:640px){.footer-brand .brand-logo--footer{width:176px!important}}

/* R9: patterns from top dialysis / hospital sites */
.announcement-inner{justify-content:space-between}
.ann-links{display:flex;align-items:center;gap:18px}
.ann-links a+a{padding-left:18px;border-left:1px solid rgba(255,255,255,.28)}
@media (max-width:640px){.ann-links a+a{display:none}}
/* floating contact: desktop pill */
@media (min-width:1051px){.r4-quick-contact{display:flex!important}}
.r4-quick-contact a:nth-child(2){background:#1faa6a}
.r4-quick-contact a:nth-child(2):hover{background:#17935a}
/* glance strip */
.r6-glance{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:-40px;position:relative;z-index:3;background:#fff;border:1px solid var(--hair);border-radius:var(--r-lg,20px);box-shadow:var(--shadow-2,0 18px 40px -20px rgba(8,32,58,.3));overflow:hidden}
.r6-glance>div{display:flex;align-items:center;gap:16px;padding:22px 26px}
.r6-glance>div+div{border-left:1px solid var(--hair)}
.r6-glance b{font-family:var(--font-serif);font-weight:560;font-size:2.25rem;line-height:1;color:var(--teal,#0b7a86);min-width:2.2ch}
.r6-glance span{font-size:.875rem;line-height:1.45;color:var(--text);font-weight:520}
@media (max-width:1050px){.r6-glance{grid-template-columns:repeat(2,minmax(0,1fr))}.r6-glance>div:nth-child(3){border-left:0}.r6-glance>div:nth-child(n+3){border-top:1px solid var(--hair)}}
@media (max-width:520px){.r6-glance{grid-template-columns:1fr;margin-top:-24px}.r6-glance>div+div{border-left:0;border-top:1px solid var(--hair)}.r6-glance>div{padding:16px 20px}.r6-glance b{font-size:1.9rem}}
/* image tiles */
.r4-card.r6-tile{--card-pad:clamp(24px,3vw,36px);padding:0 var(--card-pad) var(--card-pad)!important;overflow:hidden}
.r6-tile-img{display:block;max-width:none!important;width:calc(100% + 2 * var(--card-pad));margin:0 calc(-1 * var(--card-pad)) 22px;height:190px;object-fit:cover;background:#eef6f7}
.r6-tile-img--ill{object-fit:contain;padding:14px;background:linear-gradient(180deg,#f3ecfb,#eef6f7)}
.r4-card.r6-tile::before{z-index:2}
@media (max-width:640px){.r6-tile-img{height:170px}}
/* FAQ */
.r6-faq{background:var(--surface)}
.r6-faq-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.4fr);gap:clamp(32px,5vw,72px);align-items:start}
.r6-faq-copy{position:sticky;top:calc(var(--header-h,124px) + 24px)}
.r6-faq-copy h2{font-size:clamp(1.75rem,1.4rem + 1.5vw,2.5rem)!important;margin:14px 0 16px!important}
.r6-faq-copy p{margin:0 0 22px}
.r6-faq .faq-list{display:grid;gap:12px}
.r6-faq .faq-item{border-radius:16px;padding:0}
.r6-faq .faq-item summary{padding:18px 22px;cursor:pointer;font-size:1.0313rem;list-style:none;display:flex;justify-content:space-between;gap:16px;align-items:center}
.r6-faq .faq-item summary::-webkit-details-marker{display:none}
.r6-faq .faq-item summary::after{content:"+";flex:0 0 28px;height:28px;border-radius:50%;background:var(--aqua-100);color:var(--teal,#0b7a86);display:grid;place-items:center;font-size:1.2rem;line-height:1;transition:transform .2s}
.r6-faq .faq-item[open] summary::after{content:"−"}
.r6-faq .faq-answer{padding:0 22px 20px}
.r6-faq .faq-answer p{margin:0;font-size:.9688rem;line-height:1.7}
@media (max-width:900px){.r6-faq-grid{grid-template-columns:1fr}.r6-faq-copy{position:static}}
