:root {
  --legal-charcoal: #15110f;
  --legal-bone: #fffaf1;
  --legal-paper: #fffdf9;
  --legal-ink: #241c18;
  --legal-muted: #6f655d;
  --legal-ember: #b83316;
  --legal-gold: #e1b36e;
  --legal-line: rgba(36, 28, 24, .15);
}

html { scroll-behavior: smooth; scroll-padding-top: 1.5rem; }
body {
  margin: 0 !important;
  background: var(--legal-bone) !important;
  color: var(--legal-ink) !important;
  font-family: "Manrope", Arial, sans-serif !important;
  line-height: 1.75;
}
a { color: var(--legal-ember); text-underline-offset: .2em; }
:focus-visible {
  outline: 3px solid var(--legal-bone) !important;
  outline-offset: 3px !important;
  box-shadow: 0 0 0 6px #e4572e !important;
}
.skip-link {
  position: fixed;
  z-index: 999;
  top: .75rem;
  left: .75rem;
  padding: .75rem 1rem;
  border-radius: .5rem;
  background: var(--legal-bone);
  color: var(--legal-ink);
  font-weight: 700;
  transform: translateY(-160%);
  transition: transform 180ms ease;
}
.skip-link:focus { transform: translateY(0); }

.header,
.legal-hero,
.navbar {
  position: relative !important;
  inset: auto !important;
  padding: 2.5rem max(1.25rem, calc((100vw - 900px) / 2)) 3.5rem !important;
  background: radial-gradient(circle at 80% 10%, rgba(228, 87, 46, .18), transparent 22rem), var(--legal-charcoal) !important;
  color: var(--legal-bone) !important;
}
.header .container,
.legal-hero .legal-container,
.navbar .container {
  width: min(900px, 100%) !important;
  max-width: 900px !important;
  margin: 0 auto !important;
  padding: 0 !important;
}
.header h1,
.legal-title {
  margin: 1rem 0 .45rem !important;
  color: var(--legal-bone) !important;
  font-family: "Fraunces", Georgia, serif !important;
  font-size: clamp(2.4rem, 7vw, 4.6rem) !important;
  line-height: 1 !important;
}
.header p,
.legal-subtitle,
.header small { color: rgba(255, 250, 241, .7) !important; }
.header .brand a,
.navbar-brand { color: var(--legal-bone) !important; }
.legal-nav {
  display: flex !important;
  flex-wrap: wrap;
  gap: .55rem !important;
  margin-top: 1.25rem !important;
}
.legal-nav a {
  padding: .45rem .75rem !important;
  border: 1px solid rgba(255, 250, 241, .25) !important;
  border-radius: 999px !important;
  color: var(--legal-bone) !important;
  font-size: .8rem !important;
  font-weight: 700 !important;
  text-decoration: none !important;
}
.legal-nav a:hover { background: rgba(255, 250, 241, .1) !important; }
.navbar .collapse { display: block !important; }
.navbar-nav {
  display: flex !important;
  flex-wrap: wrap;
  gap: .75rem !important;
  margin: 1rem 0 0 !important;
  padding: 0 !important;
  list-style: none !important;
}
.navbar .nav-link { color: var(--legal-bone) !important; }

main.container,
.legal-content {
  display: block;
  width: min(900px, calc(100% - 2rem)) !important;
  max-width: 900px !important;
  margin: -1.5rem auto 3rem !important;
  padding: 0 !important;
}
.legal-content .legal-container { width: 100% !important; max-width: none !important; margin: 0 !important; padding: 0 !important; }
.card,
.legal-card {
  padding: clamp(1.35rem, 5vw, 3rem) !important;
  border: 1px solid var(--legal-line) !important;
  border-radius: 1.4rem !important;
  background: var(--legal-paper) !important;
  box-shadow: 0 20px 55px rgba(36, 28, 24, .1) !important;
  color: var(--legal-ink) !important;
}
.card h2,
.legal-card h2 {
  margin: 2rem 0 .65rem !important;
  color: var(--legal-ink) !important;
  font-family: "Fraunces", Georgia, serif !important;
  font-size: 1.55rem !important;
}
.card h3,
.legal-card h3 { color: var(--legal-ink) !important; }
.toc { display: grid; gap: .45rem; margin: 1.25rem 0 2rem; }
.toc a {
  display: block;
  padding: .65rem .8rem;
  border: 1px solid var(--legal-line);
  border-radius: .65rem;
  background: #f8f1e8;
  color: var(--legal-ink);
  text-decoration: none;
}
.toc a:hover,
.toc a.active { border-color: rgba(184, 51, 22, .45); color: var(--legal-ember); }
.note,
.meta {
  padding: .85rem 1rem !important;
  border: 1px solid rgba(184, 51, 22, .2) !important;
  border-radius: .7rem !important;
  background: #fff1ea !important;
  color: #5b291d !important;
}
.table { display: block; max-width: 100%; overflow-x: auto; }
.actions { display: flex; flex-wrap: wrap; gap: .65rem; }
.btn {
  display: inline-flex;
  padding: .7rem 1rem !important;
  border: 1px solid var(--legal-ember) !important;
  border-radius: 999px !important;
  background: var(--legal-ember) !important;
  color: #fff !important;
  font-weight: 700 !important;
  text-decoration: none !important;
}
.btn-outline { background: transparent !important; color: var(--legal-ember) !important; }
.legal-footer {
  padding: 2rem 1rem !important;
  background: var(--legal-charcoal) !important;
  color: rgba(255, 250, 241, .7) !important;
  text-align: center;
}

@media (max-width: 640px) {
  .header, .legal-hero, .navbar { padding-inline: 1rem !important; }
  .navbar-nav { flex-direction: column; }
}

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