/* ==========================================================================
   FDP-Landtagsfraktion NRW – Druckstylesheet
   --------------------------------------------------------------------------
   Einbindung über functions.php mit media="print". Wird vom Browser nur
   beim Drucken / PDF-Export angewendet und blockiert das Rendering nicht.

   Leitlinien
   - Papier sparen:   kompakte Typografie, keine Bildschirm-Abstände,
                      Navigation, CTAs, Teaser und Footer entfallen.
   - Tinte sparen:    keine Flächen, Text in Fast-Schwarz, FDP-Blau nur für
                      Überschriften, Cyan nur als feine Akzentlinie.
   - CI:              Public Sans, FDP-Logo als Briefkopf, Cyan-Unterstrich
                      der Headline, Seitenzahlen im Fuß.

   Aufbau
   1.  Seite (@page)
   2.  Grundlagen & Farben
   3.  Ausblenden: Navigation, CTAs, Footer, interaktive Elemente
   4.  Animationen und Layout-Raster neutralisieren
   5.  Briefkopf (Logo)
   6.  Typografie
   7.  Detailseiten: Kopfbereich
   8.  Detailseiten: Inhaltsmodule
   9.  Links
   10. Quellenzeile
   11. Übersichtsseiten & Startseite (Teaser als kompakte Liste)
   12. Seitenumbrüche
   ========================================================================== */


/* --------------------------------------------------------------------------
   1. Seite
   -------------------------------------------------------------------------- */

@page {
  size: A4;
  margin: 16mm 18mm 18mm 18mm;

  /* Falz- und Lochmarken am linken Rand (DIN 5008, Form B):
     Falzmarken bei 105 mm und 210 mm, Lochmarke bei 148,5 mm.
     Als Bild statt Hintergrund, damit sie auch ohne die Option
     "Hintergrundgrafiken" drucken. Die Positionen im SVG sind relativ
     zum oberen Seitenrand von 16 mm (89 = 105 − 16 usw.).
     Die Marken beginnen 4 mm vom Papierrand, weil die meisten Drucker
     die äußersten Millimeter nicht bedrucken können. */
  @left-top {
    content: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='18mm' height='263mm' viewBox='0 0 18 263'><path d='M4 89h5M4 132.5h7M4 194h5' stroke='%2359759b' stroke-width='0.25'/></svg>");
    width: 18mm;
    height: 263mm;
    vertical-align: top;
    text-align: left;
  }

  /* Seitenfuß – aktuell Chrome/Edge ab Version 131. Andere Browser
     ignorieren die Randboxen einfach, der Druck bleibt korrekt. */
  @bottom-left {
    content: "FDP-Landtagsfraktion NRW";
    font-family: "Public Sans", Arial, sans-serif;
    font-size: 7.5pt;
    color: #59759b;
  }

  @bottom-right {
    content: "Seite " counter(page) " von " counter(pages);
    font-family: "Public Sans", Arial, sans-serif;
    font-size: 7.5pt;
    color: #59759b;
  }
}

/* Hinweis: Alle Seiten haben bewusst denselben Kopfrand,
   damit die Falz- und Lochmarken überall exakt sitzen. */


/* --------------------------------------------------------------------------
   2. Grundlagen & Farben
   -------------------------------------------------------------------------- */

:root {
  --print-text: #1a1f2b;      /* Fast-Schwarz: druckt über die Schwarzpatrone */
  --print-blue: #032d67;      /* FDP-Blau, nur für Überschriften */
  --print-cyan: #00a7e7;      /* FDP-Cyan, nur für feine Linien */
  --print-muted: #59759b;     /* FDP-Blau Tint 33 für Metadaten */
  --print-line: #d9e0e8;      /* FDP-Blau Tint 85 für Trennlinien */
}

html,
body {
  background: #fff !important;
  color: var(--print-text) !important;
  overflow: visible !important;
  scrollbar-gutter: auto !important;
}

body {
  font-family: "Public Sans", Arial, sans-serif;
  font-size: 10pt;
  line-height: 1.5;

  /* Bildschirm-Variablen auf Druckmaß bringen */
  --fontsize-normal: 10pt;
  --fontsize-small: 8.5pt;
  --fontsize-tiny: 7.5pt;
  --spacing-xxl: 8mm;
  --spacing-xl: 7mm;
  --spacing-lg: 6mm;
  --spacing-md: 4mm;
  --spacing-sm: 3mm;
  --spacing-xs: 2mm;
}

