/* ===== Oeffentliche Seiten (Impressum, Datenschutz, AGB, Leistungsumfang, Widerruf, FAQ, Cookies, Funktionsweise) ===== */
/* Tokens, Schriften und body-Grundstil kommen aus basis.css. */
.wrap{ max-width:760px; margin:0 auto; padding:0 24px; }

/* Kopf */
.rt-leiste{ background:#FAF6EC; border-bottom:1px solid #D9CBAA; }
.rt-leiste-innen{ max-width:1080px; margin:0 auto; padding:10px 24px; display:flex; align-items:center; justify-content:space-between; gap:12px; }
.rt-marke{ display:inline-flex; align-items:center; min-height:44px; color:#2A2318; text-decoration:none; font-family:var(--font-serif); font-size:20px; }
.rt-logo{ height:30px; width:auto; display:block; }
.rt-zurueck{ display:inline-flex; align-items:center; min-height:44px; font-size:15px; font-weight:600; color:#2A4A38; text-decoration:none; }
.rt-zurueck:hover{ color:#3F6B4F; }

/* Inhalt */
.rechtstext{ padding:40px 0 72px; }
.rechtstext .wrap{ font-size:17px; line-height:1.7; color:var(--ink); }
.rechtstext .kicker{ display:inline-flex; background:#E6EEE6; color:#2A4A38; font-size:13px; font-weight:600; padding:5px 12px; border-radius:999px; line-height:1.4; margin-bottom:14px; }
.rechtstext h1{ font-family:var(--font-serif); font-weight:500; font-size:42px; line-height:1.15; max-width:none; margin:0 0 .6em; }
@media (max-width:640px){ .rechtstext h1{ font-size:32px; } .rechtstext{ padding:28px 0 56px; } }

/* Ueberschriften-Rangfolge: Hauptabschnitt (h2), Unterabschnitt (h3), dritte Ebene (h4) */
.rechtstext h2{ font-family:var(--font-serif); font-weight:500; font-size:28px; line-height:1.25; color:var(--ink); margin:40px 0 14px; scroll-margin-top:20px; }
.rechtstext h2 ~ h2{ border-top:1px solid #D9CBAA; padding-top:32px; }
.rechtstext h2 .nr{ color:#8A6428; }
@media (max-width:640px){ .rechtstext h2{ font-size:24px; } }
.rechtstext h3{ font-family:var(--font-sans); font-weight:600; font-size:19px; line-height:1.35; color:var(--ink); margin:24px 0 6px; }
.rechtstext h4{ font-family:var(--font-sans); font-weight:600; font-size:17px; line-height:1.4; color:#5C5140; margin:20px 0 4px; }
.rechtstext p{ color:var(--ink); max-width:none; margin:0 0 1em; }
.rechtstext ul, .rechtstext ol{ padding-left:22px; color:var(--ink); }
.rechtstext li{ margin-bottom:8px; }
.rechtstext li::marker{ color:#3F6B4F; }
.rechtstext a{ color:#2A4A38; text-decoration:underline; text-underline-offset:3px; }
.rechtstext a:hover{ color:#3F6B4F; }

/* Tabellen */
.tab-box{ overflow-x:auto; border:1px solid #D9CBAA; border-radius:14px; background:#FFFDF7; margin:1.2em 0; }
.rechtstext table{ width:100%; border-collapse:collapse; margin:0; font-size:15px; line-height:1.5; }
.rechtstext th{ background:#ECE3CC; font-weight:600; color:var(--ink); text-align:left; padding:10px 14px; vertical-align:top; border:none; }
.rechtstext td{ padding:10px 14px; border:none; border-top:1px solid #ECE3CC; vertical-align:top; text-align:left; color:var(--ink); }
.rechtstext thead + tbody tr:first-child td{ border-top:none; }
.rechtstext code{ font-family:'IBM Plex Mono', ui-monospace, Consolas, 'Courier New', monospace; font-size:14px; }

/* Inhaltsverzeichnis (statisch, ohne JavaScript) */
.inhaltsverzeichnis{ background:#FAF6EC; border:1px solid #D9CBAA; border-radius:18px; padding:18px 20px; margin:32px 0 40px; }
.inhaltsverzeichnis .inhalt-titel{ font-family:var(--font-serif); font-size:19px; margin:0 0 8px; }
.inhaltsverzeichnis ul{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:1fr 1fr; gap:0 16px; }
@media (max-width:640px){ .inhaltsverzeichnis ul{ grid-template-columns:1fr; } }
.inhaltsverzeichnis li{ margin:0; }
.inhaltsverzeichnis a, .rechtstext .inhaltsverzeichnis a{ display:block; font-size:15px; line-height:1.4; padding:7px 10px; border-radius:8px; text-decoration:none; color:#2A4A38; }
.inhaltsverzeichnis a:hover{ background:#E6EEE6; }

/* Widerruf: Muster-Formular als Karte */
.formular-karte{ background:#FFFDF7; border:1px solid #D9CBAA; border-radius:18px; padding:22px 24px; margin-top:40px; }
.formular-kopf{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:10px 16px; margin-bottom:8px; }
.rechtstext .formular-karte h2{ border-top:none; padding-top:0; margin:0; }
.drucken-btn{ min-height:44px; padding:0 20px; background:transparent; border:1.5px solid #3F6B4F; color:#2A4A38; border-radius:12px; font-family:var(--font-sans); font-size:15px; font-weight:600; cursor:pointer; }
.drucken-btn:hover{ background:#E6EEE6; }
.drucken-btn:focus-visible{ outline:none; box-shadow:0 0 0 3px rgba(63,107,79,.25); }

/* FAQ */
.rechtstext-faq h2{ font-size:24px; }
.faq-item{ background:#FAF6EC; border:1px solid #D9CBAA; border-radius:14px; margin:0 0 10px; padding:0; }
.faq-item summary{ display:flex; align-items:center; justify-content:space-between; gap:14px; min-height:56px; padding:14px 18px; cursor:pointer; font-weight:600; font-size:17px; line-height:1.4; color:var(--ink); list-style:none; }
.faq-item summary::-webkit-details-marker{ display:none; }
.faq-item summary::before{ content:none; }
.faq-item summary::after{ content:'+'; flex:none; width:28px; height:28px; border-radius:50%; background:#E6EEE6; color:#2A4A38; display:flex; align-items:center; justify-content:center; font-size:20px; font-weight:400; line-height:1; transition:transform .15s; }
.faq-item summary:focus-visible{ outline:none; box-shadow:0 0 0 3px rgba(63,107,79,.25); border-radius:14px; }
.faq-item[open]{ background:#FFFDF7; border-color:#3F6B4F; }
.faq-item[open] summary::after{ background:#3F6B4F; color:#FAF6EC; transform:rotate(45deg); }
.faq-antwort{ padding:0 18px 16px; font-size:16px; }
.faq-antwort p:last-child, .faq-antwort ul:last-child{ margin-bottom:0; }
.faq-item[open] summary::before{ content:none; }

/* Abschlusskarte (FAQ, Funktionsweise, Leistungsumfang) */
.abschluss-karte{ background:#2A4A38; border-radius:20px; padding:24px 26px; margin-top:44px; }
.rechtstext .abschluss-karte p{ color:#E9E2CF; margin:0 0 16px; font-size:16px; line-height:1.55; }
.rechtstext .abschluss-karte .abschluss-titel{ font-family:var(--font-serif); font-size:22px; color:#FAF6EC; margin:0 0 6px; line-height:1.25; }
.rechtstext .abschluss-btn{ display:inline-flex; align-items:center; min-height:48px; padding:0 22px; background:#F4EEDC; color:#2A4A38; border-radius:12px; font-weight:600; font-size:15px; text-decoration:none; }
.rechtstext .abschluss-btn:hover{ background:#fff; color:#2A4A38; }

/* Fussbereich */
footer{ background:#ECE3CC; border-top:1px solid #D9CBAA; padding:24px 0 72px; }
footer .wrap{ display:flex; flex-direction:column; gap:10px; }
footer p{ font-size:14px; color:#5C5140; margin:0; max-width:none; order:2; }
footer .rechtsstand{ white-space:nowrap; }
.footlinks{ display:flex; flex-wrap:wrap; gap:0 12px; list-style:none; margin:0; padding:0; order:1; }
.footlinks a{ display:inline-flex; align-items:center; min-height:44px; padding:10px 8px; font-size:15px; color:#5C5140; text-decoration:none; }
.footlinks a:hover{ color:#2A4A38; }
.footlinks a[aria-current="page"]{ font-weight:600; color:#2A4A38; }

/* ===== Druck ===== */
@media print{
  .rt-leiste, footer, .inhaltsverzeichnis, .back-to-top, .drucken-btn, .abschluss-karte{ display:none !important; }
  body{ background:#fff; }
  .rechtstext{ padding:0; }
  .rechtstext .wrap{ max-width:none; padding:0; color:#1F1A12; }
  .rechtstext p, .rechtstext li, .rechtstext h1, .rechtstext h2, .rechtstext h3, .rechtstext h4, .rechtstext td, .rechtstext th{ color:#1F1A12; }
  .rechtstext a{ color:inherit; text-decoration:underline; }
  .rechtstext h2 .nr{ color:#1F1A12; }
  .rechtstext .kicker{ background:none; border:1px solid #1F1A12; color:#1F1A12; }
  .tab-box, .faq-item, .formular-karte{ background:#fff; }
  .faq-item:not([open]) .faq-antwort{ display:block; }
  .faq-item summary::after{ display:none; }
  /* Muster-Widerrufsformular einzeln drucken (Button setzt body.drucke-formular) */
  body.drucke-formular .rechtstext .wrap > :not(.formular-karte){ display:none !important; }
  body.drucke-formular .formular-karte{ border:none; padding:0; margin:0; }
}
