/* Shared shell for the legal pages (/privacy, /subprocessors).
 *
 * The tokens are copied from index.html rather than imported, because the
 * landing page keeps its CSS inline and there is nothing to import from. They
 * are the same values, and they must stay the same values: a legal page in a
 * different navy than the site it belongs to reads as a different site.
 *
 * They ran the superseded palette until 2026-09-11 and now run the canonical
 * one - Indigo #1F2A44, Brick #A6402E, Soft Stone #EDE6DA, matching the CRM's
 * primitive layer in src/app/globals.css. Anything below that is not yet a
 * canonical token is noted in the same place in index.html; do not correct one
 * file without the other.
 */
:root{
  --canvas:#EDE6DA; --card:#FFFFFF; --navy:#1F2A44; --brick:#A6402E;
  --charcoal:#2B2B2B; --slate:#6E7478; --line:#C8C4BC;
  --maxw:1120px; --readw:44rem;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:'Inter',system-ui,sans-serif;font-weight:400;color:var(--charcoal);
  background:var(--canvas);line-height:1.65;-webkit-font-smoothing:antialiased;
}
a{color:inherit}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}
.read{max-width:var(--readw)}

/* nav + footer, matched to the landing page */
header{position:sticky;top:0;z-index:50;background:rgba(237,230,218,.9);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.nav{display:flex;align-items:center;justify-content:space-between;height:66px}
.brand{display:flex;align-items:center;gap:10px}
.brand-lockup{height:30px;width:auto;display:block}
.nav-links{display:flex;align-items:center;gap:26px}
.nav-links a{color:var(--slate);font-size:.95rem;text-decoration:none}
.nav-links a:hover{color:var(--navy)}

/* At 375 the one-line header runs the last link into the right edge: the
 * wordmark plus three labels plus gaps needs ~330px inside a 312px content
 * box. The landing page solves this by HIDING its nav links below 720px,
 * which is fine there because they are anchors to sections further down the
 * same page. Here they are the only way between the two legal pages, so they
 * stack instead of disappearing, and the header stops being sticky - a
 * two-line sticky header eats too much of a short screen. */
@media(max-width:640px){
  header{position:static}
  .nav{height:auto;flex-direction:column;align-items:flex-start;gap:10px;padding-top:14px;padding-bottom:14px}
  .nav-links{gap:20px;flex-wrap:wrap}
  h1{font-size:1.95rem}
  .doc{padding-top:32px}
}
footer{border-top:1px solid var(--line);padding:34px 0;color:var(--slate);font-size:.9rem;margin-top:72px}
.foot{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}
.foot .brand-lockup{height:24px}
.foot-links{display:flex;gap:20px;flex-wrap:wrap}
.foot-links a{color:var(--slate);text-decoration:none}
.foot-links a:hover{color:var(--navy);text-decoration:underline}
@media(max-width:640px){.foot{flex-direction:column;align-items:flex-start;gap:14px}}

/* document */
.doc{padding-top:56px}
h1{font-weight:500;color:var(--navy);font-size:2.4rem;line-height:1.15;letter-spacing:-.02em}
.dates{margin-top:14px;color:var(--slate);font-size:.92rem}
.dates div+div{margin-top:2px}
.lede{margin-top:26px}
.lede p+p{margin-top:14px}
h2{font-weight:500;color:var(--navy);font-size:1.32rem;line-height:1.25;letter-spacing:-.01em;margin:44px 0 12px;scroll-margin-top:82px}
h3{font-weight:500;color:var(--navy);font-size:1.02rem;margin:26px 0 8px}
p{margin:12px 0}
ul{margin:12px 0 12px 1.1rem}
li{margin:5px 0}
.doc a{color:var(--navy);text-decoration:underline;text-underline-offset:2px;overflow-wrap:anywhere}
.doc a:hover{color:color-mix(in oklab, var(--navy) 88%, black)}

/* table of contents */
.toc{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:22px 24px;margin:34px 0 8px}
.toc h2{margin:0 0 10px;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--navy)}
.toc ol{margin:0;padding-left:1.3rem;columns:2;column-gap:32px}
.toc li{margin:3px 0;font-size:.93rem;break-inside:avoid}
.toc a{color:var(--slate);text-decoration:none}
.toc a:hover{color:var(--navy);text-decoration:underline}
@media(max-width:640px){.toc ol{columns:1}}

/* the closing principle */
.principle{background:var(--navy);color:var(--canvas);border-radius:16px;padding:30px 32px;margin:52px 0 0}
.principle h2{color:var(--canvas);margin:0 0 8px;font-size:1.1rem}
.principle p{margin:6px 0;color:rgba(237,230,218,.86)}
.principle strong{color:var(--canvas);font-weight:500}

/* The subprocessor tables need more than the 44rem reading measure. .wide
 * widens the column for them; prose inside it still sits in .read elsewhere. */
.read.wide{max-width:64rem}

/* Four-column tables do not fit 375px and should not be made to. .tablewrap
 * scrolls the table alone rather than the page - the rule the CRM already
 * follows for wide content. min-width keeps the columns readable while
 * scrolling instead of collapsing into single words per line. */
.tablewrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:18px 0}
table{border-collapse:collapse;width:100%;min-width:44rem;font-size:.92rem}
th,td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--line);vertical-align:top}
thead th{font-weight:500;color:var(--navy);border-bottom:1px solid var(--navy);font-size:.86rem}
tbody th{font-weight:500;color:var(--navy);white-space:nowrap}
tbody tr:last-child th,tbody tr:last-child td{border-bottom:none}
