/*
Theme Name:   GeneratePress Child
Theme URI:    https://generatepress.com
Description:  Child theme for GeneratePress
Author:       
Author URI:   
Template:     generatepress
Version:      1.0.0
*/

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

/* === Prevent horizontal scroll from GSAP animations === */
html, body { overflow-x: hidden !important; }
https://web.karsar.de/wp-admin/theme-editor.php?file=page-home.php&theme=generatepress-child
#Uber-uns { position: relative; z-index: 2; }

/* === BENTO GALLERY cross-browser fix (Safari + all browsers) ===
   Safari clips overflow:visible on flex containers.
   Fix: cells = display:block + position:relative + overflow:hidden
        images = position:absolute + explicit top/right/bottom/left
   ================================================================ */

.gallery-grid {
    grid-template-rows: 320px 320px !important;
    grid-auto-rows: 320px !important;
    align-items: stretch !important;
}
.gallery-grid .w-layout-cell {
    display: block !important;
    position: relative !important;
    overflow: hidden !important;
    min-height: 0 !important;
}
.gallery-grid .gallery-image {
    position: absolute !important;
    top: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center !important;
    display: block !important;
    flex: none !important;
    max-width: none !important;
    border-radius: 4px !important;
}
@media screen and (max-width: 1280px) {
    .gallery-grid { grid-template-rows: 270px 270px !important; grid-auto-rows: 270px !important; }
}
@media screen and (max-width: 991px) {
    .gallery-grid { grid-template-rows: 220px 220px !important; grid-auto-rows: 220px !important; }
}
@media screen and (max-width: 767px) {
    .gallery-grid {
        grid-template-columns: 1fr 1fr !important;
        grid-template-rows: repeat(3, 180px) !important;
        grid-auto-rows: 180px !important;
    }
    .gallery-grid .w-layout-cell { grid-column: span 1 !important; }
}
@media screen and (max-width: 479px) {
    .gallery-grid {
        grid-template-columns: 1fr !important;
        grid-template-rows: repeat(6, 180px) !important;
        grid-auto-rows: 180px !important;
    }
    .gallery-grid .w-layout-cell { grid-column: span 1 !important; }
}

/* === Mobile nav: header bar always on top of overlay === */
.navbar-wrapper { position: relative !important; z-index: 2 !important; }

/* === Mobile nav overlay === */
.w-nav-overlay { will-change: height; z-index: 1 !important; backface-visibility: hidden; -webkit-backface-visibility: hidden; }

@media screen and (max-width: 479px) {
    .nav-menu { height: auto !important; justify-content: flex-start !important; }
    .contact-data.nav { margin-top: 32px; }
}

/* === Mobile nav button: no position shift between open/closed states ===
   Webflow sets different margin-right for .w--open vs closed — fix both
   ======================================================================= */
@media screen and (max-width: 991px) {
    .menu-button.w--open { margin-right: var(--_dimensions---margin--s) !important; }
}
@media screen and (max-width: 479px) {
    .menu-button.w--open { margin-right: 2% !important; }
}

/* === Active language link === */
.nav-link.active { color: var(--tertiary--light-gold) !important; }

/* === Mobile nav SVG icons === */
.contact-data.nav img {
    filter: brightness(0) invert(1) !important;
    width: 24px !important;
    height: 24px !important;
    display: block !important;
}
.contact-data.nav img[alt="Phone icon"] { content: url('https://web.karsar.de/wp-content/uploads/2026/05/Phone.svg'); }
.contact-data.nav img[alt="E-mail icon"] { content: url('https://web.karsar.de/wp-content/uploads/2026/05/Mail.svg'); }
.contact-data.nav img[alt="Address icon"] { content: url('https://web.karsar.de/wp-content/uploads/2026/05/Map_Pin.svg'); }

/* === Hero section === */
.hero-section { position: relative !important; }

/* =====  ===== */

.admin-bar .navbar {
    top: 32px;
}

