/*
 * Vorsicht.info – Avanta Layout Fix 1.0.10
 * Frontend-Regeln sind bewusst auf Avanta/Corpiva-Bereiche begrenzt.
 */

body.vialf-active,
body.vialf-active * {
    box-sizing: border-box;
}

/* Deutsche Schreibweise statt automatischer englischer Wortgroßschreibung. */
body.vialf-active.vialf-normalize-case .front-about2 .about-list-two li,
body.vialf-active.vialf-normalize-case .front-about2 .about-list-two li span,
body.vialf-active.vialf-normalize-case .dt_contact_location .location-item .list li,
body.vialf-active.vialf-normalize-case .dt_contact_location .location-item .list li span,
body.vialf-active.vialf-normalize-case .dt_service .services-item .title,
body.vialf-active.vialf-normalize-case .dt_service .services-item .title a,
body.vialf-active.vialf-normalize-case .dt_service .services-item p,
body.vialf-active.vialf-normalize-case .dt_service .services-item .link-btn,
body.vialf-active.vialf-normalize-case .dt_service--nine .item-title,
body.vialf-active.vialf-normalize-case .dt_service--nine .desc,
body.vialf-active.vialf-normalize-case .dt_posts .dt_post_item .title,
body.vialf-active.vialf-normalize-case .dt_posts .dt_post_item .title a,
body.vialf-active.vialf-normalize-case .dt_posts .dt_post_item .content,
body.vialf-active.vialf-normalize-case .dt_posts .dt_post_item .more-link,
body.vialf-active.vialf-normalize-case .dt_contact_location .dt-btn,
body.vialf-active.vialf-normalize-case .front-about2 .dt-btn,
body.vialf-active.vialf-normalize-case .front-faq .accordion__title,
body.vialf-active.vialf-normalize-case .front-faq .accordion__content {
    text-transform: none !important;
    font-variant-caps: normal !important;
}

/* Vom Customizer-Editor eingefügte Leerumbrüche entfernen. */
body.vialf-active.vialf-clean-breaks .front-about2 .about-list-two br,
body.vialf-active.vialf-clean-breaks .front-about2 .success-wrap br,
body.vialf-active.vialf-clean-breaks .front-about2 .dt-btn br,
body.vialf-active.vialf-clean-breaks .dt_contact_location .location-item .list > br,
body.vialf-active.vialf-clean-breaks .dt_contact_location .location-item .holder > br,
body.vialf-active.vialf-clean-breaks .dt_service .services-item br,
body.vialf-active.vialf-clean-breaks .dt_posts .dt_post_item .more-link br {
    display: none !important;
}

body.vialf-active.vialf-clean-breaks .front-about2 p:empty,
body.vialf-active.vialf-clean-breaks .dt_contact_location .location-item .holder p:empty {
    display: none !important;
}

/* Buttons mit stabiler vertikaler und horizontaler Zentrierung. */
body.vialf-active.vialf-center-buttons .front-about2 .dt-btn,
body.vialf-active.vialf-center-buttons .dt_contact_location .dt-btn,
body.vialf-active.vialf-center-buttons .dt_service.dt_service--ten .link-btn {
    min-height: var(--vialf-button-height, 46px) !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    line-height: 1.2 !important;
}

/* Kompakte Listen. */
body.vialf-active.vialf-compact-lists .front-about2 .about-list-two .list-wrap li,
body.vialf-active.vialf-compact-lists .dt_contact_location .location-item .holder .list li {
    margin-top: 0 !important;
    margin-bottom: var(--vialf-list-gap, 8px) !important;
    line-height: 1.45 !important;
}

body.vialf-active.vialf-compact-lists .front-about2 .about-list-two .list-wrap li:last-child,
body.vialf-active.vialf-compact-lists .dt_contact_location .location-item .holder .list li:last-child {
    margin-bottom: 0 !important;
}

body.vialf-active.vialf-compact-lists .dt_contact_location .location-item .holder .list {
    margin-top: 1.8rem !important;
    padding-top: 1.8rem !important;
}

/* =========================================================
   Obere vier Informationskarten – Avanta Information 5
   ========================================================= */
