/*
Theme Name: Divi Child Theme
Description: A child theme to house custom coding which modifies the Divi parent theme by Elegant Themes. Includes default line numbers where the code was taken from in the parent theme.
Author: PERIMETRIK®
Author URI: https://perimetrik.de
Template: Divi
*/

/******************************************************
    01. Schriften
    02. Farben
    03. Allgemeine Schriftgrößen
    04. Allgemeine WordPress Einstellungen
    05. Header & Navigation
    06. Footer
    07. Image-Einstellungen
    08. Divi-Einstellungen
    09. Key Visual
    10. PCM Einstellungen
    11. Single Post Räume / Events / Anbieter / Downloads
    12. DSGVO Datenauszug
    13. Search Result Page
    14. Mobile Abstände
    15. TB Layout Abstände
    16. Gravity Form
    17. Search and Filter
    18. Divi Breakpoints Beispiele
*******************************************************/

/******************************************************
    01. Schriften
*******************************************************/

/* nunito-sans-300 - latin */
@font-face {
    font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: 'Nunito Sans';
    font-style: normal;
    font-weight: 300;
    src: url('/wp-content/themes/Divi-child/fonts/nunito-sans-v19-latin-300.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* nunito-sans-regular - latin */
@font-face {
    font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: 'Nunito Sans';
    font-style: normal;
    font-weight: 400;
    src: url('/wp-content/themes/Divi-child/fonts/nunito-sans-v19-latin-regular.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* nunito-sans-500 - latin */
@font-face {
    font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: 'Nunito Sans';
    font-style: normal;
    font-weight: 500;
    src: url('/wp-content/themes/Divi-child/fonts/nunito-sans-v19-latin-500.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* nunito-sans-600 - latin */
@font-face {
    font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: 'Nunito Sans';
    font-style: normal;
    font-weight: 600;
    src: url('/wp-content/themes/Divi-child/fonts/nunito-sans-v19-latin-600.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* nunito-sans-700 - latin */
@font-face {
    font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: 'Nunito Sans';
    font-style: normal;
    font-weight: 700;
    src: url('/wp-content/themes/Divi-child/fonts/nunito-sans-v19-latin-700.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* nunito-sans-800 - latin */
@font-face {
    font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: 'Nunito Sans';
    font-style: normal;
    font-weight: 800;
    src: url('/wp-content/themes/Divi-child/fonts/nunito-sans-v19-latin-800.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* nunito-sans-900 - latin */
@font-face {
    font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: 'Nunito Sans';
    font-style: normal;
    font-weight: 900;
    src: url('/wp-content/themes/Divi-child/fonts/nunito-sans-v19-latin-900.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* nunito-regular - latin */
/*@font-face {*/
/*    font-display: swap;*/
/*    font-family: 'Nunito-regular';*/
/*    font-style: normal;*/
/*    font-weight: 400;*/
/*    src: url('/wp-content/themes/Divi-child/fonts/nunito-v26-latin-regular.woff2') format('woff2');*/
/*}*/

/* Krona One-regular - latin */
/*@font-face {*/
/*    font-display: swap;*/
/*    font-family: 'KronaOne-regular';*/
/*    font-style: normal;*/
/*    font-weight: 400;*/
/*    src: url('/wp-content/themes/Divi-child/fonts/krona-one-v14-latin-regular.woff2') format('woff2');*/
/*}*/

/******************************************************
    02. Variablen Farben ind Schriftarten
*******************************************************/

:root {
    /* Farben */
    --dialog-rot: #c30000;
    --white: #ffffff;
    --black: #000000;
    --grey: #484848;
    --drama-rouge: #fd1d64;
    --vibrato-tuerkis: #03e39d;
    --deep-petrol: #006c69;
    --border-light: #c0c0c0;
    --shadow-soft: 0 6px 24px rgba(0, 0, 0, 0.08);

    /* Schriftarten */
    --font-primary: 'Nunito Sans';
    --font-fallback: Helvetica, Arial, Lucida, sans-serif;
    --font-primary-stack: var(--font-primary), var(--font-fallback);

    /* Schriftgewichte */
    --font-weight-light: 300;
    --font-weight-regular: 400;
    --font-weight-medium: 500;
    --font-weight-semibold: 600;
    --font-weight-bold: 700;
    --font-weight-extrabold: 800;
    --font-weight-black: 900;
}

/* Frontend-only Typografie */
h1,
h2,
h3{
    font-family: var(--font-primary-stack) !important;
    font-weight: var(--font-weight-bold) !important;
}

h4,
h5,
h6 {
    font-family: var(--font-primary-stack) !important;
    font-weight: var(--font-weight-semibold) !important;
}

body,
body input,
body textarea,
body select {
    font-family: var(--font-primary-stack) !important;
    font-weight: var(--font-weight-regular) !important;
}

body #main-header,
body #et-top-navigation,
body #top-menu li a,
body .sub-menu.dipi-collapse-opened li a {
    font-family: var(--font-primary-stack) !important;
    font-weight: var(--font-weight-extrabold) !important;
    letter-spacing: 2px !important;
}

body .et_pb_button {
    font-family: var(--font-primary-stack) !important;
    font-weight: var(--font-weight-regular) !important;
}

/******************************************************
    03. Allgemeine Schriftgrößen
*******************************************************/

:root {
    --h1-size-home: clamp(30px, 2.656vw, 34px);
    --h1-size: clamp(26px, 2.5vw, 32px);
    --h2-size: clamp(24px, 2.188vw, 28px);
    --h3-size: clamp(20px, 1.719vw, 22px);
    --h3-loop-size: clamp(16px, 1.406vw, 18px);
    --h4-size: clamp(18px, 1.563vw, 20px);
    --h5-size: clamp(16px, 1.25vw, 16px);
    --h6-size: clamp(14px, 1.094vw, 14px);

    --h1-line-height: 1.15;
    --h2-line-height: 1.2;
    --h3-line-height: 1.25;
    --h3-loop-line-height: 1.3;
    --h4-line-height: 1.3;
    --h5-line-height: 1.35;
    --h6-line-height: 1.4;

    --text-large: clamp(18px, 1.563vw, 20px);
    --text-standard: clamp(16px, 1.406vw, 18px);
    --text-small: clamp(14px, 1.25vw, 16px);
    --text-extra-small: clamp(12px, 1.094vw, 14px);

    --line-height-large: 1.45;
    --line-height-standard: 1.5;
    --line-height-small: 1.55;
}

h1 {
    font-size: var(--h1-size) !important;
    line-height: var(--h1-line-height) !important;
}
h2 {
    font-size: var(--h2-size) !important;
    line-height: var(--h2-line-height) !important;
}
h3 {
    font-size: var(--h3-size) !important;
    line-height: var(--h3-line-height) !important;
}
h4 {
    font-size: var(--h4-size) !important;
    line-height: var(--h4-line-height) !important;
}
h5 {
    font-size: var(--h5-size) !important;
    line-height: var(--h5-line-height) !important;
}
h6 {
    font-size: var(--h6-size) !important;
    line-height: var(--h6-line-height) !important;
}

.text-large {
    font-size: var(--text-large) !important;
    line-height: var(--line-height-large) !important;
}
body{
    font-size: var(--text-standard) !important;
    line-height: var(--line-height-standard) !important;
}
.text-small {
    font-size: var(--text-small) !important;
    line-height: var(--line-height-small) !important;
}

input,
textarea,
select {
    font-size: var(--text-small) !important;
}

.et_pb_button,
.et_pb_button,
.et-db #et-boc .et-l a.read-more-btn {
    font-size: var(--text-small) !important;
}

.coverbox-titel h2 { font-size: clamp(18px, 1.875vw, 24px) !important; }

h3.event-title, h3.kv-heading, h3.event-title, h3.anbieter-title, .et_pb_blurb h3, h3.ai-title, h3.kh-title, h3.eventtype-title-on-image, h3.et_pb_toggle_title,
.et-db #et-boc .et-l .table-content .et_pb_module_header, .et-db #et-boc .et-l .dl-title, .kv-list .kv-label {
    font-size: var(--h3-loop-size) !important;
    line-height: var(--h3-loop-line-height) !important;
    font-weight: var(--font-weight-bold) !important;
}
.searchandfilter h4 {
    font-size: clamp(16px, 1.406vw, 18px) !important;
}
.sf-label-checkbox, sf-meta-range {
    font-size: var(--text-small) !important;
}
.kv-list .kv-value, .et_pb_promo_description > div {
    font-size: var(--text-small) !important;
}

.table-content .et_pb_module_header .et_pb_promo_description {
    padding-bottom: 0 !important;
}

/******************************************************
    04. Allgemeine WordPress Einstellungen
*******************************************************/

h1,
h2,
h3,
h4,
h5,
h6,
body {
    -moz-hyphens: auto;
    -o-hyphens: auto;
    -webkit-hyphens: auto;
    -ms-hyphens: auto;
    hyphens: auto;
}

strong {
    font-weight: var(--font-weight-bold) !important;
}

::selection,
:-moz-selection {
    background: var(--dialog-rot);
    color: var(--white);
}

#catapult-cookie-bar {
    z-index: 999999999 !important;
}

/* WP Nav */
.wp-pagenavi .current {
    background: var(--dialog-rot);
    padding: 2px 8px;
}

.wp-pagenavi span.current {
    color: var(--white) !important;
}

.wp-pagenavi a,
.wp-pagenavi span {
    color: var(--dialog-rot) !important;
}

.wp-pagenavi a:hover {
    color: var(--black) !important;
}

/* Galerie Nav */
.et-pb-arrow-prev::before,
.et-pb-arrow-next::before {
    color: var(--black);
    background: rgba(255, 255, 255, 0.8);
}

/* Text Links */
.text-link {
    text-decoration: underline;
    font-weight: 500;
    color: var(--dialog-rot);
    background-color: var(--white);
    padding: 2px 4px;
    transition: background-color 0.3s ease, color 0.3s ease;
}

.text-link:hover,
.text-link:focus {
    outline: 2px solid var(--dialog-rot);
    background-color: var(--white);
    color: var(--dialog-rot);
    text-decoration: none;
}

.ext-link {
    text-decoration: none;
}

.ext-link:hover {
    border-bottom: 1px solid var(--dialog-rot);
}

.ext-link .fa-solid {
    margin-left: 0.35em;
    font-size: 0.9em;
}

.ext-link:focus-visible {
    outline: 2px solid var(--dialog-rot);
    outline-offset: 3px;
}

/* Screenreader-only */
.sr-only {
    position: absolute !important;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

#wpcf-group-merkmalsgruppe-anbieter .wpt-field-item .wpt-file-preview img {
    max-width: 150px !important;
}

/******************************************************
    05. Header & Navigation
*******************************************************/

@media screen and (max-width: 980px) {
    .et_header_style_left.et_pb_svg_logo #logo, .et_header_style_split header#main-header #dipi_logo, .et_header_style_centered header#main-header #logo {
        width: auto !important;
    }
}

header#main-header.et-fixed-header,
#main-header {
    -webkit-box-shadow: none !important;
    -moz-box-shadow: none !important;
    box-shadow: none !important;
}

#top-menu li ul.sub-menu li a{
    text-transform: none !important;
    font-weight: var(--font-weight-light) !important;
}
#top-menu li li {
    padding: 0px;
}
.nav li ul{
    padding: 0px;
}
#top-menu.nav li ul a:hover{
    font-weight: var(--font-weight-semibold) !important;
}

@media only screen and (max-width: 980px) {
    #top-menu-nav,
    #top-menu,
    #et_top_search {
        display: none;
    }

    #et_mobile_nav_menu {
        display: block;
    }
}

.et_mobile_menu {
    overflow-y: scroll !important;
    max-height: 80vh !important;
    -overflow-scrolling: touch !important;
    -webkit-overflow-scrolling: touch !important;
}

#top-menu-nav > ul > li > a:hover,
.et_mobile_menu li a:hover,
.nav ul li a:hover {
    background-color: transparent;
    opacity: 1;
}

.nav li a {
    font-weight: 400;
}

.nav li ul {
    width: 360px;
    border-top-width: 2px;
}

#top-menu li li a {
    width: 320px;
}

#top-menu li li ul {
    right: 360px !important;
    left: auto !important;
    top: -22px;
}

#top-menu li ul.sub-menu li a:before {
    opacity: 0;
}

#top-menu li ul.sub-menu li.current-menu-item > a {
    color: var(--dialog-rot);
}

