/* Logical properties throughout, so the same stylesheet mirrors for dir="rtl".
   Each service is a line that starts at a ring. --line carries its colour. */

/* Private resource preview additions retain the R002 type, colour and line system. */
.preview-note { border-block-end: 1px solid var(--rule); color: var(--ink-2); font-family: var(--font-label); font-size: 15px; padding-block: 7px; }
.resource-grid { list-style: none; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s5); }
.resource-card { border-block-start: 2px solid var(--ink); padding-block-start: var(--s2); display: flex; flex-direction: column; min-width: 0; }
.resource-number { color: var(--line-clin); font-family: var(--font-label); font-size: 16px; margin-block-end: var(--s3); }
.resource-card h3 { font-size: 29px; font-weight: 420; }
.resource-title-fa { color: var(--ink-2); font-size: 22px; line-height: 1.7; margin-block: var(--s2); text-align: start; }
.resource-state { color: var(--ink-2); font-family: var(--font-label); font-size: 16px; margin-block: auto var(--s2); }
.resource-languages { display: flex; justify-content: space-between; gap: var(--s2); border-block-start: 1px solid var(--rule); padding-block: 6px; }
.resource-languages a { display: inline-flex; align-items: center; gap: 14px; min-height: 48px; font-family: var(--font-label); font-weight: 600; text-decoration: none; }
.resource-languages a[lang|="fa"] { font-family: var(--font-fa); font-size: 22px; }
.resource-languages a[dir="rtl"] .arw { transform: scaleX(-1); }
.resource-intro { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s6); align-items: start; margin-block-end: var(--s6); }
.resource-warning { border-inline-start: 3px solid var(--line-clin); background: var(--paper-deep); padding: var(--s2) var(--s3); font-family: var(--font-label); font-size: 18px; line-height: 1.6; }
.resource-index-note { color: var(--ink-2); margin-block-start: var(--s5); max-width: 42rem; }
.resource-tools { display: flex; align-items: center; justify-content: space-between; gap: var(--s3); padding-block: var(--s2); font-family: var(--font-label); font-size: 17px; }
.resource-tools a { display: inline-flex; align-items: center; min-height: 44px; gap: 14px; }
.language-switch[lang|="fa"] { font-family: var(--font-fa); font-size: 23px; }
.resource-copy h2 { margin-block: var(--s6) var(--s3); scroll-margin-block-start: var(--s3); }
.resource-copy { margin-block-start: var(--s4); }
.resource-phone { direction: ltr; unicode-bidi: isolate; white-space: nowrap; }
.mandatory-draft { font-family: "Source Sans 3 Variable", "Segoe UI", Arial, sans-serif; font-weight: 600; text-align: start; }
.resource-copy h3 { margin-block: var(--s4) var(--s2); }
.resource-copy ul { margin-block: var(--s3); }
.resource-copy li + li { margin-block-start: 10px; }
.resource-end { border-block-start: 1px solid var(--rule); margin-block-start: var(--s6); }
/* R005: triage blocks in clinical handouts (routine, same-day, emergency). */
.resource-tier { border-inline-start: 3px solid var(--rule); padding: var(--s2) var(--s3); margin-block: var(--s3); }
.resource-tier-soon { border-inline-start-color: var(--line-clin); background: var(--paper-deep); }
.resource-tier-emergency { border-inline-start: 4px solid var(--line-therapy); background: var(--paper-deep); }
.resource-copy .resource-tier h3 { margin-block: 0 var(--s1); }
.resource-tier ul { margin-block: var(--s1); }
.resource-tier > :last-child { margin-block-end: 0; }
@media print { .resource-tier { break-inside: avoid; } }
@media (max-width: 700px) { .resource-tier { padding: var(--s2); margin-inline: calc(var(--s1) * -1); } }
.fa-resource-links { list-style: none; margin-block: var(--s3); }
.fa-resource-links a { display: inline-flex; align-items: center; min-height: 48px; }
bdi { unicode-bidi: isolate; }
@media (min-width: 701px) and (max-width: 1600px) {
  .mast .mast-main { flex-wrap: wrap; padding-block-start: 14px; gap: 0 var(--s4); }
  .mast .nav { margin-inline-start: 0; width: 100%; }
  .mast .nav ul { justify-content: space-between; gap: 12px; }
  .mast .nav a { min-height: 52px; font-size: 17px; }
}
@media (max-width: 900px) {
  .resource-grid { gap: var(--s3); }
  .resource-card h3 { font-size: 25px; }
  .resource-intro { grid-template-columns: 1fr; gap: var(--s3); }
}
@media (max-width: 700px) {
  .resource-grid { grid-template-columns: 1fr; gap: var(--s4); }
  .resource-number { margin-block-end: var(--s1); }
  .resource-card h3 { font-size: 28px; }
  .resource-state { margin-block: 0 var(--s2); }
  .resource-intro { margin-block-end: var(--s4); }
  .resource-warning { padding: var(--s2); font-size: 17px; }
  .resource-tools { font-size: 16px; }
  .resource-copy h2 { margin-block-start: var(--s5); }
  .preview-note { font-size: 14px; }
}
@media print { .preview-note { display: block !important; } .resource-tools, .resource-end { display: none; } }
@media print { .resource-copy p, .resource-copy li { break-inside: avoid; } }

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-block-start: var(--s3); }
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--font-text);
  font-size: var(--text-body);
  line-height: var(--leading-body);
  font-optical-sizing: auto;
  text-rendering: optimizeLegibility;
}
[lang|="fa"] { font-family: var(--font-fa); letter-spacing: 0; }
html[dir="rtl"] body { font-size: calc(var(--text-body) + 1.5px); line-height: 1.85; }
html[dir="rtl"] main p, html[dir="rtl"] .tx-short { max-width: 35rem; }
h1, h2, h3, p, ul, ol, dl, dd { margin: 0; }
ul, ol { padding: 0; }
p + p { margin-block-start: var(--s2); }
strong { font-weight: var(--weight-strong); }

