:root {
  --legal-navy: #102832;
  --legal-slate: #40545b;
  --legal-muted: #53666d;
  --legal-brass: #b78a3d;
  --legal-paper: #fafaf8;
  --legal-white: #ffffff;
  --font-serif: 'Cormorant', Georgia, serif;
  --font-sans: 'Jost', Arial, sans-serif;
}

* { box-sizing: border-box; }

html {
  overflow-x: clip;
  max-width: 100%;
}

body {
  margin: 0;
  background: var(--legal-paper);
  color: var(--legal-navy);
  font-family: var(--font-sans);
  font-size: 16px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  overflow-x: clip;
}

.legal-shell {
  padding: 2.5rem 20px 4rem;
}

@media (max-width: 374px) {
  .legal-shell { padding-left: 16px; padding-right: 16px; }
}

.legal-wrap {
  max-width: 760px;
  margin: 0 auto;
}

.legal-template-notice {
  margin-bottom: 1.75rem;
  padding: 1rem 1.125rem;
  border: 1px solid #d7e0e2;
  border-left: 3px solid var(--legal-brass);
  border-radius: 8px;
  background: #f4f7f7;
  font-size: 15px;
  line-height: 1.6;
  color: var(--legal-slate);
}

.legal-title {
  margin: 0;
  font-family: var(--font-serif);
  font-size: clamp(1.75rem, 4vw, 2.35rem);
  font-weight: 600;
  line-height: 1.12;
}

.legal-meta {
  margin: 0.75rem 0 0;
  font-size: 15px;
  color: var(--legal-muted);
}

.legal-toc {
  margin: 1.75rem 0 2rem;
  padding: 1rem 1.125rem;
  border: 1px solid #d9dee0;
  border-radius: 10px;
  background: var(--legal-white);
}

.legal-toc h2 {
  margin: 0 0 0.65rem;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--legal-brass);
}

.legal-toc ol {
  margin: 0;
  padding-left: 1.25rem;
  font-size: 15px;
  line-height: 1.65;
}

.legal-body {
  font-size: 16px;
  line-height: 1.65;
  color: var(--legal-slate);
}

.legal-body h2 {
  margin: 2rem 0 0.75rem;
  font-family: var(--font-serif);
  font-size: 1.2rem;
  font-weight: 600;
  line-height: 1.3;
  color: var(--legal-navy);
}

.legal-body p,
.legal-body li {
  margin: 0.65rem 0;
}

.legal-body ul {
  padding-left: 1.25rem;
}

a {
  color: #8b682d;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 2px;
}

a:focus-visible {
  outline: 3px solid rgba(183, 138, 61, 0.55);
  outline-offset: 2px;
}

.legal-back {
  margin-top: 2.5rem;
  font-size: 15px;
  font-weight: 600;
}