/* Alle Flächen, Schatten und Verläufe entfernen – das spart die meiste Tinte. */
*,
*::before,
*::after {
  background-image: none !important;
  box-shadow: none !important;
  text-shadow: none !important;
}

.bg-blue,
.bg-lighter,
.bg-light,
.bg-primary,
.box,
.contact-person,
.teaser,
.detailpage-header,
.breadcrumb-nav {
  background: transparent !important;
  color: var(--print-text) !important;
}

.detailpage-header::before {
  display: none !important;
}

/* Die wenigen Farbakzente (Cyan-Linie unter der Headline) sollen auch dann
   drucken, wenn "Hintergrundgrafiken" im Druckdialog aus ist. */
h1.underlined::after,
.print-letterhead,
.site-header {
  -webkit-print-color-adjust: exact;
  print-color-adjust: exact;
}


/* --------------------------------------------------------------------------
   3. Ausblenden
   -------------------------------------------------------------------------- */

/* Navigation & Seitenrahmen */
.site-header .navbar-collapse,
.site-header__actions,
.site-header-placeholder,
.breadcrumb-nav,
.sticky-toolbar,
.article-toolbar,
[data-sticky] + .sticky-placeholder,
.social-dock,
.pageFooter,

/* Call-to-Actions & weiterführende Bereiche */
.cta-stage,
.cta-box,
.newsletter-cta,
.podcast-subscribe,
.related-content,
#related-content,
.more-positions,
.classification-context,
.section-footer,
.detailpage-header__actions,
.teaser__actions,
.contact-person__footer .btn-primary,

/* Interaktive Elemente */
.btn:not(.focus-group__toggle):not(.info-popover__trigger),
button:not(.info-popover__trigger):not(.focus-group__toggle),
.meta-data-entry__button,
.info-popover__panel,
.dropdown-menu,
.modal,
.modal-backdrop,
.toast-container,
.tooltip,
.popover,
.swiper-button-next,
.swiper-button-prev,
.swiper-pagination,
.pswp,
form,
iframe,
video,
audio,
[data-no-consent],
.external-content,

/* Cookie-Banner (TermsFeed) */
[class*="termsfeed-com---"],

/* Trennlinien vor ausgeblendeten Bereichen */
.single-content ~ .container > hr,

/* Bootstrap-Klasse respektieren */
.d-print-none {
  display: none !important;
}

/* Ausnahme: Der Bildnachweis-Button in Abbildungen wird nicht versteckt,
   sondern als Textzeile unter dem Bild gedruckt (siehe Abschnitt 8). */
figure button[data-bs-toggle="tooltip"][data-bs-title] {
  display: block !important;
}


/* --------------------------------------------------------------------------
   4. Animationen und Raster neutralisieren
   -------------------------------------------------------------------------- */

/* Reveal-Effekte: Inhalte, die noch nicht eingeblendet waren, sonst leer. */
[data-reveal],
[data-reveal-part],
html.reveal-enabled [data-reveal],
html.reveal-enabled [data-reveal-part] {
  opacity: 1 !important;
  transform: none !important;
  clip-path: none !important;
  transition: none !important;
  animation: none !important;
  visibility: visible !important;
}

*,
*::before,
*::after {
  transition: none !important;
  animation: none !important;
}

/* Sticky/Fixed-Elemente in den normalen Fluss zurückholen */
.site-header,
[data-sticky],
.__sticky,
.__fixed {
  position: static !important;
  transform: none !important;
}

/* Bootstrap-Raster: eine Spalte über die volle Druckbreite */
.container,
.container-fluid,
[class*="container-"] {
  max-width: none !important;
  width: auto !important;
  padding-inline: 0 !important;
  margin-inline: 0 !important;
}

.row {
  display: block !important;
  margin: 0 !important;
  --bs-gutter-x: 0;
}

.row > [class*="col"] {
  width: auto !important;
  max-width: none !important;
  flex: none !important;
  padding-inline: 0 !important;
  margin-inline: 0 !important;
}

main h1,
main .h1,
main h2,
main .h2 {
  max-width: none;
}


/* --------------------------------------------------------------------------
   5. Briefkopf
   --------------------------------------------------------------------------
   Vom Header bleibt nur das Logo stehen – dezent als Briefkopf. */

