/* PropertyPartner legal pages (privacy / terms / DPA) — a small self-contained prose layer on top of the shared
   design tokens defined in app.css (loaded first). Self-hosted, no inline styles (strict CSP: style-src 'self').
   Scoped entirely under .legal* so it never collides with the app shell or the marketing surface. */

.legal { min-height:100vh; background:var(--app-bg); color:var(--ink); font-family:var(--sans);
  /* the orange callout border; app.css uses the same value for .error-box and has no shared token for it, so name it locally rather than repeat the literal */
  --legal-callout-border:#f3ddc9; }

/* ── Masthead ────────────────────────────────────────────────────────────────────────────────────── */
.legal-masthead { display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap;
  max-width:920px; margin:0 auto; padding:22px 24px 0; }
.legal-brand { display:inline-flex; align-items:center; font-weight:700; font-size:16px; letter-spacing:-0.01em; color:var(--ink); }
.legal-topnav { display:flex; gap:6px; flex-wrap:wrap; }
.legal-topnav a { font-size:13px; font-weight:600; color:var(--secondary-dark); border:1px solid var(--border);
  background:var(--surface); border-radius:100px; padding:6px 13px; }
.legal-topnav a:hover { background:var(--app-bg); }
.legal-topnav a.is-active { color:var(--blue); background:var(--blue-tint); border-color:var(--blue-border); }

/* ── Document column ─────────────────────────────────────────────────────────────────────────────── */
.legal-doc { max-width:760px; margin:0 auto; padding:28px 24px 8px; }
.legal-title { font-size:30px; font-weight:700; letter-spacing:-0.02em; margin:16px 0 8px; }
.legal-updated { font-size:13px; color:var(--muted); font-family:var(--mono); margin:0 0 20px; }
.legal-lead { font-size:16px; line-height:1.6; color:var(--secondary-dark); margin:0 0 20px; }

/* Third-party notices (issue #209): the embedded THIRD-PARTY-NOTICES.md rendered verbatim, wrapped so the pipe-table
   and long URLs never force a horizontal scroll on narrow screens. */
.legal-notices { white-space:pre-wrap; overflow-wrap:anywhere; font-family:var(--mono); font-size:12.5px; line-height:1.55;
  color:var(--secondary-dark); background:var(--surface); border:1px solid var(--border); border-radius:12px; padding:16px 18px; margin:0 0 20px; }

.legal-doc h2 { font-size:19px; font-weight:700; letter-spacing:-0.01em; margin:34px 0 10px; padding-top:12px; border-top:1px solid var(--border); }
.legal-doc h3 { font-size:15.5px; font-weight:700; margin:22px 0 8px; }
.legal-doc p { font-size:15px; line-height:1.68; color:var(--secondary-dark); margin:0 0 14px; }
.legal-doc ul, .legal-doc ol { margin:0 0 16px; padding-left:22px; }
.legal-doc li { font-size:15px; line-height:1.62; color:var(--secondary-dark); margin:0 0 8px; }
.legal-doc a { color:var(--blue); font-weight:600; }
.legal-doc a:hover { text-decoration:underline; }
.legal-doc strong { color:var(--ink); font-weight:700; }
.legal-doc code { font-family:var(--mono); font-size:13px; background:var(--gray-pill); border-radius:5px; padding:1px 6px; color:var(--secondary-dark); }

/* Compliance callout (DNC / TCPA / FCRA) */
.legal-callout { background:var(--orange-tint); border:1px solid var(--legal-callout-border); border-radius:12px; padding:16px 20px; margin:0 0 18px; }
.legal-callout p { color:var(--secondary-dark); margin:0 0 10px; }
.legal-callout p:last-child { margin-bottom:0; }
.legal-callout .legal-callout-label { display:block; font-size:12px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--orange); margin:0 0 8px; }

/* Definition/annex list (DPA processing details, cookie purposes) */
.legal-defs { border:1px solid var(--border); border-radius:12px; overflow:hidden; margin:0 0 20px; background:var(--surface); }
.legal-def { display:grid; grid-template-columns:minmax(150px,220px) 1fr; gap:16px; padding:13px 18px; border-bottom:1px solid var(--row-border); }
.legal-def:last-child { border-bottom:none; }
.legal-def dt { font-size:13px; font-weight:700; color:var(--ink); }
.legal-def dd { margin:0; font-size:14px; line-height:1.55; color:var(--secondary-dark); }

/* Footer */
.legal-footer { max-width:760px; margin:28px auto 0; padding:22px 24px 48px; border-top:1px solid var(--border); }
.legal-footer p { font-size:13px; line-height:1.6; color:var(--muted); margin:0 0 8px; }
.legal-footer a { color:var(--secondary-dark); font-weight:600; }
.legal-footer a:hover { color:var(--blue); }
.legal-footer .legal-footer-links { display:flex; gap:14px; flex-wrap:wrap; margin:0 0 12px; }

/* ── Narrow screens ──────────────────────────────────────────────────────────────────────────────── */
@media (max-width:560px) {
  .legal-title { font-size:25px; }
  .legal-def { grid-template-columns:1fr; gap:4px; }
}

/* ── Print ───────────────────────────────────────────────────────────────────────────────────────── */
@media print {
  .legal { background:#fff; }
  .legal-topnav, .legal-footer-links { display:none; }
  .legal-doc, .legal-footer { max-width:none; }
  .legal-doc p, .legal-doc li { color:#000; }
}