.container {
    container-type: inline-size;
}

.et_header_style_left #page-container #logo {
    /*max-height: clamp(50px, 2.4cqi, 100px) !important;*/
    /*width: auto !important;*/
    height: auto;
    transition: max-height 0.2s ease;
    margin-left: -7px;
}

#et-top-navigation {
    padding-left: 0 !important;
}

/******************************************************
    06. Footer
*******************************************************/

#footer-bottom {
    padding: 15px 0;
}

.cta-title-underline-white h1::after,
.cta-title-underline-red h1::after,
.term-group-box h4:after {
    content: "";
    display: block;
    transition: 0.5s;
}

.cta-title-underline-white h1::after {
    width: 32%;
    padding-top: 20px;
    border-bottom: 2px solid var(--white);
    margin-bottom: 0;
}

.cta-title-underline-red h1::after {
    width: 220px;
    padding-top: 15px;
    border-bottom: 2px solid var(--dialog-rot);
    margin-bottom: 0;
}

.term-group-box h4:after {
    width: 80px;
    padding-top: 15px;
    border-bottom: 2px solid var(--dialog-rot);
    margin-bottom: 10px;
}

footer .et_pb_contact p input {
    padding: 10px;
}

footer .footer-title {
    padding-bottom: 20px;
    font-weight: bold;
}