body.vialf-active.vialf-information .front-info.dt_service--nine .dt-row.dt-g-5 {
    align-items: stretch;
}

body.vialf-active.vialf-information .front-info.dt_service--nine .dt-row.dt-g-5 > [class*="dt-col-"] {
    display: flex;
}

body.vialf-active.vialf-information .front-info.dt_service--nine .item-inner {
    width: 100%;
    min-width: 0;
    height: 100%;
    display: flex;
    flex-direction: column;
}

body.vialf-active.vialf-information .front-info.dt_service--nine .item-content,
body.vialf-active.vialf-information .front-info.dt_service--nine .item-content-inner {
    width: 100%;
    min-width: 0;
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
}

body.vialf-active.vialf-information .front-info.dt_service--nine .item-content-inner .desc {
    flex: 1 1 auto;
}

body.vialf-active.vialf-information .front-info.dt_service--nine .dt-more {
    flex: 0 0 auto;
    margin-top: 2rem !important;
}

/* =========================================================
   Kooperations-/Standortkarten
   ========================================================= */
body.vialf-active.vialf-location .dt_contact_location .dt-row.dt-g-4 {
    align-items: stretch;
}

body.vialf-active.vialf-location .dt_contact_location .dt-row.dt-g-4 > [class*="dt-col-"] {
    display: flex;
}

body.vialf-active.vialf-location .dt_contact_location .location-item {
    width: 100%;
    min-width: 0;
    height: 100%;
    display: flex;
    flex-direction: column;
}

body.vialf-active.vialf-location .dt_contact_location .location-item .holder {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
}

body.vialf-active.vialf-location .dt_contact_location .location-item .holder .list {
    flex: 0 0 auto;
    margin-bottom: var(--vialf-location-button-gap, 18px) !important;
}

body.vialf-active.vialf-location .dt_contact_location .location-item .holder .dt-btn {
    margin-top: auto !important;
    align-self: flex-start;
}

body.vialf-active.vialf-location-images .dt_contact_location .location-item .image {
    width: 100%;
    aspect-ratio: var(--vialf-location-ratio, 4 / 3);
    overflow: hidden;
}

body.vialf-active.vialf-location-images .dt_contact_location .location-item .image img {
    width: 100% !important;
    height: 100% !important;
    display: block;
    object-fit: cover;
    object-position: center;
}

/* =========================================================
   Präventions-/Leistungskarten
   ========================================================= */
body.vialf-active.vialf-services .front-services .dt-row.dt-g-4,
body.vialf-active.vialf-services .page-services .dt-row.dt-g-4 {
    align-items: stretch;
}

body.vialf-active.vialf-services .front-services .dt-row.dt-g-4 > [class*="dt-col-"],
body.vialf-active.vialf-services .page-services .dt-row.dt-g-4 > [class*="dt-col-"] {
    display: flex;
}

body.vialf-active.vialf-services .front-services .services-item,
body.vialf-active.vialf-services .page-services .services-item {
    width: 100%;
    min-width: 0;
    height: 100%;
    display: flex;
    flex-direction: column;
}

body.vialf-active.vialf-services .dt_service.dt_service--ten .services-content {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
}

body.vialf-active.vialf-services .dt_service.dt_service--ten .services-info {
    width: 100%;
    flex: 1 1 auto;
    display: flex !important;
    flex-direction: column;
}

body.vialf-active.vialf-services .dt_service.dt_service--ten .services-info p {
    flex: 1 1 auto;
}

body.vialf-active.vialf-services .dt_service.dt_service--ten .link-btn {
    margin-top: auto !important;
    flex: 0 0 auto;
    font-size: var(--vialf-service-button-font, 15px) !important;
    font-weight: 700 !important;
    letter-spacing: 0.01em;
    padding-left: 1.8rem !important;
    padding-right: 1.8rem !important;
}

body.vialf-active.vialf-services .dt_service.dt_service--six .services-content {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
}

body.vialf-active.vialf-services .dt_service.dt_service--six .services-inner {
    flex: 1 1 auto;
}

