/* ===========================================================================
   DRHP policy pages (Privacy Policy) — front-end layout
   Loaded only on pages that use the "Policy page" Group style
   (inc/legal-page.php). The words are ordinary blocks edited in the page
   editor; this file only provides the furniture around them.

   Palette: the 2026 header/footer tokens (header-2026.css), all pairs
   measured. Ratios are stated beside each colour they apply to.
   Type: Inter body, Montserrat headings — the site's own faces.
   Rhythm: 8px scale. Desktop section step 56, phone 40.
   =========================================================================== */

:root {
  --dl-ink:      #3f124d;   /* headings — 14.95:1 on white */
  --dl-purple:   #5a246c;   /* links, accents — 11.03:1 on white · 8.81:1 on soft */
  --dl-soft:     #ede2f2;   /* tinted boxes */
  --dl-band:     #f7f3fa;   /* table of contents ground — ink 13.9:1, purple 9.7:1 */
  --dl-border:   #d9ccde;
  --dl-text:     #241a29;   /* body — 16.9:1 on white · 12.6:1 on soft */
  --dl-muted:    #625568;   /* meta — 6.95:1 on white · 6.8:1 on band */
  --dl-gold:     #f2b43a;   /* safety accent (non-text) · on ink 8.09:1 */
  --dl-red:      #b42318;   /* Quick Exit — white on it 6.57:1 */
  --dl-red-hover:#8b1810;   /* white on it 9.39:1 */
  --dl-sans:     Inter, system-ui, -apple-system, "Segoe UI", sans-serif;
  --dl-display:  Montserrat, Inter, system-ui, sans-serif;
  --dl-top:      calc(var(--drhp26-header-h, 168px) + 8px);   /* sticky header + breathing room */
}

/* ---- page frame -------------------------------------------------------- */
body.drhp-legal-page .entry-header .entry-title {
  text-align: left;
  text-transform: none;
  letter-spacing: -0.01em;
  font: 700 clamp(30px, 3.4vw, 40px) / 1.15 var(--dl-display);
  color: var(--dl-ink);
  margin: 0;
  max-width: 20ch;
  text-wrap: balance;
}
body.drhp-legal-page .entry-header { margin: 0 0 24px; }
/* The parent draws a centred 130px rule under page titles with a (0,4,1)
   selector; the extra classes here outrank it. */
body.drhp-legal-page.page.drhp-a11y .entry-header .entry-title::after,
body.drhp-legal-page.page.drhp-a11y .entry-header .entry-title::before,
body.drhp-legal-page.page.drhp-a11y .entry-header::after { display: none; content: none; margin: 0; }
body.drhp-legal-page .entry-header .entry-title { margin-bottom: 0; padding-bottom: 0; }
/* The parent gives every page title 45px under the bar; a left-aligned 40px
   title on a sticky-header page reads cramped at that distance (client, 21
   Sept 2026), so the policy page takes 80px on desktop and 56px on phones. */
body.drhp-legal-page .entry-header .inner-wrap { padding-left: 0; padding-right: 0; max-width: none; margin-top: 80px; }
body.drhp-legal-page .entry-content { margin-top: 0; }
body.drhp-legal-page #content.site-content { padding-bottom: 72px; }

/* ---- two columns from 1100px; one below ---------------------------------- */
.drhp-legal {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 32px;
  align-items: start;
}
/* Inspiro is a classic theme, so core wraps every Group's children in a
   .wp-block-group__inner-container that the parent pads by 2em and caps at
   1200px. Inside the policy layout those wrappers are transparent, and the
   layout itself is released from any content measure. */
body.drhp-legal-page .entry-content > .drhp-legal { max-width: none; }
.drhp-legal .wp-block-group > .wp-block-group__inner-container { max-width: none; margin: 0; padding: 0; }

@media (min-width: 1100px) {
  .drhp-legal { grid-template-columns: 250px minmax(0, 1fr); column-gap: 56px; }
  .drhp-legal__toc { position: sticky; top: var(--dl-top); max-height: calc(100vh - var(--dl-top) - 24px); overflow: auto; }
}

