:root {
  --canvas: oklch(1 0 0);
  --surface: oklch(0.975 0.008 140);
  --surface-strong: oklch(0.93 0.018 140);
  --ink: oklch(0.19 0.015 140);
  --ink-soft: oklch(0.34 0.025 140);
  --ink-muted: oklch(0.43 0.02 140);
  --line: oklch(0.82 0.018 140);
  --forest: oklch(0.29 0.09 140);
  --forest-deep: oklch(0.21 0.07 140);
  --forest-light: oklch(0.78 0.09 140);
  --signal: oklch(0.49 0.18 27);
  --radius-sm: 0.5rem;
  --radius-md: 0.75rem;
  --space-xs: 0.5rem;
  --space-sm: 0.75rem;
  --space-md: 1rem;
  --space-lg: 1.5rem;
  --space-xl: 2rem;
  --space-2xl: clamp(3rem, 7vw, 6rem);
  --ease-out: cubic-bezier(0.22, 1, 0.36, 1);
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }

html { scroll-behavior: smooth; }

body {
  min-width: 20rem;
  margin: 0;
  color: var(--ink);
  background: var(--canvas);
  font-family: "Manrope", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 1rem;
  line-height: 1.68;
  font-kerning: normal;
  font-optical-sizing: auto;
}

a { color: var(--forest); text-decoration-thickness: 1px; text-underline-offset: 0.18em; }
a:hover { color: var(--signal); }

:focus-visible { outline: 3px solid var(--signal); outline-offset: 3px; }

.skip-link {
  position: fixed;
  z-index: 20;
  top: var(--space-sm);
  left: var(--space-sm);
  transform: translateY(-180%);
  padding: var(--space-sm) var(--space-md);
  color: var(--canvas);
  border-radius: var(--radius-sm);
  background: var(--forest);
  font-weight: 800;
  text-decoration: none;
  transition: transform 160ms var(--ease-out);
}

.skip-link:focus { transform: translateY(0); }

.legal-shell { width: min(100% - 2rem, 76rem); margin-inline: auto; }

.legal-header {
  position: sticky;
  z-index: 10;
  top: 0;
  border-bottom: 1px solid var(--line);
  background: oklch(1 0 0 / 0.96);
  backdrop-filter: blur(12px);
}

.header-inner { display: flex; min-height: 4.75rem; align-items: center; justify-content: space-between; gap: var(--space-lg); }

.brand {
  flex: 0 0 auto;
  color: var(--forest);
  font-family: "Archivo", sans-serif;
  font-size: 1.65rem;
  font-weight: 800;
  letter-spacing: -0.035em;
  text-decoration: none;
}

.brand span { color: var(--signal); }

.legal-nav { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: var(--space-sm) var(--space-lg); }
.legal-nav a { color: var(--ink-soft); font-size: 0.85rem; font-weight: 800; text-decoration: none; }
.legal-nav a:hover { color: var(--forest); text-decoration: underline; text-underline-offset: 0.2em; }

.legal-main { padding-block: clamp(2.5rem, 7vw, 5.5rem); }

.legal-intro { max-width: 50rem; }
.legal-kicker { margin: 0 0 var(--space-sm); color: var(--forest); font-size: 0.78rem; font-weight: 800; letter-spacing: 0.07em; text-transform: uppercase; }
h1, h2, p { margin-top: 0; }
h1, h2 { font-family: "Archivo", sans-serif; letter-spacing: -0.03em; text-wrap: balance; }
h1 { max-width: 15ch; margin-bottom: var(--space-lg); font-size: clamp(2.8rem, 6vw, 5.4rem); line-height: 0.98; }
h2 { max-width: 24ch; margin-bottom: var(--space-md); font-size: clamp(1.45rem, 2.6vw, 2.25rem); line-height: 1.06; }

.lede { max-width: 68ch; margin-bottom: var(--space-2xl); color: var(--ink-soft); font-size: clamp(1.05rem, 1.6vw, 1.2rem); line-height: 1.72; text-wrap: pretty; }

