/*
 * Print-Fundament fuer mutig-pdf.
 * Generisch — nichts projektspezifisches. Der Kundenteil liegt im Child-Theme
 * unter scss/_print.scss.
 *
 * 🔴 WARUM DIE REGELN NICHT IN @media print STEHEN
 *
 * UIkit liefert components/print.less mit, uebernommen aus HTML5 Boilerplate:
 *
 *     @media print { *, *::before, *::after {
 *         background: transparent !important; color: black !important; } }
 *
 * Ein Tonersparen-Reset aus der Tintenstrahler-Zeit. Am 18.09.2026 gemessen:
 * `.oc-notice` hat am Bildschirm rgb(192,165,127), im Druckmedium
 * rgba(0,0,0,0) — alle Markenfarben und Flaechen der oc_*-Module sind weg.
 * Mit !important auf dem Universalselektor kaeme man dagegen nur mit einer
 * vollstaendigen Liste aller Farben an, und die waere bei jedem neuen Modul
 * wieder unvollstaendig.
 *
 * Deshalb emuliert der Renderer das Medium `screen` (RenderOptions::
 * MEDIA_DEFAULT). Gemessen: dieselbe Seite 2 ergibt 33 kB im Druckmedium und
 * 237 kB im Bildschirmmedium. Folge fuer dieses Stylesheet: die Regeln haengen
 * an der Body-Klasse `.mutig-pdf-render`, nicht am Medium.
 *
 * `break-inside` und `break-before` wirken unabhaengig davon, weil
 * Page.printToPDF in jedem Fall paginiert rendert.
 *
 * 🔴 WARUM UEBERALL EIN `html` DAVOR STEHT
 *
 * Das Child-Theme stylt .uk-navbar-toggle in scss/_nav.scss, und
 * style/custom.css laedt NACH diesem Stylesheet. Bei gleicher Spezifitaet
 * gewinnt das spaeter geladene. `html .mutig-pdf-render …` gewinnt unabhaengig
 * von der Ladereihenfolge — ohne !important.
 *
 * Der zweite Block ganz unten deckt `Strg+P` im Browser ab. Dort greift
 * UIkits Reset weiterhin, das Ergebnis ist also graustufig — das ist UIkits
 * Vorgabe und nicht das Produkt dieses Plugins.
 */

/* ======================================================================
   1. Renderpfad — Body-Klasse, medienunabhaengig
   ====================================================================== */

/* --- 1.1 Entfernen -------------------------------------------------- */

html .mutig-pdf-render .uk-sticky-placeholder,
html .mutig-pdf-render .tm-header-mobile,
html .mutig-pdf-render .uk-offcanvas,
html .mutig-pdf-render .uk-offcanvas-bar,
html .mutig-pdf-render .uk-totop,
html .mutig-pdf-render [uk-totop],
html .mutig-pdf-render .uk-search,
html .mutig-pdf-render .tm-toolbar,
html .mutig-pdf-render .uk-navbar-toggle,
html .mutig-pdf-render .uk-navbar-nav,
html .mutig-pdf-render .uk-navbar-right,
html .mutig-pdf-render .wpml-ls,
html .mutig-pdf-render .wpml-ls-menu-item,
html .mutig-pdf-render .wpml-ls-native,
html .mutig-pdf-render .mutig-pdf-button,
html .mutig-pdf-render #wpadminbar,
html .mutig-pdf-render .cmplz-cookiebanner,
html .mutig-pdf-render .cookie-notice,
html .mutig-pdf-render .uk-slidenav,
html .mutig-pdf-render .uk-dotnav,
html .mutig-pdf-render .oc-toc,
html .mutig-pdf-render .oc-toc-toggle {
    display: none;
}