.site-header {
  display: block !important;
  height: auto !important;
  background: transparent !important;
  border: 0 !important;
  margin: 0 0 8mm !important;
  padding: 0 !important;
}

.site-header .navbar,
.site-header .navbar > .container {
  display: block !important;
  padding: 0 !important;
  min-height: 0 !important;
}

.site-header .navbar > .container::before,
.site-header .navbar > .container::after {
  display: none !important;
}

.site-header .navbar-brand {
  display: inline-block !important;
  margin: 0 !important;
  padding: 0 !important;
}

.site-header .fdpnrwlogo {
  display: block;
  height: 6.5mm !important;
  width: auto !important;
}

.site-header .fdpnrwlogo * {
  fill: var(--print-blue) !important;
}

/* Nur auf der ersten Seite: Folgeseiten bekommen keinen erneuten Kopf,
   das spart Platz. (Der Header steht ohnehin nur einmal im Dokument.) */


/* --------------------------------------------------------------------------
   6. Typografie
   -------------------------------------------------------------------------- */

h1, .h1,
h2, .h2,
h3, .h3,
h4, .h4,
h5, .h5,
h6, .h6 {
  color: var(--print-blue) !important;
  font-weight: 900;
  letter-spacing: -0.025em;  /* CI: wie am Bildschirm */
  line-height: 1.2;
  margin-top: 0;
  text-wrap: balance;
}

h1, .h1 { font-size: 22pt; margin-bottom: 5mm !important; }
h2, .h2 { font-size: 14pt; margin: 7mm 0 2.5mm !important; }
h3, .h3 { font-size: 11.5pt; margin: 5mm 0 1.5mm !important; }
h4, .h4,
h5, .h5,
h6, .h6 { font-size: 10pt; margin: 4mm 0 1mm !important; }

/* Bildschirm-Unterstriche an h2 entfallen, nur die Haupt-Headline behält
   den kurzen Cyan-Balken als CI-Akzent. */
h2::after,
.h2::after,
h1:not(.underlined)::after {
  display: none !important;
}

h1.underlined::after {
  background-color: var(--print-cyan) !important;
  height: 1.2mm !important;
  width: 14mm !important;
  margin-top: 3mm !important;
}

.topline {
  color: var(--print-muted) !important;
  font-size: 8.5pt !important;
  font-weight: 700;
  margin-bottom: 1.5mm !important;
}

p,
ul,
ol,
dl,
address {
  margin: 0 0 2.5mm;
}

ul:not(.list-unstyled),
ol {
  padding-left: 5mm;
}

li + li {
  margin-top: 1mm !important;
}

strong,
b {
  font-weight: 700;
  color: inherit;
}

small,
.small,
.text-muted,
figcaption {
  color: var(--print-muted) !important;
  font-size: 8pt !important;
}

hr {
  border: 0;
  border-top: 0.5pt solid var(--print-line);
  margin: 6mm 0;
  opacity: 1;
}

/* Icon-Font: dekorative Icons entfallen, sie kosten Platz und bringen
   auf Papier nichts. */
i[class*="ph-"],
i[class^="ph"] {
  display: none !important;
}


/* --------------------------------------------------------------------------
   7. Detailseiten: Kopfbereich
   -------------------------------------------------------------------------- */

.detailpage-header {
  padding: 0 !important;
  margin: 0 0 6mm !important;
}

.detailpage-header .row {
  display: flex !important;
  flex-direction: column-reverse;   /* Text zuerst, Bild darunter */
  gap: 5mm;
}

.detailpage-header__content {
  display: block !important;
}

.detailpage-header__intro {
  font-size: 11.5pt !important;
  font-weight: 500;
  line-height: 1.45;
  margin-bottom: 4mm !important;
}

.detailpage-header__intro p:last-child {
  margin-bottom: 0;
}

/* Kopfbild: begrenzte Höhe, sonst füllt es die halbe erste Seite. */
.detailpage-header__figure {
  aspect-ratio: auto !important;
  border-radius: 0 !important;
  overflow: visible !important;
  margin: 0 !important;
  background: transparent !important;
}

.detailpage-header__figure__img {
  display: block;
  width: 100% !important;
  height: 65mm !important;
  object-fit: cover;
  border-radius: 2mm;
}

/* DIN-A4-Titelbild (z. B. Positionspapiere) kleiner und hochkant */
.detailpage-header__figure.aspect-dina4 {
  width: 45mm;
}

