/* ==========================================================================
   Stylesheet Elektro Weiler GmbH, Köln

   Stilrichtung: hell und ruhig, Farben aus dem Logo. Weiler-Grau trägt
   (Flächen, Seitenfuß, Deko), Logo-Rot signalisiert (Anruf-Knopf,
   Markierung). Eine Schrift: Archivo, für Überschriften schmal und kräftig
   wie der Schriftzug im Logo, für Fließtext in normaler Breite.
   Einziges Deko-Motiv: die Spitzen des Kölner Doms aus dem Logo.

   Inhalt
    1. Farben, Maße, Schrift (Variablen)
    2. Grundlagen
    3. Hilfsklassen, Knöpfe, Links
    4. Kopfzeile und Menü
    5. Bühne (Startseite)
    6. Schnellinfos
    7. Abschnitte, Kacheln, Band
    8. Zwei Spalten, Fotos, Siegel, Stimmen
    9. Seitenkopf der Unterseiten, Brotkrumen
   10. Leistungsseiten: Fließtext, Listen, Seitenleiste
   11. Galerie und Großansicht
   12. Kontakt, Formular, Karte
   13. Rechtstexte, Fehlerseite
   14. Aufruf und Seitenfuß
   15. Weniger Bewegung, Druck
   ========================================================================== */


/* === 1. Farben, Maße, Schrift ============================================= */

@font-face {
    font-family: "Archivo";
    src: url("/fonts/archivo.woff2") format("woff2");
    font-weight: 100 900;
    font-stretch: 62% 125%;
    font-style: normal;
    font-display: swap;
}

:root {
    /* Farben (aus dem Logo abgeleitet) */
    --weiss: #ffffff;
    --stein: #f2f1ec;            /* helle Abschnittsflächen (Logo-Hellgrau, stark aufgehellt) */
    --stein-linie: #e1e0d8;      /* Ränder und Trennlinien */
    --logo-hell: #a9a9a1;        /* helles Grau der Logo-Linse */
    --weiler-grau: #626155;      /* Hauptfarbe: dunkle Logo-Fläche, Dom, dunkle Knöpfe */
    --weiler-tief: #3d3c34;      /* Seitenfuß */
    --tinte: #23231d;            /* Überschriften */
    --text: #34332b;             /* Fließtext */
    --text-leise: #5e5d53;       /* Nebentexte (Kontrast auf Weiß und Stein > 5,5 : 1) */
    --rot: #e00b1c;              /* Signal: Anruf-Knopf, Markierung (nur sparsam) */
    --rot-dunkel: #b50816;       /* Hover des roten Knopfs */
    --rot-weich: #fdeceb;        /* Fehlermeldung */
    --gruen: #1d8f4e;            /* Punkt „Jetzt geöffnet“ */
    --gelb-stern: #f2a900;       /* Google-Sterne */

    /* Schrift */
    --schrift: "Archivo", "Arial Narrow", Arial, sans-serif;
    --schmal: 74%;               /* Breite der Überschriften (wie Logo-Schriftzug) */

    /* Maße */
    --breite-max: 76rem;
    --rand: clamp(1.1rem, 4vw, 2.5rem);
    --abstand: clamp(3.5rem, 8vw, 6.5rem);
    --radius-klein: 0.75rem;
    --radius: 1.25rem;
    --radius-gross: 1.75rem;
    --linse: 6.5rem 1.25rem 6.5rem 1.25rem;   /* Form der Logo-Linse für Fotos */
    --kopfhoehe: 4.25rem;
    --schatten: 0 1px 2px rgb(61 60 52 / 6%), 0 12px 30px -16px rgb(61 60 52 / 28%);
}


/* === 2. Grundlagen ======================================================== */

*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
    scroll-behavior: smooth;
    scroll-padding-top: calc(var(--kopfhoehe) + 1rem);
    -webkit-tap-highlight-color: rgb(224 11 28 / 18%);
}

/* Kein Doppeltipp-Zoom-Verzug auf Knöpfen und Links */
a,
button,
input,
select,
textarea,
label {
    touch-action: manipulation;
}

body {
    margin: 0;
    font-family: var(--schrift);
    font-size: 1.0625rem;
    line-height: 1.6;
    color: var(--text);
    background: var(--weiss);
    overflow-x: hidden;
}

body.menue-offen {
    overflow: hidden;
}

img,
svg {
    display: block;
    max-width: 100%;
    height: auto;
}

h1,
h2,
h3 {
    margin: 0 0 0.6em;
    font-stretch: var(--schmal);
    font-weight: 750;
    line-height: 1.08;
    color: var(--tinte);
    text-wrap: balance;
}

h1 { font-size: clamp(2.4rem, 6vw, 3.6rem); }
h2 { font-size: clamp(1.75rem, 3.6vw, 2.5rem); }
h3 { font-size: 1.3rem; }

p {
    margin: 0 0 1em;
}

a {
    color: inherit;
    text-underline-offset: 0.2em;
}

a:hover {
    color: var(--rot-dunkel);
}

/* Sichtbarer Tastatur-Fokus überall */
:focus-visible {
    outline: 3px solid var(--rot);
    outline-offset: 3px;
    border-radius: 0.25rem;
}

address {
    font-style: normal;
}

::selection {
    background: var(--rot);
    color: var(--weiss);
}


/* === 3. Hilfsklassen, Knöpfe, Links ======================================= */

.breite {
    width: 100%;
    max-width: calc(var(--breite-max) + 2 * var(--rand));
    margin-inline: auto;
    padding-inline: var(--rand);
}

.nur-vorlesen {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
}

.sprunglink {
    position: absolute;
    top: -10rem;
    left: 1rem;
    z-index: 100;
    padding: 0.7rem 1.1rem;
    font-weight: 600;
    color: var(--weiss);
    background: var(--tinte);
    border-radius: var(--radius-klein);
}

.sprunglink:focus {
    top: 1rem;
    color: var(--weiss);
}

/* Was zusammengehört, bricht nie um (Telefonnummern, Uhrzeiten …) */
.nummer {
    white-space: nowrap;
}