a { color: var(--ink); text-decoration-thickness: 1px; text-underline-offset: 3px; text-decoration-color: currentColor; }
a:hover { color: var(--line); text-decoration-thickness: 2px; }
:focus-visible { outline: 2.5px solid var(--ink); outline-offset: 3px; border-radius: 1px; }
.nb { white-space: nowrap; }
.vh { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.arw { width: 22px; height: 22px; flex: none; }
html[dir="rtl"] .arw { transform: scaleX(-1); }
.wrap { width: 100%; max-width: var(--wrap-max); margin-inline: auto; padding-inline: var(--gutter); }

.skip {
  position: absolute; inset-inline-start: var(--s2); inset-block-start: -80px; z-index: 100;
  padding: var(--s1) var(--s2); background: var(--ink); color: var(--on-ink); font-family: var(--font-label);
}
.skip:focus { inset-block-start: var(--s1); color: var(--on-ink); }

/* Headings */
h1 { font-size: var(--text-h1); line-height: 1.12; font-weight: var(--weight-display); letter-spacing: -0.014em; text-wrap: balance; }
h2 { font-size: var(--text-h2); line-height: 1.16; font-weight: var(--weight-title); letter-spacing: -0.008em; text-wrap: balance; }
h3 { font-size: var(--text-h3); line-height: 1.28; font-weight: 560; }
html[dir="rtl"] h1 { letter-spacing: 0; line-height: 1.4; font-weight: 500; }
html[dir="rtl"] h2 { letter-spacing: 0; line-height: 1.5; font-weight: 600; font-size: clamp(27px, 2.6vw, 36px); }
html[dir="rtl"] h3 { line-height: 1.6; font-weight: 600; }
.lede { font-size: var(--text-lede); line-height: 1.46; }
html[dir="rtl"] .lede { line-height: 1.85; }

/* The line device */
.line-mark { display: block; position: relative; height: var(--stroke); background: var(--line); margin-block-end: var(--s4); margin-inline-start: 6px; }
.line-mark::before {
  content: ""; position: absolute; inset-inline-start: -6px; inset-block-start: -5px;
  width: 12px; height: 12px; border-radius: 50%; background: var(--paper); border: var(--stroke) solid var(--line);
}
.band-tint .line-mark::before { background: var(--paper-deep); }

/* Actions */
.go {
  display: inline-flex; align-items: center; gap: 10px; min-height: var(--target-min);
  font-family: var(--font-label); font-size: 17px; font-weight: 600; color: var(--line); text-decoration: none;
}
html[dir="rtl"] .go { font-size: 18px; }
.go:hover { text-decoration: underline; text-underline-offset: 4px; }
.go .arw { transition: transform 140ms ease; }
.go:hover .arw { transform: translateX(4px); }
html[dir="rtl"] .go:hover .arw { transform: scaleX(-1) translateX(4px); }
.btn {
  display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 8px 22px;
  background: var(--line); color: var(--on-ink); border: var(--stroke) solid var(--line); border-radius: 1px;
  font-family: var(--font-label); font-size: 17px; font-weight: 600; line-height: 1.25; text-decoration: none; cursor: pointer;
}
html[dir="rtl"] .btn { font-size: 18px; }
.btn:hover { background: transparent; color: var(--line); }
.btn-line { background: transparent; color: var(--line); }
.btn-line:hover { background: var(--line); color: var(--on-ink); }

/* Masthead */
.mast { font-family: var(--font-label); }
.util { border-block-end: 1px solid var(--rule); font-size: 15px; line-height: 1.3; color: var(--ink-2); }
.util-in { display: flex; align-items: center; gap: var(--s4); min-height: 40px; }
.util-who { margin-inline-end: auto; }
.util-contact { display: flex; gap: var(--s3); }
.util-contact div { display: flex; gap: 6px; }
.util-contact dd { color: var(--ink); white-space: nowrap; }
.util-contact a { color: inherit; text-decoration: none; display: inline-flex; align-items: center; min-height: 24px; }
.util-contact a:hover { text-decoration: underline; }
.util-urgent { color: var(--ink); font-weight: 650; text-underline-offset: 3px; display: inline-flex; align-items: center; min-height: 28px; white-space: nowrap; }
.mast-main { display: flex; align-items: center; gap: var(--s4); min-height: 76px; border-block-end: 0; }
.mast::after { content: ""; display: block; border-block-start: 3px double var(--rule-strong); }
.wordmark {
  font-family: var(--font-text); font-size: 29px; line-height: 1.1; font-weight: 420; letter-spacing: -0.006em;
  color: var(--ink); text-decoration: none; display: inline-flex; align-items: center; min-height: var(--target-min); white-space: nowrap;
}
.wordmark:hover { color: var(--ink); }
html[dir="rtl"] .wordmark { font-weight: 600; letter-spacing: 0; }
.mast-urgent { display: none; }
.nav { margin-inline-start: auto; }
.nav ul { list-style: none; display: flex; align-items: stretch; gap: var(--s3); }
.nav a {
  position: relative; display: inline-flex; align-items: center; min-height: 76px; font-size: 18px; font-weight: 500; color: var(--ink);
  text-decoration: none; white-space: nowrap;
}
html[dir="rtl"] .nav a { font-size: 19px; }
.nav a::after { content: ""; position: absolute; inset-inline: 0; inset-block-end: 0; height: 3px; background: var(--line); transform: scaleX(0); transition: transform 140ms ease; }
.nav a:hover { color: var(--line); }
.nav a:hover::after, .nav a[aria-current="page"]::after { transform: scaleX(1); }
.nav a[aria-current="page"] { color: var(--line); font-weight: 650; }
.nav-fa { padding-inline-start: var(--s3); position: relative; }
.nav-fa::before { content: ""; position: absolute; inset-inline-start: 0; inset-block: 26px; width: 1px; background: var(--rule); }
.nav-fa a { font-family: var(--font-fa); font-size: 21px; }
html[dir="rtl"] .nav-fa a { font-family: var(--font-label); font-size: 17px; }
html[dir="rtl"] .nav-fa a[lang="en"] { font-family: "Source Sans 3 Variable", "Segoe UI", Arial, sans-serif; }

/* Home: first screen */
.hero { display: grid; grid-template-columns: minmax(0, 7.7fr) minmax(0, 4.3fr); gap: var(--s6); align-items: end; padding-block: var(--s7) var(--s7); }
.hero .hero-lede { font-size: 18.5px; line-height: 1.48; color: var(--ink); }
html[dir="rtl"] .hero .hero-lede { font-size: 20px; line-height: 1.85; }

.directory { --path-pad: 28px; padding-block-end: var(--s2); }
.dir-list {
  list-style: none; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-template-rows: auto auto auto auto auto; margin-inline: calc(var(--path-pad) * -1);
}
.directory-2 .dir-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.path {
  position: relative; display: grid; grid-row: span 5; grid-template-rows: subgrid; align-items: start;
  padding: var(--s4) var(--path-pad) var(--s3); transition: background-color 140ms ease;
}
.path::before { content: ""; position: absolute; inset-inline: calc(var(--path-pad) + 6px) var(--path-pad); inset-block-start: 0; height: var(--stroke); background: var(--line); }
.path::after {
  content: ""; position: absolute; inset-inline-start: var(--path-pad); inset-block-start: -5px;
  width: 12px; height: 12px; border-radius: 50%; background: var(--paper); border: var(--stroke) solid var(--line);
}
.path:hover { background: var(--sheet); }
.path-for { font-family: var(--font-label); font-size: var(--text-label); color: var(--ink-2); line-height: 1.35; padding-block-end: var(--s1); }
.path-title { font-size: var(--text-path); font-weight: 400; line-height: 1.12; letter-spacing: -0.012em; padding-block-end: 12px; }
html[dir="rtl"] .path-title { line-height: 1.5; font-size: clamp(28px, 2.6vw, 36px); font-weight: 500; }
.path-link { color: var(--ink); text-decoration: none; }
.path-link:hover { color: var(--line); }
.path-link::after { content: ""; position: absolute; inset: 0; }
.path-link:focus-visible { outline: none; }
.path-link:focus-visible::after { outline: 2.5px solid var(--ink); outline-offset: -3px; }
.path-body { font-size: 18.5px; line-height: 1.42; padding-block-end: var(--s2); }
html[dir="rtl"] .path-body { line-height: 1.75; font-size: 19.5px; }
.path-key, .path-arw { display: none; }
.path-facts { font-family: var(--font-label); font-size: 16px; line-height: 1.35; padding-block-end: var(--s2); align-self: stretch; }
html[dir="rtl"] .path-facts { font-size: 17.5px; line-height: 1.6; }
.path-facts > div { display: grid; grid-template-columns: 86px minmax(0, 1fr); gap: var(--s1); padding-block: 8px; border-block-start: 1px solid var(--rule); }
.path-facts > div:last-child { border-block-end: 1px solid var(--rule); }
.path-facts dt { color: var(--ink-2); }
.path-facts dd { font-weight: 500; }
.path-act { display: flex; flex-wrap: wrap; align-items: center; gap: 4px var(--s2); min-height: 48px; }
.path-go { position: relative; }
.path-cta { position: relative; z-index: 1; padding-inline: 16px; font-size: 16.5px; }
.path:hover .path-go .arw { transform: translateX(4px); }
html[dir="rtl"] .path:hover .path-go .arw { transform: scaleX(-1) translateX(4px); }

/* Farsi and urgent: present, quieter than the three paths */
.signal {
  display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--s7);
  border-block: 1px solid var(--rule); margin-block-start: var(--s2);
  font-family: var(--font-label); font-size: 16.5px; line-height: 1.35;
}
.signal-1 { grid-template-columns: 1fr; }
.signal p { margin: 0; display: flex; align-items: center; min-height: 52px; padding-block: 8px; }
.signal-fa { gap: 6px var(--s2); flex-wrap: wrap; }
.signal-label { font-weight: 650; }
.signal-text { flex: 1 1 22em; color: var(--ink-2); }
.signal-link { font-family: var(--font-fa); font-size: 20px; font-weight: 500; white-space: nowrap; line-height: 1.5; }
.signal-urgent a { color: var(--ink); text-decoration: none; }
.signal-urgent a:hover { color: var(--ink); text-decoration: underline; }
.signal-urgent strong { font-weight: 650; }
html[dir="rtl"] .signal { font-size: 18px; line-height: 1.6; }