body.vialf-active.vialf-services .dt_service.dt_service--six .link-btn,
body.vialf-active.vialf-services .dt_service.dt_service--eight .link-btn,
body.vialf-active.vialf-services .dt_service:not(.dt_service--six):not(.dt_service--eight):not(.dt_service--ten) .link-btn {
    margin-top: auto !important;
    font-size: var(--vialf-service-button-font, 15px) !important;
}

body.vialf-active.vialf-services .dt_service.dt_service--eight .services-content {
    flex: 1 1 auto;
}

body.vialf-active.vialf-services .dt_service.dt_service--eight .services-info {
    min-width: 0;
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
}

body.vialf-active.vialf-services .dt_service.dt_service--eight .services-info p {
    flex: 1 1 auto;
}

body.vialf-active.vialf-services .dt_service:not(.dt_service--six):not(.dt_service--eight):not(.dt_service--ten) .services-content {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
}

body.vialf-active.vialf-service-images .front-services .services-image,
body.vialf-active.vialf-service-images .page-services .services-image {
    width: 100%;
    aspect-ratio: var(--vialf-service-ratio, 4 / 3);
    overflow: hidden;
}

body.vialf-active.vialf-service-images .front-services .services-image img,
body.vialf-active.vialf-service-images .page-services .services-image img {
    width: 100% !important;
    max-height: none !important;
    height: 100% !important;
    display: block;
    object-fit: cover;
    object-position: center;
}


/* =========================================================
   Timeline / „Vom Erkennen zum sicheren Handeln“
   Avanta erzwingt standardmäßig 42rem Bildhöhe. Diese Regeln
   geben die Kontrolle an das Plugin zurück.
   ========================================================= */
body.vialf-active.vialf-timeline-images .front-timeline .work-item {
    align-items: stretch;
}

body.vialf-active.vialf-timeline-images .front-timeline .work-item .work-img {
    min-width: 0;
    overflow: hidden;
    background: transparent;
}

body.vialf-active.vialf-timeline-images .front-timeline .work-item .work-img img {
    width: 100% !important;
    max-width: 100% !important;
    max-height: none !important;
    display: block !important;
    image-rendering: auto;
}

@media (max-width: 991px) {
    body.vialf-active.vialf-timeline-images .front-timeline .work-item .work-img {
        width: 100%;
        flex-basis: auto;
    }
}

/* =========================================================
   FAQ / Fragen-Bereich
   ========================================================= */
body.vialf-active.vialf-faq .front-faq .dt-row {
    align-items: flex-start;
}

body.vialf-active.vialf-faq .front-faq .accordion {
    overflow: hidden;
}

body.vialf-active.vialf-faq .front-faq .accordion.vialf-empty-faq {
    display: none !important;
}

body.vialf-active.vialf-faq .front-faq .accordion__title {
    min-height: 58px;
    display: flex;
    align-items: center;
    padding-top: 1.6rem;
    padding-bottom: 1.6rem;
}

body.vialf-active.vialf-faq .front-faq .accordion__content p {
    line-height: 1.7;
}

body.vialf-active.vialf-faq .front-faq .accordion_img img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    object-position: center;
}


/* FAQ-Bild nicht mit der Accordion-Höhe strecken.
   Avanta setzt die Bildbox standardmäßig auf height:100%; dadurch wird das
   Bild bei jeder geöffneten Frage größer und durch object-fit:cover stärker
   beschnitten. In diesem Modus bleibt die rechte Bildhälfte in natürlicher
   Größe und zeigt das vollständige Motiv. */
@media (min-width: 992px) {
    body.vialf-active.vialf-faq-fixed-image .front-faq.dt_accordion--one .accordion_img {
        position: absolute !important;
        top: 0 !important;
        right: 0 !important;
        bottom: auto !important;
        width: 50% !important;
        height: auto !important;
        min-height: 0 !important;
        max-height: none !important;
        overflow: hidden !important;
    }

    body.vialf-active.vialf-faq-fixed-image .front-faq.dt_accordion--one .accordion_img img {
        display: block !important;
        width: 100% !important;
        height: auto !important;
        min-height: 0 !important;
        max-height: none !important;
        object-fit: contain !important;
        object-position: center top !important;
    }
}



