/* Legal pages (Privacy, Terms) — D191. New dev-scope sheet, not a carried
   transplant, so there is no verbatim block to append after (D168 applies to the
   carried sheets only).

   Deliberately quiet: these are read, not experienced. The page borrows the site's
   hero and hairline grammar so it belongs, then gets out of the way. Measure caps at
   ~72ch because legal prose is read line by line, not scanned. */

/* ---- Hero -------------------------------------------------------------------

   ⚠ THESE PAGES USE `.page-hero` AND NOTHING WAS STYLING IT. The class is defined
   only in `contact-page.css` and `resources-page.css`, and the legal pages load
   neither — so `/privacy` and `/terms` shipped with a hero that had no positioning,
   no padding and no type scale at all.

   The visible symptom was the `<canvas id="beam">`: with no CSS it is a plain
   in-flow replaced element at the HTML default 300x150, so it sat as a box above
   the heading instead of filling the hero behind it. It was invisible until the
   audit added `beam.js` to these pages (that fix was correct — the same omission
   was hiding the `<h1>` and killing the mobile menu); drawing into the canvas is
   what made a pre-existing layout bug show up. Worst on mobile, where 300px is most
   of the viewport and the `h1` was also missing its `max-width: 760px` step, so it
   fell back to the browser's default heading size in uppercase Rajdhani.

   ⚠ THIS IS A DELIBERATE THIRD COPY. `contact-page.css` and `resources-page.css`
   carry the same block, and both are CARRIED sheets whose verbatim content stays
   diffable against `handoff/site/` (D168) — so the shared rules cannot be lifted
   out of them into one place without breaking that contract. Copying into this
   dev-scope sheet is the containable option: it loads only here, so nothing else on
   the site can be affected by a change made in this file. Values below are byte-
   identical to the carried pair except `.lead` measure, which follows Resources.
   ⚠ Bare `#beam` / `.beamfb` selectors are safe ONLY because this sheet is loaded
   by these two pages alone. Home and LightHouse also have `id="beam"`, styled by
   the `.iie-beam` CLASS — an ID selector outranks a class, so a global `#beam` rule
   would silently break both of those heroes. Do not move these into a shared sheet. */
.page-hero {
  padding: var(--hero-y-top) 0 64px;
  position: relative;
  overflow: hidden;
}
.page-hero .wrap {
  position: relative;
  z-index: 2;
}
#beam {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
}
.beamfb {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background: radial-gradient(60% 80% at 82% 40%, rgba(202, 169, 11, 0.1), transparent 60%);
}
.page-hero h1 {
  font-size: clamp(44px, 6.2vw, 88px);
  margin-top: 22px;
  max-width: 15ch;
}
.page-hero .lead {
  margin-top: 26px;
  max-width: 56ch;
  font-family: var(--font-ui);
  font-weight: 400;
  font-size: var(--fs-lead);
  line-height: 1.55;
  color: var(--text-secondary);
}

.legal {
  padding: 0 0 var(--section-y);
}
.legal .wrap {
  max-width: 860px;
}
.legal-meta {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--text-tertiary);
  margin: 0 0 40px;
  padding-bottom: 18px;
  border-bottom: 1px solid var(--hair);
}
.legal h2 {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: clamp(20px, 2vw, 25px);
  line-height: 1.2;
  letter-spacing: 0.01em;
  color: var(--text-primary);
  margin: 52px 0 16px;
}
.legal h2:first-of-type {
  margin-top: 0;
}
.legal h3 {
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--periwinkle);
  margin: 32px 0 12px;
}
.legal p,
.legal li {
  font-family: var(--font-ui);
  font-size: 16px;
  line-height: 1.7;
  color: var(--text-secondary);
  max-width: 72ch;
}
.legal p {
  margin: 0 0 18px;
}
.legal ul {
  margin: 0 0 18px;
  padding-left: 22px;
}
.legal li {
  margin-bottom: 9px;
}
.legal li::marker {
  color: var(--text-dim);
}
.legal strong {
  color: var(--text-primary);
  font-weight: 600;
}
.legal a {
  color: var(--periwinkle);
  text-decoration: none;
  border-bottom: 1px solid rgba(136, 156, 231, 0.35);
}
.legal a:hover {
  color: var(--text-primary);
  border-bottom-color: var(--text-primary);
}
/* A table for the processor disclosure — the one place a list is not enough. */
.legal-table {
  width: 100%;
  border-collapse: collapse;
  margin: 0 0 22px;
}
.legal-table th {
  font-family: var(--font-mono);
  /* 11px, not 10px: the D158/D162 type floor is a STANDING RULE (register §2).
     Live on /privacy, so this was a real sub-floor label, not dead CSS. */
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--text-tertiary);
  text-align: left;
  padding: 0 18px 10px 0;
  border-bottom: 1px solid var(--hair);
}
.legal-table td {
  font-family: var(--font-ui);
  font-size: 15px;
  line-height: 1.6;
  color: var(--text-secondary);
  padding: 14px 18px 14px 0;
  border-bottom: 1px solid var(--hair);
  vertical-align: top;
}
@media (max-width: 760px) {
  /* The step the legal pages were missing entirely — without it the hero h1 had no
     font-size at ANY width and fell back to the browser default.
     ⚠ Hero PADDING is deliberately not stepped down here: `--hero-y-top` is a flat
     150px and neither carried sheet reduces it at mobile, so changing it would make
     these two pages sit differently from /contact and /resources — an unruled design
     change. Matching the siblings is the whole point of this block. */
  .page-hero h1 { font-size: clamp(40px, 10.5vw, 44px); }
  .page-hero .lead { max-width: 66vw; }
  .legal h2 { margin-top: 40px; }
  .legal p, .legal li { font-size: 15px; }
  .legal-table, .legal-table tbody, .legal-table tr, .legal-table td { display: block; width: 100%; }
  .legal-table thead { display: none; }
  .legal-table tr { padding: 14px 0; border-bottom: 1px solid var(--hair); }
  .legal-table td { border: 0; padding: 0 0 6px; }
  .legal-table td:first-child { color: var(--text-primary); font-weight: 600; }
}
