/* J3 University — legal pages (terms of use, privacy policy, disclaimer).
   Clean, readable legal prose built on the X-Frame design system.
   Imports tokens + header/footer from /assets/css/j3.css. */

/* ---- hero ---- */
.legal-hero { padding: clamp(46px,7vw,88px) 0 clamp(26px,4vw,42px); border-bottom: 1px solid var(--line); background: var(--bg); }
.legal-hero .eyebrow { margin-bottom: 18px; }
.legal-hero h1 { font-size: clamp(2rem, 1rem + 3vw, 3rem); max-width: 880px; }
.legal-hero .uline { margin: 20px 0 0; }
.legal-hero .updated { margin-top: 18px; font-family: var(--font-head); font-weight: 500; font-size: .82rem; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }

/* ---- body ---- */
.legal-body { padding: clamp(40px,5vw,68px) 0 clamp(60px,7vw,104px); }
.legal { max-width: 860px; }
.legal .lead { font-size: 1.12rem; color: var(--ink-2); margin: 0 0 8px; }

.legal h2 { font-size: clamp(1.28rem, 1rem + 1vw, 1.62rem); margin-top: clamp(38px,4.4vw,56px); padding-top: clamp(30px,3.6vw,44px); border-top: 1px solid var(--line); }
.legal h2:first-child, .legal .lead + h2 { margin-top: clamp(28px,3vw,40px); }
.legal h2 .num { color: var(--red); margin-right: .5em; font-variant-numeric: tabular-nums; }
.legal h3 { font-size: 1.1rem; margin: 26px 0 0; color: var(--ink); }

.legal p { font-size: 1.04rem; color: #34373d; margin: 14px 0 0; line-height: 1.7; }
.legal h2 + p, .legal h3 + p { margin-top: 12px; }
.legal strong { color: var(--ink); font-weight: 600; }
.legal a { color: var(--red); font-weight: 500; text-decoration: underline; text-underline-offset: 2px; }
.legal a:hover { color: var(--red-bright); }

.legal .inshort { display: block; color: var(--muted); font-style: italic; margin: 12px 0 0; }

.legal ul { margin: 14px 0 0; padding: 0; list-style: none; display: grid; gap: 10px; }
.legal ul li { position: relative; padding-left: 26px; font-size: 1.04rem; color: #34373d; line-height: 1.6; }
.legal ul li::before { content: ""; position: absolute; left: 5px; top: .62em; width: 7px; height: 7px; border-radius: 50%; background: var(--red); }

.legal hr { border: 0; border-top: 1px solid var(--line); margin: 30px 0; }

/* ---- mini table of contents ---- */
.legal-toc { background: #fff; border: 1px solid var(--line); border-radius: 18px; padding: 24px 28px; margin: 0 0 8px; box-shadow: var(--shadow-sm); }
.legal-toc .toc-lab { margin: 0 0 14px; font-family: var(--font-head); font-weight: 600; font-size: .76rem; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
.legal-toc ol { margin: 0; padding: 0 0 0 4px; list-style: none; counter-reset: toc; columns: 2; column-gap: 38px; }
.legal-toc li { margin-bottom: 9px; font-size: .96rem; counter-increment: toc; break-inside: avoid; }
.legal-toc a { color: var(--ink-2); text-decoration: none; }
.legal-toc a::before { content: counter(toc) ". "; color: var(--red); font-weight: 600; font-family: var(--font-head); }
.legal-toc a:hover { color: var(--red); }
.legal h2[id] { scroll-margin-top: 100px; }
@media (max-width: 640px){ .legal-toc ol { columns: 1; } }

/* ---- CCPA category table ---- */
.legal-table { width: 100%; border-collapse: collapse; margin: 16px 0 0; font-size: .95rem; }
.legal-table th, .legal-table td { border: 1px solid var(--line); padding: 11px 14px; text-align: left; vertical-align: top; color: #34373d; line-height: 1.5; }
.legal-table th { background: var(--bg-soft); font-family: var(--font-head); font-weight: 600; color: var(--ink); }
.legal-table td:last-child { text-align: center; white-space: nowrap; font-weight: 600; color: var(--ink); }
@media (max-width: 600px){ .legal-table { font-size: .88rem; } .legal-table th, .legal-table td { padding: 8px 10px; } }

/* ---- contact / address card ---- */
.legal-card { background: #f3f4f6; border: 1px solid var(--line); border-radius: 18px; padding: clamp(20px,3vw,30px); margin: 16px 0 0; }
.legal-card p { margin: 0; }
.legal-card p + p { margin-top: 4px; }
