/**
 * Responsive Design System - CSS Globale
 * Sistema responsive completo per tutto il sito Houzez Child
 * Consolidamento di tutti gli stili responsive da file individuali
 * Breakpoint: Desktop Large (1200px+), Desktop (1080px-1199px), iPad Landscape (768px-1079px), iPad Portrait (600px-767px), Mobile Large (480px-599px), Mobile Small (<480px)
 * Ultimo aggiornamento: 31 ottobre 2025
 */

/* ========================================
   VARIABILI CSS RESPONSIVE
   ======================================== */

/* Tablet (iPad) - 768px to 1024px */
@media (max-width: 1024px) and (min-width: 769px) {
    :root {
        --dimensione-font-secondario: 15px;
        --dimensione-font-accento: 15px;
    }
}

/* Mobile (iPhone) - fino a 768px */
@media (max-width: 768px) {
    :root {
        --dimensione-font-secondario: 14px;
        --dimensione-font-accento: 14px;
        --peso-font-primario: 600; /* Leggermente ridotto per mobile */
    }
}

/* ========================================
   RESET E BASE MOBILE-FIRST
   ======================================== */

/* Grid system base */
.row {
    display: flex;
    flex-wrap: wrap;
    margin: 0 -15px;
}

.col {
    flex: 1;
    padding: 0 15px;
}

@media (max-width: 1250px) {
    .elementor-element.elementor-widget-spacer {
        display: none !important;
    }

    .e-con.e-grid>.e-con-inner {
    grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 700px) {
    .e-con.e-grid>.e-con-inner {
            grid-template-columns: repeat(1, 1fr);
        }

    .elementor-18709 .elementor-element.elementor-element-aa6f3de {
    --margin-bottom: 0 !important;
    }

    .e-con>.e-con-inner {
        gap: 0 !important;
    }

    .elementor-element-441e2cd > .e-con-inner {
        grid-template-columns: repeat(2, 1fr) !important;
        justify-items: start !important;
    }

    /* Align buttons to the left */
    .elementor-element-441e2cd .elementor-widget-button {
        text-align: left !important;
    }

    .elementor-18709 .elementor-element.elementor-element-1752272 .elementor-button, .elementor-18709 .elementor-element.elementor-element-c81026b .elementor-button {
        padding: 12px 24px !important;
    }
}

/* Between 480px and 700px: 3 columns grid for buttons */
@media (min-width: 480px) and (max-width: 700px) {
    .elementor-element-441e2cd > .e-con-inner {
        grid-template-columns: repeat(3, 1fr) !important;
        justify-items: start !important;
    }
}

@media (min-width: 768px) {
    .elementor-18709 .elementor-element.elementor-element-441e2cd {
        --content-width: unset !important;
    }
}

/* ========================================
   DESKTOP STYLES (1080px+)
   ======================================== */
/* ========================================
   DESKTOP LARGE (≥1204px) - 4 colonne
   ======================================== */

@media (max-width: 1203px) {
    }

@media (min-width: 1204px) {
    /* Property cards desktop - 4 colonne - SOLO per pagine città */
    body.tax-property_city .property-card {
        flex: 0 0 calc(25% - 15px) !important;
        max-width: calc(25% - 15px) !important;
    }

    /* Pagine città: sempre grid, mai slider */
    body.tax-property_city .properties-grid {
        display: flex !important;
        flex-wrap: wrap !important;
        gap: 20px !important;
        justify-content: flex-start !important;
        overflow-x: visible !important;
    }

    /* Slider desktop compra: NO flex-wrap per permettere scroll orizzontale */
    .properties-slider {
        display: flex !important;
        flex-wrap: nowrap !important;
        overflow-x: auto !important;
        gap: 20px !important;
        padding: 0 !important;
    }

    /* Card mantengono 4 colonne come prima (le frecce occupano spazio ma le card restano 4) */
    .properties-grid-wrapper .properties-slider .property-card {
        flex: 0 0 calc((100% - 60px) / 4) !important;
        max-width: calc((100% - 60px) / 4) !important;
        min-width: calc((100% - 60px) / 4) !important;
    }

    /* Grid compra quando città selezionata */
    body.tax-property_status-compra .city-selected-grid .properties-grid {
        display: flex !important;
        flex-wrap: wrap !important;
        gap: 20px !important;
        justify-content: flex-start !important;
    }

    body.tax-property_status-compra .city-selected-grid .property-card {
        flex: 0 0 calc(25% - 15px) !important;
        max-width: calc(25% - 15px) !important;
    }

    /* Card home desktop */
    .card-home {
        max-width: 400px;
        margin: 0 auto;
    }

    /* Header desktop */
    .header-mobile-menu {
        display: none !important;
    }

    .header-desktop-menu {
        display: block !important;
    }

    /* Nasconde il menu mobile su desktop */
    .main-nav.navbar.houzez-elementor-mobile-menu {
        display: none !important;
    }

    /* Footer desktop */
    .footer-widgets {
        display: flex !important;
        justify-content: space-between;
    }

    .footer-widget {
        flex: 1;
        margin: 0 20px;
    }
}

/* ========================================
   DESKTOP MEDIUM (1080px - 1203px) - 3 colonne
   ======================================== */
@media (min-width: 1080px) and (max-width: 1203px) {
    /* Property cards - 3 colonne - SOLO per pagine città */
    body.tax-property_city .property-card {
        flex: 0 0 calc(33.333% - 14px) !important;
        max-width: calc(33.333% - 14px) !important;
    }

    /* Pagine città: sempre grid, mai slider */
    body.tax-property_city .properties-grid {
        display: flex !important;
        flex-wrap: wrap !important;
        gap: 21px !important;
        justify-content: flex-start !important;
        overflow-x: visible !important;
    }

    /* Slider desktop compra: 3 card visibili con scroll */
    .properties-slider {
        display: flex !important;
        flex-wrap: nowrap !important;
        overflow-x: auto !important;
        gap: 21px !important;
        padding: 0 !important;
    }

    /* Card mantengono 3 colonne come prima */
    .properties-grid-wrapper .properties-slider .property-card {
        flex: 0 0 calc((100% - 42px) / 3) !important;
        max-width: calc((100% - 42px) / 3) !important;
        min-width: calc((100% - 42px) / 3) !important;
    }

    /* Grid compra quando città selezionata */
    body.tax-property_status-compra .city-selected-grid .properties-grid {
        display: flex !important;
        flex-wrap: wrap !important;
        gap: 21px !important;
        justify-content: flex-start !important;
    }

    body.tax-property_status-compra .city-selected-grid .property-card {
        flex: 0 0 calc(33.333% - 14px) !important;
        max-width: calc(33.333% - 14px) !important;
    }
}

/* ========================================
   IPAD STYLES (768px - 1079px)
   ======================================== */
@media (min-width: 768px) and (max-width: 1079px) {
    /* Property cards tablet - 2 colonne - NON applicare allo slider compra */
    body.tax-property_city .property-card,
    body.tax-property_status-compra .city-selected-grid .property-card {
        flex: 0 0 calc(50% - 7.5px) !important;
        max-width: none !important;
    }

    /* Slider tablet: 3 card visibili con scroll */
    .properties-slider {
        display: flex !important;
        flex-wrap: nowrap !important;
        overflow-x: auto !important;
        gap: 15px !important;
        padding: 0 !important;
    }

    /* Card mantengono 3 colonne come prima */
    .properties-grid-wrapper .properties-slider .property-card {
        flex: 0 0 calc(33.333% - 10px) !important;
        min-width: calc(33.333% - 10px) !important;
        max-width: calc(33.333% - 10px) !important;
    }

    /* Pagine città tablet: sempre grid, mai slider */
    body.tax-property_city .properties-grid {
        flex-wrap: wrap !important;
        overflow-x: visible !important;
        justify-content: flex-start !important;
        padding: 0 !important;
    }

    body.tax-property_city .property-card {
        flex: 0 0 calc(50% - 7.5px) !important;
                max-width: calc(50% - 13px) !important;
    }

    /* Override per pagina compra tablet: 3 colonne SOLO quando c'è città selezionata dal form */
    .city-selected-grid .properties-grid {
        display: grid !important;
        grid-template-columns: repeat(3, 1fr) !important;
        gap: 15px !important;
    }

    /* Card home tablet */
    .card-home {
        max-width: 350px;
    }

    /* Header tablet */
    .header-mobile-menu {
        display: block !important;
    }

    /* Mostra il menu mobile su tablet */
    .main-nav.navbar.houzez-elementor-mobile-menu {
        display: block !important;
    }

    .header-desktop-menu {
        display: none !important;
    }

    /* Footer tablet */
    .footer-widgets {
        display: grid !important;
        grid-template-columns: 1fr 1fr;
        gap: 30px;
    }

    /* Navigation tablet */
    .main-nav {
        padding: 15px 0;
    }

    .nav-menu li {
        margin: 0 10px;
    }

    /* Sidebar tablet */
    .sidebar {
        width: 300px;
        margin-left: 30px;
    }

    .content-with-sidebar {
        display: flex;
        gap: 30px;
    }

    #header-hz-elementor .houzez-menu-toggle-button {
        padding: 8px;
        background: rgba(255, 255, 255, 0.1);
        border-radius: 4px;
    }

    #header-hz-elementor .houzez-menu-toggle-button i {
        font-size: 20px;
        color: var(--colore-grigio-chiaro);
    }

    /* Single Property - hero-right moved between hero and details: 2 columns on iPad */
    .hero-right.mobile-between-hero-details {
        margin: 0 auto;
        max-width: 1200px;
        padding: 0 20px;
        background-color: var(--colore-grigio-chiaro);
        display: grid;
        grid-template-columns: 1fr;
        gap: 16px;
        align-items: start;
        text-align: left;
    }

    .hero-right.mobile-between-hero-details .price-request-button,
    .hero-right.mobile-between-hero-details .btn.view-gallery {
        width: 100%;
        max-width: none;
        min-width: 0;
        margin: 0;
        font-family: var(--font-primario);
    }

    /* Ensure the CTA wrapper doesn't constrain centering */
}

/* ========================================
   MOBILE STYLES (451px - 767px): 2 colonna per hero-right spostata
   ======================================== */
@media (min-width: 451px) and (max-width: 767px) {
    /* When hero-right is moved between hero and details: keep 2 columns grid */
    .hero-right.mobile-between-hero-details {
        margin: 0 auto;
        max-width: 1500px;
        padding: 0 12px 12px 12px;
        background-color: var(--colore-grigio-chiaro);
        display: grid;
        grid-template-columns: 1fr;
        gap: 16px;
        align-items: start;
        text-align: left;
    }

    .property-details-section {
    padding: 50px 0;
    background: var(--e-global-color-aa5884c);
    color: var(--e-global-color-primary);
    }

    .hero-right.mobile-between-hero-details .price-request-button,
    .hero-right.mobile-between-hero-details .btn.view-gallery {
        width: 100%;
        max-width: none;
        min-width: 0;
        margin: 0;
        font-family: var(--font-primario);
    }
}

/* ========================================
   MOBILE STYLES (<768px)
   ======================================== */
@media (max-width: 767px) {

    

    /* Single Property - Hero mobile layout */
    .property-hero {          /* let content define height */
        min-height: 420px;      /* keep a decent image area */
    }

    .property-hero .container {
        padding: 20px 12px 24px; /* tighter padding on phones */
    }

    .hero-content {
        flex-direction: column;      /* stack title/meta and right column */
        align-items: flex-start;     /* left-align content */
        gap: 16px;                   /* compact spacing */
    }

    .hero-left,
    .hero-right {
        width: 100%;
    }

    .hero-right {
        order: 2;                    /* ensure right column comes after */
        align-items: stretch;        /* make inner elements full-width */
        justify-content: flex-start;
        gap: 12px;
    }

    .hero-left {
        order: 1;
    }

    .property-hero .property-meta {
        margin-top: 10px;            /* reduce space under title */
    }
}

/* ========================================
   EXTRA SMALL MOBILE (<450px): 1 colonna centrata per hero-right
   ======================================== */