footer p:empty {
    display: none;
}

/******************************************************
    07. Image-Einstellungen
*******************************************************/

.quadrat .et_pb_image_wrap,
.landscape .et_pb_image_wrap,
.portrait .et_pb_image_wrap {
    position: relative;
    display: block;
    overflow: hidden;
}

.quadrat .et_pb_image_wrap { aspect-ratio: 1 / 1; }
.landscape .et_pb_image_wrap { aspect-ratio: 3 / 2; }
.portrait .et_pb_image_wrap { aspect-ratio: 9 / 16; }

.quadrat .et_pb_image_wrap img,
.landscape .et_pb_image_wrap img,
.portrait .et_pb_image_wrap img {
    position: absolute;
    inset: 0;
    width: 100% !important;
    height: 100%;
    object-fit: cover;
}

.kontakt-list {
    padding: 0 !important;
}

.kontakt-list .kontakt-item,
.contact-wrapper,
.footer-contact-wrapper,
.event-fact {
    display: flex;
    align-items: flex-start;
    gap: 15px;
    margin-bottom: 5px;
}

.contact-wrapper .contact-icon {
    flex: 0 0 auto;
    font-size: 40px;
    line-height: 1;
    color:#484848;
    margin-top: 2px;
}

.footer-contact-wrapper .contact-icon,
.event-fact i {
    flex: 0 0 auto;
    font-size: 20px;
    line-height: 1;
    color: #484848;
    margin-top: 2px;
}

.kontakt-list .kontakt-item i {
    flex: 0 0 auto;
    font-size: 18px;
    line-height: 1;
    color: var(--dialog-rot);
    margin-top: 0;
}

.contact-wrapper .contact-title,
.footer-contact-wrapper .contact-title {
    font-weight: 700;
    line-height: 1.15;
    margin: 0 0 6px;
}

.kontakt-list .kontakt-item .kontakt-text {
    line-height: 1.15;
    margin: 0 0 6px;
}

.contact-wrapper .contact-link,
.footer-contact-wrapper .contact-link {
    display: inline-block;
    line-height: 1.35;
    text-decoration: none;
}

.contact-wrapper .contact-link:hover,
.contact-wrapper .contact-link:focus-visible,
.footer-contact-wrapper .contact-link:hover,
.footer-contact-wrapper .contact-link:focus-visible {
    text-decoration: underline;
}

/******************************************************
    08. Divi-Einstellungen
*******************************************************/

/* Galerie Modul */
.et_pb_bg_layout_light .et-pb-controllers a {
    background-color: var(--white) !important;
}

.et-pb-controllers {
    display: flex;
    justify-content: center;
    gap: 10px;
}

.et-pb-controllers a {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    width: 48px;
    height: 48px;
    font-size: 16px;
    border-radius: 50%;
    margin: 5px;
    background-color: var(--dialog-rot);
    text-decoration: none;
    color: var(--dialog-rot);
    transition: all 0.3s ease;
}

.et-pb-controllers a:hover,
.et-pb-controllers a:focus,
.et-pb-controllers .et-pb-active-control {
    background-color: var(--white);
    color: #fff;
    outline: none;
}

/* Toggle */
.et_pb_toggle {
    background: var(--white);
}

.et_pb_toggle_open .et_pb_toggle_title {
    border-bottom: 0 !important;
}

.et_pb_toggle_content .et_pb_button {
    float: right;
    background-color: var(--black) !important;
    border: 1px solid var(--white) !important;
    color: var(--white) !important;
}

.et_pb_toggle_content .et_pb_button:hover {
    background-color: var(--black) !important;
    border: 1px solid var(--white) !important;
    color: var(--white) !important;
}

.et_pb_toggle_close .et_pb_toggle_title::before,
.et_pb_toggle_open .et_pb_toggle_title::before {
    font-family: FontAwesome !important;
    font-weight: 900;
    color: var(--white);
}

.et_pb_toggle_close .et_pb_toggle_title::before {
    content: "\f107";
}

.et_pb_toggle_open .et_pb_toggle_title::before {
    content: "\f106";
    display: block !important;
}

/* Personenmodul */
.et_pb_team_member_image {
    max-width: 100%;
}

/* Blurb */
.et_pb_blurb_content {
    max-width: 100% !important;
    width: 100%;
}

.et_pb_blurb.pcm-hover-fade .pcm-hover-swap {
    position: relative;
    display: block;
    overflow: hidden;
    background: var(--grey);
}

