:root {
  --ink: #101820;
  --ink-soft: #3D4754;
  --muted: #5A6472;
  --line: #E4E8ED;
  --bg: #FFFFFF;
  --bg-alt: #F7F8FA;
  --accent: #E5533D;
  --measure: 34rem;
}

*, *::before, *::after { box-sizing: border-box; }

body {
  margin: 0;
  background: var(--bg);
  color: var(--ink);
  font: 400 17px/1.7 "Helvetica Neue", Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
}

/* ---------- header ---------- */
.site-head {
  border-bottom: 1px solid var(--line);
  padding: 1.25rem 1.5rem;
}
.site-head a { display: inline-block; line-height: 0; }
.site-head img { width: 180px; height: auto; }

/* ---------- layout ---------- */
.wrap { max-width: var(--measure); margin: 0 auto; padding: 3.5rem 1.5rem 4rem; }

/* ---------- legal document typography ---------- */
.doc h1 {
  font-size: 1.9rem;
  line-height: 1.25;
  letter-spacing: -0.02em;
  margin: 0 0 .5rem;
}
.doc .updated {
  color: var(--muted);
  font-size: .875rem;
  margin: 0 0 2.5rem;
  padding-bottom: 1.5rem;
  border-bottom: 1px solid var(--line);
}
.doc h2 {
  font-size: 1.15rem;
  letter-spacing: -0.01em;
  margin: 2.75rem 0 .75rem;
  padding-top: .25rem;
}
.doc h3 { font-size: 1rem; margin: 1.75rem 0 .5rem; }
.doc p, .doc li { color: var(--ink-soft); }
.doc ul, .doc ol { padding-left: 1.25rem; }
.doc li { margin-bottom: .5rem; }
.doc a { color: var(--ink); text-decoration-color: var(--accent); text-underline-offset: 3px; }
.doc strong { color: var(--ink); }

/* Callout for the things a reader must not miss. */
.note {
  background: var(--bg-alt);
  border-left: 3px solid var(--accent);
  padding: 1rem 1.25rem;
  margin: 1.5rem 0;
  font-size: .95rem;
}
.note p:first-child { margin-top: 0; }
.note p:last-child { margin-bottom: 0; }

/* Placeholders the operator must replace before publishing. */
.fill {
  background: #FFF3C4;
  border-bottom: 1px solid #E5C558;
  padding: 0 .2em;
  font-style: normal;
}

table { border-collapse: collapse; width: 100%; margin: 1.5rem 0; font-size: .95rem; }
th, td { text-align: left; padding: .65rem .75rem; border-bottom: 1px solid var(--line); }
th { font-weight: 600; background: var(--bg-alt); }

/* ---------- footer ---------- */
.site-foot {
  border-top: 1px solid var(--line);
  padding: 2rem 1.5rem 3rem;
  font-size: .875rem;
  color: var(--muted);
}
.site-foot nav {
  max-width: var(--measure);
  margin: 0 auto 1rem;
  display: flex;
  flex-wrap: wrap;
  gap: .5rem 1.5rem;
}
.site-foot a { color: var(--muted); text-decoration: none; }
.site-foot a:hover { color: var(--ink); text-decoration: underline; }
.site-foot .copy { max-width: var(--measure); margin: 0 auto; }

/* ---------- home ---------- */
.home { min-height: 60vh; display: grid; place-items: center; text-align: center; padding: 4rem 1.5rem; }
.home img { width: 260px; height: auto; margin-bottom: 1.5rem; }
.home p { color: var(--muted); margin: 0; }

@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }
