/*
Theme Name: ZAS
Description: Design Theme der Zahnärzte am Stadtgarten
Author: Studio Orange
Author URI: https://studioorange.de
Template: uncode
Version: 1.2.0
Text Domain: zas
*/

/* ========================================
   1. Design Tokens (Custom Properties)
   ======================================== */
:root {
    /* Brand */
    --zas-teal: #006e73;
    --zas-teal-light: #669999;
    --zas-teal-dark: #284a4b;
    --zas-mint: #7bdcb5;
    --zas-accent-light: #0d9685;
    --zas-accent-medium: #25a196;

    /* Neutral */
    --zas-white: #ffffff;
    --zas-off-white: #f8f8f6;
    --zas-light-gray: #eaeaea;
    --zas-gray: #777777;
    --zas-dark: #222222;

    /* Typography */
    --zas-font-heading: 'Cormorant', Georgia, serif;
    --zas-font-body: 'Open Sans', -apple-system, sans-serif;

    /* Transitions */
    --zas-transition-fast: 0.2s ease;
    --zas-transition-base: 0.3s ease;
}


/* ========================================
   2. Local Fonts (DSGVO)
   ======================================== */
@font-face {
    font-display: swap;
    font-family: 'Open Sans';
    font-style: normal;
    font-weight: 400;
    src: url('fonts/open-sans-v36-latin-regular.woff2') format('woff2');
}
@font-face {
    font-display: swap;
    font-family: 'Open Sans';
    font-style: normal;
    font-weight: 500;
    src: url('fonts/open-sans-v36-latin-500.woff2') format('woff2');
}
@font-face {
    font-display: swap;
    font-family: 'Open Sans';
    font-style: normal;
    font-weight: 600;
    src: url('fonts/open-sans-v36-latin-600.woff2') format('woff2');
}
@font-face {
    font-display: swap;
    font-family: 'Cormorant';
    font-style: normal;
    font-weight: 400;
    src: url('fonts/cormorant-v21-latin-regular.woff2') format('woff2');
}
@font-face {
    font-display: swap;
    font-family: 'Cormorant';
    font-style: normal;
    font-weight: 500;
    src: url('fonts/cormorant-v24-latin-500.woff2') format('woff2');
}
@font-face {
    font-display: swap;
    font-family: 'Cormorant';
    font-style: normal;
    font-weight: 600;
    src: url('fonts/cormorant-v21-latin-600.woff2') format('woff2');
}


/* ========================================
   3. Layout — Einrückung & Viewport-Fix
   ======================================== */
.zas_hero,
.zas_indent {
    padding-left: max(20px, calc((100vw - 1000px) / 2)) !important;
}
.zas_hero {
    padding-right: 0 !important;
}
.zas_indent {
    padding-right: max(20px, calc((100vw - 1000px) / 2)) !important;
}
.zas_indent > .row-parent {
    padding-left: 0 !important;
    padding-right: 0 !important;
}

/* Bei <1200px greift der Bootstrap-Negativ-Margin am inneren Row-Wrapper falsch und
   schiebt no-h-padding- bzw. full-width-Sections links aus dem Viewport. Lösung:
   Negative Margins neutralisieren und stattdessen Padding wie beim Hero setzen,
   damit der Content im Content-Korridor (1000px) zentriert bleibt. */
@media (min-width: 960px) and (max-width: 1199px) {
    .full-width .wpb_row.row-inner,
    .row.no-h-padding > .wpb_row.row-inner {
        margin-left: 0 !important;
        margin-right: 0 !important;
        padding-left: 40px !important;
        padding-right: 40px !important;
    }
    /* Hero-Container braucht oben Atem zum Header (Uncode-Default ist hier 1px) */
    .row.one-top-padding {
        padding-top: 60px !important;
    }
}
@media (max-width: 959px) {
    .full-width .wpb_row.row-inner,
    .row.no-h-padding > .wpb_row.row-inner {
        margin-left: 0 !important;
        margin-right: 0 !important;
    }
}


/* ========================================
   4. Komponenten — Inline-Links im Fließtext
   Default: kein Underline → Hover: Underline erscheint von links
   ======================================== */
.uncode_text_column p a:not([data-toggle]),
.uncode_text_column li a:not([data-toggle]),
.page-body p a:not(.btn):not([data-toggle]),
.page-body li a:not(.btn):not([data-toggle]),
.uncont p a:not(.btn):not([data-toggle]),
.uncont li a:not(.btn):not([data-toggle]),
article p a:not(.btn):not([data-toggle]),
article li a:not(.btn):not([data-toggle]) {
    color: var(--zas-teal) !important;
    text-decoration: none !important;
    background-image: linear-gradient(currentColor, currentColor) !important;
    background-position: 0 100% !important;
    background-repeat: no-repeat !important;
    background-size: 0 1px !important;
    padding-bottom: 2px !important;
    transition: background-size 0.4s cubic-bezier(0.25, 0.45, 0.4, 1) !important;
}

.uncode_text_column p a:not([data-toggle]):hover,
.uncode_text_column li a:not([data-toggle]):hover,
.page-body p a:not(.btn):not([data-toggle]):hover,
.page-body li a:not(.btn):not([data-toggle]):hover,
.uncont p a:not(.btn):not([data-toggle]):hover,
.uncont li a:not(.btn):not([data-toggle]):hover,
article p a:not(.btn):not([data-toggle]):hover,
article li a:not(.btn):not([data-toggle]):hover {
    background-size: 100% 1px !important;
    background-position: 0 100% !important;
    color: inherit !important;
}

/* Inline-Links auf Akzent-/Teal-Hintergrund (z.B. Bewerbungs-Mail im
   Ansprechpartner-Block der Karriere-Seite): Mint wäre kontrastarm → nur die
   Farbe auf Weiß überschreiben. Die einfahrende Underline-Animation (background-
   size 0 → 100%) kommt aus Section 4 und nutzt currentColor, wird also weiß.
   Uncode erzwingt via body.textual-accent-color Mint auf Absatz-Links mit hoher
   Spezifität — daher exakt dieselbe Selektor-Struktur, nur zusätzlich auf
   .style-accent-bg verengt (schlägt sie um eine Klasse). */
body.textual-accent-color .post-content > div .style-accent-bg p:not(.entry-small):not(.panel-title):not(.t-entry-member-social) a:not(.btn):not(.unmenu-block *),
body.textual-accent-color .post-content > div .style-accent-bg p:not(.entry-small):not(.panel-title):not(.t-entry-member-social) a:not(.btn):not(.unmenu-block *):hover {
    color: #fff !important;
}


/* ========================================
   5. Komponenten — Inline-Links in Headings (H2)
   Verwendet z.B. in Uncode-Tile-Titles (Carousel-Cards).
   ======================================== */
h2 a,
.h2 a {
    color: var(--zas-teal) !important;
    text-decoration: none !important;
    position: relative;
    display: inline;
}

h2 a::after,
.h2 a::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: 0;
    width: 0;
    height: 2px;
    background: var(--zas-teal);
    transition: width var(--zas-transition-base);
}

h2 a:hover::after,
.h2 a:hover::after {
    width: 100%;
}


/* Icon-Box-Headings (Leistungs-Listing): keine Akzent-Farbe, kein Underline-Hover.
   Hover färbt nur das Wort um. */
.icon-box-heading :is(h2, h3, .h2, .h3) a,
.icon-box-heading :is(h2, h3, .h2, .h3) a:visited {
    color: inherit !important;
}
.icon-box-heading :is(h2, h3, .h2, .h3) a::after {
    display: none !important;
}
.icon-box-heading :is(h2, h3, .h2, .h3) a:hover {
    color: var(--zas-accent-medium) !important;
}


/* ========================================
   6. Komponenten — Footer-Links Override
   Inline-Pattern aus Sektion 4 im Footer ausschalten.
   ======================================== */
footer .uncont p a:not(.btn):not([data-toggle]),
footer .uncont li a:not(.btn):not([data-toggle]),
footer p a,
footer li a {
    color: var(--zas-white) !important;
    background-image: none !important;
    padding-bottom: 0 !important;
    transition: opacity var(--zas-transition-base) !important;
}

footer .uncont p a:not(.btn):not([data-toggle]):hover,
footer .uncont li a:not(.btn):not([data-toggle]):hover,
footer p a:hover,
footer li a:hover {
    color: var(--zas-white) !important;
    opacity: 0.7;
}


/* ========================================
   7. Komponenten — ZAS-Link mit fester Underline
   Nur manuell via .zas-link. tel:/mailto: nutzen das normale Inline-Pattern (Sektion 4).
   Default: Linie unter dem Link — Hover: zieht sich nach rechts zusammen.
   ======================================== */
:is(.page-body, .uncont) a.zas-link:not(.zas-btn-outline):not(.btn) {
    color: var(--zas-teal) !important;
    background-image: none !important;
    text-decoration: none !important;
    padding-bottom: 0 !important;
    position: relative;
    display: inline-block;
}
:is(.page-body, .uncont) a.zas-link:not(.zas-btn-outline):not(.btn)::before {
    content: "";
    position: absolute;
    left: 0;
    bottom: -2px;
    width: 100%;
    height: 2px;
    background: currentColor;
    pointer-events: none;
    transform-origin: 0% 50%;
    transform: scale3d(1, 1, 1);
    transition: transform 0.4s cubic-bezier(0.25, 0.45, 0.4, 1);
}
:is(.page-body, .uncont) a.zas-link:not(.zas-btn-outline):not(.btn):hover::before {
    transform-origin: 100% 50%;
    transform: scale3d(0, 1, 1);
}

/* Footer-Override für .zas-link: Mint-Farbe + dünnere Linie (Uncode-Standard) */
.site-footer a.zas-link:not(.zas-btn-outline):not(.btn) {
    color: var(--zas-mint) !important;
}
.site-footer a.zas-link:not(.zas-btn-outline):not(.btn)::before {
    height: 0.075em;
}


/* ========================================
   8. Komponenten — Outline-Button (ZAS-Mint)
   Verwendung: <a class="zas-btn-outline" href="…">Label</a>
   ======================================== */
a.zas-btn-outline,
a.zas-btn-outline:visited {
    display: inline-block;
    padding: 12px 24px;
    border: 2px solid var(--zas-mint);
    color: var(--zas-mint);
    background: transparent;
    font-family: var(--zas-font-body);
    font-size: 14px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    line-height: 1.2;
    text-decoration: none;
    transition: background var(--zas-transition-fast), color var(--zas-transition-fast);
}
a.zas-btn-outline:hover,
a.zas-btn-outline:focus {
    background: var(--zas-mint);
    color: var(--zas-white);
    text-decoration: none;
}


/* ========================================
   8a. Header — Mindestabstand unter dem Logo (site-weit)
   Damit das Logo auf Seiten mit farbigem Content-Hintergrund (Rechtsseiten,
   404) nicht direkt an der Fläche klebt. Wirksamer Hebel: .menu-container
   bestimmt die Header-Höhe → Content rückt entsprechend nach unten.
   ======================================== */
.navbar .menu-container {
    padding-bottom: 9px;
}


/* ========================================
   9. Komponenten — Navigation (Desktop)
   ======================================== */
@media (min-width: 960px) {
    .top-menu.top-menu-padding .menu-bloginfo,
    .top-menu.top-menu-padding .menu-smart > li > a {
        padding-top: 9px;
        padding-bottom: 9px;
    }

    /* Logo-Container ohne Uncode-Standard-Padding (27px) */
    body.menu-custom-padding .col-lg-0.logo-container {
        padding: 0;
    }
}

/* Sprechzeiten-Bereich oben rechts: Mint-Hintergrund, weiße Schrift, unten abgerundet */
.menu-bloginfo {
    background-color: var(--zas-mint);
    color: var(--zas-white);
    border-bottom-left-radius: 3px;
    border-bottom-right-radius: 3px;
}
.menu-bloginfo .zas-sprechzeit,
.menu-bloginfo .zas-sprechzeit__label,
.menu-bloginfo .zas-sprechzeit__time,
.menu-bloginfo .zas-sprechzeit--closed .zas-sprechzeit__time {
    color: var(--zas-white);
}

/* Mobile: Sprechzeit-Box rechtsbündig statt zentriert */
@media (max-width: 959px) {
    .topbar-col-right {
        justify-content: flex-end !important;
    }
}


/* ========================================
   10. Komponenten — Scroll-to-Top & Footer
   ======================================== */
a.scroll-top {
    color: var(--zas-mint) !important;
}
a.scroll-top .fa-stack {
    background-color: var(--zas-dark) !important;
    color: var(--zas-white) !important;
    border-color: var(--zas-dark) !important;
}
.style-color-210407-bg .uncode-vc-social a:hover {
    color: var(--zas-mint) !important;
}

/* Uncode-Default-Footer-Bottom ausblenden (Copyright + Social rendert bereits im WPBakery-Footer) */
footer .footer-last {
    display: none !important;
}


/* ========================================
   11. Komponenten — Sprechzeiten-Widget [zas_sprechzeiten]
   ======================================== */
.zas-sprechzeit {
    display: inline-flex;
    flex-direction: row;
    align-items: center;
    gap: 8px;
    line-height: 1;
    font-family: var(--zas-font-body);
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    white-space: nowrap;
    vertical-align: middle;
}
.zas-sprechzeit__label {
    font-weight: 500;
}
.zas-sprechzeit__time {
    color: var(--zas-mint);
    font-weight: 600;
}
.zas-sprechzeit--closed .zas-sprechzeit__time {
    color: var(--zas-gray);
}


/* ========================================
   12. Komponenten — Karten-Widget [zas_karte] (Leaflet)
   ======================================== */
.zas-karte {
    width: 100%;
    min-height: 320px;
    background: #f5f5f5;
}
.zas-karte .leaflet-container {
    font-family: var(--zas-font-body);
}
.zas-karte .leaflet-popup-content {
    margin: 12px 16px;
    line-height: 1.5;
}


/* ========================================
   12a. Termin-Tab — sticky rechts, Quadrat, slidet bei Hover „Termin buchen" ein
   ======================================== */
.zas-termin-tab {
    position: fixed !important;
    left: 0 !important;
    right: auto !important;
    top: 400px !important;
    bottom: auto !important;
    z-index: 9998 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 60px !important;
    height: 60px !important;
    background: var(--zas-teal) !important;
    color: var(--zas-white) !important;
    text-decoration: none !important;
    border-top-right-radius: 3px;
    border-bottom-right-radius: 3px;
    font-family: var(--zas-font-body);
    font-size: 13px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    line-height: 1;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
    transition: width 0.35s cubic-bezier(0.25, 0.45, 0.4, 1),
                background var(--zas-transition-fast);
    overflow: hidden;
    white-space: nowrap;
}
.zas-termin-tab:hover,
.zas-termin-tab:focus {
    width: 220px !important;
    background: var(--zas-accent-medium) !important;
    color: var(--zas-white) !important;
    text-decoration: none !important;
}
.zas-termin-tab__icon {
    flex-shrink: 0;
    color: var(--zas-white);
}
.zas-termin-tab__text {
    max-width: 0;
    overflow: hidden;
    margin-left: 0;
    transition: max-width 0.35s cubic-bezier(0.25, 0.45, 0.4, 1),
                margin-left 0.35s cubic-bezier(0.25, 0.45, 0.4, 1);
}
.zas-termin-tab:hover .zas-termin-tab__text,
.zas-termin-tab:focus .zas-termin-tab__text {
    max-width: 200px;
    margin-left: 12px;
}


/* ========================================
   12b. ProvenExpert ProSeal — proseal-v2.js setzt position:fixed über Config.
   Desktop: Sigel bottom 10px rechts. Mobile (<768): bottom 90px.
   Scroll-up wird nach links unten verschoben, damit Sigel + Button nebeneinander stehen.
   ======================================== */
.footer-scroll-top {
    bottom: 10px !important;
}
@media (max-width: 767px) {
    .pe-pro-seal {
        transform: scale(0.85);
        transform-origin: bottom right;
    }
}


/* ========================================
   13. Page — Ärzte-Carousel (.zas_doctors)
   ======================================== */

/* Vertikale Zentrierung */
.tmb-content-lateral .t-inside {
    display: flex !important;
    align-items: center !important;
}
.tmb-content-lateral .t-entry-visual-cont {
    flex-shrink: 0;
}

/* Content-Box */
.zas_doctors .t-entry-text {
    max-width: 550px !important;
}

/* Titel (Arzt-Name) */
.zas_doctors .t-entry-title {
    font-family: var(--zas-font-body) !important;
    font-size: 20px !important;
    font-weight: 500 !important;
    color: var(--zas-accent-light) !important;
    margin-bottom: 2px !important;
    line-height: 1.3 !important;
}
.zas_doctors .t-entry-title a {
    color: var(--zas-accent-light) !important;
    text-decoration: none !important;
}

/* Claim (Custom Field) */
.zas_doctors .t-entry-cf-detail-855243 {
    font-family: var(--zas-font-heading) !important;
    font-style: normal !important;
    font-weight: 400 !important;
    font-size: 38px !important;
    color: var(--zas-dark) !important;
    margin-bottom: 12px;
    line-height: 1.4;
}

/* Übersichtsseite Zahnärzte — Claim kleiner als auf Homepage */
.zas_doctors.zas_arzt-uebersicht .t-entry-cf-detail-855243,
.zas_arzt-uebersicht .zas_doctors .t-entry-cf-detail-855243 {
    font-size: 31px !important;
    line-height: 1.2 !important;
}

/* Übersichtsseite Zahnärzte — Fach-Anker */
.zas_doctors .t-entry-cf-detail-105697 {
    font-size: 18px !important;
    line-height: 1.5 !important;
}

/* Kurztext */
.zas_doctors .t-entry-cf-detail-152844 {
    font-size: 18px !important;
    line-height: 1.75;
    margin-bottom: 14px;
}

/* "mehr erfahren" Link */
.zas_doctors a.btn.btn-link,
.zas_doctors a.btn.btn-link span {
    font-size: 16px !important;
    font-weight: 400 !important;
    color: var(--zas-accent-light) !important;
    text-decoration: none !important;
    position: relative;
    text-transform: none !important;
    letter-spacing: 0 !important;
}
.zas_doctors .btn-link::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: -1px;
    width: 100%;
    height: 1px;
    background: var(--zas-accent-light);
    transition: width var(--zas-transition-base);
}
.zas_doctors .btn-link:hover::after {
    width: 0;
}

/* Arrows — Kreise unten rechts */
.zas_doctors .owl-prev,
.zas_doctors .owl-next {
    top: auto !important;
    bottom: 0 !important;
    left: auto !important;
    margin: 0 !important;
    width: 40px !important;
    height: 40px !important;
    border: 1.5px solid var(--zas-teal) !important;
    border-radius: 50% !important;
    background: transparent !important;
    display: flex !important;
    align-items: center;
    justify-content: center;
    opacity: 1 !important;
    transition: background var(--zas-transition-fast);
    transform: none !important;
}
.zas_doctors .owl-prev {
    right: 130px !important;
}
.zas_doctors .owl-next {
    right: 56px !important;
}
.zas_doctors .owl-prev:hover,
.zas_doctors .owl-next:hover {
    background: var(--zas-teal) !important;
}