.symbol {
    flex: none;
    width: 1.25em;
    height: 1.25em;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.9;
    stroke-linecap: round;
    stroke-linejoin: round;
}

/* --- Knöpfe (Pillenform) --- */
.knopfreihe {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.knopf {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.6rem;
    min-height: 3.25rem;
    padding: 0.7rem 1.5rem;
    font: inherit;
    font-size: 1.05rem;
    font-weight: 650;
    line-height: 1.2;
    text-decoration: none;
    white-space: nowrap;
    border: 2px solid transparent;
    border-radius: 999px;
    cursor: pointer;
    transition: background-color 0.2s, color 0.2s, border-color 0.2s, transform 0.2s;
}

.knopf:active {
    transform: translateY(1px);
}

.knopf-rot {
    color: var(--weiss);
    background: var(--rot);
}

.knopf-rot:hover {
    color: var(--weiss);
    background: var(--rot-dunkel);
}

/* Die Nummer im roten Knopf etwas größer und schmal wie im Logo */
.knopf-rot .nummer {
    font-size: 1.15em;
    font-stretch: 88%;
    letter-spacing: 0.01em;
}

.knopf-dunkel {
    color: var(--weiss);
    background: var(--weiler-grau);
}

.knopf-dunkel:hover {
    color: var(--weiss);
    background: var(--weiler-tief);
}

.knopf-rahmen {
    color: var(--tinte);
    background: var(--weiss);
    border-color: var(--weiler-grau);
}

.knopf-rahmen:hover {
    color: var(--tinte);
    background: var(--stein);
}

.knopf-breit {
    width: 100%;
}

.knopf[disabled] {
    opacity: 0.6;
    cursor: wait;
}

/* --- Textlink mit Symbol --- */
.textlink {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    font-weight: 650;
    color: var(--tinte);
    text-decoration: underline;
    text-decoration-color: var(--rot);
    text-decoration-thickness: 2px;
}

.textlink .symbol {
    color: var(--rot);
}

/* --- Öffnungsstatus („Jetzt geöffnet · bis 16:00“) --- */
.status {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    font-weight: 600;
    color: var(--text-leise);
    text-decoration: none;
    white-space: nowrap;
}

.status:hover {
    color: var(--tinte);
    text-decoration: underline;
}

.status-punkt {
    width: 0.6rem;
    height: 0.6rem;
    background: var(--text-leise);
    border-radius: 50%;
}

.status-offen {
    color: var(--gruen);
}

.status-offen .status-punkt {
    background: var(--gruen);
    box-shadow: 0 0 0 4px rgb(29 143 78 / 16%);
}

/* --- Google-Bewertung („4,9 von 5 · 39 Google-Rezensionen“) --- */
.google-zeile {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.25rem 0.55rem;
    font-size: 0.98rem;
    color: var(--text);
    text-decoration: none;
}

.google-zeile > span:last-child {
    white-space: nowrap;
}

.google-zeile:hover {
    color: var(--tinte);
    text-decoration: underline;
}

.sterne {
    display: inline-flex;
    gap: 0.1rem;
    color: var(--gelb-stern);
}

.stern {
    width: 1.05rem;
    height: 1.05rem;
}


/* === 4. Kopfzeile und Menü ================================================= */

.kopf {
    position: sticky;
    top: 0;
    z-index: 50;
    background: rgb(255 255 255 / 94%);
    border-bottom: 1px solid var(--stein-linie);
}

.kopf-innen {
    display: flex;
    align-items: center;
    gap: 1rem;
    min-height: var(--kopfhoehe);
}

.marke {
    flex: none;
    display: block;
    padding-block: 0.3rem;
}

/* Logo groß genug, aber flach (Seitenverhältnis 960 : 500) */
.marke-logo {
    width: auto;
    height: 3.4rem;
}

.kopf-aktionen {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-left: auto;
}

/* Anruf-Knopf: Handy quadratisch, ab Desktop mit Nummer */
.knopf-anruf {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    width: 2.9rem;
    height: 2.9rem;
    font-weight: 700;
    color: var(--weiss);
    text-decoration: none;
    background: var(--rot);
    border-radius: 0.9rem;
}

.knopf-anruf:hover {
    color: var(--weiss);
    background: var(--rot-dunkel);
}

.kopf-nummer {
    display: none;
    white-space: nowrap;
    font-stretch: 88%;
    font-size: 1.05rem;
}

/* Startseite auf dem Handy: Telefon steht schon groß in der Bühne */
.startseite .knopf-anruf {
    display: none;
}

.menue-knopf {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.9rem;
    height: 2.9rem;
    padding: 0;
    color: var(--tinte);
    background: var(--stein);
    border: 0;
    border-radius: 0.9rem;
    cursor: pointer;
}

.menue-knopf-striche,
.menue-knopf-striche::before,
.menue-knopf-striche::after {
    display: block;
    width: 1.35rem;
    height: 2px;
    background: currentColor;
    border-radius: 2px;
    transition: transform 0.25s, background-color 0.25s;
}

.menue-knopf-striche {
    position: relative;
}

.menue-knopf-striche::before,
.menue-knopf-striche::after {
    content: "";
    position: absolute;
    left: 0;
}

.menue-knopf-striche::before { top: -6px; }
.menue-knopf-striche::after { top: 6px; }

.menue-knopf[aria-expanded="true"] .menue-knopf-striche {
    background: transparent;
}

.menue-knopf[aria-expanded="true"] .menue-knopf-striche::before {
    transform: translateY(6px) rotate(45deg);
}

.menue-knopf[aria-expanded="true"] .menue-knopf-striche::after {
    transform: translateY(-6px) rotate(-45deg);
}

/* --- Handy: Menü füllt den Bildschirm unter der Kopfzeile --- */
.hauptmenue {
    display: none;
}

body.menue-offen .kopf {
    background: var(--weiss);
}

.js .hauptmenue.offen {
    position: fixed;
    inset: var(--kopfhoehe) 0 0;
    display: block;
    overflow-y: auto;
    padding: 1rem var(--rand) 2rem;
    overscroll-behavior: contain;
    background: var(--weiss);
    border-top: 1px solid var(--stein-linie);
}

/* Ohne JavaScript steht das Menü einfach unter der Kopfzeile */
html:not(.js) .hauptmenue {
    display: block;
    width: 100%;
}

html:not(.js) .kopf-innen {
    flex-wrap: wrap;
}

html:not(.js) .menue-knopf {
    display: none;
}

.menue-liste,
.untermenue {
    margin: 0;
    padding: 0;
    list-style: none;
}

.menue-punkt {
    position: relative;
    border-bottom: 1px solid var(--stein-linie);
}

.menue-punkt > a {
    display: block;
    padding: 0.85rem 3.25rem 0.85rem 0;
    font-size: 1.6rem;
    font-stretch: var(--schmal);
    font-weight: 750;
    color: var(--tinte);
    text-decoration: none;
}

.menue-punkt > a[aria-current="page"] {
    color: var(--rot);
}

/* Knopf zum Aufklappen des Untermenüs (nur Handy) */
.untermenue-knopf {
    position: absolute;
    top: 0.75rem;
    right: 0;
    width: 2.75rem;
    height: 2.75rem;
    padding: 0;
    background: var(--stein);
    border: 0;
    border-radius: 999px;
    cursor: pointer;
}

.untermenue-knopf span {
    display: block;
    width: 0.55rem;
    height: 0.55rem;
    margin: -0.2rem auto 0;
    border-right: 2px solid var(--tinte);
    border-bottom: 2px solid var(--tinte);
    transform: rotate(45deg);
    transition: transform 0.2s;
}

.menue-punkt.offen .untermenue-knopf span {
    margin-top: 0.2rem;
    transform: rotate(-135deg);
}

.untermenue {
    display: none;
    padding-bottom: 0.75rem;
}

.menue-punkt.offen .untermenue,
html:not(.js) .untermenue {
    display: block;
}

.untermenue a {
    display: flex;
    align-items: center;
    gap: 0.7rem;
    padding: 0.55rem 0.5rem;
    font-weight: 550;
    text-decoration: none;
    border-radius: var(--radius-klein);
}

.untermenue a .symbol {
    color: var(--weiler-grau);
}

.untermenue a:hover {
    color: var(--tinte);
    background: var(--stein);
}

.menue-kontakt {
    display: grid;
    gap: 0.75rem;
    margin-top: 1.75rem;
}

.menue-kontakt p {
    margin: 0;
    color: var(--text-leise);
}

/* --- Desktop: waagerechtes Menü mit Ausklapp-Fläche --- */
@media (min-width: 64rem) {
    :root {
        --kopfhoehe: 5.75rem;
    }

    .marke-logo {
        height: 4.9rem;
    }

    .menue-knopf,
    .untermenue-knopf,
    .menue-kontakt {
        display: none;
    }

    .hauptmenue,
    .js .hauptmenue.offen {
        position: static;
        display: block;
        overflow: visible;
        padding: 0;
        margin-left: auto;
        background: none;
        border: 0;
    }

    .menue-liste {
        display: flex;
        gap: 0.2rem;
    }

    .menue-punkt {
        border: 0;
    }

    .menue-punkt > a {
        padding: 0.5rem 1rem;
        font-size: 1.02rem;
        font-stretch: 100%;
        font-weight: 600;
        color: var(--text);
        border-radius: 999px;
    }

    .menue-punkt > a:hover {
        color: var(--tinte);
        background: var(--stein);
    }

    .menue-punkt > a[aria-current="page"] {
        color: var(--tinte);
        background: var(--stein);
    }

    /* Untermenü „Leistungen“: öffnet beim Überfahren oder per Tastatur */
    .untermenue,
    html:not(.js) .untermenue {
        position: absolute;
        top: calc(100% + 0.6rem);
        left: -0.5rem;
        display: grid;
        width: 18rem;
        padding: 0.6rem;
        background: var(--weiss);
        border: 1px solid var(--stein-linie);
        border-radius: var(--radius);
        box-shadow: 0 24px 48px -24px rgb(61 60 52 / 35%);
        opacity: 0;
        visibility: hidden;
        transform: translateY(6px);
        transition: opacity 0.15s, transform 0.15s, visibility 0.15s;
    }

    /* Unsichtbare Brücke, damit das Untermenü beim Hinüberfahren offen bleibt */
    .untermenue::before {
        content: "";
        position: absolute;
        inset: -0.8rem 0 auto;
        height: 0.8rem;
    }

    .hat-untermenue:hover .untermenue,
    .hat-untermenue:focus-within .untermenue {
        opacity: 1;
        visibility: visible;
        transform: none;
    }

    .kopf-aktionen {
        margin-left: 0.75rem;
    }

    .knopf-anruf,
    .startseite .knopf-anruf {
        display: inline-flex;
        width: auto;
        padding: 0 1.2rem;
        border-radius: 999px;
    }

    .kopf-nummer {
        display: inline;
    }
}


/* === 5. Bühne (Startseite) ================================================= */

.buehne {
    padding-block: 1.25rem 2.5rem;
}

.buehne-innen {
    display: grid;
    gap: 1.75rem;
    align-items: center;
}

.dachzeile {
    margin: 0 0 0.5rem;
    font-weight: 600;
    color: var(--text-leise);
}

/* Überschrift in drei festen Zeilen, schmal wie der Logo-Schriftzug */
.buehne-titel {
    margin: 0 0 0.9rem;
    font-size: clamp(2.9rem, 12.5vw, 5.4rem);
    font-stretch: 68%;
    font-weight: 800;
    line-height: 0.94;
    letter-spacing: -0.005em;
}

.buehne-titel .zeile {
    display: block;
    white-space: nowrap;
}

.markiert {
    color: var(--rot);
}

.buehne-satz {
    max-width: 34rem;
    margin-bottom: 0.9rem;
    font-size: 1.1rem;
    color: var(--text);
}

/* Status und Adresse in EINER Zeile */
.buehne-info {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.25rem 1rem;
    margin-bottom: 1.1rem;
    font-size: 0.98rem;
}

.buehne-adresse {
    color: var(--text-leise);
    white-space: nowrap;
}

.buehne-text .knopfreihe {
    margin-bottom: 1rem;
}

/* --- Foto in der Linsen-Form des Logos, darüber ragt der Dom --- */
.buehne-bild {
    position: relative;
    margin: 0;
    padding-top: 5.6rem;   /* Platz für den Dom, der auf der Foto-Oberkante steht */
    isolation: isolate;    /* Dom (z-index -1) bleibt hinter dem Foto, aber im Bild-Bereich */
}

.buehne-foto {
    width: 100%;
    aspect-ratio: 16 / 10;
    object-fit: cover;
    object-position: 50% 60%;
    border-radius: var(--linse);
    box-shadow: var(--schatten);
}

.buehne-dom {
    position: absolute;
    top: 0;
    right: 12%;
    z-index: -1;
    width: 5.8rem;
    opacity: 0.9;
}

/* Rundes Akzent-Abzeichen „Ausbildung? Jetzt bewerben“ auf dem Foto */
.ausbildung-knopf {
    position: absolute;
    left: -0.25rem;
    bottom: -1rem;
    display: grid;
    place-content: center;
    width: 6.4rem;
    height: 6.4rem;
    padding: 0.5rem;
    text-align: center;
    line-height: 1.05;
    color: var(--tinte);
    text-decoration: none;
    background: var(--weiss);
    border: 3px solid var(--rot);
    border-radius: 50%;
    box-shadow: var(--schatten);
    transition: transform 0.2s;
}

.ausbildung-knopf:hover {
    color: var(--tinte);
    transform: rotate(-4deg) scale(1.04);
}

.ausbildung-knopf-klein {
    font-size: 0.8rem;
    font-weight: 600;
}

.ausbildung-knopf-gross {
    font-size: 1.1rem;
    font-stretch: var(--schmal);
    font-weight: 800;
    color: var(--rot);
}

/* Der eine orchestrierte Moment: Dom und Foto erscheinen beim Laden */
@keyframes dom-auftauchen {
    from { opacity: 0; transform: translateY(1.25rem); }
    to   { opacity: 0.9; transform: none; }
}

.buehne-dom {
    animation: dom-auftauchen 1.1s 0.25s cubic-bezier(0.2, 0.7, 0.2, 1) both;
}

@media (min-width: 48rem) {
    .buehne {
        padding-block: 2.5rem 4rem;
    }

    .buehne-innen {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
        gap: clamp(2rem, 5vw, 4.5rem);
    }

    .buehne-titel {
        font-size: clamp(3.4rem, 6.6vw, 5.6rem);
    }

    .buehne-bild {
        padding-top: 8.4rem;
    }

    .buehne-dom {
        width: 8.75rem;
    }

    .buehne-foto {
        aspect-ratio: 4 / 3.3;
    }

    .ausbildung-knopf {
        left: -1.5rem;
        bottom: 1.5rem;
        width: 8rem;
        height: 8rem;
    }

    .ausbildung-knopf-klein {
        font-size: 0.9rem;
    }

    .ausbildung-knopf-gross {
        font-size: 1.35rem;
    }
}


/* === 6. Schnellinfos ======================================================= */

.schnellinfos {
    padding-block: 2.5rem;
    background: var(--stein);
}

.schnellinfos-raster {
    display: grid;
    gap: 1rem;
}

.infokarte {
    display: flex;
    flex-direction: column;
    padding: 1.5rem;
    background: var(--weiss);
    border: 1px solid var(--stein-linie);
    border-radius: var(--radius);
    box-shadow: var(--schatten);
}

.infokarte-titel {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    margin-bottom: 0.9rem;
    font-size: 1.45rem;
}

.infokarte-titel .symbol {
    color: var(--weiler-grau);
}

.infokarte-gross {
    margin-bottom: 0.5rem;
    font-size: 1.5rem;
    font-stretch: 85%;
    font-weight: 700;
    line-height: 1.25;
    color: var(--tinte);
}

.infokarte-gross a {
    text-decoration: none;
}

.infokarte > p {
    color: var(--text-leise);
}

.infokarte-fuss {
    margin: auto 0 0;
    padding-top: 0.75rem;
}

/* Öffnungszeiten: eine Zeile pro Tagesgruppe, ohne „Uhr“ */
.zeiten-liste {
    margin: 0 0 0.5rem;
}

.zeiten-liste div {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.35rem 0;
    border-bottom: 1px dashed var(--stein-linie);
}

.zeiten-liste dt {
    font-weight: 600;
    white-space: nowrap;
}

.zeiten-liste dd {
    margin: 0;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

@media (min-width: 48rem) {
    .schnellinfos-raster {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}


/* === 7. Abschnitte, Kacheln, Band ========================================== */

.abschnitt {
    padding-block: var(--abstand);
}

.abschnitt-stein {
    background: var(--stein);
}

/* Erster Abschnitt einer Unterseite ohne Seitenkopf-Foto */
.abschnitt-oben {
    padding-top: clamp(1.75rem, 4vw, 3rem);
}

.abschnitt-kopf {
    max-width: 44rem;
    margin: 0 auto clamp(2rem, 4vw, 3rem);
    text-align: center;
}

.abschnitt-kopf p {
    font-size: 1.1rem;
    color: var(--text-leise);
}

.abschnitt-kopf-links {
    margin-inline: 0;
    text-align: left;
}

/* --- Leistungen als Fotokacheln --- */
.kacheln {
    display: grid;
    gap: 1rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.kachel-link {
    position: relative;
    display: flex;
    flex-direction: column;
    height: 100%;
    overflow: hidden;
    text-decoration: none;
    background: var(--weiss);
    border: 1px solid var(--stein-linie);
    border-radius: var(--radius);
    box-shadow: var(--schatten);
    transition: border-color 0.2s, transform 0.2s;
}

.kachel-link img {
    width: 100%;
    aspect-ratio: 16 / 9;
    object-fit: cover;
    transition: transform 0.5s;
}

.kachel-text {
    display: block;
    padding: 1.1rem 3.5rem 1.3rem 1.25rem;
}

.kachel-titel {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    margin: 0 0 0.35rem;
    font-size: 1.45rem;
}

.kachel-titel .symbol {
    color: var(--weiler-grau);
}

.kachel-kurz {
    display: block;
    font-size: 0.98rem;
    color: var(--text-leise);
}

.kachel-pfeil {
    position: absolute;
    right: 1rem;
    bottom: 1.2rem;
    display: grid;
    place-items: center;
    width: 2.25rem;
    height: 2.25rem;
    color: var(--tinte);
    background: var(--stein);
    border-radius: 50%;
    transition: background-color 0.2s, color 0.2s;
}

.kachel-link:hover {
    color: inherit;
    border-color: var(--logo-hell);
}

.kachel-link:hover img {
    transform: scale(1.04);
}

.kachel-link:hover .kachel-pfeil {
    color: var(--weiss);
    background: var(--rot);
}

@media (min-width: 40rem) {
    .kacheln {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    /* 7 Kacheln: die erste über die ganze Breite, damit keine Lücke bleibt */
    .kachel:first-child {
        grid-column: 1 / -1;
    }

    .kachel:first-child .kachel-link img {
        aspect-ratio: 21 / 8;
    }

    .kachel-link img {
        aspect-ratio: 4 / 3;
    }
}

@media (min-width: 64rem) {
    /* Desktop: drei breite Kacheln oben, vier schmalere darunter */
    .kacheln {
        grid-template-columns: repeat(12, minmax(0, 1fr));
        gap: 1.25rem;
    }

    .kachel,
    .kachel:first-child {
        grid-column: span 3;
    }

    .kachel:nth-child(-n + 3) {
        grid-column: span 4;
    }

    .kachel:first-child .kachel-link img,
    .kachel-link img {
        aspect-ratio: 4 / 3;
    }

    .kachel:nth-child(-n + 3) .kachel-link img {
        aspect-ratio: 16 / 10;
    }
}

/* --- Band mit zwei Bildkacheln (Smarthome) --- */
.band {
    padding-bottom: var(--abstand);
}

.band-raster {
    display: grid;
    gap: 1rem;
}

.band-kachel {
    position: relative;
    display: block;
    overflow: hidden;
    border-radius: var(--radius-gross);
    text-decoration: none;
}

.band-kachel img {
    width: 100%;
    aspect-ratio: 16 / 9;
    object-fit: cover;
    transition: transform 0.5s;
}

/* Text nicht direkt auf dem Foto, sondern auf einem weißen Schild */
.band-text {
    position: absolute;
    left: 1rem;
    bottom: 1rem;
    max-width: calc(100% - 2rem);
    padding: 0.6rem 1.1rem;
    font-size: clamp(1.25rem, 2.4vw, 1.7rem);
    font-stretch: var(--schmal);
    font-weight: 750;
    line-height: 1.15;
    color: var(--tinte);
    background: var(--weiss);
    border-radius: 999px;
    box-shadow: var(--schatten);
}

.band-kachel:hover img {
    transform: scale(1.04);
}

.band-kachel:hover .band-text {
    color: var(--rot-dunkel);
}

@media (min-width: 48rem) {
    .band-raster {
        grid-template-columns: 1fr 1fr;
        gap: 1.25rem;
    }
}


/* === 8. Zwei Spalten, Fotos, Siegel, Stimmen ============================== */

.zweispaltig {
    display: grid;
    gap: 2rem;
    align-items: center;
}

.zweispaltig > figure {
    margin: 0;
}

.foto-hoch img,
.foto-quer img {
    width: 100%;
    object-fit: cover;
    border-radius: var(--linse);
    box-shadow: var(--schatten);
}

.foto-hoch img {
    aspect-ratio: 4 / 4.4;
}

.foto-quer img {
    aspect-ratio: 4 / 3;
}

@media (min-width: 56rem) {
    .zweispaltig {
        grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
        gap: clamp(2.5rem, 6vw, 5rem);
    }

    /* Text links, Foto rechts */
    .zweispaltig-umgekehrt {
        grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
    }
}

.einleitung {
    font-size: 1.25rem;
    font-weight: 550;
    line-height: 1.45;
    color: var(--tinte);
}

.siegel-reihe {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin: 1.5rem 0;
}

.siegel-reihe img {
    width: 10.5rem;
    height: auto;
    background: var(--weiss);
    border-radius: var(--radius-klein);
}

.siegel-reihe a:hover img {
    outline: 2px solid var(--logo-hell);
}

/* --- Stimmen der Azubis --- */
.stimmen {
    display: grid;
    gap: 1rem;
    margin: 1.5rem 0;
}

.stimme {
    position: relative;
    margin: 0;
    padding: 1.25rem 1.4rem 1.25rem 3.6rem;
    background: var(--stein);
    border-radius: var(--radius);
}

.abschnitt-stein .stimme {
    background: var(--weiss);
}

.stimme p {
    margin: 0;
    font-style: italic;
}

.stimme-zeichen {
    position: absolute;
    top: 1.3rem;
    left: 1.2rem;
    width: 1.5rem;
    height: 1.5rem;
    fill: none;
    stroke: var(--rot);
    stroke-width: 1.5;
    color: var(--rot);
}

/* Auf /ausbildung: alle vier Stimmen im Raster */
.abschnitt > .breite > .stimmen {
    margin: 0;
}

@media (min-width: 56rem) {
    .abschnitt > .breite > .stimmen {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        align-items: start;
    }
}

/* --- Google-Stimmen --- */
.kundenstimmen {
    display: grid;
    gap: 1rem;
}

.kundenstimme {
    display: flex;
    flex-direction: column;
    margin: 0;
    padding: 1.5rem;
    background: var(--weiss);
    border-radius: var(--radius);
    box-shadow: var(--schatten);
}

.kundenstimme p {
    font-size: 1.1rem;
    color: var(--tinte);
}

.kundenstimme footer {
    margin-top: auto;
    font-size: 0.92rem;
    color: var(--text-leise);
}

@media (min-width: 48rem) {
    .kundenstimmen {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 1.25rem;
    }
}


/* === 9. Seitenkopf der Unterseiten, Brotkrumen ============================ */

.seitenkopf {
    padding-block: clamp(1.5rem, 4vw, 3rem) clamp(2rem, 5vw, 3.5rem);
    background: var(--stein);
}

.seitenkopf-innen {
    display: grid;
    gap: 1.5rem;
    align-items: center;
}

.seitenkopf h1 {
    margin-bottom: 0.4em;
}

.seitenkopf-satz {
    max-width: 36rem;
    font-size: 1.15rem;
}

.seitenkopf-bild {
    margin: 0;
}

.seitenkopf-bild img {
    width: 100%;
    aspect-ratio: 16 / 10;
    object-fit: cover;
    border-radius: var(--linse);
    box-shadow: var(--schatten);
}

@media (min-width: 56rem) {
    .seitenkopf-innen {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
        gap: clamp(2rem, 5vw, 4rem);
    }
}

.brotkrumen ol {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem 0.5rem;
    margin: 0 0 1rem;
    padding: 0;
    font-size: 0.92rem;
    color: var(--text-leise);
    list-style: none;
}

.brotkrumen li + li::before {
    content: "›";
    margin-right: 0.5rem;
    color: var(--logo-hell);
}

.brotkrumen a {
    color: var(--text-leise);
}


/* === 10. Leistungsseiten: Fließtext, Listen, Seitenleiste ================= */

.leistung-raster {
    display: grid;
    gap: 2.5rem;
    padding-block: var(--abstand);
}

.fliesstext {
    min-width: 0;
}

.fliesstext > p,
.fliesstext > ul,
.fliesstext > h2,
.fliesstext > h3 {
    max-width: 42rem;
}

.fliesstext h2 {
    margin-top: 1.6em;
    font-size: clamp(1.55rem, 3vw, 2rem);
}

.fliesstext > h2:first-child {
    margin-top: 0;
}

.leistung-text {
    hyphens: auto;
    overflow-wrap: break-word;
}

/* Liste mit roten Haken */
.hakenliste {
    margin: 0 0 1.5em;
    padding: 0;
    list-style: none;
}

.hakenliste li {
    position: relative;
    padding: 0.4rem 0 0.4rem 2rem;
}

.hakenliste li::before {
    content: "";
    position: absolute;
    top: 0.72rem;
    left: 0.3rem;
    width: 0.5rem;
    height: 0.9rem;
    border-right: 2.5px solid var(--rot);
    border-bottom: 2.5px solid var(--rot);
    transform: rotate(45deg);
}

/* Zwei Bilder nebeneinander (Bilder der bisherigen Website) */
.bildpaar {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.75rem;
    max-width: 42rem;
    margin: 2rem 0;
}

.bildpaar img,
.breitbild img {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    border-radius: var(--radius);
}

.breitbild {
    max-width: 42rem;
    margin: 2rem 0;
}

.breitbild img {
    aspect-ratio: 16 / 7;
}

/* Text mit rundem Prüfsiegel daneben */
.text-mit-siegel {
    display: grid;
    gap: 1rem;
    align-items: center;
    max-width: 42rem;
    margin: 1.5rem 0;
}

.text-mit-siegel p {
    margin: 0;
}

.siegel-rund {
    width: 8rem;
    border-radius: 50%;
}

@media (min-width: 36rem) {
    .text-mit-siegel {
        grid-template-columns: 8rem 1fr;
        gap: 1.5rem;
    }
}

.siegel-zeile img {
    width: 11rem;
}

/* Zitat aus der Landesbauordnung */
.zitatblock {
    max-width: 42rem;
    margin: 1.75rem 0;
    padding: 1.25rem 1.5rem;
    background: var(--stein);
    border-left: 4px solid var(--weiler-grau);
    border-radius: 0 var(--radius) var(--radius) 0;
}

.zitatblock blockquote {
    margin: 0;
}

.zitatblock figcaption {
    font-size: 0.92rem;
    font-weight: 600;
    color: var(--text-leise);
}

/* Smarthome: Morgens / Mittags / Abends */
.tageslauf {
    display: grid;
    gap: 1rem;
    max-width: 42rem;
    margin: 1.75rem 0;
}

.tageslauf div {
    padding: 1.1rem 1.3rem;
    background: var(--stein);
    border-radius: var(--radius);
}

.tageslauf dt {
    margin-bottom: 0.25rem;
    font-size: 1.35rem;
    font-stretch: var(--schmal);
    font-weight: 750;
    color: var(--tinte);
}

.tageslauf dd {
    margin: 0;
}

/* --- Seitenleiste --- */
.seitenleiste {
    display: grid;
    gap: 1.25rem;
    align-content: start;
}

.kontaktkasten {
    display: grid;
    gap: 0.75rem;
    padding: 1.5rem;
    background: var(--stein);
    border-radius: var(--radius);
}

.kontaktkasten h2 {
    margin: 0;
    font-size: 1.5rem;
}

.kontaktkasten p {
    margin: 0;
    color: var(--text-leise);
}

.weitere-leistungen {
    padding: 1.25rem;
    border: 1px solid var(--stein-linie);
    border-radius: var(--radius);
}

.weitere-leistungen h2 {
    margin-bottom: 0.5rem;
    font-size: 1.3rem;
}

.weitere-leistungen ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.weitere-leistungen a {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    padding: 0.55rem 0.5rem;
    text-decoration: none;
    border-radius: var(--radius-klein);
}

.weitere-leistungen a .symbol {
    color: var(--weiler-grau);
}

.weitere-leistungen a:hover {
    color: var(--tinte);
    background: var(--stein);
}

@media (min-width: 64rem) {
    .leistung-raster {
        grid-template-columns: minmax(0, 1fr) 20rem;
        gap: 4rem;
    }

    .seitenleiste {
        position: sticky;
        top: calc(var(--kopfhoehe) + 1.5rem);
    }
}


/* === 11. Galerie und Großansicht ========================================== */

.galerie {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
}

.galerie a {
    display: block;
    overflow: hidden;
    border-radius: var(--radius);
}

.galerie img {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    transition: transform 0.4s;
}

.galerie a:hover img {
    transform: scale(1.04);
}

@media (min-width: 48rem) {
    .galerie {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 1rem;
    }
}

.grossansicht {
    max-width: min(92vw, 70rem);
    overscroll-behavior: contain;
    padding: 0;
    overflow: visible;
    background: none;
    border: 0;
}

.grossansicht::backdrop {
    background: rgb(35 35 29 / 88%);
}

.grossansicht img {
    max-height: 82vh;
    width: auto;
    margin-inline: auto;
    border-radius: var(--radius);
}

.grossansicht-text {
    margin: 0.75rem 0 0;
    text-align: center;
    color: var(--weiss);
}

.grossansicht-schliessen,
.grossansicht-blaettern {
    position: absolute;
    display: grid;
    place-items: center;
    width: 3rem;
    height: 3rem;
    font-size: 1.8rem;
    line-height: 1;
    color: var(--tinte);
    background: var(--weiss);
    border: 0;
    border-radius: 50%;
    cursor: pointer;
    box-shadow: var(--schatten);
}

.grossansicht-schliessen {
    top: -1rem;
    right: -1rem;
}

.grossansicht-blaettern {
    top: 50%;
    transform: translateY(-50%);
}

.grossansicht-zurueck { left: -1rem; }
.grossansicht-weiter { right: -1rem; }

.grossansicht-blaettern[hidden] {
    display: none;
}


/* === 12. Kontakt, Formular, Karte ========================================= */

.kontakt-raster {
    display: grid;
    gap: 2rem;
    align-items: start;
}

@media (min-width: 60rem) {
    .kontakt-raster {
        grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr);
        gap: 3rem;
    }
}

.formular-karte {
    padding: clamp(1.25rem, 4vw, 2.25rem);
    background: var(--weiss);
    border: 1px solid var(--stein-linie);
    border-radius: var(--radius-gross);
    box-shadow: var(--schatten);
}

.formular-karte h2 {
    font-size: 1.9rem;
}

.feld {
    display: grid;
    gap: 0.35rem;
    margin-bottom: 1rem;
}

.feld-reihe {
    display: grid;
    gap: 0 1rem;
}

@media (min-width: 36rem) {
    .feld-reihe {
        grid-template-columns: 1fr 1fr;
    }
}

.feld label {
    font-weight: 600;
    color: var(--tinte);
}

.feld-zusatz {
    font-weight: 400;
    color: var(--text-leise);
}

.feld input,
.feld select,
.feld textarea {
    width: 100%;
    min-height: 3rem;
    padding: 0.65rem 0.9rem;
    font: inherit;
    color: var(--tinte);
    background: var(--weiss);
    border: 1.5px solid var(--logo-hell);
    border-radius: var(--radius-klein);
}

.feld textarea {
    resize: vertical;
}

.feld input:focus-visible,
.feld select:focus-visible,
.feld textarea:focus-visible {
    border-color: var(--tinte);
    outline: 3px solid rgb(224 11 28 / 35%);
    outline-offset: 1px;
}

.feld ::placeholder {
    color: #85847a;
}

.feld-haken {
    grid-template-columns: auto 1fr;
    align-items: start;
    gap: 0.7rem;
}

.feld-haken input {
    width: 1.3rem;
    min-height: 0;
    height: 1.3rem;
    margin-top: 0.2rem;
    accent-color: var(--rot);
}

.feld-haken label {
    font-weight: 400;
    color: var(--text);
}

/* Falle für Spam-Programme: unsichtbar, aber nicht per display:none */
.feld-falle {
    position: absolute;
    left: -9999px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

.meldung {
    margin: 0 0 1.25rem;
    padding: 1rem 1.2rem;
    border-radius: var(--radius-klein);
}

.meldung p {
    margin: 0.25rem 0 0;
}

.meldung-fehler {
    color: #7d0811;
    background: var(--rot-weich);
    border: 1px solid #f5b9b6;
}

.meldung-info {
    color: var(--tinte);
    background: #fff6d9;
    border: 1px solid #f0d78a;
}

.meldung-erfolg {
    color: #14532d;
    background: #e6f5ec;
    border: 1px solid #a9dcbc;
}

/* --- Kontaktdaten neben dem Formular --- */
.kontaktdaten {
    display: grid;
    gap: 1.25rem;
}

.anrufzeile {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1.25rem 1.4rem;
    color: var(--weiss);
    text-decoration: none;
    background: var(--rot);
    border-radius: var(--radius);
}

.anrufzeile:hover {
    color: var(--weiss);
    background: var(--rot-dunkel);
}

.anrufzeile-symbol {
    width: 2rem;
    height: 2rem;
}

.anrufzeile-titel {
    display: block;
    font-size: 0.95rem;
}

.anrufzeile-nummer {
    display: block;
    font-size: 1.8rem;
    font-stretch: 85%;
    font-weight: 750;
    line-height: 1.15;
}

.kontaktzeile {
    display: grid;
    grid-template-columns: 2.5rem 1fr;
    gap: 0.75rem;
    padding-bottom: 1.25rem;
    border-bottom: 1px solid var(--stein-linie);
}

.kontaktzeile:last-child {
    border-bottom: 0;
}

.kontaktzeile-symbol {
    width: 1.6rem;
    height: 1.6rem;
    margin-top: 0.1rem;
    color: var(--weiler-grau);
}

.kontaktzeile h2 {
    margin-bottom: 0.3rem;
    font-size: 1.3rem;
}

.kontaktzeile p,
.kontaktzeile address {
    margin-bottom: 0.4rem;
}

/* --- Karte (Zwei-Klick-Lösung) --- */
.einbettung {
    position: relative;
    display: grid;
    min-height: 22rem;
    overflow: hidden;
    background: var(--stein-linie);
    border-radius: var(--radius-gross);
}

.einbettung-hintergrund {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0.35;
    filter: grayscale(0.6) blur(2px);
}

.einbettung-inhalt {
    position: relative;
    display: grid;
    gap: 1rem;
    justify-items: center;
    align-content: center;
    max-width: 34rem;
    margin: auto;
    padding: 2rem 1.25rem;
    text-align: center;
}

.einbettung-hinweis {
    margin: 0;
    padding: 0.85rem 1rem;
    font-size: 0.92rem;
    background: rgb(255 255 255 / 92%);
    border-radius: var(--radius-klein);
}

.einbettung-hinweis a {
    display: block;
    margin-top: 0.35rem;
    font-weight: 600;
}

.einbettung.geladen iframe {
    width: 100%;
    height: 26rem;
    border: 0;
}


/* === 13. Rechtstexte, Fehlerseite ========================================= */

.rechtstext {
    max-width: calc(48rem + 2 * var(--rand));
    overflow-wrap: break-word;
    hyphens: auto;
}

.rechtstext h2 {
    margin-top: 1.8em;
    font-size: 1.55rem;
}

.rechtstext h3 {
    margin-top: 1.4em;
    font-size: 1.2rem;
}

.rechtstext ul {
    padding-left: 1.25rem;
}

.rechtstext li {
    margin-bottom: 0.35rem;
}

.impressum-raster {
    display: grid;
    gap: 0 2rem;
    margin-bottom: 1rem;
}

@media (min-width: 40rem) {
    .impressum-raster {
        grid-template-columns: 1fr 1fr;
    }
}

/* Widerspruchsrecht (auf der bisherigen Website gelb hinterlegt) */
.hervorgehoben {
    margin: 2rem 0;
    padding: 0.25rem 1.5rem 0.5rem;
    background: #fff6d9;
    border: 1px solid #f0d78a;
    border-radius: var(--radius);
}

.fehlerseite {
    max-width: calc(40rem + 2 * var(--rand));
    text-align: center;
}

.fehlerseite-dom {
    width: 8rem;
    margin: 0 auto 1.5rem;
}

.fehlerseite .knopfreihe {
    justify-content: center;
}


/* === 14. Aufruf und Seitenfuß ============================================= */

/* Der Abschnitt davor bringt seinen Abstand nach unten schon mit */
.aufruf {
    padding-block: 0 var(--abstand);
}

/* Endet die Seite mit einer grauen Fläche, braucht der Aufruf eigenen Abstand */
main:has(> :last-child:is(.abschnitt-stein, .seitenkopf)) + .aufruf {
    padding-top: var(--abstand);
}

.aufruf .breite.aufruf-innen {
    position: relative;
    display: grid;
    gap: 1.25rem;
    width: calc(100% - 2 * var(--rand));
    max-width: var(--breite-max);
    padding: clamp(1.75rem, 4vw, 2.75rem) clamp(1.25rem, 4vw, 3rem);
    overflow: hidden;
    background: var(--stein);
    border-radius: var(--radius-gross);
}

/* Dom-Silhouette als ruhige Deko rechts unten */
.aufruf-dom {
    position: absolute;
    right: 1.5rem;
    bottom: -0.25rem;
    width: 9rem;
    opacity: 0.16;
    pointer-events: none;
}

.aufruf-text {
    position: relative;
}

.aufruf-text h2 {
    margin-bottom: 0.35em;
}

.aufruf-text p {
    margin: 0;
    color: var(--text-leise);
}

.aufruf .knopfreihe {
    position: relative;
}

@media (min-width: 56rem) {
    .aufruf .breite.aufruf-innen {
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: center;
        gap: 2.5rem;
    }

    .aufruf .breite.aufruf-innen {
        grid-template-columns: minmax(0, 1fr) 7.5rem auto;
        padding-bottom: 0;
    }

    .aufruf-dom {
        position: static;
        grid-column: 2;
        grid-row: 1;
        align-self: end;
        width: 7.5rem;
        opacity: 0.22;
    }

    .aufruf-text,
    .aufruf .knopfreihe {
        padding-bottom: clamp(1.75rem, 4vw, 2.75rem);
    }

    .aufruf-text {
        grid-column: 1;
        grid-row: 1;
    }

    .aufruf .knopfreihe {
        grid-column: 3;
        grid-row: 1;
    }
}

.fuss {
    color: #e7e6df;
    background: var(--weiler-tief);
}

.fuss a {
    color: var(--weiss);
}

.fuss a:hover {
    color: var(--weiss);
    text-decoration-color: var(--rot);
}

.fuss :focus-visible {
    outline-color: var(--weiss);
}

.fuss-innen {
    display: grid;
    gap: 2.25rem;
    padding-block: clamp(2.75rem, 6vw, 4.5rem);
}

.fuss h2 {
    margin-bottom: 0.8rem;
    font-size: 1.35rem;
    color: var(--weiss);
}

.fuss-name {
    font-size: 1.6rem;
}

.fuss address {
    margin-bottom: 1rem;
}

.fuss-kontaktliste,
.fuss-links {
    margin: 0;
    padding: 0;
    list-style: none;
}

.fuss-kontaktliste li {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    margin-bottom: 0.45rem;
}

.fuss-kontaktliste .symbol {
    color: var(--logo-hell);
}

.fuss-links li {
    margin-bottom: 0.4rem;
}

.fuss-links a {
    text-decoration: none;
}

.fuss-links a:hover {
    text-decoration: underline;
}

.fuss-links-klein {
    margin-top: 1.25rem;
}

.fuss .zeiten-liste div {
    border-bottom-color: rgb(255 255 255 / 14%);
}

.fuss-siegel p {
    color: #d4d3ca;
}

.fuss .siegel-reihe {
    margin: 1rem 0 0;
}

.fuss .siegel-reihe img {
    width: 9rem;
}

.fuss-unten {
    border-top: 1px solid rgb(255 255 255 / 14%);
}

.fuss-unten-innen {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 0.5rem 1.5rem;
    padding-block: 1.25rem 5.5rem;   /* unten Platz für den Popup-Knopf der Vorschau */
    font-size: 0.92rem;
}

.fuss-unten-innen p {
    margin: 0;
}

.fuss-unten-innen nav {
    display: flex;
    gap: 1.25rem;
}

@media (min-width: 40rem) {
    .fuss-innen {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 64rem) {
    .fuss-innen {
        grid-template-columns: 1.2fr 1fr 1fr 1.1fr;
        gap: 2.5rem;
    }

    .fuss-unten-innen {
        padding-bottom: 1.25rem;
    }
}


/* === 15. Weniger Bewegung, Druck ========================================== */

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }

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

@media print {
    .kopf,
    .aufruf,
    .fuss,
    .seitenleiste,
    .ausbildung-knopf,
    .buehne-dom {
        display: none;
    }

    body {
        font-size: 11pt;
        color: #000;
    }
}
