/*
    Gruppen-Website policendirekt.com - einziges Stylesheet. Die Inhaltsrichtlinie sperrt
    style-Attribute und Inline-Stile, alles Aussehen steht deshalb hier.

    Gestaltung nach der alten WordPress-Seite (Divi, ausgelesen am 2026-11-09): weißer Kopf mit
    Logo und Menü, blaues Titelband mit Weltbild auf den Unterseiten, Fuß in #005ca9, Bereiche der
    Beteiligungen in #669bcd, Zahlen auf blauen Blasen. Abweichungen:
    - Schrift: Libre Franklin, selbst gehostet (fonts/, SIL Open Font License 1.1). Die alte Seite nannte sie im CSS, lud sie aber nirgends und fiel auf die
      Ersatzschrift des Browsers zurück. Kein Google Fonts, kein Adobe Fonts.
    - Links #005ca9 statt #2ea3f2: das Hellblau der alten Seite hat auf Weiß nur 2,9 : 1 Kontrast,
      WCAG 2.1 AA verlangt 4,5 : 1.
    - Fließtext #555 statt #666 (7,5 : 1 statt 5,7 : 1), Zoom nicht gesperrt.
*/

@font-face {
    font-family: "Libre Franklin";
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url("../fonts/libre-franklin-v2-latin-400.woff2") format("woff2");
}

@font-face {
    font-family: "Libre Franklin";
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url("../fonts/libre-franklin-v2-latin-600.woff2") format("woff2");
}

@font-face {
    font-family: "Libre Franklin";
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url("../fonts/libre-franklin-v2-latin-700.woff2") format("woff2");
}

:root {
    --blau-fuss: #005ca9;
    --blau-bereich: #669bcd;
    --blau-held: #1e4498;
    --text: #555;
    --ueberschrift: #333;
    --link: #005ca9;
    --grau-hell: #f4f4f4;
    --grau-linie: #d9d9d9;
    --breite: 67.5rem;
    color-scheme: light;
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    -webkit-text-size-adjust: 100%;
}

