/*
Theme Name:   Maisonco Child
Theme URI:    https://immo-geuenich.de/
Description:  Individuelles Child Theme für Maisonco zur sicheren Programmierung und Anpassung.
Author:       Gerrit Geuenich / Dev
Template:     maisonco
Version:      1.0.6
Text Domain:  maisonco-child
*/

/* ==========================================================================
   2-Click Google Maps Privacy Wrapper (DSGVO / TTDSG) - Maisonco Luxury Theme
   ========================================================================== */
.tc-map-wrapper,
.two-click-map {
    position: relative;
    width: 100%;
    min-height: 460px;
    background: #25282b url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='80' viewBox='0 0 80 80'%3E%3Cg fill='%23cabe9f' fill-opacity='0.04'%3E%3Cpath fill-rule='evenodd' d='M11 0l5 20H6l5-20zm42 31a3 3 0 1 0 0-6 3 3 0 0 0 0 6zM0 72h40v4H0v-4zm0-8h31v4H0v-4zm20-16h20v4H20v-4zM0 56h40v4H0v-4zm63-25a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm10 0a3 3 0 1 0 0-6 3 3 0 0 0 0 6zM53 41a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm10 0a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm10 0a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm-30 0a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm-28-8a5 5 0 0 0-10 0v1h10v-1zm0 16a5 5 0 0 0-10 0v1h10v-1zm0 16a5 5 0 0 0-10 0v1h10v-1z'/%3E%3C/g%3E%3C/svg%3E") repeat;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 60px 20px !important;
    box-sizing: border-box !important;
    overflow: hidden;
}

.tc-map-wrapper iframe,
.two-click-map iframe {
    width: 100% !important;
    height: 460px !important;
    border: 0 !important;
    display: block !important;
    animation: tcMapFadeIn 0.4s ease forwards;
}

@keyframes tcMapFadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}

.tc-map-card,
.two-click-map-box {
    position: relative;
    max-width: 580px;
    width: 100%;
    background: rgba(33, 37, 41, 0.96) !important;
    border: 1px solid rgba(202, 190, 159, 0.4) !important;
    box-shadow: 0 20px 45px rgba(0, 0, 0, 0.45) !important;
    padding: 45px 36px !important;
    text-align: center !important;
    border-radius: 0 !important;
    box-sizing: border-box !important;
}

.tc-map-icon,
.two-click-map-icon {
    margin-bottom: 16px !important;
    line-height: 1 !important;
}

.tc-map-eyebrow {
    font-family: 'Montserrat', sans-serif !important;
    font-size: 11px !important;
    font-weight: 600 !important;
    letter-spacing: 2.5px !important;
    text-transform: uppercase !important;
    color: #cabe9f !important;
    margin-bottom: 10px !important;
}

.tc-map-title,
.two-click-map-title {
    font-family: 'Marcellus SC', Georgia, serif !important;
    font-size: 24px !important;
    line-height: 1.3 !important;
    color: #ffffff !important;
    letter-spacing: 1.5px !important;
    text-transform: uppercase !important;
    margin: 0 0 16px 0 !important;
    font-weight: 400 !important;
}

.tc-map-desc,
.two-click-map-text {
    font-family: 'Montserrat', sans-serif !important;
    font-size: 13px !important;
    line-height: 1.7 !important;
    color: #adb3b9 !important;
    margin: 0 0 26px 0 !important;
}

.tc-map-desc a,
.two-click-map-text a {
    color: #cabe9f !important;
    text-decoration: underline !important;
    transition: color 0.2s ease;
}

.tc-map-desc a:hover,
.two-click-map-text a:hover {
    color: #ffffff !important;
}

.tc-map-btn,
.two-click-map-btn {
    display: inline-block !important;
    background-color: #cabe9f !important;
    color: #1f2225 !important;
    font-family: 'Montserrat', sans-serif !important;
    font-size: 11.5px !important;
    font-weight: 600 !important;
    letter-spacing: 2px !important;
    text-transform: uppercase !important;
    padding: 14px 34px !important;
    border: 1px solid #cabe9f !important;
    border-radius: 0 !important;
    cursor: pointer !important;
    transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1) !important;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2) !important;
    text-decoration: none !important;
    line-height: 1.5 !important;
}

