/* Owner: WP5 (V31 pass 2). Page-specific rules for /clinicians, /patients, /research, /team,
   /news and /404, loaded after site.css (and legacy.css). Nothing here styles the shell, the
   home page or /get-started and /pricing. White or wash grounds only; navy only on buttons.
   Values follow the V31 tokens in site.css: Inter only, display type at 620, cards white with a
   1px rule at radius 16, one 2px wave edge per featured element, notes at 13px in the 70% ink. */

/* ==========================================================================
   Content pages: /clinicians, /patients, /research, /team
   ========================================================================== */

/* ---- Hero: type only (the signal-field canvases are gone), eyebrow above a display-2 H1 ---- */
:is(.page-clinicians, .page-patients, .page-research, .page-team) .page-hero {
  min-height: 0;
  padding: clamp(4.5rem, 2.75rem + 5vw, 7.5rem) 0 clamp(3.5rem, 2rem + 4vw, 6rem);
}
html:not(.js) :is(.page-clinicians, .page-patients, .page-research) .page-hero {
  padding-bottom: clamp(3.5rem, 2rem + 4vw, 6rem);
}
:is(.page-clinicians, .page-patients, .page-research, .page-team) .page-hero .rail {
  display: block;
}
:is(.page-clinicians, .page-patients, .page-research, .page-team) .page-hero .rail-label {
  display: block;
  padding-top: 0;
}
:is(.page-clinicians, .page-patients, .page-research, .page-team) .page-hero h1 {
  max-width: 21ch;
  margin-top: 1rem;
}
:is(.page-clinicians, .page-patients, .page-research, .page-team) .page-hero .lede {
  max-width: 36rem;
  margin-top: 1.5rem;
  color: var(--ink-2);
  font-size: var(--fs-lede);
  line-height: 1.5;
  text-wrap: pretty;
}

/* ---- Sections: one rhythm, the eyebrow above the headline (as on the home page) ----
   V6 (Erez, 2026-09-30, "looks a bit PDF'y"): no divider lines between sections, above notes or
   between rows; the grounds and the spacing carry the rhythm. Cards, inputs and buttons keep
   their borders. */
:is(.page-clinicians, .page-patients, .page-research, .page-team) .section {
  padding-block: var(--section-y);
}
:is(.page-clinicians, .page-patients, .page-research) .section .rail {
  display: block;
  max-width: 52rem;
}
:is(.page-clinicians, .page-patients, .page-research) .section .rail-label,
.page-research .evidence-band .rail-label {
  display: block;
  padding-top: 0;
}
:is(.page-clinicians, .page-patients, .page-research) .section .section-title {
  margin-top: 0.75rem;
}
:is(.page-clinicians, .page-patients, .page-research) .section .lede {
  max-width: 62ch;
  margin-top: 1.25rem;
  color: var(--ink-2);
  font-size: 1.125rem;
  line-height: 1.65;
  text-wrap: pretty;
}

/* ---- Running text never ends on an orphan ---- */
:is(.page-clinicians, .page-patients, .page-research, .page-team) :is(.card p, .step p, .faq p, .fine, .study-numbers span),
.legacy-news :is(.featured p, .news-summary),
.legacy-404 .desc {
  text-wrap: pretty;
}

/* ---- The one Note voice for compliance lines: 13px, 70% ink, 68ch, spacing above (no rule) ---- */
:is(.page-clinicians, .page-research) .fine {
  max-width: 68ch;
  margin: 2.5rem 0 0;
  color: var(--ink-mute);
  font-size: 0.8125rem;
  line-height: 1.6;
}

/* ---- Calls to action: primary, secondary and the tertiary text link with an arrow ---- */
:is(.page-clinicians, .page-patients, .page-research, .page-team) .cta-pair {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem 1.25rem;
  margin-top: 2rem;
}
:is(.page-clinicians, .page-patients, .page-research, .page-team) .cta-pair .btn {
  min-height: 48px;
  padding: 12px 22px;
}
:is(.page-clinicians, .page-patients, .page-research, .page-team) .cta-text {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  gap: 0.4rem;
  color: var(--ink);
  font-size: 0.9375rem;
  font-weight: 600;
  line-height: 1.25;
  text-decoration: underline;
  text-decoration-color: var(--rule-strong);
  text-decoration-thickness: 1px;
  text-underline-offset: 4px;
  transition:
    color 0.2s ease,
    text-decoration-color 0.2s ease;
}
:is(.page-clinicians, .page-patients, .page-research, .page-team) .cta-text:hover {
  color: var(--accent);
  text-decoration-color: currentColor;
}
:is(.page-clinicians, .page-patients, .page-research, .page-team) .cta-arrow {
  flex: none;
  width: 18px;
  height: 18px;
  transition: transform 0.2s ease;
}
:is(.page-clinicians, .page-patients, .page-research, .page-team) :is(.btn, .cta-text):hover .cta-arrow {
  transform: translateX(2px);
}
@media (prefers-reduced-motion: reduce) {
  :is(.page-clinicians, .page-patients, .page-research, .page-team) :is(.btn, .cta-text):hover .cta-arrow {
    transform: none;
  }
}

/* ---- Reveals: 12px of travel in 0.5s, 60ms apart (site.js adds .in) ---- */
html.motion :is(.page-clinicians, .page-patients, .page-research, .page-team) .reveal {
  transform: translateY(12px);
  transition-duration: 0.5s;
}
html.motion :is(.page-clinicians, .page-patients, .page-research, .page-team) .reveal.in {
  transform: none;
}
html.motion .page-clinicians .cards .reveal:nth-child(2) {
  transition-delay: 60ms;
}
html.motion .page-clinicians .cards .reveal:nth-child(3) {
  transition-delay: 120ms;
}
html.motion .page-clinicians .cards .reveal:nth-child(4) {
  transition-delay: 180ms;
}

/* ---- No coloured glows: the pointer spotlight stays off cards and portraits ---- */
:is(.page-clinicians, .page-team) :is(.card, .team-card)::after {
  content: none;
}

/* ---- FAQ: light cards on the section's ground (site.css), no rules, Inter at 600 ---- */
:is(.page-clinicians, .page-patients) .faq {
  max-width: 56rem;
  margin-top: 2.5rem;
}
:is(.page-clinicians, .page-patients) .faq summary {
  color: var(--ink);
  font: 600 clamp(1.0625rem, 0.98rem + 0.35vw, 1.25rem) / 1.4 var(--sans);
  letter-spacing: -0.01em;
}
:is(.page-clinicians, .page-patients) .faq p {
  max-width: 68ch;
  margin: 0.75rem 0 0.25rem;
  color: var(--ink-2);
  font-size: 1rem;
  line-height: 1.65;
}