/* Arrow-Container — Reset für Icon-Zentrierung */
.zas_doctors .owl-nav-container {
    position: static !important;
    width: 0 !important;
    height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    border: none !important;
    background: none !important;
    overflow: visible !important;
}

/* Arrow-Icons — absolut zentriert im Kreis */
.zas_doctors .owl-prev i,
.zas_doctors .owl-next i {
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    transform: translate(-50%, -50%) !important;
    font-size: 22px !important;
    color: var(--zas-teal) !important;
    line-height: 1 !important;
    width: auto !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
}
.zas_doctors .owl-prev:hover i,
.zas_doctors .owl-next:hover i {
    color: var(--zas-white) !important;
}

/* Disabled State */
.zas_doctors .owl-prev.disabled,
.zas_doctors .owl-next.disabled {
    display: flex !important;
    opacity: 0.3 !important;
    pointer-events: none;
}


/* ========================================
   14. Page — Leistungs-Detailseiten
   ======================================== */

/* Hero: Leistungs-Label über der Headline */
.zas_leistung-label {
    font-family: var(--zas-font-body) !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    color: var(--zas-teal) !important;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    margin-bottom: 16px !important;
}

/* Hero: Intro-Text größer als Body */
.zas_leistung-intro p {
    font-size: 20px !important;
    line-height: 1.5 !important;
    color: var(--zas-dark);
    max-width: 700px;
}

/* Details-Sektion: gestapelte Blöcke */
.zas_leistung-details .zas_detail-item {
    padding-bottom: 28px;
    margin-bottom: 28px;
    border-bottom: 1px solid var(--zas-light-gray);
}
.zas_leistung-details .zas_detail-item:last-child {
    border-bottom: none;
    margin-bottom: 0;
    padding-bottom: 0;
}
.zas_leistung-details .zas_detail-item h3 {
    font-family: var(--zas-font-body) !important;
    font-size: 22px !important;
    font-weight: 500 !important;
    color: var(--zas-dark) !important;
    margin-bottom: 8px !important;
    line-height: 1.3 !important;
}
.zas_leistung-details .zas_detail-item p {
    font-size: 17px;
    line-height: 1.6;
    color: var(--zas-gray);
    margin-bottom: 0;
}

/* Accordion-Panels (FAQ etc.): linker Rand bündig, rechts eingerückt */
.panel-body {
    padding-left: 0;
    padding-right: 72px;
}


/* ========================================
   15. Page — Praxis-Seite Bento-Galerie (14px weiße Trennlinien)
   ::after vermeidet Tile-Höhen-Veränderung beim Stapeln.
   ======================================== */
body.page-id-132045 .isotope-container .tmb-iso .t-inside {
    position: relative;
}
body.page-id-132045 .isotope-container .tmb-iso .t-inside::after {
    content: '';
    position: absolute;
    inset: 0;
    border: 14px solid #fff;
    pointer-events: none;
    z-index: 5;
}


/* ========================================
   16. Page — Rechtsseiten H2-Styling (Impressum + Datenschutz)
   ======================================== */
body.page-id-131677 article h2,
body.page-id-131697 article h2 {
    font-family: var(--zas-font-body) !important;
    font-size: 20px !important;
    font-weight: 500 !important;
    line-height: 1.3 !important;
}


/* ========================================
   16a. H4 — serifenlose Schrift (Body-Font)
   Standard-H4 nutzt sonst die Serif (Cormorant); v.a. für die Unter-Über-
   schriften in den Rechtstexten. Explizite Uncode-Font-Klassen (z.B. auf den
   Benefit-Cards) bleiben dank höherer Spezifität unberührt.
   ======================================== */
h4 {
    font-family: var(--zas-font-body) !important;
}


/* ========================================
   17. Responsive — Tablet (<960px)
   ======================================== */