@media (max-width: 450px) {
    /* When hero-right is moved between hero and details: single column centered */
    .hero-right.mobile-between-hero-details {
        max-width: 1500px;
        padding: 0 12px 12px 12px;
        background-color: var(--colore-grigio-chiaro);
        display: flex;
        flex-direction: column;
        align-items: center;
        text-align: center;
    }

    .btn.view-gallery.bottone-style-1 {
        margin-top: 20px !important;
    }

    .property-details-section {
    padding: 50px 0;
    background: var(--e-global-color-aa5884c);
    color: var(--e-global-color-primary);
    }

    /* Center blocks and buttons within the relocated area */
    .hero-right.mobile-between-hero-details .price-request-button,
    .hero-right.mobile-between-hero-details .btn.view-gallery {
        width: 300px;                  /* override 100% width */
        max-width: 260px;
        min-width: 180px;
        margin: 0 auto;               /* center horizontally */
        display: block;
        margin-top: 50px;
        font-family: var(--font-primario);
        box-shadow: unset;
    }
}

/* ========================================
   MOBILE - 2 colonne (500px - 767px)
   ======================================== */
@media (min-width: 500px) and (max-width: 767px) {
    /* Pagine città: sempre grid, mai slider */
    body.tax-property_city .properties-grid {
        flex-wrap: wrap !important;
        overflow-x: visible !important;
        justify-content: flex-start !important;
    }

    /* Pagine città: 2 colonne - NON applicare allo slider compra */
    body.tax-property_city .property-card,
    body.tax-property_status-compra .city-selected-grid .property-card {
        flex: 0 0 calc(50% - 7.5px) !important;
        max-width: calc(50% - 7.5px) !important;
        min-width: auto !important;
        margin-bottom: 20px;
    }

    /* Slider mobile largo compra: 2 card visibili con scroll */
    .properties-slider {
        display: flex !important;
        flex-wrap: nowrap !important;
        overflow-x: auto !important;
        gap: 15px !important;
        padding: 0 !important;
    }

    .properties-slider .property-card {
        flex: 0 0 calc(50% - 7.5px) !important;
        max-width: calc(50% - 7.5px) !important;
        min-width: calc(50% - 7.5px) !important;
    }

    /* Grid compra quando città selezionata */
    body.tax-property_status-compra .city-selected-grid .properties-grid {
        display: flex !important;
        flex-wrap: wrap !important;
        gap: 15px !important;
    }

    body.tax-property_status-compra .city-selected-grid .property-card {
        flex: 0 0 calc(50% - 7.5px) !important;
        max-width: calc(50% - 7.5px) !important;
    }

    .properties-grid {
        gap: 15px !important;
        padding: 0 10px;
    }
}

/* ========================================
   MOBILE - 1 colonna (<500px)
   ======================================== */
