html, body { min-width:320px; margin:0; }
body { min-height:100vh; background:var(--bg); }
a { color:inherit; }

.legal-page {
  min-height:100vh;
  overflow:hidden;
  background:var(--ambient), var(--bg);
}
.legal-shell { width:min(100% - 40px, 1180px); margin-inline:auto; position:relative; z-index:1; }
.skip-link {
  position:fixed;
  left:16px;
  top:12px;
  z-index:10;
  padding:10px 14px;
  background:var(--text);
  color:var(--bg);
  transform:translateY(-180%);
}
.skip-link:focus { transform:translateY(0); }

.legal-masthead {
  min-height:78px;
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:24px;
  border-bottom:1px solid var(--line);
}
.home-link { justify-self:start; color:var(--text-2); font-size:13px; text-decoration:none; }
.brand { justify-self:center; text-decoration:none; }
.brand .ik-wordmark { font-size:17px; }
.legal-nav { justify-self:end; display:flex; gap:18px; color:var(--text-2); font-size:13px; }
.legal-nav a,
.legal-footer a { text-underline-offset:4px; text-decoration-thickness:1px; }
.legal-nav a[aria-current="page"] { color:var(--text); text-decoration-color:var(--sig); }

.legal-hero {
  display:grid;
  grid-template-columns:minmax(0, 1.15fr) minmax(280px, .85fr);
  gap:clamp(34px, 7vw, 90px);
  padding:clamp(48px, 8vw, 96px) 0 clamp(42px, 6vw, 72px);
  align-items:end;
}
.legal-hero--single { grid-template-columns:minmax(0, 820px); }
.legal-hero h1 { margin:10px 0 0; max-width:11ch; font-size:clamp(48px, 7vw, 88px); }
.legal-hero h1 .state { color:var(--state-text); }
.legal-lede { margin:22px 0 0; max-width:54ch; color:var(--text-2); font-size:clamp(17px, 1.8vw, 21px); line-height:1.55; }
.legal-meta { margin:0; padding:24px; }
.legal-meta dl { margin:0; display:grid; gap:18px; }
.legal-meta div { display:grid; gap:4px; }
.legal-meta dt { color:var(--text-3); font-family:var(--font-mono); font-size:11px; letter-spacing:var(--track-label); text-transform:uppercase; }
.legal-meta dd { margin:0; color:var(--text); }

.plain-summary {
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  border-block:1px solid var(--line);
}
.plain-summary article { min-height:156px; padding:26px clamp(20px, 3vw, 34px); }
.plain-summary article + article { border-left:1px solid var(--line); }
.plain-summary strong { display:block; margin-top:12px; font-size:clamp(18px, 2vw, 24px); font-weight:500; }
.plain-summary p { margin:8px 0 0; color:var(--text-2); line-height:1.5; }

.legal-content {
  display:grid;
  grid-template-columns:220px minmax(0, 720px);
  justify-content:space-between;
  gap:clamp(40px, 8vw, 110px);
  padding:clamp(54px, 8vw, 100px) 0;
}
.legal-toc { align-self:start; position:sticky; top:24px; }
.legal-toc p { margin:0 0 14px; }
.legal-toc ol { margin:0; padding:0; list-style:none; display:grid; gap:10px; counter-reset:legal; }
.legal-toc li { counter-increment:legal; }
.legal-toc a { color:var(--text-2); font-size:13px; line-height:1.4; text-decoration:none; }
.legal-toc a::before { content:counter(legal, decimal-leading-zero) "  "; color:var(--text-3); font-family:var(--font-mono); }
.legal-toc a:hover { color:var(--sig); }

.legal-copy { min-width:0; }
.legal-copy section { scroll-margin-top:24px; padding:0 0 42px; }
.legal-copy section + section { padding-top:42px; border-top:1px solid var(--line); }
.legal-copy h2 { margin:0 0 16px; font-size:clamp(24px, 3vw, 34px); }
.legal-copy h3 { margin:26px 0 10px; font-size:18px; font-weight:600; }
.legal-copy p,
.legal-copy li { color:var(--text-2); line-height:1.7; }
.legal-copy p { margin:0 0 14px; }
.legal-copy ul { margin:12px 0 0; padding-left:21px; }
.legal-copy li + li { margin-top:8px; }
.legal-copy strong { color:var(--text); font-weight:600; }
.legal-copy a { color:var(--text); text-underline-offset:4px; }
.notice-box { margin-top:22px; padding:20px 22px; border-left:2px solid var(--sig); background:linear-gradient(90deg, var(--sig-quiet), transparent 78%); }
.notice-box p:last-child { margin-bottom:0; }

.legal-footer {
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:baseline;
  gap:22px;
  padding:34px 0 46px;
  border-top:1px solid var(--line);
}
.legal-footer p { margin:0; }
.legal-footer nav { display:flex; gap:18px; color:var(--text-2); font-size:13px; }
.legal-footer .footer-legal { justify-self:end; color:var(--text-3); font-family:var(--font-mono); font-size:11px; }

:focus-visible { outline:2px solid var(--sig); outline-offset:4px; }

@media (prefers-reduced-motion:reduce) {
  *, *::before, *::after { scroll-behavior:auto !important; transition-duration:.01ms !important; animation-duration:.01ms !important; }
}

@media (max-width:760px) {
  .legal-shell { width:min(100% - 28px, 640px); }
  .legal-masthead { min-height:68px; grid-template-columns:1fr auto; }
  .home-link { display:none; }
  .brand { justify-self:start; }
  .legal-hero { grid-template-columns:1fr; align-items:start; }
  .legal-meta { max-width:520px; }
  .plain-summary { grid-template-columns:1fr; }
  .plain-summary article { min-height:0; }
  .plain-summary article + article { border-left:0; border-top:1px solid var(--line); }
  .legal-content { grid-template-columns:1fr; }
  .legal-toc { position:static; padding-bottom:26px; border-bottom:1px solid var(--line); }
  .legal-toc ol { grid-template-columns:1fr 1fr; }
  .legal-footer { grid-template-columns:1fr auto; }
  .legal-footer nav { grid-column:1 / -1; grid-row:1; }
  .legal-footer .footer-legal { justify-self:end; }
}

@media (max-width:480px) {
  .legal-nav { gap:12px; font-size:12px; }
  .legal-hero h1 { font-size:clamp(42px, 13vw, 58px); }
  .legal-toc ol { grid-template-columns:1fr; }
  .legal-footer { display:flex; flex-direction:column; align-items:flex-start; }
}