/* Sections */
.section { padding-block: var(--s12) var(--s12); }
#routes { padding-block-start: var(--s10); }
.section-tight { padding-block: var(--s8) var(--s10); }
.section-head { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--s7); align-items: end; margin-block-end: var(--s7); }
.section-lead { font-size: 19.5px; line-height: 1.5; color: var(--ink); }
html[dir="rtl"] .section-lead { font-size: 20px; line-height: 1.85; }

/* The route: fine lines with numbered rings */
.route { list-style: none; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.route-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.stop { position: relative; padding-block-start: 52px; padding-inline-end: var(--s4); }
.stop::before { content: ""; position: absolute; inset-inline: 0; inset-block-start: 16px; height: var(--stroke); background: var(--line); }
.stop:last-of-type::before { inset-inline-end: calc(100% - 34px); }
.route:has(.stop-tail) .stop:last-of-type::before { inset-inline-end: 0; }
.stop-n {
  position: absolute; inset-block-start: 0; inset-inline-start: 0; z-index: 1;
  width: 34px; height: 34px; border-radius: 50%; display: flex; align-items: center; justify-content: center;
  background: var(--paper); color: var(--line); border: var(--stroke) solid var(--line);
  font-size: 16px; line-height: 1; font-feature-settings: "lnum";
}
.band-tint .stop-n { background: var(--paper-deep); }
.stop h3 { font-size: 21px; margin-block-end: 6px; }
.stop p { font-size: 17.5px; line-height: 1.48; color: var(--ink); }
html[dir="rtl"] .stop p { font-size: 19px; line-height: 1.8; }
.stop-tail { padding-block-start: 0; display: flex; align-items: flex-start; position: relative; }
.stop-tail::before { content: ""; position: absolute; inset-inline-start: 0; inset-block-start: 16px; width: 0; }
.after-route { margin-block-start: var(--s5); padding-inline-start: var(--s3); border-inline-start: var(--stroke) solid var(--line); max-width: 44rem; font-size: 18px; line-height: 1.5; }
html[dir="rtl"] .after-route { line-height: 1.85; font-size: 19.5px; }
.route-band { padding-block-start: var(--s8); }
.route-band::after { content: ""; display: block; margin-block-start: var(--s8); border-block-end: 1px solid var(--rule); }
.route-band > h2 { margin-block-end: var(--s2); }
.route-band > .section-lead { margin-block-end: var(--s6); max-width: 40rem; }
.route-band > h2 + .route { margin-block-start: var(--s5); }

/* Route pair on the home page */
.route-pair > .route-row { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 9fr); gap: var(--s5); padding-block: var(--s5); border-block-start: 1px solid var(--rule); }
.route-pair > .route-row:last-child { border-block-end: 1px solid var(--rule); }
.route-name h3 { font-size: 26px; font-weight: 420; letter-spacing: -0.006em; line-height: 1.2; }
.route-name h3 a { color: var(--line); text-decoration: none; }
.route-name h3 a:hover { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; }
.route-name p { font-family: var(--font-label); font-size: 16px; color: var(--ink-2); margin-block-start: 4px; }
.route-pair .stop { padding-inline-end: var(--s3); }
.route-pair .route { grid-template-columns: repeat(4, minmax(0, 1fr)); }

/* Comparison */
.compare-h { font-size: 26px; font-weight: 420; letter-spacing: -0.006em; margin-block: var(--s8) var(--s3); }
.compare { width: 100%; table-layout: fixed; border-collapse: collapse; font-size: 18px; line-height: 1.45; }
.compare thead td { width: 20%; }
.compare thead th {
  text-align: start; font-size: 24px; font-weight: 420; letter-spacing: -0.006em; line-height: 1.2; color: var(--line);
  padding: 0 var(--s4) var(--s2) 0; border-block-end: var(--stroke) solid var(--line); vertical-align: bottom;
}
.compare tbody th { text-align: start; font-family: var(--font-label); font-size: 16px; font-weight: 500; color: var(--ink-2); padding: var(--s2) var(--s4) var(--s2) 0; vertical-align: top; }
.compare td { padding: var(--s2) var(--s4) var(--s2) 0; vertical-align: top; }
.compare tbody tr { border-block-end: 1px solid var(--rule); }
.rule-line {
  font-size: clamp(21px, 1.9vw, 25px); line-height: 1.34; font-weight: 400; letter-spacing: -0.004em;
  margin-block-start: var(--s6); max-width: 46rem;
}
html[dir="rtl"] .rule-line { line-height: 1.75; letter-spacing: 0; font-weight: 500; }
.doc-main .compare { margin-block-start: var(--s3); }
.doc-main .compare thead th { font-size: 21px; padding-inline-end: var(--s3); }
.doc-main .compare td, .doc-main .compare tbody th { padding-inline-end: var(--s3); }
.doc-main .rule-line { font-size: 21px; margin-block-start: var(--s4); }