@media (max-width: 499px) {
    /* Pagine città: sempre grid, mai slider */
    body.tax-property_city .properties-grid {
        flex-wrap: wrap !important;
        overflow-x: visible !important;
        justify-content: flex-start !important;
    }

    /* Pagine città: 1 colonna - NON applicare allo slider compra */
    body.tax-property_city .property-card,
    body.tax-property_status-compra .city-selected-grid .property-card {
        flex: 0 0 100% !important;
        max-width: 100% !important;
        min-width: auto !important;
        margin-bottom: 20px;
    }

    /* Slider mobile piccolo compra: 1 card visibile con scroll */
    .properties-slider {
        display: flex !important;
        flex-wrap: nowrap !important;
        overflow-x: auto !important;
        gap: 10px !important;
        padding: 0 !important;
    }

    .properties-slider .property-card {
        flex: 0 0 100% !important;
        max-width: 100% !important;
        min-width: 100% !important;
    }


    /* Grid compra quando città selezionata */
    body.tax-property_status-compra .city-selected-grid .properties-grid {
        display: flex !important;
        flex-wrap: wrap !important;
        gap: 10px !important;
    }

    body.tax-property_status-compra .city-selected-grid .property-card {
        flex: 0 0 100% !important;
        max-width: 100% !important;
    }

    .properties-grid {
        gap: 10px !important;
        padding: 0 10px;
    }

    /* Card home mobile */
    .card-home {
        max-width: 100%;
        margin-bottom: 20px;
    }

    .card-home__overlay {
        padding: 15px;
        padding-top: 80px;
    }

    .card-home__title {
        font-size: 18px;
        line-height: 1.2;
    }
    
    .two-col-title,
    .two-col-desc {
        text-align: center;
    }

    /* Header mobile */
    .header-mobile-menu {
        display: block !important;
    }

    .header-desktop-menu {
        display: none !important;
    }

    /* Mostra il menu mobile su mobile */
    .main-nav.navbar.houzez-elementor-mobile-menu {
        display: block !important;
    }

    .site-header {
        padding: 10px 0;
    }

    .site-logo img {
        max-width: 150px;
        height: auto;
    }

    /* Navigation mobile */
    .main-nav {
        display: none;
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100vh;
        background: rgba(0,0,0,0.9);
        z-index: 9999;
        flex-direction: column;
        justify-content: center;
        align-items: center;
    }

    .main-nav.active {
        display: flex;
    }

    .nav-menu {
        flex-direction: column;
        text-align: center;
    }

    .nav-menu li {
        margin: 15px 0;
    }

    .nav-menu a {
        font-size: 18px;
        padding: 10px 20px;
    }

    /* Mobile menu toggle */
    .mobile-menu-toggle {
        display: block !important;
        background: none;
        border: none;
        font-size: 24px;
        cursor: pointer;
        padding: 10px;
    }

    .form-group {
        margin-bottom: 20px;
    }

    .form-control {
        padding: 12px 15px;
        font-size: 16px; /* Previene zoom su iOS */
    }

    /* Buttons mobile */
    .btn,
    .button,
    .price-request-button {
        padding: 12px 20px !important;
        font-size: 16px !important;
        min-height: 44px; /* Touch target minimum */
        width: 100%;
        margin-bottom: 10px;
    }

    .slider-item {
        padding: 0 10px;
    }

    /* Footer mobile */
    .footer-widgets {
        display: block !important;
    }

    .footer-widget {
        margin-bottom: 30px;
        text-align: center;
    }

    /* Sidebar mobile */
    .sidebar {
        width: 100% !important;
        margin-left: 0 !important;
        margin-top: 30px;
    }

    /* Panoramica: 2 colonne su mobile */
    .property-overview-cards {
        grid-template-columns: repeat(2, 1fr);
    }

    .content-with-sidebar {
        display: block;
    }

    /* Search forms mobile */
    .property-search-form {
        padding: 20px 15px;
    }

    .search-field {
        margin-bottom: 15px;
    }

    /* Modals mobile */
    .modal-dialog {
        margin: 10px;
        width: calc(100% - 20px);
        max-width: none;
    }

    /* Tables mobile */
    .table-responsive {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    /* Images mobile */
    img {
        max-width: 100%;
        height: auto;
    }

    /* Typography mobile */
    h1 { font-size: 28px; }
    h2 { font-size: 24px; }
    h3 { font-size: 20px; }
    h4 { font-size: 18px; }
    h5 { font-size: 16px; }
    h6 { font-size: 14px; }

    .lead {
        font-size: 18px;
        line-height: 1.4;
    }

    /* Spacing mobile */
    .section {
        padding: 40px 0;
    }

    /* Hide desktop elements */
    .desktop-only {
        display: none !important;
    }
}

/* ========================================
   EXTRA SMALL MOBILE (<480px)
   ======================================== */
@media (max-width: 479px) {
    /* Property cards extra small */
    .property-card {
        border-radius: 10px;
        margin-bottom: 15px;
    }

    .property-image-wrapper {
        height: 150px;
    }

    /* Card home extra small */
    .card-home__overlay {
        padding: 12px;
        padding-top: 60px;
    }

    .card-home__title {
        font-size: 16px;
    }

    /* Buttons extra small */
    .btn,
    .button,
    .price-request-button {
        padding: 10px 15px !important;
        font-size: 15px !important;
        min-height: 40px;
    }

    /* Typography extra small */
    h1 { font-size: 24px; }
    h2 { font-size: 20px; }
    h3 { font-size: 18px; }

    .lead {
        font-size: 16px;
    }

    /* Spacing extra small */
    .section {
        padding: 30px 0;
    }

    /* Navigation extra small */
    .nav-menu a {
        font-size: 16px;
        padding: 8px 15px;
    }
}

/* ========================================
   MAP HEIGHT CLAMP (<= 480px)
   ======================================== */
@media (max-width: 768px) {
    /* Limit map height on mobile and tablet screens */
    .multi-apartments-map-container { overflow: hidden; }

    /* Force the map element to cap at 400px even if shortcode set 500px */
    .multi-apartments-map-container .multi-apartments-map {
        height: 300px !important;
        max-height: 300px !important;
    }

    /* Ensure internal canvas respects the cap */
    .multi-apartments-map-container .maplibregl-canvas-container,
    .multi-apartments-map-container .maplibregl-canvas, .multi-apartments-map-container {
        height: 100% !important;
        max-height: 300px !important;
    }

    /* Apply same height limit to office map */
    .static-office-map-container { overflow: hidden; }

    .static-office-map-container .static-office-map {
        height: 300px !important;
        max-height: 300px !important;
    }

    .static-office-map-container .maplibregl-canvas-container,
    .static-office-map-container .maplibregl-canvas, .static-office-map-container {
        height: 100% !important;
        max-height: 300px !important;
    }
}

/* ========================================
   UTILITY CLASSES RESPONSIVE
   ======================================== */

/* Hide/show utilities */
.mobile-only {
    display: none !important;
}

/* ========================================
   FEATURES GRID: 2 colonne fino a 800px
   ======================================== */
@media (max-width: 800px) {
    .features-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 767px) {
    .mobile-only {
        display: block !important;
    }

    .desktop-only {
        display: none !important;
    }
}

@media (min-width: 768px) {
    .mobile-only {
        display: none !important;
    }

    .desktop-only {
        display: block !important;
    }
}

/* Flex utilities */
.flex-column-mobile {
    flex-direction: row;
}

@media (max-width: 767px) {
    .flex-column-mobile {
        flex-direction: column !important;
    }
}

/* Text utilities */
.text-center-mobile {
    text-align: left;
}

@media (max-width: 767px) {
    .text-center-mobile {
        text-align: center !important;
    }
}

/* Spacing utilities */
.mb-0-mobile {
    margin-bottom: 1rem;
}

@media (max-width: 767px) {
    .mb-0-mobile {
        margin-bottom: 0 !important;
    }
}

/* ========================================
   ACCESSIBILITY MOBILE
   ======================================== */

@media (max-width: 767px) {
    /* Touch targets minimum size */
    button,
    .btn,
    a[role="button"],
    input[type="submit"],
    input[type="button"] {
        min-height: 44px;
        min-width: 44px;
    }

    /* Focus indicators */
    button:focus,
    .btn:focus,
    input:focus,
    textarea:focus,
    select:focus {
        outline: 2px solid var(--e-global-color-primary);
        outline-offset: 2px;
    }

        /* Exclusive Listing: leggero text-shadow sui testi solo mobile */
        .exclusive-listing__kicker,
        .exclusive-listing__title,
        .exclusive-listing__location,
        .exclusive-listing__price {
            text-shadow: 0 2px 8px rgba(0, 0, 0, 0.455);
        }

    /* Prevent horizontal scroll */
    body {
        overflow-x: hidden;
    }

    /* Sell Property Form - Tablet */
    .sell-form-container {
        padding: 30px 25px;
        margin: 0 20px;
    }
    
    .form-columns-2 {
        grid-template-columns: 1fr;
        gap: 0;
    }
    
    .phone-input {
        flex-direction: column;
        gap: 15px;
    }
    
    .country-code {
        flex: 1;
        min-width: auto;
    }
    
    .sell-property-form-section {
        padding: 60px 0;
    }
    
    .sell-property-form-section h2 {
        font-size: 28px;
    }
    
    .sell-property-form-section .form-subtitle {
        font-size: 16px;
    }
}

/* ========================================
   COMPONENT SPECIFIC RESPONSIVE STYLES
   ======================================== */

/* ===== COMPRA PAGE ===== */

/* ===== FLIP CARDS ===== */
/* Tablet e sotto: slider con dots */
@media (max-width: 1199px) {
    .flip-cards-wrapper {
        position: relative;
        display: flex;
        flex-direction: column;
        align-items: center;    
        overflow: visible !important;
        padding: 0 !important;
    }
    
    .flip-cards {
        display: flex !important;
        flex-wrap: nowrap !important;
        overflow-x: auto !important;
        scroll-snap-type: x mandatory;
        gap: 20px;
        scroll-behavior: smooth;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        align-items: center;
        min-height: clamp(22rem, 40vw, 28rem);
        width: 100%;
        overflow-y: visible !important;
        padding: 50px 0; /* Spazio sopra e sotto per le cards flippate */
    }
    
    .flip-cards::-webkit-scrollbar {
        display: none; /* Chrome, Safari */
    }
    
    .flip-card {
        flex: 0 0 100%;
        scroll-snap-align: center;
    }
    
    .flip-card__inner {
        width: 100% !important;
        max-width: 90%;
        margin: 0 auto;
    }
    
    /* Mostra dots su mobile - identici a experience-marocco */
        .flip-cards-dots {
        display: flex !important;
        justify-content: center !important;
        align-items: center !important;
        gap: 8px !important;
        padding: 0 !important;
        padding-bottom: 60px !important;
    }
    
    /* Stile dots flip cards - consistente a tutte le risoluzioni */
    .flip-card-dot {
        width: 10px !important;
        height: 10px !important;
        max-width: 10px !important;
        max-height: 10px !important;
        min-width: 10px !important;
        min-height: 10px !important;
        border-radius: 50% !important;
        background: rgba(0, 0, 0, 0.4) !important;
    }
    
    .flip-card-dot.active {
        background: var(--e-global-color-primary) !important;
        width: 28px !important;
        max-width: 28px !important;
        min-width: 28px !important;
        height: 10px !important;
        max-height: 10px !important;
        min-height: 10px !important;
        border-radius: 5px !important;
    }
}

/* ===== PDF BENTO GRID ===== */
/* Mobile & Tablet - Flip Cards: bounce hint animation */
@media (max-width: 1199px) {
    @keyframes flipcard-bounce-hint {
        0%, 70%, 100% { transform: translateY(0); }
        15% { transform: translateY(-8px); }
        30% { transform: translateY(0); }
        45% { transform: translateY(-4px); }
        60% { transform: translateY(0); }
    }

    /* Animate outer card to avoid interfering with inner rotateY flip */
    .flip-cards .flip-card {
        animation: flipcard-bounce-hint 3s ease-in-out infinite;
        will-change: transform;
    }

    /* Small stagger so they don't bounce all at once */
    .flip-cards .flip-card:nth-child(2) { animation-delay: .2s; }
    .flip-cards .flip-card:nth-child(3) { animation-delay: .4s; }

    /* Pause animation on user interaction */
    .flip-cards .flip-card:hover,
    .flip-cards .flip-card:focus-within,
    .flip-cards .flip-card:active {
        animation: none !important;
    }
}

/* Respect reduced motion preferences */
@media (max-width: 1199px) and (prefers-reduced-motion: reduce) {
    .flip-cards .flip-card { animation: none !important; }
}
/* Tablet e sotto: 1 colonna */
@media (max-width: 1199px) {
    .pdf-marocco-grid {
        grid-template-columns: 1fr !important;
        gap: 40px;
        padding: 50px 0;
    }
    .pdf-marocco-right { justify-content: center; }
    .pdf-cover-container { max-width: 100%; }
    
    /* Two Col Contact - Layout a singola colonna */
    .contact-col-form {
        display: none !important;
    }
    
    .mobile-contact-trigger {
        display: block;
        width: 100%;
        max-width: 300px;
        margin: 20px auto;
        align-self: center;
        justify-self: center;
        margin-bottom: 50px !important;
    }
    
    .two-col-contact-grid {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: flex-end;
        text-align: center;
        gap: 0 !important;
    }
    
    .contact-col-text {
        align-items: center;
        margin-bottom: 0;
        order: 1;
    }
    
    /* Bottone dopo il testo */
    .mobile-contact-trigger {
        order: 2;
    }
    
    .two-col-title-desktop {
        display: none;
    }
    
    .two-col-title-mobile {
        display: block;
    }
    
    .two-col-title,
    .two-col-desc {
        text-align: center;
    }
}

/* DESKTOP LARGE (1200px+) */
@media (min-width: 1200px) {
    .custom-taxonomy-hero {
        padding: 100px 40px;
    }

    .custom-taxonomy-hero .custom-taxonomy-count {
        font-size: 3rem;
    }

    .custom-taxonomy-hero .custom-taxonomy-intro {
        font-size: 1.25rem;
        max-width: 900px;
    }

    .custom-search-hero .property-search-form {
        max-width: 1200px;
        padding: 20px 30px;
    }
}

/* DESKTOP (1080px - 1199px) */
@media (min-width: 1080px) and (max-width: 1199px) {
    .custom-taxonomy-hero {
        padding: 80px 30px;
    }

    .custom-taxonomy-hero .custom-taxonomy-count {
        font-size: 2.75rem;
    }

    .custom-search-hero .property-search-form {
        max-width: 1000px;
        padding: 18px 25px;
    }
}

/* IPAD LANDSCAPE (768px - 1079px) */
@media (min-width: 768px) and (max-width: 1079px) {
    .custom-taxonomy-hero {
        padding: 60px 25px;
    }

    .custom-taxonomy-hero .custom-taxonomy-count {
        font-size: 2.25rem;
        margin-bottom: 12px;
    }

    .custom-taxonomy-hero .custom-taxonomy-intro {
        font-size: 1.1rem;
        max-width: 700px;
        margin-bottom: 25px;
    }

    .custom-search-hero .property-search-form {
        max-width: 90%;
        padding: 15px 20px;
    }

    .custom-search-hero .property-search-form select,
    .custom-search-hero .property-search-form input {
        font-size: 0.9rem;
    }
}

/* IPAD PORTRAIT (600px - 767px) */
@media (min-width: 600px) and (max-width: 767px) {
    .custom-taxonomy-hero {
        padding: 50px 20px;
    }

    .custom-taxonomy-hero .custom-taxonomy-count {
        font-size: 2rem;
        margin-bottom: 10px;
    }

    .custom-taxonomy-hero .custom-taxonomy-intro {
        font-size: 1rem;
        max-width: 600px;
        margin-bottom: 20px;
    }

    .custom-search-hero .property-search-form {
        max-width: 95%;
        padding: 12px 18px;
    }
}

/* MOBILE LARGE (480px - 599px) */
@media (min-width: 480px) and (max-width: 599px) {
    .custom-taxonomy-hero {
        padding: 40px 15px;
    }

    .custom-taxonomy-hero .custom-taxonomy-count {
        font-size: 1.75rem;
        margin-bottom: 8px;
    }

    .custom-taxonomy-hero .custom-taxonomy-intro {
        font-size: 0.95rem;
        max-width: 500px;
        margin-bottom: 18px;
        line-height: 1.6;
    }

    .custom-search-hero .property-search-form {
        max-width: 100%;
        padding: 10px 15px;
    }

    .custom-search-hero .property-search-form select,
    .custom-search-hero .property-search-form input {
        font-size: 0.85rem;
        padding: 8px 12px;
    }
}

/* MOBILE SMALL (<480px) */
@media (max-width: 479px) {
    .custom-taxonomy-hero {
        padding: 30px 12px;
    }

    .custom-taxonomy-hero .custom-taxonomy-count {
        font-size: 1.5rem;
        margin-bottom: 6px;
    }

/* ===== TWO COL CONTACT SHORTCODE ===== */
/* Desktop medium and below */
@media (max-width: 1199px) {
    .two-col-contact-grid {
        padding-top: 200px;
    }
}

/* Tablet and below */
@media (max-width: 1079px) {
    .two-col-contact-grid {
        grid-template-columns: 1fr !important; /* stack */
        gap: 1.5rem;
        padding-top: 140px;
    }
    .contact-col-text {
        margin-bottom: 0;
        align-items: flex-start;
    }
    .contact-col-form {
        margin-bottom: 0;
    }
    .form-group input:not([type="checkbox"]):not([type="radio"]),
    .form-group textarea {
        max-width: 100%;
    }
}

/* Mobile */
@media (max-width: 767px) {
    .two-col-contact-section {
        padding-top: 2rem;
    }
    .two-col-contact-grid {
        padding-top: 80px;
    }
    .two-col-title {
        text-align: left;
    }
    .two-col-desc {
        font-size: 1.125rem; /* legibility on mobile */
    }
    .tc-submit-btn {
        width: 100%;
    }
}

/* Extra small */
@media (max-width: 479px) {
    .two-col-contact-grid {
        gap: 1rem;
        padding-top: 60px;
    }
    .contact-col-form {
        padding: 16px;
        border-radius: 10px;
    }
    .form-row {
        flex-direction: column;
        gap: 8px;
    }
}

    .custom-taxonomy-hero .custom-taxonomy-intro {
        font-size: 0.9rem;
        max-width: 100%;
        margin-bottom: 15px;
        line-height: 1.5;
    }

    .custom-search-hero .property-search-form {
        max-width: 100%;
        padding: 8px 12px;
        margin: 0 5px;
    }

    .custom-search-hero .property-search-form select,
    .custom-search-hero .property-search-form input {
        font-size: 0.8rem;
        padding: 6px 10px;
        border-radius: 25px;
    }

    /* Search form layout adjustments */
    .property-search-form .search-fields {
        flex-direction: column;
        gap: 8px;
    }

    .property-search-form .search-field {
        width: 100%;
    }

    .property-search-form .search-button {
        width: 100%;
        margin-top: 5px;
    }
}

/* ===== HOME PAGE ===== */

/* FINAL OVERRIDES: Ensure two-col-contact stacks at <=1079px even if earlier blocks are nested */
@media (max-width: 1079px) {
    .two-col-contact-grid { grid-template-columns: 1fr !important; }
    /* Center align the text column */
    .contact-col.contact-col-text { align-items: center !important; }
    .contact-col.contact-col-text .two-col-title,
    .contact-col.contact-col-text .two-col-desc { text-align: center !important; }
    /* Add spacing above the form column when stacked */
    .contact-col.contact-col-form { margin-top: 50px !important; max-width: 400px; margin: 0 auto; }
    .contact-col-form .two-col-contact-form {
    width: 400px;
}
}

/* ===== VIDEO HERO SECTION ===== */
/* Desktop: 100vh */
@media (min-width: 901px) {
    .elementor-element-98ee834 {
        min-height: 100vh !important;
    }
}

/* Responsive font size for hero headings */
.elementor-element-30cab96 .elementor-heading-title {
    font-size: clamp(1.5rem, 3.5vw, 40px) !important;
}

.elementor-element-5c68d82 .elementor-heading-title {
    font-size: clamp(2rem, 5vw, 71px) !important;
}

@media (max-width: 991px) {
/* .elementor-element-441e2cd {
        display: none !important;
    } */
    /* Hide menu from tablet down */
    .houzez-ele-menu-04b0f84 {
        display: none !important;
    }

    .houzez-menu-toggle-button{
        width: 44px !important;
    }
    
    /* Align mobile menu to the right */
    .houzez-ele-mobile-menu-04b0f84 {
        display: flex !important;
        justify-content: flex-end !important;
    }
    
    /* Mobile menu transparent background */
    .nav-mobile .logged-in-nav a,
    .nav-mobile .main-nav .nav-item .nav-item a,
    .nav-mobile .main-nav .nav-item a,
    .navi-login-register .main-nav .nav-item a {
        background-color: transparent !important;
        font-family: var(--font-primario), Sans-serif !important;
    }
    
    #main-nav-04b0f84 {
    align-items: flex-start !important;
}
}