.tc-map-btn:hover,
.two-click-map-btn:hover {
    background-color: transparent !important;
    color: #ffffff !important;
    border-color: #ffffff !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.35) !important;
}

.tc-map-alt {
    margin-top: 18px !important;
    font-family: 'Montserrat', sans-serif !important;
    font-size: 11px !important;
}

.tc-map-alt a {
    color: #7d858e !important;
    text-decoration: none !important;
    letter-spacing: 0.5px !important;
    transition: color 0.2s ease;
}

.tc-map-alt a:hover {
    color: #cabe9f !important;
}

@media (max-width: 767px) {
    .tc-map-card,
    .two-click-map-box {
        padding: 30px 20px !important;
    }
    .tc-map-title,
    .two-click-map-title {
        font-size: 20px !important;
    }
    .tc-map-btn,
    .two-click-map-btn {
        width: 100% !important;
        padding: 14px 20px !important;
    }
}

/* ==========================================================================
   Hero Slider Responsive Heading Fix (Mobile Word-Break & Scaling)
   ========================================================================== */
@media (max-width: 767px) {
    #slider-4-slide-10-layer-1,
    rs-layer[id*="layer-1"] {
        font-size: clamp(19px, 5.8vw, 24px) !important;
        line-height: 1.35 !important;
        white-space: normal !important;
        max-width: 90vw !important;
        left: 50% !important;
        transform: translateX(-50%) !important;
        text-align: center !important;
        word-break: normal !important;
        overflow-wrap: normal !important;
        hyphens: none !important;
        box-sizing: border-box !important;
    }

    #slider-4-slide-10-layer-2,
    rs-layer[id*="layer-2"] {
        font-size: 14px !important;
        line-height: 1.5 !important;
        max-width: 88vw !important;
        left: 50% !important;
        transform: translateX(-50%) !important;
        text-align: center !important;
    }
}

/* ==========================================================================
   Cookie Notice - Sleek, Non-Invasive Floating Design (DSGVO / TTDSG)
   ========================================================================== */
/* Completely hide the persistent revoke bar after consent has been given */
#cookie-notice .cookie-revoke-container,
.cookie-revoke-container {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: hidden !important;
}

/* Modern floating banner on desktop and mobile */
#cookie-notice {
    background-color: rgba(28, 31, 35, 0.96) !important;
    box-shadow: 0 12px 36px rgba(0, 0, 0, 0.45) !important;
    border-top: 1px solid rgba(202, 190, 159, 0.3) !important;
}

@media (min-width: 768px) {
    #cookie-notice {
        max-width: 680px !important;
        left: 24px !important;
        bottom: 24px !important;
        right: auto !important;
        border-radius: 4px !important;
        border: 1px solid rgba(202, 190, 159, 0.35) !important;
    }
}

#cookie-notice .cookie-notice-container {
    padding: 16px 20px !important;
    font-family: 'Montserrat', sans-serif !important;
    font-size: 12.5px !important;
    line-height: 1.6 !important;
    color: #e2e8f0 !important;
}

#cookie-notice #cn-notice-text {
    display: block !important;
    margin-bottom: 12px !important;
}

#cookie-notice #cn-notice-buttons {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 8px !important;
    align-items: center !important;
}

#cookie-notice .cn-button {
    font-family: 'Montserrat', sans-serif !important;
    font-size: 11px !important;
    font-weight: 600 !important;
    letter-spacing: 1px !important;
    text-transform: uppercase !important;
    padding: 8px 18px !important;
    border-radius: 2px !important;
    transition: all 0.25s ease !important;
    cursor: pointer !important;
}