/* Der Website-Footer (Logo, Adresse, Navigation) gehört nicht ins PDF — die
   Seitenfußzeile mit Titel und Seitenzahl kommt vom Renderer.
   `main ~ footer` statt `footer`: Zitate setzen ihre Quellenangabe ebenfalls
   in <footer>, die müssen bleiben. YOOtheme 5 gibt den Builder-Footer als
   <footer> direkt hinter </main> aus (gemessen 05.10.2026), YOOtheme 4 als
   .tm-footer. */
html .mutig-pdf-render main ~ footer,
html .mutig-pdf-render .tm-footer {
    display: none;
}

/* --- 1.2 Auflösen ---------------------------------------------------
 * `90vh` ist im Druck keine sinnvolle Höhe — sie bezieht sich auf das
 * Browserfenster, nicht auf das Blatt. Deshalb hier auf 0 und danach in
 * render-fix.js (`__mutigPdfErsteSeiteFuellen`) auf exakt die Höhe der
 * ersten A4-Seite gesetzt.
 *
 * Bis 05.10.2026 stand hier zusätzlich `padding: 2rem` am Cover, damit es
 * klein blieb. Seit das Cover die Seite füllt, gilt wieder das Padding des
 * Bildschirmlayouts — so wie in der Figma-Vorlage des PDFs.
 */

html .mutig-pdf-render .uk-height-viewport,
html .mutig-pdf-render .oc-cover--height-viewport,
html .mutig-pdf-render .oc-cover {
    min-height: 0;
    height: auto;
}

/* Vertikal zentrierte Flex-Sections beginnen im PDF oben, nicht mittig. */
html .mutig-pdf-render .uk-flex-middle,
html .mutig-pdf-render .uk-flex-center {
    align-items: flex-start;
}

html .mutig-pdf-render .uk-sticky,
html .mutig-pdf-render .uk-sticky-fixed,
html .mutig-pdf-render [uk-sticky] {
    position: static;
    top: auto;
}

/* Transparenter Header über dem Inhalt (YOOtheme „Header: transparent“,
   `.tm-header-overlay`): auf der Website liegt das Logo bewusst auf der
   ersten Section, im PDF soll das Cover UNTER dem Logo beginnen. Gemessen
   06.10.2026 an der CoC-Seite live — lokal war der Header nicht transparent,
   dort fiel es nicht auf. */
html .mutig-pdf-render .tm-header-overlay {
    position: relative;
    top: auto;
    left: auto;
    right: auto;
}

/* Das allein reichte nicht: der Header war danach 0 px hoch. UIkit setzt
   `.uk-navbar-center:not(:only-child)` absolut in die Mitte — und „nicht
   allein“ ist er, weil `.uk-navbar-right` im HTML bleibt, auch wenn es oben
   per display:none verschwindet. Im PDF die Mitte zurück in den Fluss. */
html .mutig-pdf-render .uk-navbar-center:not(:only-child) {
    position: relative;
    top: auto;
    left: auto;
    transform: none;
    margin-left: auto;
    margin-right: auto;
    height: auto;
}

html .mutig-pdf-render .uk-section,
html .mutig-pdf-render .uk-container,
html .mutig-pdf-render .uk-cover-container {
    overflow: visible;
}

/* --- 1.3 Farben und Flächen ----------------------------------------
 * Zusammen mit printBackground: true im Renderaufruf. Im Bildschirmmedium
 * loescht UIkits Reset zwar nichts mehr, aber Chromium optimiert
 * Hintergruende ohne `exact` trotzdem weg.
 */

html .mutig-pdf-render,
html .mutig-pdf-render *,
html .mutig-pdf-render *::before,
html .mutig-pdf-render *::after {
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
}

/* --- 1.4 Seitenumbrüche ---------------------------------------------- */

html .mutig-pdf-render {
    orphans: 3;
    widows: 3;
}

html .mutig-pdf-render h1,
html .mutig-pdf-render h2,
html .mutig-pdf-render h3,
html .mutig-pdf-render h4,
html .mutig-pdf-render h5,
html .mutig-pdf-render h6 {
    break-after: avoid;
    break-inside: avoid;
}