/* Basisbild bestimmt die Höhe */
.et_pb_blurb.pcm-hover-fade .pcm-img-base {
    display: block;
    width: 100%;
    height: auto;
    opacity: 1;
    position: relative;
    z-index: 1;
    transform: scale(1);
    transition: opacity 0.7s ease-in-out, transform 0.9s ease-in-out;
    will-change: opacity, transform;
}

/* Hoverbild liegt deckungsgleich darüber */
.et_pb_blurb.pcm-hover-fade .pcm-img-hover {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    opacity: 0;
    z-index: 2;
    transform: scale(1.01);
    transition: opacity 0.7s ease-in-out, transform 0.9s ease-in-out;
    will-change: opacity, transform;
    pointer-events: none;
}

/* Vignette identisch zur Anbieter-Card */
.et_pb_blurb.pcm-hover-fade .pcm-hover-swap::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 3;
    background: radial-gradient(circle, rgba(0,0,0,0) 45%, rgba(0,0,0,0.35) 100%);
    opacity: 0;
    transition: opacity 0.45s ease;
    pointer-events: none;
}

/* Hover / Fokus */
.et_pb_blurb.pcm-hover-fade:hover .pcm-img-hover,
.et_pb_blurb.pcm-hover-fade:focus-within .pcm-img-hover {
    opacity: 1;
    transform: scale(1.06);
}

.et_pb_blurb.pcm-hover-fade:hover .pcm-img-base,
.et_pb_blurb.pcm-hover-fade:focus-within .pcm-img-base {
    opacity: 0;
    transform: scale(1.02);
}

.et_pb_blurb.pcm-hover-fade:hover .pcm-hover-swap::after,
.et_pb_blurb.pcm-hover-fade:focus-within .pcm-hover-swap::after {
    opacity: 1;
}

@media (prefers-reduced-motion: reduce) {
    .et_pb_blurb.pcm-hover-fade .pcm-img-base,
    .et_pb_blurb.pcm-hover-fade .pcm-img-hover,
    .et_pb_blurb.pcm-hover-fade .pcm-hover-swap::after {
        transition: none;
    }

    .et_pb_blurb.pcm-hover-fade .pcm-img-base,
    .et_pb_blurb.pcm-hover-fade .pcm-img-hover {
        transform: none !important;
    }
}

/* Nach oben Button */
.et_pb_scroll_top.et-pb-icon {
    text-align: center;
    background: var(--dialog-rot);
    text-decoration: none;
    position: fixed;
    z-index: 99999;
    bottom: 125px;
    right: 0;
    border-top-left-radius: 50px;
    border-bottom-left-radius: 50px;
    display: none;
    cursor: pointer;
    font-size: 35px;
    padding: 5px;
    color: var(--white);
}

.et_pb_scroll_top:before {
    content: '6';
}

/* Button */
.et_pb_button,
.et_pb_button:link,
.et_pb_button:visited,
.et-db #et-boc .et-l .et_pb_button,
.et-db #et-boc .et-l .et_pb_button:link,
.et-db #et-boc .et-l .et_pb_button:visited {
    text-decoration: none !important;
}

.et_pb_button_module_wrapper:has(.btn-inline) {
    display: inline-block;
    margin-right: 12px;
    margin-bottom: 0 !important;
    vertical-align: top;
}

.et_pb_button_module_wrapper:has(.btn-inline):last-child {
    margin-right: 0;
}

/******************************************************
    09. Key Visual
*******************************************************/

/******************************************************
    10. PCM Einstellungen
*******************************************************/

.et_pb_pcm_dynamic_content .et_pb_cpt_archive_grid .et_pb_row.et_pb_row_cpt,
.et_pb_pcm_dynamic_content .et_pb_cpt_archive_grid .et_pb_row.et_pb_row_cpt .et_pb_row,
.et_pb_pcm_dynamic_content .et_pb_cpt_archive_grid .et_pb_row,
.et-db #et-boc .et-l .et_pb_pcm_dynamic_content .et_pb_cpt_archive_grid .et_pb_row {
    width: 100% !important;
    max-width: 100% !important;
    padding-top: 0;
    padding-bottom: 16px;
}

.et_pb_pcm_dynamic_content .et_pb_cpt_archive_list .et_pb_row.et_pb_row_cpt,
.et_pb_pcm_dynamic_content .et_pb_cpt_archive_list .et_pb_row.et_pb_row_cpt .et_pb_row,
.et_pb_pcm_dynamic_content .et_pb_cpt_archive_list .et_pb_row,
.et-db #et-boc .et-l .et_pb_pcm_dynamic_content .et_pb_cpt_archive_list .et_pb_row {
    width: 100%;
    padding-top: 0;
    padding-bottom: 0;
}

.et_pb_pcm_dynamic_content .pcm-post-preview:first-of-type {
    padding-top: 0;
}

.et_pb_pcm_dynamic_content .pcm-post-preview:last-of-type {
    padding-bottom: 0;
}

.et_pb_pcm_dynamic_content p:empty,
.frontend-filter-tax-title-box p {
    display: none;
}

.et_pb_pcm_dynamic_content .pcm_dynamic_content .et_pb_button_module_wrapper {
    margin-top: 40px;
}

.et_pb_pcm_dynamic_content .loop-archive-title {
    margin-bottom: 20px;
}

.filterbox ul.clearfix {
    padding: 0 !important;
    display: block;
}

.filterbox li {
    border: none !important;
    font-weight: 500;
    text-align: center;
    font-size: 18px;
    color: var(--white) !important;
    background-color: var(--grey) !important;
    margin: 0 5px 5px 0 !important;
}

.filterbox li:hover,
.filterbox li.active {
    background-color: var(--dialog-rot) !important;
    color: var(--white) !important;
}

.filterbox li:last-child {
    margin-right: 0 !important;
}

/* PCM Image */
.pcm-image-wrapper {
    position: relative;
}

.pcm-image-wrapper > a {
    display: block;
    position: relative;
}

.pcm-image-wrapper .pcm-img {
    position: relative;
    overflow: hidden;
}