#cookie-notice #cn-accept-cookie {
    background-color: #cabe9f !important;
    color: #1a1e21 !important;
    border: 1px solid #cabe9f !important;
}

#cookie-notice #cn-accept-cookie:hover {
    background-color: transparent !important;
    color: #ffffff !important;
    border-color: #ffffff !important;
}

#cookie-notice #cn-refuse-cookie {
    background-color: transparent !important;
    color: #cbd5e1 !important;
    border: 1px solid rgba(255, 255, 255, 0.25) !important;
}

#cookie-notice #cn-refuse-cookie:hover {
    background-color: rgba(255, 255, 255, 0.1) !important;
    color: #ffffff !important;
    border-color: #ffffff !important;
}

#cookie-notice #cn-more-info {
    background: transparent !important;
    color: #cabe9f !important;
    border: none !important;
    text-decoration: underline !important;
    padding: 8px 10px !important;
}

#cookie-notice #cn-more-info:hover {
    color: #ffffff !important;
}

/* Nach Zustimmung/Ablehnung: Banner schließt vollständig und blockiert nicht das mobile Layout.
   DSGVO-Widerruf ist jederzeit über den Link 'Cookie-Einstellungen' im Footer erreichbar. */
#cookie-notice .cookie-revoke-container,
#cookie-notice.cookie-revoke-visible {
    display: none !important;
}

/* ==========================================================================
   Mobile Navigation & Persistent Luxury Header Fix
   ========================================================================== */
/* Instant Hero Background for Core Web Vitals (LCP paint acceleration) */
#rev_slider_4_1_wrapper,
.elementor-widget-opal-revslider {
    background-color: #171a1d !important;
    background-image: url('https://www.immo-geuenich.de/wp-content/uploads/2019/02/android-wallpaper-beach-dawn-189349.jpg') !important;
    background-position: center center !important;
    background-size: cover !important;
    background-repeat: no-repeat !important;
}

/* Ensure the theme's native mobile menu toggle icon renders cleanly */
.elementor-menu-toggle i.eicon:before {
    content: "\e816";
    font-family: eicons;
    display: inline-block;
}

/* Theme Header 01: Ensure SVG Logo is properly sized and toggle icon is visible */
.site-header .elementor-widget-image img {
    width: auto !important;
    max-height: 42px !important;
    height: auto !important;
    display: inline-block !important;
}

.site-header .elementor-menu-toggle {
    color: #3f4448 !important;
}

/* ==========================================================================
   Responsive Typography & Alignment for Hero Revolution Slider (Mobile)
   ========================================================================== */
@media (max-width: 767px) {
    /* Hauptüberschrift: Bricht sauber um, skaliert proportional und schneidet kein Wort ab */
    #slider-4-slide-10-layer-1 {
        font-size: clamp(20px, 5.8vw, 26px) !important;
        line-height: 1.35 !important;
        white-space: normal !important;
        word-break: normal !important;
        max-width: 92vw !important;
        left: 50% !important;
        transform: translateX(-50%) !important;
        text-align: center !important;
        height: auto !important;
        box-sizing: border-box !important;
    }

    /* Unterzeile: Skaliert harmonisch ohne Überlappung mit Sonne oder Textabschneidung */
    #slider-4-slide-10-layer-2 {
        font-size: clamp(12px, 3.4vw, 15px) !important;
        line-height: 1.45 !important;
        white-space: normal !important;
        max-width: 90vw !important;
        left: 50% !important;
        transform: translateX(-50%) !important;
        text-align: center !important;
        height: auto !important;
        box-sizing: border-box !important;
    }
}

/* ==========================================================================
   Contact Form 7: Remove empty border/box from hidden fields container
   ========================================================================== */
.wpcf7 fieldset.hidden-fields-container,
fieldset.hidden-fields-container {
    display: none !important;
    border: none !important;
    padding: 0 !important;
    margin: 0 !important;
    height: 0 !important;
    min-height: 0 !important;
    line-height: 0 !important;
    visibility: hidden !important;
}



