/* ==========================================================================
   Rechts- und Informationsseiten aus der Fusszeile
   Impressum · Datenschutz · AGB · Nutzungsbedingungen · Bewertungsrichtlinien · DSA

   Vorher: sechs Seiten, drei Bauweisen, kein gemeinsamer Nenner. Elementor-
   Seiten mit Standard-Widgets, Shortcode-Seiten mit nacktem Astra-Fliesstext,
   schwarze Überschriften, Text über die volle Bildschirmbreite.

   Hier wird nur ausgezeichnet, nichts umformuliert — die Texte sind anwaltlich
   abgestimmt. Der Hero kommt aus functions/rechtstexte.php und ist dieselbe
   `.ish-hero`-Sektion wie auf den Stadt-, Notdienst- und Ranking-Seiten.

   🛑 Farben ausschliesslich über die Token aus style.css. Die Marken-Werte
   stehen an genau einer Stelle, siehe dort.
   ========================================================================== */

.inst-recht .entry-header,
.inst-recht .ast-single-post-order,
.inst-recht .post-navigation { display: none; }

/* Astras Inhaltsspalte gibt die Breite vor; der Hero soll aber über die ganze
   Fläche laufen. Das ist der übliche Weg dafür — Vollbreite ohne zusätzliches
   Markup und ohne die Seite horizontal scrollen zu lassen. */
.inst-recht .inst-recht-hero {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  margin-bottom: 34px;
}

.inst-recht .ish-hero .ish-sub {
  max-width: 720px;
  font-size: 17px;
  line-height: 1.55;
}

/* ── Fliesstext ───────────────────────────────────────────────────────────
   🛑 Die Spaltenbreite ist GEMESSEN, nicht geschätzt. Source Sans 3 ist eine
   schmale Schrift: bei 17 px misst ein Durchschnittszeichen 7,3 px. Die zuerst
   gesetzten 760 px ergaben damit **107 Zeichen pro Zeile** — beim Zeilenwechsel
   verliert das Auge den Anschluss, und ein Datenschutztext hat 45.000 Zeichen.
   580 px landen bei rund 80 Zeichen und damit im lesbaren Bereich.

   Wer die Schriftgröße ändert, misst neu:
   `document.createElement('canvas').getContext('2d')` mit der berechneten
   font-Angabe, `measureText(echterText).width / text.length`. */
.inst-recht .inst-recht-prose {
  max-width: 580px;
  margin: 0 auto;
  padding: 0 4px 56px;
}

.inst-recht .inst-recht-prose p,
.inst-recht .inst-recht-prose li {
  font-size: 17px;
  line-height: 1.75;
  color: #334155;
}
.inst-recht .inst-recht-prose p { margin: 0 0 1.05rem; }

/* Überschriften: Navy statt Schwarz, und mit Luft davor. Der Abstand nach oben
   ist bewusst gross — er ist das einzige, was einen Abschnitt in einem langen
   Rechtstext erkennbar macht. */
.inst-recht .inst-recht-prose h2 {
  font-size: 25px;
  line-height: 1.25;
  font-weight: 800;
  color: var(--inst-navy);
  margin: 2.6rem 0 .85rem;
  letter-spacing: -.01em;
}
.inst-recht .inst-recht-prose h3 {
  font-size: 19px;
  line-height: 1.3;
  font-weight: 700;
  color: var(--inst-navy-700);
  margin: 1.9rem 0 .6rem;
}
.inst-recht .inst-recht-prose h4 {
  font-size: 17px;
  font-weight: 700;
  color: var(--inst-navy-700);
  margin: 1.5rem 0 .5rem;
}
.inst-recht .inst-recht-prose > :first-child { margin-top: 0; }

/* Eine feine Linie über jeder Hauptüberschrift. Sie trennt die Abschnitte,
   ohne dass es nach Kästchen aussieht — das Gegenteil der Trennstriche, die
   hier ausdrücklich nicht erwünscht sind. */
