/*
 * Rustico24 R192 + R193 · card immobili (R193 rifinitura incrementale)
 * - identità agenzia/località visibile
 * - descrizione breve
 * - azioni preferito + condividi
 * - menu condividi: copia link / WhatsApp / email
 * - CTA dettagli più leggibile
 * - allineamento coerente tra home, catalogo, profilo agenzia e correlati
 */

.property-card--r192{
    position:relative;
    overflow:hidden;
    border-radius:20px;
    border:1px solid rgba(218,227,240,.92);
    background:#fff;
    box-shadow:0 12px 30px rgba(17,35,73,.075);
    transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;
}
.property-card--r192:hover{
    transform:translateY(-2px);
    border-color:rgba(190,207,231,.98);
    box-shadow:0 18px 38px rgba(17,35,73,.105);
}

.property-card--r192 .property-card-media{
    overflow:hidden;
    background:#e6eef9;
}
.property-card--r192 .property-operation{
    z-index:5;
    left:12px;
    top:12px;
    padding:6px 10px;
    border:1px solid rgba(255,255,255,.18);
    background:rgba(8,24,47,.82);
    box-shadow:0 5px 14px rgba(6,20,44,.12);
    backdrop-filter:blur(7px);
    -webkit-backdrop-filter:blur(7px);
    font-size:.72rem;
    line-height:1;
}

/* Azioni sopra la foto. Il form preferiti originale diventa parte del gruppo. */
.property-card-actions-r192{
    position:absolute;
    top:11px;
    right:11px;
    z-index:12;
    display:flex;
    align-items:center;
    gap:7px;
}
.property-card-actions-r192 .property-favorite-form{
    position:static!important;
    inset:auto!important;
    margin:0!important;
}
.property-card-actions-r192 .property-favorite-button,
.property-share-button-r192{
    display:grid!important;
    place-items:center;
    width:39px;
    height:39px;
    min-width:39px;
    min-height:39px;
    padding:0!important;
    border:1px solid rgba(255,255,255,.94)!important;
    border-radius:50%!important;
    background:rgba(255,255,255,.96)!important;
    box-shadow:0 6px 17px rgba(15,31,69,.16)!important;
    color:#17345f!important;
    text-decoration:none!important;
    cursor:pointer;
    transition:transform .16s ease,box-shadow .16s ease,background-color .16s ease,color .16s ease;
}
.property-card-actions-r192 .property-favorite-button{
    font:700 1.25rem/1 system-ui!important;
}
.property-card-actions-r192 .property-favorite-button:hover,
.property-card-actions-r192 .property-favorite-button.active,
.property-share-button-r192:hover,
.property-share-button-r192[aria-expanded="true"]{
    transform:translateY(-1px);
    background:#fff!important;
    box-shadow:0 9px 20px rgba(15,31,69,.20)!important;
}
.property-card-actions-r192 .property-favorite-button:hover,
.property-card-actions-r192 .property-favorite-button.active{
    color:#b4243c!important;
}
.property-share-button-r192 svg{
    width:18px;
    height:18px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.9;
    stroke-linecap:round;
    stroke-linejoin:round;
}