/* FAQ-Bild als Desktop-Sticky-Element.
   Nur Geräte mit Maus/Trackpad (hover + fine pointer): Smartphones und
   Touch-Tablets erhalten bewusst kein Sticky-Verhalten. Das Bild beginnt
   auf Höhe der ersten sichtbaren Frage, bleibt beim Scrollen im Blick und
   verlässt den Viewport erst zusammen mit dem FAQ-Bereich.

   Wichtig für Safari/WebKit: Avanta setzt auf .dt_accordion--one
   overflow:hidden. Das erzeugt einen eigenen Scroll-Container und verhindert
   dort position:sticky. Im Sticky-Modus geben wir den Überlauf frei. */
body.vialf-active.vialf-faq-sticky-image .front-faq.dt_accordion--one.vialf-faq-sticky-ready {
    overflow: visible !important;
}

body.vialf-active.vialf-faq-sticky-image .front-faq.dt_accordion--one.vialf-faq-sticky-ready .dt-container,
body.vialf-active.vialf-faq-sticky-image .front-faq.dt_accordion--one.vialf-faq-sticky-ready .dt-row,
body.vialf-active.vialf-faq-sticky-image .front-faq.dt_accordion--one.vialf-faq-sticky-ready .vialf-faq-image-col {
    overflow: visible !important;
}
body.vialf-active.vialf-faq-sticky-image .front-faq.dt_accordion--one.vialf-faq-sticky-ready .vialf-faq-image-col {
    position: relative !important;
    align-self: stretch !important;
    min-height: var(--vialf-faq-image-column-min-height, 0px) !important;
    height: auto !important;
    padding-top: var(--vialf-faq-intro-offset, 0px) !important;
}

body.vialf-active.vialf-faq-sticky-image .front-faq.dt_accordion--one.vialf-faq-sticky-ready .vialf-faq-image-col .accordion_img {
    position: sticky !important;
    top: var(--vialf-faq-sticky-top, 110px) !important;
    right: auto !important;
    bottom: auto !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: calc(100vh - var(--vialf-faq-sticky-top, 110px) - 24px) !important;
    max-height: calc(100svh - var(--vialf-faq-sticky-top, 110px) - 24px) !important;
    overflow: visible !important;
    display: flex !important;
    align-items: flex-start !important;
    justify-content: center !important;
}

body.vialf-active.vialf-faq-sticky-image .front-faq.dt_accordion--one.vialf-faq-sticky-ready .vialf-faq-image-col .accordion_img img {
    display: block !important;
    width: auto !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: calc(100vh - var(--vialf-faq-sticky-top, 110px) - 24px) !important;
    max-height: calc(100svh - var(--vialf-faq-sticky-top, 110px) - 24px) !important;
    object-fit: contain !important;
    object-position: center top !important;
}

/* =========================================================
   Beitragskarten
   ========================================================= */
body.vialf-active.vialf-posts .dt_posts .dt-row.dt-g-4 {
    align-items: stretch;
}

body.vialf-active.vialf-posts .dt_posts .dt-row.dt-g-4 > [class*="dt-col-"] {
    display: flex;
}

body.vialf-active.vialf-posts .dt_posts .dt_post_item {
    width: 100%;
    min-width: 0;
    height: 100%;
    display: flex;
    flex-direction: column;
}

body.vialf-active.vialf-posts .dt_posts .dt_post_item .inner {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
}

body.vialf-active.vialf-posts .dt_posts .dt_post_item .content {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
}

body.vialf-active.vialf-posts .dt_posts .dt_post_item .more-link {
    margin-top: auto !important;
    align-self: flex-start;
}

body.vialf-active.vialf-post-images .dt_posts .dt_post_item .image {
    width: 100%;
    aspect-ratio: var(--vialf-post-ratio, 16 / 9);
    overflow: hidden;
}

body.vialf-active.vialf-post-images .dt_posts .dt_post_item .image img {
    width: 100% !important;
    height: 100% !important;
    display: block;
    object-fit: cover;
    object-position: center;
}