/* ---- table of contents (built by PHP from the h2s) ----------------------- */
.entry-content .drhp-legal__toc {
  background: var(--dl-band);
  border: 1px solid var(--dl-border);
  border-radius: 16px;
  padding: 18px 14px 14px;
  margin: 0;
  max-width: none;
}
.entry-content .drhp-legal__toc .drhp-legal__toc-title {
  margin: 0 0 8px;
  padding: 0 12px;
  border: 0;
  font: 700 12px/16px var(--dl-display);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--dl-muted);                       /* 6.8:1 on the band */
}
.entry-content .drhp-legal__toc .drhp-legal__toc-list {
  list-style: none;
  margin: 0;
  padding: 0;
  max-width: none;
  counter-reset: dl-toc;
}
.entry-content .drhp-legal__toc .drhp-legal__toc-list li { margin: 0; padding: 0; list-style: none; }
.entry-content .drhp-legal__toc .drhp-legal__toc-list li::marker { content: none; }
body.drhp-legal-page .entry-content .drhp-legal__toc li a.drhp-legal__toc-link {
  display: flex;
  align-items: baseline;
  gap: 10px;
  min-height: 44px;                             /* 2.5.8 and the site's 44px rule */
  padding: 11px 12px;
  border-radius: 10px;
  border-left: 3px solid transparent;
  color: var(--dl-purple);                      /* 9.7:1 on the band */
  font: 500 15px/22px var(--dl-sans);
  text-decoration: none;
  transition: background-color 120ms ease;
}
body.drhp-legal-page .entry-content .drhp-legal__toc li a.drhp-legal__toc-link::before {
  counter-increment: dl-toc;
  content: counter(dl-toc, decimal-leading-zero);
  flex: 0 0 22px;
  font: 600 12px/22px var(--dl-display);
  font-variant-numeric: tabular-nums;
  color: var(--dl-muted);
}
body.drhp-legal-page .entry-content .drhp-legal__toc li a.drhp-legal__toc-link:hover,
body.drhp-legal-page .entry-content .drhp-legal__toc li a.drhp-legal__toc-link:focus-visible {
  background: #fff;
  color: var(--dl-ink);
  text-decoration: none;
}
body.drhp-legal-page .entry-content .drhp-legal__toc li a.drhp-legal__toc-link:hover .drhp-legal__toc-text,
body.drhp-legal-page .entry-content .drhp-legal__toc li a.drhp-legal__toc-link:focus-visible .drhp-legal__toc-text {
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-thickness: 0.08em;
}
body.drhp-legal-page .entry-content .drhp-legal__toc li a.drhp-legal__toc-link[aria-current="true"] {
  background: var(--dl-soft);
  border-left-color: var(--dl-purple);
  color: var(--dl-ink);                         /* 11.93:1 on soft */
  font-weight: 700;
}
body.drhp-legal-page .entry-content .drhp-legal__toc li a.drhp-legal__toc-link[aria-current="true"]::before { color: var(--dl-purple); }