.detailpage-header__figure.aspect-dina4 .detailpage-header__figure__img {
  height: auto !important;
  aspect-ratio: 21 / 29.7;
}

.detailpage-header__figure__addon {
  display: none !important;
}

/* Metadaten: Inhaltsart, Thema, Datum, Person – als eine ruhige Zeile */
.meta,
dl.meta {
  display: flex !important;
  flex-wrap: wrap;
  gap: 1mm 3mm;
  margin: 0 !important;
  color: var(--print-muted) !important;
  font-size: 8.5pt !important;
}

.meta-data,
.meta-data-entry {
  display: inline-flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: baseline;
  gap: 1mm;
  margin: 0 !important;
  white-space: nowrap;
}

.meta-data > dd {
  margin: 0 !important;
}

.meta-data + .meta-data::before {
  content: "·";
  margin-right: 3mm;
  color: var(--print-muted);
}

/* Veranstaltungen: Anschrift aus dem Orts-Popover in Klammern hinter
   den Ortsnamen holen – z. B. "Landtag NRW (Platz des Landtags 1,
   40221 Düsseldorf)". Buttons im Popover (Google Maps, Online
   teilnehmen) und die doppelte Überschrift entfallen. */
.meta-data:has(> .meta-data-entry--location),
.meta-data-entry--location {
  white-space: normal !important;
  flex-wrap: wrap !important;
}

/* Ort mit Anschrift ist lang: eigene Zeile, ohne Trennpunkt davor */
.meta-data:has(> .meta-data-entry--location) {
  flex-basis: 100%;
}

.meta-data:has(> .meta-data-entry--location)::before {
  content: none !important;
}

.meta-data-entry--location > .info-popover__panel {
  display: inline !important;
  position: static !important;
  inset: auto !important;
  transform: none !important;
  float: none !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: none !important;
  color: var(--print-muted) !important;
  font-size: 8.5pt !important;
  font-weight: 400 !important;
}

.meta-data-entry--location > .info-popover__panel > :not(address) {
  display: none !important;
}

.meta-data-entry--location address {
  display: inline !important;
  margin: 0 !important;
  font-style: normal;
}

.meta-data-entry--location address::before { content: "("; }
.meta-data-entry--location address::after  { content: ")"; }
.meta-data-entry--location address br { display: none; }

.meta-data-entry--location .address-street::after {
  content: ", ";
}

/* Tags als Text statt gefüllter Pille */
.tag {
  background: transparent !important;
  border: 0 !important;
  padding: 0 !important;
  color: var(--print-muted) !important;
  font-size: 8.5pt !important;
  font-weight: 700 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  text-decoration: none !important;
  display: inline !important;
}

.tag::after {
  content: none !important;
}


/* --------------------------------------------------------------------------
   8. Detailseiten: Inhaltsmodule
   -------------------------------------------------------------------------- */

