/*
Theme Name: Houzez Child
Theme URI: http://www.favethemes.com/
Author: Favethemes
Author URI: http://www.favethemes.com/
Description: Houzez is a premium WordPress theme for real estate agents where modern aesthetics are combined with tasteful simplicity, and where the ease of use is achieved without compromise in your ability to customise the design. Whether you are a real estate agent looking to build a website for your company or a web developer seeking a perfect WordPress theme for your next project, you are certain to appreciate the numerous features and benefits that our theme provides.
Version: 1.0
Tags: white, right-sidebar, left-sidebar, custom-colors, custom-menu, featured-images, post-formats, theme-options, translation-ready
License: GNU General Public License version 3.0
License URI: http://www.gnu.org/licenses/gpl-3.0.html
Text Domain: houzez
Template: houzez
*/


@import url("../houzez/style.css");

/* Your CSS code goes here
-------------------------------------- */

.hero-search-overlay {
    background: #ffffff;
    padding: 20px 30px;
    border-radius: 8px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.15);
    display: block;
    width: 100%;
    margin: 0 auto;
    position: relative;
    z-index: 10;
}

.elementor-element.elementor-element-98fd2dc {
    margin-top: -20px !important;
}

/* Stili per far combaciare il form Wubook a quello nativo */
#wubook-booking-form .elementor-field-label {
    font-weight: 600;
    margin-bottom: 8px;
    font-size: 15px;
    color: #222;
}

#wubook-booking-form input.form-control {
    height: 48px;
    border-radius: 8px;
    border: 1px solid #ddd;
    background: #fff;
    font-size: 15px;
    padding: 0 15px;
}

#wubook-booking-form button.houzez-search-button {
    background-color: #00aeef;
    color: #fff;
    height: 48px;
    border-radius: 9px;
    font-size: 16px;
    font-weight: bold;
    padding: 15px 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background-color 0.3s ease;
}

#wubook-booking-form button.houzez-search-button:hover {
    background-color: #008fcc;
}

/* Spaziatura campi form su tablet e mobile quando vanno a capo */
#wubook-booking-form .elementor-field-group {
    margin-bottom: 15px;
}

@media (min-width: 1025px) {
    #wubook-booking-form .elementor-field-group {
        margin-bottom: 0;
    }
}

/* ==========================================================================
   Shortcode Appartamenti Dinamici (Homepage Single Page)
   ========================================================================== */
.custom-property-section {
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.05);
    padding: 30px;
    margin-bottom: 50px;
    scroll-margin-top: 100px;
    /* Offset per l'anchor link se c'è un menu sticky */
    position: relative;
    z-index: 5;
}

.custom-property-title {
    margin-top: 0;
    margin-bottom: 20px;
    font-size: 2rem;
    color: #222;
}

/* Gallery Layout */
.custom-property-gallery {
    display: flex;
    gap: 10px;
    margin-bottom: 30px;
    height: 400px;
    /* Altezza fissa della galleria desktop */
    position: relative;
    z-index: 10;
}

.cpg-main {
    flex: 2;
    border-radius: 8px;
    overflow: hidden;
}

.cpg-main a,
.cpg-main img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
    cursor: pointer;
}

.cpg-thumbnails {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.cpg-thumb-link {
    position: relative;
    flex: 1;
    border-radius: 8px;
    overflow: hidden;
    display: block;
    height: calc(33.333% - 6.66px);
    /* Per 3 thumbnail e 2 gap da 10px */
}

.cpg-thumb-link img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
    cursor: pointer;
}

.cpg-view-all {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.6);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: bold;
    font-size: 1.1rem;
    transition: background 0.3s ease;
    text-align: center;
    pointer-events: none; /* Previene l'intercettazione del click da parte del layer scuro */
}

/* Hover effects solo per dispositivi con mouse per evitare il bug del double-tap su iOS/mobile */
@media (hover: hover) {
    .cpg-thumb-link:hover img,
    .cpg-main:hover img {
        transform: scale(1.05);
    }

    .cpg-thumb-link:hover .cpg-view-all {
        background: rgba(0, 0, 0, 0.4);
    }
}

/* Content Layout (Description & Features) */
.custom-property-content-wrap {
    display: flex;
    gap: 40px;
}

.custom-property-description {
    flex: 2;
    color: #555;
    line-height: 1.6;
}

