/* =========================================================================
   WITHE LEGAL PAGES — withe.uk/legal/
   The hub plus terms, privacy and refunds. Design tokens and the w- components
   come from shared/style.css; the page furniture (s-top, s-foot, s-card) from
   site.css, which every page here loads first so the three hosts look like one
   site — and which also carries the <880px document-scroll override these
   pages depend on (see flow.md, "Public site").
   This file adds only what a long document needs: a narrow reading column and
   type that survives a phone.
   ========================================================================= */

.l-doc {
  padding: clamp(28px, 5vw, 56px) 0 clamp(48px, 8vw, 88px);
}

/* Narrower than the marketing page: prose wants ~70 characters a line, and the
   1040px column of site.css is set for three cards side by side. */
.l-inner {
  max-width: 720px;
}

.l-crumb {
  margin: 0 0 var(--sp-4);
  font-size: 0.85rem;
  font-weight: 600;
}
.l-crumb a { color: var(--ink-muted); text-decoration: none; }
.l-crumb a:hover { color: var(--ink); }

.l-title {
  margin: 0 0 var(--sp-2);
  font-size: clamp(1.7rem, 5vw, 2.4rem);
  line-height: 1.15;
  letter-spacing: -0.025em;
  font-weight: 700;
  text-wrap: balance;
}

.l-version {
  margin: 0 0 var(--sp-5);
  font-size: 0.82rem;
  font-weight: 500;
  color: var(--ink-faint);
}

.l-lede {
  margin: 0 0 var(--sp-6);
  padding-bottom: var(--sp-5);
  border-bottom: 1px solid var(--hairline);
  font-size: 1.02rem;
  line-height: 1.65;
  color: var(--ink-muted);
  text-wrap: pretty;
}

/* ---------- the document body ---------- */
.l-body h2 {
  margin: var(--sp-8) 0 var(--sp-3);
  font-size: 1.12rem;
  font-weight: 700;
  letter-spacing: -0.01em;
  line-height: 1.3;
  scroll-margin-top: 72px;
}
.l-body h3 {
  margin: var(--sp-6) 0 var(--sp-2);
  font-size: 0.98rem;
  font-weight: 700;
  letter-spacing: -0.01em;
}
.l-body p {
  margin: 0 0 var(--sp-4);
  font-size: 0.96rem;
  line-height: 1.7;
  color: var(--ink-muted);
  text-wrap: pretty;
}
.l-body b, .l-body strong { color: var(--ink); font-weight: 700; }
.l-body a { color: var(--accent); font-weight: 600; }

.l-body ul {
  margin: 0 0 var(--sp-4);
  padding: 0;
  list-style: none;
  display: grid;
  gap: var(--sp-2);
}
.l-body li {
  position: relative;
  padding-left: 18px;
  font-size: 0.96rem;
  line-height: 1.65;
  color: var(--ink-muted);
  text-wrap: pretty;
}
.l-body li::before {
  content: "";
  position: absolute;
  left: 2px;
  top: 0.66em;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--accent);
}

/* ---------- unconfirmed facts ----------
   Everything Tom has not confirmed stays on the page as a loud placeholder
   rather than a plausible-looking invention, so a draft cannot go live
   pretending to be finished. `grep -rn "TO CONFIRM" www/legal/` finds them. */
.l-todo {
  background: #FFF3CD;
  color: #6B4E00;
  padding: 1px 6px;
  border-radius: 5px;
  font-weight: 700;
  font-size: 0.9em;
}

/* ---------- small blocks ---------- */
.l-note {
  margin: 0 0 var(--sp-4);
  padding: var(--sp-4) var(--sp-5);
  background: var(--surface);
  border: 1px solid var(--hairline);
  border-radius: var(--r-card);
  font-size: 0.93rem;
  line-height: 1.65;
  color: var(--ink-muted);
  text-wrap: pretty;
}
.l-note b { color: var(--ink); }

.l-table {
  width: 100%;
  border-collapse: collapse;
  margin: 0 0 var(--sp-5);
  font-size: 0.93rem;
}
.l-table th, .l-table td {
  padding: var(--sp-3) var(--sp-3) var(--sp-3) 0;
  border-bottom: 1px solid var(--hairline);
  text-align: left;
  vertical-align: top;
  line-height: 1.55;
}
.l-table th {
  font-weight: 700;
  font-size: 0.82rem;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--ink-faint);
}
.l-table td { color: var(--ink-muted); }
.l-table td:first-child { color: var(--ink); font-weight: 600; }

/* ---------- hub cards ---------- */
.l-cards { margin-bottom: var(--sp-6); }
.s-card.l-card h3 { margin-bottom: var(--sp-2); }
.s-card.l-card h3 a { color: var(--ink); text-decoration: none; }
.s-card.l-card h3 a:hover { color: var(--accent); }

/* ---------- the other two documents, at the end of one ---------- */
.l-sibs {
  margin-top: var(--sp-8);
  padding-top: var(--sp-5);
  border-top: 1px solid var(--hairline);
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-5);
  font-size: 0.9rem;
  font-weight: 600;
}
.l-sibs a { color: var(--ink-muted); text-decoration: none; }
.l-sibs a:hover { color: var(--ink); }

/* The footer nav carries six links here and on the landing page; without a
   wrap it runs off the side of a phone. */
.s-foot-nav { flex-wrap: wrap; }

/* site.css hides "What it does" on a narrow screen by its `#what` href, which
   is `../#what` from here, so the same rule has to be repeated for that path. */
@media (max-width: 520px) {
  .s-top-nav a[href="../#what"] { display: none; }
}