/* fold-away list on phones and tablets (JS adds the class and shows the button) */
body.drhp-legal-page .drhp-legal__toc-toggle,
body.drhp-legal-page .drhp-legal__toc-toggle:hover,
body.drhp-legal-page .drhp-legal__toc-toggle:focus,
body.drhp-legal-page .drhp-legal__toc-toggle:active {
  text-transform: none;
  letter-spacing: normal;
  color: var(--dl-purple);
  background: #fff;
  box-shadow: none;
  text-decoration: none;
}
.drhp-legal__toc-toggle {
  display: none;
  width: 100%;
  min-height: 48px;
  margin: 0;
  padding: 0 14px;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  background: #fff;
  border: 1px solid var(--dl-border);
  border-radius: 10px;
  color: var(--dl-purple);
  font: 600 15px/20px var(--dl-sans);
  text-align: left;
  cursor: pointer;
}
.drhp-legal__toc-toggle::after {
  content: "";
  width: 9px; height: 9px;
  border-right: 2px solid currentColor; border-bottom: 2px solid currentColor;
  transform: translateY(-3px) rotate(45deg);
  transition: transform 150ms ease;
}
.drhp-legal__toc-toggle[aria-expanded="true"]::after { transform: translateY(2px) rotate(225deg); }
body.drhp-legal-page .drhp-legal__toc-toggle:hover { border-color: var(--dl-purple); background: var(--dl-soft); color: var(--dl-ink); }
body.drhp-legal-page .drhp-legal__toc-toggle[aria-expanded="true"] { border-color: var(--dl-purple); }
.drhp-legal__toc--collapsible .drhp-legal__toc-toggle { display: flex; }
.drhp-legal__toc--collapsible .drhp-legal__toc-title { margin-bottom: 8px; }
.drhp-legal__toc--collapsible:not(.is-open) .drhp-legal__toc-list { display: none; }
.drhp-legal__toc--collapsible.is-open .drhp-legal__toc-list { margin-top: 8px; }

/* ---- body column --------------------------------------------------------- */
.entry-content .drhp-legal__body { max-width: none; }
.entry-content .drhp-legal__body,
.entry-content .drhp-legal__body p,
.entry-content .drhp-legal__body li {
  font-family: var(--dl-sans);
  font-size: 17px;
  line-height: 1.7;                              /* 1.4.12 asks 1.5 */
  color: var(--dl-text);
  text-align: left;                              /* ragged right, never justified */
  hyphens: none;
}
.entry-content .drhp-legal__body p,
.entry-content .drhp-legal__body ul,
.entry-content .drhp-legal__body ol { max-width: 66ch; margin: 0 0 20px; }
.entry-content .drhp-legal__body li { margin: 0 0 8px; }
.entry-content .drhp-legal__body ul { padding-left: 1.25em; list-style-type: disc; }
.entry-content .drhp-legal__body li { list-style-type: disc; }   /* the parent squares every list */
.entry-content .drhp-legal__body li::marker { color: var(--dl-purple); }
.entry-content .drhp-legal__body strong { color: var(--dl-ink); font-weight: 700; }

/* meta line printed by PHP */
.entry-content .drhp-legal__body .drhp-legal__meta {
  display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px;
  margin: 0 0 20px;
  font: 500 14px/20px var(--dl-sans);
  color: var(--dl-muted);                        /* 6.95:1 */
}
.drhp-legal__meta-label { color: var(--dl-ink); }
.drhp-legal__meta time { font-weight: 600; color: var(--dl-ink); }
.drhp-legal__meta-read::before { content: "·"; margin-right: 10px; color: var(--dl-border); }

/* lead paragraph (block class drhp-legal__lead) */
.entry-content .drhp-legal__body .drhp-legal__lead {
  font-size: clamp(19px, 1.7vw, 21px);
  line-height: 1.5;
  color: var(--dl-ink);
  max-width: 58ch;
  margin-bottom: 32px;
  text-wrap: pretty;
}

/* section headings: numbered to match the table of contents */
.entry-content .drhp-legal__body { counter-reset: dl-h; }
.entry-content .drhp-legal__body h2 {
  counter-increment: dl-h;
  margin: 56px 0 16px;
  padding-top: 28px;
  border-top: 1px solid var(--dl-border);
  font: 700 clamp(24px, 2.4vw, 28px) / 1.25 var(--dl-display);
  color: var(--dl-ink);
  letter-spacing: -0.005em;
  text-wrap: balance;
  /* no scroll-margin here: header-2026.css already sets scroll-padding-top on
     <html> to the sticky header's height, and the two would add up */
}
.entry-content .drhp-legal__body h2::before {
  content: counter(dl-h, decimal-leading-zero);
  display: block;
  margin-bottom: 6px;
  font: 600 13px/16px var(--dl-display);
  letter-spacing: 0.08em;
  color: var(--dl-purple);
}
.entry-content .drhp-legal__body h3 {
  margin: 28px 0 10px;
  font: 700 19px/1.35 var(--dl-display);
  color: var(--dl-ink);
  max-width: 34ch;
}
.entry-content .drhp-legal__body h2 + h3 { margin-top: 8px; }