.inst-recht .inst-recht-prose h2::before {
  content: "";
  display: block;
  width: 46px;
  height: 3px;
  background: var(--inst-cyan);
  border-radius: 2px;
  margin-bottom: 14px;
}

.inst-recht .inst-recht-prose ul,
.inst-recht .inst-recht-prose ol { margin: 0 0 1.05rem; padding-left: 1.35rem; }
.inst-recht .inst-recht-prose li { margin-bottom: .38rem; }
.inst-recht .inst-recht-prose li::marker { color: var(--inst-cyan-text); }

.inst-recht .inst-recht-prose a {
  color: var(--inst-cyan-text);
  text-decoration: underline;
  text-underline-offset: 2px;
  text-decoration-thickness: 1px;
}
.inst-recht .inst-recht-prose a:hover { color: var(--inst-navy); }

.inst-recht .inst-recht-prose strong { color: var(--inst-navy); font-weight: 700; }

/* „Stand: 18. Juli 2026" — die Datumszeile am Anfang jedes Textes. Sie ist eine
   Fussnote, keine Aussage, und soll den Einstieg nicht blockieren. */
.inst-recht .inst-recht-prose .rvw-guide-lead + p,
.inst-recht .inst-recht-prose > p:first-child + p {
  font-size: 14px;
  color: #64748b;
}

/* Der Vorspann der Shortcode-Seiten (Nutzungsbedingungen, Bewertungs-
   richtlinien, DSA) trägt schon eine eigene Klasse. */
.inst-recht .inst-recht-prose .rvw-guide-lead {
  font-size: 17.5px;
  line-height: 1.6;
  color: var(--inst-navy);
  font-weight: 600;
  margin: 0 0 1.4rem;
}

/* Tabellen kommen in den Transparenzangaben des DSA vor. */
.inst-recht .inst-recht-prose table {
  width: 100%;
  border-collapse: collapse;
  margin: 0 0 1.4rem;
  font-size: 15px;
}
.inst-recht .inst-recht-prose th,
.inst-recht .inst-recht-prose td {
  border: 1px solid #dbe3ec;
  padding: 9px 12px;
  text-align: left;
  vertical-align: top;
}
.inst-recht .inst-recht-prose th { background: #f4f7fa; color: var(--inst-navy); font-weight: 700; }

/* Elementor bringt eigene Abstände mit, die sich mit den obigen beissen. */
.inst-recht .inst-recht-prose .elementor-widget-container > :last-child { margin-bottom: 0; }
.inst-recht .inst-recht-prose .elementor-section,
.inst-recht .inst-recht-prose .elementor-container,
.inst-recht .inst-recht-prose .elementor-column,
.inst-recht .inst-recht-prose .elementor-widget-wrap { padding: 0 !important; }
.inst-recht .inst-recht-prose .elementor-widget:not(:last-child) { margin-bottom: 0; }

@media (max-width: 768px) {
  .inst-recht .inst-recht-prose { padding-left: 18px; padding-right: 18px; }
  .inst-recht .inst-recht-prose h2 { font-size: 22px; margin-top: 2.1rem; }
  .inst-recht .inst-recht-prose h3 { font-size: 18px; }
  .inst-recht .ish-hero .ish-sub { font-size: 15.5px; }
}

/* Der alte Elementor-Hero der drei Editor-Seiten (Impressum, Datenschutz, AGB).
   Sein <h1> entfernt functions/rechtstexte.php per the_content, sein
   Hintergrundbild ist seit 13.08. draussen (Agentur-Stockfotos ungeklärter
   Herkunft, s. scripts/apply-agenturbilder-2026-08-13.php). Übrig bleibt ein
   leerer Kasten von 160 px — der faellt hier weg.
   🛑 Greift nur im ersten Container: der zweite traegt den gesamten Rechtstext. */
.inst-recht .inst-recht-prose > .elementor > .e-con:first-child { display: none; }