/* ---- /clinicians ---- */
/* The domain list and its note sit centred beside the Pain Compass; on phones the note
   follows the compass. */
.page-clinicians .domains {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  grid-template-areas:
    "list compass"
    "note compass";
  gap: 0 clamp(2.5rem, 6vw, 6rem);
  align-items: start;
  margin-top: 3rem;
}
.page-clinicians .domain-list {
  grid-area: list;
  align-self: end;
}
.page-clinicians .domains > .fine {
  grid-area: note;
  max-width: none;
  margin-top: 1.5rem;
}
/* The three domains: rows on spacing alone (no rules between them). */
.page-clinicians .domain-row {
  grid-template-columns: 6.5rem minmax(0, 1fr);
  gap: 1rem;
  align-items: baseline;
  padding: 1.125rem 0;
  border: 0;
}
.page-clinicians .domain-row b {
  color: var(--ink);
  font: 620 1.5rem/1.2 var(--sans);
  letter-spacing: -0.02em;
}
.page-clinicians .domain-row span {
  color: var(--ink-2);
  font-size: 1.0625rem;
  line-height: 1.5;
}
.page-clinicians .compass-shell {
  grid-area: compass;
  padding: clamp(0.75rem, 0.25rem + 2vw, 2.5rem);
  border: 1px solid var(--rule);
  border-radius: var(--r-frame);
  background: #fff;
  box-shadow: none;
}
.page-clinicians .compass-shell img {
  width: 100%;
  height: auto;
  margin-inline: auto;
}
.page-clinicians .cards {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  margin-top: 3rem;
}
.page-clinicians .cards .card {
  min-height: 0;
  padding: 1.75rem 2rem 2rem;
  border: 1px solid var(--rule);
  border-radius: var(--r-card);
  background: #fff;
}
.page-clinicians .card h3 {
  margin: 0;
  color: var(--ink);
  font: 620 1.3125rem/1.3 var(--sans);
  letter-spacing: -0.015em;
  text-wrap: balance;
}
.page-clinicians .card p {
  max-width: 46ch;
  margin: 0.75rem 0 0;
  color: var(--ink-2);
  font-size: 1rem;
  line-height: 1.6;
}
.page-clinicians .page-close {
  margin-top: 3rem;
}

/* ---- /patients ---- */
.page-patients .steps {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
  margin-top: 3rem;
  border: 0;
  background: none;
}
.page-patients .step {
  padding: 1.5rem 1.5rem 1.75rem;
  border: 1px solid var(--rule);
  border-radius: var(--r-card);
  background: #fff;
}
.page-patients .step::before {
  content: counter(steps, decimal-leading-zero);
  display: block;
  color: var(--accent);
  font: 600 0.75rem/1 var(--sans);
  font-variant-numeric: tabular-nums lining-nums;
  letter-spacing: 0.1em;
}
.page-patients .step h3 {
  margin: 1rem 0 0;
  color: var(--ink);
  font: 620 1.1875rem/1.3 var(--sans);
  letter-spacing: -0.015em;
  text-wrap: balance;
}
.page-patients .step p {
  margin: 0.625rem 0 0;
  color: var(--ink-2);
  font-size: 1rem;
  line-height: 1.65;
}
/* The privacy band (V6): site.css turns .dark into the wash; no edge line. Its heading is the
   eyebrow itself; three short questions and answers sit on white cards, always open (Jordan,
   2026-09-30: one HIPAA and BAA wording on the page, the one in the second answer). */
.page-patients .privacy-band .privacy-title {
  display: block;
  margin: 0;
  padding: 0;
}
.page-patients .privacy-qa {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
  margin: 1.5rem 0 0;
}
.page-patients .privacy-qa > div {
  padding: 1.5rem 1.5rem 1.625rem;
  border: 1px solid var(--rule);
  border-radius: var(--r-card);
  background: #fff;
}
.page-patients .privacy-qa dt {
  color: var(--ink);
  font: 620 1.1875rem/1.3 var(--sans);
  letter-spacing: -0.015em;
  text-wrap: balance;
}
.page-patients .privacy-qa dd {
  margin: 0.625rem 0 0;
  color: var(--ink-2);
  font-size: 1rem;
  line-height: 1.65;
  text-wrap: pretty;
}
/* The existing emergency line (Jordan G6), plain, legible and always visible; spacing above it,
   no rule. */
.page-patients .safety-line {
  max-width: 62ch;
  margin: 2.25rem 0 0;
  color: var(--ink-2);
  font-size: 0.9375rem;
  line-height: 1.65;
}

/* ---- /research: the Veterans numbers on the wash, static navy numerals ---- */
.page-research .evidence-band {
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  gap: clamp(2.5rem, 6vw, 6rem);
  align-items: start;
}
.page-research .evidence-band .lede {
  max-width: 44ch;
}
.page-research .study-numbers {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}
.page-research .study-numbers div {
  overflow: visible;
  padding: 1.5rem 1.5rem 1.625rem;
  border: 1px solid var(--rule);
  border-radius: var(--r-card);
  background: #fff;
}
.page-research .study-numbers div::after {
  content: none;
  animation: none;
}
.page-research .study-numbers strong {
  display: block;
  color: var(--ink);
  font: 300 var(--fs-figure) / 1 var(--sans);
  font-variant-numeric: tabular-nums lining-nums;
  letter-spacing: -0.04em;
}
.page-research .study-numbers span {
  display: block;
  max-width: 26ch;
  margin-top: 0.875rem;
  color: var(--ink-2);
  font-size: 0.9375rem;
  line-height: 1.5;
}
.page-research .evidence-caveat {
  max-width: none;
  margin-top: 1.25rem;
}