/* should a future core version print flow-layout gaps, the page's own rhythm wins */
.drhp-legal .is-layout-flow > * + * { margin-block-start: 0; }

/* ---- Group styles chosen in the editor ------------------------------------ */

/* Summary box: "The short version" */
.entry-content .drhp-legal__body .wp-block-group.is-style-drhp-summary {
  background: var(--dl-soft);
  border-left: 6px solid var(--dl-purple);
  border-radius: 0 16px 16px 0;
  padding: 28px 28px 12px;
  margin: 0 0 8px;
}
.entry-content .drhp-legal__body .is-style-drhp-summary h2 { margin-top: 0; padding-top: 0; border-top: 0; font-size: 24px; }
.entry-content .drhp-legal__body .is-style-drhp-summary p,
.entry-content .drhp-legal__body .is-style-drhp-summary li { color: var(--dl-text); }   /* 12.6:1 on soft */
.entry-content .drhp-legal__body .is-style-drhp-summary li { margin-bottom: 10px; padding-left: 4px; }
.entry-content .drhp-legal__body .is-style-drhp-summary ul { padding-left: 1.2em; }

/* Safety notice: band ground, gold bar, Quick Exit + tracks buttons */
.entry-content .drhp-legal__body .wp-block-group.is-style-drhp-safety {
  background: var(--dl-band);
  border: 1px solid var(--dl-border);
  border-left: 6px solid var(--dl-gold);
  border-radius: 0 16px 16px 0;
  padding: 24px 28px 8px;
  margin: 8px 0 8px;
}
.entry-content .drhp-legal__body .is-style-drhp-safety h2 { margin-top: 0; padding-top: 0; border-top: 0; font-size: 22px; }
.entry-content .drhp-legal__body .is-style-drhp-safety h2::before { content: none; counter-increment: none; }
.entry-content .drhp-legal__body .is-style-drhp-safety .wp-block-buttons { display: flex; flex-wrap: wrap; gap: 12px; margin: 4px 0 20px; }
.entry-content .drhp-legal__body .is-style-drhp-safety .wp-block-button { margin: 0; }
body.drhp-legal-page .is-style-drhp-safety .wp-block-button .wp-block-button__link {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 48px; padding: 0 20px;
  border-radius: 8px;
  border: 2px solid var(--dl-purple);
  background: #fff;
  color: var(--dl-purple);                       /* 11.03:1 */
  font: 600 15px/20px var(--dl-sans);
  text-transform: none; letter-spacing: normal;
  text-decoration: none;
  transition: background-color 120ms ease, color 120ms ease;
}
body.drhp-legal-page .is-style-drhp-safety .wp-block-button .wp-block-button__link:hover {
  background: var(--dl-soft); color: var(--dl-ink); text-decoration: underline; text-underline-offset: 3px;
}
body.drhp-legal-page .is-style-drhp-safety .drhp-quick-exit .wp-block-button__link {
  background: var(--dl-red); border-color: var(--dl-red); color: #fff;   /* 6.57:1 — same as the header's Quick Exit */
}
body.drhp-legal-page .is-style-drhp-safety .drhp-quick-exit .wp-block-button__link:hover {
  background: var(--dl-red-hover); border-color: var(--dl-red-hover); color: #fff;   /* 9.39:1 */
}
.entry-content .drhp-legal__body .is-style-drhp-safety .drhp-legal__small { font-size: 15px; line-height: 1.6; color: var(--dl-muted); }

