/* ==========================================================================
   LegalGlass - premium editorial design system  (v2)
   Loaded AFTER each page's inline <style>. Enhanced progressively by site.js.
   No web fonts (speed/AEO). Full light+dark. Responsive. Print-safe.
   ========================================================================== */

:root{
  --ink:#111820;
  --ink-soft:#38424d;
  --muted:#6a7480;
  --line:#e6e9ef;
  --line-soft:#f1f3f7;
  --bg:#ffffff;
  --bg-tint:#f6f8fb;
  --card:#ffffff;

  --brand:#0c6b52;
  --brand-ink:#0a5843;
  --brand-2:#0e7c7b;           /* teal companion */
  --brand-tint:#e7f3ee;
  --brand-tint-2:#f2f9f6;
  --gold:#b8862f;
  --gold-tint:#f7efdd;
  --link:#0a5f7a;
  --link-hover:#083f52;

  --serif:"Iowan Old Style","Charter","Palatino","Georgia","Times New Roman",serif;
  --sans:-apple-system,BlinkMacSystemFont,"Segoe UI","Inter",Roboto,Helvetica,Arial,sans-serif;
  --mono:"SF Mono",ui-monospace,"Menlo",Consolas,monospace;

  --radius:16px;
  --radius-sm:11px;
  --shadow-sm:0 1px 2px rgba(17,24,32,.05),0 2px 6px rgba(17,24,32,.05);
  --shadow:0 12px 34px -14px rgba(17,24,32,.22),0 4px 12px -6px rgba(17,24,32,.12);
  --shadow-lg:0 30px 60px -22px rgba(12,107,82,.28);
  --maxw:740px;
}

@media (prefers-color-scheme: dark){
  :root{
    --ink:#eef2f7; --ink-soft:#c6cdd6; --muted:#8a95a2;
    --line:#232a32; --line-soft:#1a2027;
    --bg:#0b0e12; --bg-tint:#12161c; --card:#141a21;
    --brand:#3fbf9a; --brand-ink:#5bd0ae; --brand-2:#41c6c4;
    --brand-tint:#0f2a23; --brand-tint-2:#0d1f1a;
    --gold:#d8ac52; --gold-tint:#241d0e;
    --link:#5bb8d6; --link-hover:#8fd2e8;
    --shadow-sm:0 1px 2px rgba(0,0,0,.5);
    --shadow:0 16px 40px -16px rgba(0,0,0,.7);
    --shadow-lg:0 30px 70px -24px rgba(0,0,0,.8);
  }
}
:root[data-theme="dark"]{ color-scheme:dark; }

/* ---------- Base ---------- */
*{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; scroll-padding-top:96px; }
body{
  margin:0;
  color:var(--ink);
  font-family:var(--sans);
  font-size:18px; line-height:1.72;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
  background:
    radial-gradient(900px 420px at 100% -160px, var(--brand-tint) , transparent 60%),
    radial-gradient(1100px 520px at -10% -60px, var(--gold-tint), transparent 55%),
    var(--bg);
}
::selection{ background:var(--brand-tint); color:var(--brand-ink); }

main{ max-width:var(--maxw); margin:0 auto; padding:14px 22px 110px; }

/* reading progress bar (injected by site.js) */
.lg-progress{
  position:fixed; top:0; left:0; height:3px; width:0;
  background:linear-gradient(90deg,var(--brand),var(--brand-2),var(--gold));
  z-index:120; transition:width .1s linear;
  box-shadow:0 0 12px rgba(12,107,82,.5);
}