/* Inhaltsbereich unter der (ausgeblendeten) Anker-Toolbar */
[data-sticky-container] > .container {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

[data-sticky-container] section,
.single-content section {
  margin: 0 0 5mm !important;
  padding: 0 !important;
}

/* Textbox (bg-blue): dünner Rahmen statt blauer Fläche */
.box,
section.box {
  border: 0.75pt solid var(--print-line) !important;
  border-radius: 2mm !important;
  padding: 4mm 5mm !important;
}

.box h2,
.box h3,
.box .h2,
.box .h3,
.box h4,
.box .h4 {
  color: var(--print-blue) !important;
  margin-top: 0 !important;
}

/* Zitat: Cyan-Linie links, große Typo, keine Fläche */
.quotation {
  margin: 6mm 0 !important;
}

.quotation .box {
  border: 0 !important;
  border-left: 1.2mm solid var(--print-cyan) !important;
  border-radius: 0 !important;
  padding: 0 0 0 5mm !important;
  -webkit-print-color-adjust: exact;
  print-color-adjust: exact;
}

.quotation__quote {
  margin: 0;
}

.quotation__quote p,
.quotation__quote .h3 {
  color: var(--print-blue) !important;
  font-size: 13pt !important;
  font-weight: 900;
  line-height: 1.3;
}

.quotation__caption {
  color: var(--print-muted) !important;
  font-size: 8.5pt !important;
  margin-top: 2mm;
}

.quotation__caption img,
.quotation figure img {
  display: none !important;
}

/* Bilder im Text: verkleinert, nicht seitenfüllend */
.content-media {
  margin: 0 !important;
}

.content-media img {
  display: block;
  max-width: 100% !important;
  max-height: 70mm !important;
  width: auto !important;
  height: auto !important;
  border-radius: 1.5mm !important;
}

.content-media figcaption {
  margin-top: 1.5mm !important;
}

/* Bildnachweis als Text unter dem Bild statt Info-Button */
figure button[data-bs-toggle="tooltip"][data-bs-title] {
  position: static !important;
  inset: auto !important;
  margin: 1.5mm 0 0 !important;
  padding: 0 !important;
  background: none !important;
  border: 0 !important;
  color: var(--print-muted) !important;
  font-size: 7pt !important;
  font-weight: 400 !important;
  line-height: 1.3;
  text-align: left;
  width: auto !important;
  height: auto !important;
}

figure button[data-bs-toggle="tooltip"][data-bs-title]::after {
  content: attr(data-bs-title);
}

/* Galerie: kleine Vorschau in einer Reihe, max. 4 Bilder */
.content-media__gallery {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 2mm !important;
}

.content-media__gallery > li {
  margin: 0 !important;
  padding: 0 !important;
}

.content-media__gallery > li:nth-child(n + 5) {
  display: none !important;
}

.content-media__gallery img {
  width: 100% !important;
  height: 28mm !important;
  max-height: none !important;
  object-fit: cover;
}

/* FAQ: alle Antworten aufgeklappt, als Frage/Antwort-Liste */
.accordion {
  display: block !important;
}

.accordion-item {
  border: 0 !important;
  border-bottom: 0.5pt solid var(--print-line) !important;
  border-radius: 0 !important;
  padding: 2.5mm 0 !important;
  background: transparent !important;
}

.accordion-header,
.accordion-header .btn,
.focus-group__toggle {
  display: block !important;
  width: 100%;
  padding: 0 !important;
  margin: 0 !important;
  background: transparent !important;
  border: 0 !important;
  color: var(--print-blue) !important;
  font-size: 10.5pt !important;
  font-weight: 700;
  text-align: left;
}

.accordion-collapse,
.accordion-collapse.collapse,
.accordion-collapse.collapse:not(.show),
.collapsing {
  display: block !important;
  height: auto !important;
  visibility: visible !important;
}

.accordion-body,
.accordion-body-inner {
  padding: 1mm 0 0 !important;
}

/* Downloads: schlichte Liste mit Dateiangaben */
.content-downloads {
  display: block !important;
  margin: 0 !important;
}

.content-downloads > li {
  margin: 0 !important;
  padding: 2mm 0 !important;
  border-bottom: 0.5pt solid var(--print-line);
}

/* Die letzte Datei braucht keine eigene Linie: Der folgende Abschnitt
   bringt bereits seine Trennlinie mit (siehe unten). */
.content-downloads > li:last-child {
  border-bottom: 0;
  padding-bottom: 0 !important;
}

/* Trennlinie zwischen Ankerabschnitten (wie am Bildschirm) mit etwas Luft */
:is(.anchor-nav-section-body, .anchor-nav-section-body-xl) section + section[data-anchor-section]:not(.box) {
  border-top: 0.5pt solid var(--print-line) !important;
  padding-top: 5mm !important;
  margin-top: 5mm !important;
}

.content-downloads .teaser {
  display: block !important;
  padding: 0 !important;
  border: 0 !important;
}

.content-downloads .teaser__figure,
.content-downloads .teaser__icon {
  display: none !important;
}

.content-downloads .teaser__content h3,
.content-downloads .teaser__content .h3 {
  font-size: 10pt !important;
  margin: 0 0 0.5mm !important;
}

/* Tabellen im Fließtext: über die volle Breite, keine Scrollhülle,
   Kopfzeile wiederholt sich auf Folgeseiten. */
.table-responsive {
  overflow: visible !important;
  margin: 4mm 0 !important;
}

.table {
  width: 100% !important;
  min-width: 0 !important;
  border-collapse: collapse;
  font-size: 8.5pt !important;
  line-height: 1.4;
}

.table caption {
  caption-side: top;
  color: var(--print-muted) !important;
  font-size: 8pt !important;
  font-weight: 700;
  padding: 0 0 1.5mm;
  text-align: left;
}

.table th,
.table td {
  border: 0 !important;
  border-bottom: 0.5pt solid var(--print-line) !important;
  padding: 1.2mm 3mm 1.2mm 0 !important;
  text-align: left;
  vertical-align: top;
}

.table thead th,
.table thead td {
  border-bottom: 0.75pt solid var(--print-cyan) !important;
  color: var(--print-blue) !important;
  font-weight: 700;
  -webkit-print-color-adjust: exact;
  print-color-adjust: exact;
}

.table thead {
  display: table-header-group;
}

.table tr {
  break-inside: avoid;
  page-break-inside: avoid;
}

/* Linkliste */
.content-links a {
  display: block;
  padding: 1mm 0;
}

/* Person in den Metadaten (Popover-Button) als Text */
.meta .info-popover,
.meta .info-popover__trigger {
  display: inline !important;
  color: var(--print-muted) !important;
  font-size: 8.5pt !important;
  font-weight: 700 !important;
}

/* Glossar-Begriffe und Info-Popover: als normaler Text */
.info-popover__trigger,
.glossary-popover__trigger {
  background: none !important;
  border: 0 !important;
  padding: 0 !important;
  color: inherit !important;
  font: inherit !important;
  font-weight: inherit !important;
  text-decoration: none !important;
}

/* Ansprechpartner: kompakte Visitenkarten, zweispaltig */
.contact-person-section__list {
  display: grid !important;
  grid-template-columns: repeat(2, 1fr) !important;
  gap: 3mm !important;
  margin: 0 !important;
  padding: 0 !important;
}

.contact-person-section__list > li {
  width: auto !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

.contact-person {
  border: 0.75pt solid var(--print-line) !important;
  border-radius: 2mm !important;
  padding: 3mm !important;
  height: auto !important;
}

.contact-person__main {
  display: flex !important;
  gap: 3mm !important;
}

.contact-person__figure {
  width: 14mm !important;
  height: 14mm !important;
  aspect-ratio: auto !important;
  border-radius: 1mm !important;
  line-height: 0;
}

/* Als Block, sonst bleibt unter dem Inline-Bild ein weißer Streifen
   (Platz für Unterlängen der Textzeile). */
.contact-person__figure img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover;
  transform: none !important;
}

.contact-person__name {
  font-size: 10pt !important;
  margin: 0 !important;
}

.contact-person__position {
  font-size: 8.5pt;
  color: var(--print-muted);
}

.contact-person__footer {
  margin-top: 2mm !important;
}

/* Die Bildschirm-Trennlinie über den Kontaktdaten sitzt absolut 16px über
   dem Footer – im kompakten Druck läge sie quer über dem Porträt. */
.contact-person__footer::before {
  display: none !important;
}

.contact-person__footer .meta-data {
  display: block !important;
  font-size: 8.5pt;
}

.contact-person__footer .meta-data-entry {
  display: block !important;
}

.contact-person__footer .meta-data + .meta-data::before,
.contact-person__footer .meta-data-entry + .meta-data-entry::before {
  content: none;
}


/* --------------------------------------------------------------------------
   9. Links
   --------------------------------------------------------------------------
   Links bleiben erkennbar (fett, fein unterstrichen), Adressen werden
   aber nicht ausgeschrieben – der Weg zur Online-Fassung ist der QR-Code. */

a {
  color: inherit !important;
  text-decoration: underline !important;
  text-decoration-color: var(--print-cyan) !important;
  text-decoration-thickness: 0.6pt !important;
  text-underline-offset: 0.18em;
}

/* Keine URLs hinter Links drucken: Sie helfen auf Papier kaum, die
   Online-Fassung erreicht man über den QR-Code in der Quellenzeile.
   Das Pfeil-Icon externer Links (Icon-Font per ::after aus main.css)
   entfällt im Druck ebenfalls. */
a[target="_blank"]::after,
a[rel~="external"]::after {
  content: none !important;
}

/* Ansprechpartner: Telefon und E-Mail ohne Unterstrich */
.contact-person a {
  text-decoration: none !important;
}

/* Downloads/Teaser: Der "Stretched Link" (::after über die ganze Karte)
   darf im Druck keinen Inhalt bekommen. */
.teaser__link::after {
  content: none !important;
}

/* Überschriften-Links, Teaser und Tags ohne Unterstrich */
:is(h1, h2, h3, h4, .headline, .tag, .teaser__link, .navbar-brand) a,
a:is(.tag, .teaser__link, .navbar-brand, .logo) {
  text-decoration: none !important;
}


/* --------------------------------------------------------------------------
   10. Quellenzeile mit QR-Code
   --------------------------------------------------------------------------
   Element aus footer.php, nur im Druck sichtbar. Den QR-Code zeichnet
   assets/js/fdp-print.js als SVG in [data-print-qr]. */

.print-source {
  display: flex !important;
  align-items: center;
  gap: 4mm;
  margin: 8mm 0 0 !important;
  padding-top: 3mm;
  border-top: 0.5pt solid var(--print-line);
  color: var(--print-muted) !important;
  font-size: 7.5pt !important;
  line-height: 1.45;
  break-inside: avoid;
}

.print-source__qr {
  flex: 0 0 18mm;
  width: 18mm;
  height: 18mm;
  color: var(--print-blue);
}

.print-source__qr:empty {
  display: none;
}

.print-source__qr svg {
  display: block;
  width: 100%;
  height: 100%;
}

.print-source__text {
  margin: 0;
}

.print-source__label {
  display: block;
  color: var(--print-blue);
  font-weight: 700;
}

.print-source a {
  text-decoration: none !important;
  font-weight: 400;
}


/* --------------------------------------------------------------------------
   11. Übersichtsseiten & Startseite
   --------------------------------------------------------------------------
   Diese Seiten sind für den Bildschirm gestaltet. Beim Drucken werden sie
   zu einer kompakten, bildlosen Inhaltsliste: Überschrift, Datum, Kurztext.
   Große Bühnen (Hero, Zitat-Bühne, Slider) entfallen. */

body:not(.single) .teaser__figure,
body:not(.single) .teaser__icon,
body:not(.single) .page-header__figure,
.hero,
.home-hero,
.quote-stage,
.comeback-formula,
.swiper:not([data-anchor-nav-swiper]) .swiper-button-next,
.swiper:not([data-anchor-nav-swiper]) .swiper-button-prev {
  display: none !important;
}

/* Swiper-Slider: alle Slides untereinander statt horizontal */
.swiper,
.swiper-wrapper {
  display: block !important;
  overflow: visible !important;
  transform: none !important;
  height: auto !important;
}

.swiper-slide {
  width: auto !important;
  height: auto !important;
  margin: 0 !important;
}

/* Teaser-Raster als einspaltige Liste */
body:not(.single) :is(.grid-2, .grid-3, .grid-3-alt1, .grid-4) {
  display: block !important;
}

body:not(.single) .teaser {
  display: block !important;
  position: static !important;
  min-height: 0 !important;
  height: auto !important;
  margin: 0 !important;
  padding: 2.5mm 0 !important;
  border: 0 !important;
  border-bottom: 0.5pt solid var(--print-line) !important;
  border-radius: 0 !important;
  color: var(--print-text) !important;
  break-inside: avoid;
}

body:not(.single) .teaser__content {
  position: static !important;
  display: block !important;
  padding: 0 !important;
  margin: 0 !important;
  color: var(--print-text) !important;
}

body:not(.single) .teaser :is(h2, h3, h4, .h2, .h3, .h4) {
  font-size: 10.5pt !important;
  margin: 0 0 1mm !important;
  -webkit-line-clamp: unset !important;
  display: block !important;
}

body:not(.single) .teaser .topline {
  font-size: 7.5pt !important;
  margin-bottom: 0.5mm !important;
}

body:not(.single) .teaser p {
  font-size: 9pt;
  margin: 0 0 1mm;
}

body:not(.single) .page-header {
  padding: 0 !important;
  margin: 0 0 5mm !important;
}


/* --------------------------------------------------------------------------
   12. Seitenumbrüche
   -------------------------------------------------------------------------- */

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6,
.topline {
  break-after: avoid;
  page-break-after: avoid;
}

/* Überschrift nie allein am Seitenende: zieht den ersten Absatz mit */
:is(h2, h3, h4) + :is(p, ul, ol, figure, .box) {
  break-before: avoid;
  page-break-before: avoid;
}

figure,
img,
blockquote,
.box,
.quotation,
.contact-person,
.accordion-item,
.content-downloads > li,
.content-media__gallery {
  break-inside: avoid;
  page-break-inside: avoid;
}

p,
li {
  orphans: 3;
  widows: 3;
}

/* Nicht mit einer Leerseite beginnen */
main > :first-child,
.single-content > :first-child {
  margin-top: 0 !important;
}