/* Tablet: 50vh, hide buttons container */
@media (max-width: 900px) {
    .elementor-element-98ee834 {
        min-height: 90vh !important;
    }
}

/* DESKTOP LARGE (1200px+) */
@media (min-width: 1200px) {
    .card-home--overlay {
        max-width: 650px;
    }

    .card-home__image {
        height: 800px;
    }

    .horizontal-property-item {
        width: 350px;
    }

    .horizontal-properties-list {
        gap: 25px;
    }
}

/* DESKTOP (1080px - 1199px) */
@media (min-width: 1080px) and (max-width: 1199px) {
    .card-home--overlay {
        max-width: 600px;
    }

    .card-home__image {
        height: 750px;
    }

    .horizontal-property-item {
        width: 320px;
    }
}

/* IPAD LANDSCAPE (768px - 1079px) */
@media (min-width: 768px) and (max-width: 1079px) {
    .card-home--overlay {
        max-width: 500px;
    }

    .card-home__image {
        height: 600px;
    }

    .card-home__overlay {
        padding: 15px;
        padding-top: 80px;
    }

    .card-home__title {
        font-size: 20px;
        margin-bottom: 4px;
    }

    .horizontal-property-item {
        width: 280px;
    }

    .horizontal-properties-list {
        gap: 15px;
    }

    .city-section-title {
        font-size: 22px;
        margin-bottom: 18px;
    }
}

/* IPAD PORTRAIT (600px - 767px) */
@media (min-width: 600px) and (max-width: 767px) {
    .card-home--overlay {
        max-width: 450px;
    }

    .card-home__image {
        height: 550px;
    }

    .card-home__overlay {
        padding: 12px;
        padding-top: 70px;
    }

    .card-home__title {
        font-size: 18px;
        margin-bottom: 3px;
    }

    .card-home__location {
        font-size: 14px;
        margin-bottom: 4px;
    }

    .card-home__price {
        font-size: 16px;
    }

    .horizontal-property-item {
        width: 260px;
    }

    .city-section-title {
        font-size: 20px;
        margin-bottom: 15px;
    }
}

/* MOBILE LARGE (480px - 599px) */
@media (min-width: 480px) and (max-width: 599px) {
    .card-home--overlay {
        max-width: 400px;
    }

    

    .card-home__image {
        height: 500px;
    }

    .card-home__overlay {
        padding: 10px;
        padding-top: 60px;
    }

    .card-home__title {
        font-size: 16px;
        margin-bottom: 2px;
    }

    .card-home__location {
        font-size: 13px;
        margin-bottom: 3px;
    }

    .card-home__price {
        font-size: 15px;
    }

    .horizontal-property-item {
        width: 240px;
    }

    .horizontal-property-item .custom-property-content {
        padding: 12px;
    }

    .horizontal-property-item .custom-property-title {
        font-size: 15px;
    }

    .city-section-title {
        font-size: 18px;
        margin-bottom: 12px;
    }


}

/* MOBILE SMALL (<480px) */
@media (max-width: 479px) {
    .card-home--overlay {
        max-width: 100%;
        margin: 0 10px;
    }

    .card-home__image {
        height: 400px;
    }

    .contact-col.contact-col-form { margin-top: 0px !important; max-width: 300px; margin: 0 auto; }

    .card-home__overlay {
        padding: 8px;
        padding-top: 50px;
    }

    .card-home__title {
        font-size: 14px;
        margin-bottom: 1px;
    }

    .card-home__location {
        font-size: 12px;
        margin-bottom: 2px;
    }

    .card-home__price {
        font-size: 14px;
    }

    .slick-slide {
        margin: 0 5px;
    }

    .slick-list {
        margin: 0 -5px;
    }

    .horizontal-property-item {
        width: 220px;
    }

    .horizontal-property-item .custom-property-image {
        height: 160px;
    }

    .horizontal-property-item .custom-property-content {
        padding: 10px;
    }

    .horizontal-property-item .custom-property-title {
        font-size: 14px;
        margin-bottom: 6px;
    }

    .horizontal-property-item .custom-property-location {
        font-size: 13px;
        margin-bottom: 8px;
    }

    .horizontal-property-item .custom-property-meta {
        gap: 8px;
        margin-bottom: 8px;
        font-size: 12px;
    }

    .horizontal-property-item .custom-property-price {
        font-size: 18px;
    }

    .city-section-title {
        font-size: 16px;
        margin-bottom: 10px;
    }
}

/* ===== PROPERTY CARDS ===== */

/* DESKTOP LARGE (1200px+) */
@media (min-width: 1200px) {
    .property-card {
        flex: 0 0 calc(25% - 15px) !important;
        max-width: 320px !important;
    }

    .property-image-wrapper {
        height: 200px;
    }

    .properties-grid {
        gap: 20px;
    }
}

/* DESKTOP (1080px - 1199px) */
@media (min-width: 1080px) and (max-width: 1199px) {

    .property-image-wrapper {
        height: 190px;
    }
}

/* IPAD LANDSCAPE (768px - 1079px) */
@media (min-width: 992px) and (max-width: 1079px) {
    /* Grid standard - NON applicare allo slider compra */
    body.tax-property_city .property-card, body.tax-property_status-compra .city-selected-grid .property-card {
        flex: 0 0 calc(33.333% - 10px) !important;
        min-width: 240px !important;
        min-height: 380px;
    }

    .property-image-wrapper {
        height: 170px;
    }

    .properties-grid {
        gap: 15px;
        padding: 0 10px;
    }

    /* Pills adjustments */
    .opportunita-pill,
    .venduto-pill {
        font-size: 12px;
        padding: 3px 12px;
        right: 10px;
        bottom: 10px;
    }
}

/* IPAD PORTRAIT (600px - 767px) */
@media (min-width: 600px) and (max-width: 767px) {
    .property-card {
        flex: 0 0 calc(50% - 12px) !important;
        max-width: 260px !important;
        min-width: 220px !important;
        min-height: 360px;
    }

    .property-image-wrapper {
        height: 160px;
    }

    .properties-grid {
        gap: 12px;
        padding: 0 !important;
    }

    /* Pills adjustments */
    .opportunita-pill,
    .venduto-pill {
        font-size: 11px;
        padding: 2px 10px;
        right: 8px;
        bottom: 8px;
    }

    /* Like button adjustments */
    .property-like-btn {
        width: 30px !important;
        height: 30px !important;
        left: 8px !important;
        bottom: 8px !important;
    }
}

/* MOBILE LARGE (480px - 599px) */
@media (min-width: 480px) and (max-width: 599px) {
    .property-card {
        flex: 0 0 calc(50% - 10px) !important;
        max-width: 240px !important;
        min-width: 200px !important;
        min-height: 340px;
        border-radius: 12px;
    }

    .property-image-wrapper {
        height: 150px;
    }

    .properties-grid {
        gap: 10px;
        padding: 0 5px;
    }

    /* Pills adjustments */
    .opportunita-pill,
    .venduto-pill {
        font-size: 10px;
        padding: 2px 8px;
        right: 6px;
        bottom: 6px;
    }
}

/* MOBILE SMALL (<480px) */
@media (max-width: 479px) {
    .property-card {
        flex: 0 0 100% !important;
        max-width: none !important;
        min-width: auto !important;
        min-height: 320px;
        border-radius: 10px;
        margin-bottom: 15px;
    }

    .property-image-wrapper {
        height: 140px;
    }

    .properties-grid {
        gap: 8px;
        padding: 0;
    }

    /* Pills adjustments */
    .opportunita-pill,
    .venduto-pill {
        font-size: 9px;
        padding: 1px 6px;
        right: 5px;
        bottom: 5px;
    }

    /* Like button adjustments */
    .property-like-btn {
        width: 26px !important;
        height: 26px !important;
        left: 5px !important;
        bottom: 5px !important;
    }

    /* Property content adjustments */
    .property-card .property-content {
        padding: 12px;
    }

    .property-card .property-title {
        font-size: 16px;
        line-height: 1.3;
    }

    .property-card .property-price {
        font-size: 18px;
        margin-bottom: 8px;
    }

    .property-card .property-meta {
        font-size: 13px;
        gap: 8px;
    }
}

/* ===== CONTACT FORM ===== */

/* DESKTOP LARGE (1200px+) */
@media (min-width: 1200px) {

    .form-row {
        gap: 25px;
    }

    .custom-form .btn-submit {
        padding: 16px 35px !important;
        font-size: 16px !important;
    }
}

/* DESKTOP (1080px - 1199px) */
@media (min-width: 1080px) and (max-width: 1199px) {

    .form-row {
        gap: 20px;
    }
}

/* IPAD LANDSCAPE (768px - 1079px) */
@media (min-width: 768px) and (max-width: 1079px) {

    .form-row {
        gap: 15px;
    }

    .form-group {
        margin-bottom: 12px;
    }

    label {
        font-size: 13px;
        margin-bottom: 5px;
    }

    input, textarea {
        padding: 10px;
        font-size: 14px;
    }

    textarea {
        min-height: 100px;
    }

    .custom-form .btn-submit {
        padding: 12px 25px !important;
        font-size: 14px !important;
    }
}

/* IPAD PORTRAIT (600px - 767px) */
@media (min-width: 600px) and (max-width: 767px) {

    .form-row {
        flex-direction: column;
        gap: 0;
    }

    .form-group {
        margin-bottom: 10px;
    }

    label {
        font-size: 12px;
        margin-bottom: 4px;
    }

    input, textarea {
        padding: 8px;
        font-size: 13px;
    }

    textarea {
        min-height: 80px;
    }

    .custom-form .btn-submit {
        padding: 10px 20px !important;
        font-size: 13px !important;
        width: 100%;
    }
}

/* MOBILE LARGE (480px - 599px) */
@media (min-width: 480px) and (max-width: 599px) {

    .form-row {
        flex-direction: column;
        gap: 0;
    }

    .form-group {
        margin-bottom: 8px;
    }

    label {
        font-size: 11px;
        margin-bottom: 3px;
    }

    input, textarea {
        padding: 6px;
        font-size: 12px;
    }

    textarea {
        min-height: 70px;
    }

    .custom-form .btn-submit {
        padding: 8px 15px !important;
        font-size: 12px !important;
        width: 100%;
    }
}

/* MOBILE SMALL (<480px) */
@media (max-width: 479px) {

    .form-row {
        flex-direction: column;
        gap: 0;
    }

    .form-group {
        margin-bottom: 6px;
    }

    label {
        font-size: 10px;
        margin-bottom: 2px;
    }

    input, textarea {
        padding: 4px;
        font-size: 11px;
    }

    textarea {
        min-height: 60px;
    }

    .custom-form .btn-submit {
        padding: 6px 12px !important;
        font-size: 11px !important;
        width: 100%;
        margin-top: 5px;
    }

    .checkbox {
        font-size: 11px;
    }
}

/* ===== SELL PROPERTY FORM ===== */

/* DESKTOP LARGE (1200px+) */
@media (min-width: 1200px) {
    .sell-property-form-section .section-header {
        margin-bottom: 50px;
    }

    .form-columns-2 {
        gap: 25px;
    }

    .sell-submit-btn {
        padding: 20px 45px;
        font-size: 17px;
        min-width: 220px;
    }

    .consent-container {
        padding: 30px;
    }
}

/* DESKTOP (1080px - 1199px) */
@media (min-width: 1080px) and (max-width: 1199px) {
    .sell-property-form-section .section-header {
        margin-bottom: 45px;
    }

    .form-columns-2 {
        gap: 20px;
    }

    .sell-submit-btn {
        padding: 18px 40px;
        min-width: 200px;
    }
}

/* IPAD LANDSCAPE (768px - 1079px) */
@media (min-width: 768px) and (max-width: 1079px) {
    .sell-property-form-section .section-header {
        margin-bottom: 35px;
    }

    .sell-property-form-section h2 {
        font-size: 32px;
    }

    .form-field {
        margin-bottom: 18px;
    }

    .form-field label {
        font-size: 13px;
    }

    .form-field input,
    .form-field select {
        padding: 13px 18px;
        font-size: 15px;
    }

    .form-columns-2 {
        gap: 15px;
    }

    .phone-input {
        gap: 8px;
    }

    .country-code {
        flex: 0 0 100px;
        min-width: 100px;
    }

    .consent-container {
        padding: 20px;
    }

    .checkbox-label {
        font-size: 13px;
    }

    .sell-submit-btn {
        padding: 16px 35px;
        font-size: 15px;
        min-width: 180px;
    }
}