/* Tinted band: psychotherapy on home, shared approach on its own page */
.band-tint { background: var(--paper-deep); padding-block: var(--s12); }
.tx-in { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--s8) var(--s10); align-items: start; }
.tx-lead h2 { margin-block-end: var(--s3); }
.tx-lead > p { max-width: 34rem; }
.tx-acts { margin-block-start: var(--s4) !important; }
.tx-note { margin-block-start: var(--s3) !important; padding-inline-start: var(--s2); border-inline-start: var(--stroke) solid var(--line); font-size: 18px; }
html[dir="rtl"] .tx-note { font-size: 19.5px; line-height: 1.8; }
.tx-list { list-style: none; border-block-end: 1px solid #c9c2b1; }
.tx-list li { border-block-start: 1px solid #c9c2b1; }
.tx-list li.tx-more { border-block-start: 0; padding-block: var(--s1) 0; }
.tx-list:has(.tx-more) { border-block-end: 0; }
.tx-list:has(.tx-more) li:nth-last-child(2) { border-block-end: 1px solid #c9c2b1; }
.tx-list a, .tx-list li > div { display: grid; grid-template-columns: minmax(0, 1fr) 22px; gap: 4px var(--s3); align-items: center; padding-block: var(--s3); color: var(--ink); text-decoration: none; }
.tx-list li.tx-more a { display: inline-flex; padding-block: var(--s1); color: var(--line); }
.tx-list li > div { grid-template-columns: minmax(0, 1fr); }
.tx-title { grid-column: 1; font-size: 24px; font-weight: 420; letter-spacing: -0.006em; line-height: 1.25; }
html[dir="rtl"] .tx-title { letter-spacing: 0; font-weight: 600; line-height: 1.6; font-size: 22px; }
.tx-short { grid-column: 1; font-size: 18px; line-height: 1.45; color: var(--ink); }
html[dir="rtl"] .tx-short { line-height: 1.8; font-size: 19.5px; }
.tx-list a .arw { grid-column: 2; grid-row: 1 / span 2; color: var(--line); transition: transform 140ms ease; }
.tx-list a:hover .tx-title { color: var(--line); }
.tx-list a:hover .arw { transform: translateX(4px); }
.tx-inquire { margin-block-start: var(--s3); }

/* About row */
.about-row { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--s10); }
.about-row h2 { margin-block-end: var(--s3); font-size: clamp(28px, 2.5vw, 34px); }
.about-row > div:first-child > p:not(.about-go) { max-width: 38rem; }
.about-go { margin-block-start: var(--s2) !important; }
.contact-list > div { display: grid; grid-template-columns: 110px minmax(0, 1fr); gap: var(--s2); align-items: baseline; padding-block: 12px; border-block-start: 1px solid var(--rule); }
.contact-list > div:last-child { border-block-end: 1px solid var(--rule); }
.contact-list dt { font-family: var(--font-label); font-size: 16px; color: var(--ink-2); }
.contact-list dd { font-size: 20px; line-height: 1.3; overflow-wrap: anywhere; }
.contact-list a { text-decoration: none; }
.contact-list a:hover { text-decoration: underline; }
html[dir="rtl"] .contact-list dd { text-align: start; }
html[dir="rtl"] .contact-list dt { font-size: 18px; }

/* Urgent */
.urgent-band { background: var(--ink); color: var(--on-ink); padding-block: var(--s8); }
.urgent-band:focus { outline: none; }
.urgent-in { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--s4) var(--s10); align-items: start; }
.urgent-band h2 { font-size: clamp(27px, 2.4vw, 33px); margin-block-end: var(--s2); color: var(--on-ink); }
.urgent-band p { color: var(--on-ink-2); font-size: 18px; line-height: 1.5; max-width: 30rem; }
html[dir="rtl"] .urgent-band p { line-height: 1.85; font-size: 19px; }
.urgent-list { list-style: none; font-size: 19px; line-height: 1.5; }
.urgent-list li { padding-block: var(--s2); border-block-start: 1px solid #3c4a63; }
.urgent-list li:last-child { border-block-end: 1px solid #3c4a63; }
html[dir="rtl"] .urgent-list { line-height: 1.85; font-size: 20px; }
.urgent-band strong { color: var(--brass-light); font-size: 1.08em; }
.urgent-band:target h2 { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 6px; text-decoration-color: var(--brass-light); }

/* Footer */
.foot { background: var(--ink); color: var(--on-ink-2); border-block-start: 1px solid #3c4a63; padding-block: var(--s6); font-family: var(--font-label); font-size: 16px; line-height: 1.5; }
.foot a { color: var(--on-ink); }
.foot a:hover { color: var(--brass-light); }
.foot :focus-visible, .urgent-band :focus-visible { outline-color: var(--on-ink); }
.foot-in { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 3fr) minmax(0, 5fr); gap: var(--s4) var(--s7); }
.foot-name { font-family: var(--font-text); font-size: 21px; color: var(--on-ink); margin-block-end: 6px; }
html[dir="rtl"] .foot-name { font-weight: 600; }
.foot nav ul { list-style: none; columns: 1; }
.foot nav a { display: inline-flex; align-items: center; min-height: 28px; text-decoration: none; }
.foot nav a:hover { text-decoration: underline; }
.foot-contact > div { display: grid; grid-template-columns: 88px minmax(0, 1fr); gap: var(--s1); }
.foot-contact a { display: inline-flex; align-items: center; min-height: 26px; }
.foot-note { grid-column: 1 / -1; padding-block-start: var(--s3); border-block-start: 1px solid #3c4a63; font-size: 15px; }
.foot-fa { grid-template-columns: 1fr; }
.foot-fa .foot-note { padding-block-start: var(--s2); font-size: 16px; }

/* Inner pages */
.pagehead { padding-block: var(--s7) var(--s7); border-block-end: 1px solid var(--rule); }
.pagehead-in { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--s10); align-items: start; }
.pagehead-main .line-mark { margin-block-end: var(--s4); }
.pagehead h1 { font-size: clamp(40px, 4.6vw, 64px); }
.pagehead .lede { margin-block-start: var(--s3); max-width: 40rem; }
.pagehead-in:not(:has(.pagehead-side)) { grid-template-columns: minmax(0, 1fr); }
.side-facts { font-family: var(--font-label); font-size: 17px; line-height: 1.35; }
.side-facts > div { display: grid; grid-template-columns: 130px minmax(0, 1fr); gap: var(--s2); padding-block: 11px; border-block-start: 1px solid var(--rule); }
.side-facts > div:last-child { border-block-end: 1px solid var(--rule); }
.side-facts dt { color: var(--ink-2); }
.side-facts dd { font-weight: 500; }
.fax-panel { margin-block-end: var(--s3); }
.fax-label { font-family: var(--font-label); font-size: 16px; color: var(--ink-2); }
.fax-num { font-size: clamp(36px, 3.4vw, 48px); font-weight: 380; letter-spacing: -0.012em; line-height: 1.15; color: var(--line); font-feature-settings: "lnum"; white-space: nowrap; }

.inq-panel { background: var(--sheet); border-block-start: var(--stroke) solid var(--line); padding: var(--s4); }
.inq-panel h2 { font-size: 26px; line-height: 1.2; margin-block-end: var(--s1); }
.inq-panel > p { font-size: 18px; line-height: 1.45; margin-block-end: var(--s3); }
.inq-acts { display: flex; flex-wrap: wrap; align-items: center; gap: 12px var(--s3); font-family: var(--font-label); }
.inq-phone { font-size: 17px; margin: 0; display: inline-flex; gap: 6px; align-items: center; min-height: 44px; }
.inq-phone span { color: var(--ink-2); }
.inq-phone a { display: inline-flex; align-items: center; min-height: 44px; }
.inq-privacy { font-size: 17px; line-height: 1.5; }
html[dir="rtl"] .inq-privacy { font-size: 18.5px; line-height: 1.85; }

/* Pathways */
.pw-list { border-block-end: 1px solid var(--rule); }
.pw {
  display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 4fr) minmax(0, 4fr); gap: var(--s3) var(--s6);
  padding-block: var(--s6); border-block-start: 1px solid var(--rule); scroll-margin-block-start: var(--s2);
}
.pw:first-child { border-block-start: var(--stroke) solid var(--line); }
.pw-name h3 { font-size: clamp(26px, 2.4vw, 32px); font-weight: 400; letter-spacing: -0.01em; line-height: 1.16; color: var(--line); text-wrap: balance; }
.pw-name p { margin-block-start: var(--s2); }
.pw-lead { font-size: 19px; line-height: 1.5; }
.list-lead { font-family: var(--font-label); font-size: 16px; font-weight: 600; color: var(--ink-2); margin-block-end: var(--s1); }
.dash { list-style: none; }
.dash > li { position: relative; padding-inline-start: 1.25em; line-height: 1.45; }
.dash > li + li { margin-block-start: 8px; }
.dash > li::before { content: ""; position: absolute; inset-inline-start: 0; inset-block-start: 0.74em; width: 0.62em; height: 1px; background: var(--ink); }
.pw-focus .dash { font-size: 18px; }
html[dir="rtl"] .dash > li { line-height: 1.8; }

.common { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--s5) var(--s10); align-items: start; }
.common h2 { margin-block-end: var(--s3); font-size: clamp(27px, 2.4vw, 34px); }
.common-quote { font-size: clamp(23px, 2.1vw, 28px); font-style: italic; font-weight: 380; line-height: 1.32; color: var(--line); margin-block-end: var(--s2); }
.common-items > div { padding-block: var(--s3); border-block-start: 1px solid #c9c2b1; }
.common-items > div:last-child { border-block-end: 1px solid #c9c2b1; }
.common-items dt { font-size: 22px; font-weight: 500; line-height: 1.3; margin-block-end: 4px; }
.common-items dd { font-size: 18px; line-height: 1.5; }
.two-notes { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s6); margin-block-start: var(--s6); font-size: 17.5px; line-height: 1.5; }
.two-notes p { margin: 0; }

.inquire-band { padding-block: var(--s8); border-block-start: var(--stroke) solid var(--line); background: var(--sheet); }
.inquire-band:focus { outline: none; }
.inquire-in { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--s4) var(--s10); align-items: start; }
.inquire-in h2 { margin-block-end: var(--s2); }
.inquire-in p { max-width: 38rem; }
.inq-acts-large { padding-block-start: var(--s6); }

/* Doc layout */
.doc { display: grid; grid-template-columns: var(--side-col) minmax(0, var(--measure)); gap: var(--s10); justify-content: start; padding-block: var(--s8) var(--s12); }
.doc-side { min-width: 0; }
.toc { position: sticky; inset-block-start: var(--s3); font-family: var(--font-label); font-size: 16px; line-height: 1.3; }
.toc-h { font-weight: 600; color: var(--ink-2); margin-block-end: var(--s2); }
.toc ul { list-style: none; position: relative; }
.toc ul::before { content: ""; position: absolute; inset-inline-start: 5px; inset-block: 22px; width: var(--stroke); background: var(--line); }
.toc a { position: relative; display: flex; align-items: center; min-height: 44px; padding-block: 8px; padding-inline-start: 26px; text-decoration: none; color: var(--ink); }
.toc a:hover { color: var(--line); text-decoration: underline; }
.toc a::before { content: ""; position: absolute; inset-inline-start: 0; inset-block-start: calc(50% - 6px); width: 12px; height: 12px; border-radius: 50%; background: var(--paper); border: var(--stroke) solid var(--line); }
.toc a[aria-current] { font-weight: 650; color: var(--line); }
.toc a[aria-current]::before { background: var(--line); }
.toc-m { display: none; }

.block { padding-block-start: var(--s8); }
.block-first { padding-block-start: 0; }
.block > h2 { font-size: clamp(27px, 2.4vw, 34px); margin-block-end: var(--s3); }
.block > * + * { margin-block-start: var(--s2); }
.block > h2 + * { margin-block-start: 0; }
.block > h3 { margin-block-start: var(--s4); }
.block > h3 + p { margin-block-start: 6px; }
.block > .list-lead { margin-block-start: var(--s3); margin-block-end: 0; }
.block > .list-lead + ul { margin-block-start: var(--s1); }
.therapy-block { position: relative; margin-block-start: var(--s8); padding-block-start: 0; }
.therapy-block > .line-mark { margin-block-end: var(--s4); }
.therapy-block > .line-mark + h2 { margin-block-start: 0; }
.block-acts { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s1) var(--s4); margin-block-start: var(--s3) !important; }
.callout { background: var(--paper-deep); padding: var(--s3) var(--s4); margin-block-start: var(--s3) !important; }
.callout h3 { margin-block-end: 6px; font-size: 21px; }
.callout p { font-size: 18px; line-height: 1.5; }

