/* ==========================================================================
   EGH — Digital Healthcare Experience
   Design language: Classic × Gen-Z × Clinical × Geometrical × Editorial × Premium
   Tokens --c-* are injected from White-Label settings (base.html).
   ========================================================================== */

/* ---------- 1. Tokens ---------- */
:root {
  --c-primary: #123A56;
  --c-secondary: #148C8C;
  --c-accent: #D8F3EE;
  --c-bg: #F5FAFB;
  --c-ink: #14181F;
  --c-muted: #5B6472;
  --c-alert: #B42318;
  --c-surface: #FFFFFF;
  --c-surface-2: color-mix(in srgb, var(--c-bg) 70%, #fff);
  --c-surface-3: color-mix(in srgb, var(--c-bg) 88%, var(--c-primary));
  --c-line: color-mix(in srgb, var(--c-primary) 14%, transparent);
  --c-line-strong: color-mix(in srgb, var(--c-primary) 30%, transparent);
  --c-on-dark: #F3F1EA;
  --c-on-dark-muted: color-mix(in srgb, #F3F1EA 70%, transparent);
  --c-teal-ink: color-mix(in srgb, var(--c-secondary) 82%, #000);
  --radius: 4px;
  --r-lg: calc(var(--radius) * 3);
  --f-display: "Fraunces", "Iowan Old Style", "Palatino Linotype", Georgia, "Noto Serif Tamil", serif;
  --f-body: "Inter", "Noto Sans Tamil", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --f-mono: "JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;
  --wrap: 1320px;
  --gutter: max(16px, env(safe-area-inset-left), min(5vw, 40px));
  --sec: clamp(64px, 9vw, 136px);
  --ease: cubic-bezier(.2, .7, .2, 1);
  --shadow: 0 1px 0 var(--c-line), 0 18px 40px -24px color-mix(in srgb, var(--c-primary) 35%, transparent);
  --bar-h: 0px;
  --t-hero: clamp(2.6rem, 1.2rem + 6.6vw, 7.2rem);
  --t-h1: clamp(2.2rem, 1.3rem + 4vw, 5rem);
  --t-h2: clamp(1.8rem, 1.1rem + 2.8vw, 3.6rem);
  --t-h3: clamp(1.25rem, 1rem + .9vw, 1.7rem);
  --t-lede: clamp(1.06rem, 1rem + .35vw, 1.3rem);
}
html[data-font="modern"] { --f-display: "Space Grotesk", system-ui, sans-serif; }
html[data-font="classic"] { --f-display: "Playfair Display", Georgia, serif; --f-body: "Source Sans 3", "Noto Sans Tamil", system-ui, sans-serif; }
html[data-font="system"] { --f-display: Georgia, "Times New Roman", serif; --f-body: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; --f-mono: ui-monospace, Menlo, Consolas, monospace; }
html[lang="ta"] { --t-hero: clamp(2rem, 1rem + 4.6vw, 5rem); --t-h1: clamp(1.8rem, 1.1rem + 3vw, 3.8rem); --t-h2: clamp(1.5rem, 1rem + 2vw, 2.8rem); }

/* ---------- 2. Reset / base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-behavior: smooth; }
body {
  margin: 0; background: var(--c-bg); color: var(--c-ink); font-family: var(--f-body);
  font-size: clamp(1rem, .96rem + .2vw, 1.075rem); line-height: 1.62; text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased; overflow-x: clip; min-height: 100vh;
  padding-bottom: calc(var(--bar-h) + env(safe-area-inset-bottom));
}
img, svg, video, iframe, picture { max-width: 100%; display: block; }
img, video { height: auto; }
a { color: inherit; text-underline-offset: .18em; text-decoration-thickness: 1px; }
a:hover { color: var(--c-secondary); }
button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; }
h1, h2, h3, h4 { font-family: var(--f-display); font-weight: 400; line-height: 1.06; letter-spacing: -.02em; margin: 0 0 .5em; text-wrap: balance; overflow-wrap: break-word; }
h1 em, h2 em, h3 em { font-style: italic; color: var(--c-secondary); }
p { margin: 0 0 1em; overflow-wrap: break-word; }
ul, ol { padding-left: 1.2em; }
hr { border: 0; border-top: 1px solid var(--c-line); margin: 2rem 0; }
:focus-visible { outline: 3px solid var(--c-secondary); outline-offset: 3px; border-radius: 2px; }
.dark :focus-visible, .hero :focus-visible, .ftr :focus-visible { outline-color: var(--c-accent); }
[hidden] { display: none !important; }
table { border-collapse: collapse; width: 100%; }
main { display: block; outline: none; }
main:focus { outline: none; }
::selection { background: var(--c-accent); color: var(--c-primary); }

.sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.hp { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); opacity: 0; pointer-events: none; }
.skip { position: fixed; left: 12px; top: -80px; z-index: 1000; background: var(--c-primary); color: #fff; padding: 12px 16px; border-radius: var(--radius); }
.skip:focus { top: 12px; color: #fff; }
.wrap { width: 100%; max-width: var(--wrap); margin-inline: auto; padding-inline: var(--gutter); }
.wrap--narrow { max-width: 860px; }
.sec { padding-block: var(--sec); position: relative; }
.sec--tight { padding-block: clamp(40px, 6vw, 80px); }
.muted { color: var(--c-muted); }
.center { text-align: center; }
.stack > * + * { margin-top: 1rem; }

/* ---------- 3. Type primitives ---------- */
.eyebrow { font-family: var(--f-mono); font-size: .78rem; letter-spacing: .14em; text-transform: uppercase; color: var(--c-secondary); margin: 0 0 1rem; display: flex; align-items: center; gap: .6em; }
.eyebrow::before { content: ""; width: 28px; height: 1px; background: currentColor; flex: none; }
.eyebrow--light { color: var(--c-accent); }
.eyebrow--plain::before { display: none; }
.lede { font-size: var(--t-lede); line-height: 1.55; color: color-mix(in srgb, var(--c-ink) 82%, transparent); max-width: 60ch; }
.display { font-family: var(--f-display); font-size: var(--t-h1); line-height: 1.02; }
.h2 { font-size: var(--t-h2); }
.h3 { font-size: var(--t-h3); }
.num { font-family: var(--f-mono); font-variant-numeric: tabular-nums; }
.idx { font-family: var(--f-mono); font-size: .78rem; color: var(--c-muted); letter-spacing: .08em; }
.prose { max-width: 70ch; }
.prose h2 { font-size: clamp(1.5rem, 1.2rem + 1.2vw, 2.2rem); margin-top: 2em; }
.prose h3 { font-size: 1.35rem; margin-top: 1.6em; }
.prose img { border-radius: var(--radius); margin: 1.5rem 0; }
.prose blockquote { margin: 2rem 0; padding: 0 0 0 1.2rem; border-left: 3px solid var(--c-secondary); font-family: var(--f-display); font-size: 1.35rem; line-height: 1.35; }
.prose table { font-size: .95rem; margin: 1.5rem 0; display: block; overflow-x: auto; }
.prose th, .prose td { border-bottom: 1px solid var(--c-line); padding: .6rem .8rem; text-align: left; }
.prose a { color: var(--c-teal-ink); }

/* ---------- 4. Buttons & controls ---------- */
.btn { --b: var(--c-primary); display: inline-flex; align-items: center; justify-content: center; gap: .55em; min-height: 48px; padding: .75em 1.35em; border-radius: var(--radius); border: 1px solid var(--b); background: var(--b); color: #fff; font-weight: 600; font-size: .98rem; text-decoration: none; line-height: 1.15; transition: transform .2s var(--ease), background .2s, color .2s, box-shadow .2s; white-space: normal; text-align: center; }
.btn:hover { color: #fff; transform: translateY(-1px); box-shadow: 0 10px 24px -14px var(--b); }
.btn--primary { --b: var(--c-primary); }
.btn--teal { --b: var(--c-secondary); }
.btn--accent { background: var(--c-accent); border-color: var(--c-accent); color: var(--c-primary); }
.btn--accent:hover { color: var(--c-primary); }
.btn--outline { background: transparent; color: var(--c-primary); border-color: var(--c-line-strong); }
.btn--outline:hover { color: var(--c-primary); border-color: var(--c-primary); background: var(--c-surface); }
.btn--ghost-light { background: transparent; color: var(--c-on-dark); border-color: color-mix(in srgb, #fff 35%, transparent); }
.btn--ghost-light:hover { background: color-mix(in srgb, #fff 10%, transparent); color: #fff; }
.btn--text { background: none; border-color: transparent; color: var(--c-primary); padding-inline: .6em; text-decoration: underline; text-underline-offset: .25em; }
.btn--text:hover { color: var(--c-secondary); box-shadow: none; }
.btn--sm { min-height: 44px; padding: .55em 1em; font-size: .92rem; }
.btn--lg { min-height: 56px; padding: 1em 1.7em; font-size: 1.05rem; }
.btn--block { width: 100%; }
.btn .ic { flex: none; }
.link-arrow { display: inline-flex; align-items: center; gap: .45em; font-weight: 600; text-decoration: none; color: var(--c-primary); border-bottom: 1px solid var(--c-line-strong); padding-bottom: 2px; }
.link-arrow:hover { border-color: currentColor; }
.link-arrow .ic { transition: transform .25s var(--ease); }
.link-arrow:hover .ic { transform: translateX(4px); }
.dark .link-arrow, .link-arrow--light { color: var(--c-on-dark); border-color: color-mix(in srgb, #fff 30%, transparent); }
.icon-btn { display: inline-grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; border: 1px solid transparent; background: transparent; color: inherit; flex: none; }
.icon-btn:hover { background: color-mix(in srgb, currentColor 8%, transparent); }
.linklike { background: none; border: 0; padding: 0; color: inherit; text-decoration: underline; text-underline-offset: .2em; font: inherit; min-height: 24px; }
.chip { display: inline-flex; align-items: center; gap: .4em; padding: .3em .75em; border-radius: 999px; border: 1px solid var(--c-line-strong); font-size: .84rem; line-height: 1.3; text-decoration: none; background: var(--c-surface); }
.chip--teal { background: color-mix(in srgb, var(--c-secondary) 12%, #fff); border-color: transparent; color: var(--c-teal-ink); }
.chip--accent { background: var(--c-accent); border-color: transparent; color: var(--c-primary); }
.chips { display: flex; flex-wrap: wrap; gap: .5rem; list-style: none; padding: 0; margin: 0; }
.status { display: inline-flex; align-items: center; gap: .45em; font-size: .86rem; font-weight: 600; }
.status::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--c-muted); box-shadow: 0 0 0 3px color-mix(in srgb, currentColor 15%, transparent); }
.status--open { color: #117a45; } .status--open::before { background: #1aa361; }
.status--later { color: #8a5a00; } .status--later::before { background: #d99a00; }
.status--closed { color: var(--c-muted); }
.demo-badge { display: inline-block; font-family: var(--f-mono); font-size: .68rem; letter-spacing: .1em; text-transform: uppercase; padding: .15em .55em; border: 1px dashed currentColor; color: #8a5a00; background: #fff7e0; border-radius: 2px; vertical-align: middle; margin-left: .4em; }

/* ---------- 5. Ribbon, flash, preview, crumbs ---------- */
.preview-bar { background: #3b2a00; color: #ffe8a3; padding: 10px var(--gutter); font-size: .9rem; text-align: center; }
.preview-bar a { color: #fff; }
.ribbon { background: var(--c-primary); color: var(--c-on-dark); font-size: .9rem; }
.ribbon p { margin: 0; padding: 10px var(--gutter); display: flex; gap: .6em; align-items: center; justify-content: center; flex-wrap: wrap; text-align: center; }
.ribbon a { color: var(--c-accent); font-weight: 600; }
.ribbon--important { background: #5c1a14; }
.ribbon--notice { background: var(--c-secondary); }
.flash { max-width: var(--wrap); margin: 16px auto 0; padding-inline: var(--gutter); }
.flash__item { padding: 12px 16px; border-left: 3px solid var(--c-secondary); background: var(--c-surface); margin: 0 0 8px; }
.flash__item--error { border-color: var(--c-alert); }
.crumbs { padding-top: 18px; font-size: .85rem; color: var(--c-muted); }
.crumbs ol { list-style: none; display: flex; flex-wrap: wrap; gap: .3em; margin: 0; padding: 0; }
.crumbs li + li::before { content: "/"; margin-right: .3em; opacity: .5; }
.crumbs a { text-decoration: none; }
.crumbs a:hover { text-decoration: underline; }
.is-home .crumbs { display: none; }

/* ---------- 6. Header / navigation ---------- */
.hdr { position: sticky; top: 0; z-index: 60; background: color-mix(in srgb, var(--c-bg) 92%, transparent); backdrop-filter: saturate(1.4) blur(12px); -webkit-backdrop-filter: saturate(1.4) blur(12px); border-bottom: 1px solid var(--c-line); transition: background .35s var(--ease), color .35s, border-color .35s; }
.hdr__bar { max-width: var(--wrap); margin-inline: auto; padding: 10px var(--gutter); display: flex; align-items: center; gap: 12px; min-height: 68px; }
.hdr--overlay { background: transparent; border-color: transparent; color: var(--c-on-dark); backdrop-filter: none; -webkit-backdrop-filter: none; }
.hdr--overlay.is-solid, .hdr--overlay.is-open, .hdr--overlay:focus-within:has(.mega:not([hidden])) { background: color-mix(in srgb, var(--c-bg) 95%, transparent); color: var(--c-ink); border-color: var(--c-line); backdrop-filter: saturate(1.4) blur(12px); -webkit-backdrop-filter: saturate(1.4) blur(12px); }
.brandmark { display: flex; align-items: center; gap: 10px; text-decoration: none; color: inherit; min-width: 0; flex: 0 1 auto; margin-right: auto; }
@media (min-width: 1400px) { .brandmark { flex: none; max-width: 230px; } .hdr__bar { gap: 6px; } }
@media (min-width: 1400px) and (max-width: 1559px) { .hdr__search { display: none !important; } }
.brandmark:hover { color: inherit; }
.brandmark__mark { width: 40px; height: 40px; flex: none; }
.brandmark__text { display: flex; flex-direction: column; line-height: 1.1; min-width: 0; }
.brandmark__text strong { font-family: var(--f-display); font-weight: 500; font-size: 1.12rem; letter-spacing: -.01em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.brandmark__text small { font-family: var(--f-mono); font-size: .64rem; letter-spacing: .1em; text-transform: uppercase; opacity: .7; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.brandmark__logo { height: 40px; width: auto; }
.brandmark__logo--light { display: none; }
.hdr--overlay:not(.is-solid):not(.is-open) .brandmark__logo--light { display: block; }
.hdr--overlay:not(.is-solid):not(.is-open) .brandmark__logo--light ~ * , .hdr--overlay:not(.is-solid):not(.is-open) .brandmark__logo--dark:has(+ .brandmark__logo--light) { display: none; }
.hdr__actions { display: flex; align-items: center; gap: 4px; flex: none; }
.lang { margin: 0; }
.lang__btn { min-height: 44px; min-width: 44px; padding: 0 .7em; border: 1px solid currentColor; border-color: color-mix(in srgb, currentColor 30%, transparent); background: none; border-radius: 999px; font-size: .85rem; font-weight: 600; }
.lang__btn:hover { border-color: currentColor; }
.hdr__cta { display: none; }
.burger { display: inline-flex; flex-direction: column; gap: 6px; width: 22px; }
.burger i { display: block; height: 1.5px; background: currentColor; transition: transform .3s var(--ease); }
.burger i:last-child { width: 70%; margin-left: auto; }
.hdr.is-open .burger i:first-child { transform: translateY(3.75px) rotate(45deg); }
.hdr.is-open .burger i:last-child { width: 100%; transform: translateY(-3.75px) rotate(-45deg); }

/* mobile drawer (default) */
.hdr.is-open { backdrop-filter: none !important; -webkit-backdrop-filter: none !important; background: var(--c-bg) !important; }
.nav { position: fixed; inset: 0; top: var(--nav-top, 68px); background: var(--c-bg); color: var(--c-ink); overflow-y: auto; overscroll-behavior: contain; padding: 12px var(--gutter) calc(120px + env(safe-area-inset-bottom)); clip-path: inset(0 0 0 100%); visibility: hidden; transition: clip-path .38s var(--ease), visibility .38s; z-index: 59; }
.hdr.is-open .nav { clip-path: inset(0); visibility: visible; }
.nav__list { list-style: none; margin: 0; padding: 0; }
.nav__item { border-bottom: 1px solid var(--c-line); }
.nav__link { display: flex; width: 100%; align-items: center; justify-content: space-between; padding: 16px 0; min-height: 56px; background: none; border: 0; text-decoration: none; font-family: var(--f-display); font-size: 1.45rem; text-align: left; }
.nav__chev { width: 10px; height: 10px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(45deg); transition: transform .25s; margin-left: .5em; }
.nav__trigger[aria-expanded="true"] .nav__chev { transform: rotate(-135deg); }
.mega__inner { padding: 0 0 18px; }
.mega__intro { display: none; }
.mega__grid { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.mega__grid a { display: grid; grid-template-columns: auto 1fr; column-gap: 10px; align-items: baseline; padding: 10px 0; text-decoration: none; min-height: 44px; }
.mega__grid a > strong { font-weight: 600; grid-column: 2; }
.mega__grid a > small { grid-column: 2; color: var(--c-muted); font-size: .85rem; }
.mega__grid a > .ic, .mega__grid a > .mega__idx { grid-row: span 2; color: var(--c-secondary); }
.mega__grid a:not(:has(.ic, .mega__idx)) { grid-template-columns: 1fr; }
.mega__grid a:not(:has(.ic, .mega__idx)) > * { grid-column: 1; }
.mega__idx { font-family: var(--f-mono); font-size: .75rem; }
.nav__mobile-extra { margin-top: 24px; }
.nav__search { display: flex; border: 1px solid var(--c-line-strong); border-radius: var(--radius); background: var(--c-surface); }
.nav__search input { flex: 1; min-width: 0; border: 0; background: none; padding: 12px 14px; font-size: 16px; }
.nav__emergency { margin-top: 18px; font-size: .92rem; color: var(--c-alert); display: flex; gap: .5em; align-items: center; }
.hdr__search { display: none; }

@media (min-width: 640px) { .hdr__cta { display: inline-flex; } .hdr__search { display: inline-grid; } }
@media (min-width: 1400px) {
  .hdr__menu { display: none; }
  .nav { position: static; transform: none; clip-path: none; visibility: visible; background: none; color: inherit; overflow: visible; padding: 0; margin-inline: auto; }
  .nav__list { display: flex; gap: 2px; }
  .nav__item { border: 0; position: static; }
  .nav__link { font-family: var(--f-body); font-size: .92rem; font-weight: 500; padding: 10px 10px; white-space: nowrap; min-height: 44px; border-radius: var(--radius); }
  .nav__link:hover, .nav__trigger[aria-expanded="true"] { background: color-mix(in srgb, currentColor 7%, transparent); color: inherit; }
  .nav__chev { width: 7px; height: 7px; }
  .nav__mobile-extra { display: none; }
  .mega { position: absolute; left: 0; right: 0; top: 100%; background: var(--c-bg); color: var(--c-ink); border-top: 1px solid var(--c-line); border-bottom: 1px solid var(--c-line); box-shadow: 0 40px 60px -40px color-mix(in srgb, var(--c-primary) 50%, transparent); }
  .mega__inner { max-width: var(--wrap); margin-inline: auto; padding: 36px var(--gutter) 40px; display: grid; grid-template-columns: 280px 1fr; gap: 48px; }
  .mega__intro { display: block; border-right: 1px solid var(--c-line); padding-right: 32px; }
  .mega__lede { font-family: var(--f-display); font-size: 1.35rem; line-height: 1.3; }
  .mega__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 4px 28px; }
  .mega__grid a { border-bottom: 1px solid var(--c-line); padding: 12px 0; }
  .mega__grid a:hover strong { color: var(--c-secondary); }
}

/* ---------- 7. Hero ---------- */
.hdr--overlay ~ main .hero:first-child { margin-top: calc(-1 * var(--hdr-h, 68px)); }
.hero { position: relative; min-height: min(100svh, 980px); display: flex; align-items: flex-end; color: var(--c-on-dark); background: var(--c-primary); overflow: hidden; isolation: isolate; }
.hero__media, .hero__media video, .hero__media picture, .hero__media img, .hero__media .ph { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.hero__media { z-index: -3; }
.hero__media .ph svg { width: 100%; height: 100%; }
.hero::before { content: ""; position: absolute; inset: 0; z-index: -2; background: linear-gradient(180deg, color-mix(in srgb, var(--c-primary) 55%, transparent) 0%, color-mix(in srgb, var(--c-primary) 30%, transparent) 38%, color-mix(in srgb, var(--c-primary) 92%, transparent) 100%), radial-gradient(90% 60% at 80% 20%, color-mix(in srgb, var(--c-secondary) 35%, transparent), transparent 70%); }
.hero__motion { position: absolute; inset: 0; z-index: -1; pointer-events: none; color: var(--c-on-dark); opacity: .8; }
.hero__motion svg { width: 100%; height: 100%; }
.hero__inner { width: 100%; max-width: var(--wrap); margin-inline: auto; padding: calc(120px + 4vh) var(--gutter) clamp(28px, 6vh, 64px); display: grid; gap: 28px; }
.hero__title { font-size: var(--t-hero); line-height: .98; letter-spacing: -.035em; margin: 0; max-width: 14ch; }
.hero__title em { color: var(--c-accent); }
.hero__lede { font-size: var(--t-lede); max-width: 46ch; color: var(--c-on-dark-muted); margin: 0; }
.hero__ctas { display: flex; flex-wrap: wrap; gap: 12px; }
.hero__foot { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 16px; border-top: 1px solid color-mix(in srgb, #fff 18%, transparent); padding-top: 18px; }
.hero__signal { display: flex; flex-wrap: wrap; gap: 10px 22px; font-size: .9rem; color: var(--c-on-dark-muted); margin: 0; padding: 0; list-style: none; }
.hero__signal a { color: var(--c-on-dark); text-decoration: none; }
.hero__controls { display: flex; gap: 8px; }
.hero__controls .icon-btn { border: 1px solid color-mix(in srgb, #fff 30%, transparent); color: #fff; }
.hero--page { min-height: auto; align-items: stretch; }
.hero--page .hero__inner { padding-top: 60px; }
@media (min-width: 900px) { .hero__inner { grid-template-columns: 1.4fr .6fr; align-items: end; } .hero__head { grid-column: 1 / -1; } .hero__foot { grid-column: 1 / -1; } }

/* motion geometry animations */
.geo-draw { stroke-dasharray: 1200; stroke-dashoffset: 1200; animation: geoDraw 7s var(--ease) forwards, geoFloat 16s ease-in-out 7s infinite alternate; }
.geo-spin { transform-origin: center; transform-box: fill-box; animation: geoSpin 60s linear infinite; }
.geo-pulse { transform-origin: center; transform-box: fill-box; animation: geoPulse 5s ease-in-out infinite; }
.geo-vector { stroke-dasharray: 6 10; animation: geoDash 12s linear infinite; }
@keyframes geoDraw { to { stroke-dashoffset: 0; } }
@keyframes geoFloat { from { transform: translateY(0); } to { transform: translateY(-14px); } }
@keyframes geoSpin { to { transform: rotate(360deg); } }
@keyframes geoPulse { 0%, 100% { opacity: .35; transform: scale(1); } 50% { opacity: .9; transform: scale(1.06); } }
@keyframes geoDash { to { stroke-dashoffset: -320; } }
.scanline { position: absolute; left: 0; right: 0; height: 1px; top: 30%; background: linear-gradient(90deg, transparent, var(--c-accent), transparent); opacity: .5; animation: scan 9s ease-in-out infinite; }
@keyframes scan { 0%, 100% { top: 22%; } 50% { top: 78%; } }

/* ---------- 8. Page hero (inner pages) ---------- */
.phero { position: relative; padding: clamp(32px, 6vw, 72px) 0 clamp(36px, 6vw, 80px); overflow: hidden; }
.phero__grid { display: grid; gap: 32px; align-items: end; }
.phero__title { font-size: var(--t-h1); margin: 0; }
.phero__lede { margin-top: 1.2rem; }
.phero__aside { position: relative; }
.phero__aside .pic, .phero__aside .ph { aspect-ratio: 4 / 3; border-radius: var(--radius); overflow: hidden; }
.phero__aside img { width: 100%; height: 100%; object-fit: cover; }
.phero__frame { position: absolute; inset: -12px 12px 12px -12px; border: 1px solid var(--c-line-strong); pointer-events: none; }
.phero__geo { position: absolute; right: -80px; top: -60px; width: 420px; height: 420px; color: var(--c-secondary); opacity: .22; pointer-events: none; }
.phero__meta { display: flex; flex-wrap: wrap; gap: 8px 20px; margin-top: 1.4rem; font-size: .92rem; color: var(--c-muted); }
.phero--dark { background: var(--c-primary); color: var(--c-on-dark); }
.phero--dark .lede { color: var(--c-on-dark-muted); }
.phero--dark .phero__geo { color: var(--c-accent); }
@media (min-width: 900px) { .phero__grid { grid-template-columns: 1.3fr .7fr; gap: 64px; } .phero__grid--solo { grid-template-columns: 1fr; } }

/* ---------- 9. Discovery band ---------- */
.discover { background: var(--c-surface); border-bottom: 1px solid var(--c-line); }
.discover__list { list-style: none; margin: 0; padding: 0 var(--gutter); display: grid; grid-auto-flow: column; grid-auto-columns: minmax(158px, 1fr); overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; max-width: var(--wrap); margin-inline: auto; }
.discover__list::-webkit-scrollbar { display: none; }
.discover__list li { scroll-snap-align: start; border-right: 1px solid var(--c-line); }
.discover__list li:first-child { border-left: 1px solid var(--c-line); }
.discover__list a { display: grid; gap: 10px; padding: 22px 18px 20px; text-decoration: none; height: 100%; position: relative; min-height: 132px; }
.discover__list a::after { content: ""; position: absolute; left: 18px; right: 18px; bottom: 0; height: 3px; background: var(--c-accent); transform: scaleX(0); transform-origin: left; transition: transform .35s var(--ease); }
.discover__list a:hover::after, .discover__list a:focus-visible::after { transform: scaleX(1); }
.discover__list .ic { color: var(--c-secondary); }
.discover__list strong { font-family: var(--f-display); font-weight: 500; font-size: 1.15rem; line-height: 1.15; }
.discover__list small { color: var(--c-muted); font-size: .82rem; line-height: 1.35; }

/* ---------- 10. Ticker ---------- */
.ticker { background: var(--c-accent); color: var(--c-primary); overflow: hidden; border-block: 1px solid color-mix(in srgb, var(--c-primary) 20%, transparent); position: relative; }
.ticker__track { display: flex; width: max-content; animation: tick var(--tick-dur, 60s) linear infinite; }
.ticker:hover .ticker__track, .ticker:focus-within .ticker__track, .ticker.is-paused .ticker__track { animation-play-state: paused; }
.ticker__list { display: flex; list-style: none; margin: 0; padding: 0; }
.ticker__list li { display: flex; align-items: center; gap: 18px; padding: 14px 18px; white-space: nowrap; font-family: var(--f-display); font-size: clamp(1rem, .9rem + .5vw, 1.3rem); }
.ticker__list li::after { content: ""; width: 8px; height: 8px; border: 1.5px solid currentColor; border-radius: 50%; }
.ticker__list a { text-decoration: none; }
.ticker__kind { font-family: var(--f-mono); font-size: .68rem; letter-spacing: .12em; text-transform: uppercase; opacity: .7; }
.ticker__pause { position: absolute; right: 6px; top: 50%; transform: translateY(-50%); background: var(--c-accent); z-index: 2; }
@keyframes tick { to { transform: translateX(-50%); } }

/* ---------- 11. Section head ---------- */
.shead { display: grid; gap: 18px; margin-bottom: clamp(32px, 5vw, 64px); }
.shead__title { font-size: var(--t-h2); margin: 0; max-width: 18ch; }
.shead__body { max-width: 52ch; color: var(--c-muted); margin: 0; }
@media (min-width: 900px) { .shead--split { grid-template-columns: 1.2fr .8fr; align-items: end; } }
.dark { background: var(--c-primary); color: var(--c-on-dark); }
.dark .shead__body, .dark .muted { color: var(--c-on-dark-muted); }
.dark .eyebrow { color: var(--c-accent); }
.dark a:hover { color: var(--c-accent); }
.surface { background: var(--c-surface); }
.ivory-2 { background: var(--c-surface-2); }

/* ---------- 12. Pain map ---------- */
.painmap { overflow: hidden; }
.painmap__grid { display: grid; gap: 40px; align-items: center; }
.painmap__stage { position: relative; max-width: 340px; width: 100%; margin-inline: auto; }
.painmap__toggle { display: inline-flex; border: 1px solid color-mix(in srgb, currentColor 30%, transparent); border-radius: 999px; padding: 3px; margin-bottom: 16px; }
.painmap__toggle button { min-height: 40px; padding: 0 18px; border-radius: 999px; border: 0; background: none; font-weight: 600; font-size: .9rem; }
.painmap__toggle button[aria-pressed="true"] { background: var(--c-accent); color: var(--c-primary); }
.body-svg { width: 100%; height: auto; overflow: visible; }
.body-svg .silhouette { fill: color-mix(in srgb, currentColor 7%, transparent); stroke: color-mix(in srgb, currentColor 45%, transparent); stroke-width: 1.2; }
.body-svg .grid line { stroke: color-mix(in srgb, currentColor 12%, transparent); stroke-width: .6; }
.body-svg .zone { fill: color-mix(in srgb, var(--c-secondary) 12%, transparent); stroke: var(--c-secondary); stroke-width: 1.2; cursor: pointer; transition: fill .2s, stroke-width .2s; outline: none; }
.body-svg .zone:hover, .body-svg .zone:focus-visible, .body-svg .zone.is-active { fill: color-mix(in srgb, var(--c-accent) 70%, transparent); stroke: var(--c-accent); stroke-width: 2.2; }
.body-svg .zone-dot { fill: var(--c-accent); pointer-events: none; }
.body-svg .axis { stroke: color-mix(in srgb, currentColor 30%, transparent); stroke-dasharray: 2 5; }
.body-svg text { font-family: var(--f-mono); font-size: 7px; fill: color-mix(in srgb, currentColor 60%, transparent); letter-spacing: .08em; }
.region-list { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin: 18px 0 0; padding: 0; }
.region-list button, .region-list a { min-height: 44px; padding: 0 16px; border-radius: 999px; border: 1px solid color-mix(in srgb, currentColor 30%, transparent); background: none; font-size: .92rem; text-decoration: none; display: inline-flex; align-items: center; }
.region-list button:hover, .region-list a:hover, .region-list .is-active { background: var(--c-accent); color: var(--c-primary); border-color: var(--c-accent); }
.painmap__hint { font-family: var(--f-mono); font-size: .78rem; color: var(--c-on-dark-muted); margin-top: 14px; }
@media (min-width: 900px) { .painmap__grid { grid-template-columns: 1fr 1fr; gap: 64px; } }

/* ---------- 13. Indexed rows (conditions, clinicians, services) ---------- */
.rows { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--c-line-strong); }
.row { border-bottom: 1px solid var(--c-line); }
.row > a, .row > .row__in { display: grid; grid-template-columns: 44px 1fr auto; gap: 6px 16px; align-items: center; padding: 20px 0; text-decoration: none; position: relative; min-height: 64px; }
.row > a::before { content: ""; position: absolute; left: 0; bottom: -1px; height: 2px; width: 0; background: var(--c-secondary); transition: width .45s var(--ease); }
.row > a:hover::before, .row > a:focus-visible::before { width: 100%; }
.row__idx { font-family: var(--f-mono); font-size: .78rem; color: var(--c-muted); align-self: start; padding-top: .4em; }
.row__title { font-family: var(--f-display); font-size: clamp(1.35rem, 1.05rem + 1.3vw, 2.3rem); line-height: 1.1; margin: 0; }
.row__sub { grid-column: 2; color: var(--c-muted); font-size: .95rem; margin: 0; }
.row__phrase { font-style: italic; }
.row__go { width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--c-line-strong); display: grid; place-items: center; transition: background .25s, color .25s, transform .3s var(--ease); grid-row: 1 / span 2; grid-column: 3; }
.row > a:hover .row__go { background: var(--c-primary); color: #fff; transform: rotate(-45deg); }
.row__meta { grid-column: 2; display: flex; flex-wrap: wrap; gap: 6px; }
.dark .row, .dark .rows { border-color: color-mix(in srgb, #fff 16%, transparent); }
.dark .row__sub, .dark .row__idx { color: var(--c-on-dark-muted); }
.dark .row__go { border-color: color-mix(in srgb, #fff 30%, transparent); }
.dark .row > a:hover .row__go { background: var(--c-accent); color: var(--c-primary); }
@media (min-width: 900px) {
  .row > a, .row > .row__in { grid-template-columns: 70px minmax(0, 1.1fr) minmax(0, 1fr) 48px; }
  .row__sub { grid-column: 3; }
  .row__meta { grid-column: 3; }
  .row__go { grid-column: 4; }
}
.split-sticky { display: grid; gap: 40px; }
@media (min-width: 1000px) { .split-sticky { grid-template-columns: .8fr 1.6fr; gap: 72px; } .split-sticky > :first-child { position: sticky; top: 110px; align-self: start; } }

/* clinician rows with portrait */
.crow > a { grid-template-columns: 64px 1fr 44px; }
.crow__photo { width: 64px; height: 80px; overflow: hidden; border-radius: var(--radius); background: var(--c-surface-3); }
.crow__photo img, .crow__photo .ph, .crow__photo .pic { width: 100%; height: 100%; object-fit: cover; }
.crow__photo .ph svg { width: 100%; height: 100%; }
@media (min-width: 900px) { .crow > a { grid-template-columns: 88px minmax(0, 1fr) minmax(0, 1fr) 48px; } .crow__photo { width: 88px; height: 110px; } }

/* ---------- 14. Journey path ---------- */
.journey__path { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; position: relative; counter-reset: step; }
.journey__step { position: relative; padding: 0 0 36px 64px; }
.journey__step::before { counter-increment: step; content: counter(step, decimal-leading-zero); position: absolute; left: 0; top: 0; width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--c-line-strong); display: grid; place-items: center; font-family: var(--f-mono); font-size: .8rem; background: var(--c-bg); z-index: 1; }
.journey__step::after { content: ""; position: absolute; left: 22px; top: 44px; bottom: 0; width: 1px; background: repeating-linear-gradient(to bottom, var(--c-secondary) 0 4px, transparent 4px 9px); }
.journey__step:last-child::after { display: none; }
.journey__step h3 { font-size: var(--t-h3); margin: 8px 0 6px; }
.journey__step p { color: var(--c-muted); margin: 0; }
.journey__step.is-in::before { background: var(--c-accent); border-color: var(--c-accent); }
@media (min-width: 1000px) {
  .journey__path { grid-template-columns: repeat(var(--steps, 5), minmax(0, 1fr)); gap: 28px; }
  .journey__step { padding: 72px 0 0; }
  .journey__step::after { left: 44px; right: -28px; top: 22px; bottom: auto; width: auto; height: 1px; background: repeating-linear-gradient(to right, var(--c-secondary) 0 4px, transparent 4px 9px); }
}

/* ---------- 15. Leadership (cinematic split) ---------- */
.leader { display: grid; gap: 0; align-items: stretch; position: relative; }
.leader + .leader { margin-top: clamp(48px, 8vw, 110px); }
.leader__media { position: relative; min-height: 420px; overflow: hidden; background: var(--c-surface-3); }
.leader__media .pic, .leader__media img, .leader__media .ph { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.leader__media .ph svg { width: 100%; height: 100%; }
.leader__media::after { content: ""; position: absolute; inset: 18px; border: 1px solid color-mix(in srgb, #fff 40%, transparent); pointer-events: none; }
.leader__tag { position: absolute; left: 18px; bottom: 18px; z-index: 2; writing-mode: vertical-rl; transform: rotate(180deg); font-family: var(--f-mono); font-size: .72rem; letter-spacing: .2em; text-transform: uppercase; color: #fff; background: color-mix(in srgb, var(--c-primary) 70%, transparent); padding: 12px 6px; }
.leader__body { padding: clamp(28px, 5vw, 64px) 0; display: flex; flex-direction: column; justify-content: center; }
.leader__quote { font-family: var(--f-display); font-size: clamp(1.6rem, 1.1rem + 2vw, 3rem); line-height: 1.15; letter-spacing: -.02em; margin: 0 0 1.2rem; }
.leader__quote::before { content: "“"; display: block; font-size: 3em; line-height: .6; color: var(--c-secondary); height: .45em; }
.leader__name { font-size: var(--t-h3); margin: 0; }
.leader__role { font-family: var(--f-mono); font-size: .8rem; letter-spacing: .1em; text-transform: uppercase; color: var(--c-muted); margin: .3rem 0 1.2rem; }
.leader__quals { list-style: none; padding: 0; margin: 0 0 1.2rem; display: flex; flex-wrap: wrap; gap: 8px; }
@media (min-width: 900px) {
  .leader { grid-template-columns: 1fr 1fr; gap: 64px; }
  .leader--flip .leader__media { order: 2; }
  .leader__media { min-height: 620px; }
}
.dark .leader__role { color: var(--c-on-dark-muted); }

/* ---------- 16. Rails (team, stories) ---------- */
.rail { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(220px, 72%); gap: 16px; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 12px; scrollbar-width: thin; overscroll-behavior-x: contain; }
.rail > * { scroll-snap-align: start; }
@media (min-width: 640px) { .rail { grid-auto-columns: minmax(240px, 40%); } }
@media (min-width: 1000px) { .rail { grid-auto-columns: minmax(240px, 23%); } }
.portrait { position: relative; display: block; text-decoration: none; }
.portrait__img { aspect-ratio: 3 / 4; overflow: hidden; background: var(--c-surface-3); border-radius: var(--radius); }
.portrait__img img, .portrait__img .pic, .portrait__img .ph { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease); }
.portrait__img .ph svg { width: 100%; height: 100%; }
.portrait:hover .portrait__img img { transform: scale(1.04); }
.portrait__cap { padding: 12px 2px 0; }
.portrait__cap strong { display: block; font-family: var(--f-display); font-weight: 500; font-size: 1.2rem; line-height: 1.2; }
.portrait__cap small { color: var(--c-muted); font-size: .88rem; }
.rail-nav { display: flex; gap: 8px; }
.rail-nav button { width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--c-line-strong); background: none; display: grid; place-items: center; }

/* ---------- 17. Atlas ---------- */
.atlas__grid { display: grid; gap: 28px; }
.atlas__map { position: relative; aspect-ratio: 1 / 1; max-height: 620px; border: 1px solid color-mix(in srgb, currentColor 18%, transparent); overflow: hidden; background: radial-gradient(circle at 50% 50%, color-mix(in srgb, var(--c-secondary) 16%, transparent), transparent 70%); }
.atlas__map svg.atlas__lines { position: absolute; inset: 0; width: 100%; height: 100%; color: currentColor; opacity: .5; }
.pin { position: absolute; transform: translate(-50%, -50%); display: grid; place-items: center; text-decoration: none; z-index: 2; }
.pin__dot { width: 18px; height: 18px; border-radius: 50%; background: var(--c-accent); border: 3px solid var(--c-primary); box-shadow: 0 0 0 6px color-mix(in srgb, var(--c-accent) 30%, transparent); transition: transform .25s var(--ease); }
.pin__label { position: absolute; top: calc(100% + 6px); white-space: nowrap; font-size: .76rem; font-family: var(--f-mono); background: var(--c-primary); color: #fff; padding: 3px 8px; border-radius: 2px; pointer-events: none; }
.pin:hover .pin__dot, .pin:focus-visible .pin__dot, .pin.is-active .pin__dot { transform: scale(1.35); }
.atlas__list { list-style: none; margin: 0; padding: 0; border-top: 1px solid color-mix(in srgb, currentColor 18%, transparent); }
.atlas__list li { border-bottom: 1px solid color-mix(in srgb, currentColor 18%, transparent); }
.atlas__list a { display: grid; grid-template-columns: 1fr auto; gap: 4px 12px; padding: 16px 0; text-decoration: none; }
.atlas__list strong { font-family: var(--f-display); font-weight: 500; font-size: 1.3rem; }
.atlas__list small { grid-column: 1; opacity: .75; }
.atlas__list .status { grid-column: 1; }
@media (min-width: 1000px) { .atlas__grid { grid-template-columns: 1.1fr .9fr; gap: 56px; align-items: start; } }
.view-switch { display: inline-flex; border: 1px solid var(--c-line-strong); border-radius: 999px; padding: 3px; }
.view-switch button { min-height: 40px; padding: 0 18px; border: 0; border-radius: 999px; background: none; font-weight: 600; font-size: .9rem; }
.view-switch button[aria-pressed="true"] { background: var(--c-primary); color: #fff; }

/* ---------- 18. Story feature ---------- */
.story-feature { display: grid; gap: 32px; }
.story-feature__quote { font-family: var(--f-display); font-size: clamp(1.7rem, 1.1rem + 2.6vw, 3.6rem); line-height: 1.12; letter-spacing: -.02em; margin: 0; }
.story-feature__who { font-family: var(--f-mono); font-size: .8rem; letter-spacing: .1em; text-transform: uppercase; }
.story-steps { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; border-top: 1px solid var(--c-line); }
.story-steps li { display: grid; grid-template-columns: 110px 1fr; gap: 16px; padding: 16px 0; border-bottom: 1px solid var(--c-line); }
.story-steps b { font-family: var(--f-mono); font-size: .75rem; letter-spacing: .1em; text-transform: uppercase; color: var(--c-secondary); font-weight: 500; padding-top: .25em; }
.disclaimer { font-size: .88rem; color: var(--c-muted); border-left: 2px solid var(--c-line-strong); padding-left: 12px; }
.governance { display: grid; gap: 24px; border: 1px dashed var(--c-line-strong); padding: clamp(24px, 4vw, 48px); }
@media (min-width: 900px) { .story-feature { grid-template-columns: 1.3fr .7fr; gap: 64px; align-items: end; } .governance { grid-template-columns: 1fr 1fr; } }

/* ---------- 19. Video / magazine ---------- */
.mag { display: grid; gap: 28px; }
.mag__lead .vframe { aspect-ratio: 16 / 9; }
.mag__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; border-top: 1px solid var(--c-line); }
.mag__list li { border-bottom: 1px solid var(--c-line); }
.mag__list a { display: grid; grid-template-columns: 120px 1fr; gap: 14px; padding: 14px 0; text-decoration: none; align-items: center; }
.mag__list .thumb { aspect-ratio: 16 / 10; overflow: hidden; border-radius: var(--radius); background: var(--c-surface-3); position: relative; }
.mag__list .thumb img { width: 100%; height: 100%; object-fit: cover; }
@media (min-width: 1000px) { .mag { grid-template-columns: 1.5fr 1fr; gap: 48px; } }
.vframe { position: relative; overflow: hidden; background: #000; border-radius: var(--radius); aspect-ratio: 16 / 9; width: 100%; }
.vframe iframe, .vframe video, .vframe > img, .vframe .pic, .vframe .ph { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; object-fit: cover; }
.vframe__play { position: absolute; inset: 0; display: grid; place-items: center; background: linear-gradient(0deg, color-mix(in srgb, #000 55%, transparent), transparent 60%); border: 0; color: #fff; width: 100%; }
.vframe__play span { width: 72px; height: 72px; border-radius: 50%; background: var(--c-accent); color: var(--c-primary); display: grid; place-items: center; transition: transform .3s var(--ease); }
.vframe__play:hover span { transform: scale(1.08); }
.vframe__title { position: absolute; left: 16px; right: 16px; bottom: 14px; text-align: left; font-family: var(--f-display); font-size: clamp(1.05rem, .9rem + .8vw, 1.6rem); line-height: 1.2; }
.vframe__fallback { position: absolute; inset: 0; display: grid; place-content: center; gap: 10px; text-align: center; padding: 20px; color: #fff; background: var(--c-primary); }
.transcript { margin-top: 16px; }
.transcript summary { cursor: pointer; font-weight: 600; min-height: 44px; display: flex; align-items: center; }

/* ---------- 20. Facilities / numbered lists ---------- */
.numlist { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; counter-reset: n; }
.numlist > li { counter-increment: n; display: grid; grid-template-columns: 56px 1fr; gap: 14px; padding: 22px 0; border-top: 1px solid var(--c-line); }
.numlist > li::before { content: counter(n, decimal-leading-zero); font-family: var(--f-mono); font-size: .8rem; color: var(--c-secondary); padding-top: .3em; }
.numlist h3 { font-size: 1.3rem; margin: 0 0 .3rem; }
.numlist p { margin: 0; color: var(--c-muted); }
@media (min-width: 900px) { .numlist--2 { grid-template-columns: 1fr 1fr; column-gap: 48px; } }
.dark .numlist > li { border-color: color-mix(in srgb, #fff 16%, transparent); }
.dark .numlist p { color: var(--c-on-dark-muted); }

/* ---------- 21. Home care / radiology split ---------- */
.duo { display: grid; }
.duo__half { padding: clamp(40px, 7vw, 96px) var(--gutter); position: relative; overflow: hidden; }
.duo__half:first-child { background: var(--c-surface); }
.duo__half:last-child { background: var(--c-secondary); color: #fff; }
.duo__half:last-child .eyebrow { color: var(--c-accent); }
.duo__half:last-child .muted { color: color-mix(in srgb, #fff 80%, transparent); }
.duo__half h2 { font-size: var(--t-h2); }
.duo__half ul { padding-left: 0; list-style: none; margin: 1.5rem 0; }
.duo__half li { padding: 10px 0; border-bottom: 1px solid color-mix(in srgb, currentColor 16%, transparent); display: flex; gap: 10px; align-items: baseline; }
.duo__half li a { text-decoration: none; }
@media (min-width: 900px) { .duo { grid-template-columns: 1fr 1fr; } .duo__half { padding-inline: clamp(24px, 5vw, 80px); } }

/* ---------- 22. Events (date blocks) ---------- */
.evlist { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--c-line-strong); }
.evlist li { border-bottom: 1px solid var(--c-line); }
.evlist a { display: grid; grid-template-columns: 76px 1fr; gap: 16px; padding: 20px 0; text-decoration: none; align-items: start; }
.evdate { display: grid; text-align: center; border: 1px solid var(--c-line-strong); border-radius: var(--radius); padding: 8px 4px; line-height: 1; }
.evdate b { font-family: var(--f-display); font-size: 2rem; font-weight: 400; }
.evdate small { font-family: var(--f-mono); font-size: .7rem; letter-spacing: .1em; text-transform: uppercase; margin-top: 4px; }
.evlist h3 { font-size: clamp(1.2rem, 1rem + .8vw, 1.7rem); margin: 0 0 4px; }
.evlist p { margin: 0; color: var(--c-muted); font-size: .95rem; }
@media (min-width: 900px) { .evlist a { grid-template-columns: 96px 1fr 240px; gap: 28px; } .evlist .evmeta { text-align: right; } }

/* ---------- 23. Trust band ---------- */
.stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); border-top: 1px solid var(--c-line-strong); }
.stat { padding: 24px 16px 24px 0; border-bottom: 1px solid var(--c-line); }
.stat b { display: block; font-family: var(--f-display); font-weight: 300; font-size: clamp(2.6rem, 1.8rem + 3vw, 5rem); line-height: 1; letter-spacing: -.04em; font-variant-numeric: tabular-nums; }
.stat span { display: block; margin-top: 8px; color: var(--c-muted); font-size: .92rem; }
.stat small { display: block; font-family: var(--f-mono); font-size: .68rem; color: var(--c-muted); margin-top: 4px; letter-spacing: .05em; }
.proof { display: grid; gap: 24px; margin-top: 40px; }
@media (min-width: 900px) { .proof { grid-template-columns: repeat(3, 1fr); } }
.proof__item { border-left: 2px solid var(--c-secondary); padding-left: 16px; }

/* ---------- 24. FAQ accordion ---------- */
.faq { border-top: 1px solid var(--c-line-strong); }
.faq details { border-bottom: 1px solid var(--c-line); }
.faq summary { list-style: none; cursor: pointer; padding: 20px 48px 20px 0; position: relative; font-family: var(--f-display); font-size: clamp(1.1rem, 1rem + .5vw, 1.4rem); line-height: 1.3; min-height: 44px; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: ""; position: absolute; right: 8px; top: 50%; width: 14px; height: 14px; margin-top: -7px; background: linear-gradient(currentColor, currentColor) center / 14px 1.5px no-repeat, linear-gradient(currentColor, currentColor) center / 1.5px 14px no-repeat; transition: transform .3s var(--ease); }
.faq details[open] summary::after { transform: rotate(45deg); }
.faq .faq__a { padding: 0 0 22px; color: color-mix(in srgb, var(--c-ink) 80%, transparent); max-width: 70ch; }
.dark .faq, .dark .faq details { border-color: color-mix(in srgb, #fff 18%, transparent); }
.dark .faq .faq__a { color: var(--c-on-dark-muted); }

/* ---------- 25. Final CTA ---------- */
.final { position: relative; overflow: hidden; }
.final__title { font-size: var(--t-hero); line-height: .98; letter-spacing: -.035em; max-width: 13ch; margin: 0 0 32px; }
.final__opts { display: grid; gap: 0; border-top: 1px solid color-mix(in srgb, #fff 20%, transparent); }
.final__opts a { display: grid; grid-template-columns: 44px 1fr auto; gap: 14px; align-items: center; padding: 22px 0; border-bottom: 1px solid color-mix(in srgb, #fff 20%, transparent); text-decoration: none; font-family: var(--f-display); font-size: clamp(1.25rem, 1rem + 1vw, 1.9rem); }
.final__opts a small { display: block; font-family: var(--f-body); font-size: .9rem; color: var(--c-on-dark-muted); }
.final__opts .ic-wrap { width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; border: 1px solid color-mix(in srgb, #fff 30%, transparent); }
.final__opts a:hover .ic-wrap { background: var(--c-accent); color: var(--c-primary); border-color: var(--c-accent); }
@media (min-width: 1000px) { .final__grid { display: grid; grid-template-columns: 1.2fr .8fr; gap: 64px; align-items: end; } }

/* Next-step band (end of pages) */
.nextstep { background: var(--c-surface); border-top: 1px solid var(--c-line); }
.nextstep__grid { display: grid; gap: 24px; align-items: center; }
.nextstep__title { font-size: var(--t-h2); margin: 0; }
.nextstep__actions { display: flex; flex-wrap: wrap; gap: 12px; }
@media (min-width: 900px) { .nextstep__grid { grid-template-columns: 1.3fr 1fr; } .nextstep__actions { justify-content: flex-end; } }

/* ---------- 26. Detail layouts ---------- */
.detail { display: grid; gap: 40px; }
.detail__main { min-width: 0; }
.detail__aside { min-width: 0; }
.aside-card { border: 1px solid var(--c-line-strong); background: var(--c-surface); padding: 24px; border-radius: var(--radius); }
.aside-card + .aside-card { margin-top: 16px; }
.aside-card h2, .aside-card h3 { font-size: 1.3rem; }
@media (min-width: 1000px) { .detail { grid-template-columns: minmax(0, 1fr) 360px; gap: 72px; } .detail__aside > .sticky { position: sticky; top: 100px; } }
.block { padding: clamp(28px, 4vw, 48px) 0; border-top: 1px solid var(--c-line); }
.block:first-child { border-top: 0; padding-top: 0; }
.block__head { display: flex; gap: 16px; align-items: baseline; margin-bottom: 18px; }
.block__head .idx { flex: none; }
.block__head h2 { font-size: clamp(1.5rem, 1.2rem + 1.1vw, 2.2rem); margin: 0; }
.ticks { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.ticks li { position: relative; padding-left: 28px; }
.ticks li::before { content: ""; position: absolute; left: 2px; top: .55em; width: 12px; height: 7px; border-left: 2px solid var(--c-secondary); border-bottom: 2px solid var(--c-secondary); transform: rotate(-45deg); }
.ticks--2 { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 10px 28px; }
.steps { list-style: none; padding: 0; margin: 0; counter-reset: s; }
.steps li { counter-increment: s; position: relative; padding: 0 0 20px 52px; }
.steps li::before { content: counter(s); position: absolute; left: 0; top: -2px; width: 34px; height: 34px; border-radius: 50%; background: var(--c-primary); color: #fff; display: grid; place-items: center; font-family: var(--f-mono); font-size: .8rem; }
.steps li::after { content: ""; position: absolute; left: 16.5px; top: 34px; bottom: 4px; width: 1px; background: var(--c-line-strong); }
.steps li:last-child::after { display: none; }
.redflag { border: 1px solid color-mix(in srgb, var(--c-alert) 45%, transparent); background: color-mix(in srgb, var(--c-alert) 6%, #fff); padding: 20px 22px; border-radius: var(--radius); }
.redflag h2, .redflag h3 { color: var(--c-alert); font-family: var(--f-body); font-weight: 700; font-size: 1.05rem; display: flex; gap: .5em; align-items: center; }
.redflag ul { margin: .5rem 0 0; }
.note { border-left: 3px solid var(--c-secondary); background: color-mix(in srgb, var(--c-secondary) 7%, #fff); padding: 14px 18px; border-radius: 0 var(--radius) var(--radius) 0; font-size: .95rem; }
.expand summary { cursor: pointer; font-weight: 600; min-height: 44px; display: inline-flex; align-items: center; gap: .5em; color: var(--c-teal-ink); }
.plain-mode .clinical-only { display: none; }
.readmode { display: inline-flex; gap: 4px; border: 1px solid var(--c-line-strong); border-radius: 999px; padding: 3px; }
.readmode button { min-height: 38px; padding: 0 14px; border: 0; background: none; border-radius: 999px; font-size: .88rem; font-weight: 600; }
.readmode button[aria-pressed="true"] { background: var(--c-primary); color: #fff; }
.review-meta { display: flex; flex-wrap: wrap; gap: 6px 18px; font-size: .88rem; color: var(--c-muted); margin-top: 1rem; }
.review-meta b { color: var(--c-ink); font-weight: 600; }

/* Links list (related) */
.linklist { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--c-line); }
.linklist li { border-bottom: 1px solid var(--c-line); }
.linklist a { display: flex; justify-content: space-between; gap: 12px; align-items: center; padding: 14px 0; text-decoration: none; min-height: 48px; }
.linklist a small { display: block; color: var(--c-muted); font-size: .85rem; }

/* Mini person line */
.person { display: grid; grid-template-columns: 56px 1fr; gap: 12px; align-items: center; text-decoration: none; }
.person__img { width: 56px; height: 56px; border-radius: 50%; overflow: hidden; background: var(--c-surface-3); }
.person__img img, .person__img .ph, .person__img .pic { width: 100%; height: 100%; object-fit: cover; }
.person__img .ph svg { width: 100%; height: 100%; }
.person strong { display: block; line-height: 1.2; }
.person small { color: var(--c-muted); }
.people { list-style: none; padding: 0; margin: 0; display: grid; gap: 14px; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); }

/* Hours table */
.hours { width: 100%; font-size: .95rem; }
.hours th, .hours td { padding: 9px 0; border-bottom: 1px solid var(--c-line); text-align: left; font-weight: 400; }
.hours td { text-align: right; font-variant-numeric: tabular-nums; }
.hours tr.is-today th, .hours tr.is-today td { font-weight: 700; }
.hours tr.is-today th::after { content: " · today"; font-weight: 400; color: var(--c-secondary); font-size: .85em; }

/* Gallery */
.gallery { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.gallery figure { margin: 0; overflow: hidden; border-radius: var(--radius); background: var(--c-surface-3); }
.gallery figure:first-child { grid-column: span 2; }
.gallery img, .gallery .pic { width: 100%; height: 100%; object-fit: cover; aspect-ratio: 4 / 3; }
.gallery figcaption { font-size: .8rem; padding: 6px 8px; color: var(--c-muted); background: var(--c-surface); }
@media (min-width: 900px) { .gallery { grid-template-columns: repeat(4, minmax(0, 1fr)); } .gallery figure:first-child { grid-column: span 2; grid-row: span 2; } .gallery figure:first-child img { aspect-ratio: auto; } }

/* Map embed */
.mapframe { position: relative; aspect-ratio: 4 / 3; background: var(--c-surface-3); border-radius: var(--radius); overflow: hidden; }
.mapframe iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.mapframe__load { position: absolute; inset: 0; display: grid; place-content: center; gap: 10px; text-align: center; padding: 16px; }

/* ---------- 27. Filters / command bar ---------- */
.filterbar { display: grid; gap: 10px; padding: 14px; border: 1px solid var(--c-line-strong); border-radius: var(--radius); background: var(--c-surface); margin-bottom: 28px; }
.filterbar .field { margin: 0; }
.filterbar__actions { display: flex; gap: 8px; align-items: end; }
@media (min-width: 900px) { .filterbar { grid-template-columns: 2fr 1fr 1fr auto; align-items: end; } }
.tabs { display: flex; gap: 4px; overflow-x: auto; border-bottom: 1px solid var(--c-line-strong); margin-bottom: 28px; scrollbar-width: none; }
.tabs::-webkit-scrollbar { display: none; }
.tabs a, .tabs button { flex: none; padding: 12px 16px; min-height: 48px; border: 0; background: none; text-decoration: none; font-weight: 600; color: var(--c-muted); border-bottom: 2px solid transparent; margin-bottom: -1px; white-space: nowrap; }
.tabs [aria-current="page"], .tabs [aria-selected="true"] { color: var(--c-primary); border-color: var(--c-primary); }
.results-count { font-family: var(--f-mono); font-size: .8rem; color: var(--c-muted); margin-bottom: 12px; }
.empty { border: 1px dashed var(--c-line-strong); padding: clamp(24px, 5vw, 48px); text-align: center; color: var(--c-muted); border-radius: var(--radius); }
.empty h3 { color: var(--c-ink); }

/* ---------- 28. Forms ---------- */
.form { display: grid; gap: 18px; }
.form__row { display: grid; gap: 18px; }
@media (min-width: 700px) { .form__row--2 { grid-template-columns: 1fr 1fr; } .form__row--3 { grid-template-columns: repeat(3, 1fr); } }
.field { display: grid; gap: 6px; margin: 0; min-width: 0; }
.field > label, .field legend, .field__label { font-weight: 600; font-size: .95rem; }
.field__help { font-size: .85rem; color: var(--c-muted); }
.field input:not([type=checkbox]):not([type=radio]), .field select, .field textarea, .input {
  width: 100%; min-height: 50px; padding: 12px 14px; font-size: 16px; line-height: 1.3; border: 1px solid var(--c-line-strong); border-radius: var(--radius); background: var(--c-surface); color: var(--c-ink); transition: border-color .2s, box-shadow .2s; }
.field textarea { min-height: 110px; resize: vertical; }
.field input:focus, .field select:focus, .field textarea:focus { border-color: var(--c-secondary); box-shadow: 0 0 0 3px color-mix(in srgb, var(--c-secondary) 20%, transparent); outline: none; }
.field--error input, .field--error select, .field--error textarea { border-color: var(--c-alert); }
.field__error { color: var(--c-alert); font-size: .88rem; display: flex; gap: .4em; align-items: flex-start; margin: 0; }
.field__error::before { content: "!"; flex: none; width: 18px; height: 18px; border-radius: 50%; background: var(--c-alert); color: #fff; font-weight: 700; font-size: .75rem; display: grid; place-items: center; margin-top: 1px; }
.form-errors { border: 1px solid var(--c-alert); background: color-mix(in srgb, var(--c-alert) 6%, #fff); padding: 14px 16px; border-radius: var(--radius); color: var(--c-alert); }
fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }
.choices { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; padding: 0; margin: 0; }
.choices > div, .choices label { position: relative; }
.choices input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.choices label { display: inline-flex; align-items: center; min-height: 46px; padding: 0 16px; border: 1px solid var(--c-line-strong); border-radius: 999px; background: var(--c-surface); font-size: .94rem; cursor: pointer; }
.choices input:checked + span, .choices label:has(input:checked) { background: var(--c-primary); color: #fff; border-color: var(--c-primary); }
.choices label:has(input:focus-visible) { outline: 3px solid var(--c-secondary); outline-offset: 2px; }
.check { display: flex; gap: 10px; align-items: flex-start; font-size: .92rem; line-height: 1.45; cursor: pointer; }
.check input { width: 20px; height: 20px; margin: 2px 0 0; flex: none; accent-color: var(--c-secondary); }
.check--light { color: var(--c-on-dark-muted); }
.form-msg { margin: 0; font-size: .9rem; min-height: 1em; }
.form-msg.is-error { color: var(--c-alert); }
.form-msg.is-ok { color: #117a45; }
.formpanel { background: var(--c-surface); border: 1px solid var(--c-line-strong); padding: clamp(20px, 4vw, 40px); border-radius: var(--radius); }
.progress { display: flex; gap: 6px; margin-bottom: 20px; list-style: none; padding: 0; counter-reset: p; }
.progress li { flex: 1; height: 4px; background: var(--c-line); border-radius: 2px; }
.progress li.is-done { background: var(--c-secondary); }

/* ---------- 29. Footer ---------- */
.ftr { background: var(--c-primary); color: var(--c-on-dark); position: relative; overflow: hidden; padding-top: clamp(56px, 8vw, 110px); }
.ftr a { text-decoration: none; }
.ftr a:hover { color: var(--c-accent); }
.ftr__geo { position: absolute; top: 0; left: 0; right: 0; height: 220px; color: color-mix(in srgb, var(--c-accent) 40%, transparent); pointer-events: none; }
.ftr__geo svg { width: 100%; height: 100%; }
.ftr__top { display: grid; gap: 40px; position: relative; padding-bottom: 48px; border-bottom: 1px solid color-mix(in srgb, #fff 14%, transparent); }
.ftr__title { font-size: clamp(2rem, 1.3rem + 3.4vw, 4.4rem); line-height: 1.02; max-width: 16ch; margin: 0 0 28px; }
.ftr__cta { display: flex; flex-wrap: wrap; gap: 12px; }
.ftr__contact p { margin: 0 0 8px; color: var(--c-on-dark-muted); }
.ftr__contact a { display: inline-flex; gap: 8px; align-items: center; color: var(--c-on-dark); min-height: 32px; }
.ftr__social { list-style: none; padding: 0; margin: 16px 0 0; display: flex; gap: 6px; }
.ftr__social a { width: 44px; height: 44px; border: 1px solid color-mix(in srgb, #fff 20%, transparent); border-radius: 50%; display: grid; place-items: center; }
.ftr__cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 32px; padding-block: 48px; }
.ftr__h { font-family: var(--f-mono); font-size: .75rem; letter-spacing: .14em; text-transform: uppercase; color: var(--c-accent); margin-bottom: 14px; font-weight: 400; }
.ftr__col ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 4px; }
.ftr__col li a { display: inline-block; padding: 5px 0; color: var(--c-on-dark-muted); }
.ftr__news { grid-column: 1 / -1; }
.news { display: grid; gap: 10px; max-width: 460px; }
.news__row { display: flex; gap: 8px; }
.news__row input { flex: 1; min-width: 0; min-height: 44px; padding: 10px 12px; font-size: 16px; border-radius: var(--radius); border: 1px solid color-mix(in srgb, #fff 25%, transparent); background: color-mix(in srgb, #fff 6%, transparent); color: #fff; }
.news__row input::placeholder { color: color-mix(in srgb, #fff 55%, transparent); }
.news__msg { color: var(--c-accent); margin: 0; font-size: .9rem; }
.ftr__base { border-top: 1px solid color-mix(in srgb, #fff 14%, transparent); padding-block: 24px 32px; font-size: .85rem; color: var(--c-on-dark-muted); }
.ftr__disclaimer { max-width: 90ch; }
.ftr__legal { display: flex; flex-wrap: wrap; gap: 12px 24px; justify-content: space-between; align-items: center; }
.ftr__legal p { margin: 0; }
.ftr__legal ul { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 4px 18px; }
.ftr__legal a, .ftr__legal button { color: var(--c-on-dark-muted); min-height: 32px; }
@media (min-width: 900px) { .ftr__top { grid-template-columns: 1.6fr 1fr; align-items: end; } .ftr__news { grid-column: auto; } }

/* ---------- 30. Action bar (mobile) ---------- */
.actionbar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 70; display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; background: var(--c-primary); color: #fff; padding-bottom: env(safe-area-inset-bottom); border-top: 1px solid color-mix(in srgb, #fff 12%, transparent); transition: transform .3s var(--ease); }
.actionbar a { display: grid; justify-items: center; align-content: center; text-align: center; gap: 2px; padding: 8px 4px; min-height: 58px; text-decoration: none; font-size: .78rem; line-height: 1.15; font-weight: 600; color: #fff; }
.actionbar a:hover { color: var(--c-accent); }
.actionbar__book { background: var(--c-accent); color: var(--c-primary) !important; }
.actionbar.is-hidden { transform: translateY(110%); }
body { --bar-h: 58px; }
@media (min-width: 900px) { .actionbar { display: none; } body { --bar-h: 0px; } }

/* ---------- 31. Consent / sheets / prompts ---------- */
.consent { position: fixed; z-index: 90; left: 0; right: 0; bottom: 0; background: var(--c-surface); border-top: 1px solid var(--c-line-strong); box-shadow: 0 -20px 50px -30px color-mix(in srgb, var(--c-primary) 60%, transparent); padding: 18px var(--gutter) calc(18px + env(safe-area-inset-bottom)); max-height: 80vh; overflow-y: auto; }
.consent__inner { max-width: var(--wrap); margin-inline: auto; display: grid; gap: 14px; }
.consent__title { font-family: var(--f-body); font-weight: 700; font-size: 1.05rem; display: flex; gap: .5em; align-items: center; margin: 0 0 6px; }
.consent__text p { margin: 0; font-size: .93rem; color: var(--c-muted); }
.consent__btns { display: flex; flex-wrap: wrap; gap: 8px; }
.consent__btns .btn { flex: 1 1 auto; }
@media (min-width: 900px) { .consent { left: 24px; right: auto; bottom: 24px; max-width: 560px; border: 1px solid var(--c-line-strong); border-radius: var(--radius); } .consent__btns .btn { flex: 0 1 auto; } }
.sheet { border: 0; padding: 0; width: 100%; max-width: 640px; max-height: 88vh; border-radius: var(--r-lg) var(--r-lg) 0 0; margin: auto auto 0; background: var(--c-surface); color: var(--c-ink); box-shadow: 0 -30px 60px -20px rgba(0,0,0,.35); }
.sheet::backdrop { background: color-mix(in srgb, var(--c-primary) 55%, transparent); }
.sheet__body { padding: 20px var(--gutter) calc(20px + env(safe-area-inset-bottom)); display: grid; gap: 14px; overflow-y: auto; max-height: 88vh; }
.sheet__head { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.sheet__head h2 { font-size: 1.5rem; margin: 0; }
.sheet__foot { display: flex; gap: 8px; justify-content: flex-end; flex-wrap: wrap; position: sticky; bottom: 0; background: var(--c-surface); padding-top: 10px; }
@media (min-width: 700px) { .sheet { margin: auto; border-radius: var(--r-lg); } }
.prefs__list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--c-line); }
.prefs__list li { display: flex; justify-content: space-between; gap: 16px; padding: 14px 0; border-bottom: 1px solid var(--c-line); align-items: center; }
.prefs__list p { margin: 4px 0 0; font-size: .88rem; color: var(--c-muted); }
.switch { position: relative; width: 52px; height: 30px; flex: none; }
.switch input { position: absolute; inset: 0; opacity: 0; margin: 0; cursor: pointer; z-index: 1; }
.switch i { position: absolute; inset: 0; border-radius: 999px; background: var(--c-line-strong); transition: background .2s; }
.switch i::after { content: ""; position: absolute; left: 3px; top: 3px; width: 24px; height: 24px; border-radius: 50%; background: #fff; transition: transform .25s var(--ease); box-shadow: 0 1px 3px rgba(0,0,0,.25); }
.switch input:checked + i { background: var(--c-secondary); }
.switch input:checked + i::after { transform: translateX(22px); }
.switch input:focus-visible + i { outline: 3px solid var(--c-secondary); outline-offset: 2px; }
.switch--locked i { background: color-mix(in srgb, var(--c-secondary) 55%, #999); }
.switch--locked i::after { transform: translateX(22px); }
.toast { position: fixed; z-index: 85; top: calc(var(--hdr-h, 68px) + 12px); right: 12px; left: 12px; background: var(--c-surface); border: 1px solid var(--c-line-strong); border-radius: var(--radius); padding: 18px; box-shadow: var(--shadow); animation: toastIn .45s var(--ease); max-height: calc(100vh - 120px); overflow-y: auto; }
@media (min-width: 640px) { .toast { left: auto; width: 360px; right: 20px; } }
.toast__x { position: absolute; right: 6px; top: 6px; }
.toast__title { font-family: var(--f-display); font-size: 1.35rem; margin: 0 0 6px; padding-right: 32px; }
.toast__body { font-size: .9rem; color: var(--c-muted); }
.toast__form { display: grid; gap: 10px; }
.toast__form input[type=email] { min-height: 46px; padding: 10px 12px; font-size: 16px; border: 1px solid var(--c-line-strong); border-radius: var(--radius); width: 100%; }
.toast__actions { display: flex; flex-wrap: wrap; gap: 6px; }
@keyframes toastIn { from { opacity: 0; transform: translateY(-10px); } }
.assist { position: fixed; z-index: 86; left: 0; right: 0; bottom: 0; }
.assist__card { position: relative; background: var(--c-surface); border-top: 1px solid var(--c-line-strong); border-radius: var(--r-lg) var(--r-lg) 0 0; padding: 22px var(--gutter) calc(18px + env(safe-area-inset-bottom)); box-shadow: 0 -30px 60px -30px rgba(0,0,0,.45); max-height: 86vh; overflow-y: auto; animation: sheetUp .45s var(--ease); }
.assist__geo { width: 56px; height: 56px; color: var(--c-line-strong); margin-bottom: 6px; }
.assist__title { font-size: 1.6rem; margin: 0 0 6px; padding-right: 36px; }
.assist__body { color: var(--c-muted); font-size: .95rem; }
.assist__form { display: grid; gap: 12px; }
.assist__form .field input, .assist__form .field select { min-height: 46px; }
.assist__more summary { cursor: pointer; font-size: .9rem; color: var(--c-teal-ink); min-height: 36px; display: flex; align-items: center; }
.assist__more[open] { display: grid; gap: 12px; }
.assist__geo { display: none; }
@media (max-width: 699px) { .assist__card { max-height: 78vh; } .assist__title { font-size: 1.35rem; } .toast__body { display: none; } }
.assist__actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
@media (min-width: 700px) { .assist { left: auto; right: 24px; bottom: 24px; width: 400px; } .assist__card { border: 1px solid var(--c-line-strong); border-radius: var(--r-lg); } }
@keyframes sheetUp { from { transform: translateY(40px); opacity: 0; } }
.welcome { position: fixed; z-index: 55; left: 12px; bottom: calc(var(--bar-h) + 12px + env(safe-area-inset-bottom)); max-width: calc(100vw - 110px); background: var(--c-primary); color: var(--c-on-dark); padding: 10px 44px 10px 14px; border-radius: var(--radius); font-size: .9rem; }
.welcome p { margin: 0; }
.welcome ul { margin: 8px 0 0; padding-left: 1em; }
.welcome a { color: var(--c-accent); }
.welcome .icon-btn { position: absolute; right: 0; top: 0; color: #fff; }

/* ---------- 32. EzhilCare AI ---------- */
.bot { position: fixed; z-index: 80; right: 12px; bottom: calc(var(--bar-h) + 12px + env(safe-area-inset-bottom)); }
.bot__launcher { display: flex; align-items: center; gap: 8px; border: 0; background: var(--c-surface); color: var(--c-primary); padding: 6px 14px 6px 6px; border-radius: 999px; box-shadow: var(--shadow), 0 0 0 1px var(--c-line-strong); font-weight: 600; font-size: .9rem; min-height: 56px; }
.bot__mascot { width: 44px; height: 44px; display: block; flex: none; }
.bot__mascot svg { width: 100%; height: 100%; }
.bot__mascot--sm { width: 36px; height: 36px; color: var(--c-accent); }
.bot__eye { transform-origin: center; transform-box: fill-box; }
.bot__eye--l { animation: blink 5.5s infinite; }
.bot__eye--r { animation: blink 5.5s .08s infinite; }
@keyframes blink { 0%, 92%, 100% { transform: scaleY(1); } 95% { transform: scaleY(.1); } }
.bot__label { display: none; }
@media (min-width: 640px) { .bot__label { display: inline; } .bot { right: 20px; bottom: calc(var(--bar-h) + 20px); } }
.bot__panel { position: fixed; z-index: 95; inset: auto 0 0 0; height: min(86vh, 720px); background: var(--c-surface); border-radius: var(--r-lg) var(--r-lg) 0 0; display: flex; flex-direction: column; box-shadow: 0 -30px 60px -20px rgba(0,0,0,.4); animation: sheetUp .4s var(--ease); padding-bottom: env(safe-area-inset-bottom); }
@media (min-width: 640px) { .bot__panel { inset: auto 20px calc(var(--bar-h) + 90px) auto; width: 400px; height: min(640px, calc(100vh - 140px)); border-radius: var(--r-lg); border: 1px solid var(--c-line-strong); } }
.bot__head { display: flex; align-items: center; gap: 10px; padding: 12px 12px 12px 16px; background: var(--c-primary); color: #fff; border-radius: var(--r-lg) var(--r-lg) 0 0; }
.bot__head h2 { font-family: var(--f-body); font-weight: 700; font-size: 1rem; margin: 0; }
.bot__head p { margin: 0; font-size: .78rem; opacity: .75; }
.bot__head .icon-btn { margin-left: auto; color: #fff; }
.bot__log { flex: 1; overflow-y: auto; padding: 16px; display: flex; flex-direction: column; gap: 10px; overscroll-behavior: contain; }
.msg { max-width: 88%; padding: 10px 14px; border-radius: 14px; font-size: .94rem; line-height: 1.5; white-space: pre-wrap; overflow-wrap: anywhere; }
.msg--bot { background: var(--c-surface-2); border: 1px solid var(--c-line); border-bottom-left-radius: 4px; align-self: flex-start; }
.msg--user { background: var(--c-primary); color: #fff; border-bottom-right-radius: 4px; align-self: flex-end; }
.msg--flag { background: color-mix(in srgb, var(--c-alert) 8%, #fff); border-color: color-mix(in srgb, var(--c-alert) 40%, transparent); }
.msg__ctas { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.msg__ctas a { font-size: .85rem; padding: 6px 12px; border-radius: 999px; background: var(--c-primary); color: #fff; text-decoration: none; min-height: 36px; display: inline-flex; align-items: center; }
.msg__src { display: block; font-family: var(--f-mono); font-size: .65rem; letter-spacing: .08em; text-transform: uppercase; opacity: .55; margin-top: 6px; }
.typing::after { content: "▍"; animation: caret 1s steps(1) infinite; }
@keyframes caret { 50% { opacity: 0; } }
.bot__quick { display: flex; gap: 6px; overflow-x: auto; padding: 0 12px 8px; scrollbar-width: none; flex: none; }
.bot__quick::-webkit-scrollbar { display: none; }
.bot__quick button { flex: none; min-height: 38px; padding: 0 12px; border-radius: 999px; border: 1px solid var(--c-line-strong); background: var(--c-surface); font-size: .84rem; white-space: nowrap; }
.bot__quick button:hover { border-color: var(--c-secondary); color: var(--c-secondary); }
.bot__form { display: flex; gap: 6px; padding: 8px 12px; border-top: 1px solid var(--c-line); flex: none; }
.bot__form input { flex: 1; min-width: 0; min-height: 46px; padding: 10px 12px; font-size: 16px; border: 1px solid var(--c-line-strong); border-radius: 999px; }
.bot__note { font-size: .74rem; color: var(--c-muted); padding: 0 12px 10px; margin: 0; flex: none; }
.bot__leadform { display: grid; gap: 8px; margin-top: 8px; }
.bot__leadform input[type=text], .bot__leadform input[type=tel] { min-height: 42px; padding: 8px 10px; font-size: 16px; border: 1px solid var(--c-line-strong); border-radius: var(--radius); width: 100%; }
body.bot-open .actionbar { transform: translateY(110%); }
body.menu-open .actionbar, body.menu-open .bot, body.menu-open .welcome { display: none; }

/* ---------- 33. Misc components ---------- */
.share { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.share a, .share button { width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--c-line-strong); display: grid; place-items: center; background: var(--c-surface); text-decoration: none; }
.share .like { width: auto; padding: 0 14px; border-radius: 999px; gap: 6px; display: inline-flex; align-items: center; }
.share .like[aria-pressed="true"] { background: var(--c-accent); border-color: var(--c-accent); }
.article-hero { display: grid; gap: 24px; }
.article-hero__img { aspect-ratio: 16 / 9; overflow: hidden; border-radius: var(--radius); background: var(--c-surface-3); }
.article-hero__img img, .article-hero__img .pic, .article-hero__img .ph { width: 100%; height: 100%; object-fit: cover; }
.article-hero__img .ph svg { width: 100%; height: 100%; }
.feature-story { display: grid; gap: 24px; text-decoration: none; }
.feature-story__img { aspect-ratio: 16 / 10; overflow: hidden; border-radius: var(--radius); background: var(--c-surface-3); }
.feature-story__img img, .feature-story__img .pic, .feature-story__img .ph { width: 100%; height: 100%; object-fit: cover; }
.feature-story__img .ph svg { width: 100%; height: 100%; }
.feature-story h2 { font-size: var(--t-h2); }
@media (min-width: 1000px) { .feature-story { grid-template-columns: 1.3fr 1fr; gap: 48px; align-items: end; } }
.maggrid { display: grid; gap: 32px 28px; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }
.entry { display: grid; gap: 12px; text-decoration: none; align-content: start; }
.entry__img { aspect-ratio: 3 / 2; overflow: hidden; border-radius: var(--radius); background: var(--c-surface-3); }
.entry__img img, .entry__img .pic, .entry__img .ph { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease); }
.entry__img .ph svg { width: 100%; height: 100%; }
.entry:hover .entry__img img { transform: scale(1.03); }
.entry h3 { font-size: 1.35rem; margin: 0; }
.entry p { margin: 0; color: var(--c-muted); font-size: .95rem; }
.entry__meta { font-family: var(--f-mono); font-size: .72rem; letter-spacing: .06em; text-transform: uppercase; color: var(--c-muted); display: flex; gap: 10px; flex-wrap: wrap; }
.maggrid .entry:nth-child(5n+1) { grid-column: 1 / -1; }
@media (min-width: 900px) { .maggrid .entry:nth-child(5n+1) { grid-template-columns: 1.2fr 1fr; align-items: center; gap: 28px; } .maggrid .entry:nth-child(5n+1) h3 { font-size: 2rem; } }
.social-embeds { display: grid; gap: 16px; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }
.embed { border: 1px solid var(--c-line); border-radius: var(--radius); overflow: hidden; background: var(--c-surface); display: flex; flex-direction: column; }
.embed__frame { position: relative; min-height: 420px; background: var(--c-surface-2); }
.embed__frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.embed__fallback { position: absolute; inset: 0; display: grid; align-content: end; padding: 16px; gap: 8px; }
.embed__fallback img, .embed__fallback .pic, .embed__fallback .ph { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; }
.embed__fallback .ph svg { width: 100%; height: 100%; }
.embed__fallback > *:not(img):not(.pic):not(.ph) { position: relative; z-index: 1; }
.embed__fallback .btn { justify-self: start; }
.embed__cap { padding: 12px 14px; font-size: .9rem; }
.ph { display: block; width: 100%; height: 100%; min-height: 60px; background: var(--c-surface-2); overflow: hidden; }
.ph svg { width: 100%; height: 100%; }
.pic { display: block; }
.pic img { width: 100%; height: 100%; object-fit: cover; }
.unit-map { display: grid; gap: 0; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); border-top: 1px solid var(--c-line); border-left: 1px solid var(--c-line); }
.unit-map > * { border-right: 1px solid var(--c-line); border-bottom: 1px solid var(--c-line); padding: 24px; text-decoration: none; display: grid; gap: 8px; align-content: start; min-height: 170px; }
.unit-map strong { font-family: var(--f-display); font-weight: 500; font-size: 1.35rem; }
.unit-map small { color: var(--c-muted); }
.timeline { list-style: none; margin: 0; padding: 0; border-left: 1px solid var(--c-line-strong); }
.timeline li { position: relative; padding: 0 0 28px 28px; }
.timeline li::before { content: ""; position: absolute; left: -6px; top: 6px; width: 11px; height: 11px; border-radius: 50%; background: var(--c-bg); border: 2px solid var(--c-secondary); }
.timeline b { font-family: var(--f-mono); font-size: .8rem; color: var(--c-secondary); font-weight: 500; }
.timeline h3 { font-size: 1.3rem; margin: 4px 0; }
.orgtree { list-style: none; padding: 0; margin: 0; display: grid; gap: 12px; }
.orgtree ul { list-style: none; margin: 8px 0 0 18px; padding: 0 0 0 16px; border-left: 1px dashed var(--c-line-strong); display: grid; gap: 6px; }
.orgtree strong { font-weight: 600; }
.values { display: grid; gap: 0; border-top: 1px solid var(--c-line); }
.values > div { padding: 22px 0; border-bottom: 1px solid var(--c-line); display: grid; gap: 6px; }
@media (min-width: 900px) { .values { grid-template-columns: repeat(3, 1fr); column-gap: 32px; } }
.thanks { text-align: center; padding-block: clamp(60px, 10vw, 140px); }
.thanks__ref { display: inline-block; font-family: var(--f-mono); font-size: 1.1rem; letter-spacing: .06em; padding: 10px 18px; border: 1px dashed var(--c-line-strong); border-radius: var(--radius); margin: 12px 0 24px; background: var(--c-surface); }
.navigator { display: grid; gap: 32px; }
.navigator__panel { background: var(--c-surface); border: 1px solid var(--c-line-strong); border-radius: var(--radius); padding: clamp(20px, 4vw, 36px); color: var(--c-ink); min-height: 320px; }
.navigator__panel h2 { font-size: var(--t-h3); }
.navigator__q { display: grid; gap: 14px; }
.scale { display: grid; grid-template-columns: repeat(11, minmax(0, 1fr)); gap: 4px; }
.scale label { display: grid; place-items: center; min-height: 44px; border: 1px solid var(--c-line-strong); border-radius: var(--radius); cursor: pointer; font-family: var(--f-mono); font-size: .85rem; position: relative; }
.scale input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.scale label:has(input:checked) { background: var(--c-primary); color: #fff; }
.scale label:has(input:focus-visible) { outline: 3px solid var(--c-secondary); }
.scale__ends { display: flex; justify-content: space-between; font-size: .8rem; color: var(--c-muted); }
@media (max-width: 400px) { .scale { grid-template-columns: repeat(6, minmax(0, 1fr)); } }
@media (min-width: 1000px) { .navigator { grid-template-columns: 420px 1fr; gap: 56px; align-items: start; } .navigator__body { position: sticky; top: 100px; } }
.skeleton { background: linear-gradient(90deg, var(--c-surface-2), var(--c-surface-3), var(--c-surface-2)); background-size: 200% 100%; animation: skel 1.4s infinite; border-radius: var(--radius); min-height: 1em; }
@keyframes skel { to { background-position: -200% 0; } }
.page-body { padding-bottom: var(--sec); }
.search-big { display: flex; gap: 8px; }
.search-big input { flex: 1; min-width: 0; min-height: 56px; font-size: 1.1rem; padding: 0 16px; border: 1px solid var(--c-line-strong); border-radius: var(--radius); background: var(--c-surface); }
.kv { display: grid; grid-template-columns: auto 1fr; gap: 8px 16px; margin: 0; }
.kv dt { color: var(--c-muted); font-size: .9rem; }
.kv dd { margin: 0; }
.cookie-table { font-size: .92rem; display: block; overflow-x: auto; }
.cookie-table th, .cookie-table td { padding: 10px; border-bottom: 1px solid var(--c-line); text-align: left; vertical-align: top; min-width: 120px; }

/* ---------- 34. Reveal & motion preferences ---------- */
.js .reveal { opacity: 0; transform: translateY(24px); transition: opacity .8s var(--ease), transform .8s var(--ease); }
.js .reveal.is-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; scroll-behavior: auto !important; }
  .js .reveal { opacity: 1; transform: none; }
  .ticker__track { animation: none; flex-wrap: wrap; width: auto; }
  .ticker__list[aria-hidden="true"] { display: none; }
  .geo-draw { stroke-dashoffset: 0; }
  .hero__video { display: none; }
}
.reduce-motion .hero__motion, .reduce-motion .scanline { display: none; }
.reduce-motion .ticker__track { animation: none; }
@media print { .hdr, .actionbar, .bot, .consent, .ftr__geo, .toast, .assist { display: none !important; } body { background: #fff; } }
