/* North Lemma — shared styles for legal / policy pages.
   Matches the landing system: Cormorant Garamond display, Inter body,
   DM Mono labels, ivory ground, forest-green accents. */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
:root {
  --navy:#1a2035; --ivory:#F7F5F0; --surface:#FFFFFF; --border:#E8E4DC;
  --text:#2C2C2C; --mid:#5B5650; --soft:#8C857D; --forest:#0F2A1E;
  --sage:#2D6A4F; --green:#1B4332; --tint:#EEF3EF; --rose:#C47A7A;
  --sans:'Inter', sans-serif; --serif:'Cormorant Garamond', Georgia, serif; --mono:'DM Mono', monospace;
}
html { scroll-behavior: smooth; }
body { font-family:var(--sans); font-weight:400; color:var(--text); background:#FAFAF8; -webkit-font-smoothing:antialiased; }
::selection { background:rgba(45,106,79,0.16); }

/* ── Nav ─────────────────────────────────────────────── */
.lg-nav { position:sticky; top:0; z-index:50; height:58px; display:flex; align-items:center;
  background:rgba(15,42,30,0.96); backdrop-filter:blur(14px); border-bottom:1px solid rgba(255,255,255,0.12); }
.lg-nav-inner { max-width:1120px; width:100%; margin:0 auto; padding:0 40px; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; }
.lg-brand { justify-self:center; display:inline-flex; align-items:center; }
.lg-brand img { width:54px; height:54px; display:block; }
.lg-nav a.lg-link { justify-self:start; text-decoration:none; color:rgba(255,255,255,0.82); font-size:13px; font-weight:400; letter-spacing:0.01em; transition:color .2s; }
.lg-nav a.lg-link:hover { color:#fff; }
.lg-nav .lg-right { justify-self:end; display:inline-flex; gap:22px; align-items:center; }
.lg-nav .lg-signin { color:#fff; }
.lg-nav .lg-cta { background:#fff; color:var(--forest); padding:8px 18px; font-size:12.5px; font-weight:500; letter-spacing:0.02em; }
.lg-nav .lg-cta:hover { opacity:.88; color:var(--forest); }

/* ── Hero header ─────────────────────────────────────── */
.lg-hero { padding:74px 0 46px;
  background:
    radial-gradient(ellipse 60% 70% at 0% 0%, rgba(255,253,250,0.9), transparent 55%),
    radial-gradient(ellipse 80% 80% at 100% 0%, rgba(201,211,204,0.5), transparent 60%),
    linear-gradient(160deg, #FAFAF8 0%, #EEF1ED 60%, #E7ECE7 100%);
  border-bottom:1px solid var(--border); }
.lg-hero-inner { max-width:1120px; margin:0 auto; padding:0 40px; }
.lg-eyebrow { font-family:var(--mono); font-size:11px; font-weight:500; letter-spacing:0.22em; text-transform:uppercase; color:var(--sage); }
.lg-hero h1 { font-family:var(--serif); font-weight:500; font-size:clamp(40px,5vw,60px); line-height:1.04; letter-spacing:-0.02em; color:var(--navy); margin-top:14px; }
.lg-updated { font-family:var(--sans); font-size:13px; font-weight:500; color:var(--soft); margin-top:18px; letter-spacing:0.005em; font-feature-settings:"tnum" 1; }
.lg-lede { font-size:16px; line-height:1.75; color:var(--mid); max-width:620px; margin-top:16px; font-weight:400; }

/* ── Body layout ─────────────────────────────────────── */
.lg-wrap { max-width:1120px; margin:0 auto; padding:52px 40px 20px; display:grid; grid-template-columns:230px 1fr; gap:56px; align-items:start; }
.lg-toc { position:sticky; top:82px; }
.lg-toc-head { font-family:var(--mono); font-size:10.5px; font-weight:500; letter-spacing:0.16em; text-transform:uppercase; color:var(--soft); margin-bottom:14px; }
.lg-toc ol { list-style:none; counter-reset:toc; display:flex; flex-direction:column; gap:2px; }
.lg-toc a { counter-increment:toc; display:flex; gap:10px; text-decoration:none; color:var(--mid); font-size:13px; line-height:1.4; padding:6px 10px 6px 0; border-left:2px solid transparent; padding-left:12px; transition:color .18s, border-color .18s; }
.lg-toc a::before { content:counter(toc,decimal-leading-zero); font-family:var(--sans); font-weight:600; font-size:11px; color:var(--soft); padding-top:1px; font-feature-settings:"tnum" 1; }
.lg-toc a:hover { color:var(--forest); border-left-color:var(--sage); }

.lg-doc { max-width:720px; }
.lg-doc section { padding-bottom:34px; margin-bottom:34px; border-bottom:1px solid var(--border); }
.lg-doc section:last-child { border-bottom:none; }
.lg-doc h2 { font-family:var(--serif); font-weight:600; font-size:29px; line-height:1.15; letter-spacing:-0.01em; color:var(--navy); display:flex; align-items:baseline; gap:14px; scroll-margin-top:80px; }
.lg-doc h2 .lg-num { font-family:var(--sans); font-size:14px; font-weight:600; color:var(--sage); flex:0 0 auto; font-feature-settings:"tnum" 1; }
.lg-doc h3 { font-family:var(--sans); font-weight:600; font-size:15px; letter-spacing:0.01em; color:var(--navy); margin-top:24px; margin-bottom:8px; }
.lg-doc p { font-size:15.5px; line-height:1.78; color:var(--text); margin-top:14px; }
.lg-doc h2 + p { margin-top:16px; }
.lg-doc a { color:var(--sage); text-decoration:underline; text-underline-offset:2px; text-decoration-thickness:1px; }
.lg-doc a:hover { color:var(--forest); }
.lg-doc strong { font-weight:600; color:var(--navy); }
.lg-doc ul { list-style:none; margin-top:14px; display:flex; flex-direction:column; gap:9px; }
.lg-doc ul li { position:relative; padding-left:20px; font-size:15.5px; line-height:1.7; color:var(--text); }
.lg-doc ul li::before { content:''; position:absolute; left:2px; top:11px; width:5px; height:5px; border-radius:50%; background:var(--sage); }
.lg-doc ul li strong { color:var(--navy); }

/* Definition / subprocessor table */
.lg-table { width:100%; border-collapse:collapse; margin-top:18px; font-size:14px; }
.lg-table th { text-align:left; font-family:var(--mono); font-size:10.5px; font-weight:500; letter-spacing:0.06em; text-transform:uppercase; color:var(--soft); padding:0 14px 8px 0; border-bottom:1px solid var(--border); }
.lg-table td { padding:11px 14px 11px 0; border-bottom:1px solid var(--border); vertical-align:top; line-height:1.55; color:var(--text); }
.lg-table td:first-child { font-weight:600; color:var(--navy); white-space:nowrap; }

/* Callout */
.lg-note { margin-top:18px; background:var(--tint); border-left:3px solid var(--sage); border-radius:2px; padding:15px 18px; }
.lg-note p { margin:0; font-size:14.5px; line-height:1.7; color:var(--mid); }
.lg-note p + p { margin-top:8px; }

/* ── Footer (mirrors landing) ────────────────────────── */
.lg-foot { background:var(--navy); padding:56px 0 44px; text-align:center; margin-top:40px; }
.lg-foot img { width:38px; height:38px; margin:0 auto; display:block; }
.lg-foot .fname { font-family:var(--sans); font-weight:600; letter-spacing:0.26em; color:#fff; font-size:13px; margin-top:13px; }
.lg-foot .ftag { font-size:10px; letter-spacing:0.2em; color:var(--green); text-transform:uppercase; margin-top:8px; }
.lg-foot .frule { width:60px; height:1px; background:var(--green); margin:22px auto; opacity:.65; }
.lg-foot .flinks { font-size:12px; color:rgba(255,255,255,0.42); }
.lg-foot .flinks a { color:rgba(255,255,255,0.42); text-decoration:none; margin:0 7px; }
.lg-foot .flinks a:hover { color:#fff; }
.lg-foot .fcopy { font-size:11px; color:rgba(255,255,255,0.28); margin-top:20px; }

@media (max-width:900px){
  .lg-nav-inner, .lg-hero-inner { padding:0 22px; }
  .lg-nav .lg-link { display:none; }
  .lg-wrap { grid-template-columns:1fr; gap:28px; padding:34px 22px 10px; }
  .lg-toc { position:static; padding-bottom:24px; border-bottom:1px solid var(--border); }
  .lg-toc ol { display:grid; grid-template-columns:1fr 1fr; gap:2px 18px; }
}