.legal-notice {
  max-width: 72rem;
  margin-bottom: var(--space-2xl);
  padding: clamp(1.25rem, 3vw, 1.75rem);
  border: 2px solid var(--forest);
  border-radius: var(--radius-md);
  background: var(--surface);
}

.legal-notice h2 { margin-bottom: var(--space-xs); color: var(--forest-deep); font-size: clamp(1.3rem, 2vw, 1.7rem); }
.legal-notice p { max-width: 80ch; margin-bottom: 0; color: var(--ink-soft); }

.legal-layout { display: grid; grid-template-columns: minmax(11rem, 0.27fr) minmax(0, 1fr); gap: clamp(2rem, 7vw, 7rem); align-items: start; }

.legal-toc {
  position: sticky;
  top: 6.25rem;
  display: grid;
  gap: 0.15rem;
  padding-top: var(--space-xs);
  border-top: 2px solid var(--forest);
}

.legal-toc p { margin: var(--space-sm) 0 var(--space-xs); color: var(--ink-muted); font-size: 0.72rem; font-weight: 800; letter-spacing: 0.07em; text-transform: uppercase; }
.legal-toc a { padding-block: 0.22rem; color: var(--ink-soft); font-size: 0.86rem; font-weight: 700; text-decoration: none; }
.legal-toc a:hover { color: var(--forest); text-decoration: underline; text-underline-offset: 0.18em; }

.legal-prose { min-width: 0; max-width: 75ch; }
.legal-prose section { scroll-margin-top: 7rem; padding-block: var(--space-xl); border-top: 1px solid var(--line); }
.legal-prose section:first-child { padding-top: 0; border-top: 0; }
.legal-prose p, .legal-prose li, .data-list dd { color: var(--ink-soft); }
.legal-prose ul, .legal-prose ol { padding-left: 1.3rem; margin: var(--space-md) 0; }
.legal-prose li + li { margin-top: var(--space-sm); }
.legal-prose strong { color: var(--ink); }

.data-list { margin: var(--space-lg) 0 0; }
.data-list > div { padding-block: var(--space-md); border-top: 1px solid var(--line); }
.data-list dt { margin-bottom: 0.25rem; color: var(--ink); font-family: "Archivo", sans-serif; font-size: 1.04rem; font-weight: 700; line-height: 1.25; }
.data-list dd { margin: 0; }

.check-list { padding-left: 0 !important; list-style: none; }
.check-list li { position: relative; padding-left: 1.65rem; }
.check-list li::before { position: absolute; left: 0; color: var(--forest); content: "✓"; font-weight: 800; }
.number-list { counter-reset: item; list-style: none; padding-left: 0 !important; }
.number-list li { position: relative; padding-left: 2.1rem; }
.number-list li::before { position: absolute; left: 0; color: var(--forest); content: counter(item); counter-increment: item; font-family: "Archivo", sans-serif; font-weight: 800; }

.callout { margin: var(--space-lg) 0 0; padding: var(--space-md); border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--surface); color: var(--ink-soft); font-weight: 700; }
.placeholder { color: var(--signal); font-weight: 800; }

.legal-footer { padding-block: var(--space-xl); border-top: 1px solid var(--line); background: var(--surface); }
.legal-footer p { margin: 0; color: var(--ink-soft); font-size: 0.82rem; font-weight: 700; }

@media (max-width: 48rem) {
  .header-inner { min-height: 4.3rem; }
  .legal-nav { gap: 0.25rem 0.85rem; }
  .legal-nav a { font-size: 0.76rem; }
  .legal-layout { grid-template-columns: 1fr; gap: var(--space-xl); }
  .legal-toc { position: static; grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr)); gap: 0.15rem var(--space-md); padding-top: var(--space-sm); }
  .legal-toc p { grid-column: 1 / -1; }
  .legal-prose section { padding-block: 1.75rem; }
}

@media (max-width: 28rem) {
  .legal-shell { width: min(100% - 1.25rem, 76rem); }
  .header-inner { align-items: flex-start; flex-direction: column; gap: 0.15rem; padding-block: var(--space-sm); }
  .legal-nav { justify-content: flex-start; }
  h1 { font-size: clamp(2.4rem, 14vw, 3.2rem); }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .skip-link { transition: none; }
}
