/* Rollrasen Kahl Morgentau – Welle 3: WordPress-Anpassungen für Rechtstexte, Widerruf online, Rasenfinder und 404
   (über recht.css aus dem Entwurf, das unverändert bleibt). Mobile first, Farben und Maße aus morgentau.css. */

/* ---------- Gemeinsam ---------- */
/* Honigtopf-Felder (Widerruf, Newsletter): für Menschen unsichtbar, für Bildschirmleser verborgen (aria-hidden) */
.formular-falle { position: absolute !important; left: -10000px; top: auto; width: 1px; height: 1px; overflow: hidden; }

/* Knopf „sendet“ (Widerruf bestätigen, Newsletter): Rückmeldung ohne Layout-Sprung, kein zweiter Klick */
.btn.ist-laedt { position: relative; cursor: progress; pointer-events: none; }
.btn.ist-laedt > * { opacity: .35; }
.btn.ist-laedt::after {
  content: ""; position: absolute; top: 50%; left: 50%; width: 20px; height: 20px; margin: -10px 0 0 -10px;
  border: 2.5px solid currentColor; border-right-color: transparent; border-radius: 50%; animation: rkm-dreht .8s linear infinite;
}
@keyframes rkm-dreht { to { transform: rotate(360deg); } }
@keyframes rkm-pulst { 50% { opacity: .35; } }
/* „Bewegung reduzieren“: statt Drehen sanftes Pulsieren (Davids Regel: ruhige Fassung, nicht aus) */
@media (prefers-reduced-motion: reduce) { .btn.ist-laedt::after { border-right-color: currentColor; animation: rkm-pulst 1.2s ease-in-out infinite; } }

/* Fortschritt: Text der Schritte darf auf schmalen Handys umbrechen, ohne die Kreise zu verschieben */
.schrittanzeige button { text-align: center; overflow-wrap: anywhere; }

/* ---------- Rechtstexte ---------- */
/* Zeilenlänge höchstens 74 Zeichen: 74ch (Entwurf) misst die Ziffer 0 – bei Inter 17 px sind das gemessen rund 97
   Zeichen je Zeile. 36rem ergeben höchstens gut 70 Zeichen (gemessen im Test recht.mjs, Datenschutzerklärung). */
.recht__artikel { max-width: 36rem; }
/* Text aus WordPress (wie heute): Bilder, Tabellen, alte Inline-Formate dürfen das Raster nicht sprengen */
.recht-text img { max-width: 100%; height: auto; }
.recht-text table { max-width: 100%; }
.recht-text h1 { margin: 0 0 .6em; font-size: clamp(1.5rem, 1.2rem + 1.2vw, 2rem); line-height: 1.2; }
.recht-text > div:first-child > :first-child, .recht-text > p:first-child { margin-top: 0; }
.recht-text h2:first-child, .recht-text h3:first-child { margin-top: 0; }
.recht-text [style*="font-size"] { line-height: 1.35; }
/* Sprungziele: Fokus vom Inhaltsverzeichnis sichtbar, aber ohne Rahmen um die Überschrift */
.recht-text h2[tabindex="-1"]:focus, .recht-text h3[tabindex="-1"]:focus { outline: none; }
.recht-text h2[tabindex="-1"]:focus-visible, .recht-text h3[tabindex="-1"]:focus-visible { outline: 3px solid var(--tannengruen); outline-offset: 4px; }

/* Kasten „Vertrag online widerrufen“: im Entwurf lagen Titel und Text ab 700 px übereinander (Raster ohne feste Plätze) */
@media (min-width: 700px) {
  .recht-kasten { grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "titel knopf" "text knopf"; column-gap: 24px; }
  .recht-kasten h2 { grid-area: titel; }
  .recht-kasten p { grid-area: text; }
  .recht-kasten .btn { grid-area: knopf; grid-row: 1 / span 2; align-self: center; white-space: nowrap; }
}

/* AGB und Impressum: Hinweis zur Streitbeilegung (Germanized [gzd_complaints]) wie normaler Text */
.recht-text .woocommerce-gzd-complaints-shortcode { margin: 1.4em 0; }

/* Cookie-Richtlinie: Dokument von Complianz ([cmplz-document]). Raster, Aufklappen und die Häkchen je Dienst bleiben bei
   Complianz (document.min.css, Regeln mit #cmplz-document – deshalb hier ebenfalls mit der Id); nur Schrift, Farben,
   Abstände und Tippziele im Morgentau-Stil. */
.recht-text #cmplz-document { max-width: none; font-size: inherit; text-align: left; }
.recht-text #cmplz-document p, .recht-text #cmplz-document li { font-size: inherit; line-height: inherit; }
.recht-text #cmplz-document h2 { margin: 2.1em 0 .65em; padding-bottom: 0; font-size: clamp(1.3rem, 1.08rem + .9vw, 1.7rem); line-height: 1.22; }
.recht-text #cmplz-document > :first-child { margin-top: 0; }
.recht-text #cmplz-document .cmplz-subtitle { margin: 1.5em 0 .4em; font: 600 1.0625rem/1.35 var(--kopf); color: var(--tinte); }
.recht-text #cmplz-document a { color: var(--tannengruen); text-underline-offset: .2em; }
.recht-text #cmplz-document a:focus { border: 0; padding: 0; } /* Complianz setzt beim Fokus Rahmen und Polster (der Text springt) */
.recht-text #cmplz-document .cmplz-dropdown { margin: 0 0 10px; border: 1px solid var(--linie); border-radius: var(--r-m); background: var(--karte); overflow: hidden; }
.recht-text #cmplz-document .cmplz-dropdown summary { margin: 0; padding: 10px 14px 10px 16px; background: transparent; }
.recht-text #cmplz-document .cmplz-dropdown summary > div { min-height: 32px; }
.recht-text #cmplz-document .cmplz-dropdown summary:focus-visible { outline: 3px solid var(--tannengruen); outline-offset: -3px; border-radius: var(--r-m); }
.recht-text #cmplz-document .cmplz-dropdown summary h3 { padding: 0; font: 600 1.0625rem/1.3 var(--kopf); }
.recht-text #cmplz-document .cmplz-dropdown summary p { color: var(--tinte-2); font-size: .8125rem; line-height: 1.35; }
/* Häkchen „Einwilligung für diesen Dienst“ (Complianz): sichtbar und groß genug zum Tippen */
.recht-text #cmplz-document .cmplz-dropdown input.cmplz-accept-service { width: 24px; height: 24px; margin: 0; accent-color: var(--rasengruen); cursor: pointer; }
/* „Verwalte deine Zustimmungseinstellungen“ (Kategorien im Dokument): Complianz zeichnet hier echte Häkchen (13 px) –
   auf 24 px wie die Häkchen je Dienst (WCAG 2.5.8) */