/* ---- /team: colour portraits, white cards, a white close (no rule above it) ---- */
.page-team .page-hero + .section {
  padding-block: var(--section-y);
  border-bottom: 0;
  background: var(--wash);
}
.page-team .team-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.25rem;
}
.page-team .team-grid .team-card {
  display: grid;
  grid-template-columns: 8rem minmax(0, 1fr);
  align-items: start;
  gap: 1.5rem;
  padding: 1.5rem;
  border: 1px solid var(--rule);
  border-radius: var(--r-card);
  background: #fff;
  box-shadow: none;
}
.page-team .team-grid .team-card img {
  width: 8rem;
  height: 8rem;
  border-radius: 12px;
  object-fit: cover;
  object-position: center 25%;
  filter: none;
}
.page-team .team-grid .team-card > div {
  min-width: 0;
  padding: 0;
}
.page-team .team-grid .team-card > div::before {
  content: none;
}
.page-team .team-card h2 {
  margin: 0;
  color: var(--ink);
  font: 620 clamp(1.25rem, 1.05rem + 0.7vw, 1.625rem) / 1.2 var(--sans);
  letter-spacing: -0.02em;
}
.page-team .team-card .team-role {
  margin: 0.5rem 0 0;
  color: var(--ink-mute);
  font: 600 0.75rem/1.4 var(--sans);
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.page-team .team-card .team-bio {
  margin-top: .85rem;
  color: var(--ink-2);
  font: 400 .9375rem/1.65 var(--sans);
  letter-spacing: 0;
  text-transform: none;
  text-wrap: pretty;
}
@media (max-width: 63.99rem) {
  .page-team .team-grid { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 39.99rem) {
  .page-team .team-grid .team-card {
    grid-template-columns: 5rem minmax(0, 1fr);
    gap: 1rem;
    padding: 1.25rem;
  }
  .page-team .team-grid .team-card img { width: 5rem; height: 5rem; border-radius: 10px; }
  .page-team .team-card h2 { font-size: 1.125rem; line-height: 1.3; }
  .page-team .team-card .team-role { font-size: .6875rem; letter-spacing: .06em; }
  .page-team .team-card .team-bio { font-size: .875rem; line-height: 1.65; }
}
.page-team .team-close {
  padding-block: var(--section-y);
  background: #fff;
  text-align: center;
}
.page-team .team-close h2 {
  max-width: 20ch;
  margin: 0 auto;
  color: var(--ink);
  font: 620 var(--fs-display-2) / 1.05 var(--sans);
  font-variation-settings: normal;
  letter-spacing: -0.03em;
  text-wrap: balance;
}
.page-team .team-close .cta-pair {
  justify-content: center;
}

/* ---- Content pages: tablet and phone ---- */
@media (max-width: 980px) {
  .page-clinicians .domains {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas:
      "list"
      "compass"
      "note";
    row-gap: 2rem;
  }
  .page-clinicians .domains > .fine {
    margin-top: 0;
  }
  .page-research .evidence-band {
    grid-template-columns: minmax(0, 1fr);
  }
  .page-patients .steps {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 660px) {
  .page-clinicians .cards,
  .page-patients .steps {
    grid-template-columns: minmax(0, 1fr);
  }
  .page-clinicians .cards .card {
    padding: 1.375rem 1.25rem 1.5rem;
  }
  .page-clinicians .domain-row {
    grid-template-columns: 5rem minmax(0, 1fr);
    padding: 1.25rem 0;
  }
  .page-clinicians .domain-row b {
    font-size: 1.25rem;
  }
  .page-patients .step {
    padding: 1.25rem 1.25rem 1.5rem;
  }
  /* The numbers become a ledger: numeral left, label right, rows on spacing (no rules). */
  .page-research .study-numbers {
    grid-template-columns: minmax(0, 1fr);
    gap: 0;
  }
  .page-research .study-numbers div {
    display: grid;
    grid-template-columns: 6.5rem minmax(0, 1fr);
    align-items: baseline;
    gap: 1rem;
    padding: 0.875rem 0;
    border: 0;
    border-radius: 0;
    background: none;
  }
  .page-research .study-numbers span {
    margin-top: 0;
  }
  .page-research .evidence-caveat {
    margin-top: 1rem;
  }
  .page-team .team-card > div {
    padding: 1.125rem 1.25rem 1.375rem;
  }
}
@media (max-width: 40rem) {
  :is(.page-clinicians, .page-research, .page-team) .cta-pair .btn {
    flex: 1 1 100%;
  }
}
/* The phone call-to-action bar needs room below the content (site.css pads main). The room
   moves into the last section, so its ground runs down to the footer instead of a white strip. */
@media (max-width: 39.99rem) {
  body:has(.sticky-cta):is(.page-clinicians, .page-research, .page-team) main {
    padding-bottom: 0;
  }
  body:has(.sticky-cta):is(.page-clinicians, .page-research, .page-team) main > :last-child {
    padding-bottom: calc(var(--section-y) + 56px + env(safe-area-inset-bottom, 0px) + 16px);
  }
}

/* ==========================================================================
   /news: shell and CSS only (the markup and text are untouched)
   ========================================================================== */
/* The header shares the list's left edge; its kicker is the V31 eyebrow (uppercase, no dash). */
.legacy-news .page-header {
  padding: clamp(4.5rem, 2.75rem + 5vw, 7.5rem) calc((100% - var(--wrap)) / 2) clamp(3rem, 2rem + 3vw, 4.5rem);
}
.legacy-news .page-header .kicker {
  text-transform: uppercase;
}
.legacy-news .page-header .kicker::before {
  content: none;
}
.legacy-news .section {
  padding: clamp(3rem, 2rem + 3vw, 5rem) 0 var(--section-y);
}
/* The gutter fix: the list container is centred like every other wrap. */
.legacy-news .container {
  margin-inline: auto;
}

/* Featured: a white card, 1px border, the 2px wave as its top edge. */
.legacy-news .featured,
.legacy-news .featured--single {
  position: relative;
  overflow: hidden;
  grid-template-columns: minmax(0, 1fr);
  max-width: none;
  margin: 0 0 clamp(2.5rem, 2rem + 2vw, 3.5rem);
  padding: clamp(1.75rem, 1rem + 3vw, 3rem);
  border: 1px solid var(--rule);
  border-radius: var(--r-frame);
  color: var(--ink);
  background: #fff;
  box-shadow: none;
}
.legacy-news .featured::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 2px;
  background: var(--wave);
}
.legacy-news .featured > div {
  max-width: 46rem;
}
/* Desktop: an editorial split, the headline on the left and the summary and link on the right. */
@media (min-width: 981px) {
  .legacy-news .featured > div {
    display: grid;
    max-width: none;
    grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
    column-gap: clamp(2.5rem, 5vw, 5rem);
    align-items: end;
  }
  .legacy-news .featured > div > * {
    grid-column: 1;
  }
  .legacy-news .featured-tag {
    justify-self: start;
  }
  .legacy-news .featured h2 {
    grid-row: 3 / span 2;
    margin-bottom: 0;
  }
  .legacy-news .featured > div > p {
    grid-column: 2;
    grid-row: 1 / span 3;
    margin: 0;
  }
  .legacy-news .featured > div > .featured-link {
    grid-column: 2;
    grid-row: 4;
    justify-self: start;
    margin-top: 1.5rem;
  }
}
.legacy-news .featured-tag {
  margin-bottom: 14px;
  padding: 4px 10px;
  border: 1px solid color-mix(in oklab, #a54891 36%, transparent);
  color: #a54891;
  background: #fff;
  font-size: 12px;
  letter-spacing: 0.1em;
}
.legacy-news .featured-source {
  color: var(--ink-mute);
  font-size: 12px;
  letter-spacing: 0.1em;
}
.legacy-news .featured h2 {
  margin: 0 0 14px;
  color: var(--ink);
  font: 620 clamp(1.5rem, 1.2rem + 1.2vw, 2.25rem) / 1.15 var(--sans);
  font-variation-settings: normal;
  letter-spacing: -0.025em;
  text-wrap: balance;
}
.legacy-news .featured p {
  max-width: 62ch;
  margin: 0 0 24px;
  color: var(--ink-2);
  font-size: 1rem;
  line-height: 1.65;
}
/* The featured link and Subscribe take the shared .btn look: flat navy, radius 10. */
.legacy-news .featured-link,
.legacy-news .btn-wave {
  display: inline-flex;
  min-height: 48px;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 12px 20px;
  border: 1px solid var(--ink);
  border-radius: var(--r-btn);
  color: #fff;
  background: var(--ink);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.14);
  font: 600 15px/1.25 var(--sans);
  text-decoration: none;
  cursor: pointer;
  transition:
    transform 0.2s ease,
    background-color 0.2s ease;
}
.legacy-news .featured-link:hover,
.legacy-news .btn-wave:hover {
  transform: translateY(-1px);
  background: color-mix(in oklab, var(--ink) 86%, var(--bio));
}
.legacy-news .btn-wave:disabled {
  cursor: default;
  opacity: 0.7;
  transform: none;
}

/* Filter chips: #a54891 on white. */
.legacy-news .filter-bar {
  gap: 8px;
  margin-bottom: 1.5rem;
}
.legacy-news .filter-chip {
  min-height: 40px;
  padding: 8px 16px;
  border: 1px solid var(--border-med);
  border-radius: 999px;
  color: var(--ink-2);
  background: #fff;
  font-size: 13px;
  font-weight: 600;
  transition:
    color 0.2s ease,
    border-color 0.2s ease;
}
.legacy-news .filter-chip:hover {
  color: #a54891;
  border-color: color-mix(in oklab, #a54891 45%, transparent);
  background: #fff;
}
.legacy-news .filter-chip.active {
  color: #a54891;
  border-color: #a54891;
  background: #fff;
  box-shadow: inset 0 0 0 1px #a54891;
}

/* The list: white cards on a 1px rule, no coloured stripes, one icon style. */
.legacy-news .news-list {
  gap: 1rem;
}
.legacy-news .news-item {
  border: 1px solid var(--rule);
  border-radius: var(--r-card);
  background: #fff;
  transition:
    border-color 0.2s ease,
    box-shadow 0.2s ease;
}
.legacy-news .news-item:hover {
  transform: none;
  border-color: var(--rule-strong);
  box-shadow: var(--shadow-xs);
}
.legacy-news .ni-stripe {
  display: none;
}
.legacy-news .ni-body {
  gap: 1.25rem;
  padding: 1.5rem 1.75rem;
}
.legacy-news .ni-icon,
.legacy-news :is(.nc-company, .nc-clinical, .nc-research, .nc-press) .ni-icon {
  width: 44px;
  height: 44px;
  border: 1px solid var(--rule);
  border-radius: 12px;
  color: var(--ink);
  background: var(--wash);
}
.legacy-news .ni-icon svg {
  width: 20px;
  height: 20px;
}
.legacy-news .ni-cat,
.legacy-news :is(.nc-company, .nc-clinical, .nc-research, .nc-press) .ni-cat {
  padding: 3px 9px;
  color: #a54891;
  background: #fff;
  box-shadow: inset 0 0 0 1px color-mix(in oklab, #a54891 36%, transparent);
  font-size: 12px;
  letter-spacing: 0.1em;
}
/* UI text floor: 12px. */
.legacy-news .news-date {
  color: var(--ink);
  font-size: 12px;
  font-variant-numeric: tabular-nums lining-nums;
  letter-spacing: 0.08em;
}
.legacy-news .news-source-badge {
  border-radius: 6px;
  color: var(--ink-mute);
  background: var(--wash);
  font-size: 12px;
}
.legacy-news .news-headline {
  margin-bottom: 8px;
  color: var(--ink);
  font: 620 1.1875rem/1.3 var(--sans);
  font-variation-settings: normal;
  letter-spacing: -0.015em;
}
.legacy-news .news-headline a:hover {
  color: var(--accent);
}
.legacy-news .news-summary {
  max-width: 72ch;
  color: var(--ink-2);
  font-size: 15px;
  line-height: 1.65;
}
.legacy-news .ni-link {
  margin-top: 12px;
  color: var(--ink);
  font-size: 14px;
  font-weight: 600;
}
.legacy-news .ni-link:hover {
  color: var(--accent);
}

/* Newsletter and press contact: a wash panel and a white card. */
.legacy-news .newsletter-section {
  margin-top: clamp(3rem, 2rem + 3vw, 4.5rem);
  padding: clamp(2rem, 1.25rem + 3vw, 3.5rem);
  border: 1px solid var(--rule);
  border-radius: var(--r-frame);
  background: var(--wash);
}
.legacy-news .newsletter-section h3 {
  margin: 0 auto 10px;
  max-width: 30ch;
  color: var(--ink);
  font: 620 clamp(1.375rem, 1.2rem + 0.8vw, 1.75rem) / 1.2 var(--sans);
  font-variation-settings: normal;
  letter-spacing: -0.02em;
  text-wrap: balance;
}
.legacy-news .newsletter-section p {
  color: var(--ink-2);
}
.legacy-news .newsletter-form {
  gap: 10px;
  max-width: 460px;
}
.legacy-news .newsletter-form input {
  min-height: 48px;
  padding: 12px 16px;
  border: 1px solid var(--border-med);
  border-radius: var(--r-btn);
  color: var(--ink);
  background: #fff;
  font: 400 15px var(--sans);
}
/* The success line is coloured by the page script; hold it to the brand accent. */
.legacy-news #news-nl-msg[style*="189, 91, 168"] {
  color: #a54891 !important;
}
.legacy-news .press-note {
  gap: 14px;
  margin-top: 1.5rem;
  padding: 1.25rem 1.5rem;
  border: 1px solid var(--rule);
  border-radius: var(--r-card);
  background: #fff;
}
.legacy-news .press-note svg {
  color: var(--ink-mute);
}
.legacy-news .press-note p {
  color: var(--ink-2);
  font-size: 15px;
}

@media (max-width: 660px) {
  .legacy-news .page-header {
    padding-top: 4.5rem;
    padding-bottom: 3rem;
  }
  .legacy-news .featured,
  .legacy-news .featured--single {
    padding: 1.5rem 1.25rem 1.75rem;
  }
  .legacy-news .ni-body {
    gap: 14px;
    padding: 1.25rem 1.125rem;
  }
  .legacy-news .ni-icon,
  .legacy-news :is(.nc-company, .nc-clinical, .nc-research, .nc-press) .ni-icon {
    width: 38px;
    height: 38px;
  }
  .legacy-news .newsletter-section {
    padding: 2rem 1.25rem;
  }
}
@media (max-width: 40rem) {
  /* The category chip already names the kind of item; the icon tile gives its width to the text. */
  .legacy-news .ni-icon,
  .legacy-news :is(.nc-company, .nc-clinical, .nc-research, .nc-press) .ni-icon {
    display: none;
  }
}

/* ==========================================================================
   /404: shell and CSS; the only text change is the button label (ER-01)
   ========================================================================== */
.legacy-404 .main {
  min-height: 0;
  padding: clamp(4rem, 2.5rem + 5vw, 7rem) 16px;
}
.legacy-404 .content {
  max-width: 36rem;
}
.legacy-404 .icon {
  margin-bottom: 1.5rem;
}
.legacy-404 .code {
  color: var(--ink);
  font: 300 clamp(5rem, 3.5rem + 6vw, 8rem) / 1 var(--sans);
  font-variant-numeric: tabular-nums lining-nums;
  font-variation-settings: normal;
  letter-spacing: -0.04em;
}
.legacy-404 .title {
  margin: 1rem 0 0.75rem;
  color: var(--ink);
  font: 620 var(--fs-display-3) / 1.1 var(--sans);
  font-variation-settings: normal;
  letter-spacing: -0.025em;
}
.legacy-404 .desc {
  max-width: 44ch;
  margin: 0 auto 2rem;
  color: var(--ink-2);
  font-size: 1rem;
  line-height: 1.65;
}
.legacy-404 .actions .btn {
  min-height: 48px;
  padding: 12px 22px;
}
.legacy-404 .btn-outline {
  border-color: var(--border-med);
  background: #fff;
  box-shadow: none;
}
.legacy-404 .btn-outline:hover {
  color: var(--ink);
  border-color: var(--ink);
  background: #fff;
}
@media (max-width: 40rem) {
  .legacy-404 .actions .btn {
    flex: 1 1 100%;
  }
}

/* ==========================================================================
   V31 pass 3: /clinicians, /patients, /research and /team take the wave as
   material. The hero field and a visual beside the text (under it below 64rem),
   the compass inline, cards and section edges in the gradient, a halo behind the
   team close. No new words; every id and test hook stays. The shared pieces
   (.p3-*) live in site.css.
   ========================================================================== */

/* ---- Heroes ---- */
@media (min-width: 64rem) {
  :is(.page-clinicians, .page-patients, .page-research, .page-team) .p3-hero {
    padding-block: clamp(3.5rem, 1rem + 4.5vw, 5.5rem);
  }
}
.page-team .p3-team {
  --p3-w: 27rem;
  --p3-w-sm: 21rem;
}

/* ---- /clinicians: the recorded compass, inline, so its labels set in Inter ----
   V6: the chart holds still (the halo's turn and the Time 2 fade are gone), so the page's one
   signature, the routine loop, never shares a phone screen with a second and third loop. */
.page-clinicians .compass-shell {
  position: relative;
  overflow: hidden;
  isolation: isolate;
}
.page-clinicians .compass-shell::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  z-index: 2;
  height: 2px;
  background: var(--wave);
}
.page-clinicians .compass-shell::after {
  content: "";
  position: absolute;
  inset: 18%;
  z-index: -1;
  border-radius: 50%;
  background: conic-gradient(
    from 200deg,
    color-mix(in oklab, var(--accent) 26%, transparent),
    color-mix(in oklab, var(--psycho) 26%, transparent),
    color-mix(in oklab, var(--bio-tint) 30%, transparent),
    color-mix(in oklab, var(--bio) 24%, transparent),
    color-mix(in oklab, var(--accent) 26%, transparent)
  );
  filter: blur(40px);
  opacity: 0.5;
}
.page-clinicians .compass-shell .compass-svg {
  display: block;
  width: 100%;
  height: auto;
  margin-inline: auto;
  overflow: visible;
}
/* Phones: the same labels, a little larger, so they stay legible at the reduced scale. */
@media (max-width: 40rem) {
  .page-clinicians .compass-axis {
    font-size: 16px;
  }
  .page-clinicians .compass-key {
    font-size: 12.5px;
  }
}
/* The three domains carry the chips' colours. */
.page-clinicians .domain-row b::before {
  content: "";
  display: inline-block;
  width: 0.5rem;
  height: 0.5rem;
  margin-right: 0.625rem;
  border-radius: 50%;
  background: var(--bio);
  box-shadow: 0 0 10px 1px color-mix(in oklab, var(--bio) 45%, transparent);
  vertical-align: 0.2em;
}
.page-clinicians .domain-row:nth-child(2) b::before {
  background: var(--psycho);
  box-shadow: 0 0 10px 1px color-mix(in oklab, var(--psycho) 45%, transparent);
}
.page-clinicians .domain-row:nth-child(3) b::before {
  background: var(--accent);
  box-shadow: 0 0 10px 1px color-mix(in oklab, var(--accent) 40%, transparent);
}

/* ---- Cards: a wave top edge and a faint glow in the corner ---- */
.page-clinicians .cards .card,
.page-patients .step {
  position: relative;
  overflow: hidden;
  background: radial-gradient(130% 100% at 0% 0%, color-mix(in oklab, var(--psycho) 7%, #fff) 0%, #fff 58%);
}
.page-clinicians .cards .card::before,
.page-patients .step::after {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  z-index: 3;
  height: 2px;
  background: var(--wave);
  transform-origin: left center;
}
/* The edge draws in once as the card arrives (not while motion is paused). */
html.motion:not([data-motion="paused"]) .page-clinicians .cards .card.reveal::before {
  transform: scaleX(0);
  transition: transform 1.1s cubic-bezier(0.2, 0.7, 0.2, 1) 0.2s;
}
html.motion:not([data-motion="paused"]) .page-clinicians .cards .card.reveal.in::before {
  transform: none;
}

/* ---- Section edges: none since V6 (the gradient rule under each hero is gone); a section
   starts on its ground and its spacing. ---- */

/* ---- /patients and /research heroes: the phone illustration and the pilot stat cards retired in
   V6 (the pilot numbers show once, in "What we measured"); the signature visuals are in the V6
   block at the end of this file. ---- */

/* The labelled numbers: the same card material, from 661px (on phones they stay a ledger). */
@media (min-width: 661px) {
  .page-research .evidence-figures {
    position: relative;
  }
  .page-research .evidence-figures::before {
    content: "";
    position: absolute;
    inset: -8% 6% 24%;
    z-index: 0;
    border-radius: 50%;
    background: conic-gradient(
      from 200deg,
      color-mix(in oklab, var(--accent) 30%, transparent),
      color-mix(in oklab, var(--psycho) 30%, transparent),
      color-mix(in oklab, var(--bio-tint) 34%, transparent),
      color-mix(in oklab, var(--bio) 26%, transparent),
      color-mix(in oklab, var(--accent) 30%, transparent)
    );
    filter: blur(48px);
    opacity: 0.4;
  }
  .page-research .study-numbers,
  .page-research .evidence-caveat {
    position: relative;
    z-index: 1;
  }
  .page-research .study-numbers div {
    overflow: hidden;
    box-shadow: var(--p3-chip-shadow);
  }
  .page-research .study-numbers div::before {
    content: "";
    position: absolute;
    inset: 0 0 auto;
    height: 2px;
    background: var(--wave);
  }
}

/* ---- /team: the portrait mosaic, the wave under each photo, a halo behind the close ---- */
.p3-face {
  position: absolute;
  left: var(--x);
  top: var(--y);
  z-index: 3;
  width: var(--s);
  aspect-ratio: 1;
  margin: calc(var(--s) / -2) 0 0 calc(var(--s) / -2);
  padding: 3px;
  border-radius: 50%;
  background: conic-gradient(from 210deg, var(--accent), var(--psycho), var(--bio), var(--bio-tint), var(--accent));
  box-shadow: 0 26px 50px -26px rgb(0 53 98 / 0.5);
}
.p3-face img {
  display: block;
  width: 100%;
  height: 100%;
  border: 3px solid #fff;
  border-radius: 50%;
  object-fit: cover;
  object-position: center 22%;
  background: var(--wash);
}
html.motion .p3-face {
  animation: p3-float 8s ease-in-out infinite;
  animation-delay: var(--d, 0s);
}
.page-team .team-card > div {
  position: relative;
}
.page-team .team-card > div::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 2px;
  background: var(--wave);
}
.page-team .team-close {
  position: relative;
  overflow: hidden;
  isolation: isolate;
}
.page-team .team-close::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  z-index: -1;
  width: min(48rem, 150%);
  aspect-ratio: 2 / 1;
  border-radius: 50%;
  background: radial-gradient(
    closest-side,
    color-mix(in oklab, var(--psycho) 22%, transparent),
    color-mix(in oklab, var(--accent) 9%, transparent) 50%,
    color-mix(in oklab, var(--bio) 5%, transparent) 72%,
    transparent
  );
  transform: translate(-50%, -50%);
}

/* ---- Card icons: the heading keeps clear of the corner tile ---- */
.page-clinicians .cards .card h3,
.page-patients .step h3 {
  padding-right: 3.5rem;
}
@media (max-width: 660px) {
  .page-clinicians .cards .card,
  .page-patients .step {
    --p3-icon-inset: 1.25rem;
  }
}

/* ---- Closing calls to action: a soft halo behind the buttons (the V31 close glow) ---- */
.page-clinicians .page-close,
.page-research main > .section:last-child .cta-pair {
  position: relative;
  isolation: isolate;
}
.page-clinicians .page-close::before,
.page-research main > .section:last-child .cta-pair::before {
  content: "";
  position: absolute;
  left: -2rem;
  top: 50%;
  z-index: -1;
  width: min(44rem, calc(100% + 2rem));
  aspect-ratio: 2.4 / 1;
  border-radius: 50%;
  background: radial-gradient(
    closest-side,
    color-mix(in oklab, var(--psycho) 20%, transparent),
    color-mix(in oklab, var(--accent) 8%, transparent) 50%,
    color-mix(in oklab, var(--bio) 5%, transparent) 72%,
    transparent
  );
  transform: translateY(-50%);
  pointer-events: none;
}

/* ==========================================================================
   V6 (Erez, 2026-09-30): one signature motion per content page, brought back
   from the home page's retired loops so the home stays light. Each is the
   page's hero visual, word-free and aria-hidden:
   - /clinicians: the routine loop and its sweep (03 Administrative, pass 4,
     c8ae087; since pass 5 the home plays one sweep, once);
   - /patients: "Two journeys, one record" (the home band, V31 build e7cff93
     to pass 4; since pass 5 the home plays it once);
   - /research: the compass flow (02 Clinical, pass 4).
   Motion budget: the hero field's drift and the signature, nothing else on
   the first screen (the halo, the core ring and the chips hold still here).
   The loops run under html.motion only, rest while the hero is off screen
   ([data-p3-idle] from shell.js), freeze with the motion toggle
   (html[data-motion="paused"]), and without motion (reduced motion, no
   JavaScript) each shows its still. No words, numbers, check marks or money
   sign; discrete dots, rings and straight record lines, never a traced
   signal line.
   ========================================================================== */
html.motion :is(.p3-loop, .p3-journeys, .p3-cflow) :is(.p3-halo, .p3-core-ring, .p3-chip) {
  animation: none;
}
@media (max-width: 40rem) {
  :is(.p3-loop, .p3-journeys) {
    --p3-chip: 2.75rem;
  }
}

/* ---- /clinicians: the routine loop ----
   Six touchpoints (onboarding, intake, check-in, follow-up, a call, progress notes) on one dashed
   ring around the Beacon core. The sweep (a conic arc masked to a band on the ring's radius) and
   its head turn once every 12s; each touchpoint wakes as the head passes (a pre-drawn glow whose
   opacity runs on the same 12s clock, 2s apart). Still: the head rests on the first touchpoint,
   lit. */
.page-clinicians .p3-loop {
  --p3-w: 28rem;
  --p3-w-sm: 21rem;
}
.p3-loop .p3-core {
  --p3-core: 30%;
}
.p3-loop-ring {
  position: absolute;
  inset: 0;
  z-index: 1;
  width: 100%;
  height: 100%;
  overflow: visible;
}
.p3-loop-sweep,
.p3-loop-head {
  position: absolute;
  inset: 13%;
  z-index: 1;
  border-radius: 50%;
}
.p3-loop-sweep {
  background: conic-gradient(
    from 0deg,
    transparent 0deg 240deg,
    color-mix(in oklab, var(--bio-tint) 55%, transparent) 295deg,
    color-mix(in oklab, var(--psycho) 95%, transparent) 342deg,
    var(--accent) 360deg
  );
  -webkit-mask: radial-gradient(closest-side, transparent calc(100% - 7px), #000 calc(100% - 6px), #000 calc(100% - 1px), transparent 100%);
  mask: radial-gradient(closest-side, transparent calc(100% - 7px), #000 calc(100% - 6px), #000 calc(100% - 1px), transparent 100%);
}
.p3-loop-head {
  z-index: 2;
}
.p3-loop-head i {
  position: absolute;
  left: 50%;
  top: 0;
  width: 11px;
  height: 11px;
  margin: -5.5px 0 0 -5.5px;
  border-radius: 50%;
  background: #fff;
  box-shadow:
    0 0 0 2px var(--accent),
    0 0 14px 4px color-mix(in oklab, var(--accent) 50%, transparent);
}
.p3-loop-node {
  position: absolute;
  left: var(--x);
  top: var(--y);
  z-index: 3;
  display: grid;
  width: var(--p3-chip, 3.25rem);
  height: var(--p3-chip, 3.25rem);
  margin: calc(var(--p3-chip, 3.25rem) / -2) 0 0 calc(var(--p3-chip, 3.25rem) / -2);
  place-items: center;
  border: 1px solid var(--rule);
  border-radius: 16px;
  color: var(--c, var(--social));
  background: #fff;
  box-shadow: var(--p3-chip-shadow);
}
.p3-loop-node svg {
  position: relative;
  z-index: 1;
  width: 44%;
  height: 44%;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.p3-loop-node::after {
  content: "";
  position: absolute;
  inset: -1px;
  border-radius: inherit;
  box-shadow:
    inset 0 0 0 1.5px var(--bio-tint),
    0 0 0 6px color-mix(in oklab, var(--bio-tint) 18%, transparent),
    0 0 22px var(--bio-tint);
  opacity: 0;
}
.p3-loop-node.is-lit::after {
  opacity: 1;
}
html.motion .p3-loop-sweep,
html.motion .p3-loop-head {
  animation: p3-spin 12s linear infinite;
}
html.motion .p3-loop-node::after {
  opacity: 0;
  animation: p3-loop-wake 12s linear infinite;
  animation-delay: calc(var(--i, 0) * 2s);
}
@keyframes p3-loop-wake {
  0% {
    opacity: 0;
  }
  2% {
    opacity: 1;
  }
  18%,
  100% {
    opacity: 0;
  }
}
@media (max-width: 40rem) {
  .p3-loop-node {
    border-radius: 14px;
  }
}

/* ---- /patients: two journeys, one record ----
   Your days (sleep, activity, check-ins, on the left) and your care team's (on the right) come in
   on dashed rails and meet in Beacon; one solid record line leaves it, with its entries. A dot
   rides each rail in turn, 2s apart on a 10s round: translateX runs linear while translateY eases
   (0.5, 0, 0.5, 1), so the dot follows the S-curve drawn in the SVG (the same control points),
   then fades into the core. One ripple leaves the core as each dot arrives (the ring's own 2s
   clock starts on the first arrival, at 3s). Still: no dot in flight; the rails, the core and the
   record line with its entries. */
.page-patients .p3-journeys {
  --p3-w: 28rem;
  --p3-w-sm: 21rem;
}
.p3-journeys .p3-core {
  --y: 44%;
  --p3-core: 30%;
}
.p3-jd,
.p3-jd > i {
  position: absolute;
  inset: 0;
}
.p3-jd {
  z-index: 2;
  opacity: 0;
}
.p3-jd > i::before,
.p3-cd::before {
  content: "";
  position: absolute;
  left: var(--x);
  top: var(--y);
  width: 7px;
  height: 7px;
  margin: -3.5px 0 0 -3.5px;
  border-radius: 50%;
  background: var(--c, var(--psycho));
  box-shadow: 0 0 10px 2px color-mix(in oklab, var(--c, var(--psycho)) 55%, transparent);
}
html.motion .p3-jd {
  animation: p3-jd-x 10s linear infinite;
  animation-delay: var(--d, 0s);
}
html.motion .p3-jd > i {
  animation: p3-jd-y 10s linear infinite;
  animation-delay: var(--d, 0s);
}
@keyframes p3-jd-x {
  0% {
    opacity: 0;
    transform: translateX(0);
  }
  4%,
  27% {
    opacity: 1;
  }
  30%,
  100% {
    opacity: 0;
    transform: translateX(var(--dx, 0));
  }
}
@keyframes p3-jd-y {
  0% {
    transform: translateY(0);
    animation-timing-function: cubic-bezier(0.5, 0, 0.5, 1);
  }
  30%,
  100% {
    transform: translateY(var(--dy, 0));
  }
}
.p3-jr,
.p3-cr {
  position: absolute;
  left: 50%;
  top: var(--ry, 50%);
  z-index: 2;
  width: var(--rs, 30%);
  aspect-ratio: 1;
  border: 1.5px solid color-mix(in oklab, var(--psycho) 65%, transparent);
  border-radius: 50%;
  opacity: 0;
  transform: translate(-50%, -50%);
}
.p3-jr {
  --ry: 44%;
}
html.motion .p3-jr {
  animation: p3-ripple 2s linear 3s infinite;
}
@keyframes p3-ripple {
  0% {
    opacity: 0.7;
    transform: translate(-50%, -50%) scale(1);
    animation-timing-function: cubic-bezier(0.2, 0.6, 0.3, 1);
  }
  60%,
  100% {
    opacity: 0;
    transform: translate(-50%, -50%) scale(1.6);
  }
}

/* ---- /research: the compass flow ----
   The PROMIS-29 profile's frame, word-free: eight spokes (seven domains and pain intensity) on
   three rings, one neutral profile, the Beacon core at the centre. One dot at a time runs down a
   spoke into the core, clockwise, 2s apart on a 16s round (1.4s down the spoke); one ring leaves
   the core as each dot arrives (its own 2s clock starts on the first arrival, at 1.4s). Still: no
   dot in flight. */
.page-research .p3-cflow {
  --p3-w: 28rem;
  --p3-w-sm: 21rem;
}
.p3-cflow .p3-core {
  --p3-core: 26%;
}
.p3-cflow-chart {
  position: absolute;
  inset: 0;
  z-index: 1;
  width: 100%;
  height: 100%;
  overflow: visible;
}
.p3-cd {
  position: absolute;
  inset: 0;
  z-index: 2;
  opacity: 0;
}
html.motion .p3-cd {
  animation: p3-cd 16s linear infinite;
  animation-delay: var(--d, 0s);
}
@keyframes p3-cd {
  0% {
    opacity: 0;
    transform: translate(0, 0);
    animation-timing-function: cubic-bezier(0.45, 0, 0.55, 1);
  }
  1.5%,
  7.5% {
    opacity: 1;
  }
  8.75%,
  100% {
    opacity: 0;
    transform: translate(var(--dx, 0), var(--dy, 0));
  }
}
.p3-cr {
  --rs: 26%;
}
html.motion .p3-cr {
  animation: p3-ripple 2s linear 1.4s infinite;
}

/* ---- /team: the motion budget (V6): the field's drift and the portraits' float, nothing
   else (the halo and the ripple rings hold still). ---- */
html.motion .page-team .p3-team :is(.p3-halo, .p3-rings i) {
  animation: none;
}

/* ---- /team: the advisors (V6; Jordan, 2026-09-30): a photo, the name and one specialty line
   per card, in the leadership cards' type; no institution, quote or result. Three across from
   661px; on phones a compact row. ---- */
.page-team .advisors {
  margin-top: clamp(3.5rem, 2.5rem + 3vw, 5.5rem);
}
.page-team .advisors-title {
  margin: 0;
  color: var(--ink);
  font: 620 var(--fs-display-3) / 1.1 var(--sans);
  letter-spacing: -0.025em;
}
.page-team .advisor-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.25rem;
  margin-top: 1.75rem;
}
.page-team .advisor-card {
  display: grid;
  justify-items: center;
  align-content: start;
  gap: 1.25rem;
  padding: 2rem 1.5rem 1.875rem;
  border: 1px solid var(--rule);
  border-radius: var(--r-card);
  background: #fff;
  text-align: center;
}
.page-team .advisor-photo {
  display: block;
  width: 7.5rem;
  aspect-ratio: 1;
  padding: 3px;
  border-radius: 50%;
  background: conic-gradient(from 210deg, var(--accent), var(--psycho), var(--bio), var(--bio-tint), var(--accent));
  box-shadow: 0 22px 44px -26px rgb(0 53 98 / 0.45);
}
.page-team .advisor-photo img {
  display: block;
  width: 100%;
  height: 100%;
  border: 3px solid #fff;
  border-radius: 50%;
  object-fit: cover;
  object-position: center 22%;
  background: var(--wash);
}
.page-team .advisor-card h3 {
  margin: 0;
  color: var(--ink);
  font: 620 1.1875rem/1.3 var(--sans);
  letter-spacing: -0.015em;
  text-wrap: balance;
}
.page-team .advisor-card p {
  margin: 0.5rem 0 0;
  color: var(--ink-mute);
  font: 600 0.75rem/1.4 var(--sans);
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.page-team .team-org,
.page-team .advisor-card .advisor-org { margin: .45rem 0 0; color: var(--ink-mute); font: 400 .8125rem/1.6 var(--sans); letter-spacing: 0; text-transform: none; }
.page-team .team-link,
.page-team .advisor-link { display: inline-flex; align-items: center; gap: .35rem; min-height: 36px; margin-top: .6rem; color: var(--bio); font: 600 .8125rem/1.4 var(--sans); text-decoration: underline; text-underline-offset: 4px; }
.page-team .team-section-intro { max-width: 640px; margin: .75rem 0 1.75rem; color: var(--ink-2); line-height: 1.7; }
.page-team .team-close-copy { margin: 1rem 0 0; color: var(--ink-2); line-height: 1.7; }
@media (max-width: 980px) {
  .page-patients .privacy-qa {
    grid-template-columns: minmax(0, 1fr);
    gap: 0.75rem;
  }
}
@media (max-width: 660px) {
  .page-patients .privacy-qa > div {
    padding: 1.25rem 1.25rem 1.375rem;
  }
  .page-team .advisor-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 0.75rem;
  }
  .page-team .advisor-card {
    grid-template-columns: auto minmax(0, 1fr);
    justify-items: start;
    align-items: center;
    gap: 1rem;
    padding: 1rem 1.25rem;
    text-align: left;
  }
  .page-team .advisor-photo {
    width: 4.75rem;
  }
  .page-team .advisor-card h3 {
    font-size: 1.0625rem;
  }
}

/* Content is legible while scrolling; entrance motion never leaves blank sections. */
html.motion :is(.page-clinicians,.page-patients,.page-research,.page-team) .reveal { opacity:1; transform:translateY(8px); transition:transform .4s ease; }
html.motion :is(.page-clinicians,.page-patients,.page-research,.page-team) .reveal.in { transform:none; }
@media(max-width:42rem) {
 :is(.page-clinicians,.page-patients,.page-research,.page-team) .page-hero { padding-top:2.5rem; padding-bottom:3rem; }
 :is(.page-clinicians,.page-patients,.page-research,.page-team) .page-hero .lede { margin-top:1.125rem; }
 :is(.page-clinicians,.page-patients,.page-research,.page-team) .cta-pair { margin-top:1.5rem; }
}
