/* ============================================================
   Verada shared stylesheet
   Used by: index.html (components only) + all legal pages (full)
   index.html loads this BEFORE its own inline <style>, so the
   homepage's bespoke rules always win on any overlap.
   ============================================================ */

:root {
  --primary: #ae0070;
  --primary-container: #d61a8c;
  --primary-bright: #ff4fa8;
  --secondary: #7f4b85;
  --tertiary: #9c2880;
  --amethyst: #c264c9;
  --pink-glow: #ffafd1;

  --bg: #140510;
  --bg-2: #1c0819;
  --surface: rgba(40, 16, 34, 0.55);
  --surface-solid: #1f0a1b;
  --surface-hi: rgba(58, 24, 48, 0.6);
  --border: rgba(255, 175, 209, 0.12);
  --border-hi: rgba(255, 175, 209, 0.28);
  --text: #fdeef6;
  --text-2: #d9b9cc;
  --text-3: #a67e97;
  --shadow: 0 24px 60px -20px rgba(174, 0, 112, 0.45);
  --shadow-sm: 0 8px 30px -12px rgba(108, 58, 115, 0.55);
  --glass-blur: blur(18px) saturate(140%);
  --grad-brand: linear-gradient(120deg, #ae0070 0%, #9c2880 45%, #7f4b85 100%);
  --grad-brand-bright: linear-gradient(120deg, #ff4fa8 0%, #d61a8c 55%, #bb439b 100%);
  --grad-text: linear-gradient(120deg, #ff8fc4 0%, #ff4fa8 40%, #c264c9 100%);

  --ok: #4ec98a;
  --warn: #ffb347;
  --err: #ff8a8a;
}

[data-theme="light"] {
  --bg: #fff7fa;
  --bg-2: #fbf1f5;
  --surface: rgba(255, 255, 255, 0.7);
  --surface-solid: #ffffff;
  --surface-hi: rgba(255, 255, 255, 0.9);
  --border: rgba(140, 111, 122, 0.16);
  --border-hi: rgba(174, 0, 112, 0.28);
  --text: #1e1a1d;
  --text-2: #58404a;
  --text-3: #8c6f7a;
  --shadow: 0 24px 60px -20px rgba(174, 0, 112, 0.22);
  --shadow-sm: 0 8px 30px -14px rgba(108, 58, 115, 0.25);
  --grad-text: linear-gradient(120deg, #ae0070 0%, #d61a8c 45%, #9c2880 100%);

  --ok: #1d8a56;
  --err: #ba1a1a;
}

/* ---------- Skip link (accessibility, all pages) ---------- */
.skip-link {
  position: absolute; left: -9999px; top: 0; z-index: 10000;
  background: var(--grad-brand-bright); color: #fff;
  padding: 12px 22px; border-radius: 0 0 12px 0;
  font: 700 14px/1 'Plus Jakarta Sans', system-ui, sans-serif;
  text-decoration: none;
}
.skip-link:focus { left: 0; }

/* ============ OPERATING COMPANIES — layout & order ============ */

/* Higher specificity than index.html's inline .sme-grid rules */
.container .sme-grid { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 1000px) { .container .sme-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 700px)  { .container .sme-grid { grid-template-columns: 1fr; } }

/* Display order: Rehab Clinics → Clinical Research → Healthcare IT */
.sme-card.clinic   { order: 1; transition-delay: .08s; }
.sme-card.research { order: 2; transition-delay: .16s; }
.sme-card.tech     { order: 3; transition-delay: .24s; }

/* ============================================================
   LEGAL / DOCUMENT PAGES
   ============================================================ */

.doc-page {
  background: var(--bg);
  color: var(--text-2);
  font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  font-size: 16.5px;
  line-height: 1.72;
  margin: 0;
  min-height: 100vh;
  -webkit-font-smoothing: antialiased;
}
.doc-page *, .doc-page *::before, .doc-page *::after { box-sizing: border-box; }

.doc-ambient { position: fixed; inset: 0; z-index: 0; pointer-events: none; overflow: hidden; }
.doc-ambient::before {
  content: ''; position: absolute; width: 60vw; height: 60vw; top: -22vw; left: -14vw;
  border-radius: 50%; filter: blur(90px); opacity: 0.42;
  background: radial-gradient(circle, rgba(174, 0, 112, 0.5), transparent 68%);
}
[data-theme="light"] .doc-ambient::before { opacity: 0.22; }

.doc-header {
  position: sticky; top: 0; z-index: 100;
  background: var(--surface);
  backdrop-filter: var(--glass-blur); -webkit-backdrop-filter: var(--glass-blur);
  border-bottom: 1px solid var(--border);
}
.doc-header-inner {
  max-width: 880px; margin: 0 auto; padding: 14px 28px;
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
}
.doc-brand {
  display: inline-flex; align-items: center; gap: 10px;
  font-family: 'Hanken Grotesk', system-ui, sans-serif;
  font-size: 20px; font-weight: 800; letter-spacing: -0.02em;
  color: var(--text); text-decoration: none;
}
.doc-brand .brand-node {
  width: 9px; height: 9px; border-radius: 50%;
  background: var(--primary-bright); box-shadow: 0 0 12px var(--primary-bright);
}
[data-theme="light"] .doc-brand .brand-node { background: var(--primary); box-shadow: 0 0 10px rgba(174,0,112,.55); }
.doc-header-actions { display: flex; align-items: center; gap: 8px; }
.doc-back {
  font-size: 13.5px; font-weight: 600; color: var(--text-2);
  text-decoration: none; padding: 8px 14px; border-radius: 999px; transition: all .2s;
}
.doc-back:hover { color: var(--text); background: var(--surface-hi); }
.doc-theme {
  width: 36px; height: 36px; display: grid; place-items: center;
  background: var(--surface-hi); border: 1px solid var(--border);
  border-radius: 50%; cursor: pointer; font-size: 14px; color: var(--text-2); transition: all .2s;
}
.doc-theme:hover { border-color: var(--border-hi); color: var(--primary-bright); transform: rotate(15deg); }

.doc-wrap { max-width: 880px; margin: 0 auto; padding: 60px 28px 90px; position: relative; z-index: 2; }
@media (max-width: 600px) { .doc-wrap { padding: 40px 20px 64px; } .doc-header-inner { padding: 12px 20px; } }

.doc-eyebrow {
  display: inline-flex; align-items: center; gap: 10px;
  font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase;
  color: var(--primary-bright); margin-bottom: 18px;
}
[data-theme="light"] .doc-eyebrow { color: var(--primary); }
.doc-eyebrow .node { width: 7px; height: 7px; border-radius: 50%; background: currentColor; box-shadow: 0 0 12px currentColor; }

.doc-page h1 {
  font-family: 'Hanken Grotesk', system-ui, sans-serif;
  font-size: clamp(32px, 5vw, 48px); line-height: 1.05; letter-spacing: -0.025em;
  color: var(--text); font-weight: 800; margin: 0 0 14px;
}
.doc-updated { color: var(--text-3); font-size: 14px; margin: 0 0 40px; }
.doc-page h2 {
  font-family: 'Hanken Grotesk', system-ui, sans-serif;
  font-size: 24px; line-height: 1.2; letter-spacing: -0.015em;
  color: var(--text); font-weight: 700; margin: 52px 0 16px;
  scroll-margin-top: 90px;
}
.doc-page h3 {
  font-family: 'Hanken Grotesk', system-ui, sans-serif;
  font-size: 17.5px; color: var(--text); font-weight: 600; margin: 28px 0 10px;
}
.doc-page p { margin: 0 0 16px; }
.doc-page ul, .doc-page ol { margin: 0 0 18px; padding-left: 22px; }
.doc-page li { margin-bottom: 9px; }
.doc-page li::marker { color: var(--primary-bright); }
[data-theme="light"] .doc-page li::marker { color: var(--primary); }
.doc-page a { color: var(--primary-bright); text-decoration: underline; text-underline-offset: 3px; }
[data-theme="light"] .doc-page a { color: var(--primary); }
.doc-page strong { color: var(--text); font-weight: 600; }
.doc-lead { font-size: 18px; color: var(--text-2); margin-bottom: 28px; }

.doc-toc {
  background: var(--surface); backdrop-filter: var(--glass-blur); -webkit-backdrop-filter: var(--glass-blur);
  border: 1px solid var(--border); border-radius: 1.25rem; padding: 26px 30px; margin-bottom: 12px;
}
.doc-toc .toc-label {
  font-size: 11.5px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
  color: var(--text-3); margin-bottom: 14px;
}
.doc-toc ol {
  margin: 0; padding: 0; list-style: none;
  counter-reset: toc;
  columns: 2; column-gap: 32px;
}
.doc-toc li {
  counter-increment: toc;
  margin-bottom: 7px; break-inside: avoid; font-size: 14.5px;
  padding-left: 30px; position: relative;
}
.doc-toc li::before {
  content: counter(toc) ".";
  position: absolute; left: 0; width: 24px;
  text-align: right;
  color: var(--text-3);
  font-variant-numeric: tabular-nums;
}
.doc-toc a { text-decoration: none; }
.doc-toc a:hover { text-decoration: underline; }
@media (max-width: 640px) { .doc-toc ol { columns: 1; } }

.doc-note {
  background: var(--surface); backdrop-filter: var(--glass-blur); -webkit-backdrop-filter: var(--glass-blur);
  border: 1px solid var(--border); border-left: 3px solid var(--primary-bright);
  border-radius: 0 1rem 1rem 0; padding: 20px 24px; margin: 0 0 20px;
}
.doc-note p:last-child { margin-bottom: 0; }
.doc-note.warn { border-left-color: var(--warn); }

.doc-table-wrap { overflow-x: auto; margin: 0 0 20px; }
.doc-page table { width: 100%; border-collapse: collapse; font-size: 14.5px; min-width: 480px; }
.doc-page th, .doc-page td { text-align: left; padding: 12px 14px; border-bottom: 1px solid var(--border); vertical-align: top; }
.doc-page th {
  font-size: 11.5px; text-transform: uppercase; letter-spacing: .1em;
  color: var(--text-3); font-weight: 700;
}
.doc-page td { color: var(--text-2); }

.doc-footer { border-top: 1px solid var(--border); position: relative; z-index: 2; margin-top: 20px; }
.doc-footer-inner { max-width: 880px; margin: 0 auto; padding: 34px 28px 44px; font-size: 12.5px; color: var(--text-3); line-height: 1.75; }
.doc-footer-nav { display: flex; flex-wrap: wrap; gap: 8px 22px; margin-bottom: 16px; }
.doc-footer-nav a { color: var(--text-2); text-decoration: none; font-weight: 600; font-size: 13px; }
.doc-footer-nav a:hover { color: var(--primary-bright); }
[data-theme="light"] .doc-footer-nav a:hover { color: var(--primary); }


/* ============ NAV DROPDOWN (index.html) ============ */
.nav-drop { position: relative; display: inline-flex; }
.nav-drop .caret { font-size: 9px; margin-left: 5px; opacity: .65; }
.nav-menu {
  position: absolute; top: calc(100% + 12px); left: 50%;
  transform: translateX(-50%) translateY(-6px);
  min-width: 278px; padding: 8px; border-radius: 1rem;
  background: var(--surface-solid); border: 1px solid var(--border-hi);
  box-shadow: 0 22px 55px -16px rgba(0, 0, 0, .62);
  opacity: 0; visibility: hidden; z-index: 200;
  transition: opacity .2s, transform .2s, visibility .2s;
}
[data-theme="light"] .nav-menu { box-shadow: 0 22px 55px -18px rgba(108, 58, 115, .32); }
.nav-menu::before { content: ''; position: absolute; left: 0; right: 0; top: -14px; height: 14px; }
.nav-drop:hover .nav-menu,
.nav-drop:focus-within .nav-menu {
  opacity: 1; visibility: visible; transform: translateX(-50%) translateY(0);
}
.nav-links .nav-menu a {
  display: block; padding: 11px 14px; border-radius: .7rem;
  text-decoration: none !important;
  font-size: 13.5px; font-weight: 700; color: var(--text);
  transition: background .18s;
}
.nav-links .nav-menu a span {
  display: block; font-size: 12px; font-weight: 500; color: var(--text-3); margin-top: 2px;
}
.nav-links .nav-menu a:hover { background: var(--surface-hi); }

/* ============================================================
   CONTACT FORM  (used on index.html and anywhere else)
   ============================================================ */

.vform-shell {
  background: var(--surface); backdrop-filter: var(--glass-blur); -webkit-backdrop-filter: var(--glass-blur);
  border: 1px solid var(--border-hi); border-radius: 1.5rem;
  padding: 40px; box-shadow: var(--shadow-sm); position: relative; overflow: hidden;
}
@media (max-width: 640px) { .vform-shell { padding: 26px 20px; border-radius: 1.25rem; } }

.vform-guard {
  display: flex; gap: 12px; align-items: flex-start;
  background: var(--surface-hi); border: 1px solid var(--border);
  border-left: 3px solid var(--warn); border-radius: 0 .875rem .875rem 0;
  padding: 14px 18px; margin-bottom: 26px; font-size: 13.5px; color: var(--text-2); line-height: 1.6;
}
.vform-guard strong { color: var(--text); }

.vform-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
@media (max-width: 640px) { .vform-grid { grid-template-columns: 1fr; } }
.vfield { display: flex; flex-direction: column; gap: 7px; }
.vfield.full { grid-column: 1 / -1; }
.vfield label {
  font-size: 12.5px; font-weight: 700; letter-spacing: .04em;
  color: var(--text-2); text-transform: uppercase;
}
.vfield label .req { color: var(--primary-bright); margin-left: 3px; }
[data-theme="light"] .vfield label .req { color: var(--primary); }
.vfield .hint { font-size: 12px; color: var(--text-3); font-weight: 500; text-transform: none; letter-spacing: 0; }

.vfield input[type="text"],
.vfield input[type="email"],
.vfield select,
.vfield textarea {
  width: 100%; font-family: inherit; font-size: 15px; color: var(--text);
  background: var(--surface-hi); border: 1px solid var(--border);
  border-radius: .875rem; padding: 13px 16px; transition: border-color .2s, box-shadow .2s;
  -webkit-appearance: none; appearance: none;
}
.vfield textarea { min-height: 148px; resize: vertical; line-height: 1.6; }
.vfield select {
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a67e97' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");
  background-repeat: no-repeat; background-position: right 14px center; background-size: 18px; padding-right: 42px;
}
.vfield input::placeholder, .vfield textarea::placeholder { color: var(--text-3); opacity: .8; }
.vfield input:focus, .vfield select:focus, .vfield textarea:focus {
  outline: none; border-color: var(--primary-bright);
  box-shadow: 0 0 0 3px rgba(255, 79, 168, .16);
}
[data-theme="light"] .vfield input:focus,
[data-theme="light"] .vfield select:focus,
[data-theme="light"] .vfield textarea:focus { box-shadow: 0 0 0 3px rgba(174, 0, 112, .14); }
.vfield.invalid input, .vfield.invalid select, .vfield.invalid textarea { border-color: var(--err); }
.vfield .err-msg { font-size: 12.5px; color: var(--err); font-weight: 600; display: none; }
.vfield.invalid .err-msg { display: block; }

.vcheck { display: flex; gap: 12px; align-items: flex-start; margin-top: 4px; }
.vcheck input[type="checkbox"] {
  flex-shrink: 0; width: 20px; height: 20px; margin: 2px 0 0; cursor: pointer;
  accent-color: var(--primary-container);
}
.vcheck label { font-size: 13.5px; color: var(--text-2); line-height: 1.6; cursor: pointer; font-weight: 500; text-transform: none; letter-spacing: 0; }
.vcheck.invalid label { color: var(--err); }

/* honeypot — visually and programmatically hidden from humans */
.vhp {
  position: absolute !important; left: -9999px !important; top: -9999px !important;
  width: 1px; height: 1px; overflow: hidden; opacity: 0; pointer-events: none;
}

.vform-actions { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; margin-top: 28px; }
.vbtn {
  display: inline-flex; align-items: center; gap: 10px; border: none; cursor: pointer;
  font-family: inherit; font-weight: 700; font-size: 15px;
  padding: 15px 32px; border-radius: 999px;
  background: var(--grad-brand-bright); color: #fff;
  box-shadow: 0 10px 30px -8px rgba(214, 26, 140, .6);
  transition: transform .22s, box-shadow .22s, opacity .22s;
}
.vbtn:hover:not(:disabled) { transform: translateY(-3px); box-shadow: 0 18px 42px -10px rgba(214, 26, 140, .75); }
.vbtn:disabled { opacity: .55; cursor: not-allowed; transform: none; }
.vbtn .spin {
  width: 15px; height: 15px; border-radius: 50%; display: none;
  border: 2px solid rgba(255,255,255,.35); border-top-color: #fff;
  animation: vspin .7s linear infinite;
}
.vbtn.sending .spin { display: inline-block; }
.vbtn.sending .arrow { display: none; }
@keyframes vspin { to { transform: rotate(360deg); } }
.vform-alt { font-size: 13px; color: var(--text-3); }
.vform-alt a { color: var(--text-2); }

.vform-status {
  display: none; margin-top: 22px; padding: 18px 22px; border-radius: 1rem;
  font-size: 14.5px; line-height: 1.6; border: 1px solid var(--border);
}
.vform-status.show { display: block; }
.vform-status.ok { border-color: rgba(78, 201, 138, .4); background: rgba(78, 201, 138, .1); color: var(--text); }
.vform-status.bad { border-color: rgba(255, 138, 138, .4); background: rgba(255, 138, 138, .1); color: var(--text); }
.vform-status strong { display: block; margin-bottom: 4px; font-family: 'Hanken Grotesk', sans-serif; font-size: 16px; }

.vform-legal { margin-top: 24px; font-size: 12px; color: var(--text-3); line-height: 1.7; }
.vform-legal a { color: var(--text-2); }




/* ============================================================
   COOKIE CONSENT BANNER  (all pages)
   ============================================================ */

#verada-cookie-banner {
  position: fixed; left: 16px; right: 16px; bottom: 16px; z-index: 9999;
  max-width: 560px; margin: 0 auto;
  background: var(--surface-solid);
  border: 1px solid var(--border-hi); border-radius: 1.25rem;
  padding: 24px 26px;
  box-shadow: 0 24px 60px -16px rgba(0, 0, 0, .6);
  font-family: 'Plus Jakarta Sans', system-ui, sans-serif;
  font-size: 14px; line-height: 1.65; color: var(--text-2);
  animation: vbannerUp .45s cubic-bezier(.22, 1, .36, 1);
}
[data-theme="light"] #verada-cookie-banner { box-shadow: 0 24px 60px -18px rgba(108, 58, 115, .3); }
@keyframes vbannerUp { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { #verada-cookie-banner { animation: none; } }
#verada-cookie-banner .vb-title {
  font-family: 'Hanken Grotesk', system-ui, sans-serif; font-weight: 700;
  font-size: 16px; color: var(--text); margin-bottom: 6px;
}
#verada-cookie-banner p { margin: 0 0 16px; }
#verada-cookie-banner a { color: var(--primary-bright); }
[data-theme="light"] #verada-cookie-banner a { color: var(--primary); }
#verada-cookie-banner .vb-actions { display: flex; gap: 10px; flex-wrap: wrap; }
#verada-cookie-banner button {
  font-family: inherit; font-size: 13.5px; font-weight: 700;
  padding: 11px 22px; border-radius: 999px; cursor: pointer; border: 1px solid transparent;
  transition: transform .2s, border-color .2s, background .2s;
}
#vcb-accept { background: var(--grad-brand-bright); color: #fff; }
#vcb-accept:hover { transform: translateY(-2px); }
#vcb-decline { background: transparent; color: var(--text-2); border-color: var(--border-hi); }
#vcb-decline:hover { color: var(--text); border-color: var(--primary-bright); }

a:focus-visible, button:focus-visible, input:focus-visible,
select:focus-visible, textarea:focus-visible {
  outline: 2px solid var(--primary-bright); outline-offset: 3px; border-radius: 8px;
}

@media print {
  .doc-header, .doc-footer-nav, #verada-cookie-banner, .doc-ambient, .doc-theme, .skip-link { display: none !important; }
  .doc-page { background: #fff; color: #000; font-size: 11pt; }
  .doc-page h1, .doc-page h2, .doc-page h3, .doc-page strong { color: #000; }
  .doc-page a { color: #000; }
}
/* Header links must not inherit body-link styling */
.doc-page .doc-brand,
.doc-page .doc-back { text-decoration: none; }
.doc-page .doc-brand { color: var(--text); }
.doc-page .doc-brand:hover { color: var(--text); }
.doc-page .doc-back { color: var(--text-2); }
.doc-page .doc-back:hover { color: var(--text); }
/* ============================================================
   THE OFFER  (index.html)
   ============================================================ */

.offer-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
@media (max-width: 820px) { .offer-grid { grid-template-columns: 1fr; } }

.offer-card {
  position: relative; padding: 38px; border-radius: 1.5rem; overflow: hidden;
  background: var(--surface); backdrop-filter: var(--glass-blur); -webkit-backdrop-filter: var(--glass-blur);
  border: 1px solid var(--border); box-shadow: var(--shadow-sm);
  transition: transform .35s, border-color .35s;
  display: flex; flex-direction: column;
}
.offer-card:hover { transform: translateY(-5px); border-color: var(--border-hi); }
.offer-card::before {
  content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px;
  background: var(--grad-brand-bright);
}
@media (max-width: 600px) { .offer-card { padding: 26px 22px; } }

.offer-card .otag {
  display: inline-flex; align-items: center; gap: 8px; align-self: flex-start;
  font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
  padding: 7px 14px; border-radius: 999px; margin-bottom: 20px;
  background: rgba(214, 26, 140, .16); color: var(--primary-bright);
}
[data-theme="light"] .offer-card .otag { color: var(--primary); }

.offer-card h3 {
  font-family: 'Hanken Grotesk', system-ui, sans-serif; font-weight: 700;
  font-size: 22px; line-height: 1.25; letter-spacing: -.01em;
  color: var(--text); margin: 0 0 14px;
}
.offer-card .olead {
  font-size: 15.5px; color: var(--text-2); line-height: 1.7; margin: 0 0 22px;
}

.offer-list { list-style: none; margin: 0 0 22px; padding: 0; }
.offer-list li {
  position: relative; padding-left: 26px; margin-bottom: 12px;
  font-size: 14.5px; color: var(--text-2); line-height: 1.6;
}
.offer-list li::before {
  content: ''; position: absolute; left: 4px; top: 9px;
  width: 6px; height: 6px; border-radius: 50%;
  background: var(--primary-bright); box-shadow: 0 0 8px var(--primary-bright);
}
[data-theme="light"] .offer-list li::before {
  background: var(--primary); box-shadow: 0 0 7px rgba(174, 0, 112, .55);
}
.offer-list strong { color: var(--text); font-weight: 600; }

.offer-foot {
  margin-top: auto; padding-top: 20px; border-top: 1px solid var(--border);
  font-size: 13.5px; color: var(--text-3); line-height: 1.65;
}

/* Fixed header was clipping anchored section headings on index.html */
.section[id] { scroll-margin-top: 90px; }

/* Brand logo image in the legal-page header */
.doc-brand img { height: 32px; width: auto; display: block; }

/* ============================================================
   ENTITY PAGES  —  clinics.html · research.html · technology.html
   Append this to the end of assets/verada.css
   Pages use  <body class="doc-page ent-page">  so they inherit
   the existing header, footer, ambient background and typography.
   ============================================================ */

/* Accent default so entity components can be used on index.html,
   which has no .ent-page wrapper. */
:root { --accent: var(--primary-bright); }
:root[data-theme="light"] { --accent: var(--primary); }

/* ---------- accent per entity ---------- */
.ent-page { --accent: var(--primary-bright); }
[data-theme="light"] .ent-page { --accent: var(--primary); }
.ent-page.is-clinics  { --accent: #e07bc4; }
.ent-page.is-research { --accent: var(--amethyst); }
.ent-page.is-tech     { --accent: var(--primary-bright); }
[data-theme="light"] .ent-page.is-clinics  { --accent: var(--tertiary); }
[data-theme="light"] .ent-page.is-research { --accent: #9c2880; }
[data-theme="light"] .ent-page.is-tech     { --accent: var(--primary); }

/* ---------- header nav ---------- */
.ent-nav { display: flex; align-items: center; gap: 4px; }
.ent-nav a {
  font-size: 13px; font-weight: 600; color: var(--text-3);
  text-decoration: none; padding: 8px 13px; border-radius: 999px; transition: all .2s;
  white-space: nowrap;
}
.ent-nav a:hover { color: var(--text); background: var(--surface-hi); }
.ent-nav a.current { color: var(--accent); }
@media (max-width: 780px) { .ent-nav { display: none; } }

/* ---------- wider wrap than legal pages ---------- */
.ent-page .doc-wrap,
.ent-page .doc-header-inner,
.ent-page .doc-footer-inner { max-width: 1040px; }

/* ---------- hero ---------- */
.ent-hero { padding: 20px 0 8px; }
.ent-chip {
  display: inline-flex; align-items: center; gap: 9px;
  font-size: 11.5px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
  padding: 8px 16px; border-radius: 999px; margin-bottom: 26px;
  background: var(--surface-hi); border: 1px solid var(--border); color: var(--text-2);
}
.ent-chip .cdot {
  width: 7px; height: 7px; border-radius: 50%;
  background: var(--accent); box-shadow: 0 0 10px var(--accent);
}
.ent-page h1 { font-size: clamp(36px, 6vw, 58px); max-width: 15ch; }
.ent-hero .ent-sub {
  font-size: 13px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
  color: var(--accent); margin: 0 0 20px;
}
.ent-hero .ent-lead {
  font-size: 19px; line-height: 1.65; color: var(--text-2); max-width: 62ch; margin: 0 0 12px;
}
@media (max-width: 600px) { .ent-hero .ent-lead { font-size: 17px; } }

/* ---------- section rhythm ---------- */
.ent-sec { margin-top: 78px; }
.ent-sec > .doc-eyebrow { color: var(--accent); }
.ent-page h2 { font-size: clamp(26px, 3.4vw, 34px); margin: 0 0 16px; }
.ent-sec .sec-lead { font-size: 17px; color: var(--text-2); max-width: 66ch; margin: 0 0 34px; }

/* ---------- pull quote / thesis ---------- */
.ent-pull {
  position: relative; margin: 40px 0; padding: 32px 36px;
  border-radius: 1.25rem; border: 1px solid var(--border-hi);
  background: var(--surface); backdrop-filter: var(--glass-blur); -webkit-backdrop-filter: var(--glass-blur);
  font-family: 'Hanken Grotesk', system-ui, sans-serif;
  font-size: 21px; line-height: 1.45; font-weight: 600; color: var(--text); letter-spacing: -.01em;
}
.ent-pull::before { content: ''; position: absolute; left: 0; top: 18px; bottom: 18px; width: 3px; border-radius: 3px; background: var(--accent); }
@media (max-width: 600px) { .ent-pull { padding: 24px 22px; font-size: 18px; } }

/* ---------- feature cards ---------- */
.ent-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.ent-grid.two { grid-template-columns: repeat(2, 1fr); }
@media (max-width: 940px) { .ent-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 660px) { .ent-grid, .ent-grid.two { grid-template-columns: 1fr; } }

.ent-card {
  position: relative; padding: 30px; border-radius: 1.25rem; overflow: hidden;
  background: var(--surface); backdrop-filter: var(--glass-blur); -webkit-backdrop-filter: var(--glass-blur);
  border: 1px solid var(--border); transition: transform .3s, border-color .3s;
}
.ent-card:hover { transform: translateY(-4px); border-color: var(--border-hi); }
.ent-card .cnum {
  display: inline-flex; align-items: center; justify-content: center;
  width: 30px; height: 30px; border-radius: 9px; margin-bottom: 16px;
  background: color-mix(in srgb, var(--accent) 16%, transparent);
  color: var(--accent); font-size: 13px; font-weight: 800;
}
.ent-card h3 {
  font-family: 'Hanken Grotesk', system-ui, sans-serif; font-weight: 700;
  font-size: 17.5px; color: var(--text); margin: 0 0 9px; letter-spacing: -.01em;
}
.ent-card p { font-size: 14.5px; color: var(--text-2); line-height: 1.62; margin: 0; }

/* ---------- audience cards ---------- */
.aud-card {
  position: relative; padding: 34px; border-radius: 1.5rem; overflow: hidden;
  background: var(--surface); backdrop-filter: var(--glass-blur); -webkit-backdrop-filter: var(--glass-blur);
  border: 1px solid var(--border); box-shadow: var(--shadow-sm);
  display: flex; flex-direction: column;
}
.aud-card::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: var(--accent); }
.aud-card .atag {
  align-self: flex-start; font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
  padding: 7px 14px; border-radius: 999px; margin-bottom: 18px;
  background: color-mix(in srgb, var(--accent) 16%, transparent); color: var(--accent);
}
.aud-card h3 {
  font-family: 'Hanken Grotesk', system-ui, sans-serif; font-weight: 700;
  font-size: 21px; line-height: 1.25; color: var(--text); margin: 0 0 12px; letter-spacing: -.01em;
}
.aud-card > p { font-size: 15px; color: var(--text-2); line-height: 1.68; margin: 0 0 20px; }
@media (max-width: 600px) { .aud-card { padding: 26px 22px; } }

/* ---------- dot list ---------- */
.dot-list { list-style: none; margin: 0 0 4px; padding: 0; }
.dot-list li {
  position: relative; padding-left: 25px; margin-bottom: 11px;
  font-size: 14.5px; color: var(--text-2); line-height: 1.6;
}
.dot-list li::before {
  content: ''; position: absolute; left: 3px; top: 9px;
  width: 6px; height: 6px; border-radius: 50%;
  background: var(--accent); box-shadow: 0 0 8px var(--accent);
}
.dot-list strong { color: var(--text); font-weight: 600; }
.aud-foot {
  margin-top: auto; padding-top: 18px; border-top: 1px solid var(--border);
  font-size: 13.5px; color: var(--text-3); line-height: 1.65;
}

/* ---------- status rows ---------- */
.stat-rows { border-top: 1px solid var(--border); }
.stat-row {
  display: grid; grid-template-columns: 150px 1fr; gap: 20px;
  padding: 20px 4px; border-bottom: 1px solid var(--border); align-items: start;
}
@media (max-width: 620px) { .stat-row { grid-template-columns: 1fr; gap: 6px; } }
.stat-row .slabel {
  font-size: 11.5px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--text-3);
  padding-top: 3px;
}
.stat-row .sval { font-size: 15px; color: var(--text-2); line-height: 1.65; }
.stat-row .sval strong { color: var(--text); font-weight: 600; }

/* ---------- sibling links ---------- */
.sib-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; }
@media (max-width: 660px) { .sib-grid { grid-template-columns: 1fr; } }
.sib-card {
  display: block; text-decoration: none; padding: 26px 28px; border-radius: 1.25rem;
  background: var(--surface); border: 1px solid var(--border);
  transition: transform .3s, border-color .3s;
}
.sib-card:hover { transform: translateY(-4px); border-color: var(--border-hi); }
.sib-card .sk {
  font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
  color: var(--text-3); display: block; margin-bottom: 9px;
}
.sib-card .sn {
  font-family: 'Hanken Grotesk', system-ui, sans-serif; font-weight: 700; font-size: 19px;
  color: var(--text); display: block; margin-bottom: 7px; letter-spacing: -.01em;
}
.sib-card .sd { font-size: 14px; color: var(--text-2); line-height: 1.6; display: block; }
.sib-card .sgo { font-size: 13.5px; font-weight: 700; color: var(--accent); margin-top: 14px; display: inline-block; }

/* ---------- closing CTA ---------- */
.ent-cta {
  margin-top: 78px; padding: 52px 44px; border-radius: 1.5rem; text-align: center;
  background: var(--surface); backdrop-filter: var(--glass-blur); -webkit-backdrop-filter: var(--glass-blur);
  border: 1px solid var(--border-hi); box-shadow: var(--shadow-sm);
}
.ent-cta h2 { margin-bottom: 14px; }
.ent-cta p { font-size: 16.5px; color: var(--text-2); max-width: 58ch; margin: 0 auto 28px; line-height: 1.7; }
@media (max-width: 600px) { .ent-cta { padding: 34px 22px; } }

/* ---------- division disclosure ---------- */
.division-note {
  margin-top: 60px; padding: 22px 26px; border-radius: 1rem;
  background: var(--surface-hi); border: 1px solid var(--border);
  font-size: 13.5px; color: var(--text-3); line-height: 1.7;
}
.division-note strong { color: var(--text-2); font-weight: 600; }

/* ---------- stage router ---------- */
.stage-router { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-top: 34px; }
@media (max-width: 860px) { .stage-router { grid-template-columns: 1fr; } }
.stage-card {
  display: block; text-decoration: none; padding: 24px 26px; border-radius: 1.1rem;
  background: var(--surface); border: 1px solid var(--border);
  transition: transform .3s, border-color .3s;
}
a.stage-card:hover { transform: translateY(-4px); border-color: var(--border-hi); }
.stage-card.active { border-color: var(--accent); background: color-mix(in srgb, var(--accent) 9%, var(--surface)); }
.stage-card .sq {
  display: block; font-family: 'Hanken Grotesk', system-ui, sans-serif; font-weight: 700;
  font-size: 15.5px; color: var(--text); margin-bottom: 9px; letter-spacing: -.01em;
}
.stage-card .sa { display: block; font-size: 13.5px; color: var(--text-2); line-height: 1.6; }
.stage-card .sgo2 { display: inline-block; margin-top: 13px; font-size: 12.5px; font-weight: 700; color: var(--accent); }
.stage-card.active .sgo2 { color: var(--text-3); }

/* ---------- fit badges ---------- */
.fit-badge {
  display: inline-flex; align-items: center; gap: 7px; align-self: flex-start;
  font-size: 10.5px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase;
  padding: 5px 12px; border-radius: 999px; margin-bottom: 14px;
  border: 1px solid transparent;
}
.fit-badge.strong  { background: rgba(78,201,138,.14);  color: #4ec98a; border-color: rgba(78,201,138,.3); }
.fit-badge.partial { background: rgba(255,179,71,.14);  color: #ffb347; border-color: rgba(255,179,71,.3); }
.fit-badge.competes{ background: rgba(194,100,201,.16); color: var(--amethyst); border-color: rgba(194,100,201,.32); }
.fit-badge.no      { background: rgba(255,138,138,.13); color: #ff8a8a; border-color: rgba(255,138,138,.3); }
[data-theme="light"] .fit-badge.strong  { color: #1d8a56; }
[data-theme="light"] .fit-badge.partial { color: #a56a00; }
[data-theme="light"] .fit-badge.competes{ color: #9c2880; }
[data-theme="light"] .fit-badge.no      { color: #ba1a1a; }

.cond-num {
  display: inline-flex; align-items: center; justify-content: center;
  width: 26px; height: 26px; border-radius: 8px; flex-shrink: 0;
  background: color-mix(in srgb, var(--accent) 18%, transparent);
  color: var(--accent); font-size: 12px; font-weight: 800; margin-right: 12px;
}

.fit-badge.open { background: rgba(140,170,255,.14); color: #8caaff; border-color: rgba(140,170,255,.32); }
[data-theme="light"] .fit-badge.open { color: #3a52b5; }

/* ============================================================
   QUALIFIER  —  interactive three-question router (fit.html)
   ============================================================ */
.qz {
  background: var(--surface); backdrop-filter: var(--glass-blur); -webkit-backdrop-filter: var(--glass-blur);
  border: 1px solid var(--border-hi); border-radius: 1.5rem; padding: 38px; box-shadow: var(--shadow-sm);
}
@media (max-width: 600px) { .qz { padding: 26px 20px; } }
.qz-q + .qz-q { margin-top: 28px; padding-top: 28px; border-top: 1px solid var(--border); }
.qz-label {
  font-family: 'Hanken Grotesk', system-ui, sans-serif; font-weight: 700; font-size: 17px;
  color: var(--text); margin-bottom: 16px; letter-spacing: -.01em;
}
.qz-label span { color: var(--accent); margin-right: 9px; }
.qz-opts { display: flex; flex-wrap: wrap; gap: 10px; }
.qz-opt {
  font-family: inherit; font-size: 14px; font-weight: 600; cursor: pointer;
  padding: 11px 18px; border-radius: 999px; text-align: left;
  background: var(--surface-hi); color: var(--text-2);
  border: 1px solid var(--border); transition: all .2s;
}
.qz-opt:hover { color: var(--text); border-color: var(--border-hi); }
.qz-opt[aria-pressed="true"] {
  background: color-mix(in srgb, var(--accent) 16%, transparent);
  color: var(--accent); border-color: var(--accent);
}
.qz-result {
  margin-top: 30px; padding-top: 28px; border-top: 1px solid var(--border-hi);
  display: none;
}
.qz-result.show { display: block; animation: qzIn .35s ease; }
@keyframes qzIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .qz-result.show { animation: none; } }
.qz-verdict {
  display: inline-flex; align-items: center; gap: 9px;
  font-size: 11px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase;
  padding: 7px 15px; border-radius: 999px; margin-bottom: 18px;
}
.qz-verdict.yes { background: rgba(78,201,138,.15); color: #4ec98a; }
.qz-verdict.maybe { background: rgba(140,170,255,.15); color: #8caaff; }
.qz-verdict.no { background: rgba(255,138,138,.14); color: #ff8a8a; }
[data-theme="light"] .qz-verdict.yes { color: #1d8a56; }
[data-theme="light"] .qz-verdict.maybe { color: #3a52b5; }
[data-theme="light"] .qz-verdict.no { color: #ba1a1a; }
.qz-result h3 {
  font-family: 'Hanken Grotesk', system-ui, sans-serif; font-weight: 700; font-size: 22px;
  color: var(--text); margin: 0 0 12px; letter-spacing: -.015em; line-height: 1.25;
}
.qz-result p { font-size: 15.5px; color: var(--text-2); line-height: 1.68; margin: 0 0 14px; }
.qz-result p strong { color: var(--text); }
.qz-links { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 20px; }
.qz-links a {
  font-size: 13.5px; font-weight: 700; text-decoration: none;
  padding: 11px 20px; border-radius: 999px;
  background: var(--surface-hi); border: 1px solid var(--border-hi); color: var(--text);
  transition: all .2s;
}
.qz-links a:hover { border-color: var(--accent); color: var(--accent); transform: translateY(-2px); }
.qz-links a.primary { background: var(--grad-brand-bright); color: #fff; border-color: transparent; }
.qz-reset {
  background: none; border: 0; cursor: pointer; padding: 0; margin-top: 18px;
  font-family: inherit; font-size: 13px; font-weight: 600; color: var(--text-3);
  text-decoration: underline; text-underline-offset: 3px;
}
.qz-reset:hover { color: var(--text-2); }

/* ---------- sticky section nav (desktop) ---------- */
.pg-nav { display: none; }
@media (min-width: 1240px) {
  .pg-nav {
    display: block; position: fixed; top: 50%; transform: translateY(-50%);
    left: calc((100vw - 1040px) / 2 - 190px); width: 170px; z-index: 40;
  }
  .pg-nav a {
    display: block; font-size: 12.5px; line-height: 1.4; color: var(--text-3);
    text-decoration: none; padding: 7px 0 7px 14px; border-left: 2px solid var(--border);
    transition: all .2s;
  }
  .pg-nav a:hover { color: var(--text-2); border-left-color: var(--border-hi); }
  .pg-nav a.active { color: var(--accent); border-left-color: var(--accent); }
}

/* ---------- applicability page ---------- */
.ac-page .doc-wrap { max-width: 800px; }
.ac-intro { font-size: 17px; color: var(--text-2); line-height: 1.7; max-width: 64ch; margin: 0 0 34px; }
.ac-note {
  margin-top: 36px; padding: 22px 26px; border-radius: 1rem;
  background: var(--surface-hi); border: 1px solid var(--border);
  font-size: 14px; color: var(--text-3); line-height: 1.7;
}
.ac-note a { color: var(--text-2); }
.ac-link-card {
  display: block; text-decoration: none; margin: 34px 0 0;
  padding: 28px 32px; border-radius: 1.25rem;
  background: var(--surface); border: 1px solid var(--border-hi);
  transition: transform .3s, border-color .3s;
}
.ac-link-card:hover { transform: translateY(-4px); border-color: var(--accent); }
.ac-link-card .k {
  display: block; font-size: 11px; font-weight: 800; letter-spacing: .1em;
  text-transform: uppercase; color: var(--accent); margin-bottom: 10px;
}
.ac-link-card .t {
  display: block; font-family: 'Hanken Grotesk', system-ui, sans-serif; font-weight: 700;
  font-size: 21px; color: var(--text); margin-bottom: 8px; letter-spacing: -.015em;
}
.ac-link-card .d { display: block; font-size: 14.5px; color: var(--text-2); line-height: 1.6; }

/* ---------- prefilled summary on the contact form ---------- */
.ac-prefill {
  display: none; margin-bottom: 24px; padding: 18px 22px; border-radius: .9rem;
  background: var(--surface-hi); border: 1px solid var(--border);
  border-left: 3px solid var(--primary-bright);
  font-size: 13.5px; color: var(--text-2); line-height: 1.65;
}
[data-theme="light"] .ac-prefill { border-left-color: var(--primary); }
.ac-prefill.show { display: block; }
.ac-prefill .h {
  font-weight: 700; color: var(--text); display: block; margin-bottom: 7px; font-size: 13px;
  letter-spacing: .04em; text-transform: uppercase;
}
.ac-prefill dl { margin: 0; display: grid; grid-template-columns: auto 1fr; gap: 4px 14px; }
.ac-prefill dt { color: var(--text-3); }
.ac-prefill dd { margin: 0; color: var(--text); font-weight: 600; }

/* ============================================================
   NAV DROPDOWN  (index.html)
   Kept here so the whole entity block lives in one place and
   cannot be lost when this section is replaced.
   ============================================================ */
.nav-drop { position: relative; display: inline-flex; }
.nav-drop .caret { font-size: 9px; margin-left: 5px; opacity: .65; }
.nav-menu {
  position: absolute; top: calc(100% + 12px); left: 50%;
  transform: translateX(-50%) translateY(-6px);
  min-width: 278px; padding: 8px; border-radius: 1rem;
  background: var(--surface-solid); border: 1px solid var(--border-hi);
  box-shadow: 0 22px 55px -16px rgba(0, 0, 0, .62);
  opacity: 0; visibility: hidden; z-index: 200;
  transition: opacity .2s, transform .2s, visibility .2s;
}
[data-theme="light"] .nav-menu { box-shadow: 0 22px 55px -18px rgba(108, 58, 115, .32); }
.nav-menu::before { content: ''; position: absolute; left: 0; right: 0; top: -14px; height: 14px; }
.nav-drop:hover .nav-menu,
.nav-drop:focus-within .nav-menu {
  opacity: 1; visibility: visible; transform: translateX(-50%) translateY(0);
}
.nav-links .nav-menu a {
  display: block; padding: 11px 14px; border-radius: .7rem;
  text-decoration: none !important;
  font-size: 13.5px; font-weight: 700; color: var(--text);
  transition: background .18s;
}
.nav-links .nav-menu a span {
  display: block; font-size: 12px; font-weight: 500; color: var(--text-3); margin-top: 2px;
}
.nav-links .nav-menu a:hover { background: var(--surface-hi); }