/* ---------- Sticky brand header ---------- */
nav.site[aria-label="Primary"]{
  position:sticky; top:0; z-index:80;
  width:100vw; margin-left:calc(50% - 50vw) !important; margin-top:-14px !important; margin-bottom:0 !important;
  display:flex; align-items:center; gap:1px;
  flex-wrap:nowrap; overflow-x:auto;
  padding:12px max(22px, calc((100vw - 1180px) / 2)) !important;
  border:0 !important; border-bottom:1px solid var(--line) !important;
  background:color-mix(in srgb,var(--bg) 82%, transparent);
  -webkit-backdrop-filter:saturate(180%) blur(16px);
  backdrop-filter:saturate(180%) blur(16px);
  font-size:.84rem !important; scrollbar-width:none;
}
@media (max-width:760px){
  nav.site[aria-label="Primary"]{
    -webkit-mask-image:linear-gradient(90deg,#000 90%,transparent);
    mask-image:linear-gradient(90deg,#000 90%,transparent);
  }
}
nav.site[aria-label="Primary"]::-webkit-scrollbar{ display:none; }
nav.site[aria-label="Primary"]::before{
  content:"LegalGlass";
  font-family:var(--serif); font-weight:700; font-size:1.15rem; letter-spacing:-.02em;
  color:var(--ink); margin-right:16px; padding-right:16px;
  border-right:1px solid var(--line); white-space:nowrap;
}
.lg-mark{ display:inline-flex; margin-right:9px; flex:0 0 auto; }
.lg-mark svg{ width:26px; height:26px; display:block; }
nav.site[aria-label="Primary"] > a{
  color:var(--ink-soft); white-space:nowrap; padding:6px 11px; border-radius:999px;
  background:none; transition:background .15s,color .15s; font-weight:500;
}
nav.site[aria-label="Primary"] > a:hover{ color:var(--brand-ink); background:var(--brand-tint); }

/* ---------- HERO (wrapped by site.js) ---------- */
.hero{
  position:relative;
  margin:22px -22px 30px;
  padding:30px 30px 30px;
  border-radius:0 0 var(--radius) var(--radius);
  background:
    linear-gradient(180deg,var(--brand-tint-2), transparent 70%),
    radial-gradient(600px 200px at 12% 0%, var(--brand-tint), transparent 70%);
  border-bottom:1px solid var(--line);
}
.hero::after{
  content:""; position:absolute; left:0; right:0; bottom:-1px; height:3px;
  background:linear-gradient(90deg,var(--brand),var(--brand-2),var(--gold));
  opacity:.9;
}
.eyebrow{
  display:inline-flex; align-items:center; gap:8px;
  font-size:.72rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase;
  color:var(--brand-ink);
  background:var(--card); border:1px solid var(--line);
  padding:6px 12px; border-radius:999px; box-shadow:var(--shadow-sm);
  margin-bottom:16px;
}
.eyebrow::before{ content:""; width:7px; height:7px; border-radius:50%;
  background:linear-gradient(135deg,var(--brand),var(--gold)); }

/* ---------- Typography ---------- */
h1{
  font-family:var(--serif); font-weight:700;
  font-size:clamp(2.1rem,5.4vw,3rem); line-height:1.1; letter-spacing:-.02em;
  margin:.1em 0 .3em; color:var(--ink);
}
.hero h1{ margin-top:0; }
h2{
  font-family:var(--serif); font-weight:700; font-size:1.55rem; line-height:1.22;
  letter-spacing:-.012em; margin:2.6em 0 .6em; padding-top:1.5em;
  border-top:1px solid var(--line); position:relative;
  counter-increment:sec;
}
main{ counter-reset:sec; }
h2::before{
  content:counter(sec); position:absolute; top:1.5em; left:0;
  transform:translateY(2px);
  display:none;                      /* enabled on wide screens */
}
h3{ font-weight:700; font-size:1.18rem; letter-spacing:-.005em; margin:1.9em 0 .35em; color:var(--ink); }
p{ margin:0 0 1.08em; color:var(--ink-soft); }
li{ color:var(--ink-soft); }
strong{ color:var(--ink); font-weight:650; }

/* section number chip on wide screens */
@media (min-width:1120px){
  h2{ padding-left:0; }
  h2::before{
    display:grid; place-items:center;
    width:30px; height:30px; left:-46px; top:1.5em;
    font-family:var(--sans); font-size:.8rem; font-weight:700;
    color:var(--brand-ink); background:var(--brand-tint);
    border:1px solid var(--line); border-radius:9px;
  }
}
/* don't number the Key-Facts / non-arc headings */
.key-facts h2{ counter-increment:none; }
.key-facts h2::before{ display:none !important; content:none !important; }

/* ---------- Links ---------- */
a{
  color:var(--link); text-decoration:none;
  background-image:linear-gradient(var(--link),var(--link));
  background-size:0% 1.5px; background-position:0 100%; background-repeat:no-repeat;
  transition:background-size .22s ease,color .15s ease;
}
a:hover{ color:var(--link-hover); background-size:100% 1.5px; }
a:focus-visible{ outline:2px solid var(--brand); outline-offset:3px; border-radius:3px; }

/* ---------- Breadcrumb ---------- */
nav[aria-label="Breadcrumb"]{ font-size:.8rem !important; color:var(--muted) !important; margin:0 0 4px; letter-spacing:.01em; }
.hero nav[aria-label="Breadcrumb"]{ margin-bottom:14px; }
nav[aria-label="Breadcrumb"] a{ color:var(--muted); }
nav[aria-label="Breadcrumb"] a:hover{ color:var(--brand-ink); }

/* ---------- Byline w/ avatar + trust chips ---------- */
.byline{
  color:var(--muted); font-size:.88rem; line-height:1.6;
  margin:18px 0 0; padding:10px 0 0; border-top:1px solid var(--line);
}
.byline::before{
  content:""; display:inline-block; width:14px; height:14px; vertical-align:-2px; margin-right:7px;
  background:linear-gradient(135deg,var(--brand),var(--gold));
  -webkit-mask:center/contain no-repeat; mask:center/contain no-repeat;
  -webkit-mask-image:url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"%3E%3Cpath d="M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z"/%3E%3C/svg%3E');
  mask-image:url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"%3E%3Cpath d="M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z"/%3E%3C/svg%3E');
}
.byline a{ color:var(--ink); font-weight:650; }

/* ---------- Answer lede ---------- */
.answer-lede{
  font-family:var(--serif); font-size:1.34rem; line-height:1.52; font-weight:400;
  color:var(--ink) !important; margin:22px 0 0; padding:0;
  border:0 !important;
}

/* ---------- Key-Facts card ---------- */
.key-facts{
  position:relative; border:1px solid var(--line) !important;
  border-radius:var(--radius) !important; padding:24px 26px 22px !important;
  margin:2em 0 2.4em !important;
  background:linear-gradient(180deg,var(--brand-tint-2),var(--card)) !important;
  box-shadow:var(--shadow); overflow:hidden;
}
.key-facts::before{ content:""; position:absolute; left:0; top:0; bottom:0; width:4px;
  background:linear-gradient(180deg,var(--brand),var(--gold)); }
.key-facts h2{
  border:0 !important; padding:0 !important; margin:0 0 1em !important;
  font-family:var(--sans) !important; font-size:.72rem !important; font-weight:700 !important;
  text-transform:uppercase; letter-spacing:.14em; color:var(--brand-ink) !important;
}
.key-facts dl{ display:grid; grid-template-columns:max-content 1fr; gap:0 1.5em !important; margin:0 !important; }
.key-facts dt{
  font-weight:650; color:var(--muted); font-size:.75rem; text-transform:uppercase;
  letter-spacing:.05em; padding:.75em 0; align-self:start;
}
.key-facts dd{ margin:0 !important; color:var(--ink); font-weight:500; padding:.7em 0; }
.key-facts dt:not(:first-of-type),
.key-facts dd:nth-of-type(n+2){ border-top:1px solid var(--line-soft); }

/* ---------- Tables ---------- */
.tocwrap{ overflow-x:auto; margin:1.7em 0; border-radius:var(--radius); box-shadow:var(--shadow-sm); }
table{
  border-collapse:separate; border-spacing:0; width:100%; font-size:.95rem;
  background:var(--card); border:1px solid var(--line); border-radius:var(--radius);
  overflow:hidden; margin:1.7em 0;
}
.tocwrap table{ margin:0; box-shadow:none; }
thead th{
  background:var(--bg-tint) !important; font-size:.72rem; text-transform:uppercase;
  letter-spacing:.06em; color:var(--muted); font-weight:700;
}
th,td{ border:0 !important; border-bottom:1px solid var(--line) !important; padding:13px 16px !important; text-align:left; vertical-align:top; }
tbody tr:last-child td{ border-bottom:0 !important; }
tbody tr:nth-child(even) td{ background:var(--line-soft); }
tbody tr:hover td{ background:var(--brand-tint-2); }

/* ---------- Lists ---------- */
ol,ul{ padding-left:1.35em; }
ol li,ul li{ margin:.55em 0; padding-left:.2em; }
main > ol > li::marker{ color:var(--brand); font-weight:700; }
main > ul > li::marker{ color:var(--brand); }

/* ---------- Sources ---------- */
.refs{
  font-size:.9rem; color:var(--muted);
  background:var(--bg-tint); border:1px solid var(--line);
  border-radius:var(--radius); padding:20px 24px 20px 42px; margin-top:1em;
}
.refs li{ margin:.55em 0; word-break:break-word; }
.refs li::marker{ color:var(--brand); font-weight:700; }

/* ---------- Disclaimer ---------- */
.disclaimer{
  font-size:.86rem !important; color:var(--muted) !important;
  background:var(--gold-tint); border:1px solid var(--line); border-left:3px solid var(--gold);
  border-radius:var(--radius-sm); margin-top:3em !important; padding:16px 20px !important;
}

/* ---------- Related list ---------- */
main h2 + ul{ list-style:none; padding-left:0; }
main h2 + ul li{ padding:.25em 0 .25em 1.5em; position:relative; }
main h2 + ul li::before{ content:"→"; position:absolute; left:0; color:var(--brand); font-weight:700; }

/* ---------- Footer ---------- */
footer.site{
  border-top:1px solid var(--line) !important; margin-top:3.5em !important;
  padding-top:1.8em !important; font-size:.86rem !important; color:var(--muted) !important; line-height:2;
}
footer.site a{ color:var(--ink-soft); } footer.site a:hover{ color:var(--brand-ink); }

/* ---------- Sticky TOC rail (injected by site.js) ---------- */
.lg-toc{ display:none; }
@media (min-width:1120px){
  .lg-toc{
    display:block; position:fixed; top:110px;
    left:calc(50% + var(--maxw)/2 + 34px); width:210px; max-height:76vh; overflow:auto;
    font-size:.82rem; scrollbar-width:thin;
  }
  .lg-toc-h{ font-size:.68rem; font-weight:700; text-transform:uppercase; letter-spacing:.12em; color:var(--muted); margin-bottom:12px; }
  .lg-toc ul{ list-style:none; margin:0; padding:0; border-left:2px solid var(--line); }
  .lg-toc li{ margin:0; }
  .lg-toc a{
    display:block; padding:6px 0 6px 14px; margin-left:-2px;
    color:var(--muted); border-left:2px solid transparent; background:none; line-height:1.35;
  }
  .lg-toc a:hover{ color:var(--brand-ink); }
  .lg-toc a.active{ color:var(--brand-ink); font-weight:600; border-left-color:var(--brand); }
}

/* ---------- Responsive ---------- */
@media (max-width:640px){
  body{ font-size:16.5px; }
  main{ padding:12px 18px 84px; }
  .hero{ margin:16px -18px 24px; padding:24px 20px; }
  .answer-lede{ font-size:1.16rem; }
  .key-facts dl{ grid-template-columns:1fr; gap:0 !important; }
  .key-facts dt{ padding-bottom:.15em; } .key-facts dd{ padding-top:.15em; }
  .key-facts dd:nth-of-type(n+2){ border-top:0; }
  .key-facts dt:not(:first-of-type){ border-top:1px solid var(--line-soft); margin-top:.4em; }
  nav.site[aria-label="Primary"]{ margin:-12px -18px 0 !important; padding:12px 18px !important; }
}

/* ---------- Print ---------- */
@media print{
  .lg-progress,.lg-toc,nav.site[aria-label="Primary"]{ display:none !important; }
  body{ background:#fff; color:#000; font-size:11pt; } a{ color:#000; background:none; }
  .hero{ background:none; border:0; margin:0; padding:0; }
}