.property-share-r192{position:relative}
.property-share-menu-r192{
    position:absolute;
    top:47px;
    right:0;
    z-index:30;
    width:178px;
    padding:7px;
    border:1px solid #dce5f1;
    border-radius:13px;
    background:rgba(255,255,255,.985);
    box-shadow:0 16px 35px rgba(16,37,78,.20);
    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);
}
.property-share-menu-r192[hidden]{display:none!important}
.property-share-menu-r192 button,
.property-share-menu-r192 a{
    display:flex;
    align-items:center;
    gap:9px;
    width:100%;
    min-height:38px;
    padding:8px 9px;
    border:0;
    border-radius:9px;
    background:transparent;
    color:#18345f;
    font:700 .78rem/1.15 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
    text-align:left;
    text-decoration:none;
    cursor:pointer;
}
.property-share-menu-r192 button:hover,
.property-share-menu-r192 a:hover,
.property-share-menu-r192 button:focus-visible,
.property-share-menu-r192 a:focus-visible{
    background:#f1f6fd;
    outline:none;
}
.property-share-menu-r192 button>span:first-child,
.property-share-menu-r192 a>span:first-child{
    display:grid;
    place-items:center;
    flex:0 0 19px;
    width:19px;
    height:19px;
    font-size:.92rem;
}
.property-share-whatsapp-r192{color:#1aae61;font-size:.78rem!important}

.property-card--r192 .property-card-body{
    min-width:0;
    min-height:265px;
    padding:16px 17px 15px;
    gap:8px;
}
.property-agency-line-r192{
    display:flex;
    align-items:center;
    min-width:0;
    gap:5px;
    color:#63738b;
    font-size:.76rem;
    line-height:1.2;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}
.property-agency-line-r192 svg{
    flex:0 0 15px;
    width:15px;
    height:15px;
    fill:none;
    stroke:#254a78;
    stroke-width:1.75;
    stroke-linecap:round;
    stroke-linejoin:round;
}
.property-agency-line-r192 strong{
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
    color:#334a6c;
    font-weight:800;
}
.property-agency-line-r192>span:last-child{
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
}

.property-card--r192 h3{
    min-height:0;
    margin:0;
    font-size:1.08rem;
    line-height:1.23;
    letter-spacing:-.012em;
}
.property-card--r192 h3 a{
    color:#112a52;
    text-decoration:none;
}
.property-card--r192 h3 a:hover{color:var(--portal-primary,var(--primary,#1e63e9))}
.property-card-excerpt-r192{
    display:-webkit-box;
    min-height:2.66em;
    margin:0;
    overflow:hidden;
    color:#667690;
    font-size:.82rem;
    line-height:1.34;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
}

.property-card--r192 .property-facts{
    gap:6px;
    min-height:31px;
    align-items:flex-start;
}
.property-card--r192 .property-facts span{
    display:inline-flex;
    align-items:center;
    gap:4px;
    min-height:29px;
    padding:6px 8px;
    border-radius:9px;
    background:#f2f6fc;
    color:#536681;
    font-size:.76rem;
    line-height:1;
    white-space:nowrap;
}
.property-card--r192 .property-facts span::before{
    display:inline-grid;
    place-items:center;
    width:14px;
    height:14px;
    color:#244b7d;
    font-size:.72rem;
    font-weight:900;
    line-height:1;
}
.property-card--r192 .property-fact-area-r192::before{content:"⌂"}
.property-card--r192 .property-fact-rooms-r192::before{content:"▦"}
.property-card--r192 .property-fact-bath-r192::before{content:"▤"}
.property-card--r192 .property-facts strong{margin-right:0;color:#17345f}

.property-feature-line-r192{
    display:flex;
    min-width:0;
    min-height:1.25em;
    gap:0;
    overflow:hidden;
    color:#63738b;
    font-size:.75rem;
    line-height:1.25;
    white-space:nowrap;
    text-overflow:ellipsis;
}
.property-feature-line-r192 span{
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
}
.property-feature-line-r192 span+span::before{
    content:"·";
    margin:0 7px;
    color:#a7b4c6;
    font-weight:900;
}

.property-card--r192 .property-card-footer{
    display:flex;
    grid-template-columns:none;
    align-items:center;
    width:100%;
    min-height:46px;
    gap:10px;
    margin-top:auto;
    padding-top:9px;
    border-top:1px solid #e7edf5;
}
.property-card--r192 .property-card-footer strong{
    flex:1 1 auto;
    min-width:0;
    overflow:hidden;
    color:var(--portal-primary,#102a56);
    font-size:1.05rem;
    font-weight:900;
    letter-spacing:-.01em;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.property-card--r192 .property-card-footer a{
    display:inline-flex;
    flex:0 0 auto;
    align-items:center;
    justify-content:center;
    min-width:92px;
    min-height:38px;
    padding:8px 12px;
    border:1px solid color-mix(in srgb,var(--portal-accent,#d7a64a) 82%,#aa7d24)!important;
    border-radius:11px;
    background:var(--portal-accent,#d7a64a)!important;
    box-shadow:0 6px 14px color-mix(in srgb,var(--portal-accent,#d7a64a) 24%,transparent);
    color:#102a56!important;
    font-size:.78rem;
    font-weight:900;
    line-height:1.1;
    text-align:center;
    text-decoration:none;
    white-space:nowrap;
}
.property-card--r192 .property-card-footer a:hover{
    transform:translateY(-1px);
    filter:brightness(.98) saturate(1.04);
    box-shadow:0 9px 18px color-mix(in srgb,var(--portal-accent,#d7a64a) 30%,transparent);
}

/* Carosello home / correlati: più compatto, ma con le stesse informazioni. */
.property-card--r192.property-card--compact{
    border-radius:18px;
}
.property-card--r192.property-card--compact .property-card-body{
    min-height:228px;
    padding:13px 13px 12px;
    gap:7px;
}
.property-card--r192.property-card--compact h3{
    min-height:2.48em;
    font-size:.96rem;
    line-height:1.24;
    -webkit-line-clamp:2;
}
.property-card--r192.property-card--compact .property-card-excerpt-r192{
    min-height:2.56em;
    font-size:.75rem;
    line-height:1.28;
}
.property-card--r192.property-card--compact .property-agency-line-r192{
    font-size:.69rem;
}
.property-card--r192.property-card--compact .property-agency-line-r192 svg{
    width:13px;
    height:13px;
    flex-basis:13px;
}
.property-card--r192.property-card--compact .property-facts span{
    min-height:27px;
    padding:5px 6px;
    font-size:.69rem;
}
.property-card--r192.property-card--compact .property-feature-line-r192{
    font-size:.69rem;
}
.property-card--r192.property-card--compact .property-card-footer{
    display:flex;
    min-height:44px;
    padding-top:7px;
}
.property-card--r192.property-card--compact .property-card-footer strong{
    font-size:.93rem;
}
.property-card--r192.property-card--compact .property-card-footer a{
    width:auto;
    min-width:82px;
    min-height:35px;
    padding:7px 9px;
    font-size:.72rem;
}
.property-card--r192.property-card--compact .property-card-actions-r192{
    top:9px;
    right:9px;
    gap:6px;
}
.property-card--r192.property-card--compact .property-card-actions-r192 .property-favorite-button,
.property-card--r192.property-card--compact .property-share-button-r192{
    width:35px;
    height:35px;
    min-width:35px;
    min-height:35px;
}
.property-card--r192.property-card--compact .property-share-button-r192 svg{
    width:16px;
    height:16px;
}
.property-card--r192.property-card--compact .property-share-menu-r192{
    top:42px;
    width:166px;
}

/* Catalogo: annulla le vecchie altezze rigide R171 che taglierebbero i nuovi contenuti. */
.property-grid-listing .property-card--r192{
    min-height:520px;
    height:100%;
}
.property-grid-listing .property-card--r192 .property-card-media{
    height:232px;
    flex:0 0 232px;
    aspect-ratio:auto;
}
.property-grid-listing .property-card--r192 .property-card-body{
    height:auto;
    min-height:288px;
    overflow:visible;
}
.property-grid-listing .property-card--r192 h3{
    min-height:2.68em;
    max-height:none;
}
.property-grid-listing .property-card--r192 .property-facts,
.property-grid-listing .property-card--r192 .property-feature-line{
    max-height:none;
}

/* Compatibilità con le varianti grafiche configurabili del portale. */
body.cf-cards-border .property-card--r192{box-shadow:none}
body.cf-cards-flat .property-card--r192{overflow:visible}
body.cf-cards-flat .property-card--r192 .property-card-body{padding-inline:4px}
body.cf-radius-square .property-card--r192 .property-card-footer a,
body.cf-radius-square .property-share-menu-r192{border-radius:var(--radius)}

@media (max-width:780px){
    .property-grid-listing .property-card--r192{
        min-height:500px;
    }
    .property-grid-listing .property-card--r192 .property-card-media{
        height:218px;
        flex-basis:218px;
    }
    .property-grid-listing .property-card--r192 .property-card-body{
        min-height:282px;
    }
}

@media (max-width:640px){
    .property-card--r192:hover{transform:none}
    .property-card--r192 .property-card-body{
        min-height:250px;
        padding:15px;
    }
    .property-card--r192 .property-card-footer a{
        min-width:88px;
    }
    .property-share-menu-r192{
        width:172px;
    }
    .property-card--r192.property-card--compact .property-card-body{
        min-height:222px;
        padding:12px;
    }
}

@media (prefers-reduced-motion:reduce){
    .property-card--r192,
    .property-card-actions-r192 .property-favorite-button,
    .property-share-button-r192,
    .property-card--r192 .property-card-footer a{
        transition:none!important;
    }
}

/*
 * Rustico24 R193 · rifinitura incrementale card
 * Base: R192. Nessuna modifica a SEO, URL, dati o sincronizzazione.
 * Obiettivi: più respiro, gerarchia tipografica più netta, footer allineato
 * e menu Condividi libero dai limiti della card.
 */

/* Il menu Condividi deve poter uscire visivamente dalla card senza essere tagliato. */
.property-card--r192{
    overflow:visible;
    isolation:isolate;
}
.property-card--r192 .property-card-media{
    border-radius:20px 20px 0 0;
}
.property-card--r192 .property-card-body{
    border-radius:0 0 20px 20px;
    background:#fff;
}
.property-card--r192.property-card--compact .property-card-media{
    border-radius:18px 18px 0 0;
}
.property-card--r192.property-card--compact .property-card-body{
    border-radius:0 0 18px 18px;
}
.property-card--r192:focus-within,
.property-card--r192:has(.property-share-button-r192[aria-expanded="true"]){
    z-index:70;
}

/* Identità agenzia/località: più leggibile ma sempre discreta. */
.property-card--r192 .property-agency-line-r192{
    font-size:.80rem;
    line-height:1.24;
    color:#5d6f89;
}
.property-card--r192 .property-agency-line-r192 strong{
    color:#29466e;
    font-weight:850;
}

/* Titolo sempre su massimo 2 righe, con gerarchia più chiara. */
.property-card--r192 h3{
    display:-webkit-box;
    min-height:2.54em;
    overflow:hidden;
    font-size:1.12rem;
    line-height:1.27;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
}

/* Descrizione breve e regolare: non spinge mai il footer. */
.property-card--r192 .property-card-excerpt-r192{
    display:-webkit-box;
    min-height:2.68em;
    max-height:2.68em;
    overflow:hidden;
    font-size:.84rem;
    line-height:1.34;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
}

/* Un po' più di aria nel corpo senza ingrandire eccessivamente le card. */
.property-card--r192 .property-card-body{
    min-height:276px;
    padding:17px 18px 16px;
    gap:9px;
}
.property-card--r192 .property-facts{
    min-height:32px;
    gap:7px;
}
.property-card--r192 .property-facts span{
    min-height:30px;
    padding:6px 9px;
    border-radius:9px;
    font-size:.77rem;
}

/* Massimo una riga leggibile per le caratteristiche; le card PHP ne mostrano già max 2/3. */
.property-card--r192 .property-feature-line-r192{
    min-height:1.3em;
    max-width:100%;
    font-size:.76rem;
    line-height:1.3;
}
.property-card--r192 .property-feature-line-r192 span{
    min-width:0;
    max-width:48%;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.property-card--r192:not(.property-card--compact) .property-feature-line-r192 span{
    max-width:32%;
}

/* Prezzo e CTA sempre ancorati e allineati sul fondo. */
.property-card--r192 .property-card-footer{
    min-height:48px;
    margin-top:auto;
    padding-top:10px;
}
.property-card--r192 .property-card-footer strong{
    font-size:1.08rem;
}
.property-card--r192 .property-card-footer a{
    min-width:94px;
    min-height:39px;
    padding:8px 13px;
}

/* Menu condividi: contenuto compatto, leggibile e mai più largo dello schermo. */
.property-card--r192 .property-share-menu-r192{
    width:176px;
    max-width:calc(100vw - 24px);
    right:0;
    overflow:hidden;
    z-index:90;
}

/* Carosello / card compatte: aumento leggero del respiro, non della larghezza. */
.property-card--r192.property-card--compact .property-card-body{
    min-height:240px;
    padding:14px 14px 13px;
    gap:7px;
}
.property-card--r192.property-card--compact .property-agency-line-r192{
    font-size:.72rem;
}
.property-card--r192.property-card--compact h3{
    min-height:2.50em;
    font-size:.99rem;
    line-height:1.25;
}
.property-card--r192.property-card--compact .property-card-excerpt-r192{
    min-height:2.60em;
    max-height:2.60em;
    font-size:.77rem;
    line-height:1.30;
}
.property-card--r192.property-card--compact .property-facts{
    min-height:29px;
    gap:6px;
}
.property-card--r192.property-card--compact .property-facts span{
    min-height:28px;
    padding:5px 7px;
    font-size:.70rem;
}
.property-card--r192.property-card--compact .property-feature-line-r192{
    font-size:.70rem;
}
.property-card--r192.property-card--compact .property-card-footer{
    min-height:45px;
    padding-top:8px;
}
.property-card--r192.property-card--compact .property-card-footer strong{
    font-size:.96rem;
}
.property-card--r192.property-card--compact .property-card-footer a{
    min-width:84px;
    min-height:36px;
    padding:7px 10px;
}

/* Catalogo: altezza coerente tra card della stessa griglia. */
.property-grid-listing .property-card--r192{
    min-height:532px;
}
.property-grid-listing .property-card--r192 .property-card-body{
    min-height:300px;
}

@media (max-width:780px){
    .property-grid-listing .property-card--r192{
        min-height:510px;
    }
    .property-grid-listing .property-card--r192 .property-card-body{
        min-height:292px;
    }
}

@media (max-width:640px){
    .property-card--r192 .property-card-media{
        border-radius:18px 18px 0 0;
    }
    .property-card--r192 .property-card-body{
        min-height:258px;
        padding:15px;
        border-radius:0 0 18px 18px;
    }
    .property-card--r192 .property-agency-line-r192{
        font-size:.77rem;
    }
    .property-card--r192 h3{
        font-size:1.06rem;
    }
    .property-card--r192 .property-share-menu-r192{
        width:170px;
        max-width:calc(100vw - 20px);
    }
    .property-card--r192.property-card--compact .property-card-body{
        min-height:232px;
        padding:13px;
    }
}

/*
 * Rustico24 R194 · comportamento e performance card.
 * Base grafica: R192 + R193. Nessuna modifica a URL SEO/canonical/sitemap.
 */
.property-card--r194{
    cursor:pointer;
}
.property-card--r194 a,
.property-card--r194 button,
.property-card--r194 form{
    cursor:auto;
}
.property-card--r194 a,
.property-card--r194 button{
    cursor:pointer;
}
.property-card--r194 .property-card-media{
    background:linear-gradient(145deg,#e8f0fb,#f4f8fd);
}
.property-card--r194 .property-card-media,
.property-card--r194 .responsive-media-picture,
.property-card--r194 .responsive-media-picture>img,
.property-card--r194 .property-placeholder-r194{
    width:100%;
}
.property-card--r194 .property-card-media>.responsive-media-picture,
.property-card--r194 .property-card-media>.property-placeholder-r194{
    height:100%;
}
.property-card--r194 .property-placeholder-r194{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:6px;
    min-height:100%;
    padding:24px;
    color:#405b7e;
    background:
        radial-gradient(circle at 18% 20%,rgba(255,255,255,.85),transparent 28%),
        linear-gradient(145deg,#dce8f8,#f2f6fc 66%,#e9f0fa);
}
.property-card--r194 .property-placeholder-r194 svg{
    width:42px;
    height:42px;
    fill:none;
    stroke:#55739a;
    stroke-width:1.7;
    stroke-linecap:round;
    stroke-linejoin:round;
    opacity:.92;
}
.property-card--r194 .property-placeholder-r194 strong{
    margin:0;
    color:#29476f;
    font-size:.86rem;
    font-weight:850;
    line-height:1.15;
}
.property-card--r194 .property-placeholder-r194 small{
    color:#71839b;
    font-size:.68rem;
    font-weight:750;
    letter-spacing:.04em;
    text-transform:uppercase;
}
.property-card--r194 .property-agency-link-r194{
    min-width:0;
    overflow:hidden;
    color:inherit;
    text-decoration:none;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.property-card--r194 .property-agency-link-r194:hover strong,
.property-card--r194 .property-agency-link-r194:focus-visible strong{
    color:var(--portal-primary,#102a56);
    text-decoration:underline;
    text-underline-offset:2px;
}
.property-card--r194 .property-agency-link-r194:focus-visible{
    outline:2px solid color-mix(in srgb,var(--portal-accent,#d7a64a) 70%,#fff);
    outline-offset:2px;
    border-radius:4px;
}

/* Le dimensioni del box foto restano determinate prima del download: meno CLS. */
.property-card--r194:not(.property-card--compact):not(.property-grid-listing .property-card){
    --r194-card-media-ratio:1.3658536585;
}
.property-card--r194.property-card--compact .property-card-media{
    aspect-ratio:4/3;
}
.property-grid-listing .property-card--r194 .property-card-media{
    height:232px;
    min-height:232px;
    flex-basis:232px;
    aspect-ratio:auto;
}

/* Menu condividi: la JS calcola uno shift solo se il viewport lo richiede. */
.property-card--r194 .property-share-menu-r192{
    transform:translateX(var(--r194-share-shift,0px));
    transform-origin:top right;
}

/* Evidenza discreta quando l'intera card è cliccabile. */
.property-card--r194:hover h3 a{
    color:var(--portal-primary,var(--primary,#1e63e9));
}

@media (max-width:780px){
    .property-grid-listing .property-card--r194 .property-card-media{
        height:218px;
        min-height:218px;
        flex-basis:218px;
    }
}
@media (hover:none),(pointer:coarse){
    .property-card--r194{cursor:default}
}
