/* Art direction: agenzia immobiliare istituzionale italiana → tono autorevole, chiaro, premium ma accessibile
   Palette: neutra con rosso brand e verde di supporto
   Typography: Clash Display + Satoshi per credibilità, ordine e modernità
   Density: balanced, con enfasi su leggibilità e CTA */
:root,:root[data-theme="light"],[data-theme="light"]{--font-display:'Clash Display','Arial',sans-serif;--font-body:'Satoshi','Inter',sans-serif;--text-xs:clamp(.75rem,.7rem + .25vw,.875rem);--text-sm:clamp(.875rem,.8rem + .35vw,1rem);--text-base:clamp(1rem,.95rem + .25vw,1.125rem);--text-lg:clamp(1.125rem,1rem + .75vw,1.5rem);--text-xl:clamp(1.5rem,1.2rem + 1.25vw,2.25rem);--text-2xl:clamp(2rem,1.2rem + 2.5vw,3.5rem);--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--space-24:6rem;--color-bg:#f6f4f1;--color-surface:#fbfaf8;--color-surface-2:#fff;--color-surface-offset:#eeebe7;--color-surface-offset-2:#e4dfda;--color-surface-dynamic:#ddd7d1;--color-divider:#d9d2cb;--color-border:rgba(39,31,27,.12);--color-text:#231d1a;--color-text-muted:#6d6763;--color-text-faint:#9d9894;--color-text-inverse:#fcfbf9;--color-primary:#a32128;--color-primary-hover:#881b21;--color-primary-active:#691419;--color-primary-highlight:#f0d7d8;--color-success:#2f7d4f;--color-success-hover:#26643f;--color-success-active:#1d4b2f;--color-success-highlight:#d8eadf;--color-whatsapp:#25d366;--color-whatsapp-hover:#1fb657;--radius-sm:.375rem;--radius-md:.75rem;--radius-lg:1rem;--radius-xl:1.5rem;--radius-full:9999px;--shadow-sm:0 8px 20px rgba(35,29,26,.05);--shadow-md:0 16px 40px rgba(35,29,26,.08);--shadow-lg:0 24px 60px rgba(35,29,26,.14);--transition-interactive:180ms cubic-bezier(.16,1,.3,1);--content-default:1180px;--header-height:92px}
[data-theme="dark"]{--color-bg:#161514;--color-surface:#1d1b1a;--color-surface-2:#252220;--color-surface-offset:#201e1d;--color-surface-offset-2:#2b2826;--color-surface-dynamic:#35312f;--color-divider:#312e2b;--color-border:rgba(244,238,233,.1);--color-text:#f2ece7;--color-text-muted:#c1b9b4;--color-text-faint:#8c8581;--color-text-inverse:#171514;--color-primary:#cf4a4e;--color-primary-hover:#de5f63;--color-primary-active:#b8363b;--color-primary-highlight:rgba(207,74,78,.18);--color-success:#5daf7d;--color-success-hover:#4a9669;--color-success-active:#37724f;--color-success-highlight:rgba(93,175,125,.18);--shadow-sm:0 8px 20px rgba(0,0,0,.25);--shadow-md:0 16px 40px rgba(0,0,0,.35);--shadow-lg:0 24px 60px rgba(0,0,0,.45)}
@media (prefers-color-scheme: dark){:root:not([data-theme]){--color-bg:#161514;--color-surface:#1d1b1a;--color-surface-2:#252220;--color-surface-offset:#201e1d;--color-surface-offset-2:#2b2826;--color-surface-dynamic:#35312f;--color-divider:#312e2b;--color-border:rgba(244,238,233,.1);--color-text:#f2ece7;--color-text-muted:#c1b9b4;--color-text-faint:#8c8581;--color-text-inverse:#171514;--color-primary:#cf4a4e;--color-primary-hover:#de5f63;--color-primary-active:#b8363b;--color-primary-highlight:rgba(207,74,78,.18);--color-success:#5daf7d;--color-success-hover:#4a9669;--color-success-active:#37724f;--color-success-highlight:rgba(93,175,125,.18);--shadow-sm:0 8px 20px rgba(0,0,0,.25);--shadow-md:0 16px 40px rgba(0,0,0,.35);--shadow-lg:0 24px 60px rgba(0,0,0,.45)}}
*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-moz-text-size-adjust:none;-webkit-text-size-adjust:none;text-size-adjust:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;scroll-behavior:smooth;scroll-padding-top:calc(var(--header-height) + var(--space-4))}body{min-height:100dvh;line-height:1.6;font-family:var(--font-body);font-size:var(--text-base);color:var(--color-text);background:radial-gradient(circle at top right,rgba(163,33,40,.08),transparent 28%),radial-gradient(circle at left bottom,rgba(47,125,79,.08),transparent 26%),var(--color-bg)}img,picture,video,canvas,svg{display:block;max-width:100%;height:auto}input,button,textarea,select{font:inherit;color:inherit}a{color:inherit;text-decoration:none}button{cursor:pointer;background:none;border:none}ul[role=list]{list-style:none}h1,h2,h3,h4{font-family:var(--font-display);line-height:1.08;text-wrap:balance;letter-spacing:-.02em}p,li{text-wrap:pretty}::selection{background:rgba(163,33,40,.18);color:var(--color-text)}:focus-visible{outline:2px solid var(--color-primary);outline-offset:3px;border-radius:var(--radius-sm)}@media (prefers-reduced-motion: reduce){*,:before,:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.container{width:min(100% - 2rem,var(--content-default));margin-inline:auto}.section{padding-block:clamp(var(--space-12),7vw,var(--space-24))}.section-surface{background:linear-gradient(180deg,rgba(255,255,255,.04),transparent),var(--color-surface);border-block:1px solid var(--color-border)}.skip-link{position:absolute;top:-100px;left:var(--space-4);z-index:999;background:var(--color-primary);color:var(--color-text-inverse);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md)}.skip-link:focus{top:var(--space-4)}.eyebrow{display:inline-flex;align-items:center;gap:var(--space-2);padding:.45rem .85rem;border:1px solid rgba(163,33,40,.18);border-radius:var(--radius-full);background:rgba(163,33,40,.06);color:var(--color-primary);font-size:var(--text-xs);font-weight:700;letter-spacing:.04em;text-transform:uppercase}.section-heading{display:grid;gap:var(--space-4);margin-bottom:var(--space-10);max-width:760px}.section-heading h2{font-size:var(--text-xl)}.section-heading p{color:var(--color-text-muted);max-width:68ch}.card{background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:48px;padding:.9rem 1.3rem;border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:700;transition:transform var(--transition-interactive),background var(--transition-interactive),color var(--transition-interactive),border-color var(--transition-interactive),box-shadow var(--transition-interactive);border:1px solid transparent}.btn:hover,.btn:focus-visible{transform:translateY(-1px)}.btn-primary{background:var(--color-primary);color:var(--color-text-inverse);box-shadow:var(--shadow-sm)}.btn-primary:hover,.btn-primary:focus-visible{background:var(--color-primary-hover)}.btn-secondary{background:transparent;color:var(--color-text);border-color:var(--color-border)}.btn-secondary:hover,.btn-secondary:focus-visible{background:var(--color-surface-offset)}.btn-ghost{background:rgba(47,125,79,.08);color:var(--color-success);border-color:rgba(47,125,79,.2)}.btn-ghost:hover,.btn-ghost:focus-visible{background:rgba(47,125,79,.14)}.site-header{position:sticky;top:0;z-index:100;min-height:var(--header-height);background:rgba(246,244,241,.86);backdrop-filter:blur(16px);border-bottom:1px solid transparent;transition:box-shadow var(--transition-interactive),border-color var(--transition-interactive),background var(--transition-interactive)}[data-theme=dark] .site-header{background:rgba(22,21,20,.82)}.site-header.is-scrolled{border-color:var(--color-border);box-shadow:var(--shadow-sm)}.header-inner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);min-height:var(--header-height);padding-block:var(--space-3)}.brand{display:inline-flex;align-items:center;gap:var(--space-3);min-width:0}.brand-logo{width:80px;max-height:65px;object-fit:contain}.brand-mark{flex:0 0 auto;width:58px;height:58px;display:grid;place-items:center;border-radius:18px;background:linear-gradient(135deg,rgba(163,33,40,.12),rgba(47,125,79,.1));color:var(--color-primary);border:1px solid var(--color-border)}.brand-mark svg{width:38px;height:38px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.brand-text{display:grid;gap:.15rem}.brand-text strong{font-size:1rem;line-height:1.1}.brand-text small{color:var(--color-text-muted);font-size:var(--text-xs)}.header-actions{display:flex;align-items:center;gap:var(--space-3)}.main-nav{display:flex;align-items:center}.nav-list{display:flex;align-items:center;gap:var(--space-2)}.nav-list a{display:inline-flex;align-items:center;min-height:44px;padding:.65rem .9rem;border-radius:var(--radius-full);color:var(--color-text-muted);font-size:var(--text-sm);font-weight:700}.nav-list a:hover,.nav-list a:focus-visible,.nav-list a.is-active{color:var(--color-text);background:var(--color-surface-offset)}.theme-toggle,.nav-toggle{display:inline-grid;place-items:center;width:48px;height:48px;border:1px solid var(--color-border);border-radius:var(--radius-full);background:var(--color-surface-2);box-shadow:var(--shadow-sm)}.theme-icon svg{width:20px;height:20px}.nav-toggle{display:none;gap:4px}.nav-toggle span{display:block;width:18px;height:2px;border-radius:999px;background:currentColor;transition:transform var(--transition-interactive),opacity var(--transition-interactive)}.mobile-nav-panel{display:none}.header-cta{display:inline-flex}.hero-section{padding-top:clamp(var(--space-10),8vw,var(--space-20))}.hero-grid{display:grid;gap:var(--space-10);align-items:center}.hero-copy{display:grid;gap:var(--space-5)}.hero-copy h1{font-size:var(--text-2xl);max-width:14ch}.hero-lead{color:var(--color-text-muted);max-width:64ch}.hero-actions{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-2)}.hero-points{display:grid;gap:var(--space-3);margin-top:var(--space-3)}.hero-points li{display:flex;align-items:flex-start;gap:var(--space-3);color:var(--color-text)}.hero-points li:before{content:'';flex:0 0 auto;width:10px;height:10px;margin-top:.55em;border-radius:50%;background:var(--color-success);box-shadow:0 0 0 6px rgba(47,125,79,.12)}.hero-visual{position:relative;display:grid;gap:var(--space-4);min-height:420px;padding:var(--space-6);border-radius:calc(var(--radius-xl) + .25rem);background:linear-gradient(180deg,rgba(163,33,40,.08),transparent 40%),linear-gradient(135deg,var(--color-surface-2),var(--color-surface-offset));border:1px solid var(--color-border);box-shadow:var(--shadow-md);overflow:hidden}.hero-card{position:relative;z-index:2;width:min(100%,290px);padding:var(--space-5);border-radius:var(--radius-lg);background:rgba(255,255,255,.72);border:1px solid rgba(35,29,26,.08);backdrop-filter:blur(10px);box-shadow:var(--shadow-sm)}[data-theme=dark] .hero-card{background:rgba(29,27,26,.82);border-color:rgba(242,236,231,.08)}.hero-card-label{display:inline-block;margin-bottom:var(--space-2);color:var(--color-text-muted);font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.05em}.hero-card strong{display:block;margin-bottom:var(--space-2);font-size:var(--text-lg);font-family:var(--font-display)}.hero-card p,.hero-card li{color:var(--color-text-muted);font-size:var(--text-sm)}.hero-card-stats{justify-self:end}.hero-card-stats ul{display:grid;gap:var(--space-2)}.hero-building{position:absolute;inset:auto 0 0 0;height:72%;pointer-events:none}.tower{position:absolute;bottom:60px;width:18%;border-radius:20px 20px 0 0;background:linear-gradient(180deg,rgba(163,33,40,.16),rgba(47,125,79,.08));border:1px solid rgba(35,29,26,.08)}.tower:before{content:'';position:absolute;inset:14% 18%;background:repeating-linear-gradient(to bottom,transparent 0 18px,rgba(35,29,26,.08) 18px 20px),repeating-linear-gradient(to right,rgba(35,29,26,.08) 0 2px,transparent 2px 18px);opacity:.65}.tower-1{left:8%;height:42%}.tower-2{left:31%;height:64%}.tower-3{left:56%;height:52%}.base-line{position:absolute;left:0;right:0;bottom:48px;height:2px;background:linear-gradient(90deg,transparent,var(--color-primary),var(--color-success),transparent)}.services-grid,.properties-grid{display:grid;gap:var(--space-5)}.service-card,.property-card,.contacts-panel{padding:var(--space-6)}.service-card{display:grid;gap:var(--space-4);transition:transform var(--transition-interactive),box-shadow var(--transition-interactive),border-color var(--transition-interactive)}.service-card:hover,.service-card:focus-within{transform:translateY(-4px);box-shadow:var(--shadow-md);border-color:rgba(163,33,40,.16)}.service-icon{width:52px;height:52px;display:grid;place-items:center;border-radius:18px;background:rgba(163,33,40,.08);color:var(--color-primary)}.service-icon svg{width:26px;height:26px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.service-card h3{font-size:var(--text-lg)}.service-card p{color:var(--color-text-muted)}.property-card{display:grid;overflow:hidden;padding:0}.property-media{position:relative;min-height:240px;background:linear-gradient(135deg,rgba(163,33,40,.08),rgba(47,125,79,.08))}.property-media img,.property-placeholder{width:100%;height:100%;object-fit:cover}.property-placeholder{min-height:240px;display:grid;place-items:center;color:var(--color-text-faint)}.property-placeholder svg{width:88px;height:88px;stroke:currentColor;fill:none;stroke-width:1.4}.property-badges{position:absolute;top:var(--space-4);left:var(--space-4);display:flex;flex-wrap:wrap;gap:var(--space-2)}.badge{display:inline-flex;align-items:center;min-height:32px;padding:.4rem .75rem;border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:700}.badge-accent{background:var(--color-primary);color:var(--color-text-inverse)}.badge-neutral{background:rgba(255,255,255,.86);color:var(--color-text);border:1px solid rgba(35,29,26,.08)}.property-body{display:grid;gap:var(--space-4);padding:var(--space-6)}.property-meta{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap}.property-location{color:var(--color-text-muted);font-size:var(--text-sm)}.property-price{font-weight:700;color:var(--color-primary)}.property-body h3{font-size:var(--text-lg)}.property-body p{color:var(--color-text-muted)}.property-actions{display:flex;flex-wrap:wrap;gap:var(--space-3)}.contacts-layout{display:grid;gap:var(--space-5)}.contact-list{display:grid;gap:var(--space-4);margin-top:var(--space-4)}.contact-list li{display:grid;gap:.2rem;padding-bottom:var(--space-3);border-bottom:1px solid var(--color-border)}.contact-list span{color:var(--color-text-muted);font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.04em}.contact-actions,.map-links,.social-links{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-5)}.social-link{display:inline-grid;place-items:center;width:46px;height:46px;border-radius:var(--radius-full);border:1px solid var(--color-border);background:var(--color-surface-2);color:var(--color-text)}.social-link:hover,.social-link:focus-visible{color:var(--color-primary);border-color:rgba(163,33,40,.2);background:rgba(163,33,40,.05)}.social-link svg{width:20px;height:20px}.how-to-find{margin-top:var(--space-6);display:grid;gap:var(--space-3)}.contact-form{display:grid;gap:var(--space-4);margin-top:var(--space-4)}.form-group{display:grid;gap:var(--space-2)}.form-group label{font-size:var(--text-sm);font-weight:700}.form-group input,.form-group textarea{width:100%;min-height:52px;padding:.95rem 1rem;border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text)}.form-group textarea{min-height:140px;resize:vertical}.form-group input::placeholder,.form-group textarea::placeholder{color:var(--color-text-faint)}.form-feedback{min-height:1.5em;font-size:var(--text-sm);color:var(--color-text-muted)}.form-feedback.is-error{color:var(--color-primary)}.form-feedback.is-success{color:var(--color-success)}.map-embed{margin-top:var(--space-6);overflow:hidden;border-radius:var(--radius-lg);border:1px solid var(--color-border);min-height:320px}.map-embed iframe{width:100%;min-height:320px;border:0}.site-footer{padding-block:var(--space-12) var(--space-6);background:var(--color-surface-offset);border-top:1px solid var(--color-border)}.footer-grid{display:grid;gap:var(--space-8)}.footer-brand h2,.site-footer h3{margin-bottom:var(--space-3)}.footer-brand p,.footer-links a,.footer-bottom p{color:var(--color-text-muted)}.footer-links{display:grid;gap:var(--space-2)}.footer-links a:hover,.footer-links a:focus-visible{color:var(--color-text)}.footer-note{margin-top:var(--space-3);font-size:var(--text-sm)}.footer-bottom{margin-top:var(--space-8);padding-top:var(--space-4);border-top:1px solid var(--color-border)}.whatsapp-float{position:fixed;right:max(1rem,env(safe-area-inset-right));bottom:max(1rem,env(safe-area-inset-bottom));z-index:95;display:inline-grid;place-items:center;width:58px;height:58px;border-radius:50%;background:var(--color-whatsapp);color:#fff;box-shadow:0 18px 30px rgba(37,211,102,.28);transition:transform var(--transition-interactive),background var(--transition-interactive),box-shadow var(--transition-interactive)}.whatsapp-float:hover,.whatsapp-float:focus-visible{transform:translateY(-2px) scale(1.02);background:var(--color-whatsapp-hover);box-shadow:0 22px 36px rgba(37,211,102,.36)}.whatsapp-float svg{width:28px;height:28px}@media (min-width:768px){.hero-grid{grid-template-columns:1.05fr .95fr}.services-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.properties-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.contacts-layout{grid-template-columns:.95fr 1.05fr}.footer-grid{grid-template-columns:1.2fr .8fr .8fr .8fr}}@media (min-width:1024px){.services-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:959px){.desktop-nav,.header-cta{display:none}.nav-toggle{display:inline-grid}.mobile-nav-panel{position:absolute;top:calc(100% + .75rem);right:0;width:min(320px,calc(100vw - 2rem));padding:var(--space-3);border-radius:var(--radius-xl);border:1px solid var(--color-border);background:var(--color-surface-2);box-shadow:var(--shadow-lg);display:none}.mobile-nav-panel.is-open{display:block}.mobile-nav{flex-direction:column;align-items:stretch;gap:.25rem}.mobile-nav a{width:100%}.main-nav{position:relative}}@media (max-width:767px){:root,[data-theme=light],[data-theme=dark]{--header-height:84px}.header-inner{gap:var(--space-2)}.brand-text small{display:none}.hero-visual{min-height:360px}.hero-card{width:100%}.hero-card-stats{justify-self:stretch}.property-actions,.contact-actions{flex-direction:column}.btn{width:100%}} /* 🇮🇹 Bordo premium con glow tricolore */
body {
    border: 10px solid #2f7d4f;
    box-shadow:
        0 0 0 4px #ffffff inset,
        0 0 0 8px #a32128 inset;
}

/* Valutazione immediata — CTA di richiamo */
.btn-valuation {
    background: linear-gradient(135deg, #c8922a 0%, #e8b84a 45%, #f0d078 100%);
    color: #1a1408;
    border: 1px solid rgba(200, 146, 42, .5);
    box-shadow: 0 8px 24px rgba(200, 146, 42, .35), 0 0 0 0 rgba(232, 184, 74, .4);
    animation: valuation-pulse 2.8s ease-in-out infinite;
    font-weight: 800;
    letter-spacing: .01em;
}
.btn-valuation:hover,
.btn-valuation:focus-visible {
    background: linear-gradient(135deg, #d9a035 0%, #f0c55a 45%, #f5dc88 100%);
    transform: translateY(-2px);
    box-shadow: 0 12px 28px rgba(200, 146, 42, .45);
}
.btn-valuation-icon {
    width: 22px;
    height: 22px;
    flex-shrink: 0;
}
@keyframes valuation-pulse {
    0%, 100% { box-shadow: 0 8px 24px rgba(200, 146, 42, .35), 0 0 0 0 rgba(232, 184, 74, .35); }
    50% { box-shadow: 0 8px 24px rgba(200, 146, 42, .45), 0 0 0 8px rgba(232, 184, 74, 0); }
}
@media (prefers-reduced-motion: reduce) {
    .btn-valuation { animation: none; }
}

/* Portali immobiliari */
.portals-bar {
    display: grid;
    gap: var(--space-4);
    margin-bottom: var(--space-8);
}
.portal-link {
    display: flex;
    align-items: center;
    gap: var(--space-4);
    padding: var(--space-5) var(--space-6);
    border-radius: var(--radius-xl);
    border: 1px solid var(--color-border);
    background: var(--color-surface-2);
    transition: transform var(--transition-interactive), box-shadow var(--transition-interactive), border-color var(--transition-interactive);
}
.portal-link:hover,
.portal-link:focus-visible {
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
}
.portal-link-label {
    font-family: var(--font-display);
    font-size: var(--text-lg);
    font-weight: 600;
}
.portal-link-desc {
    flex: 1;
    color: var(--color-text-muted);
    font-size: var(--text-sm);
}
.portal-link svg {
    width: 20px;
    height: 20px;
    flex-shrink: 0;
    color: var(--color-text-muted);
}
.portal-link-idealista:hover,
.portal-link-idealista:focus-visible {
    border-color: rgba(224, 95, 0, .35);
    background: linear-gradient(135deg, rgba(224, 95, 0, .06), var(--color-surface-2));
}
.portal-link-idealista .portal-link-label { color: #c45a00; }
.portal-link-immobiliare:hover,
.portal-link-immobiliare:focus-visible {
    border-color: rgba(0, 119, 200, .35);
    background: linear-gradient(135deg, rgba(0, 119, 200, .06), var(--color-surface-2));
}
.portal-link-immobiliare .portal-link-label { color: #0077c8; }

/* Toolbar e filtri galleria */
.properties-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-4);
    flex-wrap: wrap;
    margin-bottom: var(--space-6);
}
.properties-filters {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
}
.filter-btn {
    min-height: 44px;
    padding: .65rem 1.1rem;
    border-radius: var(--radius-full);
    border: 1px solid var(--color-border);
    background: var(--color-surface-2);
    color: var(--color-text-muted);
    font-size: var(--text-sm);
    font-weight: 700;
    transition: background var(--transition-interactive), color var(--transition-interactive), border-color var(--transition-interactive);
}
.filter-btn:hover,
.filter-btn:focus-visible {
    color: var(--color-text);
    background: var(--color-surface-offset);
}
.filter-btn.is-active {
    background: var(--color-primary);
    color: var(--color-text-inverse);
    border-color: var(--color-primary);
}
.properties-count {
    color: var(--color-text-muted);
    font-size: var(--text-sm);
}
.property-card.is-hidden {
    display: none;
}
.property-tags {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
}
.property-tags li {
    padding: .25rem .65rem;
    border-radius: var(--radius-full);
    background: var(--color-surface-offset);
    color: var(--color-text-muted);
    font-size: var(--text-xs);
    font-weight: 700;
}
.badge-idealista {
    background: #e05f00;
    color: #fff;
}
.badge-immobiliare {
    background: #0077c8;
    color: #fff;
}
.badge-exclusive {
    background: var(--color-success);
    color: #fff;
}

/* Sezione valutazione */
.section-valuation {
    scroll-margin-top: calc(var(--header-height) + var(--space-4));
}
.valuation-layout {
    display: grid;
    gap: var(--space-8);
    align-items: start;
}
.valuation-copy {
    display: grid;
    gap: var(--space-4);
}
.valuation-copy h2 {
    font-size: var(--text-xl);
}
.valuation-copy > p {
    color: var(--color-text-muted);
    max-width: 52ch;
}
.valuation-points {
    display: grid;
    gap: var(--space-3);
    margin-top: var(--space-2);
}
.valuation-points li {
    display: flex;
    align-items: flex-start;
    gap: var(--space-3);
}
.valuation-points li::before {
    content: '';
    flex: 0 0 auto;
    width: 10px;
    height: 10px;
    margin-top: .55em;
    border-radius: 50%;
    background: #c8922a;
    box-shadow: 0 0 0 6px rgba(200, 146, 42, .15);
}
.valuation-form-panel {
    padding: var(--space-6);
    border-color: rgba(200, 146, 42, .25);
    box-shadow: var(--shadow-md);
}
.valuation-form-header {
    display: flex;
    align-items: flex-start;
    gap: var(--space-4);
    margin-bottom: var(--space-5);
}
.valuation-form-icon {
    flex: 0 0 auto;
    width: 56px;
    height: 56px;
    display: grid;
    place-items: center;
    border-radius: 18px;
    background: linear-gradient(135deg, rgba(200, 146, 42, .15), rgba(232, 184, 74, .08));
    color: #a87218;
}
.valuation-form-icon svg {
    width: 40px;
    height: 40px;
}
.valuation-form-header h3 {
    margin-bottom: var(--space-1);
}
.valuation-form-header p {
    color: var(--color-text-muted);
    font-size: var(--text-sm);
}
.form-row {
    display: grid;
    gap: var(--space-4);
}
.form-hint {
    color: var(--color-text-faint);
    font-size: var(--text-xs);
    margin-top: calc(var(--space-2) * -1);
}

/* Float valutazione mobile */
.valuation-float {
    position: fixed;
    left: max(1rem, env(safe-area-inset-left));
    bottom: max(1rem, env(safe-area-inset-bottom));
    z-index: 95;
    display: none;
    align-items: center;
    gap: var(--space-2);
    min-height: 52px;
    padding: .75rem 1rem .75rem .85rem;
    border-radius: var(--radius-full);
    background: linear-gradient(135deg, #c8922a, #e8b84a);
    color: #1a1408;
    font-size: var(--text-sm);
    font-weight: 800;
    box-shadow: 0 14px 28px rgba(200, 146, 42, .35);
    transition: transform var(--transition-interactive), box-shadow var(--transition-interactive);
}
.valuation-float:hover,
.valuation-float:focus-visible {
    transform: translateY(-2px);
    box-shadow: 0 18px 32px rgba(200, 146, 42, .45);
}
.valuation-float svg {
    width: 24px;
    height: 24px;
    flex-shrink: 0;
}

@media (min-width: 768px) {
    .portals-bar {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .valuation-layout {
        grid-template-columns: .9fr 1.1fr;
        gap: var(--space-10);
    }
    .form-row {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (min-width: 1024px) {
    .properties-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 959px) {
    .valuation-float {
        display: inline-flex;
    }
}

/* Scheda immobile esclusivo */
.property-detail-section {
    padding-top: clamp(var(--space-8), 5vw, var(--space-12));
}
.property-breadcrumb {
    margin-bottom: var(--space-6);
}
.property-breadcrumb a {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    color: var(--color-text-muted);
    font-size: var(--text-sm);
    font-weight: 700;
}
.property-breadcrumb a:hover,
.property-breadcrumb a:focus-visible {
    color: var(--color-primary);
}
.property-detail-layout {
    display: grid;
    gap: var(--space-6);
}
.property-detail-gallery {
    overflow: hidden;
    padding: 0;
}
.property-gallery-main {
    position: relative;
    min-height: 280px;
    background: linear-gradient(135deg, rgba(163, 33, 40, .08), rgba(47, 125, 79, .08));
}
.property-gallery-main-trigger {
    display: block;
    width: 100%;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: zoom-in;
}
.property-gallery-main img {
    width: 100%;
    height: 100%;
    min-height: 280px;
    object-fit: cover;
}
.property-gallery-placeholder {
    min-height: 280px;
}
.property-gallery-thumbs {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(88px, 1fr));
    gap: var(--space-2);
    padding: var(--space-4);
    border-top: 1px solid var(--color-border);
    background: var(--color-surface);
}
.property-gallery-thumb {
    overflow: hidden;
    border-radius: var(--radius-md);
    border: 2px solid transparent;
    transition: border-color var(--transition-interactive), transform var(--transition-interactive);
}
.property-gallery-thumb:hover,
.property-gallery-thumb:focus-visible {
    transform: translateY(-1px);
}
.property-gallery-thumb.is-active {
    border-color: var(--color-primary);
}
.property-gallery-thumb img {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
}
.property-gallery-single-open {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 44px;
    padding: var(--space-3) var(--space-4);
    border-top: 1px solid var(--color-border);
    background: var(--color-surface);
    color: var(--color-text-muted);
    font-size: var(--text-sm);
    font-weight: 700;
}
.property-gallery-single-open:hover,
.property-gallery-single-open:focus-visible {
    color: var(--color-primary);
}
.property-detail-content {
    display: grid;
    gap: var(--space-4);
    padding: var(--space-6);
}
.property-detail-content h1 {
    font-size: var(--text-xl);
}
.property-detail-badges {
    position: static;
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
}
.property-detail-meta {
    margin-top: var(--space-1);
}
.property-detail-text {
    display: grid;
    gap: var(--space-3);
    color: var(--color-text-muted);
}
.property-specs {
    display: grid;
    gap: 0;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    overflow: hidden;
}
.property-spec-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr);
    gap: var(--space-4);
    padding: var(--space-4);
    border-bottom: 1px solid var(--color-border);
}
.property-spec-row:last-child {
    border-bottom: 0;
}
.property-spec-row:nth-child(even) {
    background: var(--color-surface-offset);
}
.property-spec-row dt {
    color: var(--color-text-muted);
    font-size: var(--text-sm);
    font-weight: 700;
}
.property-spec-row dd {
    font-weight: 700;
}
.property-detail-actions {
    margin-top: var(--space-2);
}

.property-inline-section {
    display: grid;
    gap: var(--space-3);
    padding-top: var(--space-2);
    border-top: 1px solid var(--color-border);
}

.property-section-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3);
}

.property-section-title {
    font-size: var(--text-sm);
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.property-section-icon-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.75rem;
    height: 2.75rem;
    border-radius: var(--radius-md);
    border: 1px solid var(--color-border);
    background: var(--color-surface-2);
    color: var(--color-primary);
    transition: border-color var(--transition-interactive), transform var(--transition-interactive);
}

.property-section-icon-btn svg {
    width: 1.35rem;
    height: 1.35rem;
}

.property-section-icon-btn:hover,
.property-section-icon-btn:focus-visible {
    border-color: var(--color-primary);
    transform: translateY(-1px);
}

.property-floor-plan-preview {
    display: grid;
    gap: var(--space-2);
    padding: 0;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    overflow: hidden;
    background: var(--color-surface-offset);
    text-align: left;
    cursor: zoom-in;
}

.property-floor-plan-preview img {
    width: 100%;
    max-height: 280px;
    object-fit: contain;
    background: #fff;
}

.property-floor-plan-preview-label {
    padding: 0 var(--space-4) var(--space-4);
    color: var(--color-text-muted);
    font-size: var(--text-sm);
    font-weight: 700;
}

.property-map-address {
    color: var(--color-text-muted);
    font-size: var(--text-sm);
    font-weight: 700;
}

.property-map-preview {
    position: relative;
    overflow: hidden;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    background: var(--color-surface-offset);
}

.property-map-preview iframe {
    display: block;
    width: 100%;
    height: 220px;
    border: 0;
}

.property-map-expand {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    width: 100%;
    justify-content: center;
    min-height: 44px;
    padding: var(--space-2) var(--space-4);
    border-top: 1px solid var(--color-border);
    background: var(--color-surface);
    color: var(--color-text);
    font-size: var(--text-sm);
    font-weight: 700;
}

.property-map-expand svg {
    width: 1.1rem;
    height: 1.1rem;
}

.property-map-expand:hover,
.property-map-expand:focus-visible {
    color: var(--color-primary);
}

.property-media {
    position: relative;
}

.property-banner {
    position: absolute;
    top: var(--space-3);
    left: var(--space-3);
    z-index: 2;
    display: inline-flex;
    align-items: center;
    max-width: calc(100% - var(--space-6));
    padding: .4rem .75rem;
    border-radius: var(--radius-sm);
    color: #fff;
    font-size: var(--text-xs);
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    box-shadow: 0 8px 24px rgba(0, 0, 0, .18);
}

.property-banner--red {
    background: #c62828;
}

.property-banner--green {
    background: #2e7d32;
}

.property-banner--orange {
    background: #ef6c00;
}

body.has-media-lightbox {
    overflow: hidden;
}

.media-lightbox {
    position: fixed;
    inset: 0;
    z-index: 1000;
    display: grid;
    place-items: center;
    padding: var(--space-4);
}

.media-lightbox[hidden] {
    display: none;
}

.media-lightbox__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(10, 12, 16, .82);
}

.media-lightbox__dialog {
    position: relative;
    z-index: 1;
    display: grid;
    gap: var(--space-4);
    width: min(1100px, 100%);
    max-height: calc(100dvh - var(--space-8));
    padding: var(--space-5);
    border-radius: var(--radius-lg);
    border: 1px solid var(--color-border);
    background: var(--color-surface);
    box-shadow: var(--shadow-lg);
}

.media-lightbox__close {
    position: absolute;
    top: var(--space-3);
    right: var(--space-3);
    z-index: 3;
    width: 2.75rem;
    height: 2.75rem;
    border-radius: var(--radius-full);
    border: 2px solid #fff;
    background: var(--color-surface-2);
    color: var(--color-text);
    font-size: 1.75rem;
    line-height: 1;
}

.media-lightbox__close--red {
    background: #c62828;
    border-color: #c62828;
    color: #fff;
    box-shadow: 0 8px 24px rgba(198, 40, 40, .35);
}

.media-lightbox__close--red:hover,
.media-lightbox__close--red:focus-visible {
    background: #b71c1c;
    border-color: #b71c1c;
}

.media-lightbox__dialog--fullscreen {
    width: min(1200px, 100%);
    max-height: calc(100dvh - var(--space-4));
    padding-top: calc(var(--space-5) + 1rem);
}

.media-lightbox__dialog--map {
    width: min(1100px, 100%);
    max-height: calc(100dvh - var(--space-4));
    padding-top: calc(var(--space-5) + 1rem);
}

.media-lightbox__stage--fullscreen {
    min-height: min(72dvh, 760px);
    padding: var(--space-2) 3.5rem;
}

.media-lightbox__stage--map {
    min-height: min(72dvh, 760px);
    padding: 0;
}

.media-lightbox__map {
    width: 100%;
    height: min(72dvh, 760px);
    border: 0;
    border-radius: var(--radius-md);
}

.media-lightbox__header {
    display: grid;
    gap: var(--space-1);
    padding-right: 3rem;
}

.media-lightbox__title {
    font-family: var(--font-display);
    font-size: var(--text-lg);
    font-weight: 700;
}

.media-lightbox__meta {
    color: var(--color-text-muted);
    font-size: var(--text-sm);
}

.media-lightbox__stage {
    position: relative;
    display: grid;
    place-items: center;
    min-height: 280px;
    padding: var(--space-2) 3rem;
    border-radius: var(--radius-md);
    background: var(--color-surface-offset);
}

.media-lightbox__image {
    width: 100%;
    max-height: min(72dvh, 760px);
    object-fit: contain;
}

.media-lightbox__nav {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    padding: .45rem .85rem;
    border-radius: var(--radius-md);
    border: 1px solid var(--color-border);
    background: var(--color-surface-2);
    color: var(--color-text);
    font-size: var(--text-sm);
    font-weight: 700;
}

.media-lightbox__nav--prev,
.media-lightbox__nav--next {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 2.5rem;
    height: 2.5rem;
    padding: 0;
    font-size: 1.5rem;
}

.media-lightbox__nav--prev {
    left: var(--space-2);
}

.media-lightbox__nav--next {
    right: var(--space-2);
}

.media-lightbox--photo .media-lightbox__meta,
.media-lightbox--floor-plan .media-lightbox__meta,
.media-lightbox--map .media-lightbox__meta {
    text-align: center;
}

@media (min-width: 960px) {
    .property-detail-layout {
        grid-template-columns: 1.15fr .85fr;
        align-items: start;
    }
    .property-gallery-main img,
    .property-gallery-placeholder {
        min-height: 420px;
    }
}

/* Sezione social feed */
.social-status-bar {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    margin-bottom: var(--space-6);
}
.social-status-pill {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    min-height: 36px;
    padding: .35rem .85rem;
    border-radius: var(--radius-full);
    border: 1px solid var(--color-border);
    background: var(--color-surface-2);
    color: var(--color-text-muted);
    font-size: var(--text-xs);
    font-weight: 700;
}
.social-status-pill.is-active {
    color: var(--color-success);
    border-color: rgba(47, 125, 79, .25);
    background: rgba(47, 125, 79, .08);
}
.social-status-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--color-text-faint);
}
.social-status-pill.is-active .social-status-dot {
    background: var(--color-success);
    box-shadow: 0 0 0 4px rgba(47, 125, 79, .15);
}
.social-toolbar {
    margin-bottom: var(--space-6);
}
.social-filters {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
}
.social-feed-layout {
    display: grid;
    gap: var(--space-5);
}
.social-feed-block {
    display: grid;
    gap: var(--space-5);
    padding: var(--space-6);
}
.social-feed-block.is-hidden {
    display: none;
}
.social-feed-block-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--space-4);
    flex-wrap: wrap;
}
.social-feed-block-header h3 {
    font-size: var(--text-lg);
}
.social-feed-note {
    margin-top: var(--space-2);
    color: var(--color-text-muted);
    font-size: var(--text-sm);
}
.social-feed-note.is-error {
    color: var(--color-primary);
}
.social-profile-link {
    min-height: 44px;
}
.social-items-grid {
    display: grid;
    gap: var(--space-4);
}
.social-item {
    overflow: hidden;
    padding: 0;
}
.social-item-media img {
    width: 100%;
    aspect-ratio: 16 / 9;
    object-fit: cover;
}
.social-item-body {
    display: grid;
    gap: var(--space-3);
    padding: var(--space-5);
}
.social-item-author {
    font-weight: 700;
}
.social-item-rating {
    color: #c8922a;
    letter-spacing: .08em;
}
.social-item-date {
    color: var(--color-text-faint);
    font-size: var(--text-xs);
}
.social-item-link {
    color: var(--color-primary);
    font-size: var(--text-sm);
    font-weight: 700;
}
.social-item-link:hover,
.social-item-link:focus-visible {
    text-decoration: underline;
}
.social-feed-empty {
    display: grid;
    gap: var(--space-4);
    padding: var(--space-5);
    border: 1px dashed var(--color-border);
    border-radius: var(--radius-lg);
    background: var(--color-surface-offset);
    color: var(--color-text-muted);
    text-align: center;
}

