/* Top Bar
======================================================= */
.dfg-top-bar,
.dfg-top-bar-square {
    background-color: var(--top-bar-color, var(--color-main));
}

.dfg-top-bar .container {
    max-width: var(--header-max-width);
}

.dfg-top-bar-left {
    background-color: #F5F7FA;
}

.dfg-top-bar-squares::before {
    content: '';
    width: 100vw;
    height: 100%;
    position: absolute;
    top: 0;
    right: 0;
    background-color: #F5F7FA;
}

.dfg-top-bar-square-first {
    opacity: 0.15;
    border-top-left-radius: 20px;
}

.dfg-top-bar-square-second {
    opacity: 0.3;
}

.dfg-top-bar-square-third {
    opacity: 0.5;
}

.dfg-top-bar-square {
    width: 50px;
    height: 50px;
}

.dfg-top-bar-company-infos {
    padding: 7px 0;
    gap: 30px;
}

.dfg-top-bar-company-info a {
    color: #fff;
}

/* Header
======================================================= */

.dfg-header {
    padding: 10px 0;
    z-index: 99;
    transition: all 0.3s ease;
    background-color: #ffffff;
    position: fixed;
    left: 0;
    transition: all 0.3s ease;
    box-shadow: 0;
}

.dfg-header.df-header-scrolled {
    box-shadow: 0 3px 10px rgba(0, 0, 0, 0.05);
}

.dfg-header .container {
    max-width: var(--header-max-width);
}

#primary-navigation-overlay {
    background: rgba(0, 0, 0, .5);
    z-index: 2;
    transition: all .5s ease;
    opacity: 0;
    visibility: hidden;
}

img.dfg-logo {
    max-width: var(--branding-width-max);
}

.dfg-cta-menu {
    gap: var(--header-menu-gap);
    justify-content: var(--header-menu-alignment);
}

@media only screen and (min-width: 768px) and (max-width: 992px) {
    .dfg-cta-menu {
        gap: 15px;
    }
}

/* Hamburger menu button */
.dfg-menu-hamburger__buttons.btn {
    gap: 10px;
    padding: 14px 15px 15px;
}

.dfg-menu-hamburger__buttons svg {
    fill: var(--button-text-color);
}

.dfg-menu-hamburger__buttons:hover svg {
    fill: var(--button-hover-text-color);
}

/* CTA Button */
.dfg-cta-button.btn {
    text-transform: none;
}

.dfg-cta-button-1.btn {
    gap: 11px;
    color: var(--body-text-color);
    background-color: transparent;
    padding: 9px 15px;
}

.dfg-cta-button-1 svg>path:first-child {
    stroke: var(--color-main);
}

.dfg-cta-button-1 svg>path:last-child {
    fill: var(--color-main);
}

.dfg-cta-button-1:hover {
    background-color: var(--color-main);
    color: #fff;
}

.dfg-cta-button-1:hover svg>path:first-child {
    stroke: #fff;
}

.dfg-cta-button-1:hover svg>path:first-child {
    fill: #fff;
}

/* Popup Menu */
.dfg-popup-menu__wrapper {
    height: 100vh;
    background-color: #ffffff;
    top: 0;
    z-index: 101;
    transition: all 0.3s ease-in;
    right: -100%;
    opacity: 0;
    visibility: hidden;
}

@media only screen and (min-width: 768px) {
    .dfg-popup-menu__wrapper img.dfg-logo {
        filter: brightness(0) invert(1)
    }
}

.dfg-popup-menu__wrapper.dfg-opened {
    opacity: 1;
    visibility: visible;
    right: 0;
}

.dfg-popup-menu__header {
    padding: 45px 0 0;
}

.dfg-popup__background {
    width: 50%;
    top: 0;
    left: 0;
}

.dfg-popup__background::before {
    content: '';
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    background-color: var(--color-custom);
    opacity: 0.7;
}

.dfg-popup__background img {
    object-fit: cover;
}

@media only screen and (max-width: 767px) {
    .dfg-popup-menu__header {
        padding-top: 25px;
    }

    .dfg-popup-menu__header::after {
        content: '';
        width: 100%;
        height: 1px;
        position: relative;
        display: block;
        left: 0;
        bottom: 0;
        margin-top: 20px;
        background-color: var(--color-custom);
        opacity: 0.2;
    }
}