.pcm-image-wrapper picture,
.pcm-image-wrapper img {
    display: block;
    width: 100%;
}

.pcm-image-wrapper img {
    height: auto;
    transform: scale(1);
    transition: transform 0.9s ease-in-out;
    will-change: transform;
}

.pcm-image-wrapper .pcm-img::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 2;
    background: radial-gradient(circle, rgba(0,0,0,0) 45%, rgba(0,0,0,0.35) 100%);
    opacity: 0;
    transition: opacity 0.45s ease;
    pointer-events: none;
}

.pcm-image-wrapper .badge-image {
    z-index: 3 !important;
}

.pcm-image-wrapper:hover .pcm-img::after,
.pcm-image-wrapper:focus-within .pcm-img::after {
    opacity: 1;
}

.pcm-image-wrapper:hover img,
.pcm-image-wrapper:focus-within img {
    transform: scale(1.06);
}

@media (prefers-reduced-motion: reduce) {
    .pcm-image-wrapper .pcm-img::after,
    .pcm-image-wrapper img {
        transition: none;
    }

    .pcm-image-wrapper:hover img,
    .pcm-image-wrapper:focus-within img {
        transform: none !important;
    }
}


/******************************************************
    11. Single Post Räume / Events / Anbieter / Downloads
*******************************************************/

.et_pb_toggle_content .kv-heading {
    border-bottom: 2px solid var(--dialog-rot);
    margin-bottom: 10px;
    width: max-content;
}

/* Key-Value Liste */
.kv-list {
    padding-bottom: 0;
}

.kv-list:last-child {
    border-bottom: none;
    padding-bottom: 0;
}

.kv-list .kv-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: 1rem;
    row-gap: 0.35rem;
    align-items: start;
    padding-bottom: 10px;
}

.kv-list .kv-row .kv-label {
    font-weight: 700;
    text-align: left;
}

.kv-list .kv-row .kv-value {
    text-align: left;
}

@media (max-width: 640px) {
    .kv-list .kv-row {
        grid-template-columns: 1fr;
    }
}

/* Downloads */
.downloads-list {
    list-style: none !important;
    margin: 0;
    padding: 0 !important;
    display: grid;
    grid-template-columns: 1fr;
    row-gap: 0.5rem;
}

.download-link {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    color: inherit;
}

.download-icon {
    width: 1.1rem;
    height: 1.1rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.1rem;
    line-height: 1;
    color: var(--dialog-rot);
}

/* Bildergalerie */
.pcs-gallery {
    list-style: none !important;
    margin: 0;
    padding: 0 !important;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.75rem;
}