/* IPAD PORTRAIT (600px - 767px) */
@media (min-width: 600px) and (max-width: 767px) {
    .sell-property-form-section .section-header {
        margin-bottom: 30px;
    }

    .sell-property-form-section h2 {
        font-size: 28px;
    }

    .sell-property-form-section .section-subtitle {
        font-size: 16px;
    }

    .form-field {
        margin-bottom: 15px;
    }

    .form-field label {
        font-size: 12px;
    }

    .form-field input,
    .form-field select {
        padding: 12px 15px;
        font-size: 14px;
    }

    .form-columns-2 {
        grid-template-columns: 1fr;
        gap: 0;
    }

    .phone-input {
        flex-direction: column;
        gap: 12px;
    }

    .country-code {
        flex: 1;
        min-width: auto;
    }

    .consent-container {
        padding: 18px;
    }

    .checkbox-label {
        font-size: 12px;
        gap: 10px;
    }

    .checkmark {
        width: 18px;
        height: 18px;
    }

    .sell-submit-btn {
        padding: 14px 30px;
        font-size: 14px;
        min-width: 160px;
    }

    .form-submit {
        margin-top: 25px;
        padding-top: 25px;
    }
}

/* MOBILE LARGE (480px - 599px) */
@media (min-width: 480px) and (max-width: 599px) {
    .sell-property-form-section .section-header {
        margin-bottom: 25px;
    }

    .sell-property-form-section h2 {
        font-size: 24px;
    }

    .sell-property-form-section .section-subtitle {
        font-size: 15px;
    }

    .form-field {
        margin-bottom: 12px;
    }

    .form-field label {
        font-size: 11px;
    }

    .form-field input,
    .form-field select {
        padding: 10px 12px;
        font-size: 13px;
    }

    .form-columns-2 {
        grid-template-columns: 1fr;
        gap: 0;
    }

    .phone-input {
        flex-direction: column;
        gap: 10px;
    }

    .country-code {
        flex: 1;
        min-width: auto;
    }

    .consent-container {
        padding: 15px;
    }

    .checkbox-label {
        font-size: 11px;
        gap: 8px;
    }

    .checkmark {
        width: 16px;
        height: 16px;
    }

    .sell-submit-btn {
        width: 100%;
        padding: 12px 20px;
        font-size: 13px;
        min-width: auto;
    }

    .form-submit {
        margin-top: 20px;
        padding-top: 20px;
    }
}

/* MOBILE SMALL (<480px) */
@media (max-width: 479px) {
    .sell-property-form-section .section-header {
        margin-bottom: 20px;
    }

    .sell-property-form-section h2 {
        font-size: 20px;
    }

    .sell-property-form-section .section-subtitle {
        font-size: 14px;
    }

    .form-field {
        margin-bottom: 10px;
    }

    .form-field label {
        font-size: 10px;
    }

    .form-field input,
    .form-field select {
        padding: 8px 10px;
        font-size: 12px;
    }

    .form-columns-2 {
        grid-template-columns: 1fr;
        gap: 0;
    }

    .phone-input {
        flex-direction: column;
        gap: 8px;
    }

    .country-code {
        flex: 1;
        min-width: auto;
    }

    .consent-container {
        padding: 12px;
    }

    .checkbox-label {
        font-size: 10px;
        gap: 6px;
    }

    .checkmark {
        width: 14px;
        height: 14px;
    }

    .sell-submit-btn {
        width: 100%;
        padding: 10px 15px;
        font-size: 12px;
        min-width: auto;
    }

    .form-submit {
        margin-top: 15px;
        padding-top: 15px;
    }

    .form-success,
    .form-error {
        padding: 15px 20px;
        margin-bottom: 20px;
    }
}

/* ===== REVIEWS SLIDER ===== */

/* DESKTOP LARGE (1200px+) */
@media (min-width: 1200px) {
    .reviews-slider__track {
        grid-template-columns: repeat(3, 1fr);
        gap: 2.5rem;
    }

    .review-slide {
        padding: 1.5rem 2rem;
    }

    .review-slide__quote {
        font-size: 1.1rem;
        margin-bottom: 0.75rem;
    }

    .review-avatar {
        width: 72px;
        height: 72px;
    }

    .review-slide__icon {
        width: 68px !important;
        height: 68px !important;
        font-size: 68px;
    }

    .review-slide__name {
        font-size: 1.25rem;
    }

    .reviews-slider__nav {
        gap: 1.25rem;
        margin-top: 2.5rem;
    }

    .reviews-slider__dot {
        width: 14px !important;
        height: 14px !important;
    }
}

/* DESKTOP (1080px - 1199px) */
@media (min-width: 1080px) and (max-width: 1199px) {
    .reviews-slider__track {
        grid-template-columns: repeat(3, 1fr);
        gap: 2rem;
    }

    .review-slide {
        padding: 1.25rem 1.5rem;
    }

    .review-slide__quote {
        font-size: 1rem;
        margin-bottom: 0.5rem;
    }

    .review-avatar {
        width: 64px;
        height: 64px;
    }

    .review-slide__icon {
        width: 60px !important;
        height: 60px !important;
        font-size: 60px;
    }

    .review-slide__name {
        font-size: 1.15rem;
    }
}

/* IPAD LANDSCAPE (768px - 1079px) */
@media (min-width: 768px) and (max-width: 1079px) {
    .reviews-slider:not(.reviews-slider--active) .reviews-slider__track {
        grid-template-columns: repeat(2, 1fr);
        gap: 1.5rem;
    }

    .review-slide {
        padding: 1.25rem 1.25rem;
        border-radius: 10px;
    }

    .review-slide__quote {
        font-size: 0.95rem;
        margin-bottom: 0.5rem;
        line-height: 1.6;
    }

    .review-avatar {
        width: 56px;
        height: 56px;
    }

    .review-slide__icon {
        width: 52px !important;
        height: 52px !important;
        font-size: 52px;
        margin-bottom: 1rem;
    }

    .review-slide__name {
        font-size: 1.1rem;
    }

    .review-slide__role {
        font-size: 0.9rem;
    }

    .reviews-slider__nav {
        gap: 0.75rem;
        margin-top: 1.75rem;
    }

    .reviews-slider__dot {
        width: 11px !important;
        height: 11px !important;
    }
}

/* IPAD PORTRAIT (600px - 767px) */
@media (min-width: 600px) and (max-width: 767px) {
    .reviews-slider:not(.reviews-slider--active) .reviews-slider__track {
        grid-template-columns: 1fr;
        gap: 1.25rem;
    }

    .review-slide {
        padding: 1.25rem 1.25rem;
        border-radius: 10px;
        max-width: 500px;
        margin: 0 auto;
    }

    .review-slide__quote {
        font-size: 0.95rem;
        margin-bottom: 0.5rem;
        line-height: 1.6;
    }

    .review-avatar {
        width: 52px;
        height: 52px;
    }

    .review-slide__icon {
        width: 48px !important;
        height: 48px !important;
        font-size: 48px;
        margin-bottom: 1rem;
    }

    .review-slide__name {
        font-size: 1.05rem;
    }

    .review-slide__role {
        font-size: 0.85rem;
    }

    .reviews-slider__nav {
        gap: 0.5rem;
        margin-top: 1.5rem;
    }

    .reviews-slider__dot {
        width: 10px !important;
        height: 10px !important;
    }
}

/* MOBILE LARGE (480px - 599px) */
@media (min-width: 480px) and (max-width: 599px) {
    .reviews-slider:not(.reviews-slider--active) .reviews-slider__track {
        grid-template-columns: 1fr;
        gap: 1rem;
    }

    .review-slide {
        padding: 1rem 1rem;
        border-radius: 8px;
        max-width: 450px;
        margin: 0 auto;
    }

    .review-slide__quote {
        font-size: 0.9rem;
        margin-bottom: 0.4rem;
        line-height: 1.5;
    }

    .review-avatar {
        width: 48px;
        height: 48px;
    }

    .review-slide__icon {
        width: 44px !important;
        height: 44px !important;
        font-size: 44px;
        margin-bottom: 0.8rem;
    }

    .review-slide__name {
        font-size: 1rem;
    }

    .review-slide__role {
        font-size: 0.8rem;
    }

    .reviews-slider__nav {
        gap: 0.4rem;
        margin-top: 1.25rem;
    }

    .reviews-slider__dot {
        width: 9px !important;
        height: 9px !important;
    }
}

/* MOBILE SMALL (<480px) */
@media (max-width: 479px) {
    .reviews-slider:not(.reviews-slider--active) .reviews-slider__track {
        grid-template-columns: 1fr;
        gap: 0.75rem;
    }

    .review-slide {
        padding: 0.875rem 0.875rem;
        border-radius: 6px;
        max-width: 100%;
        margin: 0 10px;
    }

    .review-slide__quote {
        font-size: 0.85rem;
        margin-bottom: 0.3rem;
        line-height: 1.4;
    }

    .review-avatar {
        width: 44px;
        height: 44px;
    }

    .review-slide__icon {
        width: 40px !important;
        height: 40px !important;
        font-size: 40px;
        margin-bottom: 0.6rem;
    }

    .review-slide__name {
        font-size: 0.95rem;
    }

    .review-slide__role {
        font-size: 0.75rem;
    }

    .reviews-slider__nav {
        gap: 0.3rem;
        margin-top: 1rem;
    }

    .reviews-slider__dot {
        width: 8px !important;
        height: 8px !important;
    }

    /* Slider attivo su mobile - singola recensione */
    .reviews-slider--active .review-slide {
        margin: 0;
    }
}

/* ===== SECTION SLIDER ===== */

/* DESKTOP LARGE (1200px+) */
@media (min-width: 1200px) {
    .slider-section-inner {
        max-width: 1400px;
    }

    .slider-section-content {
        padding: 50px 40px;
        height: 750px;
        min-height: 450px;
    }

    .slider-section-title {
        font-size: 2.5rem;
        margin-bottom: 25px;
    }

    .slider-section-text p {
        font-size: 1.2rem;
    }

    .slider-section-text {
        margin-bottom: 25px;
    }

    .custom-slider-btn {
        font-size: 22px;
        padding: 14px 28px;
    }

    .section-slider-wrapper > .section-slider-arrow {
        width: 55px !important;
        height: 55px !important;
    }

    .section-slider-section {
        height: 750px;
    }
}

/* DESKTOP (1080px - 1199px) */
@media (min-width: 1080px) and (max-width: 1199px) {
    .slider-section-inner {
        max-width: 1200px;
    }

    .slider-section-content {
        padding: 45px 35px;
        height: 700px;
        min-height: 420px;
    }

    .slider-section-title {
        font-size: 2.25rem;
        margin-bottom: 22px;
    }

    .slider-section-text p {
        font-size: 1.1rem;
    }

    .slider-section-text {
        margin-bottom: 22px;
    }

    .custom-slider-btn {
        font-size: 20px;
        padding: 12px 24px;
    }

    .section-slider-section {
        height: 700px;
    }
}

/* IPAD LANDSCAPE (768px - 1079px) */
@media (min-width: 768px) and (max-width: 1079px) {
    .slider-section-inner {
        max-width: 1000px;
    }

    .slider-section-content {
        padding: 35px 25px;
        height: 600px;
        min-height: 380px;
    }

    .slider-section-title {
        font-size: 1.75rem;
        margin-bottom: 18px;
    }

    .slider-section-text p {
        font-size: 1rem;
    }

    .slider-section-text {
        margin-bottom: 18px;
    }

    .custom-slider-btn {
        font-size: 18px;
        padding: 10px 20px;
    }

    .section-slider-wrapper > .section-slider-arrow {
        width: 45px !important;
        height: 45px !important;
    }

    .section-slider-section {
        height: 600px;
    }
}