@media only screen and (min-width: 768px) {
    .dfg-popup-menu__content {
        height: calc(100% - 125px - 90px);
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .dfg-popup-menu__content>.row {
        width: 100%;
    }
}


/* Menu Popup Content Inner */
.dfg-popup-menu__content-inner {
    padding: 40px 0px 40px 80px;
}

.dfg-popup-main-menu li {
    margin: 0;
    padding: 0;
}

.dfg-popup-main-menu>li {
    flex: 0 0 50%;
}

.dfg-popup-main-menu li.dfg-fullwidth {
    flex: 0 0 100%;
    position: relative;
    margin-top: 20px;
    margin-bottom: 20px;
    padding-top: 20px;
    padding-bottom: 50px;
}

.dfg-popup-main-menu li.dfg-fullwidth::before,
.dfg-popup-main-menu li.dfg-fullwidth::after {
    content: '';
    width: 100%;
    height: 1px;
    background-color: var(--color-custom);
    opacity: 0.2;
    position: absolute;
    top: 0;
    left: 0;
}

.dfg-popup-main-menu li.dfg-fullwidth::after {
    top: auto;
    bottom: 0;
}

.dfg-popup-main-menu li a {
    color: var(--color-custom);
}

.dfg-popup-main-menu li.current-menu-item>a,
.dfg-popup-main-menu li.current-menu-parent>a,
.dfg-popup-main-menu li a:hover {
    color: var(--color-main);
}

.dfg-popup-main-menu>li>a {
    font-size: 32px;
    font-weight: 700;
}

.dfg-popup-main-menu .sub-menu {
    padding: 0;
    list-style-type: none;
    font-weight: 500;
}

.dfg-popup-main-menu li.dfg-fullwidth .sub-menu {
    display: grid;
    grid-template-rows: repeat(4, 1fr);
    grid-auto-flow: column;
    column-gap: 25px;
}

.dfg-popup-main-menu li.dfg-fullwidth .sub-menu li.position-absolute:last-child {
    bottom: 15px;
    left: 0;
}

.dfg-popup-main-menu li.dfg-fullwidth .sub-menu li.position-absolute:last-child a {
    font-weight: 700;
    color: var(--color-main);
}

@media only screen and (max-width: 1200px) {
    .dfg-popup-menu__content-inner {
        padding: 0 0 0 20px;
    }

    .dfg-popup-main-menu li.dfg-fullwidth {
        padding-top: 10px;
        margin-top: 10px;
        margin-bottom: 10px;
    }

    .dfg-popup-main-menu>li>a {
        font-size: 28px;
    }

    .dfg-popup-main-menu li.dfg-fullwidth .sub-menu {
        column-gap: 15px;
    }
}

@media only screen and (max-width: 992px) {
    .dfg-popup-main-menu li.dfg-fullwidth .sub-menu {
        grid-auto-flow: row;
    }
}

@media only screen and (max-width: 767px) {
    .dfg-popup-menu__content-inner {
        max-height: calc(100vh - 180px);
        padding-left: 0;
        padding-right: 0;
        padding-bottom: 0;
        overflow-y: auto;
        overflow-x: hidden;
        margin-bottom: 20px;
    }

    .dfg-popup-main-menu>li {
        flex: 0 0 45%;
    }
}

/* Popup CTA */
.dfg-popup__cta {
    margin: 0 -15px 35px;
}

@media only screen and (max-width: 1200px) {

    .dfg-popup__cta {
        margin-bottom: 20px;
    }
}


/* Social Media */
.dfg-social-media {
    gap: 7px;
    /* position: absolute; */
    bottom: 30px;
}

.dfg-social-media li a {
    width: 36px;
    height: 36px;
    background-color: #ffffff;
    border-radius: 100%;
}

.dfg-social-media li a svg path {
    fill: var(--color-main);
}

@media only screen and (max-width: 767px) {
    .dfg-popup-menu__wrapper .dfg-social-media li a {
        background-color: var(--color-main);
    }

    .dfg-popup-menu__wrapper .dfg-social-media li a svg path {
        fill: #F5F7FA;
    }

    .dfg-social-media {
        bottom: 15px;
    }
}

/* Close Icon Popup */
.dfg-popup-menu__close {
    font-size: 35px;
    color: #000000;
    cursor: pointer;
}

@media only screen and (max-width: 1200px) {
    .dfg-popup-main-menu li a {
        font-size: 15px;
    }
}


@media only screen and (max-height: 900px) {
    .dfg-popup__cta {
        margin-bottom: 10px;
    }
}

@media (min-width: 768px) and (max-height: 700px) {
    .dfg-popup-menu__content-inner {
        overflow-y: auto;
        overflow-x: hidden;
        max-height: 450px;
    }
}

@media only screen and (max-height: 530px) {
    .dfg-popup-menu__content-inner {
        max-height: 340px;
    }
}

/* Footer
======================================================= */
footer.footer {
    padding-top: 0;
}

/* Footer Inner */
footer.footer .footer-inner {
    padding: 75px 0 50px;
}

footer.footer .footer-inner .container {
    max-width: 100%;
}

.df-footer-kontakt-button__wrapper::after {
    content: '';
    position: absolute;
    width: calc(100% - 30px);
    height: 1px;
    background-color: var(--body-text-color);
    left: 15px;
    bottom: -20px;
    opacity: 0.4;
}

.df-footer-kontakt-button a {
    width: 100%;
    display: block;
    position: relative;
    padding: 16px 25px;
    background-color: #ffffff;
    border-top-left-radius: 20px;
    color: var(--body-text-color);
}

.df-footer-kontakt-button a:hover {
    color: var(--body-text-color);
}

.df-footer-kontakt-button a .df-kontakt-icon {
    width: 100%;
    position: absolute;
    max-width: 125px;
    height: 100%;
    top: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    right: 0;
    background-color: var(--color-light);
}

.df-footer-kontakt-button a .df-kontakt-icon svg {
    position: relative;
    transition: all 0.3s ease-in;
    right: 0;
}

.df-footer-kontakt-button a:hover .df-kontakt-icon svg {
    right: -8px;
}

/* Footer Widget 1 */
footer.footer .footer-inner .footer_1 .footer_widget_title {
    margin: 0;
    font-size: 35px;
    font-weight: 600;
}

.df-footer-widgets {
    gap: 40px;
}

.df-footer-widgets .footer_3 img {
    width: 100%;
    max-width: 300px !important;
}

/* Footer Legal */

footer.footer .footer-legal-inner {
    max-width: 100%;
    padding: 30px 0;
    background-color: var(--footer-bottom-bg-color);
}

footer.footer .footer-legal-inner .container {
    max-width: var(--footer-max-width);
}

footer.footer .footer-legal,
footer.footer .footer-legal a {
    color: var(--footer-bottom-text-color);
    line-height: 1.2em;
}

footer.footer .footer-legal .df-footer-menu li:not(:last-child)::after {
    content: '-';
    margin: 0 7px;
    display: inline-block;
    position: relative;
}

footer.footer .footer-legal .df-footer-menu.dot-separator li:not(:last-child)::after {
    content: '·';
}

@media only screen and (max-width: 992px) and (min-width: 768px) {
    .df-footer-kontakt-button a {
        padding: 15px;
    }

    .df-footer-kontakt-button a .df-kontakt-icon {
        max-width: 65px;
    }

    .df-footer-kontakt-button a .df-kontakt-icon svg {
        width: 35px;
    }
}

@media only screen and (max-width: 767px) {
    footer.footer .footer-inner {
        padding: 60px 0 45px;
    }

    .df-footer-kontakt-button__wrapper::after {
        display: none;
    }

    .df-footer-widgets {
        gap: 25px;
    }

    .df-footer-kontakt-button a {
        border-top-left-radius: 0;
    }

    footer.footer .footer-legal .df-footer-menu li {
        margin-bottom: 10px;
    }
}

@media only screen and (max-width: 576px) {
    .df-footer-kontakt-button a {
        padding: 15px;
    }

    footer.footer .footer-inner .footer_1 .footer_widget_title {
        font-size: 30px;
    }

    footer.footer .footer-legal .df-footer-menu li:not(:last-child)::after {
        display: none;
    }

    .df-footer-kontakt-button a .df-kontakt-icon {
        max-width: 105px;
    }
}

@media only screen and (max-width: 360px) {
    .df-footer-kontakt-button a .df-kontakt-icon {
        max-width: 60px;
    }

    .df-footer-kontakt-button a .df-kontakt-icon svg {
        width: 30px;
    }
}