html .mutig-pdf-render figure,
html .mutig-pdf-render img,
html .mutig-pdf-render picture,
html .mutig-pdf-render .el-image,
html .mutig-pdf-render .uk-inline-clip,
html .mutig-pdf-render blockquote,
html .mutig-pdf-render table,
html .mutig-pdf-render .uk-card,
html .mutig-pdf-render .oc-panel,
html .mutig-pdf-render .oc-card,
html .mutig-pdf-render .oc-notice,
html .mutig-pdf-render .oc-quote,
html .mutig-pdf-render .oc-facts .el-item,
html .mutig-pdf-render .oc-steps .el-item,
html .mutig-pdf-render .oc-cardgrid .el-item,
html .mutig-pdf-render .oc-matrix tr {
    break-inside: avoid;
}

html .mutig-pdf-render thead {
    display: table-header-group;
}

/* --- 1.4b Die erste Section ist die erste Seite -----------------------
 * Die Klasse setzt render-fix.js auf die erste Section innerhalb des
 * Inhaltsbereichs — nicht per :first-of-type, weil das auch jede
 * verschachtelte erste Section träfe.
 */

html .mutig-pdf-render .mutig-pdf-first-section {
    break-after: page;
}

/* --- 1.4c Gedrucktes Inhaltsverzeichnis ------------------------------
 * Der Block wird von render-fix.js aus der Liste des oc_toc-Moduls geklont
 * und hinter die erste Section gesetzt — damit ist er Seite 2.
 *
 * Die geerbten Klassen `.oc-toc-list`, `.oc-toc-item--lN` und `.oc-toc-link`
 * bringen Einrückung, Blau und Fettung schon mit; hier kommt nur dazu, was
 * ein gedrucktes Verzeichnis braucht.
 */

/* Rand links und oben nach der Figma-Vorlage des PDFs (Seite „Inhalt“:
   Titel bei 87 pt von links, 55 pt von oben auf 595 × 842 pt). Bei
   Skalierung 0,6 entspricht 1 pt rund 2,2 CSS-Pixeln; zusammen mit dem
   Seitenrand von 12 bzw. 15 mm landet der Titel damit bei ~84 pt / ~64 pt. */
html .mutig-pdf-render .mutig-pdf-toc {
    break-before: page;
    break-after: page;
    padding: 3rem 0 2rem 7rem;
}

html .mutig-pdf-render .mutig-pdf-toc-title {
    margin: 0 0 2.5rem;
    font-size: calc(1.5rem + 1px);
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
}

/* Einträge 1 px größer als im Bildschirm-Verzeichnis des oc_toc-Moduls
   (dort 15 bzw. 14 px) — gedruckt bei 0,6 wirken sie sonst zu klein. */
html .mutig-pdf-render .mutig-pdf-toc .oc-toc-item--l2 .oc-toc-link {
    font-size: calc(0.9375rem + 1px);
}

html .mutig-pdf-render .mutig-pdf-toc .oc-toc-item--l3 .oc-toc-link,
html .mutig-pdf-render .mutig-pdf-toc .oc-toc-item--l4 .oc-toc-link {
    font-size: calc(0.875rem + 1px);
}

/* Ein Eintrag soll nicht zwischen zwei Seiten zerrissen werden. */
html .mutig-pdf-render .mutig-pdf-toc .oc-toc-item {
    break-inside: avoid;
}

/* Im Druck gibt es kein Überfahren — der Rahmen links nimmt nur Platz weg. */
html .mutig-pdf-render .mutig-pdf-toc .oc-toc-link {
    border-left: 0;
    padding-left: 0;
}

/* Die URL-Anhängeregel für externe Links darf hier nicht greifen: die
   Einträge sind Sprungziele im selben Dokument. */