/* Accordions */
.accs { border-block-start: 1px solid var(--rule-strong); }
.acc { border-block-end: 1px solid var(--rule); }
.acc summary { display: flex; align-items: center; justify-content: space-between; gap: var(--s2); min-height: 60px; padding-block: 12px; font-size: 20px; font-weight: 500; line-height: 1.3; cursor: pointer; list-style: none; }
.acc summary::-webkit-details-marker { display: none; }
.acc summary:hover { color: var(--line); }
.acc-mark { position: relative; width: 18px; height: 18px; flex: none; color: var(--line); }
.acc-mark::before, .acc-mark::after { content: ""; position: absolute; inset-block-start: 8px; inset-inline-start: 1px; width: 16px; height: 1.5px; background: currentColor; }
.acc-mark::after { transform: rotate(90deg); transition: transform 140ms ease; }
.acc[open] .acc-mark::after { transform: rotate(0deg); }
.acc-a { padding-block: 2px var(--s3); }
.acc-a > * + * { margin-block-start: var(--s2); }
.acc-a ul { list-style: none; }
.acc-a ul li { position: relative; padding-inline-start: 1.25em; }
.acc-a ul li + li { margin-block-start: 6px; }
.acc-a ul li::before { content: ""; position: absolute; inset-inline-start: 0; inset-block-start: 0.8em; width: 0.62em; height: 1px; background: var(--ink); }

/* Checklist */
.checklist { list-style: none; border-block-start: 1px solid var(--rule); margin-block-start: var(--s3) !important; }
.checklist li { display: grid; grid-template-columns: 32px minmax(0, 1fr); gap: var(--s1); align-items: start; padding-block: 11px; border-block-end: 1px solid var(--rule); }
.checklist input { width: 24px; height: 24px; margin: 2px 0 0; accent-color: var(--line); }
.checklist label { cursor: pointer; line-height: 1.45; font-size: 18px; }
.print-hint { margin-block-start: var(--s3) !important; }

/* Vertical route */
.route-v { display: block; margin-block-start: var(--s3); }
.route-v .stop { padding-block: 2px var(--s4); padding-inline: 56px 0; }
.route-v .stop::before { inset-inline: 16px auto; inset-block: 0; width: var(--stroke); height: auto; }
.route-v .stop:last-of-type::before { inset-inline-end: auto; inset-block-end: auto; height: 20px; }
.route-v .stop h3 { font-size: 21px; margin-block-end: 2px; }

/* Adult ADHD: two routes */
.two-routes { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s7); padding-block: var(--s7); border-block-end: 1px solid var(--rule); }
.two-route h2 { font-size: clamp(25px, 2.2vw, 30px); margin-block-end: var(--s2); }
.two-route .line-mark { margin-block-end: var(--s3); }
.two-route > p { max-width: 34rem; font-size: 18.5px; line-height: 1.5; }
.two-route > p:last-child { margin-block-start: var(--s1); }

/* Contact */
.contact-grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--s10); padding-block: var(--s7) var(--s10); align-items: start; }
.contact-grid h2 { font-size: clamp(27px, 2.4vw, 34px); margin-block-end: var(--s3); }
.need-list { list-style: none; }
.need-list > li { position: relative; padding-block: var(--s3); border-block-start: 1px solid var(--rule); }
.need-list > li:not(.need-urgent)::before { content: ""; position: absolute; inset-inline-start: 0; inset-block-start: -1px; width: 64px; height: var(--stroke); background: var(--line); }
.need-list > li:last-child { border-block-end: 1px solid var(--rule); }
.need-list p { font-size: 18px; line-height: 1.45; margin-block-start: 4px; }
.need-how { font-family: var(--font-label); font-size: 17px !important; font-weight: 500; margin-block-start: 8px !important; }
.need-how a { display: inline-flex; align-items: center; min-height: 28px; }
.contact-list-large dd { font-size: clamp(22px, 2vw, 27px); font-weight: 400; letter-spacing: -0.006em; }
.contact-office > p { margin-block-start: var(--s2); font-size: 18px; line-height: 1.5; }
.contact-fa { display: flex; flex-wrap: wrap; align-items: center; gap: 6px var(--s2); font-family: var(--font-label); margin-block-start: var(--s3) !important; }
.contact-fa a { font-family: var(--font-fa); font-size: 21px; display: inline-flex; align-items: center; min-height: 44px; }
.about-in { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--s4) var(--s10); }
.about-in > div { max-width: var(--measure); }
.about-in h2 { font-size: clamp(27px, 2.4vw, 34px); }
#about.band-tint { padding-block: var(--s10); }

/* Farsi layout pieces */
.fa-split { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--s5) var(--s10); align-items: start; }
.fa-split h2 { margin-block-end: var(--s2); }
.fa-split .rule-line { margin-block-start: 0; padding-block-start: var(--s2); }

/* Phone tabs and menu */
.tabs, .tabmenu { display: none; }

