/* ============================================================
   legal.css — shared stylesheet for privacy.html, terms.html, sms.html
   Tokens mirror index.html. Kept separate so the legal pages stay
   light (no calculator, no animation, no JS) and so a token change
   here can't destabilise the homepage.
   ============================================================ */

:root{
  --fg:#0e1826;
  --fg-muted:#57616f;
  --fg-subtle:#67707c;
  --bg:#ffffff;
  --bg-subtle:#f5f7fa;
  --border:#dfe4ea;

  --ink:#0A1628;
  --ink-fg:#e6edf6;
  --ink-fg-strong:#f4f8fc;
  --ink-fg-muted:#9aa8bd;
  --ink-fg-subtle:#7e8c9d;
  --ink-border:rgba(190,249,251,0.12);
  --ink-accent:#45D0EC;

  --accent:#1268A3;
  --accent-hover:#0d5182;
  --accent-bg:#eaf3f9;
  --accent-fg:#0b4269;

  --maxw:1180px;
  --measure:70ch;
  --radius:12px;
  --t-fast:150ms;
  --ease:cubic-bezier(.4,0,.2,1);
}

*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;}
}
body{
  margin:0;
  background:var(--bg);
  color:var(--fg);
  font-family:'Plus Jakarta Sans',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  font-size:17px;
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto;}

.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px;}

/* ---------- skip link + focus ---------- */
.skip{
  position:absolute;left:-9999px;top:0;z-index:100;
  background:var(--accent);color:#fff;padding:12px 20px;
  border-radius:0 0 var(--radius) 0;font-weight:700;text-decoration:none;
}
.skip:focus{left:0;}
a:focus-visible,button:focus-visible{
  outline:3px solid var(--accent);
  outline-offset:2px;
  border-radius:3px;
}
.on-ink a:focus-visible{outline-color:var(--ink-accent);}

/* ---------- header ---------- */
.on-ink{background:var(--ink);color:var(--ink-fg);}
header.on-ink{padding:20px 0;border-bottom:1px solid var(--ink-border);}
.hdr-row{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;}
.brand{
  display:inline-flex;align-items:center;gap:11px;
  text-decoration:none;color:var(--ink-fg-strong);
  font-weight:800;letter-spacing:-.02em;font-size:1.13rem;
}
/* Sample-message blocks in sms.html — carriers look for these during A2P vetting */
.samples li{
  background:var(--bg-subtle);border:1px solid var(--border);border-radius:8px;
  padding:12px 14px;margin:0 0 10px;font-size:.92rem;line-height:1.55;
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
}
.brand picture{display:flex;flex-shrink:0;}
.brand-mark{width:30px;height:auto;display:block;}
.hdr-back{
  color:var(--ink-fg-muted);text-decoration:none;font-size:.94rem;font-weight:600;
  transition:color var(--t-fast) var(--ease);
}
.hdr-back:hover{color:var(--ink-accent);}

/* ---------- page head ---------- */
.page-head{background:var(--bg-subtle);border-bottom:1px solid var(--border);padding:56px 0 44px;}
.page-head h1{
  margin:0 0 12px;
  font-size:clamp(1.9rem,1.2rem + 2.6vw,2.75rem);
  line-height:1.15;letter-spacing:-.03em;font-weight:800;
}
.page-head .meta{margin:0;color:var(--fg-subtle);font-size:.93rem;}

/* ---------- prose ---------- */
main{padding:52px 0 72px;}
.prose{max-width:var(--measure);}
.prose h2{
  margin:44px 0 14px;
  font-size:1.32rem;line-height:1.3;letter-spacing:-.015em;font-weight:800;
  scroll-margin-top:24px;
}
.prose h2:first-of-type{margin-top:0;}
.prose h3{margin:30px 0 10px;font-size:1.06rem;font-weight:700;letter-spacing:-.01em;}
.prose p{margin:0 0 16px;color:var(--fg-muted);}
.prose ul,.prose ol{margin:0 0 18px;padding-left:22px;color:var(--fg-muted);}
.prose li{margin-bottom:9px;}
.prose li::marker{color:var(--accent);}
.prose strong{color:var(--fg);font-weight:700;}
.prose a{color:var(--accent);text-decoration:underline;text-underline-offset:2px;}
.prose a:hover{color:var(--accent-hover);}

.callout{
  background:var(--accent-bg);
  border-left:4px solid var(--accent);
  border-radius:0 var(--radius) var(--radius) 0;
  padding:18px 22px;margin:0 0 26px;
}
.callout p{color:var(--accent-fg);margin:0;}
.callout p + p{margin-top:10px;}

.tbl-scroll{overflow-x:auto;margin:0 0 22px;-webkit-overflow-scrolling:touch;}
table{border-collapse:collapse;width:100%;min-width:460px;font-size:.94rem;}
th,td{text-align:left;padding:11px 14px;border-bottom:1px solid var(--border);vertical-align:top;}
th{font-weight:700;background:var(--bg-subtle);color:var(--fg);}
td{color:var(--fg-muted);}

/* ---------- table of contents ---------- */
.toc{
  background:var(--bg-subtle);
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:20px 24px;margin:0 0 40px;
}
.toc p{
  margin:0 0 10px;font-weight:700;color:var(--fg);
  font-size:.8rem;text-transform:uppercase;letter-spacing:.07em;
}
.toc ol{margin:0;padding-left:20px;columns:2;column-gap:32px;}
.toc li{margin-bottom:6px;break-inside:avoid;}
.toc a{color:var(--accent);text-decoration:none;font-size:.94rem;}
.toc a:hover{text-decoration:underline;}
@media (max-width:620px){.toc ol{columns:1;}}

/* ---------- footer ---------- */
footer.on-ink{padding:44px 0 30px;margin-top:0;}
.foot-links{display:flex;flex-wrap:wrap;gap:8px 22px;margin:0 0 22px;}
.foot-links a{
  color:var(--ink-fg-muted);text-decoration:none;font-size:.93rem;font-weight:600;
  transition:color var(--t-fast) var(--ease);
}
.foot-links a:hover{color:var(--ink-accent);}
.foot-btm{
  border-top:1px solid var(--ink-border);padding-top:20px;
  display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;
}
.tiny{font-size:.83rem;color:var(--ink-fg-subtle);margin:0;line-height:1.6;}

@media (max-width:640px){
  body{font-size:16px;}
  .page-head{padding:40px 0 32px;}
  main{padding:38px 0 54px;}
}