@media (max-width: 980px) {
    .pcs-gallery {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 640px) {
    .pcs-gallery {
        grid-template-columns: 1fr;
    }
}

.pcs-gallery-item {
    margin: 0;
}

.pcs-gallery-thumb {
    width: 100%;
    height: auto;
    display: block;
    object-fit: cover;
}

.pcs-gallery a {
    display: block;
    overflow: hidden;
    outline-offset: 2px;
}

.glightbox-clean .gslide-description {
    background: transparent !important;
}

.glightbox-clean .gdesc-inner {
    padding: 20px 0 !important;
}

.glightbox-clean .gslide-title {
    color: #fff !important;
}

/* Post Loop */
.post-wrapper .post-image img {
    display: block;
}

.post-wrapper .post-infos {
    text-align: center;
    background: #f2f2f2;
    padding: 12%;
    transition: all 0.5s linear;
}

.post-wrapper .post-infos .post-term,
.post-wrapper .post-infos .post-title {
    margin-bottom: 20px;
    padding-bottom: 10px;
}

.post-wrapper .post-infos .post-excerpt {
    font-style: italic;
}

.post-wrapper .post-infos:hover {
    background: #e30016;
}

.post-wrapper .post-infos .post-title a,
.post-wrapper .post-infos .post-term,
.post-wrapper .post-infos .post-term a,
.post-wrapper .post-infos .post-excerpt {
    color: #000000 !important;
}

.post-wrapper .post-infos:hover .post-title a,
.post-wrapper .post-infos:hover .post-term a,
.post-wrapper .post-infos:hover .post-term,
.post-wrapper .post-infos:hover .post-excerpt {
    color: #ffffff !important;
}

/* Events */
.event-media {
    margin-bottom: 10px;
}

.event-media .thumb-ratio {
    position: relative;
    width: 100%;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    background: #f3f3f3;
}

.event-thumb {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.event-thumb.placeholder {
    background: linear-gradient(135deg, var(--dialog-rot) 0%, #ff7a7a 100%);
}

.event-meta {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    padding: 0 20px 20px;
}

.event-weekday {
    font-size: 0.8rem;
    letter-spacing: 0.06em;
    font-weight: 700;
    text-transform: uppercase;
}

.event-dayline {
    display: flex;
    align-items: baseline;
    gap: 0.35rem;
    flex-wrap: wrap;
}

.event-daymon {
    font-size: clamp(18px, 1.563vw, 20px);
    font-weight: 800;
    line-height: 1;
}

.event-year {
    font-size: 1rem;
    opacity: 1;
    font-weight: 700;
    color: #666;
}

.event-sep {
    font-size: 1.2rem;
    margin: 0 0.2rem;
}

.event-date {
    border-bottom: 2px solid var(--dialog-rot);
    padding-bottom: 5px;
}

.event-type {
    font-size: 0.8rem;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    opacity: 1;
    margin-top: 0.25rem;
    color: #666;
    font-weight: 700;
    line-height: 1.4em;
    margin-bottom: 15px;
}

.event-title {
    font-size: 1.05rem;
    line-height: 1.25;
    margin: 0;
}

.event-title a {
    text-decoration: none;
}

.event-locationtime {
    margin-top: 0.15rem;
}

.event-place,
.event-time {
    font-size: 0.9rem;
    opacity: 1;
    font-weight: 700;
}

.event-time {
    color: #666666;
}

.event-badge {
    position: absolute;
    top: 0.5rem;
    left: 0.5rem;
    background: rgba(255, 255, 255, 0.9);
    color: #000;
    padding: 8px 16px;
    font-size: 0.75rem;
    font-weight: 700;
    line-height: 1;
    z-index: 2;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
    text-transform: uppercase;
}

/* Anbieter – Basis */
.anbieter-card,
.anbieter-link {
    display: block;
}

.anbieter-link {
    text-decoration: none;
    color: inherit;
    cursor: pointer;
}

.anbieter-media .square-box {
    position: relative;
    width: 100%;
    aspect-ratio: 1 / 1;
    background: #fff;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Vignette */
.anbieter-media .square-box::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    background: radial-gradient(circle, rgba(0,0,0,0) 45%, rgba(0,0,0,0.1) 100%);
    opacity: 0;
    transition: opacity 0.45s ease;
    pointer-events: none;
}

/* eigener Logo-Container */
.anbieter-logo-wrap {
    position: absolute;
    inset: 0;
    z-index: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 40px;
    transition: transform 0.9s ease-in-out, opacity 0.7s ease-in-out;
    will-change: transform, opacity;
}

.anbieter-logo {
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
    object-fit: contain;
    display: block;
    background: #fff;
}

.anbieter-logo.placeholder {
    width: 50%;
    height: 50%;
    background: #f1f1f1;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 800;
    font-size: 1.25rem;
    color: #999;
}

/* Overlay unten separat */
.anbieter-overlay {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 2;
    padding: 18px 20px;
    background: linear-gradient(180deg, rgba(255,255,255,0) 0%, rgba(255,255,255,0.96) 35%, rgba(255,255,255,1) 100%);
    opacity: 0;
    transform: translateY(100%);
    transition: opacity 0.22s ease, transform 0.22s ease;
    pointer-events: none;
}

.anbieter-link:hover .anbieter-overlay,
.anbieter-link:focus-visible .anbieter-overlay {
    opacity: 1;
    transform: translateY(0);
}

.anbieter-overlay-inner {
    text-align: center;
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    align-items: center;
}

.anbieter-title {
    margin: 0;
    color: var(--black) !important;
    text-align: center;
    padding-bottom: 0;
}

.anbieter-more {
    display: inline-block;
    border-bottom: 1px solid var(--black);
    color: var(--black) !important;
    font-size: var(--text-small);
    opacity: 0;
    transform: translateY(8px);
    transition: opacity 0.22s ease, transform 0.22s ease;
}

.anbieter-link:hover .anbieter-more,
.anbieter-link:focus-visible .anbieter-more {
    opacity: 1;
    transform: translateY(0);
}

.anbieter-link:hover .square-box::after,
.anbieter-link:focus-visible .square-box::after {
    opacity: 1;
}

/* Logo reagiert separat */
/*.anbieter-link:hover .anbieter-logo-wrap,
.anbieter-link:focus-visible .anbieter-logo-wrap {
    transform: scale(0.92) translateY(-18px);
}*/

.anbieter-link:hover .anbieter-logo-wrap,
.anbieter-link:focus-visible .anbieter-logo-wrap {
    transform: scale(1.08) translateY(0px);
}

.single-event-logo .anbieter-link:hover .anbieter-logo-wrap,
.single-event-logo .anbieter-link:focus-visible .anbieter-logo-wrap {
    transform: scale(0.92) translateY(0px);
}

.anbieter-link:focus-visible .square-box {
    outline: 2px solid var(--dialog-rot);
    outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
    .anbieter-media .square-box::after,
    .anbieter-logo-wrap,
    .anbieter-overlay,
    .anbieter-more {
        transition: none;
    }

    .anbieter-link:hover .anbieter-logo-wrap,
    .anbieter-link:focus-visible .anbieter-logo-wrap {
        transform: none !important;
    }
}

/* Anbieter – Institution */
.anbieter-card--institution .ai-box {
    position: relative;
    width: 100%;
    aspect-ratio: 3 / 2;
    overflow: hidden;
    background: var(--grey);
    box-shadow: var(--shadow-soft);
    transition: box-shadow 0.25s ease, transform 0.25s ease;
}

.anbieter-card--institution:hover .ai-box {
    box-shadow: 0 12px 36px rgba(0, 0, 0, 0.12);
}

.anbieter-card--institution .anbieter-link {
    display: block;
    width: 100%;
    height: 100%;
}

.anbieter-card--institution .ai-img,
.anbieter-card--institution .ai-img-stack {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
}

/* Smooth Vignette Overlay */
.anbieter-card--institution .ai-img::after,
.anbieter-card--institution .ai-img-stack::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 3;
    background: radial-gradient(circle, rgba(0,0,0,0) 45%, rgba(0,0,0,0.35) 100%);
    opacity: 0;
    transition: opacity 0.45s ease;
    pointer-events: none;
}

.anbieter-card--institution:hover .ai-img::after,
.anbieter-card--institution:hover .ai-img-stack::after,
.anbieter-card--institution:focus-within .ai-img::after,
.anbieter-card--institution:focus-within .ai-img-stack::after {
    opacity: 1;
}

.anbieter-card--institution .ai-img-el {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: opacity 0.7s ease-in-out, transform 0.9s ease-in-out;
    will-change: opacity, transform;
}

.anbieter-card--institution .ai-img-main {
    opacity: 1;
    z-index: 1;
    transform: scale(1);
}

.anbieter-card--institution .ai-img-hover {
    opacity: 0;
    z-index: 2;
    transform: scale(1.01);
}

.anbieter-card--institution:hover .ai-img-hover,
.anbieter-card--institution:focus-within .ai-img-hover {
    opacity: 1;
    transform: scale(1);
}

.anbieter-card--institution:hover .ai-img-main,
.anbieter-card--institution:focus-within .ai-img-main {
    opacity: 0;
    transform: scale(0.98);
}

.anbieter-card--institution .ai-initials {
    position: absolute;
    inset: 0;
    margin: auto;
    width: 60%;
    height: 60%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 800;
    font-size: clamp(1.5rem, 4vw, 2.25rem);
    color: #666;
    background: #e9e9e9;
}

/* Overlay-Logo unten links */
.anbieter-card--institution .ai-overlay-logo {
    position: absolute;
    left: 0px;
    bottom: 0px;
    z-index: 5;
    width: 250px !important;
    max-width: 50% !important;
    pointer-events: none;
}

.anbieter-card--institution .ai-overlay-logo-img {
    display: block;
    width: 100%;
    height: auto;
}

.anbieter-card--institution:hover .ai-img-el { transform: scale(1.06); }
.anbieter-card--institution:hover .ai-img-main { transform: scale(1.02); }
.anbieter-card--institution:hover .ai-img-hover { transform: scale(1.06); }

@media (prefers-reduced-motion: reduce) {
    .anbieter-card--institution .ai-box,
    .anbieter-card--institution .ai-img-el,
    .anbieter-card--institution .ai-img::after,
    .anbieter-card--institution .ai-img-stack::after {
        transition: none;
    }

    .anbieter-card--institution .ai-img-el {
        transform: none !important;
    }
}

/* Download-Kachel */
.dl-card {
    display: grid;
    grid-template-columns: 160px 1fr;
    gap: 16px;
    align-items: stretch;
    padding: 14px;
    background: #fff;
    border: 1px solid rgba(0,0,0,.06);
}

.dl-media {
    display: block;
    overflow: hidden;
    background: rgba(0,0,0,.03);
}

.dl-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    aspect-ratio: 3 / 2;
    display: block;
    transition: transform 0.25s ease;
}

.dl-body {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 10px;
    min-width: 0;
}

.dl-title {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 800;
    line-height: 1.25;
}

.dl-btn.et_pb_button,
body .dl-btn.et_pb_button:not(.et-fb) {
    font-size: 12px !important;
}

.dl-card:hover .dl-img {
    transform: scale(1.03);
}

.dl-media:focus-visible,
.dl-btn:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 3px;
}

