/* ==========================================================================
   PLUGIN IMMOBILIARE - FRONTEND CSS
   Versione: 65.0 (Final CSS Refactoring)
   ========================================================================== */

/* ==========================================================================
   INDICE:
   1. Variabili e Font Globali
   2. Typography ed Elementi UI
   3. Elementi Hero e Blocchi Bivio (il fix del Menu FSE 3° livello vive in menu.css)
   4. Motore di Ricerca
   5. Griglie e Card (Archivio, Portfolio e Filtri)
   6. Carosello Home Page
   7. Page Builder: Layout e Spaziature Colonne
   8. Scheda Immobile: Intestazione e Toolbar (Condivisione, Badge)
   9. Scheda Immobile: Media (Galleria Fotografica e Planimetrie)
   10. Scheda Immobile: Silos Dati, Dettagli e Griglie
   11. Scheda Immobile: Mappa e Indirizzo
   12. Scheda Immobile: Modulo Contatti e QR Code
   13. Stampa (Regole per il layout cartaceo)
   14. Paginazione
   ========================================================================== */

/* ==========================================================================
   1. VARIABILI E FONT GLOBALI
   ========================================================================== */
:root {
    /* Colori Brandizzati */
    --re-primary: var(--wp--preset--color--primary, #AF1920);
    --re-primary-dark: var(--wp--preset--color--primary-dark, #8b1218);
    --re-secondary: var(--wp--preset--color--gold, #e6a500);
    --re-accent-dark: var(--wp--preset--color--secondary, #333333);
    --re-accent-blue: var(--wp--preset--color--blue, #003366);
    --re-whatsapp: #25D366;
    --re-whatsapp-hover: #1ebd5a;
    
    /* Colori Strutturali */
    --re-bg-page: #f7f8f9;
    --re-bg-card: #ffffff;
    --re-border-light: #eeeeee;
    --re-border-medium: #dddddd;
    
    /* Forme e Font */
    --re-img-radius: 4px;
    --re-font-heading: 'Playfair Display', serif;
    --re-font-body: 'Montserrat', sans-serif;
}

/* ISOLAMENTO ARCHITETTURALE PLUGIN - Versione Corretta */
/* Proteggiamo i tag <i> (icone) dall'essere cancellati */
.re-pagination *:not(i)::after, .re-pagination *:not(i)::before,
.re-archive-container *:not(i)::after, .re-archive-container *:not(i)::before,
#re-single-container *:not(i)::after, #re-single-container *:not(i)::before,
.re-carousel-section *:not(i)::after, .re-carousel-section *:not(i)::before,
[class*="re-btn-"]:not(i)::after, [class*="re-btn-"]:not(i)::before,
.re-tool-btn:not(i)::after, .re-tool-btn:not(i)::before,
.re-social-link:not(i)::after, .re-social-link:not(i)::before {
    content: none !important;
    display: none !important;
    position: static !important;
    transform: none !important;
}

/* ==========================================================================
   FIX DINAMICO TITOLI PLUGIN (Global Clamp)
   ========================================================================== */

/* Applichiamo la scala dinamica a tutti gli H del plugin */
.re-container-overlap h1, 
.re-archive-container h1, 
#re-single-container h1,
.re-main-title { 
    font-size: clamp(1.8rem, 3.5vw + 0.8rem, 3.0rem) !important; 
    line-height: 1.1 !important;
}

.re-container-overlap h2, 
.re-archive-container h2, 
#re-single-container h2,
.re-section-title { 
    font-size: clamp(1.6rem, 3vw + 0.8rem, 2.5rem) !important; 
    line-height: 1.2 !important; 
}

.re-container-overlap h3, 
.re-archive-container h3, 
#re-single-container h3,
.re-card-title, 
.re-title-anchor { 
    font-size: clamp(1.4rem, 2vw + 0.7rem, 2rem) !important; 
    line-height: 1.25 !important; 
}

.re-container-overlap h4, 
.re-archive-container h4, 
#re-single-container h4 { 
    font-size: clamp(1.2rem, 1.5vw + 0.6rem, 1.6rem) !important; 
    line-height: 1.3 !important; 
}

/* Assicuriamoci che i titoli del builder ereditino correttamente */
.re-builder-block-item h1, 
.re-builder-block-item h2, 
.re-builder-block-item h3, 
.re-builder-block-item h4 {
    font-family: var(--re-font-heading) !important;
    font-weight: 700 !important;
}

/* Assegnazione Font */
.re-container-overlap, .re-archive-container,
.re-carousel-section, .re-card-box, .re-address-grid, .re-spec-grid,
.re-contact-card-adaptive, .re-header-modern {
    font-family: var(--re-font-body) !important;
    -webkit-font-smoothing: antialiased;
}

.re-carousel-heading, .re-card-title, .re-section-title, 
.re-spec-header, .re-main-title, .re-contact-title, .re-box-header h3,
.re-hero-main-line {
    font-family: var(--re-font-heading) !important;
}

.re-tab-unit, button.re-tab-btn, .re-input-unit label,
.re-spec-label, .re-spec-value, .re-label, .re-value,
.re-address-row span, .re-main-price, .re-price-text,
.re-price-badge, .re-pill, .re-hero-sub-line {
    font-family: var(--re-font-body) !important;
    font-weight: 600 !important;
}

/* ==========================================================================
   2. TYPOGRAPHY ED ELEMENTI UI
   ========================================================================== */
.re-pill { display: inline-block; padding: 4px 8px; border-radius: 4px; font-size: 10px; font-weight: 700; text-transform: uppercase; color: #fff; }
.re-pill-default { background: #999; } 
.re-pill-warning { background: #f39c12; }
.re-pill-success { background: #27ae60; } 
.re-pill-info { background: #2980b9; }

.re-btn-lg { display: inline-block; padding: 12px 35px; font-size: 16px; font-weight: 700; text-transform: uppercase; text-decoration: none; border-radius: 4px; transition: all 0.3s; margin-top: 20px; }
.re-btn-primary { background-color: var(--re-primary); color: #fff !important; }
.re-btn-primary:hover { background-color: var(--re-primary-dark); transform: translateY(-2px); }
.re-btn-gold { background-color: var(--re-secondary); color: #fff !important; }
.re-btn-gold:hover { filter: brightness(90%); transform: translateY(-2px); }

/* ==========================================================================
   3. ELEMENTI HERO E BLOCCHI BIVIO
   ========================================================================== */

/* Allineamento Bottoni in basso (Blocchi WordPress) */
.buttons-bottom { display: flex !important; align-items: stretch !important; }
.buttons-bottom .wp-block-column { display: flex !important; flex-direction: column !important; justify-content: flex-start !important; }
.buttons-bottom .wp-block-column > :last-child, .buttons-bottom .wp-block-column .wp-block-buttons { margin-top: auto !important; margin-bottom: 0 !important; }

/* AOS Animations */
[data-aos] { opacity: 0; transition-property: transform, opacity; }
[data-aos].aos-animate { opacity: 1; }
header [data-aos], footer [data-aos], .swiper-slide [data-aos], .re-carousel-wrapper [data-aos] { opacity: 1 !important; transform: none !important; transition: none !important; visibility: visible !important; }

/* Bivio Container */
.re-bivio-container { padding: 60px 0; max-width: 1000px; margin: 0 auto; text-align: center; }
.re-bivio-grid { display: grid; gap: 30px; margin-top: 40px; }
@media (min-width: 768px) { .re-bivio-grid { grid-template-columns: 1fr 1fr; } }
.re-bivio-card { background: var(--re-bg-card); border: 1px solid var(--re-border-light); border-radius: 8px; padding: 40px 20px; transition: transform 0.3s; display: flex; flex-direction: column; align-items: center; height: 100%; }
.re-bivio-card:hover { transform: translateY(-5px); box-shadow: 0 15px 30px rgba(0, 0, 0, 0.1); }
.re-bivio-icon { font-size: 4rem; margin-bottom: 25px; }
.re-sticky-col { position: -webkit-sticky; position: sticky; top: 120px; align-self: start; }


/* ==========================================================================
   4. MOTORE DI RICERCA Orizzontale
   ========================================================================== */
.re-container-overlap { width: 100%; margin: 0 auto; position: relative; }
.re-search-tabs-box { display: flex; gap: 0; }
.re-tab-unit { background: var(--re-secondary) !important; color: #fff !important; border: none; padding: 12px 30px; font-weight: 700; text-transform: uppercase; font-size: 13px; cursor: pointer; border-radius: 5px 5px 0 0; transition: 0.3s; margin-right: 2px; }
.re-tab-unit:hover, .re-tab-unit.active { background: var(--re-primary) !important; color: #fff !important; }
.re-search-form-unit { background: var(--re-bg-card); padding: 25px; box-shadow: 0 15px 35px rgba(0, 0, 0, 0.1); border-radius: 0 5px 5px 5px; }
.re-search-fields-grid { display: grid !important; grid-template-columns: 2fr 1.5fr 1fr 1fr 1fr; gap: 15px !important; align-items: flex-end !important; }
.re-input-unit label { display: block !important; font-size: 11px !important; font-weight: 800 !important; text-transform: uppercase !important; color: #444 !important; margin-bottom: 6px !important; letter-spacing: 0.5px !important; }
.re-input-unit select, .re-input-unit input { width: 100% !important; height: 48px !important; border: 1px solid var(--re-border-medium) !important; border-radius: 4px !important; padding: 0 15px !important; font-size: 14px !important; color: #555 !important; background-color: #fff !important; box-shadow: none !important; outline: none !important; appearance: none; }
.re-input-unit select:focus, .re-input-unit input:focus { border-color: var(--re-primary) !important; }
.re-input-unit select { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23333' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 15px center; background-size: 12px; }
.re-submit-unit button { width: 100% !important; height: 48px !important; background: var(--re-primary) !important; color: #fff !important; border: none !important; font-weight: 700 !important; text-transform: uppercase !important; cursor: pointer !important; border-radius: 4px !important; transition: background 0.3s; }
.re-submit-unit button:hover { background: var(--re-primary-dark) !important; }
@media (max-width: 992px) { .re-search-fields-grid { grid-template-columns: 1fr 1fr !important; } .re-submit-unit { grid-column: 1 / -1; } }
@media (max-width: 576px) { .re-search-fields-grid { grid-template-columns: 1fr !important; } .re-search-form-unit { padding: 20px; } }

/* ==========================================================================
   5. GRIGLIE, CARD IMMOBILI E FILTRI (Archivio, Archivio)
   ========================================================================== */
.re-archive-container { display: flex; gap: 30px; align-items: flex-start; margin: 40px 0; }
.re-archive-sidebar { width: 260px; flex-shrink: 0; background: var(--re-bg-card); padding: 25px; border: 1px solid var(--re-border-light); border-radius: 4px; }
.re-archive-content { flex-grow: 1; }
@media (max-width: 768px) { .re-archive-container { flex-direction: column; } .re-archive-sidebar { width: 100%; box-sizing: border-box; } }

/* Struttura Griglia Dinamica */
.re-list-grid { display: grid !important; grid-template-columns: repeat(3, 1fr); gap: 30px !important; }
@media (max-width: 992px) { .re-list-grid { grid-template-columns: repeat(2, 1fr) !important; gap: 20px !important; } }
@media (max-width: 600px) { .re-list-grid { grid-template-columns: 1fr !important; } }

/* Card Archivio / Portfolio */
.re-archive-card { background: transparent !important; border: none !important; display: flex; flex-direction: column; width: 100%; transition: transform 0.3s ease; }
.re-archive-card:hover { transform: translateY(-5px); }
.re-archive-card .re-card-img-wrapper { overflow: hidden; border-radius: 6px; position: relative; display: block; background: var(--re-border-light); width: 100%; aspect-ratio: 4 / 3; }
.re-archive-card .re-card-img-wrapper img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s cubic-bezier(0.25, 1, 0.5, 1) !important; will-change: transform; }
.re-archive-card:hover .re-card-img-wrapper img { transform: scale(1.08) !important; }

/* Corpo della Card */
.re-archive-card-body { background: transparent !important; margin: 18px 0 0 0 !important; padding: 0 !important; box-shadow: none !important; position: relative; z-index: 5; display: flex; flex-direction: column; flex-grow: 1; }
.re-archive-card-body .re-card-row-top { margin-bottom: 8px; display: flex; justify-content: space-between; align-items: baseline; }
.re-archive-card-body .re-city-anchor { font-size: 11px !important; font-weight: 600; text-transform: uppercase; color: #888; }
.re-archive-card-body .re-price-anchor .re-price-text { font-size: 15px !important; font-weight: 700; color: #111; }

/* FIX DEFINITIVO INTERLINEA: Reset ereditarietà sui contenitori e forzatura sui link interni */

/* 1. Forza i tag contenitori (H3/H4) a ereditare l'interlinea del testo interno senza aggiunte fittizie */
.re-archive-card-body h3.re-card-title,
.re-archive-card-body h3.re-title-anchor,
.re-home-card-body h4.re-title-anchor,
h3.re-card-title,
h3.re-title-anchor { 
    margin: 0 !important; 
    padding: 0 !important;
    line-height: inherit !important; 
}

/* 2. Controllo millimetrico della riga applicato direttamente alle ancore (Link) */
.re-archive-card-body h3.re-card-title a,
.re-archive-card-body h3.re-title-anchor a,
.re-home-card-body h4.re-title-anchor a,
h3.re-title-anchor a { 
    font-size: 18px !important; 
    line-height: 1.2 !important; 
    font-weight: 700 !important; 
    color: #111 !important; 
    text-decoration: none !important;
    display: block !important; /* Trasforma il link in blocco costringendo l'intestazione a collassare */
}

/* Stato Hover dei titoli */
.re-archive-card-body h3.re-card-title a:hover,
.re-archive-card-body h3.re-title-anchor a:hover,
h3.re-title-anchor a:hover { 
    color: var(--re-primary) !important; 
}

/* Variante con clamp (Se attiva su layout alternativi o griglie Home) */
body .re-title-anchor.re-use-clamp a,
body .re-home-card-body h4.re-title-anchor a {
    font-size: clamp(18px, 1.2vw + 10px, 32px) !important;
    line-height: 1.2 !important;
}

/* Specifiche in basso alla Card (Icone) */
re-archive-card-body .re-card-specs-row {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 10px 15px !important;
}

.re-archive-card-body .re-spec-item {
    display: inline-flex !important; /* Mantiene icona e testo raggruppati come un blocco unico */
    align-items: center !important;
    gap: 6px !important;
    white-space: nowrap !important; /* Impedisce al testo nudo di andare a capo e schiacciare l'icona */
    flex: 0 0 auto !important; /* Impedisce alterazioni di larghezza */
}

.re-archive-card-body .re-spec-item i {
    flex-shrink: 0 !important; /* Scudo assoluto: l'icona non può rimpicciolirsi mai */
    display: block !important;
}

/* Card Archiviata (Portfolio Legacy Overlay) */
.re-archive-card.re-is-archived .re-visual-img-fix, .re-is-archived img { filter: grayscale(100%); opacity: 0.6; }
.re-archived-badge { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); background-color: rgba(0,0,0,0.8); color: #fff; font-size: 11px; font-weight: bold; letter-spacing: 1px; text-transform: uppercase; padding: 8px 15px; border-radius: 4px; z-index: 20; }

/* Filtro Tipologie Sidebar */
.re-cat-list, .re-cat-sublist { list-style: none; margin: 0; padding: 0; }
.re-cat-item { margin-bottom: 12px; }
.re-cat-link { display: flex; justify-content: space-between; font-weight: 600; color: #444; font-size: 14px; padding-bottom: 5px; border-bottom: 1px dashed transparent; text-decoration: none; }
.re-cat-link:hover, .re-cat-link.active { color: var(--re-primary); border-bottom-color: var(--re-primary); }
.re-cat-sublist { margin-left: 10px; margin-top: 8px; padding-left: 10px; border-left: 2px solid #f0f0f0; }
.re-cat-sublink { font-size: 13px; color: #666; display: block; margin-bottom: 6px; text-decoration: none; }
.re-cat-sublink:hover, .re-cat-sublink.active { color: var(--re-primary); }

/* Filtro Tipologie Frontend (Box Quadrati) */
.re-btn-tutte { display: flex; flex-direction: column; align-items: center; justify-content: center; height: 100%; min-height: 100px; border-radius: 10px; box-shadow: 0 4px 20px rgba(0,0,0,0.1); text-decoration: none; background: var(--re-primary) !important; color: #ffffff !important; transition: all 0.3s ease; }
.re-btn-tutte i { font-size: 20px; margin-bottom: 8px; }
.re-btn-tutte span { font-weight: 800; font-size: 12px; }
.re-btn-tutte:hover { background: #ffffff !important; color: var(--re-primary) !important; }
.re-parent-link { font-weight: 800; font-size: 15px; text-transform: uppercase; text-decoration: none; color: #333333; display: flex; justify-content: space-between; align-items: center; padding-bottom: 8px; transition: color 0.3s ease; border-bottom: none; }
.re-parent-link.active, .re-parent-link:hover { color: var(--re-primary); }
.re-parent-link .re-count { opacity: 0.6; font-size: 11px; }
.re-child-link { font-size: 12px; margin-top: 5px; color: #666666; text-decoration: none; display: flex; justify-content: space-between; align-items: center; transition: color 0.3s ease; }
.re-child-link.active, .re-child-link:hover { color: var(--re-primary); }
.re-child-link i { font-size: 8px; opacity: 0.5; margin-right: 5px; }
.re-child-link .re-count { opacity: 0.5; font-size: 10px; }

/* Select Ordinamento Personalizzato */
.re-select-custom-wrapper { position: relative; display: inline-block; min-width: 200px; }
.re-select-custom-wrapper select { appearance: none; -webkit-appearance: none; width: 100%; padding: 10px 35px 10px 15px; font-size: 14px; font-weight: 600; color: #444; background-color: #fff; border: 1px solid #ddd; border-radius: 8px; cursor: pointer; transition: all 0.2s ease; outline: none; }
.re-select-custom-wrapper select:hover { border-color: var(--re-primary); background-color: #fafafa; }
.re-select-custom-wrapper::after { content: '\f107'; font-family: 'Font Awesome 6 Free'; font-weight: 900; position: absolute; right: 15px; top: 50%; transform: translateY(-50%); color: var(--re-primary); pointer-events: none; font-size: 14px; }
.re-select-custom-wrapper select option { font-weight: normal; background-color: #fff; color: #333; padding: 10px; }

/* ==========================================================================
   6. CAROSELLO HOME PAGE
   ========================================================================== */
.re-carousel-section { position: relative !important; margin: 0 !important; width: 100vw !important; left: 50% !important; transform: translateX(-50%) !important; overflow: hidden !important; }
.re-carousel-heading { text-align: center; font-size: clamp(24px, 4vw + 1rem, 48px) !important; font-weight: 800; margin-bottom: 30px; color: #111; }
.re-carousel-section .swiper { overflow: visible !important; padding: 40px 0 !important; }
/* 1. Ricrea il fix di Bootstrap per calcolare perfettamente larghezze e margini */
.re-carousel-section *, .re-carousel-section *::before, .re-carousel-section *::after {
    box-sizing: border-box !important;
}

/* 2. Regola le slide laterali e le spedisce in secondo piano */
.re-carousel-section .swiper-slide { 
    transition: transform 0.8s cubic-bezier(0.2, 1, 0.3, 1); 
    opacity: 1 !important; 
    transform: scale(0.85); 
    position: relative !important; 
    z-index: 1 !important; /* Forza le slide laterali a stare dietro */
}

/* 3. Manda la slide centrale (attiva) sempre in primissimo piano */
.re-carousel-section .swiper-slide-active { 
    transform: scale(1) !important; 
    z-index: 10 !important; /* Sovrasta le altre slide ripristinando l'effetto 3D */
}
.re-card-text-animated-box { 
    background: transparent; 
    padding: 25px; 
    border-radius: 4px; 
    transform: translateY(60px); 
    opacity: 0; 
    transition: transform 0.6s cubic-bezier(0.23, 1, 0.32, 1), background-color 0.4s ease, opacity 0.4s ease; 
    
    /* NUOVO: Sempre più stretto della foto sia su Desktop che su Mobile, perfettamente centrato */
    width: 88% !important; 
    margin: 0 auto !important; 
}
.swiper-slide-active .re-card-text-animated-box { background: #ffffff !important; transform: translateY(0); opacity: 1; }
.re-card-text-animated-box > * { opacity: 0; transition: opacity 0.5s ease 0.4s; }
.swiper-slide-active .re-card-text-animated-box > * { opacity: 1; }

.re-home-card.re-card-modern { background: transparent !important; border: none !important; box-shadow: none !important; display: flex; flex-direction: column; width: 100%; }
.re-home-card-body { padding: 0 !important; background: transparent !important; margin-top: -50px; z-index: 5; position: relative; }
.re-card-img-wrapper { width: 100% !important; aspect-ratio: 4 / 3 !important; position: relative !important; overflow: hidden !important; border-radius: 4px !important; background: #eee !important; display: block !important; }
.re-card-img-wrapper img, .re-visual-img-fix { width: 100% !important; height: 100% !important; object-fit: cover !important; display: block !important; opacity: 1 !important; visibility: visible !important; }

/* Badge Base (Visibili ovunque) */
.re-card-badges-absolute { 
    position: absolute; 
    bottom: 15px; /* Abbassato per non rubare troppo spazio al centro */
    left: 15px;   /* Ridotto da 35px per non sbordare nelle 4 colonne */
    right: 15px;  /* Messo un limite a destra */
    z-index: 10; 
    display: flex; 
    flex-wrap: wrap; /* FONDAMENTALE: se non ci stanno, vanno a capo da soli */
    gap: 6px; 
    align-items: center; 
    transition: opacity 0.4s ease 0.2s; 
}
.re-carousel-section .swiper-slide:not(.swiper-slide-active) .re-card-badges-absolute { opacity: 0; pointer-events: none; }
.re-badge { 
    height: auto !important; 
    min-height: 22px !important;
    display: inline-flex !important; 
    align-items: center !important; 
    padding: 4px 8px !important; /* Padding più compatto */
    font-size: clamp(8px, 0.75rem, 10px) !important; /* Si rimpicciolisce in automatico nelle card strette */
    font-weight: 800 !important; 
    text-transform: uppercase !important; 
    color: #fff !important; 
    border-radius: 4px !important; 
    letter-spacing: 0.5px !important;
    line-height: 1.2 !important;
    box-sizing: border-box !important;
    backdrop-filter: blur(4px); /* Effetto vetro elegante */
    -webkit-backdrop-filter: blur(4px); /* Supporto Safari */
    border: 1px solid rgba(255, 255, 255, 0.15) !important; /* Bordo semitrasparente per dare stacco */
}
.badge-vendita { background: var(--re-primary, #AF1920) !important; }
.badge-affitto { background: var(--re-gold, #e6a500) !important; }
.badge-type-black { background: var(--re-blue, #003366) !important; }

.re-card-row-top { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 5px; }
.re-city-anchor { font-size: 11px !important; font-weight: 600; text-transform: uppercase; color: #888; margin-bottom: 5px; display: block; }
.re-price-anchor .re-price-text { font-size: 12px !important; font-weight: 700; color: #111; }
.re-title-anchor a, .re-home-card-body h4.re-title-anchor, .re-home-card-body h4.re-title-anchor a { font-size: clamp(18px, 1.2vw + 10px, 32px) !important; font-weight: 700; color: #111 !important; text-decoration: none !important; line-height: 1.1 !important; }
.re-card-specs-row { display: flex; gap: 12px; margin-top: 12px; }
.re-spec-item { font-size: 15px; font-weight: 600; text-transform: uppercase; color: #444; display: flex; align-items: center; gap: 6px; }
.re-spec-item i { color: #AF1920; font-size: 18px; }

.re-nav-arrow { 
    /* Dimensioni fluide: minimo 32px, scala col 4% dello schermo, massimo 48px */
    width: clamp(32px, 4vw, 48px) !important; 
    height: clamp(32px, 4vw, 48px) !important; 
    font-size: clamp(14px, 1.5vw, 18px) !important; 
    
    min-width: auto !important; 
    border-radius: 50% !important; 
    background: rgba(255, 255, 255, 0.6) !important; 
    border: none !important; 
    display: flex; 
    align-items: center; 
    justify-content: center; 
    cursor: pointer; 
    position: absolute !important; 
    top: 35% !important; 
    transform: translateY(-50%) !important; 
    z-index: 100 !important; 
    transition: 0.3s !important; 
    color: #000 !important; 
    box-shadow: none !important; 
}

.re-nav-arrow:hover { 
    background: rgba(0, 0, 0, 0.8) !important; 
    color: #fff !important; 
}

.re-nav-prev { left: 2vw !important; } 
.re-nav-next { right: 2vw !important; }

.re-nav-pag { display: flex !important; justify-content: center !important; gap: 8px !important; margin-top: 20px !important; position: static !important; width: auto !important; }
.re-nav-pag .swiper-pagination-bullet { width: 10px !important; height: 10px !important; background: #ccc !important; opacity: 1 !important; transition: 0.3s !important; border-radius: 50% !important; margin: 0 !important; }
.re-nav-pag .swiper-pagination-bullet-active { background: var(--re-primary) !important; width: 30px !important; border-radius: 5px !important; transform: scale(1); }

/* Ottimizzazione responsive mobile del carousel */
@media (max-width: 767px) {
    .re-carousel-section .swiper-slide {
        box-sizing: border-box !important;
    }

    .re-carousel-section .re-home-card {
        width: 100% !important;
        margin: 0 auto !important;
    }

    .re-carousel-section .re-card-text-animated-box {
        /* Su mobile riduciamo solo leggermente il padding interno per dare spazio ai testi */
        padding: 20px 15px !important;
    }
}

/* ==========================================================================
   7. PAGE BUILDER: LAYOUT E SPAZIATURE COLONNE (Single)
   ========================================================================== */
#re-single-container { background-color: var(--re-bg-page) !important; padding-top: 40px; min-height: 600px; overflow: visible !important; position: relative; }
#re-single-container .wp-block-column { min-width: 0 !important; word-wrap: break-word !important; box-sizing: border-box !important; }
@media (max-width: 991px) {
    #re-single-container .wp-block-columns { display: block !important; flex-wrap: nowrap !important; }
    #re-single-container .wp-block-column { flex-basis: 100% !important; max-width: 100% !important; width: 100% !important; margin-left: 0 !important; margin-right: 0 !important; margin-bottom: 30px !important; }
}

.re-builder-layout-wrapper { display: flex; gap: 40px; flex-wrap: wrap; margin-top: 30px; /*margin-bottom: 40px;*/ }
.re-col-main, .re-col-sidebar { box-sizing: border-box; transition: all 0.3s ease; }

/* Colonne Dinamiche */
.re-builder-layout-wrapper.layout-2col-66 .re-col-main { width: calc(66.66% - 20px); }
.re-builder-layout-wrapper.layout-2col-66 .re-col-sidebar { width: calc(33.33% - 20px); display: block; }
.re-builder-layout-wrapper.layout-2col-50 .re-col-main { width: calc(50% - 20px); }
.re-builder-layout-wrapper.layout-2col-50 .re-col-sidebar { width: calc(50% - 20px); display: block; }
.re-builder-layout-wrapper.layout-1col { display: block; }
.re-builder-layout-wrapper.layout-1col .re-col-main { width: 100%; }
.re-builder-layout-wrapper.layout-1col .re-col-sidebar { display: none; }

.sidebar-is-sticky { position: -webkit-sticky; position: sticky; top: 130px; align-self: flex-start; }
.re-builder-block-item { margin-bottom: 40px; }
.re-builder-block-item:last-child { margin-bottom: 0; }

@media (max-width: 992px) {
    .re-builder-layout-wrapper.layout-2col-66 .re-col-main, .re-builder-layout-wrapper.layout-2col-66 .re-col-sidebar,
    .re-builder-layout-wrapper.layout-2col-50 .re-col-main, .re-builder-layout-wrapper.layout-2col-50 .re-col-sidebar {
        width: 100% !important;
        flex: 1 1 100% !important; /* Necessario perche' single-immobile.php imposta un flex-basis esplicito (66%/33%),
                                       che altrimenti vince sulla sola proprieta' width qui sopra */
    }
    .sidebar-is-sticky { position: static !important; }
}

/* ==========================================================================
   AREE FULL-WIDTH (SUPERIORE E INFERIORE)
   ========================================================================== */
.re-top-area {
    width: 100%;
    margin-bottom: 30px;
    clear: both;
}

.re-bottom-area {
    width: 100%;
    margin-top: 40px; /* Crea un bello stacco dalle colonne soprastanti */
    clear: both;
}

/* Rimuove il margine extra dall'ultimo blocco per evitare spazi vuoti eccessivi prima del footer */
.re-top-area .re-builder-block-item:last-child,
.re-bottom-area .re-builder-block-item:last-child {
    margin-bottom: 0;
}

/* ==========================================================================
   8. SCHEDA IMMOBILE: INTESTAZIONE E TOOLBAR (Condivisione, Badge)
   ========================================================================== */

/* Layout Intestazione Header */
.re-header-modern { display: flex; justify-content: space-between; align-items: flex-start; padding-bottom: 20px; border-bottom: 1px solid var(--re-border-light); margin-bottom: 30px; }
.re-main-title { font-size: 2.4rem !important; margin: 0 0 10px 0 !important; line-height: 1.2; }
.re-main-price { font-size: 1.6rem; font-weight: 700; color: var(--re-primary); white-space: nowrap; }
.re-single-eyebrow { font-size: 18px; margin-bottom: 10px; font-weight: 600; }
.re-sep { margin: 0 8px; color: #ccc; }

@media (max-width: 768px) { 
    .re-header-modern { flex-direction: column; } 
    .re-header-right { margin-top: 10px; } 
}

/* Toolbar Setup e Protezione Overlap */
.entry-content > *:has(.re-share-toolbar), .wp-block-group:has(.re-share-toolbar), .wp-block-columns:has(.re-share-toolbar), .wp-block-column:has(.re-share-toolbar), .row:has(.re-share-toolbar), [class*="col-"]:has(.re-share-toolbar) { position: relative !important; z-index: 9990 !important; overflow: visible !important; }
.wp-block-group:has(.re-share-toolbar) { position: relative !important; z-index: 50 !important; }
.wp-block-group.is-layout-flex.is-not-stacked-on-mobile:has(.re-property-badges-wrapper):has(.re-share-toolbar) { justify-content: space-between !important; flex-wrap: nowrap !important; width: 100% !important; display: flex !important; padding-left: 0 !important; padding-right: 0 !important; }
.wp-block-group.is-layout-flex:has(.re-property-badges-wrapper) p { margin: 0 !important; display: contents; }
.re-property-badges-wrapper, .re-share-toolbar { display: flex; gap: 12px; align-items: center; margin: 0 !important; padding: 0 !important; flex-wrap: wrap; }
.re-share-toolbar { justify-content: flex-end; }


/* ==========================================================================
   FORMATTAZIONE BASE BOTTONI E STRUMENTI (Condivisione, Stampa)
   ========================================================================== */
.re-tool-btn { 
    display: inline-flex !important; align-items: center !important; justify-content: center !important; 
    border-radius: 4px !important; text-transform: uppercase !important; font-weight: 800 !important;
    box-sizing: border-box !important; margin: 0 !important; text-decoration: none; line-height: 1 !important; 
    height: 40px !important; padding: 0 18px !important; font-size: 12px !important; 
    background: #f5f5f5 !important; color: #444 !important; border: 1px solid #ddd !important; 
    transition: all 0.2s ease !important; gap: 8px; cursor: pointer !important;
}
.re-share-toolbar .re-tool-btn:hover { background: #e9ecef !important; color: #111 !important; border-color: #ccc !important; }
.re-share-toolbar .re-tool-btn i { font-size: 15px; }


/* ==========================================================================
   A. BADGE IN PAGINA SINGOLA IMMOBILE (Grandi 40px, Solidi e Allineati ai Bottoni)
   ========================================================================== */
.re-badge { 
    display: inline-flex !important; align-items: center !important; justify-content: center !important; 
    border-radius: 4px !important; text-transform: uppercase !important; font-weight: 800 !important;
    box-sizing: border-box !important; margin: 0 !important; text-decoration: none; line-height: 1 !important; 
    height: 40px !important; /* Stessa identica altezza dei pulsanti Stampa e Condividi */
    padding: 0 18px !important; /* Padding generoso */
    font-size: 12px !important; /* Testo grande leggibile */
    letter-spacing: 0.5px;
    border: none !important; 
    opacity: 1 !important; 
    backdrop-filter: none !important; 
    -webkit-backdrop-filter: none !important; 
}
.re-property-badges-wrapper .re-badge:hover { opacity: 0.85 !important; }

/* Colori Solidi al 100% per la Pagina Singola */
.badge-vendita, .re-badge-contratto { background: #AF1920 !important; color: #ffffff !important; box-shadow: 0 4px 10px rgba(175, 25, 32, 0.15) !important; }
.badge-affitto { background: #e6a500 !important; color: #ffffff !important; box-shadow: 0 4px 10px rgba(230, 165, 0, 0.15) !important; }
.badge-type-black, .re-badge-tipologia { background: #003366 !important; color: #ffffff !important; box-shadow: 0 4px 10px rgba(0,0,0,0.1) !important; }
.re-badge-storico { background: #4a5568 !important; color: #ffffff !important; box-shadow: 0 4px 10px rgba(0,0,0,0.1) !important; transition: all 0.2s; }
.re-badge-storico:hover { background: #2d3748 !important; }


/* ==========================================================================
   B. BADGE SULLE IMMAGINI CARD (Griglie, Portfolio e Carousel - Compatti e Trasparenti)
   ========================================================================== */

/* Contenitore assoluto sopra le immagini: definito piu' in alto (riga ~335, sezione Badge Base) */

/* Regolazione per i Carousel (Accavallamento a metà sul riquadro bianco) */
.re-carousel-section .re-card-badges-absolute, .re-brand-card-slider .re-card-badges-absolute, .re-home-card .re-card-badges-absolute {
    bottom: 35px !important; left: 55px !important; right: 55px !important;
}

/* Ridimensionamento proporzionato ed effetto vetro SOLO per le card */
.re-card-badges-absolute .re-badge {
    height: 32px !important; /* Misura compatta per stare dentro la foto della card */
    padding: 0 14px !important; 
    font-size: 11px !important; 
    border: none !important;
    backdrop-filter: blur(4px) !important; 
    -webkit-backdrop-filter: blur(4px) !important;
}

/* Colori Semitrasparenti all'85% per le card */
.re-card-badges-absolute .badge-vendita, .re-card-badges-absolute .re-badge-contratto { background: rgba(175, 25, 32, 0.50) !important; }
.re-card-badges-absolute .badge-affitto { background: rgba(230, 165, 0, 0.50) !important; }
.re-card-badges-absolute .badge-type-black, .re-card-badges-absolute .re-badge-tipologia { background: rgba(0, 51, 102, 0.50) !important; }
.re-card-badges-absolute .re-badge-storico { background: rgba(74, 85, 104, 0.50) !important; }


/* ==========================================================================
   POPOVER SOCIAL: POSIZIONAMENTO E CONTENIMENTO MOBILE
   ========================================================================== */

.re-share-dropdown-wrapper { 
    position: relative; 
    display: flex; 
    height: 40px; 
    z-index: 9999; 
}

/* Questa area invisibile serve a mantenere aperto il popup durante lo spostamento del mouse */
.re-share-dropdown-wrapper::after { 
    content: ""; 
    position: absolute; 
    top: 100%; 
    left: 0; 
    width: 100%; 
    height: 20px; 
    background: transparent; 
    display: none; 
}

.re-share-dropdown-wrapper:hover::after, 
.re-share-dropdown-wrapper:hover .re-share-popover { 
    display: block; 
}

.re-share-popover { 
    display: none; 
    position: absolute; 
    top: calc(100% + 12px); 
    right: 0; /* Ancoraggio a destra */
    width: 220px !important; /* Larghezza definita per evitare impazzimenti */
    background: #fff; 
    border: 1px solid rgba(0,0,0,0.08); 
    box-shadow: 0 15px 35px rgba(0, 0, 0, 0.2); 
    border-radius: 12px; 
    z-index: 99999; 
    padding: 15px;
    
    /* MODIFICHE PER IL CONTENIMENTO MOBILE */
    max-width: calc(100vw - 30px) !important; /* Non uscirà mai dai bordi dello schermo */
    box-sizing: border-box !important;
}

/* Il bottone principale (il contenitore) */
.re-social-link { 
    display: flex !important; 
    align-items: center !important; 
    gap: 12px !important; 
    padding: 10px 12px !important; 
    color: #444 !important; 
    text-decoration: none !important; 
    border-radius: 8px !important; 
    transition: all 0.2s ease !important; 
    background: none !important; 
    border: none !important; 
    width: calc(100% - 24px) !important; 
    margin: 0 auto 2px auto !important;
    text-align: left !important; 
    font-size: 14px !important; 
    font-weight: 500 !important; 
    white-space: nowrap !important; 
    box-sizing: border-box !important;
}

/* L'icona dentro il bottone (DA TENERE) */
.re-social-link i { 
    width: 20px !important; 
    text-align: center !important; 
    font-size: 16px !important; 
    color: var(--re-primary) !important; 
}

/* L'effetto al passaggio del mouse */
.re-social-link:hover { 
    background: #f8f9fa !important; 
    color: var(--re-primary) !important; 
    padding-left: 16px !important; 
}

@media (max-width: 768px) {
    /* 1. Blocchiamo l'andata a capo della toolbar usando l'ancoraggio nativo */
    #re-single-container .re-builder-block-item > div:has(.re-share-toolbar) {
        flex-wrap: nowrap !important;
        gap: 8px !important;
    }

    /* 2. Riduciamo i Badge in maniera compatta e proporzionale */
    .re-property-badges-wrapper { 
        gap: 6px !important; 
        flex-wrap: nowrap !important; 
    }
    .re-property-badges-wrapper .re-badge { 
        height: 36px !important; 
        padding: 0 10px !important; 
        font-size: 10px !important; 
        white-space: nowrap !important; 
    }

    /* 3. Riduciamo i Bottoni Stampa/Condividi e nascondiamo il testo */
    .re-share-toolbar { 
        gap: 6px !important; 
        flex-wrap: nowrap !important; 
    }
    .re-share-toolbar .re-tool-btn { 
        height: 36px !important; 
        padding: 0 12px !important; 
        min-width: 36px !important; 
    }
    .re-share-toolbar .re-tool-btn i { 
        font-size: 16px !important; 
        margin: 0 !important; 
    }
    .re-share-toolbar .re-btn-text { 
        display: none !important; 
    }

    /* 4. Blindiamo il Popover per assicurarci che non esca MAI dallo schermo */
    .re-share-dropdown-wrapper .re-share-popover {
        right: 0 !important;
        left: auto !important;
        transform: none !important;
        max-width: 90vw !important; /* Limite di sicurezza dello schermo */
    }
}


@media (max-width: 480px) {
    .re-card-badges-absolute { bottom: 10px !important; left: 10px !important; right: 10px !important; }
    .re-carousel-section .re-card-badges-absolute, .re-home-card .re-card-badges-absolute { bottom: 30px !important; left: 15px !important; right: 15px !important; }
    .re-card-badges-absolute .re-badge { height: 22px !important; padding: 0 8px !important; font-size: 8.5px !important; }
}

/* ==========================================================================
   9. SCHEDA IMMOBILE: MEDIA (Galleria Fotografica e Planimetrie)
   ========================================================================== */
.re-main-slider { width: 100% !important; position: relative; margin-bottom: 15px; border-radius: var(--re-img-radius); overflow: hidden; }
.re-main-slider img { width: 100%; height: auto; aspect-ratio: 16/10; object-fit: cover; display: block; }
.re-main-slider .swiper-button-next, .re-main-slider .swiper-button-prev { width: 44px !important; height: 44px !important; background: rgba(0, 0, 0, 0.4); border-radius: 50%; color: #fff; z-index: 20; margin-top: -22px; }
.re-main-slider .swiper-button-next:hover, .re-main-slider .swiper-button-prev:hover { background: var(--re-primary); }
.re-main-slider .swiper-button-next::after, .re-main-slider .swiper-button-prev::after { font-size: 18px !important; font-weight: 900; }
.re-slider-pagination { position: absolute !important; bottom: 15px !important; right: 15px !important; left: auto !important; width: auto !important; background: rgba(0, 0, 0, 0.7) !important; color: #fff !important; padding: 5px 12px !important; border-radius: 20px; font-size: 13px !important; font-weight: 700; z-index: 20; }

.re-thumbs-wrapper { position: relative !important; padding: 0 40px !important; width: 100%; box-sizing: border-box; }
.re-thumbs-wrapper .re-thumb-arrow { width: 30px !important; height: 30px !important; background: rgba(0, 0, 0, 0.6) !important; border-radius: 50%; color: #fff; z-index: 10; position: absolute !important; top: 50% !important; margin-top: 0 !important; transform: translateY(-50%) !important; }
.re-thumbs-wrapper .re-thumb-arrow:hover { background: var(--re-primary) !important; }
.re-thumbs-wrapper .re-thumb-arrow::after { font-size: 12px !important; font-weight: 900; }
.re-thumbs-wrapper .re-thumb-prev { left: 0 !important; right: auto; }
.re-thumbs-wrapper .re-thumb-next { right: 0 !important; left: auto; }
.re-thumbs-slider { width: 100%; height: auto; overflow: hidden; }
.re-thumbs-slider .swiper-slide { width: 25%; height: auto !important; opacity: 0.5; cursor: pointer; transition: 0.3s; box-sizing: border-box; }
.re-thumbs-slider .swiper-slide-thumb-active { opacity: 1; border: 2px solid var(--re-primary); border-radius: 4px; }
.re-thumbs-slider img { width: 100%; height: 100%; aspect-ratio: 16/10; object-fit: cover; display: block; border-radius: 2px; }

@media (max-width: 600px) {
    .re-main-slider img, .re-thumbs-slider img { aspect-ratio: 4/3; }
    .re-thumbs-wrapper { padding: 0 30px !important; }
}

.re-gallery-toggles { display: flex; justify-content: center; gap: 12px; margin-top: 20px; margin-bottom: 10px; }
.re-gal-btn { background: #f8f9fa; border: 1px solid #ddd; padding: 10px 24px; border-radius: 30px; cursor: pointer; font-size: 13px; font-weight: 700; color: #555; text-transform: uppercase; transition: all 0.3s ease; display: flex; align-items: center; gap: 8px; }
.re-gal-btn i { font-size: 16px; }
.re-gal-btn:hover { background: #e9ecef; color: #333; }
.re-gal-btn.active { background: var(--re-primary); color: #fff; border-color: var(--re-primary); box-shadow: 0 4px 15px rgba(175, 25, 32, 0.3); }

/* ==========================================================================
   10. SCHEDA IMMOBILE: SILOS DATI E DETTAGLI (Griglie Modulari)
   ========================================================================== */
.re-card-box, .re-unified-box, #re-single-container .re-card-box {
    margin-top: 0 !important; background: var(--re-bg-card); padding: 25px; border-radius: var(--re-img-radius);
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05); margin-bottom: 25px; width: 100%; box-sizing: border-box; display: block !important; 
}
.re-spec-header { margin: 0 0 20px 0; padding-bottom: 10px; border-bottom: 2px solid var(--re-primary); font-size: 18px; color: #333; display: block; }

/* Griglia Modulare a icone quadrate */
.re-modular-grid { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)) !important; gap: 20px 15px !important; width: 100% !important; align-items: start !important; }
.re-spec-item { 
    display: flex !important; 
    align-items: center !important; 
    gap: 6px !important; /* Aggiunto gap esplicito */
    flex-shrink: 0;      /* Impedisce all'elemento di restringersi */
}

/* Necessario per le unita' cqw usate in re-spec-label/re-spec-value qui sotto.
   Scoperto a .re-modular-grid per non trasformare in container anche i .re-spec-item
   delle card/carousel (Sezione 6), che condividono la stessa classe. */
.re-modular-grid .re-spec-item {
    container-type: inline-size;
}

.re-spec-icon { 
    width: 20px !important;  /* Imposta una larghezza fissa per l'icona */
    height: 20px !important;
    display: flex; 
    align-items: center; 
    justify-content: center; 
    flex-shrink: 0;         /* L'icona non deve mai cambiare dimensione */
}

.re-spec-info { 
    display: flex; 
    flex-direction: column; 
    min-width: 0;           /* Fondamentale per evitare l'overflow del testo */
    flex: 1;                /* Si prende tutto lo spazio rimanente */
}
.re-spec-label { 
    font-size: clamp(9px, 6cqw, 11px); 
    color: #888; 
    text-transform: uppercase; 
    font-weight: 600; 
    line-height: 1.2; 
    white-space: nowrap; 
}

.re-spec-value { 
    font-size: clamp(10px, 8cqw, 13px); 
    font-weight: 700; 
    color: #333; 
    line-height: 1.2; 
    
    /* Permette di andare a capo in modo naturale tra le parole */
    white-space: normal !important; 
    
    /* Vieta di spezzare una singola parola a metà */
    word-break: normal !important;
    overflow-wrap: normal !important;
    -webkit-hyphens: none !important;
    hyphens: none !important;
}

/* Silos Layout Lista Alternata */
.re-silo-list-layout { display: grid; grid-template-columns: 1fr 1fr; column-gap: 40px; row-gap: 0; }
.re-list-row { display: flex; justify-content: space-between; align-items: center; padding: 12px 0; border-bottom: 1px solid var(--re-border-light); font-size: 14px; }
.re-list-row:last-child, .re-list-row:nth-last-child(2) { border-bottom: none; }
.re-list-label { color: #777; font-weight: 600; display: flex; align-items: center; gap: 10px; text-transform: uppercase; font-size: 11px; }
.re-list-label i { color: var(--re-primary); width: 16px; text-align: center; font-size: 14px; }
.re-list-value { color: #333; font-weight: 700; text-align: right; max-width: 55%; word-wrap: break-word; }

@media (max-width: 768px) { 
    .re-silo-list-layout { grid-template-columns: 1fr; } 
    .re-list-row:nth-last-child(2) { border-bottom: 1px solid var(--re-border-light); } 
}


/* ==========================================================================
   11. SCHEDA IMMOBILE: MAPPA E INDIRIZZO
   ========================================================================== */
.re-item-map { grid-column: 1 / -1 !important; width: 100% !important; display: block !important; margin-bottom: 25px !important; }
.re-address-grid { grid-column: 1 / -1 !important; width: 100% !important; }
.re-map-layout-wrapper { display: flex; flex-direction: column; gap: 20px; }
.re-map-side, .re-address-side { width: 100%; }

.re-map-side .re-google-map-canvas, .re-google-map-canvas {
    width: 100% !important; height: 350px !important; min-height: 350px;
    background-color: #eee; border-radius: var(--re-img-radius); display: block; margin-bottom: 20px;
    border: 1px solid #e5e5e5;
}

/* Stili Layout Orizzontali Desktop */
@media (min-width: 768px) {
    .re-layout-left { flex-direction: row; align-items: flex-start; }
    .re-layout-right { flex-direction: row-reverse; align-items: flex-start; }
    .re-layout-bottom { flex-direction: column-reverse; }
    .re-layout-left .re-map-side, .re-layout-left .re-address-side, .re-layout-right .re-map-side, .re-layout-right .re-address-side { width: 50%; flex: 1; }
    .re-layout-left .re-google-map-canvas, .re-layout-right .re-google-map-canvas { margin-bottom: 0; }
    .re-address-grid { display: grid !important; grid-template-columns: 1fr 1fr !important; column-gap: 40px; }
}

/* Linee Divisorie Elenco Indirizzo Mappa */
.re-address-side .re-list-row { border-bottom: 1px solid #f0f0f0 !important; }
.re-address-side .re-list-row:last-child { border-bottom: none !important; }

/* Layout "Largo" (Top/Bottom) - Indirizzo a 2 Colonne */
.re-address-side.re-address-2col { display: grid; grid-template-columns: 1fr 1fr; column-gap: 40px; }
.re-address-side.re-address-2col .re-list-row:nth-child(odd):nth-last-child(2) { border-bottom: none !important; }

@media (max-width: 768px) {
    .re-address-side.re-address-2col { grid-template-columns: 1fr; }
    .re-address-side.re-address-2col .re-list-row:nth-child(odd):nth-last-child(2) { border-bottom: 1px solid #f0f0f0 !important; }
}

/* ==========================================================================
   12. SCHEDA IMMOBILE: MODULO CONTATTI, TABS E QR CODE
   ========================================================================== */

   /* Contenitore Base */
   #re-single-container .re-contact-card-adaptive { background: var(--re-bg-card); padding: 25px; border-radius: var(--re-img-radius); width: 100%; box-sizing: border-box; margin-bottom: 30px; margin-top: 0 !important; }
   .re-contact-title { font-size: 1.3rem; margin-bottom: 20px; margin-top: 0 !important; color: #333; text-align: center; }
   
   /* --------------------------------------------------------------------------
      LAYOUT FLUIDO: BOX GRIGIO (SINISTRA) E FORM CF7 (DESTRA)
      -------------------------------------------------------------------------- */
   .layout-1col .re-contact-layout-wrapper {
       display: flex;
       flex-wrap: wrap;
       gap: 40px; /* Spazio tra pulsanti e form */
       align-items: flex-start;
       width: 100%;
   }
   
   .layout-1col .re-contact-buttons-side {
       flex: 1 1 300px; /* Cresce e si restringe. Sotto i 300px forza il wrap e va sopra */
       box-sizing: border-box;
   }
   
   .layout-1col .re-contact-form-side {
       flex: 2 1 450px; /* Prende il doppio dello spazio (se c'è). Sotto i 450px va a capo sotto i pulsanti */
       box-sizing: border-box;
       min-width: 280px;
   }
   
   /* --------------------------------------------------------------------------
      IL FORM ADATTIVO CF7 (Versione Flexbox: zero spazi vuoti)
      -------------------------------------------------------------------------- */
   .re-cf7-adaptive-grid {
       display: flex;
       flex-wrap: wrap;
       gap: 15px 20px;
       width: 100%;
   }
   
   .re-cf7-field { 
       flex: 1 1 calc(50% - 10px); /* Tenta di fare 2 colonne invece di 3 per dare più spazio nel layout fluido */
       min-width: 220px; 
       max-width: 100%;
   }
   
   /* Forza Messaggio, Privacy e Bottone a prendere sempre tutta la riga */
   .re-cf7-full { 
       flex: 1 1 100%; 
   }
   
   /* Blinda gli span nascosti di CF7 che "ingabbiano" i campi */
   .re-cf7-adaptive-grid .wpcf7-form-control-wrap {
       display: block !important;
       width: 100% !important;
   }
   
   .re-cf7-adaptive-grid input:not([type="submit"]):not([type="checkbox"]), 
   .re-cf7-adaptive-grid textarea,
   .re-cf7-adaptive-grid select { 
       width: 100%; 
       padding: 12px 15px; 
       border: 1px solid var(--re-border-medium); 
       border-radius: 4px; 
       background: #fdfdfd; 
       font-size: 14px; 
       color: #333;
       font-family: inherit;
       box-sizing: border-box; 
       transition: all 0.2s ease;
       -webkit-appearance: none; 
       appearance: none;
       margin: 0;
   }
   
   /* Ripristina la freccina nativa per i select */
   .re-cf7-adaptive-grid select {
       background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="%23333" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M6 9l6 6 6-6"/></svg>');
       background-repeat: no-repeat;
       background-position: right 15px center;
       padding-right: 40px;
       cursor: pointer;
   }
   
   .re-cf7-adaptive-grid input:not([type="submit"]):not([type="checkbox"]):focus, 
   .re-cf7-adaptive-grid textarea:focus,
   .re-cf7-adaptive-grid select:focus {
       border-color: var(--re-primary);
       outline: none;
       box-shadow: 0 0 0 3px rgba(175, 25, 32, 0.1);
       background: #fff;
   }
   
   .re-cf7-adaptive-grid textarea { 
       min-height: 120px; 
       resize: vertical;
       margin-top: 0;
   }

/* Privacy Checkbox */
.re-privacy-field { font-size: 13px; color: #555; margin-top: -5px; }
.re-privacy-field .wpcf7-list-item { margin: 0; }
.re-privacy-field input[type="checkbox"] { margin-right: 8px; transform: scale(1.1); cursor: pointer; }
.re-privacy-field a { color: var(--re-primary); text-decoration: underline; }

/* Bottone di Invio CF7 */
.re-cf7-adaptive-grid .re-submit-custom { 
    width: 100%; 
    background: var(--re-primary) !important; 
    color: #fff !important; 
    border: none !important; 
    padding: 14px !important; 
    font-size: 14px !important;
    font-weight: 700 !important; 
    text-transform: uppercase !important; 
    border-radius: 4px !important; 
    cursor: pointer !important; 
    transition: all 0.3s ease !important; 
    margin-top: 10px;
}
.re-cf7-adaptive-grid .re-submit-custom:hover { background: var(--re-primary-dark) !important; transform: translateY(-2px); box-shadow: 0 5px 15px rgba(175, 25, 32, 0.2); }
.wpcf7-spinner { display: none !important; }


/* --------------------------------------------------------------------------
   CONTATTI RAPIDI E SEDI (Call / WhatsApp)
   -------------------------------------------------------------------------- */
   /* Reset globale dei margini superiori per evitare lo sbalzo dello sticky */
   .re-contact-card-adaptive,
   .re-archivio-contact-container {
       margin-top: 0 !important;
   }

   .re-quick-contact-title { display: flex; align-items: center; text-align: center; margin-bottom: 20px !important; font-size: 11px; font-weight: 800; text-transform: uppercase; color: var(--re-primary); letter-spacing: 1px; }
.re-quick-contact-title::before, .re-quick-contact-title::after { content: ''; flex: 1; border-bottom: 1px solid #eee; }
.re-quick-contact-title span { padding: 0 15px; }

.re-quick-contact-box { background: #f8f9fa !important; border: 1px solid #eeeeee !important; padding: 25px 20px; border-radius: 8px; margin-bottom: 15px; text-align: center; }
.re-quick-contact-box:last-child { margin-bottom: 25px; }

.re-quick-contact-box .re-agency-label { display: block; text-align: center; margin-bottom: 15px !important; }
.re-quick-contact-box .re-sede-prefix { font-size: 14px; font-weight: 400; color: #777; }
.re-quick-contact-box .re-sede-name { font-size: 16px; font-weight: 800; color: #111; text-transform: uppercase; margin-left: 4px; }
.re-quick-agency-group .re-btn-row { display: flex; justify-content: center; gap: 10px; }

.re-agency-numbers-text { margin-top: 15px !important; text-align: center; font-family: var(--re-font-body); }
.re-agency-numbers-text .re-num-lbl { font-size: 11px; color: #777; text-transform: uppercase; font-weight: 600; }
.re-agency-numbers-text strong { color: #111; font-size: 16px; font-weight: 800; letter-spacing: 0.5px; }

.re-btn-call-solid, .re-btn-whatsapp-solid { flex: 1; display: flex; align-items: center; justify-content: center; gap: 8px; padding: 12px 10px; border-radius: 6px; font-weight: 700; text-decoration: none; font-size: 14px; transition: 0.3s; color: #fff !important; }
.re-btn-call-solid { background: var(--re-primary); box-shadow: 0 4px 15px rgba(175, 25, 32, 0.3); }
.re-btn-call-solid:hover { background: var(--re-primary-dark); transform: translateY(-2px); box-shadow: 0 6px 20px rgba(175, 25, 32, 0.4); }
.re-btn-whatsapp-solid { background: var(--re-whatsapp); box-shadow: 0 4px 15px rgba(37, 211, 102, 0.3); }
.re-btn-whatsapp-solid:hover { background: var(--re-whatsapp-hover); transform: translateY(-2px); box-shadow: 0 6px 20px rgba(37, 211, 102, 0.4); }

.re-contact-separator { display: flex; align-items: center; text-align: center; margin-bottom: 25px; }
.re-contact-separator::before, .re-contact-separator::after { content: ''; flex: 1; border-bottom: 1px solid #eee; }
.re-contact-separator span { padding: 0 15px; color: #999; font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: 1px; }

/* FORZA IL LAYOUT A DUE COLONNE PER I CONTATTI */
.re-contact-card-adaptive .re-contact-layout-wrapper {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 40px !important;
    align-items: flex-start !important;
    width: 100%;
}

.re-contact-card-adaptive .re-contact-buttons-side {
    flex: 1 1 300px !important;
    min-width: 280px;
}

.re-contact-card-adaptive .re-contact-form-side {
    flex: 2 1 400px !important;
    min-width: 300px;
}

/* --------------------------------------------------------------------------
   RESPONSIVE MOBILE: MODULO CONTATTI E FORM CF7
   -------------------------------------------------------------------------- */
@media (max-width: 768px) {
    /* 1. Spegniamo la griglia Flexbox principale e impiliamo i blocchi */
    .re-contact-card-adaptive .re-contact-layout-wrapper {
        display: block !important;
        width: 100% !important;
    }
    
    /* 2. Rimuoviamo i vincoli di larghezza minima dalle due colonne (Testi e Form) */
    .re-contact-card-adaptive .re-contact-buttons-side,
    .re-contact-card-adaptive .re-contact-form-side {
        display: block !important;
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
        margin-bottom: 30px !important;
    }

    #re-single-container .re-contact-card-adaptive {
        padding: 25px 15px !important;
        overflow-x: hidden;
    }

    /* 3. Spegniamo Flexbox anche dentro la griglia di Contact Form 7 */
    .re-cf7-adaptive-grid {
        display: block !important; 
        width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    /* 4. Obblighiamo ogni campo (Nome, Email, ecc.) a prendersi tutta la riga e resettiamo i gap */
    .re-cf7-adaptive-grid .re-cf7-field,
    .re-cf7-adaptive-grid .re-cf7-full,
    .re-cf7-adaptive-grid .re-cf7-half {
        display: block !important;
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        margin: 0 0 15px 0 !important; /* Usiamo margin-bottom per separare i campi */
        padding: 0 !important;
        box-sizing: border-box !important;
    }

    /* 5. Blindatura finale sugli span nascosti e sugli input per disintegrare le restrizioni di sistema */
    .re-cf7-adaptive-grid .wpcf7-form-control-wrap,
    .re-cf7-adaptive-grid input:not([type="submit"]):not([type="checkbox"]),
    .re-cf7-adaptive-grid select,
    .re-cf7-adaptive-grid textarea {
        display: block !important;
        width: 100% !important;
        min-width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }
}

/* --------------------------------------------------------------------------
   SEZIONE QR CODE DESKTOP
   -------------------------------------------------------------------------- */
.re-qr-compact-box { display: flex; align-items: center; justify-content: space-between; background: #f9f9f9 !important; border: 1px solid #eee !important; border-radius: 6px; margin-bottom: 25px; padding: 12px 15px; gap: 15px; }
.re-qr-content { flex: 1; }
.re-qr-label { font-size: 11px !important; line-height: 1.3 !important; font-weight: 700; text-transform: uppercase; color: #777; margin: 0 !important; }
.re-qr-image-wrapper { flex-shrink: 0; background: #fff; padding: 5px; border-radius: 4px; border: 1px solid var(--re-border-medium); line-height: 0; }
.re-qr-img { width: 70px; height: 70px; display: block; }
.re-qr-section { text-align: center; margin-top: 15px; padding-top: 15px; border-top: 1px solid #eee; display: flex; flex-direction: column; align-items: center; }
.re-qr-section img { width: 100%; height: auto; max-width: 160px; display: block; margin: 0 auto; border-radius: 4px; }

/* --------------------------------------------------------------------------
   TABS LAYOUT BASE
   -------------------------------------------------------------------------- */
.re-tabs-container { margin-bottom: 20px; background: #fff; border: 1px solid #eee; border-radius: 8px; overflow: hidden; }
.re-tabs-nav { display: flex; list-style: none; margin: 0; padding: 0; background: #f8f8f8; border-bottom: 1px solid #eee; }
.re-tabs-nav li { flex: 1; padding: 15px 10px; text-align: center; font-size: 13px; font-weight: 700; text-transform: uppercase; color: #888; cursor: pointer; transition: 0.3s; border-bottom: 3px solid transparent; }
.re-tabs-nav li.active { color: var(--re-primary); background: #fff; border-bottom-color: var(--re-primary); }
.re-tab-pane { display: none; padding: 20px; animation: fadeInTab 0.4s ease; }
.re-tab-pane.active { display: block; }
@keyframes fadeInTab { from { opacity: 0; transform: translateY(5px); } to { opacity: 1; transform: translateY(0); } }

/* ==========================================================================
   13. STAMPA E FIX FINALE LAYOUT (Scheda A4 - Architettura Zero-Border)
   ========================================================================== */
.re-print-header-only, 
.re-print-gallery-grid, 
.re-print-separator, 
.re-print-planimetrie-wrapper, 
.re-print-description-only { 
    display: none !important; 
}

@media print {

    /* 1. NASCONDI TUTTO IL DOM DI BASE E RIPRISTINA SOLO IL CONTENITORE */
    body * { visibility: hidden !important; }
    #re-single-container, #re-single-container * { visibility: visible !important; }

    /* 2. RESET TOTALE STRUTTURA E BYPASS PADDING INLINE DEL TEMA */
    html, body, #page, #content, #primary, #main, .site-content, .wrapper, .wp-block-post-content {
        position: static !important;
        transform: none !important; 
        margin: 0 !important; padding: 0 !important;
        background: #ffffff !important; border: none !important;
    }

    #re-single-container {
        position: absolute !important; top: 0 !important; left: 0 !important;
        width: 100% !important; margin: 0 !important; padding: 0 !important; 
        background: #ffffff !important; border: none !important;
    }

    /* SCACCO MATTO AL PADDING INLINE (Annulla spazi bianchi residui in alto) */
    .re-dynamic-container {
        position: absolute !important; top: 0 !important; left: 0 !important;
        width: 100% !important; margin: 0 !important; padding: 0 !important;
    }
    
    /* 3. AZZERAMENTO DI TUTTI I WRAPPER (IL SEGRETO CONTRO LE RIGHE DOPPIE) */
    .re-card-box, .re-builder-block-item, .re-top-area, .re-bottom-area, .re-col-main, .re-col-sidebar { 
        border: none !important; margin: 0 !important; padding: 0 !important; 
        background: transparent !important; box-shadow: none !important; display: block !important;
    }
    
    /* 4. NASCONDI LA UI E I MODULI WEB INUTILI */
    .site-header, #masthead, hr,
    .re-property-badges-wrapper, .re-share-toolbar, .re-share-toolbar *,
    .re-property-contact-box, .re-property-contact-box *,
    .re-web-gallery, .re-web-gallery *, .re-mode-switcher, .re-mode-switcher *,
    .wpcf7, .wpcf7 *, .re-tabs-nav, .re-tabs-nav *,
    .re-hide-in-print, .re-hide-in-print * {
        display: none !important; height: 0 !important; margin: 0 !important; padding: 0 !important; border: none !important;
    }

    @page { margin: 1cm 1cm 1cm 1cm; size: A4 portrait; }
    * { box-shadow: none !important; text-shadow: none !important; filter: none !important; -webkit-filter: none !important; }

    /* =========================================================================
       5. ASSEGNAZIONE CHIRURGICA DELLE RIGHE E DELL'ORDINE
       ========================================================================= */
    
    /* -- HEADER STAMPA (PRESO ESATTAMENTE DAL TUO CODICE FUNZIONANTE) -- */
    .re-print-header-only { display: flex !important; justify-content: space-between; align-items: center; margin-bottom: 20px !important; padding-bottom: 10px !important; border: none !important; border-bottom: 2px solid #000 !important; width: 100% !important; margin-top: 0 !important; }
    .re-print-brand-col { flex: 1; }
    .re-print-logo { max-height: 60px !important; filter: brightness(0) saturate(100%) invert(19%) sepia(88%) saturate(2586%) hue-rotate(342deg) brightness(82%) contrast(96%) !important; }
    .re-print-site-name { font-size: 16pt !important; font-weight: bold; text-transform: uppercase; margin: 0; color: #000 !important; }
    .re-print-url { display: block !important; visibility: visible !important; font-size: 11pt !important; color: #444444 !important; margin-bottom: 6px !important; font-weight: bold !important; }
    
    /* Badge Categoria */
    .re-print-cat { display: inline-block !important; background: transparent !important; color: var(--re-primary, #cc0000) !important; border: 1px solid var(--re-primary, #cc0000) !important; padding: 4px 8px !important; font-size: 8pt !important; font-weight: bold !important; border-radius: 4px !important; text-transform: uppercase; visibility: visible !important; }

    /* -- TITOLO IMMOBILE E DATI BASE -- */
    .re-header-modern { border: none !important; margin: 0 0 15px 0 !important; padding: 0 !important; }
    h1.re-main-title { font-size: 16pt !important; margin: 0 0 5px 0 !important; color: #000 !important; border: none !important; }
    .re-main-price { font-size: 14pt !important; color: #000 !important; font-weight: bold !important; border: none !important; margin: 0 !important; }
    .re-single-eyebrow { font-size: 10pt !important; margin-bottom: 2px !important; color: #000 !important; border: none !important; }

    /* -- GALLERIA, DESCRIZIONE E PLANIMETRIE (Ordine forzato) -- */
    .re-gallery-section { display: flex !important; flex-direction: column !important; border: none !important; margin: 0 !important; padding: 0 !important; }
    
    .re-print-gallery-grid { order: 1 !important; display: grid !important; grid-template-columns: repeat(4, 1fr) !important; grid-auto-rows: 125px !important; gap: 8px !important; width: 100% !important; border: none !important; border-top: 1px solid #000 !important; padding-top: 15px !important; margin: 0 0 15px 0 !important; }
    .re-print-photo-item.item-0 { grid-column: span 2 !important; grid-row: span 2 !important; }
    .re-print-photo-item { border: none !important; border-radius: 6px !important; overflow: hidden !important; padding: 0 !important; }
    .re-print-photo-item img { width: 100% !important; height: 100% !important; object-fit: cover !important; display: block !important; margin: 0 !important; border: none !important; }

    .re-print-description-only { order: 2 !important; display: block !important; border: none !important; border-top: 1px solid #000 !important; background: transparent !important; padding: 15px 0 0 0 !important; margin: 0 0 15px 0 !important; page-break-inside: auto !important; color: #000 !important; font-size: 9pt !important; }
    
    .re-print-planimetrie-wrapper { order: 3 !important; display: block !important; border: none !important; border-top: 1px solid #000 !important; padding: 15px 0 0 0 !important; margin: 0 0 15px 0 !important; page-break-inside: avoid !important; width: 100% !important; }

    /* -- SILOS (Caratteristiche, Composizione) -- */
    .re-silo-box { border: none !important; border-top: 1px solid #000 !important; margin: 0 0 15px 0 !important; padding: 15px 0 0 0 !important; background: transparent !important; page-break-inside: avoid !important; width: 100% !important; display: block !important; }
    .re-silo-box:empty { display: none !important; border: none !important; margin: 0 !important; padding: 0 !important; }
    
    h1, h2, h3, h4, .re-spec-header { font-size: 11pt !important; color: #000 !important; border: none !important; margin: 0 0 10px 0 !important; padding: 0 !important; page-break-after: avoid !important; font-weight: bold !important; /*text-transform: uppercase;*/ }
    
    .re-silo-list-layout { display: grid !important; grid-template-columns: repeat(2, 1fr) !important; column-gap: 40px !important; width: 100% !important; border: none !important; }
    .re-silo-list-layout .re-list-row { display: flex !important; justify-content: space-between !important; padding: 6px 0 !important; font-size: 9pt !important; border: none !important; border-bottom: 1px solid #eaeaea !important; margin: 0 !important; width: 100% !important; color: #000 !important; }
    .re-silo-list-layout .re-list-row:last-child { border-bottom: none !important; }

    /* -- MAPPA -- */
    .re-map-layout-wrapper { display: flex !important; flex-direction: row !important; gap: 20px !important; width: 100% !important; page-break-inside: avoid; align-items: flex-start !important; border: none !important; border-top: 1px solid #000 !important; padding: 15px 0 0 0 !important; margin: 0 0 15px 0 !important; }
    .re-map-side { width: 60% !important; }
    .re-address-side { width: 40% !important; }
    .re-google-map-canvas { display: block !important; width: 100% !important; height: 160px !important; border: 1px solid #ccc !important; }
    .re-address-side .re-list-row { border: none !important; border-bottom: 1px solid #eee !important; padding: 3px 0 !important; color: #000 !important; }
    .re-address-side .re-list-row:last-child { border-bottom: none !important; }

    /* -- FOOTER AGENZIA -- */
    .re-print-agency-footer { display: block !important; border: none !important; border-top: 2px solid #000 !important; padding: 15px 0 0 0 !important; margin: 15px 0 0 0 !important; page-break-inside: avoid; width: 100% !important; }
    .re-agency-header { margin-bottom: 5px !important; text-align: center; color: #000 !important; border: none !important; }
    .re-brand-row { font-size: 10pt !important; font-weight: bold; text-transform: uppercase; }
    .re-agency-locations-grid { display: flex !important; flex-direction: row !important; justify-content: center !important; gap: 20px !important; padding: 10px 0 !important; width: 100% !important; border: none !important; }
    .re-location-col { flex: 1 1 0px !important; max-width: 280px !important; border: none !important; border-left: 1px solid #ddd !important; padding-left: 15px !important; margin: 0 !important; }
    .re-location-col:first-child { border-left: none !important; padding-left: 0 !important; }
    .re-loc-name { font-size: 8pt !important; font-weight: bold; margin: 0 0 2px 0 !important; color: #000 !important; }
    .re-loc-details, .re-loc-contacts { font-size: 7.5pt !important; color: #444 !important; }
    .re-print-copyright { display: none !important; }
}

/* ==========================================================================
   14. PAGINAZIONE (SEMANTICA - INDIPENDENTE DA BOOTSTRAP/UNDERSTRAP)
   ========================================================================== */

/* Contenitore principale */
.re-pagination {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    width: 100% !important;
    margin: 50px 0 20px 0 !important;
    padding: 0 !important;
    clear: both !important;
}

/* Reset totale della lista (Annulla i margini e le direzioni di Bootstrap) */
.re-pagination ul.page-numbers {
    display: flex !important;
    flex-direction: row !important; /* Forza lo sviluppo orizzontale */
    flex-wrap: wrap !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 10px !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
    background: transparent !important;
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}

/* Reset dei contenitori dei singoli numeri */
.re-pagination ul.page-numbers li {
    display: flex !important; /* Allinea perfettamente il contenuto al centro */
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
    background: transparent !important;
}

/* Design dei pallini (Sia link che testo statico) */
.re-pagination ul.page-numbers li a,
.re-pagination ul.page-numbers li span {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 42px !important;
    height: 42px !important;
    min-width: 42px !important;
    max-width: 42px !important;
    padding: 0 !important;
    margin: 0 !important;
    background: #f0f0f1 !important; /* Sfondo grigio inattivo */
    color: #444 !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    text-decoration: none !important;
    border-radius: 50% !important; /* Forma tonda perfetta */
    border: none !important;
    box-sizing: border-box !important;
    line-height: 1 !important;
    transition: all 0.2s ease !important;
}

/* Hover effect sui link */
.re-pagination ul.page-numbers li a:hover {
    background: #e2e8f0 !important;
    color: var(--re-primary) !important;
    transform: translateY(-2px) !important;
}

/* Stato Attivo (Pagina Corrente) */
.re-pagination ul.page-numbers li span.current {
    background: var(--re-primary) !important;
    color: #fff !important;
    box-shadow: 0 4px 12px rgba(175, 25, 32, 0.25) !important;
    pointer-events: none !important;
    transform: none !important;
}

/* Puntini di sospensione (...) */
.re-pagination ul.page-numbers li span.dots {
    background: transparent !important;
    color: #888 !important;
    width: auto !important;
    min-width: 24px !important;
    max-width: none !important;
    letter-spacing: 2px !important;
}

