/* Shared typography for standalone legal documents (privacy / terms / cookies) */
:root {
  --navy: #0D2E5C;
  --blue: #2D7DD2;
  --cream: #FAF7F2;
  --text-dark: #111827;
  --text-mid: #4B5563;
  --text-light: #6B7280;
  --gold: #E8B84B;
  --white: #FFFFFF;
  --font-display: 'Playfair Display', Georgia, serif;
  --font-body: 'DM Sans', system-ui, sans-serif;
  --max-readable: 52rem;
}

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

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  font-family: var(--font-body);
  font-size: 1rem;
  line-height: 1.65;
  color: var(--text-dark);
  background: var(--cream);
}

a {
  color: var(--blue);
}

a:hover {
  text-decoration: underline;
}

a:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: 2px;
}

.skip-link {
  position: absolute;
  inset-inline-start: 1rem;
  inset-block-start: 1rem;
  padding: 0.45rem 0.85rem;
  background: var(--navy);
  color: var(--white);
  border-radius: 6px;
  z-index: 999;
  transform: translateY(-130%);
  transition: transform 0.2s ease;
}

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

/* Fixed marketing nav — dark bar on legal pages (contrast vs cream body) */
body.legal-page .nav {
  background: var(--navy);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  border-block-end: 1px solid rgba(255, 255, 255, 0.12);
}

body.legal-page .nav__links a {
  color: rgba(255, 255, 255, 0.82);
}

body.legal-page .nav__links a:hover {
  color: var(--gold);
  font-weight: 600;
}

body.legal-page .nav__cta a.btn--ghost {
  color: var(--white);
  border-color: rgba(255, 255, 255, 0.35);
}

body.legal-page .nav__cta a.btn--ghost:hover {
  background: rgba(255, 255, 255, 0.1);
  font-weight: 500;
}

body.legal-page .nav__mobile-toggle {
  color: var(--white);
}

body.legal-page .nav__logo-mark {
  display: none;
}

body.legal-page .nav__logo {
  flex: 0 1 auto;
}

body.legal-page .nav .nav__logo .nav__wordmark {
  line-height: normal;
  min-height: 44px;
  overflow: visible;
  flex-shrink: 0;
}

body.legal-page .nav .nav__logo .nav__wordmark img {
  display: block;
  width: auto;
  height: clamp(36px, 8vw, 48px);
  max-height: 48px;
  max-width: min(220px, 45vw);
  object-fit: contain;
  object-position: left center;
}

@media (max-width: 900px) {
  body.legal-page .nav .nav__logo .nav__wordmark img {
    max-width: min(180px, calc(100vw - 10rem));
  }
}

/* Offset legal content below fixed header (height varies by locale / wrapping) */
body.legal-page {
  --legal-nav-gap: 1.75rem;
}

body.legal-page main {
  padding: calc(var(--site-nav-offset, 6.5rem) + var(--legal-nav-gap)) 1.25rem 4rem;
}

@media (max-width: 900px) {
  body.legal-page {
    --legal-nav-gap: 1.25rem;
  }
}

main {
  max-width: var(--max-readable);
  margin-inline: auto;
}

h1 {
  font-family: var(--font-display);
  font-size: clamp(1.75rem, 4vw, 2.35rem);
  font-weight: 700;
  color: var(--navy);
  line-height: 1.2;
  margin-block-end: 0.35rem;
}

.meta-lede {
  font-size: 0.92rem;
  color: var(--text-light);
  margin-block-end: 2rem;
}

h2 {
  font-family: var(--font-display);
  font-size: 1.35rem;
  font-weight: 700;
  color: var(--navy);
  margin-block: 2rem 0.65rem;
}

h3 {
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--text-dark);
  margin-block: 1.25rem 0.45rem;
}

p {
  margin-block: 0.75rem;
  color: var(--text-mid);
}

ul,
ol {
  margin-block: 0.65rem;
  padding-inline-start: 1.35rem;
  color: var(--text-mid);
}

li {
  margin-block: 0.35rem;
}

small {
  font-size: 0.82rem;
  color: var(--text-light);
}

.footer-mini {
  margin-block-start: 3rem;
  padding-block-start: 2rem;
  border-block-start: 1px solid rgba(13, 46, 92, 0.12);
  font-size: 0.88rem;
  color: var(--text-light);
}

.footer-mini nav {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  margin-block-end: 1rem;
}

.footer-mini nav a {
  color: var(--blue);
}