/* Callout: a note inside a section */
.entry-content .drhp-legal__body .wp-block-group.is-style-drhp-callout {
  background: #fff;
  border: 1px solid var(--dl-border);
  border-left: 4px solid var(--dl-purple);
  border-radius: 0 12px 12px 0;
  padding: 18px 22px 2px;
  margin: 4px 0 24px;
}
.entry-content .drhp-legal__body .is-style-drhp-callout h3 { margin: 0 0 8px; font-size: 17px; }
.entry-content .drhp-legal__body .is-style-drhp-callout p,
.entry-content .drhp-legal__body .is-style-drhp-callout li { font-size: 16px; }

/* Fact cards: each inner Group is one card. The grid sits on the inner
   container when core prints one, on the Group itself when it does not. */
.entry-content .drhp-legal__body .wp-block-group.is-style-drhp-cards { margin: 4px 0 28px; }
.entry-content .drhp-legal__body .is-style-drhp-cards > .wp-block-group__inner-container,
.entry-content .drhp-legal__body .is-style-drhp-cards:not(:has(> .wp-block-group__inner-container)) {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(255px, 1fr));
  gap: 16px;
}
.entry-content .drhp-legal__body .is-style-drhp-cards > .wp-block-group__inner-container > .wp-block-group,
.entry-content .drhp-legal__body .is-style-drhp-cards > .wp-block-group {
  margin: 0;
  padding: 20px 20px 10px;
  background: #fff;
  border: 1px solid var(--dl-border);
  border-radius: 14px;
  box-shadow: 0 1px 0 rgba(63, 18, 77, 0.04);
}
.entry-content .drhp-legal__body .is-style-drhp-cards h3 {
  margin: 0 0 10px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--dl-soft);
  font-size: 17px; line-height: 1.35;
}
.entry-content .drhp-legal__body .is-style-drhp-cards p,
.entry-content .drhp-legal__body .is-style-drhp-cards li { font-size: 15px; line-height: 1.6; margin-bottom: 10px; }
.entry-content .drhp-legal__body .is-style-drhp-cards strong { display: block; font-size: 12px; line-height: 16px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--dl-purple); margin-bottom: 2px; }