@media screen and (max-width: 782px) {
    .admin-bar .navbar {
        top: 46px;
    }
}

/* ===== Legal pages (Datenschutz / Impressum) ===== */

.section.dark.legal-page {
    padding-top: 200px;   /* fixed .navbar 80px + Ð¿Ð¾Ð²Ñ–Ñ‚Ñ€Ñ */
    padding-bottom: 150px;
}

.legal-inner {
    max-width: 860px;
    margin: 0 auto;
}

.legal-title {
    margin: 0 0 56px;
    padding-bottom: 40px;
    border-bottom: 1px solid rgba(243, 234, 227, 0.2);
}

.legal-content {
    font-family: Inter, sans-serif;
    font-size: 18px;
    line-height: 1.5;
    color: rgba(243, 234, 227, 0.8);
}

.legal-content h2 {
    margin: 56px 0 16px;
    font-family: "Castoro Titling", sans-serif;
    font-size: 28px;
    font-weight: 400;
    line-height: 1.2;
    color: rgb(243, 234, 227);
}

.legal-content > :first-child {
    margin-top: 0;
}

.legal-content p,
.legal-content ul {
    margin: 0 0 16px;
}

.legal-content ul {
    padding-left: 20px;
}

.legal-content li {
    margin-bottom: 6px;
}

.legal-content a {
    color: rgb(243, 234, 227);
    text-decoration: underline;
    text-underline-offset: 3px;
}

.legal-content a:hover {
    opacity: 0.7;
}

@media screen and (max-width: 991px) {
    .section.dark.legal-page {
        padding-top: 160px;
        padding-bottom: 100px;
    }
}

@media screen and (max-width: 767px) {
    .section.dark.legal-page {
        padding-top: 130px;
        padding-bottom: 72px;
    }

    .legal-title {
        margin-bottom: 36px;
        padding-bottom: 28px;
    }

    .legal-content {
        font-size: 16px;
    }

    .legal-content h2 {
        margin-top: 40px;
        font-size: 22px;
    }
}


/* Footer links */
.footer-link {
    color: var(--_color-tokens---text--addition-text);
    transition: color 0.2s;
}

.footer-link:hover {
    color: var(--tertiary--light-gold);
}


/* ===== 404 ===== */

.section.dark.not-found-page {
    display: flex;
    align-items: center;
    min-height: 100vh;
    padding-top: 180px;   /* fixed .navbar */
    padding-bottom: 120px;
}

.not-found-page .content-wrapper {
    width: 100%;
}

.not-found-inner {
    max-width: 860px;
    margin: 0 auto;
    text-align: center;
}

.not-found-code {
    margin-bottom: 24px;
    line-height: 1;
    color: var(--tertiary--gold);
}

.not-found-title {
    margin: 0 0 20px;
}

.not-found-text {
    max-width: 520px;
    margin: 0 auto 40px;
    font-family: Inter, sans-serif;
    font-size: 18px;
    line-height: 1.5;
    color: rgba(243, 234, 227, 0.8);
}

.not-found-inner .btn-wrapper {
    display: flex;
    justify-content: center;
}


@media screen and (max-width: 767px) {
    .section.dark.not-found-page {
        padding-top: 130px;
        padding-bottom: 72px;
    }

    .not-found-text {
        font-size: 16px;
    }
}


.nav-link:hover,
.nav-link:focus,
.nav-link:active {
    color: var(--secondary--milk);
}

.nav-link.w--current:hover,
.nav-link.w--current:focus {
    color: var(--tertiary--light-gold);
}


/* hero fix mob dev-es */
@media screen and (max-width: 767px) {
    .hero-text-wrapper {
        top: auto;
        bottom: calc(var(--_dimensions---spacing--xl) + 32px);
    }
}

/* hero fix: «WILLKOMMEN»  40px */
@media screen and (max-width: 359px) {
    .hero-section .heading-xxl {
        font-size: 32px;
    }
}