body {
    margin: 0;
    background: #fff;
    color: var(--text);
    font-family: "Libre Franklin", Arial, sans-serif;
    font-size: 1rem;
    line-height: 1.7;
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

main {
    flex: 1;
}

main:focus {
    outline: none;
}

img,
video {
    max-width: 100%;
    height: auto;
}

a {
    color: var(--link);
}

a:hover,
a:focus-visible {
    text-decoration-thickness: 2px;
}

:focus-visible {
    outline: 3px solid var(--blau-held);
    outline-offset: 2px;
}

h1,
h2,
h3,
h4 {
    color: var(--ueberschrift);
    font-weight: 600;
    line-height: 1.25;
    margin: 0 0 .6em;
}

h1 { font-size: 1.875rem; }
h2 { font-size: 1.625rem; }
h3 { font-size: 1.375rem; }
h4 { font-size: 1.125rem; }

p {
    margin: 0 0 1em;
}

.rahmen {
    width: min(100% - 2rem, var(--breite));
    margin-inline: auto;
}

.rahmen--schmal {
    max-width: 50rem;
}

.abschnitt {
    padding-block: 3.375rem;
}

.sprungmarke {
    position: absolute;
    left: 1rem;
    top: -10rem;
    z-index: 10;
    padding: .5rem 1rem;
    background: #fff;
}

.sprungmarke:focus {
    top: 1rem;
}

/* --- Kopf --- */

.kopf {
    background: #fff;
    box-shadow: 0 1px 0 rgba(0, 0, 0, .1);
    position: sticky;
    top: 0;
    z-index: 5;
}

.kopf-zeile {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .5rem 2rem;
    padding-block: .75rem;
}

.kopf-marke img {
    display: block;
    height: 2.25rem;
    width: auto;
}

.kopf-nav ul {
    display: flex;
    flex-wrap: wrap;
    gap: .25rem 1.4rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.kopf-link {
    color: rgba(0, 0, 0, .7);
    font-size: .875rem;
    font-weight: 600;
    letter-spacing: .02em;
    text-decoration: none;
    text-transform: uppercase;
}

.kopf-link:hover,
.kopf-link.aktiv {
    color: var(--link);
}

.kopf-sprache {
    display: inline-flex;
    align-items: center;
    min-height: 1.5rem;
}

.kopf-sprache img {
    display: block;
    width: 1.5rem;
    height: auto;
    box-shadow: 0 0 0 1px rgba(0, 0, 0, .15);
}

.kopf-sprache:hover img {
    box-shadow: 0 0 0 2px var(--link);
}

/* --- Startseite --- */

.held {
    position: relative;
    overflow: hidden;
    max-height: 28.75rem;
    background: var(--blau-held) url("../img/titel-welt.jpg") center / cover;
    display: grid;
}

.held-video {
    grid-area: 1 / 1;
    display: block;
    width: 100%;
    height: 100%;
    min-height: 14rem;
    object-fit: cover;
}

.held-text {
    grid-area: 1 / 1;
    align-self: center;
    padding: 2rem 1rem;
    text-align: center;
}

.held-text h1 {
    color: #fff;
    font-size: clamp(1.375rem, 4.2vw, 3.125rem);
    font-weight: 600;
    line-height: 1.16;
    margin: 0;
    text-shadow: 2px 4px 3px rgba(0, 0, 0, .3);
}

@media (prefers-reduced-motion: reduce) {
    .held-video {
        visibility: hidden;
    }
}

.abschnitt--kontakt {
    text-align: center;
    padding-block: 1.75rem 2.5rem;
}

.abschnitt--kontakt h2 {
    font-size: 1.375rem;
}

/* --- Titelband der Unterseiten --- */

.titelband {
    background: var(--blau-held) url("../img/titel-welt.jpg") left top / cover;
    padding-block: 3.5rem;
    text-align: center;
}

.titelband h1 {
    color: #fff;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    margin: 0;
}

/* --- Über uns --- */

.team {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(12.5rem, 1fr));
    gap: 2rem;
    margin: 2rem 0 3rem;
    padding: 0;
    list-style: none;
}

.team-person img {
    display: block;
}

.team-name {
    margin: .5rem 0 .25rem;
    font-weight: 600;
    color: var(--ueberschrift);
}

.team-profile {
    display: flex;
    gap: .5rem;
}

/* Geschützte Mail-Links (Bausteine/MailLink) setzt js/mail.js erst im Browser zusammen; ohne
   JavaScript bleiben sie ohne Ziel und werden ausgeblendet. */
a.mail:not([href]) {
    display: none;
}

.team-profile img {
    width: 2rem;
    height: 2rem;
}

.reiter {
    border: 1px solid var(--grau-linie);
}

.reiter details + details {
    border-top: 1px solid var(--grau-linie);
}

.reiter summary {
    background: var(--grau-hell);
    color: var(--ueberschrift);
    cursor: pointer;
    font-size: 1.375rem;
    padding: .5rem 1.25rem;
}

.reiter details[open] summary {
    background: #fff;
    border-bottom: 1px solid var(--grau-linie);
}

.reiter details > :not(summary) {
    margin-inline: 1.25rem;
}

.reiter details > summary + * {
    margin-top: 1rem;
}

.reiter details[open] > :last-child {
    margin-bottom: 1.25rem;
}

.abschnitt--zahlen {
    padding-top: 0;
}

.zahlen {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
    gap: 1.5rem;
    margin: 1.5rem 0 0;
    padding: 0;
    list-style: none;
}

.zahl {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    min-height: 14.2rem;
    padding: 2.5rem 1rem 0;
    background: url("../img/zahl-blase.png") center top / 14rem auto no-repeat;
    color: #fff;
    text-align: center;
}

.zahl-wert {
    font-size: 3rem;
    font-weight: 600;
    line-height: 1.2;
}

.zahl-titel {
    font-size: .875rem;
    font-weight: 600;
    max-width: 10rem;
}

/* --- Beteiligungen --- */

.bereich {
    display: grid;
    grid-template-columns: 1fr 3fr;
    margin-bottom: 1.5rem;
}

.bereich-titel {
    background: var(--blau-bereich);
    color: #fff;
    font-size: 1.625rem;
    line-height: 1.3;
    margin: 0;
    padding: 1.5rem;
    display: flex;
    align-items: center;
}

.bereich-logos {
    border: 1px solid var(--blau-bereich);
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    align-items: center;
    gap: 1.25rem;
    margin: 0;
    padding: 1.25rem;
    list-style: none;
}

.bereich-logos li {
    display: flex;
    justify-content: center;
}

.bereich-logos img {
    display: block;
    max-height: 5rem;
    max-width: min(100%, 12.5rem);
    width: auto;
    object-fit: contain;
}

@media (max-width: 61.25rem) {
    .bereich {
        grid-template-columns: 1fr;
    }

    .bereich-titel {
        justify-content: center;
        text-align: center;
        padding: 1rem;
    }

    .bereich-logos {
        grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr));
    }
}

/* --- Rechtstexte --- */

.rechtstext h2 {
    margin-top: 1.5em;
}

.rechtstext h2:first-child {
    margin-top: 0;
}

.rechtstext h3 {
    margin-top: 1.5em;
}

.rechtstext h4 {
    margin-top: 1.25em;
    margin-bottom: .4em;
}

.rechtstext {
    overflow-wrap: anywhere;
}

.fehler-kennung code {
    overflow-wrap: anywhere;
}

/* --- Fuß --- */

.fuss {
    background: var(--blau-fuss);
    color: #fff;
}

.fuss-zeile {
    padding-block: 1rem;
}

.fuss-links {
    display: flex;
    flex-wrap: wrap;
    gap: .25rem 1.5rem;
    margin: 0 0 .5rem;
    padding: 0;
    list-style: none;
}

.fuss a {
    color: #fff;
    font-size: .875rem;
    font-weight: 600;
    text-decoration: none;
}

.fuss a:hover,
.fuss a:focus-visible,
.fuss a[aria-current="page"] {
    text-decoration: underline;
}

.fuss :focus-visible {
    outline-color: #fff;
}

.fuss-copyright {
    margin: 0;
    font-size: .875rem;
}
