/* basis.css – Website-Basis (Rechtstexte, Systemseiten, Formular-Helfer)
   Wird NACH style.css geladen. Nutzt ausschließlich die Design-Tokens der Kunden-Website
   (--color-*, --radius-*), deshalb passen sich Farben automatisch an.
   Fallback-Werte greifen nur, falls ein Token fehlt. Diese Datei nicht pro Kunde ändern,
   Anpassungen gehören in style.css. */

/* ---------- Rechtstexte & Systemseiten ---------- */
.rechtstext {
  max-width: 72ch;
  margin: 0 auto;
  padding: clamp(2rem, 6vw, 4.5rem) 1.25rem;
  color: var(--color-text, #1d1d1f);
  line-height: 1.65;
}
.rechtstext h1 {
  margin: 0 0 .5em;
  line-height: 1.15;
  color: var(--color-text, #1d1d1f);
}
.rechtstext h2 {
  margin: 2.2em 0 .6em;
  font-size: 1.3rem;
  line-height: 1.3;
}
.rechtstext h3 {
  margin: 1.6em 0 .4em;
  font-size: 1.05rem;
}
.rechtstext p,
.rechtstext ul,
.rechtstext ol { margin: 0 0 1em; }
.rechtstext ul,
.rechtstext ol { padding-left: 1.25em; }
.rechtstext li + li { margin-top: .35em; }
.rechtstext a {
  color: var(--color-primary, #0b57d0);
  text-decoration: underline;
  text-underline-offset: .15em;
  overflow-wrap: anywhere;
}
.rechtstext a:hover { color: var(--color-primary-dark, var(--color-primary, #0842a0)); }
.rechtstext .stand {
  color: var(--color-text-muted, #6b6b72);
  font-size: .875rem;
}
.rechtstext .hinweis {
  background: var(--color-bg-alt, #f4f4f5);
  border-left: 4px solid var(--color-primary, #0b57d0);
  border-radius: var(--radius-m, 8px);
  padding: 1rem 1.25rem;
  margin: 1.5em 0;
}
.rechtstext .hinweis > :first-child { margin-top: 0; }
.rechtstext .hinweis > :last-child { margin-bottom: 0; }
.rechtstext .tabelle-scroll { overflow-x: auto; margin: 0 0 1em; }
.rechtstext table { width: 100%; border-collapse: collapse; font-size: .95rem; }
.rechtstext th,
.rechtstext td {
  text-align: left;
  padding: .6em .75em;
  border-bottom: 1px solid var(--color-border, #dcdae2);
  vertical-align: top;
}
.rechtstext th { background: var(--color-bg-alt, #f4f4f5); }
.systemseite .button { margin-top: .5em; }

/* ---------- Kontaktformular-Helfer ---------- */
.hp {                       /* Honeypot: für Menschen unsichtbar, für Bots ein Feld */
  position: absolute !important;
  left: -10000px !important;
  width: 1px;
  height: 1px;
  overflow: hidden;
}
.formular-fehler {
  color: var(--color-error, #c62828);
  background: color-mix(in srgb, var(--color-error, #c62828) 8%, transparent);
  border-radius: var(--radius-m, 8px);
  padding: .75rem 1rem;
  margin: 0 0 1rem;
}
.formular-fehler[hidden] { display: none; }
.feld-hinweis {
  font-size: .875rem;
  color: var(--color-text-muted, #6b6b72);
}

@media print {
  .rechtstext { max-width: none; padding: 0; }
  .rechtstext a { color: inherit; }
}

/* ===== Einwilligungs-Hinweis (consent.js, Baustein ANALYTICS, ab Basis 1.3) ===== */
.consent{position:fixed;left:16px;right:16px;bottom:16px;z-index:90;max-width:44rem;margin:0 auto;padding:20px 22px;background:var(--color-bg, #fff);color:var(--color-text, #101828);border-radius:var(--radius-m, 8px);box-shadow:0 8px 32px rgba(0,0,0,.28)} /* taste-skill-ignore: echter Dialog über der Seite */
.consent h2{font-size:1.25rem;margin:0 0 8px;text-transform:none;font-style:normal;line-height:1.2}
.consent p{font-size:1rem;margin:0 0 14px}
.consent-row{display:flex;flex-wrap:wrap;gap:12px}
.consent-btn{flex:1 1 9rem;min-height:48px;padding:12px 20px;font-family:inherit;font-weight:700;font-size:1.05rem;line-height:1.2;border:2px solid var(--color-primary, #0B1B3A);border-radius:var(--radius-m, 6px);background:#fff;color:var(--color-primary, #0B1B3A);cursor:pointer}
.consent-btn:hover{background:var(--color-bg-alt, #EEF1F7)}
.consent-btn:focus-visible{outline:3px solid var(--color-accent, #FF7A1A);outline-offset:2px}
.linklike{background:none;border:0;padding:0;font:inherit;color:inherit;text-decoration:underline;cursor:pointer}
.linklike:focus-visible{outline:3px solid var(--color-accent, #FF7A1A);outline-offset:2px}
@media (prefers-reduced-motion:no-preference){.consent{animation:consent-in .25s ease-out}@keyframes consent-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}}