html .mutig-pdf-render .mutig-pdf-toc a::after {
    content: "";
}

/* --- 1.5 Redaktionell setzbarer Umbruch ------------------------------
 * Funktioniert auf JEDEM Builder-Element: im Advanced-Tab unter „CSS-Klasse"
 * eintragen. Das Modul `mutig_pagebreak` ist nur die bequeme Oberflaeche
 * dafuer.
 */

html .mutig-pdf-render .mutig-pdf-pagebreak,
html .mutig-pdf-render .mutig-pdf-break-before {
    break-before: page;
}

html .mutig-pdf-render .mutig-pdf-break-after {
    break-after: page;
}

html .mutig-pdf-render .mutig-pdf-break-avoid {
    break-inside: avoid;
}

/* Das Umbruch-Modul selbst ist im PDF unsichtbar und nimmt keinen Platz. */
html .mutig-pdf-render .mutig-pdf-break-marker {
    display: block;
    height: 0;
    margin: 0;
    padding: 0;
    border: 0;
    break-before: page;
}

/* Wirkung „Umbruch nach dieser Stelle". Fehlte bis 05.10.2026 — die
   Einstellung brach trotzdem VOR dem Element um. */
html .mutig-pdf-render .mutig-pdf-break-marker--after {
    break-before: auto;
    break-after: page;
}

/* --- 1.6 Links ------------------------------------------------------
 * NUR externe Links bekommen die URL angehaengt. Welche extern sind,
 * entscheidet render-fix.js gegen location.host — in CSS ist der eigene Host
 * nicht bekannt, und a[href^="http"] trifft auch jeden internen absoluten
 * Link. Gemessen am 18.09.2026: ohne diese Trennung stand
 * "(http://oc.local/)" neben dem Logo.
 */

html .mutig-pdf-render a.mutig-pdf-extern::after {
    content: " (" attr(href) ")";
    font-size: .75em;
    word-break: break-all;
}

/* Bei Buttons keine Adresse — im Button-Layout bricht sie die Gestaltung
   (Dejan, 06.10.2026: „bei den Buttons werden die URLs ausgeschrieben“).
   Der Link selbst bleibt im PDF anklickbar. */
html .mutig-pdf-render a.mutig-pdf-extern.uk-button::after,
html .mutig-pdf-render a.mutig-pdf-extern[class*="uk-button-"]::after,
html .mutig-pdf-render a.mutig-pdf-extern.el-link::after {
    content: none;
}

/* ======================================================================
   2. Strg+P im Browser
   Nur das Notwendigste. UIkits Print-Reset loescht hier weiterhin alle
   Farben — das ist UIkits Vorgabe, nicht unser Produkt.
   ====================================================================== */

@media print {

    html .uk-sticky-placeholder,
    html .tm-header-mobile,
    html .uk-offcanvas,
    html .uk-offcanvas-bar,
    html .uk-totop,
    html [uk-totop],
    html .uk-search,
    html .tm-toolbar,
    html .uk-navbar-toggle,
    html .uk-navbar-nav,
    html .uk-navbar-right,
    html .wpml-ls,
    html .wpml-ls-menu-item,
    html .mutig-pdf-button,
    html #wpadminbar,
    html .cmplz-cookiebanner,
    html .cookie-notice,
    html .uk-slidenav,
    html .uk-dotnav {
        display: none;
    }

    html .uk-height-viewport,
    html [uk-height-viewport],
    html .oc-cover--height-viewport,
    html .oc-cover {
        min-height: 0;
        height: auto;
    }

    html .uk-sticky,
    html [uk-sticky] {
        position: static;
    }

    .mutig-pdf-pagebreak,
    .mutig-pdf-break-before,
    .mutig-pdf-break-marker {
        break-before: page;
    }

    .uk-card,
    .oc-panel,
    .oc-card,
    .oc-notice,
    .oc-quote {
        break-inside: avoid;
    }
}