@media (max-width: 959px) {
    .zas_hero,
    .zas_indent {
        padding-left: 20px !important;
        padding-right: 20px !important;
    }

    /* Vertikale Section-Paddings halbieren — auf Mobile sonst 72px+72px+36px = ~180px Gap */
    .row.double-top-padding {
        padding-top: 36px !important;
    }
    .row.double-bottom-padding {
        padding-bottom: 36px !important;
    }

    .vc_row.zas_doctors .owl-prev {
        right: 120px !important;
    }
    .vc_row.zas_doctors .owl-next {
        right: 70px !important;
    }

    /* Mobile-Menu */
    .mobile-menu-button { transform: none; padding: 0; }
    .mobile-menu-button .lines,
    .mobile-menu-button .lines:before,
    .mobile-menu-button .lines:after { width: 45px; height: 1px; border-radius: 0; }

    body.open-overlay-menu .mobile-menu-button .lines { background: transparent !important; }
    body .mobile-menu-button .lines span { display: none !important; }

    body.open-overlay-menu .mobile-menu-button .lines:before,
    .lines-button.close .lines:before { transform: translate(0px, -9px) rotate(-45deg); top: 20px; }
    .lines-button.close .lines:after { transform: translate(0px, 9px) rotate(45deg); left: 0px; top: -15px; }

    #menu-main-menu li.active a,
    #menu-main-menu li:hover a { border-color: transparent; }

    .mobile-menu-button .lines:before { top: 14px; }
    .mobile-menu-button .lines:after { top: -14px; }
    .mmb-container { top: -2px; right: 20px; }

    .mobile-menu-button.lines-button.x2.close .lines:before,
    .mobile-menu-button.lines-button.x2.close .lines:after { width: 45px; }

    body.open-overlay-menu { overflow: hidden !important; }
    body.open-overlay-menu header .menu-container {
        position: fixed; height: 100%; overflow: auto;
        left: 0; top: 0; right: 0;
    }

    .menu-smart:not(.top-menu-enhanced-child) a { text-transform: none; }

    .nav-tabs.tab-active-anim:not(.tab-switch).switch-init .switcher-cursor,
    .nav-tabs.nav-tabs.tab-no-border:not(.tabs-vertical):not(.tab-switch).switch-init .switcher-cursor {
        background-color: var(--zas-white);
    }
}


/* ========================================
   18. Responsive — Mobile (<570px)
   ======================================== */
@media (max-width: 570px) {
    .zas_doctors .owl-prev,
    .zas_doctors .owl-next,
    .zas_doctors button.owl-prev,
    .zas_doctors button.owl-next {
        display: none !important;
        visibility: hidden !important;
    }
    .zas_doctors .owl-dots {
        display: flex !important;
        justify-content: center;
        margin-top: 20px;
    }
    .zas_doctors .tmb-content-lateral .t-inside {
        flex-direction: column !important;
    }
    .zas_doctors .t-entry-text {
        max-width: 100% !important;
        padding-top: 20px;
    }
    .zas_doctors .t-entry-cf-detail-855243 {
        font-size: 27px !important;
    }
}


/* ========================================
   19. Page — Logo-Wand „Weiterbildung" (Praxis)
   Uncode entsättigt die Galerie-Logos via .tmb-desaturated nur auf Desktop
   (.no-touch). Hier: einheitlicher Grauwert + gedämpfte Präsenz (opacity gleicht
   das unterschiedliche „Gewicht" der Quell-PNGs an), zusätzlich auf Mobile/Touch.
   opacity ist der Haupthebel — höher = präsenter, niedriger = dezenter.
   ======================================== */
body.page-id-132045 .tmb-desaturated .t-entry-visual img {
    filter: grayscale(100%) !important;   /* nur EIN Filter animieren = glatt */
    opacity: 0.7 !important;               /* echte CSS-opacity = GPU-kompositiert */
    /* transform MUSS mit rein — sonst springt Uncodes Hover-Zoom (scale 1→1.05) hart */
    transition: opacity 0.5s cubic-bezier(0.25, 0.45, 0.4, 1),
                filter 0.5s cubic-bezier(0.25, 0.45, 0.4, 1),
                transform 0.5s cubic-bezier(0.25, 0.45, 0.4, 1) !important;
}