.custom-property-features {
    flex: 1;
    background: #f9f9f9;
    padding: 20px;
    border-radius: 8px;
}

.custom-property-features h3 {
    margin-top: 0;
    font-size: 1.2rem;
    margin-bottom: 15px;
    border-bottom: 2px solid #ddd;
    padding-bottom: 10px;
}

.custom-property-features ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.custom-property-features li {
    padding: 8px 0;
    border-bottom: 1px solid #eee;
    color: #444;
}

.custom-property-features li:last-child {
    border-bottom: none;
}

.custom-property-features i {
    color: #0073e1;
    margin-right: 8px;
    width: 16px;
    text-align: center;
}

/* Responsive */
@media (max-width: 768px) {
    .custom-property-gallery {
        flex-direction: column;
        height: auto;
    }

    .cpg-main {
        height: 300px;
    }

    .cpg-thumbnails {
        flex-direction: row;
        height: 100px;
    }

    .cpg-thumb-link {
        height: 100%;
    }

    .custom-property-content-wrap {
        flex-direction: column;
    }
}

.elementor-35 .houzez-nav-menu-align-center {
    top: -110px;
}

/* Header semitrasparente con effetto vetro (glassmorphism) */
#header-section,
#header-section.header-desktop.sticky_nav {
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-bottom: 1px solid rgba(255, 255, 255, 0.3);
}

/* Fissa l'altezza delle immagini nel carosello degli appartamenti per evitare salti di dimensione */
.property-carousel-module .item-header img,
.property-carousel-module .listing-image-wrap img {
    height: 280px !important;
    width: 100% !important;
    object-fit: cover !important;
}

/* Rimuovi bordo dal blocco contact us */
.elementor-element.elementor-element-bw22mzuye {
    border: none !important;
}

/* Fix disallineamento card nel carousel dovuto a testi lunghi */
.property-carousel-module .owl-stage,
.property-carousel-module .slick-track {
    display: flex !important;
}

.property-carousel-module .owl-item,
.property-carousel-module .slick-slide {
    display: flex !important;
    height: auto !important;
}

.property-carousel-module .item-wrap {
    display: flex;
    flex-direction: column;
    width: 100%;
    height: 100%;
}

.property-carousel-module .item-body {
    flex-grow: 1;
    display: flex;
    flex-direction: column;
}

/* Spinge il footer della card sempre in basso */
.property-carousel-module .item-footer {
    margin-top: auto;
}

/* Nasconde l'header globale su desktop e mobile */
header.header-main-wrap,
.header-v1,
.header-v2,
.header-desktop,
.header-mobile,
#header-section {
    display: none !important;
}

/* Forza il lightbox di Elementor (e Fancybox) a rimanere fisso allo schermo su mobile.
   Spesso su alcuni dispositivi il position: fixed si rompe o viene sovrascritto. */
#elementor-lightbox, 
.dialog-lightbox-widget,
.fancybox-container {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    z-index: 999999 !important;
    transform: none !important;
}

/* Rimuove eventuale spazio vuoto lasciato dall'header e previene overflow orizzontale.
   Forza anche l'assenza di trasformazioni che potrebbero "rompere" il position: fixed dei lightbox su mobile. */
html,
body {
    padding-top: 0 !important;
    overflow-x: hidden;
    transform: none !important;
    -webkit-transform: none !important;
    perspective: none !important;
    -webkit-perspective: none !important;
}

/* Fix centratura hero e posizione hamburger su tablet/mobile */
@media (max-width: 1024px) {
    .elementor-element.elementor-element-f9hlioptn {
        margin: 0 auto !important;
    }

    .elementor-35 .houzez-nav-menu-align-center {
        top: -170px !important;
    }

    /* Centra il pulsante "Visualizza gli appartamenti" */
    .elementor-element.elementor-element-4kr4py3b9,
    .elementor-element.elementor-element-4kr4py3b9 .elementor-widget-container {
        text-align: center !important;
    }

    .elementor-element.elementor-element-4kr4py3b9 .elementor-button {
        width: auto !important;
        display: inline-block !important;
    }
}

/* Fix per accavallamento mappa su mobile/tablet (evita che il container collassi a 0) */
.mappa-fix-altezza {
    min-height: 600px !important;
    width: 100%;
    display: block !important;
}