@media (min-width: 768px) {
    .social-items-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (min-width: 1024px) {
    .social-items-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

/* Header: icona home + logo (resize automatico) */
.header-brand-group {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    min-width: 0;
    flex-shrink: 0;
}
.home-link {
    display: inline-grid;
    place-items: center;
    width: var(--home-icon-size, 44px);
    height: var(--home-icon-size, 44px);
    border-radius: 14px;
    background: linear-gradient(135deg, rgba(163, 33, 40, .12), rgba(47, 125, 79, .1));
    color: var(--color-primary);
    border: 1px solid var(--color-border);
    flex-shrink: 0;
    transition: transform var(--transition-interactive), background var(--transition-interactive);
}
.home-link:hover,
.home-link:focus-visible {
    transform: translateY(-1px);
    background: linear-gradient(135deg, rgba(163, 33, 40, .18), rgba(47, 125, 79, .14));
}
.home-link-icon svg {
    width: calc(var(--home-icon-size, 44px) * .62);
    height: calc(var(--home-icon-size, 44px) * .62);
    stroke: currentColor;
    fill: none;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}
.brand--logo {
    display: inline-flex;
    align-items: center;
    min-width: 0;
}
.brand-logo {
    width: auto;
    height: auto;
    max-width: var(--logo-max-width, 120px);
    max-height: var(--logo-max-height, 72px);
    object-fit: contain;
    object-position: left center;
}
.brand--text .brand-text {
    display: grid;
    gap: .15rem;
}
.footer-brand-name {
    font-family: var(--font-display);
    font-size: var(--text-lg);
    font-weight: 600;
    margin-bottom: var(--space-3);
    line-height: 1.1;
}
.footer-legal {
    margin-top: var(--space-2);
    font-size: var(--text-sm);
    color: var(--color-text-muted);
}
.contact-list address {
    font-style: normal;
    color: var(--color-text);
}
.contact-list li > span:last-child:not(:first-child) {
    color: var(--color-text);
}