body.page-id-132045 .tmb-desaturated .t-entry-visual:hover img {
    filter: grayscale(0%) !important;
    opacity: 1 !important;
}


/* ========================================
   20. Page — 404-Fehlerseite
   Dezenter grauer Hintergrund (Anlehnung an die Rechtsseiten-Optik),
   Suchfeld entfällt (Filter in functions.php), verwaiste Trennlinie ausblenden.
   ======================================== */
body.error404 .page-body {
    background: #eceeee !important;   /* überschreibt Uncodes weißes .style-light-bg */
}

body.error404 .separator-break {
    display: none !important;
}


/* ========================================
   21. Bewerbungsformular (Karriere) — Feld-Layout
   Name und Kontakt zweispaltig (je 100 % der Spalte), unter 768px einspaltig.
   ======================================== */
.zas-bewerbung .zas-bw-2col,
.zas-bewerbung .zas-bw-uploads {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.5rem;
}
.zas-bewerbung .zas-bw-2col > p {
    margin: 18px 0 0;   /* gleicher Oberabstand wie die Einzelfeld-Zeilen (Select) */
}
.zas-bewerbung input[type="text"],
.zas-bewerbung input[type="email"],
.zas-bewerbung input[type="tel"],
.zas-bewerbung select,
.zas-bewerbung input[type="file"] {
    width: 100%;
    box-sizing: border-box;
}
.zas-bewerbung hr {
    border: 0;
    border-top: 1px solid #e2e5e5;
    margin: 3rem 0;
}
.zas-bewerbung .zas-bw-consent {
    font-size: 0.9em;
    line-height: 1.1;
}
.zas-bewerbung .zas-bw-required {
    margin-top: 0.5rem;
    font-size: 13px;
    font-weight: 400;
}
@media (max-width: 767px) {
    .zas-bewerbung .zas-bw-2col,
    .zas-bewerbung .zas-bw-uploads {
        grid-template-columns: 1fr;
    }
}


/* ========================================
   22. Stellenanzeigen (Karriere) — Textbreite
   Fließtext der Job-Anzeigen auf max. 800px begrenzen (stabil im Theme,
   überlebt WP-Editor-Speichern; Uncodes Per-Spalten-Einstellung wird sonst
   beim Speichern zurückgesetzt).
   ======================================== */
#offene-stellen .uncode_text_column {
    max-width: 800px;
}
/* Karten-Padding vereinheitlichen: Uncode setzt bei ≤1499px 54px oben/unten,
   aber nur 36px links/rechts. Horizontal an die 54px angleichen (nur diese Karten). */
@media (min-width: 960px) and (max-width: 1499px) {
    #offene-stellen .uncell.double-block-padding {
        padding-left: 54px;
        padding-right: 54px;
    }
}

/* ========================================
   §23 Borlabs Cookie-Banner
   Gruppen-Beschreibung (Unterzeile) normal statt fett — nur der Gruppenname
   (Label: Essenziell/Statistik/Externe Medien) bleibt fett. Borlabs setzt die
   Beschreibung sonst auf font-weight:600.
   ======================================== */
.brlbs-cmpnt-consent-list-content p {
    font-weight: 400 !important;
}
/* Checkbox auf Höhe der Namenszeile ausrichten (Borlabs zentriert sie sonst
   mittig zum ganzen 2-Zeilen-Block). flex-start + 3px zentriert die 16px-Box
   auf der Namenszeile. */
.brlbs-cmpnt-consent-list-item {
    align-items: flex-start !important;
}
.brlbs-cmpnt-consent-list-item .brlbs-cmpnt-checkbox {
    margin-top: 3px !important;
}