@media (max-width: 560px) {
    .dl-card {
        grid-template-columns: 1fr;
    }

    .dl-media {
        width: 100%;
    }
}

/* Veranstaltungsarten */
.term-key-visual--ratio-3-2 .term-key-visual__media {
    position: relative;
    width: 100%;
    aspect-ratio: 3 / 2;
    overflow: hidden;
}

.term-key-visual--ratio-3-2 .term-key-visual__media img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* Team */

/* === Overlay-Setup per Grid (kein HTML-Change nötig) === */
.team .et_pb_blurb .et_pb_blurb_content{
    display: grid; /* Bild & Overlay liegen in derselben Ebene */
}

/* Bild-Layer */
.team .et_pb_blurb .et_pb_main_blurb_image{
    grid-area: 1 / 1;
    position: relative;
    overflow: hidden; /* sauberes Crop beim Zoom */
}

/* Text-Container "durchlässig" machen,
   damit .short-description Grid-Kind wird */
.team .et_pb_blurb .et_pb_blurb_container,
.team .et_pb_blurb .et_pb_blurb_description{
    display: contents;
}

/* Überschrift bleibt außerhalb des Overlays */
.team .et_pb_blurb .et_pb_module_header{
    grid-area: auto;
}

/* === Vignette identisch zur Anbieter-Card === */
.team .et_pb_blurb .et_pb_main_blurb_image::after{
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    background:
            radial-gradient(circle, rgba(0,0,0,0) 40%, rgba(0,0,0,0.6) 100%),
            linear-gradient(rgba(0,0,0,0.30), rgba(0,0,0,0.30));
    opacity: 0;
    transition: opacity 0.45s ease;
    pointer-events: none;
}

/* === Zentrierter Overlay-Text === */
.team .et_pb_blurb .short-description{
    grid-area: 1 / 1;
    place-self: center;
    z-index: 2;
    margin: 0;
    padding: 0 1rem;
    max-width: 90%;
    text-align: center;
    color: #fff;
    font-size: var(--text-small);
    opacity: 0;
    transform: translateY(8px);
    transition: opacity 0.22s ease, transform 0.22s ease;
}

/* Bild wie bei Anbieter-Card */
.team .et_pb_blurb .et_pb_main_blurb_image img{
    display: block;
    width: 100%;
    height: auto;
    transform: scale(1);
    transition: opacity 0.7s ease-in-out, transform 0.9s ease-in-out;
    will-change: opacity, transform;
}

/* === Interaktionen: Hover + Tastaturfokus === */
.team .et_pb_blurb:hover .et_pb_main_blurb_image::after,
.team .et_pb_blurb:focus-within .et_pb_main_blurb_image::after{
    opacity: 1;
}

.team .et_pb_blurb:hover .short-description,
.team .et_pb_blurb:focus-within .short-description{
    opacity: 1;
    transform: translateY(0);
}

.team .et_pb_blurb:hover .et_pb_main_blurb_image img,
.team .et_pb_blurb:focus-within .et_pb_main_blurb_image img{
    transform: scale(1.06);
}

/* Bewegungsreduktion respektieren */
@media (prefers-reduced-motion: reduce){
    .team .et_pb_blurb .short-description,
    .team .et_pb_blurb .et_pb_main_blurb_image::after,
    .team .et_pb_blurb .et_pb_main_blurb_image img{
        transition: none;
    }

    .team .et_pb_blurb:hover .et_pb_main_blurb_image img,
    .team .et_pb_blurb:focus-within .et_pb_main_blurb_image img{
        transform: none !important;
    }
}

/******************************************************
    12. DSGVO Datenauszug
*******************************************************/

.sp-dsgvo form .lwb-col-6 input {
    border: 1px solid #ccc;
}

.sp-dsgvo form .lwb-col-3 label {
    font-family: var(--font-primary-stack);
}

.sp-dsgvo form .lwb-col label span,
.sp-dsgvo form .lwb-col-12 label span {
    font-family: var(--font-primary-stack);
    font-weight: 300 !important;
}

.sp-dsgvo .lwb-row {
    margin-bottom: 10px;
}

.sp-dsgvo form fieldset input[type=submit] {
    background-color: var(--dialog-rot);
    font-weight: 500 !important;
    padding: 0.3em 1em;
    color: var(--white);
    border: none;
    cursor: pointer;
    line-height: 1.7em;
}