body.vialf-active .dt_posts .vialf-post-placeholder {
    position: relative;
    display: grid;
    place-items: center;
    overflow: hidden;
    background:
        radial-gradient(circle at 20% 20%, rgba(var(--dt-main-rgb), .18), transparent 38%),
        linear-gradient(135deg, #f8fbfb 0%, #eaf4f4 100%);
}

body.vialf-active .dt_posts .vialf-post-placeholder::after {
    content: "";
    position: absolute;
    width: 170px;
    height: 170px;
    border: 1px solid rgba(var(--dt-main-rgb), .16);
    border-radius: 50%;
    right: -55px;
    bottom: -75px;
}

body.vialf-active .dt_posts .vialf-post-placeholder img {
    width: min(92px, 28%) !important;
    height: auto !important;
    object-fit: contain !important;
    position: relative;
    z-index: 1;
}

body.vialf-active .dt_posts .vialf-post-placeholder span {
    color: var(--dt-secondary-color);
    font-weight: 800;
    font-size: 1.8rem;
    position: relative;
    z-index: 1;
}

/* Der JavaScript-Fallback setzt ausschließlich min-height. */
body.vialf-active .vialf-js-equalized {
    transition: min-height .16s ease;
}

/* Frühere manuelle Abstandshalter werden neutralisiert. */
body.vialf-active .dt_contact_location .koop-ausgleich,
body.vialf-active .dt_contact_location .koop-ausgleich::before,
body.vialf-active .dt_contact_location .koop-ausgleich::after {
    display: none !important;
    content: none !important;
    height: 0 !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
}

@media (max-width: 991px) {
    body.vialf-active.vialf-information .front-info.dt_service--nine .item-inner,
    body.vialf-active.vialf-location .dt_contact_location .location-item,
    body.vialf-active.vialf-services .front-services .services-item,
    body.vialf-active.vialf-services .page-services .services-item,
    body.vialf-active.vialf-posts .dt_posts .dt_post_item {
        min-height: 0 !important;
        height: auto;
    }
}


/* =========================================================
   Präventionsthemen / Skill-Balken
   ========================================================= */
body.vialf-active .front-skill.vialf-skillbars-topics .dt_skillbars-main {
    overflow: visible;
}

body.vialf-active .front-skill.vialf-skillbars-topics .dt_skillbars-percent {
    display: none !important;
}

body.vialf-active .front-skill.vialf-skillbars-live .dt_skillbars-line {
    will-change: width;
}

body.vialf-active .front-skill.vialf-skillbars-static .dt_skillbars-line {
    width: 100% !important;
    transition: none !important;
}

@media (prefers-reduced-motion: reduce) {
    body.vialf-active .front-skill.vialf-skillbars-live .dt_skillbars-line {
        width: 100% !important;
        transition: none !important;
    }
}

/* =========================================================
   FAQ Sticky 1.0.9 – Bild vollständig im Viewport halten
   =========================================================
   Ein Sticky-Element, das höher als der verfügbare Viewport ist, wird vom
   Browser beim Scrollen zwangsläufig verschoben. Dadurch war später nur noch
   der untere Bildteil sichtbar. Im Desktop-Sticky-Modus wird das FAQ-Bild nun
   proportional auf die verfügbare Viewport-Höhe begrenzt und bleibt dadurch
   während des gesamten Sticky-Zeitraums vollständig sichtbar. */
@media (min-width: 992px) and (hover: hover) and (pointer: fine) {
    body.vialf-active.vialf-faq-sticky-image .front-faq.dt_accordion--one.vialf-faq-sticky-ready .vialf-faq-image-col .accordion_img {
        display: flex !important;
        align-items: flex-start !important;
        justify-content: center !important;
        max-height: calc(100vh - var(--vialf-faq-sticky-top, 110px) - 24px) !important;
    }

    body.vialf-active.vialf-faq-sticky-image .front-faq.dt_accordion--one.vialf-faq-sticky-ready .vialf-faq-image-col .accordion_img img {
        width: auto !important;
        max-width: 100% !important;
        height: auto !important;
        max-height: calc(100vh - var(--vialf-faq-sticky-top, 110px) - 24px) !important;
        object-fit: contain !important;
        object-position: center top !important;
    }
}