/* IPAD PORTRAIT (600px - 767px) */
@media (min-width: 600px) and (max-width: 767px) {
    .slider-section-inner {
        max-width: 90%;
    }

    .slider-section-content {
        padding: 30px 20px;
        height: 550px;
        min-height: 350px;
    }

    .slider-section-title {
        font-size: 1.5rem;
        margin-bottom: 15px;
    }

    .slider-section-text p {
        font-size: 0.95rem;
    }

    .slider-section-text {
        margin-bottom: 15px;
    }

    .custom-slider-btn {
        font-size: 16px;
        padding: 9px 18px;
    }

    .section-slider-wrapper > .section-slider-arrow {
        width: 40px !important;
        height: 40px !important;
        left: 8px !important;
    }

    .section-slider-wrapper > .section-slider-next {
        right: 8px !important;
    }

    .section-slider-section {
        height: 550px;
    }
}

/* MOBILE LARGE (480px - 599px) */
@media (min-width: 480px) and (max-width: 599px) {
    .slider-section-inner {
        max-width: 95%;
    }

    .slider-section-content {
        padding: 25px 18px;
        height: 500px;
        min-height: 320px;
    }

    .slider-section-title {
        font-size: 1.25rem;
        margin-bottom: 12px;
    }

    .slider-section-text p {
        font-size: 0.9rem;
    }

    .slider-section-text {
        margin-bottom: 12px;
    }

    .custom-slider-btn {
        font-size: 15px;
        padding: 8px 16px;
    }

    .section-slider-wrapper > .section-slider-arrow {
        width: 36px !important;
        height: 36px !important;
        left: 6px !important;
    }

    .section-slider-wrapper > .section-slider-next {
        right: 6px !important;
    }

    .section-slider-section {
        height: 500px;
    }
}

/* MOBILE SMALL (<480px) */
@media (max-width: 479px) {
    .slider-section-inner {
        max-width: 100%;
        padding: 0 10px;
    }

    .slider-section-content {
        padding: 20px 15px;
        height: 450px;
        min-height: 300px;
        border-radius: 0;
        box-shadow: 0 2px 16px 0 rgba(0,0,0,0.05);
    }

    .slider-section-title {
        font-size: 1.1rem;
        margin-bottom: 10px;
    }

    .slider-section-text p {
        font-size: 0.85rem;
        line-height: 1.4;
    }

    .slider-section-text {
        margin-bottom: 10px;
    }

    .custom-slider-btn {
        font-size: 14px;
        padding: 7px 14px;
        width: 100%;
        max-width: 200px;
    }

    .section-slider-wrapper > .section-slider-arrow {
        width: 32px !important;
        height: 32px !important;
        left: 4px !important;
    }

    .section-slider-wrapper > .section-slider-next {
        right: 4px !important;
    }

    .section-slider-section {
        height: 450px;
    }

    /* Hide arrows on very small screens if needed */
    .section-slider-wrapper > .section-slider-arrow {
        display: none !important;
    }
}

/* ===== AGENT CARDS ===== */

/* DESKTOP LARGE (1200px+) */
@media (min-width: 1200px) {
    .agents-grid {
        max-width: 1400px;
        padding: 1.25rem;
    }

    .agents-grid .grid-view {
        gap: 1.25rem;
    }

    .agent-card-simple {
        height: 48rem;
    }

    .agent-name {
        font-size: 2.25rem;
        margin-bottom: 10px;
    }

    .agent-position {
        font-size: 0.95rem;
    }

    .agent-text-overlay {
        bottom: 25px;
        left: 25px;
        right: 25px;
    }
}

/* DESKTOP (1080px - 1199px) */
@media (min-width: 1080px) and (max-width: 1199px) {
    .agents-grid {
        max-width: 1200px;
        padding: 1rem;
    }

    .agent-card-simple {
        height: 45rem;
    }

    .agent-name {
        font-size: 2rem;
    }

    .agent-position {
        font-size: 0.9rem;
    }
}

/* IPAD LANDSCAPE (768px - 1079px) */
@media (min-width: 768px) and (max-width: 1079px) {
    .agents-grid {
        max-width: 1000px;
        padding: 0.875rem;
    }

    .agents-grid .grid-view {
        gap: 0.875rem;
    }

    .agents-grid .grid-view > * {
        flex: 0 0 calc(50% - 0.4375rem) !important;
        max-width: calc(50% - 0.4375rem) !important;
    }

    .agent-card-simple {
        height: 38rem;
    }

    .agent-name {
        font-size: 1.75rem;
        margin-bottom: 7px;
    }

    .agent-position {
        font-size: 0.85rem;
    }

    .agent-text-overlay {
        bottom: 18px;
        left: 18px;
        right: 18px;
    }
}

/* IPAD PORTRAIT (600px - 767px) */
@media (min-width: 600px) and (max-width: 767px) {
    .agents-grid {
        max-width: 90%;
        padding: 0.75rem;
    }

    .agents-grid .grid-view {
        gap: 0.75rem;
    }

    .agents-grid .grid-view > * {
        flex: 0 0 calc(50% - 0.375rem) !important;
        max-width: calc(50% - 0.375rem) !important;
    }

    .agent-card-simple {
        height: 32rem;
    }

    .agent-name {
        font-size: 1.5rem;
        margin-bottom: 6px;
    }

    .agent-position {
        font-size: 0.8rem;
    }

    .agent-text-overlay {
        bottom: 15px;
        left: 15px;
        right: 15px;
    }
}

/* MOBILE LARGE (480px - 599px) */
@media (min-width: 480px) and (max-width: 599px) {
    .agents-grid {
        max-width: 95%;
        padding: 0.625rem;
    }

    .agents-grid .grid-view {
        gap: 0.625rem;
    }

    .agents-grid .grid-view > * {
        flex: 0 0 calc(50% - 0.3125rem) !important;
        max-width: calc(50% - 0.3125rem) !important;
    }

    .agent-card-simple {
        height: 28rem;
    }

    .agent-name {
        font-size: 1.25rem;
        margin-bottom: 5px;
    }

    .agent-position {
        font-size: 0.75rem;
    }

    .agent-text-overlay {
        bottom: 12px;
        left: 12px;
        right: 12px;
    }
}

/* MOBILE SMALL (<480px) */
@media (max-width: 479px) {
    .agents-grid {
        max-width: 100%;
        padding: 0.5rem;
    }

    .agents-grid .grid-view {
        gap: 0.5rem;
    }

    .agents-grid .grid-view > * {
        flex: 0 0 100% !important;
        max-width: 100% !important;
    }

    .agent-card-simple {
        height: 24rem;
        border-radius: 8px;
    }

    .agent-name {
        font-size: 1.1rem;
        margin-bottom: 4px;
        text-shadow: 1px 1px 4px rgba(0, 0, 0, 0.9);
    }

    .agent-position {
        font-size: 0.7rem;
        text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.9);
    }

    .agent-text-overlay {
        bottom: 10px;
        left: 10px;
        right: 10px;
    }

    /* Adjust overlay gradient for mobile */
    .agent-card-simple::before {
        background: linear-gradient(
            to top,
            rgba(0, 0, 0, 0.95) 0%,
            rgba(0, 0, 0, 0.7) 40%,
            rgba(0, 0, 0, 0.4) 70%,
            rgba(0, 0, 0, 0.2) 85%,
            transparent 100%
        );
    }
}

/* ===== SINGLE AGENT PAGE ===== */

/* DESKTOP LARGE (1200px+) */
@media (min-width: 1200px) {
    .modern-agent-profile {
        max-width: 1400px;
        min-height: 70vh;
        padding-top: 60px;
    }

    .agent-hero-image {
        padding-top: 60px;
    }

    .agent-content-section {
        padding: 0px 70px;
        padding-top: 120px;
        padding-bottom: 60px;
    }

    .agent-name-single {
        font-size: 2.5rem;
    }

    .agent-position {
        font-size: 18px;
        margin-bottom: 30px;
    }

    .agent-description {
        font-size: 18px;
        max-height: 140px;
        margin-bottom: 50px;
    }

    .agent-contact-buttons {
        gap: 25px;
    }

    .btn-contact-email,
    .btn-contact-phone {
        padding: 12px 15px;
        font-size: 15px;
        min-width: 160px;
    }
}

/* DESKTOP (1080px - 1199px) */
@media (min-width: 1080px) and (max-width: 1199px) {
    .modern-agent-profile {
        max-width: 1200px;
        min-height: 65vh;
    }

    .agent-content-section {
        padding: 0px 60px;
        padding-top: 110px;
        padding-bottom: 55px;
    }

    .agent-name-single {
        font-size: 2.25rem;
    }

    .agent-position {
        font-size: 17px;
        margin-bottom: 27px;
    }

    .agent-description {
        font-size: 17px;
        max-height: 130px;
        margin-bottom: 45px;
    }
}

/* IPAD LANDSCAPE (768px - 1079px) */
@media (min-width: 768px) and (max-width: 1079px) {
    .modern-agent-profile {
        max-width: 1000px;
        min-height: 55vh;
        padding-top: 45px;
    }

    .agent-hero-image {
        padding-top: 45px;
    }

    .agent-content-section {
        padding: 0px 40px;
        padding-top: 80px;
        padding-bottom: 40px;
    }

    .agent-name-single {
        font-size: 1.75rem;
    }

    .agent-position {
        font-size: 15px;
        margin-bottom: 20px;
        letter-spacing: 1.5px;
    }

    .agent-description {
        font-size: 15px;
        max-height: 100px;
        margin-bottom: 35px;
    }

    .agent-contact-buttons {
        gap: 15px;
    }

    .btn-contact-email,
    .btn-contact-phone {
        padding: 9px 12px;
        font-size: 13px;
        min-width: 130px;
    }
}

/* IPAD PORTRAIT (600px - 767px) */
@media (min-width: 600px) and (max-width: 767px) {
    .modern-agent-profile {
        max-width: 90%;
        min-height: 50vh;
        padding-top: 40px;
    }

    .agent-hero-image {
        padding-top: 40px;
    }

    .agent-content-section {
        padding: 0px 30px;
        padding-top: 60px;
        padding-bottom: 35px;
    }

    .agent-name-single {
        font-size: 1.5rem;
    }

    .agent-position {
        font-size: 14px;
        margin-bottom: 18px;
        letter-spacing: 1px;
    }

    .agent-description {
        font-size: 14px;
        max-height: 90px;
        margin-bottom: 30px;
    }

    .agent-contact-buttons {
        gap: 12px;
        flex-direction: column;
    }

    .btn-contact-email,
    .btn-contact-phone {
        padding: 8px 10px;
        font-size: 12px;
        min-width: 120px;
    }
}

/* MOBILE LARGE (480px - 599px) */
@media (min-width: 480px) and (max-width: 599px) {
    .modern-agent-profile {
        max-width: 95%;
        min-height: 45vh;
        padding-top: 35px;
    }

    .agent-hero-image {
        padding-top: 35px;
    }

    .agent-content-section {
        padding: 0px 20px;
        padding-top: 50px;
        padding-bottom: 30px;
    }

    .agent-name-single {
        font-size: 1.25rem;
    }

    .agent-position {
        font-size: 13px;
        margin-bottom: 15px;
        letter-spacing: 0.5px;
    }

    .agent-description {
        font-size: 13px;
        max-height: 80px;
        margin-bottom: 25px;
    }

    .agent-contact-buttons {
        gap: 10px;
        flex-direction: column;
    }

    .btn-contact-email,
    .btn-contact-phone {
        padding: 7px 8px;
        font-size: 11px;
        min-width: 110px;
    }
}