/* Small laptops: tighter single-row masthead */
@media (max-width: 1160px) {
  .wordmark { font-size: 25px; }
  .mast-main { gap: var(--s3); }
  .nav ul { gap: 18px; }
  .nav a { font-size: 17px; }
  .nav-fa { padding-inline-start: 18px; }
  .hero { gap: var(--s4); padding-block: var(--s4) var(--s5); }
  .hero .hero-lede { font-size: 17.5px; line-height: 1.45; }
  .path { padding-block-start: var(--s3); }
  .path-body { font-size: 17.5px; }
  .path-cta + .path-go { display: none; }
  .util-who { font-size: 14.5px; }
  .signal-fa { justify-content: space-between; }
  .signal-text { order: 3; flex: 1 1 100%; }
  .directory { --path-pad: 20px; }
  .tx-in, .common, .urgent-in, .about-in { gap: var(--s5); }
  .doc { gap: var(--s6); grid-template-columns: 200px minmax(0, 1fr); }
  .route-pair > .route-row { grid-template-columns: minmax(0, 1fr); gap: var(--s3); }
  .pw { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .pw-name { grid-column: 1 / -1; }
}

@media (max-width: 1060px) { .util-who { display: none; } .util-contact { margin-inline-end: auto; } }

/* Tablet: nav moves to its own row */
@media (max-width: 1000px) {
  .mast-main { flex-wrap: wrap; gap: 0 var(--s4); min-height: 0; padding-block-start: 12px; }
  .wordmark { flex: 1 0 100%; font-size: 27px; }
  .nav { margin-inline-start: 0; width: 100%; }
  .nav ul { justify-content: space-between; gap: var(--s2); }
  .nav a { min-height: 52px; }
  .nav-fa::before { inset-block: 16px; }
  .nav-fa { margin-inline-start: auto; }
}

/* Tablet */
@media (max-width: 980px) {
  .util-who { display: none; }
  .util-contact { margin-inline-end: auto; }
  .pagehead-in { grid-template-columns: minmax(0, 1fr); gap: var(--s4); }
  .doc { grid-template-columns: minmax(0, 1fr); gap: var(--s4); padding-block-start: var(--s5); }
  .doc-main { max-width: var(--measure); }
  .toc { display: none; }
  .toc-m { display: block; font-family: var(--font-label); font-size: 17px; border-block: 1px solid var(--rule); }
  .toc-m summary { display: flex; align-items: center; min-height: 52px; font-weight: 600; cursor: pointer; }
  .toc-m ul { list-style: none; padding-block-end: var(--s2); }
  .toc-m a { display: flex; align-items: center; min-height: 44px; }
  .hero { grid-template-columns: minmax(0, 1fr); gap: var(--s2); padding-block: var(--s4) var(--s5); }
  .hero h1 { max-width: 19em; }
  .section-head { grid-template-columns: minmax(0, 1fr); gap: var(--s2); margin-block-end: var(--s5); }
  .tx-in, .common, .urgent-in, .about-in, .inquire-in, .about-row, .contact-grid, .fa-split { grid-template-columns: minmax(0, 1fr); }
  .inq-acts-large { padding-block-start: 0; }
  .route { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s4) 0; }
  .route-3, .route-pair .route { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .stop:nth-of-type(2n)::before { inset-inline-end: calc(100% - 34px); }
  .stop:last-of-type::before { inset-inline-end: calc(100% - 34px); }
  .route:has(.stop-tail) .stop:last-of-type::before { inset-inline-end: calc(100% - 34px); }
  .stop-tail { padding-block-start: 0; align-items: center; }
  .route-v .stop:nth-of-type(2n)::before { inset-inline-end: auto; }
  .section { padding-block: var(--s10); }
  .band-tint { padding-block: var(--s10); }
  .foot-in { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
}

/* Directory stacks when three columns would crowd */
@media (max-width: 820px) {
  .dir-list, .directory-2 .dir-list { grid-template-columns: minmax(0, 1fr); grid-template-rows: none; margin-inline: 0; }
  .path { display: grid; grid-row: auto; grid-template-rows: none; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: var(--s5); align-items: start; padding: var(--s3) 0 var(--s2); }
  .path-for, .path-title, .path-body { grid-column: 1; }
  .path-facts { grid-column: 2; grid-row: 1 / span 2; padding-block-end: var(--s1); }
  .path-act { grid-column: 2; grid-row: 3; align-self: center; min-height: 48px; }
  .path-cta + .path-go { display: inline-flex; }
  html[dir="rtl"] .path-facts { grid-row: 1 / span 3; }
  html[dir="rtl"] .path-act { grid-row: 4; }
  .path::before { inset-inline: 6px 0; }
  .path::after { inset-inline-start: 0; }
  .path:hover { background: none; }
  .signal { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .signal-urgent { border-block-start: 1px solid var(--rule); }
  .two-routes { grid-template-columns: minmax(0, 1fr); gap: var(--s5); }
  .two-notes { grid-template-columns: minmax(0, 1fr); gap: var(--s2); }
}

/* Phone: tabs replace the top navigation */
@media (max-width: 700px) {
  html { scroll-padding-block-end: calc(var(--tabs-h) + 24px); }
  body { padding-block-end: calc(var(--tabs-h) + env(safe-area-inset-bottom)); }
  .util, .nav { display: none; }
  .mast-main { flex-wrap: nowrap; justify-content: space-between; padding-block: 8px; min-height: 60px; gap: var(--s2); }
  .wordmark { flex: 0 1 auto; font-size: 24px; }
  .mast-urgent {
    display: inline-flex; align-items: center; min-height: 44px; font-size: 16px; font-weight: 650; color: var(--ink);
    text-underline-offset: 3px; white-space: nowrap;
  }
  html[dir="rtl"] .mast-urgent { font-size: 18px; }

  .tabs {
    display: block; position: fixed; inset-inline: 0; inset-block-end: 0; z-index: 40; background: var(--sheet);
    border-block-start: 1px solid var(--rule-strong); padding-block-end: env(safe-area-inset-bottom);
    font-family: var(--font-label);
  }
  .tabs > ul { list-style: none; display: flex; }
  .tabs > ul > li { flex: 1 1 auto; min-width: 0; }
  .tabs > ul > li > a, .tabs > ul > li > button {
    position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px; width: 100%; min-height: var(--tabs-h);
    padding: 2px 3px; background: none; border: 0; color: var(--ink); text-decoration: none; font-family: inherit; font-size: 14px; line-height: 1.1; font-weight: 500; text-align: center; cursor: pointer;
  }
  html[dir="rtl"] .tabs > ul > li > a { font-size: 15px; }
  .tabs a[lang|="fa"] { font-family: var(--font-fa); font-size: 16px; }
  html[dir="rtl"] .tabs a[lang="en"] { font-family: "Source Sans 3 Variable", "Segoe UI", Arial, sans-serif; font-size: 14px; }
  .tabs :focus-visible { outline-offset: -3px; }
  .tab-stop { display: block; width: 10px; height: 10px; border-radius: 50%; border: var(--stroke) solid var(--line); background: transparent; }
  .tabs a[aria-current="page"] { color: var(--line); font-weight: 700; }
  .tabs a[aria-current="page"] .tab-stop { background: var(--line); }
  .tab-bars { display: block; width: 16px; height: 10px; border-block: var(--stroke) solid var(--ink); }
  html:not(.js) .tab-menu { display: none; }
  .tabmenu {
    position: absolute; inset-inline: 0; inset-block-end: 100%; background: var(--sheet); border-block-start: 1px solid var(--rule-strong);
    padding: var(--s1) var(--gutter) var(--s2); box-shadow: 0 -6px 18px rgb(22 35 58 / 0.1);
  }
  .tabmenu.is-open { display: block; }
  .tabmenu ul { list-style: none; }
  .tabmenu li + li { border-block-start: 1px solid var(--rule); }
  .tabmenu li a { display: flex; align-items: center; min-height: 50px; font-family: var(--font-text); font-size: 20px; color: var(--ink); text-decoration: none; }
  .tabmenu li a[aria-current="page"] { font-weight: 600; }
  .tabmenu-contact { margin-block-start: var(--s1); padding-block-start: var(--s1); border-block-start: 1px solid var(--rule-strong); font-size: 16px; }
  .tabmenu-contact > div { display: grid; grid-template-columns: 96px minmax(0, 1fr); align-items: center; min-height: 36px; }
  .tabmenu-contact dt { color: var(--ink-2); }
  .tabmenu-contact a { display: inline-flex; align-items: center; min-height: 36px; }

  /* Home first screen on a phone: the signs, then what they need */
  .hero { padding-block: var(--s2) var(--s3); gap: 10px; }
  .hero h1 { font-size: 32px; line-height: 1.14; }
  .hero .hero-lede { font-size: 17px; line-height: 1.42; }
  html[dir="rtl"] .hero h1 { font-size: 28px; line-height: 1.45; }
  html[dir="rtl"] .hero .hero-lede { font-size: 18px; line-height: 1.75; }
  .path { grid-template-columns: minmax(0, 1fr) 24px; column-gap: var(--s2); align-items: center; padding-block: 12px 10px; }
  .path-facts { grid-column: auto; grid-row: auto; }
  .path:hover { background: none; }
  .path-for, .path-body, .path-facts, .path-go, .path-cta + .path-go { display: none; }
  .path-title { font-size: 26px; padding-block-end: 2px; grid-column: 1; }
  html[dir="rtl"] .path-title { font-size: 25px; line-height: 1.4; }
  .path-key { display: block; grid-column: 1; font-family: var(--font-label); font-size: 16px; line-height: 1.3; color: var(--ink-2); }
  .path-arw { display: block; grid-column: 2; grid-row: 1 / span 2; color: var(--line); }
  .path-act { grid-column: 1 / -1; grid-row: auto; min-height: 0; }
  .path-act:empty, .path-act:not(:has(.path-cta)) { display: none; }
  .path-cta { width: 100%; min-height: 44px; margin-block-start: 10px; }
  .signal { font-size: 16px; line-height: 1.3; margin-block-start: 0; }
  .signal p { min-height: 44px; padding-block: 6px; }
  .signal-text { display: none; }
  .foot-contact > div { align-items: center; }
  .signal-fa { justify-content: space-between; flex-wrap: nowrap; }
  .signal-link { font-size: 19px; display: inline-flex; align-items: center; min-height: 44px; }
  .signal-urgent a { display: block; padding-block: 4px; }
  .route-name h3 a { display: inline-flex; align-items: center; min-height: 44px; }
  .foot nav a, .foot-contact a, .need-how a, .tx-list li.tx-more a { min-height: 44px; }
  html[dir="rtl"] .signal { font-size: 17px; }
  html[dir="rtl"] .path-facts { display: block; }
  html[dir="rtl"] .path-facts { grid-column: 1 / -1; grid-row: auto; font-size: 16.5px; padding-block-end: 0; }
  html[dir="rtl"] .path-arw { grid-row: 1; }
  html[dir="rtl"] .path-act { display: none; }

  .section { padding-block: var(--s8); }
  .section-tight { padding-block: var(--s6) var(--s8); }
  .band-tint { padding-block: var(--s8); }
  .route-band { padding-block-start: var(--s6); }
  .route-band::after { margin-block-start: var(--s6); }
  .pagehead { padding-block: var(--s4) var(--s5); }
  .pagehead h1 { font-size: 40px; }
  .pagehead .lede { font-size: 20px; }

  /* Route goes vertical */
  .route, .route-3, .route-pair .route { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .stop { padding-block: 2px var(--s3); padding-inline: 50px 0; }
  .stop::before, .stop:nth-of-type(2n)::before { inset-inline: 16px auto; inset-block: 0; width: var(--stroke); height: auto; }
  .stop:last-of-type::before, .route:has(.stop-tail) .stop:last-of-type::before { inset-inline-end: auto; inset-block-end: auto; height: 20px; }
  .stop h3 { margin-block-end: 2px; }
  .stop-tail { padding-inline-start: 50px; }

  /* Comparison restacks by topic */
  .compare, .compare tbody, .compare tr, .compare tbody th, .compare td { display: block; width: 100%; }
  .compare thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  .compare tbody tr { padding-block: var(--s2); border-block-end: 1px solid var(--rule); }
  .compare tbody tr:first-child { border-block-start: 1px solid var(--rule-strong); }
  .compare tbody th { padding: 0 0 var(--s1); font-weight: 600; }
  .compare td { padding: 0 0 var(--s1); padding-inline-start: var(--s2); border-inline-start: var(--stroke) solid var(--line); margin-block-start: var(--s1); }
  .compare td::before { content: attr(data-col); display: block; font-family: var(--font-label); font-size: 15px; font-weight: 650; color: var(--line); line-height: 1.5; }
  .rule-line { margin-block-start: var(--s4); }

  .pw { grid-template-columns: minmax(0, 1fr); padding-block: var(--s5); gap: var(--s2); }
  .inq-panel { padding: var(--s3) var(--gutter); margin-inline: calc(var(--gutter) * -1); }
  .inq-acts .btn { width: 100%; }
  .block-acts .btn { width: 100%; }
  .acc summary { font-size: 19px; }
  .callout { padding: var(--s2); }
  .side-facts > div { grid-template-columns: 112px minmax(0, 1fr); }
  .foot-in { grid-template-columns: minmax(0, 1fr); }
  .foot nav ul { columns: 2; }
  .urgent-band { padding-block: var(--s6); }
}

@media (max-width: 350px) {
  .wordmark { font-size: 21px; }
  .mast-urgent { font-size: 15px; }
  .tabs > ul > li > a, .tabs > ul > li > button { font-size: 12.5px; padding-inline: 1px; }
  .hero h1 { font-size: 29px; }
  .path-title { font-size: 24px; }
  .fax-num { font-size: 32px; }
  .contact-list > div { grid-template-columns: 84px minmax(0, 1fr); }
  .contact-list-large dd { font-size: 20px; }
}

/* Short phones: the three routes come first */
@media (max-width: 700px) and (max-height: 700px) {
  .hero .hero-lede { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; animation: none !important; }
  .go:hover .arw, .path:hover .path-go .arw, .tx-list a:hover .arw { transform: none; }
  html[dir="rtl"] .go:hover .arw, html[dir="rtl"] .path:hover .path-go .arw { transform: scaleX(-1); }
}

@media print {
  .mast, .tabs, .toc, .toc-m, .doc-side, .btn, .foot, .skip, .urgent-band, .print-hint { display: none !important; }
  body { background: #fff; font-size: 12pt; padding: 0; }
  .doc { display: block; padding: 0; }
  html.print-one main > .pagehead, html.print-one .doc-main > section:not(#include) { display: none !important; }
  html.print-one .doc-main { max-width: none; }
}

/* ---------- R003 patient-centred revisions (appended; earlier rules retained) ---------- */
.ico { width: 18px; height: 18px; flex: none; }

/* Utility bar: the telephone is a clear action at every width */
.util-in { gap: var(--s3); }
.util-call { display: inline-flex; align-items: center; gap: 7px; min-height: 40px; color: var(--ink); font-weight: 650; text-decoration: none; white-space: nowrap; }
.util-call:hover { color: var(--line-care); text-decoration: underline; }
.util-call .ico { color: var(--line-care); }
.util-fax { display: inline-flex; gap: 6px; white-space: nowrap; margin: 0; }
.util-fax-k { color: var(--ink-2); }
@media (max-width: 1060px) { .util-call { margin-inline-end: auto; } }

/* Home first screen */
.hero-r3 { grid-template-columns: minmax(0, 7.4fr) minmax(0, 4.6fr); align-items: start; gap: var(--s8); padding-block: var(--s8); }
.hero-r3 h1 { font-size: clamp(36px, 4.1vw, 58px); max-width: 15em; }
.hero-r3 .hero-lede { font-size: clamp(19px, 1.55vw, 22px); line-height: 1.5; margin-block-start: var(--s3); max-width: 38rem; }
.hero-acts { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s2) var(--s4); margin-block-start: var(--s5); }
.btn-primary { min-height: 56px; padding: 10px 26px; font-size: 19px; gap: 12px; }
.btn .arw { width: 20px; height: 20px; }
.hero-call { margin: 0; font-family: var(--font-label); font-size: 18px; color: var(--ink-2); }
.hero-call a { display: inline-flex; align-items: center; min-height: 44px; color: var(--ink); font-size: 20px; font-weight: 650; }
.hero-fa { margin-block-start: var(--s3) !important; }
.hero-fa a { display: inline-flex; align-items: center; min-height: 44px; font-family: var(--font-fa); font-size: 20px; }
.hero-side { background: var(--sheet); border-block-start: var(--stroke) solid var(--line-care); padding: var(--s3) var(--s4) var(--s2); }
.glance > div { grid-template-columns: 116px minmax(0, 1fr); }
.glance a { font-weight: 650; text-decoration: none; }
.glance a:hover { text-decoration: underline; }
html[dir="rtl"] .hero-r3 .hero-lede { font-size: 20px; line-height: 1.85; }
html[dir="rtl"] .hero-call, html[dir="rtl"] .glance { font-size: 18px; }

/* Status labels */
.status-tag { display: block; margin: 0 0 var(--s1); font-family: var(--font-label); font-size: 15px; font-weight: 650; letter-spacing: 0.05em; text-transform: uppercase; color: var(--line); }
html[dir="rtl"] .status-tag { font-size: 17px; letter-spacing: 0; text-transform: none; }
.resource-state-inline { font-family: var(--font-label); font-size: 15.5px; color: var(--ink-2); }

/* Home: physician introduction and what care includes */
.intro-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--s10); padding-block: var(--s8) var(--s10); border-block-start: 1px solid var(--rule); }
.intro-row h2, .home-tx h2, .home-contact h2 { font-size: clamp(27px, 2.4vw, 34px); margin-block-end: var(--s3); }
.intro-row > div > p { max-width: 38rem; }
.intro-row .dash { margin-block-end: var(--s2); }
.home-tx { padding-block: var(--s8); }
.home-tx-in { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--s4) var(--s10); align-items: start; }
.home-tx-in > div:last-child > p { max-width: 38rem; }
.home-tx .line-mark { margin-block-end: var(--s3); }
.now-h { margin-block: var(--s4) var(--s1); font-size: 22px; }
.home-contact { border-block-start: 1px solid var(--rule); }
.home-contact .about-go { margin-block-start: var(--s3) !important; }

/* Telephone and fax, each with its purpose */
.contact-cards > div { display: grid; grid-template-columns: 150px minmax(0, 1fr); column-gap: var(--s3); padding-block: var(--s2); border-block-start: 1px solid var(--rule); }
.contact-cards > div:last-child { border-block-end: 1px solid var(--rule); }
.contact-cards dt { grid-row: 1 / span 2; padding-block-start: 8px; font-family: var(--font-label); font-size: 16px; color: var(--ink-2); }
.cc-num { font-size: clamp(23px, 2vw, 27px); line-height: 1.3; font-feature-settings: "lnum"; }
.cc-num a { display: inline-flex; align-items: center; min-height: 44px; color: var(--line-care); font-weight: 600; text-decoration: none; }
.cc-num a:hover { text-decoration: underline; }
.cc-note { max-width: 36rem; font-size: 17.5px; line-height: 1.45; color: var(--ink-2); }
.contact-cards-large .cc-num { font-size: clamp(30px, 3.2vw, 42px); }
html[dir="rtl"] .contact-cards dt { font-size: 18px; }
html[dir="rtl"] .cc-note { font-size: 18.5px; line-height: 1.8; }
.contact-head { padding-block: var(--s6) var(--s7); }
.contact-head h1 { margin-block-end: var(--s4); font-size: clamp(40px, 4.6vw, 64px); }
.contact-more { margin-block-start: var(--s4); max-width: 42rem; font-size: 18px; line-height: 1.5; }
.contact-more .contact-fa a { font-size: 21px; }

/* How to get started */
.pagehead-compact { padding-block: var(--s6) var(--s5); }
.start-band { padding-block: var(--s7) var(--s8); border-block-end: 1px solid var(--rule); }
.start-band:focus, #psychotherapy:focus, #resources:focus, #contact:focus { outline: none; }
.start-band > h2 { margin-block-end: var(--s1); }
.start-band > .section-lead { margin-block-end: var(--s5); max-width: 40rem; }
.start-band .stop h3 { font-size: 22px; }
.start-band .after-route { font-family: var(--font-label); font-size: 18.5px; }
.start-band .after-route a, .start-band .stop a { display: inline-flex; align-items: center; min-height: 32px; font-weight: 600; }
@media (min-width: 701px) and (max-width: 980px) {
  .start-band .route-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .start-band .stop:not(:last-of-type)::before { inset-inline-end: 0; }
}
.related-links { list-style: none; display: flex; flex-wrap: wrap; gap: 0 var(--s4); }

/* Referring clinicians */
.fax-tel { margin-block-start: var(--s2) !important; font-family: var(--font-label); font-size: 17.5px; line-height: 1.45; }
.fax-tel a { display: inline-flex; align-items: center; min-height: 44px; font-weight: 650; }

/* Psychotherapy in development */
.tx-page { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 4.4fr); gap: var(--s10); padding-block: var(--s7) var(--s12); align-items: start; }
.status-note { background: var(--paper-deep); border-inline-start: 3px solid var(--line-therapy); padding: var(--s2) var(--s3); font-size: 19px; line-height: 1.5; max-width: 40rem; }
.tx-page-main > .block { padding-block-start: var(--s7); }
.areas { max-width: 40rem; }
.areas > div { display: grid; grid-template-columns: 170px minmax(0, 1fr); gap: var(--s2); padding-block: 13px; border-block-start: 1px solid var(--rule); }
.areas > div:last-child { border-block-end: 1px solid var(--rule); }
.areas dt { font-size: 21px; font-weight: 560; line-height: 1.35; }
.areas dd { font-size: 18px; line-height: 1.45; color: var(--ink-2); padding-block-start: 2px; }
.ext-link { margin-block-start: var(--s3) !important; }
.ext-link a { display: inline-flex; align-items: center; gap: 12px; min-height: 56px; padding: 10px 20px; background: var(--sheet); border: var(--stroke) solid var(--line-care); color: var(--line-care); font-family: var(--font-label); font-size: 19px; font-weight: 650; line-height: 1.3; text-decoration: none; }
.ext-link a:hover { background: var(--line-care); color: var(--on-ink); }
.ext-note { margin-block-start: var(--s1) !important; font-family: var(--font-label); font-size: 16.5px; line-height: 1.45; color: var(--ink-2); }
html[dir="rtl"] .ext-note { font-size: 18px; line-height: 1.8; }
.tx-page-side { background: var(--sheet); border-block-start: var(--stroke) solid var(--line-care); padding: var(--s4); }
.tx-page-side .line-mark { display: none; }
.tx-page-side h2 { font-size: clamp(25px, 2.1vw, 30px); margin-block-end: var(--s2); }
.tx-page-side p + p { margin-block-start: var(--s3); }

/* Adult ADHD routes and article link */
.two-route .status-tag { margin-block-end: 6px; }
.article-link { margin-block-start: var(--s3) !important; display: flex; flex-wrap: wrap; align-items: center; gap: 0 var(--s2); }
.more-note { margin-block-start: var(--s4) !important; font-size: 18px; }

/* Persian resource list */
.fa-resource-links li { display: flex; flex-wrap: wrap; align-items: center; gap: 0 var(--s2); padding-block: 6px; border-block-start: 1px solid var(--rule); }
.fa-resource-links li:last-child { border-block-end: 1px solid var(--rule); }
.fa-resource-links a { gap: 12px; font-size: 21px; }
#resources .section-lead { margin-block: var(--s1) var(--s3); }

@media (max-width: 980px) {
  .hero-r3, .intro-row, .home-tx-in, .tx-page { grid-template-columns: minmax(0, 1fr); gap: var(--s5); }
  .hero-side { max-width: 34rem; }
}

@media (max-width: 700px) {
  .util { display: block; }
  .util-in { min-height: 48px; gap: var(--s2); }
  .util-who, .util-fax { display: none; }
  .util-call { margin-inline-end: auto; min-height: 48px; font-size: 18px; }
  .util-call .ico { width: 20px; height: 20px; }
  .util-urgent { min-height: 44px; font-size: 15px; font-weight: 500; color: var(--ink-2); }
  html[dir="rtl"] .util-urgent { font-size: 16px; }
  .mast-main { min-height: 54px; }
  .hero-r3 { padding-block: var(--s3) var(--s4); gap: var(--s4); }
  .hero-r3 h1 { font-size: 32px; }
  html[dir="rtl"] .hero-r3 h1 { font-size: 28px; }
  .hero-r3 .hero-lede { font-size: 18px; line-height: 1.45; margin-block-start: var(--s2); }
  html[dir="rtl"] .hero-r3 .hero-lede { font-size: 18.5px; line-height: 1.75; }
  .hero-acts { margin-block-start: var(--s3); gap: 4px; }
  .btn-primary { width: 100%; justify-content: space-between; }
  .hero-side { padding: var(--s2) var(--s2) var(--s1); }
  .intro-row { padding-block: var(--s6) var(--s7); }
  .home-tx { padding-block: var(--s6); }
  .contact-cards > div { grid-template-columns: minmax(0, 1fr); }
  .contact-cards dt { grid-row: auto; padding-block-start: 0; }
  .contact-head { padding-block: var(--s4) var(--s5); }
  .contact-head h1 { font-size: 40px; margin-block-end: var(--s3); }
  .areas > div { grid-template-columns: minmax(0, 1fr); gap: 2px; }
  .ext-link a { width: 100%; }
  .tx-page-side { padding: var(--s3) var(--s2); }
  .start-band { padding-block: var(--s5) var(--s6); }
  .start-band > .section-lead { margin-block-end: var(--s4); }
  .related-links { display: block; }
}

/* Short phones: keep the purpose, languages and main action on the first screen */
@media (max-width: 700px) and (max-height: 700px) {
  .hero-r3 .hero-lede { display: block; font-size: 16.5px; line-height: 1.42; }
  .hero-r3 h1 { font-size: 28px; }
  html[dir="rtl"] .hero-r3 h1 { font-size: 25px; }
  html[dir="rtl"] .hero-r3 .hero-lede { font-size: 17px; line-height: 1.7; }
  .hero-r3 { padding-block-start: var(--s2); }
  .preview-note { padding-block: 4px; }
}

@media (max-width: 700px) { .hero-fa { margin-block-start: 4px !important; } }
