/* ==========================================================================
   Rechtstexte – Impressum, Datenschutz, Datenschutzeinstellungen
   ========================================================================== */

.legal-page {
  background: var(--c-ivory);
  color: var(--c-ink);
}

.legal {
  width: var(--shell);
  margin-inline: auto;
  padding-top: calc(var(--header-top) + var(--header-h) + clamp(4rem, 12svh, 8rem));
  padding-bottom: clamp(5rem, 8vw, 9rem);
}

.legal__kicker { color: var(--c-muted-on-ivory); }

.legal__title {
  margin-top: 1.5rem;
  font-size: clamp(2.5rem, 1.4rem + 4vw, 5rem);
  font-weight: 450;
  font-stretch: 92%;
  line-height: 1.02;
  letter-spacing: -0.03em;
}

.legal__body {
  max-width: 38rem;
  margin-top: clamp(3rem, 5vw, 4.5rem);
}

.legal__block + .legal__block {
  margin-top: clamp(2.5rem, 4vw, 3.5rem);
  padding-top: clamp(2.5rem, 4vw, 3.5rem);
  border-top: 1px solid var(--c-line);
}

.legal__block h2 {
  font-size: 0.75rem;
  font-weight: 500;
  font-stretch: 112%;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--c-muted-on-ivory);
}

.legal__block p {
  margin-top: 1.25rem;
  font-size: var(--fs-lead);
  line-height: 1.7;
}
.legal__block p + p { margin-top: 0.9rem; }
.legal__note { color: var(--c-muted-on-ivory); }

/* Kontaktzeilen */
.legal__rows {
  display: grid;
  gap: 0.9rem;
  margin-top: 1.25rem;
}
.legal__row {
  display: grid;
  grid-template-columns: 6.5rem minmax(0, 1fr);
  align-items: baseline;
  gap: 1rem;
}
.legal__label {
  font-size: 0.6875rem;
  font-weight: 500;
  font-stretch: 112%;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--c-muted-on-ivory);
}
.legal__row a {
  font-size: var(--fs-lead);
  text-decoration: none;
  border-bottom: 1px solid var(--c-line);
  padding-bottom: 0.1rem;
  overflow-wrap: anywhere;
  transition: color 0.25s ease, border-color 0.25s ease;
}
@media (hover: hover) and (pointer: fine) {
  .legal__row a:hover { color: var(--c-bronze); border-color: var(--c-bronze); }
}

.legal__back {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  margin-top: clamp(3rem, 5vw, 4rem);
  font-size: 0.9375rem;
  text-decoration: none;
  border-bottom: 1px solid currentColor;
  padding-bottom: 0.15rem;
}
.legal__back svg { width: 1rem; height: 1rem; transform: rotate(180deg); }

/* Footer auf eigener dunkler Fläche */
.legal-footer {
  background: var(--c-dark);
  color: var(--c-ivory);
}

@media (max-width: 560px) {
  .legal__row { grid-template-columns: 1fr; gap: 0.3rem; }
}

/* ---------- Langer Rechtstext mit nummerierten Abschnitten ---------- */

.legal__body--doc { max-width: 40rem; }

.legal__block--num h2 {
  display: flex;
  align-items: baseline;
  gap: 1rem;
  font-size: clamp(1.25rem, 1rem + 0.9vw, 1.75rem);
  font-weight: 450;
  font-stretch: 94%;
  line-height: 1.2;
  letter-spacing: -0.015em;
  text-transform: none;
  color: var(--c-ink);
}
.legal__num {
  flex: none;
  font-size: 0.6875rem;
  font-weight: 500;
  font-stretch: 112%;
  letter-spacing: 0.2em;
  color: var(--c-bronze-on-light);
  font-variant-numeric: tabular-nums;
}
.legal__block--num p {
  font-size: 1.0625rem;
  line-height: 1.75;
  color: var(--c-ink);
}
.legal__block--num p + p { margin-top: 1rem; }
.legal__block--num .legal__muted { color: var(--c-muted-on-ivory); }

.legal__address {
  margin-top: 1.25rem;
  font-size: 1.0625rem;
  line-height: 1.8;
}

.legal__block--num a {
  color: var(--c-ink);
  text-decoration: none;
  border-bottom: 1px solid var(--c-line);
  padding-bottom: 0.05rem;
  overflow-wrap: anywhere;
  transition: color 0.25s ease, border-color 0.25s ease;
}
@media (hover: hover) and (pointer: fine) {
  .legal__block--num a:hover { color: var(--c-bronze); border-color: var(--c-bronze); }
}

.legal__callout {
  margin-top: 1.25rem;
  padding: 1.1rem 1.25rem;
  border-left: 1px solid var(--c-bronze);
  background: var(--c-stone);
}
.legal__callout p { font-size: 1rem; }

.legal__authority {
  margin-top: 1.25rem;
  padding-top: 1.25rem;
  border-top: 1px solid var(--c-line);
  font-size: 1rem;
  line-height: 1.7;
  color: var(--c-muted-on-ivory);
}
.legal__authority strong { color: var(--c-ink); font-weight: 500; }

/* Muster-Widerrufsformular */
.legal__form {
  margin-top: 1.5rem;
  padding: clamp(1.25rem, 2.5vw, 2rem);
  border: 1px solid var(--c-line);
  background: var(--c-stone);
}
.legal__form p { font-size: 1rem; line-height: 1.7; }
/* auf der Stone-Fläche braucht Grau mehr Kontrast */
.legal__form .legal__muted { color: var(--c-muted-on-stone); }
.legal__form p + p { margin-top: 1rem; }
.legal__line {
  border-bottom: 1px solid var(--c-line);
  margin-top: 0.35rem !important;
}

/* Verwaltung der Einwilligung */
.legal__callout p + .consent-actions { margin-top: 1rem; }
.consent-actions .btn { min-height: 2.75rem; padding: 0.7rem 1.2rem; font-size: 0.875rem; }