/* MOBILE SMALL (<480px) */
@media (max-width: 479px) {
    .modern-agent-profile {
        max-width: 100%;
        min-height: 40vh;
        padding-top: 30px;
    }

    .agent-hero-image {
        padding-top: 30px;
    }

    .agent-content-section {
        padding: 0px 15px;
        padding-top: 40px;
        padding-bottom: 25px;
    }

    .agent-name-single {
        font-size: 1.1rem;
    }

    .agent-position {
        font-size: 12px;
        margin-bottom: 12px;
        letter-spacing: 0.5px;
    }

    .agent-description {
        font-size: 12px;
        max-height: 70px;
        margin-bottom: 20px;
    }

    .agent-contact-buttons {
        gap: 8px;
        flex-direction: column;
    }

    .btn-contact-email,
    .btn-contact-phone {
        padding: 6px 8px;
        font-size: 10px;
        min-width: 100px;
        width: 100%;
        max-width: 200px;
        margin: 0 auto;
    }

    /* Stack content vertically on very small screens */
    .agent-info-wrapper {
        text-align: center;
    }

    .agent-contact-buttons {
        justify-content: center;
    }
}

/* ========================================
   CITIES MENU RESPONSIVE STYLES
   ======================================== */

/* Desktop - ensure two columns are visible */
.cities-menu-grid {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 2rem !important;
    max-width: 1200px !important;
    margin: 0 auto !important;
    align-items: start !important;
}

.cities-column {
    order: 2 !important; /* Cities second */
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
}

.menu-column {
    order: 1 !important; /* Menu first */
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
}

@media (max-width: 480px) {
    .cities-menu-grid {
        grid-template-columns: 1fr !important;
        gap: 2rem !important;
    }

    .cities-column,
    .menu-column {
        padding: 1.5rem;
    }

    .cities-title,
    .menu-title {
        font-size: 1.25rem;
        margin-bottom: 1rem;
    }

    /* Sell Property Form - Mobile */
    .sell-form-container {
        padding: 25px 20px;
        margin: 0 15px;
    }
    
    .form-field input,
    .form-field select {
        padding: 12px 15px;
        font-size: 16px; /* Prevent zoom on iOS */
    }
    
    .sell-submit-btn {
        width: 100%;
        padding: 15px 20px;
    }
}

/* ========================================
   HEADER RESPONSIVE
   ======================================== */

/* Tablet (iPad) - 768px to 1024px */
@media (max-width: 1024px) and (min-width: 769px) {
    #header-hz-elementor {
        padding: 12px 0; /* Padding ridotto per tablet */
        background: rgba(40, 55, 62, 0.7); /* Background più opaco su tablet */
    }

    /* Logo più piccolo su tablet */
    #header-hz-elementor .favethemes-site-logo img {
        max-height: 50px;
        width: auto;
    }

    /* Menu più compatto su tablet */
    #header-hz-elementor .houzez-nav-menu-main {
        font-size: 14px;
    }

    /* Cities menu - maintain two columns on tablet */
    .cities-menu-grid {
        grid-template-columns: 1fr 1fr !important;
        gap: 1.5rem !important;
    }

    .cities-column,
    .menu-column,
    .legal-column {
        padding: 1rem;
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
    }

    .cities-title,
    .menu-title {
        font-size: 1.5rem;
        margin-bottom: 1.5rem;
    }
}

/* Mobile (iPhone) - fino a 768px */
@media (max-width: 768px) {
    #header-hz-elementor {
        padding: 10px 0; /* Padding minimo per mobile */
        background: rgba(40, 55, 62, 0.9); /* Background più opaco su mobile per migliore leggibilità */
        border-bottom: 1px solid var(--colore-grigio-chiaro);
    }

    /* Logo ancora più piccolo su mobile */
    #header-hz-elementor .favethemes-site-logo img {
        max-height: 40px;
        width: auto;
    }

    /* Menu nascosto su mobile (gestito dal toggle) */
    #header-hz-elementor .houzez-nav-menu-main-desktop-wrap {
        display: none;
    }

    /* Toggle menu mobile più visibile */
    #header-hz-elementor .houzez-menu-toggle-button {
        padding: 8px;
        background: rgba(255, 255, 255, 0.1);
        border-radius: 4px;
    }

    #header-hz-elementor .houzez-menu-toggle-button i {
        font-size: 20px;
        color: var(--colore-grigio-chiaro);
    }

    /* Cities menu - ensure both columns are visible on mobile */
    .cities-menu-grid {
        grid-template-columns: 1fr !important;
        gap: 2rem !important;
    }

    .cities-column,
    .menu-column {
        display: none !important;
    }

    .legal-column {
        padding: 1rem;
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
        order: unset !important; /* Reset order for mobile stacking */
        text-align: center;
    }

    .cities-title,
    .menu-title {
        font-size: 1.25rem;
        margin-bottom: 1rem;
    }
}

/* Extra small mobile - fino a 480px */
@media (max-width: 480px) {
    #header-hz-elementor {
        padding: 8px 0;
    }

    #header-hz-elementor .favethemes-site-logo img {
        max-height: 35px;
    }

    /* Menu mobile ancora più compatto */
    #header-hz-elementor .offcanvas-mobile-menu-body {
        padding: 10px;
    }

    #header-hz-elementor .mobile-navbar-nav .nav-link {
        padding: 12px 15px;
        font-size: 16px; /* Prevenire zoom su iOS */
    }
}

/* ========================================
   MOBILE MENU POPUP SLIDE-IN
   ======================================== */

/* Overlay scuro per il menu mobile */
.mobile-menu-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.5);
    z-index: 9998;
    opacity: 0;
    visibility: hidden;
    transition: all 0.3s ease;
}

.mobile-menu-overlay.overlay-active {
    opacity: 1;
    visibility: visible;
}

/* Forza il menu mobile nascosto su tutti i dispositivi fino al click */
.main-nav.navbar.houzez-elementor-mobile-menu {
    position: fixed !important;
    top: 0 !important;
    right: 0 !important;
    width: 100% !important;
    height: 100vh !important;
    background: var(--colore-primario-blu) !important;
    z-index: 9999 !important;
    transform: translateX(100%) !important;
    transition: transform 0.3s ease !important;
    overflow-y: auto !important;
    box-shadow: -2px 0 10px rgba(0, 0, 0, 0.3) !important;
    display: block !important;
    visibility: visible !important;
    will-change: transform !important;
}

/* Menu mobile aperto */
.main-nav.navbar.houzez-elementor-mobile-menu.mobile-menu-open {
    transform: translateX(0) !important;
}

/* Contenuto del menu mobile */
.main-nav.navbar.houzez-elementor-mobile-menu .mobile-menu-content {
    padding: 80px 20px 20px;
    margin: 0;
}

.main-nav.navbar.houzez-elementor-mobile-menu .mobile-navbar-nav {
    padding: 0;
    margin: 0;
    list-style: none;
}

.main-nav.navbar.houzez-elementor-mobile-menu .nav-item {
    margin-bottom: 10px;
}

.main-nav.navbar.houzez-elementor-mobile-menu .nav-link {
    color: white !important;
    font-size: 18px;
    font-weight: 500;
    padding: 15px 20px;
    text-decoration: none;
    border-radius: 8px;
    transition: background-color 0.2s ease;
    display: block;
}

.main-nav.navbar.houzez-elementor-mobile-menu .nav-link:hover,
.main-nav.navbar.houzez-elementor-mobile-menu .nav-link:focus {
    background-color: transparent !important;
    color: white !important;
    opacity: 0.7;
}

/* ================================
   Mobile: posiziona GTranslate a destra di Home
   ================================ */
@media (max-width: 1199px) {
    /* Dispone la lista del menu mobile come griglia: prima riga 1fr | auto */
    .main-nav.navbar.houzez-elementor-mobile-menu .mobile-navbar-nav {
        display: grid !important;
        grid-template-columns: 1fr auto;
        grid-auto-rows: minmax(48px, auto);
        align-items: center;
        column-gap: 12px;
        row-gap: 0;
    }

    /* "Home" (primo li) a sinistra */
    .main-nav.navbar.houzez-elementor-mobile-menu .mobile-navbar-nav > li:first-child {
        grid-column: 1;
    }

    /* GTranslate a destra nella stessa riga della prima voce, indipendentemente dall'ordine DOM */
    .main-nav.navbar.houzez-elementor-mobile-menu .mobile-navbar-nav > li.menu-gtranslate {
        grid-column: 2;
        grid-row: 1; /* forza la posizione nella prima riga */
        justify-self: end;
        align-self: start; /* allineamento verticale in alto */
        margin: 0; /* rimuove eventuali margini verticali del tema */
        position: relative !important; /* consente overflow del dropdown */
        overflow: visible !important;
    }

    /* Tutte le altre voci sotto, a tutta larghezza */
    .main-nav.navbar.houzez-elementor-mobile-menu .mobile-navbar-nav > li:not(:first-child):not(.menu-gtranslate) {
        grid-column: 1 / -1;
    }

    /* Dimensione e allineamento del selettore lingua compattati per mobile */
    .main-nav.navbar.houzez-elementor-mobile-menu .mobile-navbar-nav > li.menu-gtranslate .gt_float_switcher,
    .main-nav.navbar.houzez-elementor-mobile-menu .mobile-navbar-nav > li.menu-gtranslate .gt-selected,
    .main-nav.navbar.houzez-elementor-mobile-menu .mobile-navbar-nav > li.menu-gtranslate .gt-current-lang {
        font-size: 16px !important;
        line-height: 1 !important;
        display: inline-flex !important;
        align-items: center !important;
        gap: 6px !important;
    }

    .main-nav.navbar.houzez-elementor-mobile-menu .mobile-navbar-nav > li.menu-gtranslate img {
        width: 24px !important;
        height: auto !important;
    }

    /* Posizionamento sicuro del menu lingue su mobile */
    .main-nav.navbar.houzez-elementor-mobile-menu .mobile-navbar-nav > li.menu-gtranslate .gt_float_switcher {
        position: relative !important; /* riferimento per il posizionamento assoluto del dropdown */
        overflow: visible !important;
    }

    .main-nav.navbar.houzez-elementor-mobile-menu .mobile-navbar-nav > li.menu-gtranslate .gt_options {
        right: -50px !important; /* non esce fuori dallo schermo */
        top: calc(100% + 8px) !important; /* subito sotto il trigger */
    }

    .gt_float_switcher .gt_options {
        border-top: 1px solid #EAEBED !important;
        position: absolute !important;
        max-height: unset !important;
        background: var(--colore-primario-blu) !important;
        border: 1px solid #EAEBED!important;
        width: 180px !important;
        right: -20px !important;
        top: 66px !important;
        z-index: 9999 !important; /* sopra al mobile menu */
        /* Animazione slide da destra con ease-in-out */
        transform: translateX(100%) !important;
        opacity: 0 !important;
        transition: transform .5s ease-in-out, opacity .25s ease-in-out !important;
        /* Gestione overflow del contenuto */
        overflow-x: hidden !important;
        overflow-y: auto !important;
        max-height: 60vh !important; /* evita che esca dallo schermo in altezza */
        -webkit-overflow-scrolling: touch;
        pointer-events: none !important; /* non intercetta click quando chiuso */
        will-change: transform, opacity;
    }

}

/* Pulsante di chiusura */
.mobile-menu-close {
    position: absolute;
    top: 20px;
    right: 20px;
    background: transparent !important;
    border: none;
    color: white !important;
    font-size: 24px;
    cursor: pointer;
    padding: 10px;
    z-index: 10000;
    border-radius: 50%;
}

.mobile-menu-close:hover {
    background-color: transparent !important;
}

/* Body con menu aperto - previene scroll */
body.menu-open {
    overflow: hidden;
}

/* Responsive per mobile piccolo */
@media (max-width: 480px) {
    .main-nav.navbar.houzez-elementor-mobile-menu .mobile-menu-content {
        padding: 70px 15px 20px;
    }

    .main-nav.navbar.houzez-elementor-mobile-menu .nav-link {
        font-size: 16px;
        padding: 12px 15px;
    }
}

