/* Mappy documents share Knotenhub's colours and typography. */
.legal-header { border-bottom: 1px solid var(--color-border); }
.legal-header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding-block: 1.25rem;
}
.legal-header .logo img { height: 2.75rem; width: auto; }
.legal-header-actions { display: flex; align-items: center; gap: 1rem; }
.legal-theme-toggle { display: none; }
.js .legal-theme-toggle { display: inline-flex; }
.legal-main { max-width: 860px; padding-block: clamp(2.5rem, 6vw, 5rem); }
.legal-eyebrow { color: var(--color-primary); font-weight: 700; margin-bottom: .75rem; }
.legal-main h1 { margin-bottom: 1rem; }
.legal-main h2 { font-size: clamp(1.4rem, 1.1rem + 1vw, 1.9rem); margin-block: 2.5rem 1rem; }
.legal-main h3 { font-size: 1.125rem; margin-block: 1.75rem .75rem; }
.legal-meta { color: var(--color-text-secondary); font-size: var(--text-small); }
.legal-nav { display: flex; flex-wrap: wrap; gap: .75rem 1.5rem; margin-block: 1.5rem; }
.legal-nav a[aria-current="page"] { font-weight: 700; text-decoration-thickness: 2px; }
.legal-language-nav { display: flex; gap: 1.5rem; margin-block: 1.5rem 2rem; }
.legal-summary { padding: 1.5rem; background: var(--color-surface-subtle); border-left: 4px solid var(--color-primary); border-radius: var(--radius); }
.legal-summary p:last-child { margin-bottom: 0; }
.legal-document { scroll-margin-top: 2rem; }
.legal-document + .legal-document { border-top: 1px solid var(--color-border); padding-top: 2rem; margin-top: 4rem; }
.legal-document p, .legal-document li { line-height: 1.75; }
.legal-document ul { padding-left: 1.5rem; margin-block: 1rem; }
.legal-document li { margin-bottom: .6rem; }
.legal-document address { font-style: normal; line-height: 1.75; margin-bottom: 1.5rem; }
.legal-document a, .legal-footer a { overflow-wrap: anywhere; }
.legal-footer { border-top: 1px solid var(--color-border); padding-block: 2rem; font-size: var(--text-small); color: var(--color-text-secondary); }
.legal-footer p { margin-bottom: .5rem; }
@media (max-width: 35rem) {
  .legal-header-inner { align-items: flex-start; }
  .legal-header-actions { flex-direction: column; align-items: flex-end; gap: .5rem; }
  .legal-header .logo img { height: 2rem; }
  .legal-summary { padding: 1rem; }
}
@media print {
  .legal-header-actions, .legal-language-nav, .legal-nav, .skip-link { display: none; }
  .legal-main { max-width: none; padding-block: 1rem; }
  .legal-document h2, .legal-document h3 { break-after: avoid; }
  .legal-document + .legal-document { break-before: page; }
}