/* Contact card: the page's close */
.entry-content .drhp-legal__body .wp-block-group.is-style-drhp-contact {
  background: var(--dl-ink);
  color: #fff;
  border-radius: 16px;
  padding: 28px 28px 12px;
  margin: 8px 0 0;
}
.entry-content .drhp-legal__body .is-style-drhp-contact > .wp-block-group__inner-container,
.entry-content .drhp-legal__body .is-style-drhp-contact:not(:has(> .wp-block-group__inner-container)) {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  column-gap: 32px;
}
.entry-content .drhp-legal__body .is-style-drhp-contact h2,
.entry-content .drhp-legal__body .is-style-drhp-contact .drhp-legal__wide { grid-column: 1 / -1; }
.entry-content .drhp-legal__body .is-style-drhp-contact h2 {
  margin: 0 0 8px; padding: 0; border: 0; color: #fff; font-size: 24px;      /* 14.95:1 */
}
.entry-content .drhp-legal__body .is-style-drhp-contact h2::before { color: var(--dl-gold); }   /* 8.09:1 */
.entry-content .drhp-legal__body .is-style-drhp-contact p { color: #fff; font-size: 16px; line-height: 1.6; margin-bottom: 16px; }
.entry-content .drhp-legal__body .is-style-drhp-contact strong { display: block; color: var(--dl-gold); font-size: 12px; line-height: 16px; letter-spacing: 0.06em; text-transform: uppercase; margin-bottom: 2px; }
body.drhp-legal-page .entry-content .drhp-legal__body .is-style-drhp-contact a {
  color: #fff; text-decoration: underline; text-underline-offset: 0.15em; text-decoration-thickness: 0.08em;
  display: inline-block; min-height: 24px;
}
body.drhp-legal-page .entry-content .drhp-legal__body .is-style-drhp-contact a:hover,
body.drhp-legal-page .entry-content .drhp-legal__body .is-style-drhp-contact a:focus-visible {
  color: var(--dl-gold); text-decoration-thickness: 0.16em;
}
/* the footer's dark-ground focus: 4px gold ring, no white halo (8.09:1 on the ink card).
   !important because the site-wide focus rule in a11y.css uses it. */
body.drhp-legal-page .entry-content .drhp-legal__body .is-style-drhp-contact a:focus-visible { outline: 4px solid var(--dl-gold) !important; outline-offset: 0 !important; box-shadow: none !important; }   /* on the 44px box edge: clears the label above */

/* ---- phones and small tablets ------------------------------------------ */
@media (max-width: 767px) {
  body.drhp-legal-page .inner-wrap { padding-left: 20px; padding-right: 20px; }
  body.drhp-legal-page .entry-header .inner-wrap { margin-top: 56px; }
  body.drhp-legal-page #content.site-content { padding-bottom: 48px; }
  .drhp-legal { gap: 24px; }
  .entry-content .drhp-legal__toc { padding: 14px 12px 12px; border-radius: 14px; }
  .entry-content .drhp-legal__body p, .entry-content .drhp-legal__body li { font-size: 16px; }
  .entry-content .drhp-legal__body .drhp-legal__lead { font-size: 18px; margin-bottom: 24px; }
  .drhp-legal__meta-read { flex-basis: 100%; }
  .drhp-legal__meta-read::before { content: none; margin: 0; }
  .entry-content .drhp-legal__body h2 { margin: 40px 0 12px; padding-top: 20px; }
  .entry-content .drhp-legal__body .wp-block-group.is-style-drhp-summary,
  .entry-content .drhp-legal__body .wp-block-group.is-style-drhp-safety { padding: 20px 20px 8px; }
  .entry-content .drhp-legal__body .wp-block-group.is-style-drhp-contact { padding: 20px 20px 8px; }
  .entry-content .drhp-legal__body .is-style-drhp-cards > .wp-block-group { padding: 16px 16px 8px; }
  body.drhp-legal-page .is-style-drhp-safety .wp-block-button .wp-block-button__link { width: 100%; }
  .entry-content .drhp-legal__body .is-style-drhp-safety .wp-block-button { flex: 1 1 100%; }
}

/* ---- One long page (Group style "Policy page (one long page)") -----------
   Client, 1 Oct 2026: "simplify … by removing the tabs and just making it one
   long page". No contents list, no section numbers, no rule above each
   heading: one centred reading column where whitespace carries the
   structure (Gestalt proximity: 12px heading→text inside a section, 56px
   between sections on desktop, 40px on phones — more than 3:1). The three
   tinted boxes stay because each does a job (summary, safety + Quick Exit,
   contact). Title, date line and every section share one left edge. */
body.drhp-legal-page--long .entry-header .inner-wrap { max-width: 640px; margin-left: auto; margin-right: auto; }
/* body class + .entry-content raise this above the (0,3,1) `max-width: none` that releases the two-column layout */
body.drhp-legal-page--long .entry-content > .drhp-legal--long { display: block; max-width: 640px; margin-left: auto; margin-right: auto; }
.entry-content .drhp-legal--long .drhp-legal__body p,
.entry-content .drhp-legal--long .drhp-legal__body ul,
.entry-content .drhp-legal--long .drhp-legal__body ol { max-width: none; }
.entry-content .drhp-legal--long .drhp-legal__body .drhp-legal__lead { max-width: none; }
.entry-content .drhp-legal--long .drhp-legal__body h2 {
  margin: 56px 0 12px;
  padding-top: 0;
  border-top: 0;
}
.entry-content .drhp-legal--long .drhp-legal__body h2::before { content: none; }
/* headings inside the boxes keep the box's own padding as their top space */
.entry-content .drhp-legal--long .drhp-legal__body .wp-block-group h2 { margin-top: 0; }
/* 24px between the two boxes at every width, so they read as two groups rather than one block */
.entry-content .drhp-legal--long .drhp-legal__body .wp-block-group.is-style-drhp-summary { margin-bottom: 24px; }
.entry-content .drhp-legal--long .drhp-legal__body .wp-block-group.is-style-drhp-contact { margin-top: 56px; }
/* email / phone / TTY are the page's closing action: 44px tap height at every width (tablets are touch too), same type */
body.drhp-legal-page .entry-content .drhp-legal--long .drhp-legal__body .is-style-drhp-contact a { display: inline-flex; align-items: center; min-height: 44px; }
.entry-content .drhp-legal--long .drhp-legal__body .is-style-drhp-contact p { margin-bottom: 8px; }
@media (max-width: 767px) {
  .entry-content .drhp-legal--long .drhp-legal__body h2 { margin-top: 40px; }
  /* the crisis line sits in this sentence: body size on phones */
  .entry-content .drhp-legal__body .is-style-drhp-safety .drhp-legal__small { font-size: 16px; }
  .entry-content .drhp-legal--long .drhp-legal__body .wp-block-group.is-style-drhp-contact { margin-top: 40px; }
}

/* ---- branded scroll tracks (client, 4 Sept 2026) ------------------------
   The sticky table of contents scrolls inside itself on short windows, and
   the page itself scrolls; both tracks take the brand: purple thumb
   (#5a246c, 9.7:1 on the band, well past the 3:1 asked of UI parts) on the
   band ground. `scrollbar-color` is the standard property (Chrome 121+,
   Firefox, Safari 18.2+); the -webkit- rules cover older Chrome/Safari and
   are ignored wherever the standard one applies. Scoped to policy pages. */
html:has(body.drhp-legal-page) {
  scrollbar-color: var(--dl-purple) var(--dl-band);
  scrollbar-width: auto;
}
html:has(body.drhp-legal-page)::-webkit-scrollbar { width: 14px; height: 14px; }
html:has(body.drhp-legal-page)::-webkit-scrollbar-track { background: var(--dl-band); }
html:has(body.drhp-legal-page)::-webkit-scrollbar-thumb {
  background: var(--dl-purple);
  border: 3px solid var(--dl-band);            /* inset so the thumb reads as a pill */
  border-radius: 999px;
}
html:has(body.drhp-legal-page)::-webkit-scrollbar-thumb:hover { background: var(--dl-ink); }

.drhp-legal__toc {
  scrollbar-color: var(--dl-purple) var(--dl-soft);
  scrollbar-width: thin;
  scrollbar-gutter: stable;
}
.drhp-legal__toc::-webkit-scrollbar { width: 8px; }
.drhp-legal__toc::-webkit-scrollbar-track { background: var(--dl-soft); border-radius: 999px; }
.drhp-legal__toc::-webkit-scrollbar-thumb { background: var(--dl-purple); border-radius: 999px; }
.drhp-legal__toc::-webkit-scrollbar-thumb:hover { background: var(--dl-ink); }

/* ---- motion, print ---------------------------------------------------- */
@media (prefers-reduced-motion: no-preference) {
  html:has(body.drhp-legal-page) { scroll-behavior: smooth; }
}
@media (prefers-reduced-motion: reduce) {
  .drhp-legal__toc-toggle::after, .entry-content .drhp-legal__toc li a.drhp-legal__toc-link,
  body.drhp-legal-page .is-style-drhp-safety .wp-block-button .wp-block-button__link { transition: none; }
}
@media print {
  .drhp-legal { display: block; }
  .drhp-legal__toc { display: none; }
  .entry-content .drhp-legal__body .wp-block-group.is-style-drhp-contact { background: #fff; color: #000; border: 1px solid #000; }
  .entry-content .drhp-legal__body .is-style-drhp-contact h2,
  .entry-content .drhp-legal__body .is-style-drhp-contact p,
  body.drhp-legal-page .entry-content .drhp-legal__body .is-style-drhp-contact a { color: #000; }
  .entry-content .drhp-legal__body .is-style-drhp-safety .wp-block-buttons { display: none; }
}