/******************************************************
    13. Search Result Page
*******************************************************/

.et_pb_ajax_pagination_container .post-meta {
    font-family: var(--font-primary-stack);
}

.et_pb_ajax_pagination_container .post-meta,
.et_pb_ajax_pagination_container .post-meta .author a,
.et_pb_ajax_pagination_container .post-meta .published {
    color: var(--black) !important;
}

/*************************************
    14. Mobile Abstände
*************************************/
@media (max-width: 980px) {
    .et-db #et-boc .et-l .et_pb_row,
    .et_pb_row,
    #main-footer .container,
    #main-header .container {
        width: 90% !important;
        max-width: 90% !important;
    }

    .et_pb_post_content .et_builder_inner_content.et_pb_gutters2 .et_pb_row,
    .et-db #et-boc .et-l .et_pb_post_content .et_builder_inner_content.et_pb_gutters2 .et_pb_row {
        width: 100% !important;
        max-width: 100% !important;
    }
}

/*************************************
    15. TB Layout Abstände
*************************************/
@media all and (min-width: 981px) {
    .et_pb_post_content .et_builder_inner_content.et_pb_gutters2 .et_pb_row,
    .et-db #et-boc .et-l .et_pb_post_content .et_builder_inner_content.et_pb_gutters2 .et_pb_row {
        width: 100% !important;
        max-width: 1280px !important;
    }
}

.et-db #et-boc .et-l .et_pb_post_content .et_builder_inner_content.et_pb_gutters2 .et_pb_section:first-child,
.et_pb_post_content .et_builder_inner_content.et_pb_gutters2 .et_pb_section:first-child {
    padding: 0;
}

.et-db #et-boc .et-l .et_pb_post_content .et_builder_inner_content.et_pb_gutters2 .et_pb_row:first-child,
.et_pb_post_content .et_builder_inner_content.et_pb_gutters2 .et_pb_row:first-child {
    padding-top: 0;
}

/******************************************************
    16. Gravity Form
*******************************************************/

.et_pb_contact_form_label {
    display: block !important;
    font-weight: bold;
    font-size: clamp(14px, 1.094vw, 14px) !important;
}

/* Divi-Kontaktformular Platzhalter ausblenden */
.et_pb_contact_form input::placeholder,
.et_pb_contact_form textarea::placeholder,
.et_pb_contact_form input::-webkit-input-placeholder,
.et_pb_contact_form textarea::-webkit-input-placeholder,
.et_pb_contact_form input:-ms-input-placeholder,
.et_pb_contact_form textarea:-ms-input-placeholder,
.et_pb_contact_form input::-ms-input-placeholder,
.et_pb_contact_form textarea::-ms-input-placeholder {
    color: transparent !important;
    opacity: 0 !important;
}

.gform_wrapper .top_label .gfield_label,
.gform_wrapper .field_sublabel_below .ginput_complex.ginput_container label {
    display: none !important;
}

input[type=text]::placeholder,
input[type=email]::placeholder,
input[type=tel]::placeholder,
textarea::placeholder {
    color: var(--black);
    opacity: 1;
}

.gform_wrapper input[type=text]:focus,
.gform_wrapper input[type=email]:focus,
.gform_wrapper input[type=tel]:focus,
.gform_wrapper textarea:focus {
    outline: 2px solid var(--dialog-rot);
}

input[type=text],
input[type=email],
input[type=tel],
textarea {
    background: var(--white);
    border: none;
    color: var(--black) !important;
    padding: 10px !important;
}

.gform_wrapper input[type=text],
.gform_wrapper input[type=email],
.gform_wrapper input[type=tel],
.gform_wrapper textarea {
    border: 1px solid var(--border-light);
}

footer .gform_wrapper input[type=text],
footer .gform_wrapper input[type=email],
footer .gform_wrapper input[type=tel],
footer .gform_wrapper textarea {
    border-width: 0;
}

.gform_wrapper .gform_footer input.button {
    float: right;
    background: var(--dialog-rot);
    border: 1px solid var(--dialog-rot);
    font-size: 22px;
    color: #ffffff;
    padding: 12px 23px;
    letter-spacing: 0;
    cursor: pointer;
    font-family: var(--font-primary-stack);
}

.gform_wrapper .gform_footer input.button:hover {
    background: var(--dialog-rot);
    border: 1px solid var(--dialog-rot);
}

#footer-contact .gform_wrapper.gform_validation_error .gform_body ul li.gfield.gfield_error:not(.gf_left_half):not(.gf_right_half) {
    max-width: calc(100% - 0px) !important;
}

#footer-contact .gform_wrapper ul.gform_fields li.gfield,
.gform_wrapper ul.gform_fields li.gfield {
    padding-right: 0;
}

#footer-contact .gform_wrapper .gform_footer input.button,
.gform_wrapper .gform_footer input[type="submit"] {
    font-size: 16px;
}

#footer-contact .gfield_consent_label a {
    color: var(--white) !important;
    border-bottom: 1px dotted var(--white);
}

/******************************************************
    17. Search and Filter
*******************************************************/

.searchandfilter [data-sf-field-input-type="checkbox"] > ul {
    padding: 0;
    list-style: none;
}

.searchandfilter [data-sf-field-input-type="checkbox"] > ul > li,
.searchandfilter ul li[data-sf-field-input-type="checkbox"] {
    padding: 0;
}

.searchandfilter ul li[data-sf-field-input-type="checkbox"] h4 {
    padding-top: 20px;
}

.searchandfilter li.sf-field-reset {
    margin-top: 20px;
}

/******************************************************
    18. Divi Breakpoints Beispiele
*******************************************************/

/*** Responsive Styles Tablet And Below ***/
@media all and (max-width: 980px) {

}

/*** Responsive Styles Tablet Only ***/
@media all and (min-width: 768px) and (max-width: 980px) {

}

/*** Responsive Styles Smartphone Only ***/
@media all and (max-width: 767px) {

}

/*** Responsive Styles Smartphone Portrait ***/
@media all and (max-width: 479px) {

}