@media (min-width: 992px) {
    .gt_float_switcher .gt_options {
        position: absolute !important;
        max-height: unset !important;
        background: var(--colore-primario-blu) !important;
        border: 1px solid #EAEBED!important;
        border-top: unset !important;
        width: 130px !important;
        right: -20px !important;
        top: 65px !important;
        z-index: 9999 !important; /* sopra al mobile menu */
        /* Animazione slide da destra con ease-in-out */
        transform: translateX(100%) !important;
        opacity: 0 !important;
        transition: transform .5s ease-in-out, opacity .25s ease-in-out !important;
        /* Gestione overflow del contenuto */
        overflow-x: hidden !important;
        overflow-y: auto !important;
        max-height: 60vh !important; /* evita che esca dallo schermo in altezza */
        -webkit-overflow-scrolling: touch;
        pointer-events: none !important; /* non intercetta click quando chiuso */
        will-change: transform, opacity;
        padding-left: 10px;
    }
}

@media (max-width: 991px) {
    .gt_float_switcher .gt_options {
        position: absolute !important;
        max-height: unset !important;
        background: var(--colore-primario-blu) !important;
        border: 1px solid #EAEBED!important;
        border-top: unset !important;
        width: 130px !important;
        right: -70px !important;
        top: 53px !important;
        z-index: 9999 !important; /* sopra al mobile menu */
        /* Animazione slide da destra con ease-in-out */
        transform: translateX(100%) !important;
        opacity: 0 !important;
        transition: transform .5s ease-in-out, opacity .25s ease-in-out !important;
        /* Gestione overflow del contenuto */
        overflow-x: hidden !important;
        overflow-y: auto !important;
        max-height: 60vh !important; /* evita che esca dallo schermo in altezza */
        -webkit-overflow-scrolling: touch;
        pointer-events: none !important; /* non intercetta click quando chiuso */
        will-change: transform, opacity;
        padding-left: 10px;
        border-top: unset !important;
    }
}

/* ========================================
   EXPERIENCE MAROCCO - RESPONSIVE CARDS
   ======================================== */

/* Tablet - Experience Marocco cards: 2 colonne */
@media (max-width: 1024px) and (min-width: 769px) {
    .experience-marocco__cards {
        grid-template-columns: repeat(3, minmax(0,1fr)) !important;
        gap: 12px !important;
    }

    /* Experience Marocco panels responsive */
    .experience-marocco__panels {
        margin: 12px auto 0 !important;
    }

    .em-panel {
        padding: 12px !important;
    }

    /* Allinea al centro il contenitore Elementor su tablet */
    .elementor-element-38847c59 {
        text-align: center !important;
        justify-content: center !important;
        align-items: center !important;
    }

    .elementor-element-38847c59 .elementor-image-box-wrapper {
        justify-content: center !important;
        text-align: center !important;
    }
}

@media (max-width: 700px) {
    /* Dots navigation - usati da Experience Marocco e Reviews Slider */
    .em-slider-dots {
        display: flex !important;
        justify-content: center !important;
        align-items: center !important;
        gap: 8px !important;
        margin: 20px 0 !important;
        padding: 10px 0 !important;
        background: transparent !important;
        z-index: 10 !important;
        position: relative !important;
    }

    .reviews-slider--active .review-slide {
    margin-right: 20px;
    margin-top: 20px;
}
}

@media (min-width: 701px) and (max-width: 1079px) {
    /* Dots navigation - usati da Experience Marocco e Reviews Slider */
    .em-slider-dots {
        display: flex !important;
        justify-content: center !important;
        align-items: center !important;
        gap: 8px !important;
        margin: 20px 0 0 0 !important;
        padding: 10px 0 !important;
        background: transparent !important;
        z-index: 10 !important;
        position: relative !important;
    }
}

/* Mobile & Tablet - Experience Marocco cards: horizontal slider + Reviews slider dots */
@media (max-width: 1079px) {

    .em-slider-dot {
        width: 10px !important;
        height: 10px !important;
        border-radius: 50% !important;
        background: rgba(0,0,0,0.4) !important;
        transition: all 0.3s ease !important;
        cursor: pointer !important;
        border: none !important;
        display: block !important;
        flex-shrink: 0 !important;
    }

    .em-slider-dot.active {
        background: var(--e-global-color-primary) !important;
        width: 28px !important;
        border-radius: 5px !important;
    }

    /* Reviews slider: dot attivo grigio */
    .reviews-slider .em-slider-dot.active {
        background: var(--colore-grigio-chiaro) !important;
    }
}

/* Mobile - Experience Marocco cards: horizontal slider */
@media (max-width: 768px) {
    .experience-marocco__cards {
        display: flex !important;
        flex-wrap: nowrap !important;
        overflow-x: auto !important;
        scroll-snap-type: x mandatory !important;
        gap: 16px !important;
        margin: 18px auto !important;
        padding: 0 !important;
        -webkit-overflow-scrolling: touch !important;
    }

    /* Nascondi scrollbar */
    .experience-marocco__cards::-webkit-scrollbar {
        display: none;
    }

    .experience-marocco__cards {
        scrollbar-width: none; /* Firefox */
        -ms-overflow-style: none; /* IE/Edge */
    }

    .em-card {
        flex: 0 0 100% !important;
        min-width: 100% !important;
        scroll-snap-align: start !important;
    }

    /* Dots navigation - posizionamento specifico Experience Marocco */
    .experience-marocco {
        position: relative;
    }

    /* Experience Marocco panels responsive */
    .experience-marocco__panels {
        margin: 15px auto 0 !important;
    }

    .em-panel {
        padding: 15px !important;
    }

    /* Property search form responsive - layout a 2 colonne su mobile */
    .property-search-form {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 12px !important;
        padding: 18px !important;
    }

    /* Layout specifico per mobile - prima riga */
    .property-search-form select:nth-child(1) {
        grid-row: 1 !important;
        grid-column: 1 !important;
    }
    .property-search-form select:nth-child(2) {
        grid-row: 1 !important;
        grid-column: 2 !important;
    }

    /* Seconda riga - quartiere occupa entrambe le colonne */
    .property-search-form select:nth-child(3) {
        grid-row: 2 !important;
        grid-column: 1 / 3 !important;
    }

    /* Terza riga */
    .property-search-form select:nth-child(4) {
        grid-row: 3 !important;
        grid-column: 1 !important;
    }
    .property-search-form select:nth-child(5) {
        grid-row: 3 !important;
        grid-column: 2 !important;
    }

    /* Quarta riga - prezzo occupa entrambe le colonne */
    .property-search-form .range-control:nth-child(6) {
        grid-row: 4 !important;
        grid-column: 1 / 3 !important;
    }
    /* Quinta riga - superficie occupa entrambe le colonne */
    .property-search-form .range-control:nth-child(7) {
        grid-row: 5 !important;
        grid-column: 1 / 3 !important;
    }

    /* Sesta riga - pulsanti */
    .property-search-form button[type="reset"] {
        grid-row: 6 !important;
        grid-column: 1 !important;
    }
    .property-search-form button[type="submit"] {
        grid-row: 6 !important;
        grid-column: 2 !important;
    }

    /* Nasconde i bottoni di navigazione dello slider su mobile/tablet */
    .section-slider-wrapper > .section-slider-arrow {
        display: none !important;
    }

    /* Allinea al centro il contenitore Elementor su mobile */
    .elementor-element-38847c59 {
        text-align: center !important;
        justify-content: center !important;
        align-items: center !important;
    }

    .elementor-element-38847c59 .elementor-image-box-wrapper {
        justify-content: center !important;
        text-align: center !important;
    }
}

/* --- Footer: force two-column cities+menu and control alignment --- */
/* Target the specific Elementor container (data-id 3a6ef924 / class elementor-element-3a6ef924) */
.elementor-element-3a6ef924 .e-con-inner {
    display: flex !important;
    justify-content: flex-end !important; /* desktop: lists aligned to extreme right */
    align-items: flex-start !important;
    gap: 2rem !important;
    width: 100% !important;
}

.elementor-element-3a6ef924 .cities-menu-grid {
    display: grid !important;
    grid-template-columns: 1fr 1fr 1fr !important; /* CITTÀ | MENÙ */
    gap: 2rem !important;
    align-items: start !important;
    width: auto !important;
    min-width: 320px !important;
}

.elementor-element-3a6ef924 .cities-column,
.elementor-element-3a6ef924 .menu-column {
    visibility: visible !important;
    opacity: 1 !important;
    text-align: left !important;
}

/* Override container-level var if Elementor sets it */
.elementor-element[data-id="3a6ef924"] {
    --justify-content: flex-end !important;
    justify-content: flex-end !important;
}

/* Tablet & Phone: keep two columns side-by-side (as requested) */
@media (max-width: 1024px) {
    .elementor-element-3a6ef924 .e-con-inner {
        justify-content: center !important; /* center all content horizontally on tablet */
    }

    .elementor-element-3a6ef924 .cities-column, .elementor-element-3a6ef924 .menu-column, .legal-column {
    text-align: center !important;
}

    .elementor-element-3a6ef924 .cities-menu-grid {
        grid-template-columns: 1fr 1fr 1fr !important; /* keep two columns on iPad */
        gap: 1rem !important;
        justify-items: center !important; /* center the grid cells */
        width: auto !important;
        margin: 0 auto !important;
    }
}

@media (max-width: 768px) {
    .elementor-element-3a6ef924 .e-con-inner {
        justify-content: center !important; /* center horizontally on phone */
        align-items: flex-start !important;
        gap: 1rem !important;
    }

    .elementor-element-3a6ef924 .cities-menu-grid {
        grid-template-columns: 1fr !important; /* keep two columns on phone */
        gap: 0.75rem !important;
        justify-items: center !important;
        width: auto !important;
        margin: 0 auto !important;
    }

    .elementor-element-3a6ef924 .cities-column,
    .elementor-element-3a6ef924 .menu-column {
        text-align: center !important; /* center list items for narrow screens */
    }
}

/* ========================================
   TRENDING DESTINATIONS - RESPONSIVE GRID
   ======================================== */

/* Mobile - Trending destinations: 1 colonna */
@media (max-width: 768px) {
    .destinations-grid {
        grid-template-columns: repeat(1, 1fr) !important;
        gap: 15px !important;
    }

    /* Reset bento positioning su mobile */
    .destinations-grid > .destination-card:nth-child(1),
    .destinations-grid > .destination-card:nth-child(2),
    .destinations-grid > .destination-card:nth-child(3),
    .destinations-grid > .destination-card:nth-child(4),
    .destinations-grid > .destination-card:nth-child(5),
    .destinations-grid > .destination-card:nth-child(n+6) {
        grid-column: span 1 !important;
    }

    /* Allinea al centro il contenitore Elementor su mobile */
    .elementor-element-38847c59 {
        text-align: center !important;
        justify-content: center !important;
        align-items: center !important;
    }

    .elementor-element-38847c59 .elementor-image-box-wrapper {
        justify-content: center !important;
        text-align: center !important;
    }
}

/* ========================================
   DISABILITA COMPLETAMENTE MENU MOBILE HOUZEZ
   ======================================== */

/* Gli elementi offcanvas vengono rimossi completamente dal DOM via JavaScript */
/* Non sono più necessarie regole CSS per nasconderli */

/* ========================================
   SECTION SLIDER - NASCONDI BOTTONI SU MOBILE
   ======================================== */

/* Forza il nascondimento dei bottoni di navigazione su dispositivi mobili/tablet */
@media (max-width: 768px) {
    .section-slider-wrapper > .section-slider-arrow {
        display: none !important;
        visibility: hidden !important;
        opacity: 0 !important;
        pointer-events: none !important;
    }
}

/* ========================================
   SEZIONE CONTATTACI - RESPONSIVE HEIGHT
   ======================================== */

@media (max-width: 819px) {
    .price-tooltip {
        display: none !important;
    }

    .price-request-button {
        cursor: unset !important;
    }

    .price-request-button, .price-eur-wrapper, .price-request-button .price-eur-wrapper {
        box-shadow: unset !important;
        margin-top: 50px !important;
    }

    .hero-right.mobile-between-hero-details .price-request-button, .hero-right.mobile-between-hero-details .btn.view-gallery {
        align-self: center !important;
        padding: 10px;
        margin: 0 auto !important;
    }

    .hero-right.mobile-between-hero-details {
        margin: 0 auto;
        text-align: center;
        justify-content: center !important;
    }
}