.recht-text #cmplz-document .cmplz-categories input.cmplz-consent-checkbox, .recht-text .cmplz-manage-consent-container .cmplz-categories input.cmplz-consent-checkbox { width: 24px; height: 24px; margin: 0; accent-color: var(--rasengruen); cursor: pointer; }
.recht-text #cmplz-document .cmplz-dropdown p { padding: 0 16px; }
.recht-text #cmplz-document .cmplz-dropdown .cmplz-service-description, .recht-text #cmplz-document .cmplz-dropdown .cmplz-sharing-data { padding: 0 16px 10px; }
.recht-text #cmplz-document .cmplz-dropdown .cmplz-service-description p, .recht-text #cmplz-document .cmplz-dropdown .cmplz-sharing-data p { padding: 0; }
.recht-text #cmplz-document .cmplz-dropdown h4 { margin: 12px 0 4px; font: 600 .9375rem/1.35 var(--kopf); color: var(--tannengruen); } /* ohne Großbuchstaben: der Text bleibt wie heute */
.recht-text #cmplz-document .cmplz-dropdown h5 { margin: 0; font: 600 .8125rem/1.35 var(--sans); color: var(--tinte); }
.recht-text #cmplz-document .cmplz-dropdown .cookies-per-purpose { margin: 0 16px 14px; border-color: var(--linie); border-radius: var(--r-s); background-color: var(--linie); overflow: hidden; font-size: .875rem; line-height: 1.45; }
.recht-text #cmplz-document .cmplz-dropdown .cookies-per-purpose div { padding: 8px 10px; overflow-wrap: anywhere; }
.recht-text #cmplz-document .cmplz-dropdown .cookies-per-purpose .purpose h4 { margin: 0; }
/* Namen der Cookies (Links zu cookiedatabase.org): Tippfläche ≥ 24 px (WCAG 2.5.8) */
.recht-text #cmplz-document .cmplz-dropdown .cookies-per-purpose a, .recht-text #cmplz-document .cmplz-dropdown .cookies-per-purpose a:focus { display: inline-block; padding: 4px 0; }
/* Text für Bildschirmleser (WordPress-Klasse, z. B. „Consent to service …“ an den Häkchen) */
.recht-text .screen-reader-text { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

/* ---------- Widerruf online ---------- */
.widerruf__meldung { margin: 0 0 18px; }
.widerruf__meldung .fehlerliste__titel { margin: 0; align-items: flex-start; }
.widerruf__meldung .fehlerliste__titel .icon { margin-top: 2px; }
/* Schritt 1 ist ein echtes Formular – die Felder bleiben wie im Entwurf */
.widerruf form.widerruf__schritt { margin: 0; }
.widerruf .knoepfe .btn { white-space: normal; text-align: center; }

/* ---------- Rasenfinder ---------- */
/* „Zurück“ ist ein Link (Enter schickt so immer „Weiter“) – sieht aus wie der Knopf im Entwurf */
.rasenfinder__aktionen a.btn { flex: 0 0 auto; }
.rasenfinder__aktionen .btn[hidden] { display: none; }
.rasenfinder__knoepfe a.text-link, .rasenfinder__ansicht > a.text-link { text-decoration: underline; }
/* Ergebnis ohne Foto (fehlt das Plugin, gibt es keine Fotos) bleibt ohne leeren Kasten */
.rasenfinder__bild:empty { display: none; }
.rasenfinder__formular .feld .haekchen a { white-space: nowrap; }

/* ---------- 404 ---------- */
/* Foto füllt die Fläche, solange es lädt (kein heller Blitz auf Nacht) */
.fehlerseite__bild { background: var(--nacht); }

/* ---------- „Bewegung reduzieren“ (Davids Regel: ruhige Fassung statt aus) ---------- */
@media (prefers-reduced-motion: reduce) {
  /* Haken der Eingangsbestätigung: statt aus der Mitte wachsen nur einblenden (morgentau.css lässt ihn sonst stehen) */
  .widerruf .bestaetigung:not([hidden]) .bestaetigung__icon { animation: weich .5s ease both; }
  /* Pfeile wechseln die Richtung ohne Drehbewegung */
  .recht-inhalt-auf > summary .recht-inhalt-auf__pfeil { transition: none; }
}

/* ---------- Druck ---------- */
@media print {
  .formular-falle, .widerruf__meldung { display: none !important; }
  .recht-text .cmplz-document details.cmplz-dropdown { break-inside: avoid; border-color: #999; }
  .recht-text .cmplz-document details.cmplz-dropdown > summary::after { content: none; }
}
