/* Immobilplace — foglio di stile unico del sito (09/10/2026, Claude Code). Scritto a mano.

   Rifacimento in stile Apple sull'impianto dei nostri siti approvati da Simone (Nexorat Lab, Emma Corvino,
   Studio Depretto, Ginevra Pignata): sezioni bianche, grigie #f5f5f7 e nere, titoli Inter grandi e stretti col
   punto, barra di vetro, riquadri con dentro le immagini, strisce che si scorrono di lato, piede grigio.
   L'identita' e' quella del marchio vero di Immobilplace, vettorializzato dal loro file (tools/vettorializza-
   marchio.py): lo spillo verde #03BF61 col punto, la scritta nera e verde. Il punto verde dello spillo e della
   «i» chiude i titoli, come il punto corallo su nexoratlab.com.
   Il verde del marchio sul bianco ha contrasto 2,4:1: per i testi e i collegamenti si usa il verde scurito
   #047a3c (5,6:1); il verde pieno solo per segni, fondi e testi sul nero (8,6:1).
   Movimento (skill apple-design / emil-design-eng): mai ease-in, mai scale(0), interfaccia sotto i 300 ms,
   tutto fermo con «riduci movimento». Il vetro della barra sta su ::before (errore n. 30). */

/* ============================================================ caratteri (sul sito, nessuna chiamata a terzi) */
@font-face { font-family: 'Inter'; src: url('/assets/fonts/inter.b791b1a45b.woff2') format('woff2'); font-weight: 100 900; font-style: normal; font-display: swap; }

/* ============================================================ fondamenta */
:root {
  --bianco: #ffffff;
  --grigio: #f5f6f7;
  --grigio-2: #e8ece9;
  --nero: #000000;
  --testo: #1d1d1f;
  --testo-2: #6e6e73;
  --testo-3: #86868b;
  --filo: #dfe4e1;
  --filo-tenue: rgba(0, 0, 0, .08);
  --verde: #03bf61;               /* il verde del marchio (spillo, punto, PLACE) */
  --verde-testo: #14623d;
  --verde-testo-2: #124f33;
  --verde-chiaro: #36d985;        /* il verde per i testi sul nero */
  --verde-velo: #e9f8f0;
  --vetro: rgba(255, 255, 255, .74);
  --font: 'Inter', -apple-system, BlinkMacSystemFont, 'SF Pro Text', 'Helvetica Neue', Arial, sans-serif;
  --nav: 72px;
  --uscita: cubic-bezier(.23, 1, .32, 1);
  --morbida: cubic-bezier(.4, 0, .2, 1);
  --r-grande: 28px;
  --r-medio: 20px;
  --r-piccolo: 14px;
  --largo: 1200px;
  --margine: max(22px, env(safe-area-inset-left), env(safe-area-inset-right));
  color-scheme: light;
}

*, *::before, *::after { box-sizing: border-box; }
/* l'attributo hidden vince sempre: senza, un display: grid/flex del CSS lo batte (il modulo d'accesso restava sopra il pannello) */
[hidden] { display: none !important; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: calc(var(--nav) + 24px); }
body {
  margin: 0; background: var(--bianco); color: var(--testo); font-family: var(--font);
  font-size: 17px; line-height: 1.47; letter-spacing: -.011em;
  font-optical-sizing: auto;
  -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-rendering: optimizeLegibility;
  overflow-x: clip; -webkit-tap-highlight-color: transparent;
}
img, svg, video { display: block; max-width: 100%; }
img { height: auto; }                        /* errore n. 39 */
a { color: var(--verde-testo); text-decoration: none; }
a:hover { text-decoration: underline; text-underline-offset: .18em; }
button, input, select, textarea { font: inherit; color: inherit; }
:where(a, button, summary, input, select, textarea, [tabindex]):focus-visible { outline: 2px solid var(--verde-testo); outline-offset: 3px; border-radius: 8px; }
:where(.sez.nera, .riquadro.nero, .cta) :where(a, button, summary):focus-visible { outline-color: #fff; }
::selection { background: rgba(3, 191, 97, .25); }
.solo-lettori { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.salta { position: absolute; left: 12px; top: -60px; z-index: 300; background: var(--testo); color: #fff; padding: 10px 18px; border-radius: 999px; font-size: 14px; font-weight: 600; }
.salta:focus { top: 12px; text-decoration: none; }

/* ============================================================ tipografia
   Il tracciamento cambia con la misura (skill apple-design §15): stretto sui titoli, quasi zero sul testo.
   L'asse ottico di Inter (opsz) passa da solo alla versione «display» sui titoli grandi. */
h1, h2, h3, h4 { margin: 0; font-weight: 700; text-wrap: balance; }
p { margin: 0 0 1em; text-wrap: pretty; }
p:last-child { margin-bottom: 0; }
.t-enorme { font-size: clamp(2.7rem, .9rem + 6vw, 6rem); line-height: 1.15; letter-spacing: -.04em; font-weight: 800; }
.t-grande { font-size: clamp(1.85rem, 1.15rem + 2.2vw, 3.35rem); line-height: 1.15; letter-spacing: -.03em; }
.t-media { font-size: clamp(1.7rem, 1.2rem + 1.6vw, 2.7rem); line-height: 1.15; letter-spacing: -.025em; }
.t-sotto { font-size: clamp(1.25rem, 1.02rem + .9vw, 1.75rem); line-height: 1.25; letter-spacing: -.022em; font-weight: 600; }
.t-intro { font-size: clamp(1.125rem, 1.02rem + .45vw, 1.375rem); line-height: 1.42; letter-spacing: -.017em; font-weight: 500; color: var(--testo-2); }
.occhiello { display: block; margin: 0 0 14px; font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--testo-2); }
.occhiello .punto, .punto-verde { display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: var(--verde); margin-right: 8px; vertical-align: .12em; }
/* il punto verde dello spillo chiude i titoli. Sta nel CSS (::after) e non in uno <span> dentro il titolo: cosi'
   il titolo resta un testo semplice e Nexorat Live lo puo' modificare (marca-cms.py salta gli elementi con figli) */
.pt { color: var(--verde); }
.cp::after { content: '.'; color: var(--verde); }
.sez.verde .cp::after, .riquadro.verde .cp::after { color: #000; }
.occhiello.con-punto::before { content: ''; display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: var(--verde); margin-right: 8px; vertical-align: .12em; }
.sez.verde .occhiello.con-punto::before, .riquadro.verde .occhiello.con-punto::before { background: #000; }
/* i colori che usa l'editor di Nexorat Live (public/editor.css del motore) */
:root { --green: #047a3c; --green-deep: #1d1d1f; --sans: var(--font); --ink: #1d1d1f; }
.centro { text-align: center; }
.grigio-t { color: var(--testo-3); }

/* ============================================================ impaginazione */
.contenitore { width: 100%; max-width: calc(var(--largo) + 2 * var(--margine)); margin-inline: auto; padding-inline: var(--margine); }
.stretto { max-width: calc(860px + 2 * var(--margine)); }
.sez { padding-block: clamp(84px, 10vw, 148px); position: relative; }
.sez.compatta { padding-block: clamp(64px, 7vw, 104px); }
.sez.grigia { background: var(--grigio); }
.sez.nera { background: var(--nero); color: #f5f5f7; }
.sez.nera .t-intro { color: #a1a1a6; }
.sez.nera .occhiello { color: #86868b; }
.sez.nera a { color: var(--verde-chiaro); }
.sez.verde { background: var(--verde); color: #000; }
.sez.verde .occhiello { color: rgba(0, 0, 0, .7); }
.sez.verde .pt { color: #000; }
.testa { max-width: 860px; margin: 0 0 clamp(40px, 5vw, 68px); }
.testa.centro { margin-inline: auto; }
.testa .t-intro { margin-top: 18px; }
.testa-riga { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 18px 40px; margin-bottom: clamp(32px, 4vw, 56px); }
.testa-riga .testa { margin-bottom: 0; }

/* ============================================================ barra di vetro
   Il vetro sta su ::before e non sulla barra (errore n. 30). Sulle sezioni nere diventa scuro. */
.nav { position: sticky; top: 0; z-index: 100; height: var(--nav); color: var(--testo); }
.nav::before { content: ''; position: absolute; inset: 0; z-index: -1; background: var(--vetro); -webkit-backdrop-filter: saturate(180%) blur(20px); backdrop-filter: saturate(180%) blur(20px); transition: background-color .3s var(--morbida); }
.nav::after { content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 1px; background: var(--filo-tenue); }
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) { .nav::before { background: #fff; } }
@media (prefers-reduced-transparency: reduce) { .nav::before { background: #fff; -webkit-backdrop-filter: none; backdrop-filter: none; } }
body.menu-aperto .nav::before { background: #fff; }
.nav-dentro { height: 100%; max-width: calc(var(--largo) + 2 * var(--margine)); margin-inline: auto; padding-inline: var(--margine); display: flex; align-items: center; gap: 22px; }
.nav-marchio { display: block; flex: none; padding: 4px 0; line-height: 0; }
.nav-marchio img { height: 27px; width: auto; }
.nav-marchio .su-scuro { display: none; }
.nav-dentro > nav { margin-left: auto; }
.nav-voci { list-style: none; margin: 0; padding: 0; display: flex; gap: 2px; }
.nav-voci a { display: block; padding: 6px 11px; border-radius: 999px; font-size: 13px; letter-spacing: -.004em; color: var(--testo); opacity: .84; white-space: nowrap; transition: opacity .2s var(--morbida), background-color .2s var(--morbida), color .3s var(--morbida); }
.nav-voci a:hover { opacity: 1; text-decoration: none; background: var(--filo-tenue); }
.nav-voci a[aria-current] { opacity: 1; font-weight: 600; }
.nav-azione { display: inline-flex; align-items: center; gap: 7px; font-size: 12px; font-weight: 600; padding: 6px 14px; border-radius: 999px; background: var(--testo); color: #fff; transition: transform .16s var(--uscita), background-color .2s, color .2s; white-space: nowrap; }
.nav-azione:hover { text-decoration: none; background: #000; }
.nav-azione:active { transform: scale(.96); }
.nav-azione .punto, .pillola .punto { width: 7px; height: 7px; border-radius: 50%; background: var(--verde); flex: none; }
.nav-menu { display: none; margin-left: auto; width: 44px; height: 44px; border: 0; background: none; padding: 0; cursor: pointer; position: relative; color: var(--testo); }
.nav-menu span { position: absolute; left: 13px; width: 18px; height: 1.6px; border-radius: 2px; background: currentColor; transition: transform .3s var(--uscita), top .3s var(--uscita); }
.nav-menu span:first-child { top: 18px; }
.nav-menu span:last-child { top: 25px; }
.nav-menu[aria-expanded='true'] span:first-child { top: 21.5px; transform: rotate(45deg); }
.nav-menu[aria-expanded='true'] span:last-child { top: 21.5px; transform: rotate(-45deg); }
.nav-voci .solo-menu { display: none; }
body.nav-scura:not(.menu-aperto) .nav::before { background: rgba(22, 22, 23, .72); }
body.nav-scura:not(.menu-aperto) .nav::after { background: rgba(255, 255, 255, .08); }
body.nav-scura:not(.menu-aperto) .nav-marchio .su-chiaro { display: none; }
body.nav-scura:not(.menu-aperto) .nav-marchio .su-scuro { display: block; }
body.nav-scura:not(.menu-aperto) .nav-voci a, body.nav-scura:not(.menu-aperto) .nav-menu { color: #f5f5f7; }
body.nav-scura:not(.menu-aperto) .nav-voci a:hover { background: rgba(255, 255, 255, .1); }
body.nav-scura:not(.menu-aperto) .nav-azione { background: #fff; color: var(--testo); }
@media (max-width: 1080px) {
  .nav-menu { display: block; }
  .nav-azione { display: none; }
  .nav-voci { position: fixed; inset: var(--nav) 0 0 0; margin: 0; flex-direction: column; gap: 0; padding: 22px var(--margine) calc(40px + env(safe-area-inset-bottom)); background: #fff; visibility: hidden; opacity: 0; transition: opacity .25s var(--uscita), visibility .25s; overflow-y: auto; }
  .nav-voci.aperto { visibility: visible; opacity: 1; }
  .nav-voci li { opacity: 0; transform: translateY(-6px); transition: opacity .3s var(--uscita), transform .3s var(--uscita); }
  .nav-voci.aperto li { opacity: 1; transform: none; }
  .nav-voci.aperto li:nth-child(2) { transition-delay: 25ms; }
  .nav-voci.aperto li:nth-child(3) { transition-delay: 50ms; }
  .nav-voci.aperto li:nth-child(4) { transition-delay: 75ms; }
  .nav-voci.aperto li:nth-child(5) { transition-delay: 100ms; }
  .nav-voci.aperto li:nth-child(6) { transition-delay: 125ms; }
  .nav-voci.aperto li:nth-child(7) { transition-delay: 150ms; }
  .nav-voci.aperto li:nth-child(n+8) { transition-delay: 175ms; }
  .nav-voci a { font-size: 28px; font-weight: 700; letter-spacing: -.026em; padding: 9px 0; opacity: 1; border-radius: 0; color: var(--testo) !important; }
  .nav-voci a:hover { background: none; }
  .nav-voci .solo-menu { display: block; margin-top: 18px; }
  .nav-voci .solo-menu + .solo-menu { margin-top: 0; }
  .nav-voci .solo-menu a { color: var(--verde-testo) !important; font-size: 19px; font-weight: 600; }
  body.menu-aperto { overflow: hidden; }
}
@media (max-width: 420px) { .nav-marchio img { height: 23px; } }

/* ============================================================ pulsanti e collegamenti */
.bottoni { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 26px; margin-top: 30px; }
.bottoni.centro { justify-content: center; }
.pillola { display: inline-flex; align-items: center; justify-content: center; gap: 9px; min-height: 44px; padding: 11px 24px; border-radius: 999px; border: 0; cursor: pointer; background: var(--testo); color: #fff; font-size: 17px; font-weight: 500; letter-spacing: -.012em; transition: background-color .2s var(--morbida), transform .16s var(--uscita); text-decoration: none; white-space: nowrap; }
.pillola:hover { background: #000; text-decoration: none; }
.pillola:active { transform: scale(.97); }
.pillola.contorno { background: transparent; color: var(--testo); box-shadow: inset 0 0 0 1.5px currentColor; }
.pillola.contorno:hover { background: rgba(0, 0, 0, .05); }
.pillola.verde { background: var(--verde); color: #000; }
.pillola.verde:hover { background: #02ad57; }
.pillola.piccola { min-height: 36px; padding: 7px 16px; font-size: 14px; }
.sez.nera .pillola, .cta .pillola, .riquadro.nero .pillola { background: #f5f5f7; color: #000; }
.sez.nera .pillola:hover, .cta .pillola:hover, .riquadro.nero .pillola:hover { background: #fff; }
.sez.nera .pillola.contorno, .cta .pillola.contorno { background: transparent; color: #f5f5f7; }
.sez.nera .pillola.contorno:hover, .cta .pillola.contorno:hover { background: rgba(255, 255, 255, .1); }
.sez.verde .pillola { background: #000; color: #fff; }
.sez.verde .pillola .punto { background: var(--verde); }
.sez.verde .pillola.contorno { background: transparent; color: #000; }
.sez.verde .pillola.contorno:hover { background: rgba(0, 0, 0, .07); }
.scopri { display: inline-flex; align-items: center; gap: 3px; font-size: 17px; font-weight: 500; letter-spacing: -.012em; color: var(--verde-testo); }
.scopri::after { content: ''; width: 7px; height: 7px; margin-left: 4px; border-right: 2px solid currentColor; border-top: 2px solid currentColor; transform: rotate(45deg); transition: transform .2s var(--uscita); flex: none; }
.scopri:hover { text-decoration: none; }
.scopri:hover::after, a:hover > .scopri::after { transform: translateX(3px) rotate(45deg); }
button.scopri { background: none; border: 0; padding: 0; cursor: pointer; }
.sez.nera .scopri, .riquadro.nero .scopri { color: var(--verde-chiaro); }

/* ============================================================ HOME — in apertura, la mappa degli immobili (15/10/2026)
   Richiesta di Simone: la mappa «stile immobiliare.it» della ricerca e' la prima cosa che si vede. Un riquadro grande e
   arrotondato, come i riquadri del sito, con dentro la carta vera (sorgenti/mappa-home.js, stessi segnaposto di
   /immobili); il motto e la ricerca in una scheda bianca sopra la carta, a sinistra sul computer e in alto sul
   telefono. Sotto si vede l'inizio della sezione dopo, cosi' si capisce che la pagina continua.
   La carta e' z-index 0 (Leaflet resta dentro); scheda, pulsanti e avviso le stanno sopra. */
.mappa-home { padding: clamp(8px, 1vw, 14px); }
.mh-quadro { position: relative; isolation: isolate; height: clamp(520px, calc(100svh - var(--nav) - 84px), 1040px); border-radius: var(--r-grande); overflow: hidden; background: #eceef0; }
.mh-mappa { position: absolute; inset: 0; z-index: 0; }
.mh-mappa:focus-visible { outline-offset: -4px; }
.mh-pannello { position: absolute; z-index: 2; left: clamp(16px, 2.2vw, 32px); top: clamp(16px, 2.2vw, 32px); width: min(452px, calc(100% - 32px)); padding: 30px 30px 26px; border-radius: 24px; background: #fff; box-shadow: 0 0 0 1px rgba(0, 0, 0, .05), 0 24px 60px -26px rgba(0, 0, 0, .38); }
.mh-pannello h1 { font-size: clamp(2rem, 1.25rem + 1.45vw, 2.75rem); line-height: 1.08; letter-spacing: -.04em; }
.mh-sotto { margin: 12px 0 0; font-size: 17px; line-height: 1.42; letter-spacing: -.014em; font-weight: 500; color: var(--testo-2); }
.mh-pannello .cerca { margin: 22px 0 0; width: 100%; }
.mh-riga { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 10px; }
.mh-pannello .cerca-scelta { margin-bottom: 0; }
.mh-pannello .cerca-barra { background: var(--grigio); box-shadow: none; min-height: 56px; padding: 6px 6px 6px 18px; }
.cerca-scelta .pallino { display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: var(--verde); margin-right: 7px; vertical-align: .1em; }
.cerca-scelta .pallino.affitto { background: var(--testo); }
/* il pulsante della lista: tutti gli immobili, o quelli dell'area guardata */
.mh-lista { position: absolute; z-index: 2; left: 50%; translate: -50% 0; bottom: 22px; max-width: calc(100% - 24px); box-shadow: 0 12px 30px -10px rgba(0, 0, 0, .55); }
.mh-lista [data-mh-testo] { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.mh-lista:focus-visible { outline-color: #fff; box-shadow: 0 0 0 4px var(--testo); }
/* i pulsanti tondi: a tutto schermo (solo dove si tocca) e chiudi */
.mh-tondo { width: 44px; height: 44px; border: 0; border-radius: 50%; padding: 0; display: none; place-items: center; flex: none; cursor: pointer; background: #fff; color: var(--testo); box-shadow: 0 0 0 1px rgba(0, 0, 0, .08), 0 8px 20px -8px rgba(0, 0, 0, .45); transition: transform .16s var(--uscita), background-color .2s; }
.mh-tondo:active { transform: scale(.94); }
.mh-tondo svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.mh-pannello .mh-intera { width: 38px; height: 38px; background: var(--grigio); box-shadow: none; }
@media (pointer: coarse) { .mh-viva .mh-intera { display: grid; } }
.mh-chiudi { position: absolute; z-index: 2; right: 14px; top: calc(14px + env(safe-area-inset-top)); }
/* l'avviso dei gesti (due dita, ⌘ o Ctrl + rotella): in mezzo alla carta, per un attimo */
.mh-avviso { position: absolute; z-index: 3; left: 50%; top: 60%; translate: -50% -50%; margin: 0; width: max-content; max-width: min(340px, calc(100% - 40px)); padding: 12px 18px; border-radius: 16px; background: rgba(29, 29, 31, .86); color: #fff; font-size: 15px; font-weight: 600; line-height: 1.35; letter-spacing: -.01em; text-align: center; opacity: 0; pointer-events: none; transition: opacity .25s var(--morbida); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.mh-con-avviso .mh-avviso { opacity: 1; }
/* Leaflet nel riquadro: pulsanti dello zoom come quelli del sito, crediti lontani dall'angolo arrotondato */
.mh-mappa .leaflet-top.leaflet-right { top: 8px; right: 8px; }
.mh-mappa .leaflet-control-zoom { border: 0; border-radius: 14px; overflow: hidden; box-shadow: 0 0 0 1px rgba(0, 0, 0, .08), 0 8px 20px -8px rgba(0, 0, 0, .4); }
.mh-mappa .leaflet-control-zoom a { width: 38px; height: 38px; font: 500 20px/38px var(--font); color: var(--testo); }
.mh-mappa .leaflet-control-attribution { margin: 0 16px 6px 0; border-radius: 8px; padding: 1px 7px; }
@media (pointer: coarse) { .mh-mappa .leaflet-control-zoom { display: none; } }
/* l'entrata: finita l'apertura (lo spillo del marchio che cade), cadono anche i segnaposto */
@keyframes mh-cade { from { opacity: 0; translate: 0 -12px; } to { opacity: 1; translate: 0 0; } }
.mh-attesa .leaflet-marker-icon > * { opacity: 0; }
.mh-entra .leaflet-marker-icon > * { animation: mh-cade .45s var(--uscita) both; }
.mh-entra .leaflet-marker-icon:nth-child(4n+2) > * { animation-delay: 60ms; }
.mh-entra .leaflet-marker-icon:nth-child(4n+3) > * { animation-delay: 120ms; }
.mh-entra .leaflet-marker-icon:nth-child(4n) > * { animation-delay: 180ms; }
/* a tutto schermo (telefono): la carta copre tutto e si muove con un dito; della scheda resta Tutti / In vendita / In affitto */
.mh-quadro.intera { position: fixed; inset: 0; z-index: 200; height: auto; border-radius: 0; touch-action: none; }
.intera .mh-pannello { left: 12px; right: auto; top: calc(12px + env(safe-area-inset-top)); width: auto; max-width: calc(100% - 82px); padding: 5px; border-radius: 999px; }
.intera .mh-pannello h1, .intera .mh-sotto, .intera .cerca-barra, .intera .mh-intera { display: none !important; }
.intera .mh-pannello .cerca, .intera .mh-riga { margin: 0; }
.intera .mh-chiudi { display: grid; }
.intera .mh-lista { bottom: calc(24px + env(safe-area-inset-bottom)); }
@media (max-width: 760px) {
  .mappa-home { padding: 8px; }
  .mh-quadro { height: max(500px, calc(100svh - var(--nav) - 64px)); border-radius: 22px; }
  .mh-pannello { left: 10px; right: 10px; top: 10px; width: auto; padding: 16px 16px 14px; border-radius: 18px; }
  .mh-pannello h1 { font-size: clamp(1.45rem, 6.3vw, 1.8rem); line-height: 1.1; letter-spacing: -.035em; }
  .mh-sotto { display: none; }
  .mh-pannello .cerca { margin-top: 12px; }
  .mh-pannello .cerca-scelta span { padding: 6px 12px; font-size: 13.5px; }
  .mh-pannello .cerca-barra { min-height: 50px; padding-left: 14px; }
  .mh-lista { font-size: 15.5px; padding-inline: 18px; bottom: 20px; }
}
/* sui telefoni stretti «Comune o provincia» non ci stava: via la lente (il pulsante dice gia' Cerca) e il punto del pulsante */
@media (max-width: 400px) { .mh-pannello .cerca-barra { padding-left: 16px; } .mh-pannello .cerca-barra svg, .mh-pannello .cerca-barra button .punto { display: none; } .mh-pannello .cerca-barra input { font-size: 16px; } }
@media (max-width: 360px) { .mh-pannello .cerca-scelta span { padding: 6px 9px; font-size: 13px; } .cerca-scelta .pallino { margin-right: 5px; } }

/* la ricerca: una pillola sola, come la barra di ricerca di Apple; sopra, vendita o affitto */
.cerca { margin: clamp(26px, 4vh, 40px) auto 0; width: min(100%, 640px); }
.cerca-scelta { display: inline-flex; padding: 3px; border-radius: 999px; background: var(--grigio-2); margin-bottom: 12px; }
.cerca-scelta label { position: relative; cursor: pointer; }
.cerca-scelta input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.cerca-scelta span { display: block; padding: 7px 18px; border-radius: 999px; font-size: 14px; font-weight: 600; color: var(--testo-2); transition: background-color .2s var(--morbida), color .2s, box-shadow .2s; }
.cerca-scelta input:checked + span { background: #fff; color: var(--testo); box-shadow: 0 1px 3px rgba(0, 0, 0, .12); }
.cerca-scelta input:focus-visible + span { outline: 2px solid var(--verde-testo); outline-offset: 2px; }
.cerca-barra { display: flex; align-items: center; gap: 8px; min-height: 60px; padding: 7px 7px 7px 22px; border-radius: 999px; background: #fff; box-shadow: 0 0 0 1px rgba(0, 0, 0, .08), 0 18px 50px -24px rgba(0, 0, 0, .3); }
.cerca-barra svg { width: 19px; height: 19px; flex: none; fill: none; stroke: var(--testo-2); stroke-width: 2.2; stroke-linecap: round; }
.cerca-barra input { flex: 1; min-width: 0; border: 0; background: none; font-size: 17px; letter-spacing: -.012em; padding: 10px 4px; outline: none; }
.cerca-barra input::placeholder { color: var(--testo-3); }
.cerca-barra button { flex: none; min-height: 46px; padding: 10px 22px; border: 0; border-radius: 999px; background: var(--testo); color: #fff; font-size: 16px; font-weight: 600; cursor: pointer; display: inline-flex; align-items: center; gap: 8px; transition: background-color .2s, transform .16s var(--uscita); }
.cerca-barra button:hover { background: #000; }
.cerca-barra button:active { transform: scale(.97); }
.cerca-barra button .punto { width: 7px; height: 7px; border-radius: 50%; background: var(--verde); }
@media (max-width: 520px) { .tipologie a { min-height: 104px; } .tipologie b { font-size: 17px; } .cerca-barra { padding-left: 16px; min-height: 56px; } .cerca-barra button { padding: 10px 16px; } .cerca-barra button span.lungo { display: none; } }

/* ============================================================ le schede degli immobili (vetrina, simili, elenco) */
.immobile { display: flex; flex-direction: column; color: var(--testo); min-width: 0; }
.immobile:hover { text-decoration: none; }
.immobile-foto { position: relative; display: block; border-radius: 18px; overflow: hidden; background: var(--grigio-2); aspect-ratio: 4 / 3; }
.immobile-foto img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s var(--uscita); }
@media (hover: hover) and (pointer: fine) { .immobile:hover .immobile-foto img { transform: scale(1.03); } }
.etichetta { position: absolute; left: 12px; top: 12px; padding: 5px 11px; border-radius: 999px; background: rgba(255, 255, 255, .92); color: var(--testo); font-size: 12px; font-weight: 600; letter-spacing: .01em; -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
.etichetta.affitto { background: rgba(0, 0, 0, .78); color: #fff; }
.immobile-testo { padding: 14px 4px 0; display: grid; gap: 4px; }
.immobile-prezzo { font-size: 21px; font-weight: 700; letter-spacing: -.025em; line-height: 1.2; }
.immobile-prezzo small { font-size: 14px; font-weight: 500; color: var(--testo-2); letter-spacing: -.01em; }
.immobile-titolo { font-size: 15.5px; font-weight: 500; line-height: 1.35; letter-spacing: -.012em; color: var(--testo); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.immobile-luogo { font-size: 14px; color: var(--testo-2); }
.immobile-dati { display: flex; flex-wrap: wrap; gap: 4px 14px; margin-top: 4px; font-size: 13.5px; color: var(--testo-2); }
.immobile-dati b { color: var(--testo); font-weight: 600; }
.sez.grigia .immobile-foto { background: #e3e3e8; }

/* la striscia (come i punti salienti di Apple): vetrina, sedi, open house */
.striscia { position: relative; }
.striscia-binario { display: flex; gap: 22px; overflow-x: auto; scroll-snap-type: x mandatory; --bordo: max(var(--margine), calc((100vw - var(--largo)) / 2)); scroll-padding-inline: var(--bordo); padding: 8px var(--bordo) 26px; scrollbar-width: none; overscroll-behavior-x: contain; }
.striscia-binario::-webkit-scrollbar { display: none; }
.striscia-binario > * { flex: none; scroll-snap-align: start; }
.striscia-binario > .immobile { width: clamp(270px, 28vw, 380px); }
.striscia-comandi { display: flex; align-items: center; justify-content: center; gap: 14px; margin-top: 14px; }
.striscia-freccia { width: 38px; height: 38px; border-radius: 50%; border: 0; display: grid; place-items: center; cursor: pointer; background: var(--grigio-2); color: var(--testo); transition: background-color .2s, opacity .2s, transform .16s var(--uscita); }
.sez.grigia .striscia-freccia { background: #e3e3e8; }
.striscia-freccia:hover { background: var(--filo); }
.striscia-freccia:active { transform: scale(.95); }
.striscia-freccia:disabled { opacity: .35; cursor: default; }
.striscia-freccia svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
.sez.nera .striscia-freccia { background: #2c2c2e; color: #f5f5f7; }
.sez.nera .striscia-freccia:hover { background: #3a3a3c; }
@media (max-width: 760px) { .striscia-binario > .immobile { width: 78vw; } }

/* le tipologie: riquadri piccoli col numero vero di annunci */
.tipologie { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 150px), 1fr)); gap: 12px; }
.tipologie a { display: flex; flex-direction: column; justify-content: space-between; gap: 18px; min-height: 120px; padding: 18px 20px; border-radius: var(--r-medio); background: var(--grigio); color: var(--testo); transition: background-color .25s var(--morbida), transform .16s var(--uscita); }
.tipologie a:hover { background: var(--grigio-2); text-decoration: none; }
.tipologie a:active { transform: scale(.985); }
.tipologie b { font-size: 19px; letter-spacing: -.02em; line-height: 1.2; }
.tipologie span { font-size: 14px; color: var(--testo-2); display: flex; justify-content: space-between; align-items: center; }
.tipologie span::after { content: ''; width: 7px; height: 7px; border-right: 2px solid var(--verde-testo); border-top: 2px solid var(--verde-testo); transform: rotate(45deg); }
.tipologie .icona { width: 30px; height: 30px; color: var(--testo); }
.tipologie .icona svg { width: 30px; height: 30px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }

/* ============================================================ i riquadri dei servizi (come quelli di Nexorat Lab ed Emma)
   Misure diverse, arrotondati, senza ombre, sul grigio; ogni riquadro ha dentro la sua immagine. */
.riquadri { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.riquadro { position: relative; display: flex; flex-direction: column; border-radius: var(--r-grande); background: #fff; overflow: hidden; color: var(--testo); min-height: 540px; isolation: isolate; }
.riquadro-testo { padding: clamp(30px, 3.4vw, 44px) clamp(26px, 3.4vw, 44px) 0; position: relative; z-index: 1; }
.riquadro-testo .num { display: block; font-size: 13px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--testo-2); margin-bottom: 12px; }
.riquadro-testo h3 { font-size: clamp(1.7rem, 1.15rem + 1.6vw, 2.6rem); line-height: 1.06; letter-spacing: -.034em; }
.riquadro-testo p { margin: 14px 0 0; color: var(--testo-2); font-size: 17px; max-width: 30em; }
.riquadro-link { display: flex; flex-wrap: wrap; gap: 6px 22px; margin-top: 16px; }
.riquadro-media { margin-top: auto; padding: 32px 28px 0; display: flex; justify-content: center; align-items: flex-end; }
.riquadro-media.piena { padding: 28px 0 0; }
.riquadro-media.piena img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.riquadro.largo { grid-column: 1 / -1; flex-direction: row; align-items: stretch; min-height: 520px; }
.riquadro.largo .riquadro-testo { flex: 0 1 42%; align-self: center; padding: clamp(32px, 4vw, 64px); }
.riquadro.largo .riquadro-media { flex: 1 1 58%; margin-top: 0; padding: 0; }
.riquadro.largo .riquadro-media img { width: 100%; height: 100%; object-fit: cover; }
.riquadro.nero { background: #000; color: #f5f5f7; }
.riquadro.nero .riquadro-testo p { color: #a1a1a6; }
.riquadro.nero .num { color: #86868b; }
.riquadro.verde { background: var(--verde); color: #000; }
.riquadro.verde .num, .riquadro.verde .riquadro-testo p { color: rgba(0, 0, 0, .74); }
.riquadro.verde .scopri { color: #000; }
.riquadro.grigio { background: var(--grigio); }
@media (max-width: 900px) {
  .riquadri { grid-template-columns: 1fr; gap: 16px; }
  .riquadro, .riquadro.largo { flex-direction: column; min-height: 0; }
  .riquadro.largo .riquadro-testo { padding: 30px 26px 0; align-self: stretch; }
  .riquadro.largo .riquadro-media { padding: 28px 0 0; }
  .riquadro.largo .riquadro-media img { height: auto; aspect-ratio: 16 / 10; }
  .riquadro-media { padding-top: 30px; }
}
/* le tre fasi dell'asta, come una linea del tempo */
.fasi { list-style: none; margin: 0; padding: 0 0 40px; width: min(100%, 420px); display: grid; gap: 10px; counter-reset: f; }
.fasi li { counter-increment: f; display: flex; align-items: center; gap: 14px; padding: 16px 18px; border-radius: 16px; background: #1c1c1e; font-size: 16px; font-weight: 600; letter-spacing: -.012em; }
.fasi li::before { content: counter(f); flex: none; width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; background: var(--verde); color: #000; font-size: 14px; font-weight: 700; }
.fasi li small { display: block; font-size: 13px; font-weight: 500; color: #8e8e93; }
/* il modulo della stima, in piccolo */
.modulo-finto { width: min(100%, 400px); background: #fff; border-radius: 22px 22px 0 0; padding: 26px 24px 30px; display: grid; gap: 10px; box-shadow: 0 30px 60px -36px rgba(0, 0, 0, .45); }
.modulo-finto .capo { font-size: 11px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--testo-2); margin-bottom: 4px; }
.modulo-finto .campo { display: flex; justify-content: space-between; align-items: center; height: 46px; padding: 0 16px; border-radius: 12px; background: var(--grigio); font-size: 15px; color: var(--testo-2); }
.modulo-finto .campo b { color: var(--testo); font-weight: 600; }
.modulo-finto .invia { margin-top: 6px; height: 46px; border-radius: 999px; background: var(--testo); color: #fff; display: flex; align-items: center; justify-content: center; gap: 8px; font-size: 15px; font-weight: 600; }
.modulo-finto .invia i { width: 7px; height: 7px; border-radius: 50%; background: var(--verde); }
/* consulenza: le materie */
.materie { display: flex; flex-wrap: wrap; gap: 10px; padding: 0 0 44px; justify-content: center; max-width: 440px; }
.materie span { padding: 12px 18px; border-radius: 999px; background: #fff; box-shadow: 0 0 0 1px rgba(0, 0, 0, .07); font-size: 15px; font-weight: 600; letter-spacing: -.01em; }
.materie span.su { background: var(--testo); color: #fff; box-shadow: none; }

/* ============================================================ le sedi (striscia di schede con la foto vera dell'ufficio) */
.sede { width: clamp(270px, 30vw, 400px); display: block; color: var(--testo); }
.sede:hover { text-decoration: none; }
.sede-foto { display: block; position: relative; border-radius: 18px; overflow: hidden; background: var(--grigio-2); aspect-ratio: 4 / 3; }
.sede-foto img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s var(--uscita); }
@media (hover: hover) and (pointer: fine) { .sede:hover .sede-foto img { transform: scale(1.03); } }
.sede-foto.vuota { display: grid; place-items: center; background: var(--grigio); }
.sede-foto.vuota img { width: 34%; height: auto; object-fit: contain; opacity: .9; }
.sede-foto .presto { position: absolute; left: 12px; top: 12px; padding: 5px 11px; border-radius: 999px; background: var(--testo); color: #fff; font-size: 12px; font-weight: 600; }
.sede-testo { padding: 14px 4px 0; }
.sede-testo h3 { font-size: 21px; letter-spacing: -.024em; line-height: 1.2; }
.sede-testo p { margin: 3px 0 0; font-size: 14.5px; color: var(--testo-2); }
@media (max-width: 760px) { .sede { width: 78vw; } }

/* ============================================================ eventi (sezione nera con le foto vere) */
.eventi-griglia { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.evento { display: flex; flex-direction: column; border-radius: var(--r-medio); overflow: hidden; background: #1c1c1e; color: #f5f5f7; min-height: 100%; }
.evento:hover { text-decoration: none; }
.sez.nera a.evento, .evento h3 { color: inherit; }
.sez.nera a.evento { color: #f5f5f7; }
.evento-foto { aspect-ratio: 4 / 3; overflow: hidden; background: #2c2c2e; }
.evento-foto img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s var(--uscita); }
.evento-foto.intera img { object-fit: contain; background: #fff; }
@media (hover: hover) and (pointer: fine) { .evento:hover .evento-foto img { transform: scale(1.03); } }
.evento-testo { padding: 22px 24px 26px; display: grid; gap: 8px; flex: 1; align-content: start; }
.evento-testo .tipo { font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: #86868b; }
.evento-testo h3 { font-size: 22px; letter-spacing: -.024em; line-height: 1.2; }
.evento-testo p { margin: 0; color: #a1a1a6; font-size: 15.5px; line-height: 1.5; }
.evento-testo .scopri { margin-top: 6px; font-size: 16px; }
@media (max-width: 1000px) { .eventi-griglia { grid-template-columns: 1fr; } .evento { flex-direction: row; } .evento-foto { flex: 0 0 42%; aspect-ratio: auto; } }
@media (max-width: 620px) { .evento { flex-direction: column; } .evento-foto { aspect-ratio: 4 / 3; } }

/* ============================================================ la frase della missione (come su apple.com: grigio, la parte che conta in nero) */
.frase { font-size: clamp(1.75rem, 1.05rem + 2.6vw, 3.25rem); line-height: 1.12; letter-spacing: -.034em; font-weight: 700; color: var(--testo-3); max-width: 20em; margin: 0 auto; text-align: center; text-wrap: balance; }
.frase .hl, .frase strong { color: var(--testo); font-weight: inherit; }
.titoletti { list-style: none; margin: clamp(30px, 4vw, 44px) 0 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; }
.titoletti li { padding: 9px 18px; border-radius: 999px; background: var(--grigio); font-size: 15px; font-weight: 500; color: var(--testo); }
.titoletti li.su { background: var(--verde-velo); color: var(--verde-testo-2); }

/* ============================================================ le testimonianze */
.voci { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.voci li { display: flex; flex-direction: column; padding: 30px 28px 28px; border-radius: var(--r-medio); background: #fff; }
.voci .stelle { display: flex; gap: 3px; margin-bottom: 16px; }
.voci .stelle svg { width: 16px; height: 16px; fill: var(--verde); }
.voci blockquote { margin: 0 0 20px; font-size: 17px; line-height: 1.5; letter-spacing: -.012em; color: var(--testo); }
.voci footer { margin-top: auto; font-size: 14px; font-weight: 600; color: var(--testo-2); }
@media (max-width: 1000px) { .voci { grid-template-columns: 1fr; } }

/* ============================================================ la chiusura verde (come la sezione azzurra di nexoratlab.com) */
.chiusura-griglia { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 48px clamp(48px, 7vw, 120px); align-items: center; }
/* interlinea 1.08 e non .94: la «g» di «oggi» toccava «dei» (regola di Simone del 15/10/2026, errore n. 55) */
.chiusura-titolo { margin: 0 0 26px; font-size: clamp(2.6rem, .8rem + 6vw, 6.2rem); font-weight: 800; line-height: 1.08; letter-spacing: -.05em; color: #000; }
.chiusura-lead { max-width: 34em; font-size: 19px; line-height: 1.45; color: rgba(0, 0, 0, .8); margin-bottom: 26px; }
.recapiti { list-style: none; margin: 0; padding: 0; max-width: 560px; }
.recapiti li { padding: 15px 0; border-top: 1px solid rgba(0, 0, 0, .22); font-size: 16px; color: rgba(0, 0, 0, .8); }
.recapiti li:last-child { border-bottom: 1px solid rgba(0, 0, 0, .22); }
.recapiti a { color: #000; font-weight: 600; }
.recapiti .grande { font-size: clamp(1.4rem, 1rem + 1.4vw, 2.1rem); font-weight: 700; letter-spacing: -.03em; }
.chiusura-spillo { margin: 0 clamp(20px, 6vw, 110px) 0 0; width: clamp(160px, 18vw, 250px); }
.chiusura-spillo img { width: 100%; }
@media (max-width: 900px) { .chiusura-griglia { grid-template-columns: 1fr; } .chiusura-spillo { display: none; } }

/* ============================================================ PAGINE INTERNE — testa (fascia grigia come sulle pagine di Apple) */
.pagina-testa { background: var(--grigio); padding-block: clamp(56px, 7vw, 104px) clamp(56px, 7vw, 96px); }
.pagina-testa h1 { font-size: clamp(2.4rem, 1.2rem + 4.4vw, 4.9rem); line-height: 1.03; letter-spacing: -.042em; max-width: 15em; }
.pagina-testa .lead { margin-top: 22px; max-width: 36em; font-size: clamp(1.125rem, 1.02rem + .45vw, 1.375rem); line-height: 1.42; letter-spacing: -.017em; font-weight: 500; color: var(--testo-2); }
.pagina-testa .bottoni { margin-top: 28px; }
.briciole { list-style: none; margin: 0 0 26px; padding: 0; display: flex; flex-wrap: wrap; gap: 4px 8px; font-size: 14px; color: var(--testo-2); }
.briciole li + li::before { content: '›'; margin-right: 8px; color: var(--testo-3); }
.briciole a { color: var(--testo-2); }
.pagina-testa.con-foto { padding-bottom: 0; }
.pagina-testa .foto-testa { margin-top: clamp(40px, 5vw, 64px); border-radius: var(--r-grande) var(--r-grande) 0 0; overflow: hidden; aspect-ratio: 21 / 9; background: var(--grigio-2); }
.pagina-testa .foto-testa img { width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 760px) { .pagina-testa .foto-testa { aspect-ratio: 4 / 3; border-radius: var(--r-medio) var(--r-medio) 0 0; } }

/* testo a due colonne (titolo a sinistra, parole a destra) */
.due { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 32px clamp(40px, 7vw, 120px); align-items: start; }
.due h2 { font-size: clamp(2rem, 1.25rem + 2.8vw, 3.4rem); line-height: 1.06; letter-spacing: -.038em; }
.due .parole p { font-size: 19px; line-height: 1.55; color: #333336; letter-spacing: -.014em; }
.due .parole p.prima { font-size: clamp(1.2rem, 1.05rem + .5vw, 1.45rem); line-height: 1.45; font-weight: 500; color: var(--testo); }
@media (max-width: 900px) { .due { grid-template-columns: 1fr; } }
.titolo-sez { font-size: clamp(2rem, 1.25rem + 2.8vw, 3.6rem); line-height: 1.06; letter-spacing: -.038em; }

/* servizi: le quattro voci a schede */
.schede { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.scheda { display: flex; flex-direction: column; padding: clamp(28px, 3vw, 40px); border-radius: var(--r-medio); background: var(--grigio); min-height: 100%; }
.sez.grigia .scheda { background: #fff; }
.scheda .num { font-size: 13px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--verde-testo); margin-bottom: 18px; }
.scheda h3 { font-size: clamp(1.4rem, 1.15rem + .8vw, 1.9rem); line-height: 1.15; letter-spacing: -.028em; margin-bottom: 14px; }
.scheda p { color: var(--testo-2); font-size: 17px; line-height: 1.55; }
.scheda .scopri { margin-top: auto; padding-top: 18px; font-size: 16px; }
@media (max-width: 860px) { .schede { grid-template-columns: 1fr; } }
.valori { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.valori li { padding: 28px 26px 30px; border-radius: var(--r-medio); background: #fff; }
.sez:not(.grigia) .valori li { background: var(--grigio); }
.valori b { display: block; font-size: 19px; letter-spacing: -.02em; line-height: 1.25; margin-bottom: 10px; }
.valori b::before { content: ''; display: block; width: 9px; height: 9px; border-radius: 50%; background: var(--verde); margin-bottom: 18px; }
.valori p { margin: 0; color: var(--testo-2); font-size: 15.5px; line-height: 1.5; }
@media (max-width: 1000px) { .valori { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .valori { grid-template-columns: 1fr; } }

/* agenzie: schede delle sedi in griglia */
.sedi-griglia { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px 22px; }
.sedi-griglia .sede { width: auto; }
@media (max-width: 1000px) { .sedi-griglia { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 620px) { .sedi-griglia { grid-template-columns: 1fr; } }

/* agenzia: recapiti e squadra */
.recapiti-sede { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--filo); border-bottom: 1px solid var(--filo); }
.recapiti-sede div { padding: 26px 22px 24px 0; }
.recapiti-sede div + div { padding-left: 22px; border-left: 1px solid var(--filo); }
.recapiti-sede span { display: block; font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--testo-2); margin-bottom: 8px; }
.recapiti-sede b, .recapiti-sede a { font-size: 19px; font-weight: 600; letter-spacing: -.02em; color: var(--testo); }
@media (max-width: 760px) { .recapiti-sede { grid-template-columns: 1fr; } .recapiti-sede div + div { padding-left: 0; border-left: 0; border-top: 1px solid var(--filo); } }
.squadra { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 210px), 1fr)); gap: 26px 20px; }
.persona-foto { display: block; aspect-ratio: 4 / 5; border-radius: 18px; overflow: hidden; background: var(--grigio); }
.persona-foto img { width: 100%; height: 100%; object-fit: cover; }
.persona-foto.iniziali { display: grid; place-items: center; font-size: 44px; font-weight: 700; letter-spacing: -.03em; color: var(--testo-3); background: var(--grigio); }
.persona-foto.iniziali::after { content: ''; position: absolute; }
.squadra h3 { margin-top: 14px; font-size: 18px; letter-spacing: -.02em; line-height: 1.25; }
.squadra p { margin: 3px 0 0; font-size: 14.5px; color: var(--testo-2); line-height: 1.4; }
.sez.grigia .persona-foto.iniziali { background: #fff; }

/* eventi e mostre: elenchi con foto */
.elenco-eventi { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px 22px; }
.elenco-eventi li { display: flex; flex-direction: column; }
.elenco-eventi .foto { aspect-ratio: 4 / 3; border-radius: 18px; overflow: hidden; background: var(--grigio-2); }
.elenco-eventi .foto img { width: 100%; height: 100%; object-fit: cover; }
.elenco-eventi .foto.vuota { display: grid; place-items: center; }
.elenco-eventi .foto.vuota img { width: 30%; height: auto; object-fit: contain; }
.elenco-eventi .quando { margin-top: 14px; font-size: 13px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--testo-2); }
.elenco-eventi h3 { margin-top: 4px; font-size: 21px; letter-spacing: -.024em; line-height: 1.2; }
.elenco-eventi p { margin: 4px 0 0; font-size: 15px; color: var(--testo-2); }
@media (max-width: 1000px) { .elenco-eventi { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 620px) { .elenco-eventi { grid-template-columns: 1fr; } }
.opera { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 28px clamp(32px, 5vw, 72px); align-items: center; padding-block: clamp(28px, 4vw, 48px); border-top: 1px solid var(--filo); }
.opera:first-of-type { border-top: 0; }
.opera-foto { border-radius: 18px; overflow: hidden; background: var(--grigio); }
.opera-foto img { width: 100%; height: auto; }
.opera-foto.piccola { max-width: 360px; }
.opera .stato { display: inline-block; padding: 5px 12px; border-radius: 999px; font-size: 12px; font-weight: 600; letter-spacing: .02em; background: var(--verde-velo); color: var(--verde-testo-2); margin-bottom: 14px; }
.opera .stato.chiusa { background: var(--grigio-2); color: var(--testo-2); }
.opera h3 { font-size: clamp(1.6rem, 1.2rem + 1.2vw, 2.4rem); letter-spacing: -.032em; line-height: 1.1; }
.opera p { margin: 10px 0 0; color: var(--testo-2); font-size: 17px; }
@media (max-width: 760px) { .opera { grid-template-columns: 1fr; } }
.info-righe { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.info-righe li { padding: 26px 24px; border-radius: var(--r-medio); background: var(--grigio); }
.info-righe b { display: block; font-size: 18px; letter-spacing: -.02em; margin-bottom: 6px; }
.info-righe p { margin: 0; color: var(--testo-2); font-size: 15.5px; }
@media (max-width: 760px) { .info-righe { grid-template-columns: 1fr; } }

/* moduli (contatti, stima, candidature): si compongono in un'email, niente salvato sul server */
.modulo { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 16px; padding: clamp(24px, 3vw, 36px); border-radius: var(--r-grande); background: var(--grigio); }
.modulo .pieno { grid-column: 1 / -1; }
.modulo label { display: block; font-size: 14px; font-weight: 600; margin-bottom: 7px; color: var(--testo); }
.modulo label small { font-weight: 400; color: var(--testo-2); }
.modulo input, .modulo select, .modulo textarea { width: 100%; min-height: 50px; padding: 12px 16px; border: 1px solid var(--filo); border-radius: 14px; background: #fff; color: var(--testo); font-size: 17px; letter-spacing: -.01em; -webkit-appearance: none; appearance: none; }
.modulo select { background-image: linear-gradient(45deg, transparent 50%, var(--testo-2) 50%), linear-gradient(135deg, var(--testo-2) 50%, transparent 50%); background-position: calc(100% - 22px) 52%, calc(100% - 16px) 52%; background-size: 6px 6px; background-repeat: no-repeat; padding-right: 40px; }
.modulo textarea { min-height: 140px; resize: vertical; line-height: 1.45; }
.modulo input:focus, .modulo select:focus, .modulo textarea:focus { outline: none; border-color: var(--verde-testo); box-shadow: 0 0 0 3px rgba(3, 191, 97, .22); }
.modulo .consenso { display: flex; gap: 12px; align-items: flex-start; font-size: 14.5px; color: var(--testo-2); line-height: 1.45; }
.modulo .consenso input { width: 22px; height: 22px; min-height: 0; padding: 0; flex: none; margin-top: 1px; border-radius: 6px; accent-color: var(--verde-testo); -webkit-appearance: checkbox; appearance: auto; }
.modulo .nota { font-size: 14px; color: var(--testo-2); margin: 0; }
.modulo .esito { padding: 14px 16px; border-radius: 14px; background: var(--verde-velo); color: var(--verde-testo-2); font-weight: 500; font-size: 15px; }
.modulo button[type=submit] { justify-self: start; }
@media (max-width: 700px) { .modulo { grid-template-columns: 1fr; } }
.uffici { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.uffici li { padding: 20px 22px; border-radius: var(--r-piccolo); background: var(--grigio); }
.uffici b { display: block; font-size: 16px; letter-spacing: -.015em; }
.uffici span { display: block; font-size: 14px; color: var(--testo-2); margin: 2px 0 8px; }
.uffici a { font-size: 15px; font-weight: 500; overflow-wrap: anywhere; }
@media (max-width: 900px) { .uffici { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .uffici { grid-template-columns: 1fr; } }

/* domande frequenti */
.domande details { border-top: 1px solid var(--filo); max-width: 900px; }
.domande details:last-of-type { border-bottom: 1px solid var(--filo); }
.domande summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 24px; padding: 22px 0; font-size: 19px; font-weight: 600; letter-spacing: -.016em; line-height: 1.35; }
.domande summary::-webkit-details-marker { display: none; }
.domande summary::after { content: ''; flex: none; width: 10px; height: 10px; border-right: 2px solid var(--testo-2); border-bottom: 2px solid var(--testo-2); transform: translateY(-3px) rotate(45deg); transition: transform .25s var(--uscita); }
.domande details[open] summary::after { transform: translateY(2px) rotate(-135deg); }
.domande .risposta { padding: 0 0 24px; color: var(--testo-2); font-size: 17px; max-width: 46em; }

/* testi legali */
.testo-legale { max-width: 760px; }
.testo-legale h2 { font-size: 24px; letter-spacing: -.022em; line-height: 1.25; margin: 44px 0 12px; }
.testo-legale p, .testo-legale li { color: #333336; font-size: 17px; line-height: 1.6; }
.testo-legale p { margin: 0 0 14px; }
.testo-legale ul { margin: 0 0 14px 1.2em; padding: 0; }
.testo-legale li { margin-bottom: 8px; }
.testo-legale a { text-decoration: underline; text-underline-offset: .18em; }
.testo-legale b { color: var(--testo); font-weight: 600; }

/* la fascia scura di chiusura delle pagine interne */
.cta { background: #000; color: #f5f5f7; padding-block: clamp(84px, 10vw, 140px); }
.cta h2 { font-size: clamp(2.2rem, 1.2rem + 3.6vw, 4.4rem); line-height: 1.04; letter-spacing: -.042em; max-width: 15em; color: #f5f5f7; }
.cta p { margin-top: 18px; color: #a1a1a6; max-width: 36em; font-size: 19px; }

/* ============================================================ IMMOBILI — la ricerca con la mappa (formato immobiliare.it, nello stile del sito) */
.filtri { position: sticky; top: var(--nav); z-index: 50; background: rgba(255, 255, 255, .9); -webkit-backdrop-filter: saturate(180%) blur(20px); backdrop-filter: saturate(180%) blur(20px); border-bottom: 1px solid var(--filo-tenue); }
.filtri form { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; padding-block: 10px; }
.filtri select, .filtri input[type=search] { min-height: 40px; padding: 8px 32px 8px 14px; border: 0; border-radius: 999px; background-color: var(--grigio); color: var(--testo); font-size: 14px; font-weight: 500; -webkit-appearance: none; appearance: none; background-image: linear-gradient(45deg, transparent 50%, var(--testo-2) 50%), linear-gradient(135deg, var(--testo-2) 50%, transparent 50%); background-position: calc(100% - 17px) 54%, calc(100% - 12px) 54%; background-size: 5px 5px; background-repeat: no-repeat; max-width: 210px; }
.filtri input[type=search] { background-image: none; padding-right: 14px; width: 200px; }
.filtri select:focus, .filtri input:focus { outline: none; box-shadow: 0 0 0 2px var(--verde-testo); }
.filtri button { min-height: 40px; padding: 8px 18px; border: 0; border-radius: 999px; background: var(--testo); color: #fff; font-size: 14px; font-weight: 600; cursor: pointer; }
.filtri .azzera { font-size: 14px; color: var(--testo-2); padding: 8px 6px; }
@media (max-width: 900px) {
  .filtri form { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin-inline: calc(-1 * var(--margine)); padding-inline: var(--margine); }
  .filtri form::-webkit-scrollbar { display: none; }
  .filtri select, .filtri input[type=search], .filtri button { flex: none; }
}
.cerca-shell { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); min-height: calc(100svh - var(--nav) - 61px); }
.lista-colonna { padding: 28px var(--margine) 60px max(var(--margine), calc((100vw - 1600px) / 2)); }
.lista-testa { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; margin-bottom: 22px; }
.lista-testa h1 { font-size: clamp(1.6rem, 1.2rem + 1.2vw, 2.3rem); letter-spacing: -.034em; line-height: 1.1; }
.lista-testa .conta { margin-top: 6px; font-size: 14.5px; color: var(--testo-2); }
.lista-testa select { min-height: 38px; padding: 6px 30px 6px 12px; border: 1px solid var(--filo); border-radius: 999px; background: #fff; font-size: 13.5px; -webkit-appearance: none; appearance: none; background-image: linear-gradient(45deg, transparent 50%, var(--testo-2) 50%), linear-gradient(135deg, var(--testo-2) 50%, transparent 50%); background-position: calc(100% - 15px) 54%, calc(100% - 10px) 54%; background-size: 5px 5px; background-repeat: no-repeat; flex: none; }
.lista { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 20px; }
.lista .immobile.acceso .immobile-foto { box-shadow: 0 0 0 3px var(--verde); }
.lista .vuoto { grid-column: 1 / -1; padding: 40px 0; color: var(--testo-2); }
.lista .scheletro .immobile-foto { animation: pulsa 1.4s ease-in-out infinite; }
.lista .scheletro .riga { height: 14px; border-radius: 7px; background: var(--grigio-2); margin-top: 12px; width: 70%; animation: pulsa 1.4s ease-in-out infinite; }
@keyframes pulsa { 50% { opacity: .55; } }
.pagine { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; margin-top: 34px; }
.pagine button { min-width: 40px; height: 40px; padding: 0 12px; border: 0; border-radius: 999px; background: var(--grigio); font-size: 14px; font-weight: 600; cursor: pointer; }
.pagine button.attivo { background: var(--testo); color: #fff; }
.pagine span { align-self: center; color: var(--testo-3); }
.mappa-colonna { position: sticky; top: calc(var(--nav) + 61px); height: calc(100svh - var(--nav) - 61px); background: var(--grigio); }
#mappa { position: absolute; inset: 0; }
.mappa-opzioni { position: absolute; z-index: 500; left: 50%; top: 14px; transform: translateX(-50%); display: flex; align-items: center; gap: 8px; padding: 8px 14px; border-radius: 999px; background: rgba(255, 255, 255, .94); box-shadow: 0 6px 20px -6px rgba(0, 0, 0, .3); font-size: 13.5px; font-weight: 500; cursor: pointer; white-space: nowrap; -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.mappa-opzioni input { accent-color: var(--verde-testo); width: 16px; height: 16px; }
.cambia-vista { display: none; position: fixed; z-index: 60; left: 50%; bottom: calc(18px + env(safe-area-inset-bottom)); transform: translateX(-50%); min-height: 46px; padding: 10px 22px; border: 0; border-radius: 999px; background: var(--testo); color: #fff; font-size: 15px; font-weight: 600; box-shadow: 0 10px 30px -8px rgba(0, 0, 0, .5); cursor: pointer; }
@media (max-width: 1000px) {
  .cerca-shell { grid-template-columns: 1fr; }
  .mappa-colonna { display: none; position: fixed; inset: calc(var(--nav) + 61px) 0 0 0; height: auto; z-index: 40; }
  .cerca-shell.vista-mappa .mappa-colonna { display: block; }
  .cerca-shell.vista-mappa .lista-colonna { display: none; }
  .cambia-vista { display: inline-flex; align-items: center; gap: 8px; }
  .lista-colonna { padding-inline: var(--margine); }
}
@media (max-width: 640px) { .lista { grid-template-columns: 1fr; } }
/* la carta: grigia e quieta, come le mappe di Apple; i segnaposto col prezzo nei colori del marchio */
/* html davanti: il foglio di Leaflet arriva dopo questo e la sua regola (#ddd, Helvetica) vinceva */
html .leaflet-container { font-family: var(--font); background: #eceef0; }
/* «Disegna la zona» (20/10/2026, sorgenti/lazo.js): i pulsanti sulla carta, la guida in alto, il disegno */
.lz-comandi { display: flex; flex-direction: column; gap: 8px; border: 0 !important; background: none !important; box-shadow: none !important; }
.lz-comandi button { display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 0 14px 0 12px; border: 0; border-radius: 999px; background: #fff; color: var(--testo);
  font: 600 14.5px/1 var(--font); letter-spacing: -.01em; cursor: pointer; white-space: nowrap; box-shadow: 0 0 0 1px rgba(0, 0, 0, .08), 0 8px 20px -8px rgba(0, 0, 0, .4); }
.lz-comandi button:hover { background: #f5f5f7; }
.lz-comandi button:focus-visible { outline: 3px solid rgba(3, 191, 97, .45); outline-offset: 2px; }
.lz-comandi svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; flex: none; }
.lz-comandi .lz-togli { color: #a52a20; }
.lz-guida { position: absolute; z-index: 1000; left: 50%; top: 12px; transform: translateX(-50%); width: max-content; max-width: calc(100% - 24px); display: flex; flex-wrap: wrap;
  align-items: center; justify-content: center; gap: 8px 12px; padding: 10px 12px 10px 16px; border-radius: 18px; background: rgba(29, 29, 31, .92); color: #fff;
  font-size: 14.5px; font-weight: 500; line-height: 1.35; letter-spacing: -.01em; text-align: center; box-shadow: 0 10px 30px -10px rgba(0, 0, 0, .5); }
.lz-guida[hidden] { display: none; }
.lz-guida button { min-height: 36px; padding: 0 16px; border: 0; border-radius: 999px; background: var(--verde); color: #000; font: 600 14px/1 var(--font); cursor: pointer; }
.lz-guida button.lz-secondario { background: rgba(255, 255, 255, .16); color: #fff; }
.lz-attivo .leaflet-marker-pane, .lz-attivo .leaflet-popup-pane, .lz-attivo .leaflet-shadow-pane { pointer-events: none; opacity: .55; }
.lz-attivo .leaflet-marker-pane .leaflet-interactive, .lz-attivo .leaflet-popup-pane * { pointer-events: none !important; }
.lz-attivo .leaflet-marker-pane .lz-primo, .lz-attivo path.lz-primo { pointer-events: auto; }
.lz-attivo.leaflet-container { cursor: crosshair; }
.lz-attivo.lz-sul-primo.leaflet-container, .lz-attivo path.lz-primo { cursor: pointer; }
.lz-tela { position: absolute; inset: 0; z-index: 900; touch-action: none; cursor: crosshair; }
.mappa-colonna:has(.lz-attivo) .mappa-opzioni { display: none; }
.lz-attivo .leaflet-control-zoom { visibility: hidden; }
.leaflet-bottom.leaflet-left .lz-comandi { margin: 0 0 20px 16px; }
@media (max-width: 1000px) { .mappa-colonna .leaflet-bottom.leaflet-left .lz-comandi { margin-bottom: calc(84px + env(safe-area-inset-bottom)); } }
/* nella home: la guida sta nella parte di carta libera dal riquadro della ricerca (a destra sul computer, in basso sul
   telefono a tutto schermo) */
@media (min-width: 761px) { .mh-mappa .lz-guida { left: auto; right: 62px; transform: none; max-width: calc(100% - 600px); min-width: 300px; } }
@media (max-width: 760px) {
  .mh-mappa .leaflet-bottom.leaflet-left .lz-comandi { margin: 0 0 86px 12px; }
  .mh-mappa .lz-guida { top: auto; bottom: calc(96px + env(safe-area-inset-bottom)); }
}
@media (max-width: 640px) { .lz-guida { top: 10px; font-size: 14px; } }
.leaflet-tile-pane { filter: grayscale(1) contrast(.92) brightness(1.06); }
/* Leaflet 1.9 mette mix-blend-mode: plus-lighter sulle tessere contro le righe fra una tessera e l'altra; insieme al
   filtro grigio qui sopra le righe le fa invece comparire (15/10/2026, misurate in Chromium: 42 livelli piu' chiare
   delle vicine a 2x, 2 livelli con «normal») */
html .leaflet-container img.leaflet-tile { mix-blend-mode: normal; }
.leaflet-control-attribution { font-size: 10.5px; }
.pin-prezzo { transform: translate(-50%, -100%); display: inline-flex; align-items: center; gap: 5px; padding: 5px 10px; border-radius: 999px; background: #fff; color: var(--testo); font: 600 12.5px/1 var(--font); letter-spacing: -.01em; white-space: nowrap; box-shadow: 0 0 0 1px rgba(0, 0, 0, .1), 0 4px 12px -4px rgba(0, 0, 0, .35); transition: transform .16s var(--uscita), background-color .16s; cursor: pointer; }
.pin-prezzo::before { content: ''; width: 7px; height: 7px; border-radius: 50%; background: var(--verde); }
.pin-prezzo.affitto::before { background: var(--testo); }
.pin-prezzo.acceso, .pin-prezzo:hover { background: var(--testo); color: #fff; transform: translate(-50%, -100%) scale(1.08); z-index: 1000; }
.pin-prezzo.acceso::before, .pin-prezzo:hover::before { background: var(--verde); }
.grappolo { display: grid; place-items: center; border-radius: 50%; background: var(--verde); color: #000; font: 700 13px/1 var(--font); box-shadow: 0 0 0 5px rgba(3, 191, 97, .25); }
.pin-sede { transform: translate(-50%, -96%); width: 34px; }
.pin-sede img { width: 34px; height: auto; filter: drop-shadow(0 3px 5px rgba(0, 0, 0, .35)); }
.leaflet-popup-content-wrapper { border-radius: 16px; padding: 0; overflow: hidden; }
.leaflet-popup-content { margin: 0; width: 250px !important; }
.mappa-popup { display: block; color: var(--testo); }
.mappa-popup:hover { text-decoration: none; }
.mappa-popup img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.mappa-popup .corpo { padding: 12px 14px 14px; display: grid; gap: 3px; }
.mappa-popup b { font-size: 16px; letter-spacing: -.02em; }
.mappa-popup span { font-size: 13px; color: var(--testo-2); line-height: 1.35; }
.mappa-popup .vai { color: var(--verde-testo); font-weight: 600; margin-top: 4px; }

/* ============================================================ IMMOBILE — la scheda (galleria come quella di un prodotto Apple) */
.scheda-imm { padding-block: 26px clamp(80px, 9vw, 130px); }
.galleria { display: grid; grid-template-columns: 2fr 1fr; grid-template-rows: 1fr 1fr; gap: 8px; height: clamp(280px, 52vw, 600px); border-radius: var(--r-grande); overflow: hidden; }
.galleria button { position: relative; display: block; padding: 0; border: 0; background: var(--grigio-2); cursor: zoom-in; overflow: hidden; }
.galleria button:first-child { grid-row: 1 / -1; }
.galleria img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s var(--uscita); }
@media (hover: hover) and (pointer: fine) { .galleria button:hover img { transform: scale(1.02); } }
.galleria .ancora { position: absolute; right: 14px; bottom: 14px; padding: 8px 14px; border-radius: 999px; background: rgba(255, 255, 255, .92); color: var(--testo); font-size: 14px; font-weight: 600; -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
.galleria.una { grid-template-columns: 1fr; grid-template-rows: 1fr; }
.galleria.due { grid-template-rows: 1fr; grid-template-columns: 1fr 1fr; }
.galleria.due button:first-child { grid-row: auto; }
.galleria .ancora.solo-telefono { display: none; }
@media (max-width: 760px) { .galleria, .galleria.due { grid-template-columns: 1fr; grid-template-rows: 1fr; height: 72vw; border-radius: var(--r-medio); } .galleria button:not(:first-child) { display: none; } .galleria .ancora.solo-telefono { display: block; } }
.scheda-griglia { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 40px clamp(40px, 6vw, 88px); margin-top: clamp(30px, 4vw, 48px); align-items: start; }
.scheda-testa h1 { font-size: clamp(2rem, 1.3rem + 2.2vw, 3.2rem); line-height: 1.06; letter-spacing: -.036em; }
.scheda-testa .luogo { margin-top: 12px; font-size: 18px; color: var(--testo-2); }
.scheda-dati { list-style: none; margin: 28px 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 150px), 1fr)); gap: 10px; }
.scheda-dati li { padding: 16px 18px; border-radius: var(--r-piccolo); background: var(--grigio); }
.scheda-dati span { display: block; font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--testo-2); }
.scheda-dati b { display: block; margin-top: 4px; font-size: 17px; letter-spacing: -.015em; font-weight: 600; overflow-wrap: anywhere; }
.scheda-desc { margin-top: clamp(34px, 4vw, 52px); }
.scheda-desc h2 { font-size: clamp(1.5rem, 1.2rem + .9vw, 2rem); letter-spacing: -.03em; margin-bottom: 16px; }
.scheda-desc .testo p, .scheda-desc .testo li { font-size: 18px; line-height: 1.62; letter-spacing: -.012em; color: #333336; }
.scheda-desc .testo ul { padding-left: 1.2em; }
.contatto-imm { position: sticky; top: calc(var(--nav) + 20px); padding: 28px 26px; border-radius: var(--r-grande); background: var(--grigio); display: grid; gap: 12px; }
.contatto-imm .prezzo { font-size: clamp(1.9rem, 1.5rem + 1vw, 2.5rem); font-weight: 700; letter-spacing: -.045em; line-height: 1.05; }
.contatto-imm .prezzo small { font-size: 16px; font-weight: 500; color: var(--testo-2); letter-spacing: -.01em; }
.contatto-imm .rif { font-size: 14px; color: var(--testo-2); }
.contatto-imm .pillola { width: 100%; }
.contatto-imm .nota { font-size: 13.5px; color: var(--testo-2); margin: 4px 0 0; line-height: 1.45; }
/* l'agente di riferimento e «Chiedi informazioni» (20/10/2026): il modulo si apre sotto il pulsante */
.agente-imm { display: grid; gap: 2px; padding: 14px 16px; border-radius: 16px; background: #fff; }
.agente-imm .agente-ruolo { font-size: 13.5px; color: var(--testo-2); }
.agente-imm .agente-nome { font-size: 19px; font-weight: 650; letter-spacing: -.02em; line-height: 1.3; }
/* col modulo aperto il riquadro non resta fermo in alto: sui portatili bassi il pulsante «Invia» finirebbe fuori schermo */
.contatto-imm:has(.richiesta[open]) { position: static; }
.richiesta > summary { list-style: none; width: 100%; }
.richiesta > summary::-webkit-details-marker { display: none; }
.richiesta[open] > summary { margin-bottom: 12px; }
.modulo-richiesta { display: grid; gap: 10px; }
.modulo-richiesta label { display: grid; gap: 5px; font-size: 14px; font-weight: 600; color: var(--testo); }
.modulo-richiesta input, .modulo-richiesta textarea { width: 100%; min-height: 46px; padding: 10px 14px; border: 1px solid var(--filo); border-radius: 12px; background: #fff; color: var(--testo); font: inherit; font-size: 16px; font-weight: 400; -webkit-appearance: none; appearance: none; }
.modulo-richiesta textarea { min-height: 96px; resize: vertical; line-height: 1.45; }
.modulo-richiesta input:focus, .modulo-richiesta textarea:focus { outline: none; border-color: var(--verde-testo); box-shadow: 0 0 0 3px rgba(3, 191, 97, .22); }
.modulo-richiesta .consenso { display: flex; gap: 10px; align-items: flex-start; font-weight: 400; font-size: 13.5px; color: var(--testo-2); line-height: 1.45; }
.modulo-richiesta .consenso input { width: 20px; height: 20px; min-height: 0; padding: 0; flex: none; margin-top: 1px; accent-color: var(--verde-testo); -webkit-appearance: checkbox; appearance: auto; }
.modulo-richiesta .trappola { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.modulo-richiesta .esito { margin: 0; padding: 12px 14px; border-radius: 12px; font-size: 14.5px; font-weight: 500; line-height: 1.45; }
.modulo-richiesta .esito.ok { background: var(--verde-velo); color: var(--verde-testo-2); }
.modulo-richiesta .esito.ko { background: #fdecea; color: #a52a20; }
@media (max-width: 980px) { .scheda-griglia { grid-template-columns: 1fr; } .contatto-imm { position: static; } }
.simili { margin-top: clamp(70px, 8vw, 110px); }
.simili-griglia { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px 20px; }
@media (max-width: 900px) { .simili-griglia { grid-template-columns: 1fr; } }
/* la galleria a tutto schermo */
.lightbox { position: fixed; inset: 0; z-index: 400; background: rgba(0, 0, 0, .94); display: none; align-items: center; justify-content: center; padding: 60px 70px; }
.lightbox.aperta { display: flex; }
.lightbox img { max-width: 100%; max-height: 100%; object-fit: contain; border-radius: 10px; }
.lightbox button { position: absolute; width: 46px; height: 46px; border: 0; border-radius: 50%; background: rgba(255, 255, 255, .14); color: #fff; font-size: 22px; line-height: 1; cursor: pointer; display: grid; place-items: center; }
.lightbox button:hover { background: rgba(255, 255, 255, .26); }
.lightbox .chiudi { top: calc(16px + env(safe-area-inset-top)); right: 16px; }
.lightbox .prima { left: 16px; top: 50%; transform: translateY(-50%); }
.lightbox .dopo { right: 16px; top: 50%; transform: translateY(-50%); }
.lightbox .conta { position: absolute; bottom: calc(18px + env(safe-area-inset-bottom)); left: 50%; transform: translateX(-50%); color: #a1a1a6; font-size: 14px; }
.lightbox svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
@media (max-width: 640px) { .lightbox { padding: 64px 10px; } .lightbox .prima, .lightbox .dopo { top: auto; bottom: calc(10px + env(safe-area-inset-bottom)); transform: none; } }

/* ============================================================ piede (come Apple: grigio, note, colonne) */
.piede { background: var(--grigio); color: var(--testo-2); font-size: 12px; line-height: 1.5; padding: 36px 0 calc(28px + env(safe-area-inset-bottom)); }
.piede-capo { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding-bottom: 20px; border-bottom: 1px solid var(--filo); }
.piede-capo img { height: 24px; width: auto; }
.piede-capo .social { display: flex; gap: 8px; }
.piede-capo .social a { width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; background: #fff; color: var(--testo); }
.piede-capo .social a:hover { background: var(--grigio-2); }
.piede-capo .social svg { width: 16px; height: 16px; fill: currentColor; }
.piede-note { padding: 18px 0; border-bottom: 1px solid var(--filo); }
.piede-note p { margin: 0 0 6px; max-width: 80em; }
.piede-note a { color: var(--testo); text-decoration: underline; text-underline-offset: .18em; }
.piede-colonne { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; padding: 24px 0; }
.piede h2 { font-size: 12px; font-weight: 600; color: var(--testo); margin: 0 0 10px; letter-spacing: -.004em; }
.piede ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.piede ul a { color: var(--testo-2); }
.piede ul a:hover { color: var(--testo); }
.copy-bar { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 10px 24px; padding-top: 16px; border-top: 1px solid var(--filo); }
.copy-bar p { margin: 0; }
.copy-bar .legali { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 22px; }
.copy-bar .legali a { color: var(--testo); }
.credit { color: currentColor !important; opacity: .92; white-space: nowrap; }
.credit:hover { opacity: 1; }
.credit .cuore { color: #FF0031; }
@media (max-width: 760px) { .piede-colonne { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.piede-colonne > * { min-width: 0; }
.piede a { overflow-wrap: anywhere; }
.uffici li, .recapiti-sede div, .info-righe li { min-width: 0; overflow-wrap: anywhere; }

/* ============================================================ comparse (solo con JS e movimento)
   sito.js nasconde solo quello che e' ancora sotto lo schermo: senza script si vede tutto. */
.entra { transition: opacity .8s var(--uscita), transform 1s var(--uscita); }
.entra.attende { opacity: 0; transform: translateY(18px); }

/* ============================================================ apertura
   Nello stile delle aperture Nexorat (Ocean, Grossi, nexoratlab.com): il marchio vero si compone su un fondo
   pieno, il bianco del marchio. Lo spillo cade e si pianta nel suo posto, la base fa da ombra, il punto
   si accende; poi la scritta esce da dietro lo spillo e il punto della «i» cade come un secondo spillo. */
.ap-on body { overflow: hidden; }
.ap-on body::after { content: ''; position: fixed; inset: 0; z-index: 9998; background: #fff; }
#ap { position: fixed; inset: 0; z-index: 9999; background: #fff; color: var(--testo); display: grid; place-items: center; cursor: pointer; -webkit-user-select: none; user-select: none; overflow: hidden; }
.ap-palco { display: grid; justify-items: center; transform: translateY(-2vh); }
.ap-marchio { width: min(84vw, 760px); height: auto; overflow: visible; }
.ap-piede { position: absolute; left: 0; right: 0; bottom: calc(22px + env(safe-area-inset-bottom)); display: grid; justify-items: center; gap: 8px; }
.ap-salta { margin: 0; font-size: 13px; color: #6e6e73; opacity: 0; letter-spacing: .01em; }
.ap-firma { display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 4px 14px; border-radius: 999px; color: var(--testo); font-weight: 600; font-size: 15px; text-decoration: none; opacity: 0; }
.ap-firma img { width: auto; height: 20px; }
@media (hover: hover) { .ap-firma:hover { background: var(--grigio); text-decoration: underline; } }

/* ============================================================ movimento ridotto */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; scroll-behavior: auto !important; }
  .entra.attende { opacity: 1; transform: none; }
}

/* ============================================================ pagine interne: pezzi vari */
.due .t-intro { margin-top: 18px; }
.missione-sotto { max-width: 40em; margin: 26px auto 0; }
.sotto-404 { margin: 18px auto 0; max-width: 30em; }
.pieno-largo { max-width: none; }
/* chi siamo: i numeri veri del database (una fila coi fili, come la Depretto e nexoratlab.com) */
.numeri-ip { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--filo); border-bottom: 1px solid var(--filo); }
.numeri-ip li { padding: 34px 22px 30px; text-align: center; border-right: 1px solid var(--filo); }
.numeri-ip li:last-child { border-right: 0; }
.numeri-ip .v { display: block; font-size: clamp(2.1rem, 1.5rem + 1.8vw, 3.3rem); font-weight: 700; letter-spacing: -.045em; line-height: 1; color: var(--testo); margin-bottom: 12px; }
.numeri-ip .k { display: block; font-size: 14px; color: var(--testo-2); line-height: 1.4; }
@media (max-width: 900px) { .numeri-ip { grid-template-columns: repeat(2, minmax(0, 1fr)); } .numeri-ip li:nth-child(2) { border-right: 0; } .numeri-ip li:nth-child(-n+2) { border-bottom: 1px solid var(--filo); } }
/* servizi: indice in alto e un blocco per servizio, foto e testo alternati */
.indice-servizi { position: sticky; top: var(--nav); z-index: 40; background: rgba(255, 255, 255, .9); -webkit-backdrop-filter: saturate(180%) blur(20px); backdrop-filter: saturate(180%) blur(20px); border-bottom: 1px solid var(--filo-tenue); max-width: none; }
.indice-servizi ul { list-style: none; margin: 0 auto; padding: 10px 0; display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; max-width: var(--largo); }
.indice-servizi ul::-webkit-scrollbar { display: none; }
.indice-servizi a { display: block; padding: 7px 14px; border-radius: 999px; background: var(--grigio); color: var(--testo); font-size: 14px; font-weight: 500; white-space: nowrap; }
.indice-servizi a:hover { background: var(--grigio-2); text-decoration: none; }
.servizio { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 40px clamp(40px, 6vw, 96px); align-items: center; }
.servizio.al-contrario > :first-child { order: 2; }
.servizio h2 { font-size: clamp(2rem, 1.25rem + 2.6vw, 3.4rem); line-height: 1.06; letter-spacing: -.038em; margin-bottom: 20px; }
.servizio-testo p { font-size: 19px; line-height: 1.55; color: #333336; letter-spacing: -.014em; }
.servizio-media { border-radius: var(--r-grande); overflow: hidden; background: var(--grigio-2); }
.servizio-media img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.servizio-media.nero { background: #000; display: grid; place-items: center; padding: 48px 28px 8px; aspect-ratio: 4 / 3; }
.servizio-media.grigio { background: #fff; display: grid; place-items: center; padding: 40px 24px 0; aspect-ratio: 4 / 3; }
.sez:not(.grigia) .servizio-media.grigio { background: var(--grigio); }
@media (max-width: 900px) { .servizio { grid-template-columns: 1fr; } .servizio.al-contrario > :first-child { order: 0; } }
/* eventi su fondo chiaro */
.eventi-griglia.chiari .evento { background: var(--grigio); color: var(--testo); }
.eventi-griglia.chiari .evento-foto { background: var(--grigio-2); }
.eventi-griglia.chiari .evento-testo .tipo { color: var(--testo-2); }
.eventi-griglia.chiari .evento-testo p { color: var(--testo-2); }
.eventi-griglia.chiari .scopri { color: var(--verde-testo); }
.opera-foto.vuota-sponsor { display: grid; place-items: center; aspect-ratio: 16 / 10; background: var(--grigio); }
.opera-foto.vuota-sponsor img { width: 60%; height: auto; }

/* ============================================================ gli assistenti (15/10/2026): la chat della ricerca sul sito
   (sorgenti/assistente.js) e l'aiuto del pannello (sorgenti/aiuto.js), stesso disegno. Bolle come i messaggi di Apple:
   grigie quelle dell'assistente, nere le tue. Sul telefono la chat prende lo schermo visibile (--as-alto e --as-su le
   mette lo script seguendo la tastiera); sul computer e' una finestra in basso a destra. */
.as-apri { position: fixed; z-index: 120; right: max(16px, env(safe-area-inset-right)); bottom: max(16px, env(safe-area-inset-bottom)); display: inline-flex; align-items: center; gap: 9px; min-height: 50px; padding: 0 20px 0 15px; border: 0; border-radius: 999px; background: var(--testo); color: #fff; font: 600 15px/1 var(--font); letter-spacing: -.01em; box-shadow: 0 14px 34px -12px rgba(0, 0, 0, .55); cursor: pointer; transition: transform .16s var(--uscita), opacity .25s var(--morbida), translate .3s var(--uscita), background-color .2s; }
.as-apri svg { width: 21px; height: 21px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linejoin: round; stroke-linecap: round; flex: none; }
.as-apri::after { content: ''; position: absolute; left: 31px; top: 13px; width: 7px; height: 7px; border-radius: 50%; background: var(--verde); box-shadow: 0 0 0 2px var(--testo); }
.as-apri:hover { background: #000; }
.as-apri:active { transform: scale(.96); }
html.as-sopra-mappa .as-apri, html.as-aperto .as-apri { opacity: 0; translate: 0 14px; pointer-events: none; }
body.cms-edit .as-apri, body.cms-edit .as-finestra { display: none !important; }
.as-finestra { position: fixed; z-index: 220; right: 20px; bottom: 20px; width: min(410px, calc(100vw - 40px)); height: min(680px, calc(100dvh - 40px)); display: flex; flex-direction: column; background: #fff; color: var(--testo); border-radius: 24px; box-shadow: 0 0 0 1px rgba(0, 0, 0, .06), 0 30px 80px -24px rgba(0, 0, 0, .5); overflow: hidden; }
.as-testa { display: flex; align-items: center; gap: 12px; padding: 14px 14px 12px 16px; border-bottom: 1px solid var(--filo-tenue); }
.as-spillo { width: 38px; height: 38px; border-radius: 50%; background: var(--grigio); display: grid; place-items: center; flex: none; }
.as-spillo img { width: 20px; height: 20px; }
.as-titoli { flex: 1; min-width: 0; }
.as-titoli h2 { font-size: 16px; line-height: 1.25; letter-spacing: -.015em; }
.as-titoli p { margin: 1px 0 0; font-size: 12.5px; line-height: 1.35; color: var(--testo-2); }
.as-chiudi { width: 38px; height: 38px; flex: none; border: 0; border-radius: 50%; background: var(--grigio); color: var(--testo); display: grid; place-items: center; cursor: pointer; }
.as-chiudi:hover { background: var(--grigio-2); }
.as-chiudi svg, .as-filtro svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; }
.as-messaggi { flex: 1; min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: 16px 14px 12px; display: flex; flex-direction: column; gap: 10px; }
.as-msg { max-width: 88%; padding: 10px 14px; border-radius: 18px; font-size: 15px; line-height: 1.45; letter-spacing: -.01em; overflow-wrap: anywhere; }
.as-lui { align-self: flex-start; background: var(--grigio); border-bottom-left-radius: 6px; }
.as-tu { align-self: flex-end; background: var(--testo); color: #fff; border-bottom-right-radius: 6px; }
.as-attesa { display: inline-flex; align-items: center; gap: 5px; padding: 15px 16px; }
.as-attesa i { width: 7px; height: 7px; border-radius: 50%; background: var(--testo-3); animation: as-punto 1.2s ease-in-out infinite; }
.as-attesa i:nth-of-type(2) { animation-delay: .15s; }
.as-attesa i:nth-of-type(3) { animation-delay: .3s; }
@keyframes as-punto { 0%, 60%, 100% { opacity: .35; translate: 0 0; } 30% { opacity: 1; translate: 0 -3px; } }
.as-suggerimenti, .as-filtri, .as-contatti { display: flex; flex-wrap: wrap; gap: 7px; }
.as-chip { display: inline-flex; align-items: center; min-height: 36px; padding: 7px 13px; border: 1px solid var(--filo); border-radius: 999px; background: #fff; color: var(--testo); font: 500 14px/1.25 var(--font); letter-spacing: -.01em; text-align: left; cursor: pointer; transition: background-color .2s; }
.as-chip:hover { background: var(--grigio); text-decoration: none; }
.as-filtro { display: inline-flex; align-items: center; gap: 6px; min-height: 32px; padding: 5px 9px 5px 12px; border: 0; border-radius: 999px; background: var(--verde-velo); color: var(--verde-testo-2); font: 600 13px/1.2 var(--font); cursor: pointer; }
.as-filtro:hover { background: #d9f2e5; }
.as-filtro svg { width: 12px; height: 12px; }
.as-risultati { display: grid; gap: 10px; }
.as-case { display: grid; gap: 8px; }
.as-casa { display: grid; grid-template-columns: 112px minmax(0, 1fr); gap: 12px; padding: 8px; border: 1px solid var(--filo-tenue); border-radius: 16px; background: #fff; color: var(--testo); transition: background-color .2s; }
.as-casa:hover { background: var(--grigio); text-decoration: none; }
.as-casa-foto { position: relative; align-self: start; border-radius: 11px; overflow: hidden; background: var(--grigio-2); aspect-ratio: 4 / 3; }
.as-casa-foto img { width: 100%; height: 100%; object-fit: cover; }
.as-casa-contratto { position: absolute; left: 6px; top: 6px; padding: 3px 7px; border-radius: 999px; background: rgba(255, 255, 255, .92); color: var(--testo); font-size: 10.5px; font-weight: 600; line-height: 1.2; }
.as-casa-contratto.affitto { background: rgba(0, 0, 0, .78); color: #fff; }
.as-casa-testo { display: grid; align-content: start; gap: 2px; min-width: 0; padding-top: 1px; }
.as-casa-prezzo { font-size: 16px; font-weight: 700; letter-spacing: -.02em; line-height: 1.3; }
.as-casa-titolo { font-size: 13.5px; font-weight: 500; line-height: 1.32; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.as-casa-luogo, .as-casa-dati { font-size: 12.5px; line-height: 1.35; color: var(--testo-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.as-altre { justify-self: start; min-height: 36px; padding: 7px 15px; border: 0; border-radius: 999px; background: var(--grigio); color: var(--testo); font: 600 14px/1 var(--font); cursor: pointer; }
.as-altre:hover { background: var(--grigio-2); }
.as-scrivi { display: flex; align-items: flex-end; gap: 8px; padding: 10px 12px 8px; border-top: 1px solid var(--filo-tenue); }
.as-scrivi textarea { flex: 1; min-width: 0; max-height: 120px; resize: none; border: 0; border-radius: 21px; background: var(--grigio); color: var(--testo); padding: 11px 15px; font: 400 16px/1.35 var(--font); letter-spacing: -.01em; outline: none; }
.as-scrivi textarea:focus-visible { box-shadow: 0 0 0 2px var(--verde-testo); }
.as-invia { width: 42px; height: 42px; flex: none; border: 0; border-radius: 50%; background: var(--testo); color: #fff; display: grid; place-items: center; cursor: pointer; }
.as-invia svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.as-invia:disabled { opacity: .45; cursor: default; }
.as-nota { margin: 0; padding: 0 16px 10px; font-size: 11.5px; line-height: 1.5; color: var(--testo-3); text-align: center; }
.as-nota a { color: inherit; text-decoration: underline; text-underline-offset: .18em; }
.as-guida p { margin: 0 0 .55em; }
.as-guida p:last-child { margin-bottom: 0; }
.as-guida ol, .as-guida ul { margin: .2em 0 .55em; padding-left: 1.3em; }
.as-guida li { margin: .2em 0; }
/* nella home: l'invito dentro la scheda della ricerca, sopra la mappa */
.mh-chiedi { display: inline-flex; align-items: center; gap: 7px; margin-top: 12px; padding: 4px 0; border: 0; background: none; color: var(--verde-testo); font: 500 15px/1.3 var(--font); letter-spacing: -.012em; cursor: pointer; text-align: left; }
.mh-chiedi svg { width: 18px; height: 18px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linejoin: round; }
.mh-chiedi:hover { text-decoration: underline; text-underline-offset: .18em; }
.intera .mh-chiedi { display: none; }
@media (max-width: 640px) {
  .as-apri { width: 56px; height: 56px; min-height: 0; padding: 0; justify-content: center; }
  .as-apri::after { left: 30px; top: 15px; }
  .as-apri-testo { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  .as-finestra { inset: auto 0 auto 0; top: var(--as-su, 0px); width: auto; height: var(--as-alto, 100dvh); border-radius: 0; box-shadow: none; }
  html.as-aperto, html.as-aperto body { overflow: hidden; }
  .as-testa { padding-top: max(12px, env(safe-area-inset-top)); }
  .as-scrivi { padding-bottom: max(10px, env(safe-area-inset-bottom)); }
  .mh-chiedi { margin-top: 9px; font-size: 14.5px; }
}
@media (prefers-reduced-motion: reduce) { .as-attesa i { animation: none; opacity: .6; } }

/* ============================================================ piccole utilita' */
.spazio-sopra { margin-top: clamp(48px, 6vw, 80px); }
.spazio-sopra-piccolo { margin-top: clamp(24px, 3vw, 36px); }
.alta-404 { min-height: calc(70svh - var(--nav)); display: grid; align-content: center; }
.tutti { margin-top: 30px; text-align: center; }
.nascosto { display: none !important; }

/* Portale Immobilplace, 26/10/2026. La ricerca è il centro della prima schermata;
   contenuti istituzionali e mappa condividono la stessa identità del marchio. */
.ip-icona { width: 22px; height: 22px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.nav-portale .nav-dentro { max-width: 1600px; gap: 24px; }
.nav-portale .nav-marchio { display: flex; align-items: center; gap: 8px; font-size: 20px; line-height: 1.2; letter-spacing: -.045em; font-weight: 750; color: var(--testo); }
.nav-portale .nav-marchio:hover { text-decoration: none; }
.nav-portale .nav-marchio img { width: 30px; height: 30px; object-fit: contain; }
.nav-portale .nav-voci a { min-height: 44px; display: flex; align-items: center; padding-inline: 13px; font-size: 14px; opacity: 1; }
.nav-portale .nav-dentro > nav { margin-left: 20px; }
.nav-personale { display: flex; align-items: center; gap: 12px; margin-left: auto; }
.nav-personale a { min-height: 44px; display: inline-flex; align-items: center; gap: 8px; color: var(--testo); font-size: 14px; font-weight: 550; white-space: nowrap; border-radius: 8px; padding: 8px 10px; }
.nav-personale a:hover { background: var(--grigio); text-decoration: none; }
.nav-personale .nav-accesso { border: 1px solid var(--filo); }
.nav-personale b { display: grid; place-items: center; min-width: 20px; height: 20px; padding: 0 5px; border-radius: 20px; background: var(--verde-velo); color: var(--verde-testo); font-size: 12px; }
.nav.nav-portale::before, body.nav-scura:not(.menu-aperto) .nav.nav-portale::before { background: #fff; -webkit-backdrop-filter: none; backdrop-filter: none; }
body.nav-scura:not(.menu-aperto) .nav-portale .nav-marchio .su-chiaro { display: block; }
body.nav-scura:not(.menu-aperto) .nav-portale .nav-marchio .su-scuro { display: none; }
body.nav-scura:not(.menu-aperto) .nav-portale .nav-voci a, body.nav-scura:not(.menu-aperto) .nav-portale .nav-menu { color: var(--testo); }
body.nav-scura:not(.menu-aperto) .nav.nav-portale::after { background: var(--filo); }
.portale-home { padding: 28px var(--margine) 0; max-width: calc(1120px + 2 * var(--margine)); margin-inline: auto; }
.portale-home .mh-quadro { height: auto; background: transparent; overflow: visible; border-radius: 0; }
.portale-home .mh-pannello { position: relative; inset: auto; width: 100%; max-width: none; padding: 32px 48px 28px; border-radius: 30px; background: #edf6f0; box-shadow: none; text-align: center; }
.portale-brand { display: grid; justify-items: center; }
.portale-brand img { width: 290px; height: auto; }
.portale-home .mh-pannello h1 { font-size: clamp(1.3rem, 1rem + 1vw, 1.9rem); line-height: 1.25; font-weight: 650; letter-spacing: -.025em; margin-top: 16px; }
.portale-home .mh-sotto { display: block; font-size: 15px; font-weight: 400; line-height: 1.5; margin: 5px 0 0; color: #526459; }
.portale-home .portale-cerca { width: 100%; max-width: 950px; margin: 24px auto 0; }
.portale-intenti { display: flex; align-items: center; justify-content: center; gap: 10px; margin-bottom: 14px; }
.portale-intenti > a, .portale-intenti .intento > span { display: flex; min-height: 44px; align-items: center; justify-content: center; padding: 8px 16px; color: #34463b; font-size: 16px; font-weight: 550; border-bottom: 3px solid transparent; border-radius: 7px 7px 0 0; cursor: pointer; }
.portale-intenti > a:hover { background: rgba(255,255,255,.6); text-decoration: none; }
.portale-intenti .intento { position: relative; }
.portale-intenti .intento input { position: absolute; inset: 0; opacity: 0; margin: 0; cursor: pointer; }
.portale-intenti .intento input:checked + span { border-bottom-color: var(--verde-testo); color: var(--verde-testo); font-weight: 750; }
.portale-intenti .intento input:focus-visible + span { outline: 2px solid var(--verde-testo); outline-offset: 2px; }
.portale-intenti .intento-tutti > span { font-size: 14px; }
.portale-barra { display: flex; align-items: center; gap: 0; min-height: 76px; padding: 7px; border: 1px solid var(--filo); border-radius: 12px; background: #fff; box-shadow: 0 6px 20px rgba(27,64,41,.04); text-align: left; }
.portale-luogo { display: flex; align-items: center; gap: 13px; min-width: 0; flex: 1; padding: 0 18px; }
.portale-luogo .ip-icona { color: var(--verde-testo); }
.portale-luogo > div { flex: 1; min-width: 0; }
.portale-barra label { display: block; font-size: 12px; line-height: 1.5; font-weight: 600; color: var(--testo-2); }
.portale-luogo input { width: 100%; border: 0; padding: 3px 0; min-height: 30px; font-size: 16px; background: transparent; color: var(--testo); border-radius: 3px; }
.portale-luogo input::placeholder { color: #647369; opacity: 1; }
.portale-tipologia { width: 212px; min-width: 0; border-left: 1px solid var(--filo); padding: 0 18px; }
.portale-tipologia select { width: 100%; min-height: 30px; border: 0; padding: 3px 18px 3px 0; font-size: 15px; background-color: transparent; color: var(--testo); }
.portale-barra .portale-filtri { display: inline-flex; align-items: center; gap: 8px; min-height: 54px; padding: 10px 18px; border: 0; border-left: 1px solid var(--filo); background: #fff; color: var(--testo); font-size: 15px; font-weight: 550; cursor: pointer; }
.portale-cerca-bottone { display: inline-flex; align-items: center; justify-content: center; gap: 9px; min-height: 54px; padding: 12px 26px; border: 0; border-radius: 8px; background: var(--verde-testo); color: #fff; font: 650 16px/1.4 var(--font); cursor: pointer; }
.portale-cerca-bottone:hover { background: var(--verde-testo-2); }
.portale-home .mh-chiedi { justify-content: center; margin-top: 16px; font-size: 14px; line-height: 1.5; }
.portale-home .mh-chiedi .ip-icona { width: 19px; height: 19px; }
.portale-scorciatoie { display: flex; justify-content: center; align-items: flex-start; gap: 40px; margin-top: 24px; }
.portale-scorciatoie a { display: grid; justify-items: center; gap: 7px; min-width: 112px; color: #34463b; font-size: 13px; font-weight: 500; }
.portale-scorciatoie a > svg { width: 42px; height: 42px; padding: 10px; border-radius: 50%; background: #fff; color: var(--verde-testo); }
.portale-mappa-testa { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 38px 0 18px; }
.portale-mappa-testa h2 { font-size: clamp(1.25rem, 1.05rem + .6vw, 1.6rem); line-height: 1.3; font-weight: 650; letter-spacing: -.02em; }
.portale-mappa-testa p { margin: 5px 0 0; color: var(--testo-2); font-size: 14px; line-height: 1.5; }
.portale-mappa-testa .mh-intera { display: grid; width: 44px; height: 44px; box-shadow: none; border: 1px solid var(--filo); border-radius: 10px; }
.portale-home .mh-mappa { position: relative; height: 430px; border-radius: 20px; overflow: hidden; }
.portale-home .mh-lista { bottom: 24px; font-size: 15px; min-height: 48px; }
.portale-home .mh-avviso { top: auto; bottom: 160px; translate: -50% 0; }
.portale-home .mh-quadro.intera { position: fixed; inset: 0; z-index: 200; border-radius: 0; background: #eceef0; }
.portale-home .intera .mh-mappa { position: absolute; inset: 0; height: auto; border-radius: 0; }
.portale-home .intera .mh-pannello { position: absolute; left: 12px; top: calc(12px + env(safe-area-inset-top)); width: auto; max-width: calc(100% - 84px); padding: 3px 8px; border-radius: 12px; z-index: 2; background: #fff; }
.portale-home .intera .portale-brand, .portale-home .intera .portale-barra, .portale-home .intera .portale-scorciatoie, .portale-home .intera .portale-mappa-testa, .portale-home .intera .mh-chiedi, .portale-home .intera .mh-sotto { display: none; }
.portale-home .intera .portale-cerca, .portale-home .intera .portale-intenti { margin: 0; }
.portale-home .intera .portale-intenti { gap: 0; }
.portale-home .intera .portale-intenti > a { display: none; }
.portale-home .intera .portale-intenti .intento > span { font-size: 14px; min-height: 44px; padding: 8px 12px; }
.portale-frequenti { max-width: calc(1120px + 2 * var(--margine)); padding-top: 38px; padding-bottom: 38px; }
.portale-frequenti h2 { font-size: 21px; line-height: 1.35; font-weight: 650; letter-spacing: -.02em; margin-bottom: 16px; }
.portale-frequenti > div { display: flex; flex-wrap: wrap; gap: 10px; }
.portale-frequenti a { display: flex; align-items: center; min-height: 44px; padding: 10px 15px; background: #fff; border: 1px solid var(--filo); border-radius: 8px; font-size: 14px; font-weight: 500; color: var(--testo); }
.portale-frequenti a:hover { border-color: var(--verde-testo); color: var(--verde-testo); text-decoration: none; }
.portale-home ~ .sez { padding-block: clamp(48px, 5vw, 76px); }
.portale-home ~ .sez .testa { margin-bottom: 30px; }
.portale-home ~ .sez .testa-riga { margin-bottom: 30px; }
.portale-home ~ .sez .t-grande { font-size: clamp(1.8rem, 1.3rem + 1.6vw, 2.6rem); }
.portale-home ~ .sez .t-intro { font-size: 17px; line-height: 1.55; }
.riquadro-testo h3, .frase, .chiusura-titolo, .pagina-testa h1, .due h2, .titolo-sez, .opera h3, .cta h2, .lista-testa h1, .scheda-testa h1, .contatto-imm .prezzo, .servizio h2 { line-height: 1.18; }
.ip-dialogo { width: min(620px, calc(100% - 32px)); max-height: calc(100dvh - 40px); border: 1px solid var(--filo); border-radius: 20px; padding: 0; color: var(--testo); box-shadow: 0 20px 80px rgba(0,0,0,.2); overflow: auto; overscroll-behavior: contain; }
.ip-dialogo::backdrop { background: rgba(19,32,24,.45); }
.ip-dialogo-testa { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 22px 24px; border-bottom: 1px solid var(--filo); }
.ip-dialogo-testa h2 { font-size: 21px; line-height: 1.3; font-weight: 650; letter-spacing: -.02em; }
.ip-dialogo-testa button { display: grid; place-items: center; width: 44px; height: 44px; padding: 10px; flex: none; border: 0; border-radius: 50%; background: var(--grigio); color: var(--testo); cursor: pointer; }
.ip-campi-filtri { display: grid; grid-template-columns: 1fr 1fr; gap: 22px 16px; padding: 24px; }
.ip-campi-filtri > div { min-width: 0; }
.ip-campi-filtri label { display: block; font-size: 14px; line-height: 1.5; font-weight: 600; margin-bottom: 7px; }
.ip-campi-filtri input, .ip-campi-filtri select { width: 100%; min-height: 48px; border: 1px solid #b8c4bd; border-radius: 8px; background: #fff; padding: 10px 12px; font-size: 16px; }
.ip-campi-filtri .ip-filtro-spunta { display: flex; align-items: center; gap: 10px; grid-column: 1 / -1; font-weight: 450; margin: 0; min-height: 44px; }
.ip-campi-filtri .ip-filtro-spunta input { width: 22px; height: 22px; min-height: 0; flex: none; accent-color: var(--verde-testo); }
.ip-campi-filtri .ip-filtri-nota { grid-column: 1 / -1; margin: 0; font-size: 13px; line-height: 1.55; color: var(--testo-2); }
.ip-dialogo-piede { display: flex; align-items: center; justify-content: space-between; gap: 16px; border-top: 1px solid var(--filo); padding: 18px 24px; }
.ip-dialogo-piede > button:not(.portale-cerca-bottone) { min-height: 44px; padding: 8px 0; border: 0; background: none; color: var(--testo); font-size: 14px; font-weight: 550; cursor: pointer; }
.ip-dialogo-piede .azzera { font-size: 14px; color: var(--testo-2); }
.pagina-ricerca { background: var(--grigio); }
.filtri-portale { background: #fff; -webkit-backdrop-filter: none; backdrop-filter: none; }
.filtri-portale form { display: flex; flex-wrap: nowrap; align-items: center; gap: 12px; padding-block: 12px; }
.filtri-portale .f-campo { min-width: 0; flex: 1; }
.filtri-portale .f-campo > label { display: block; color: var(--testo-2); font-size: 11px; line-height: 1.5; margin-bottom: 3px; font-weight: 550; }
.filtri-portale select, .filtri-portale input[type=search] { width: 100%; min-height: 44px; max-width: none; border: 1px solid var(--filo); border-radius: 8px; padding-left: 12px; background-color: #fff; font-size: 14px; }
.filtri-portale .f-parola { flex: 1.4; }
.filtri-portale button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; margin-top: 20px; border-radius: 8px; padding-inline: 16px; flex: none; }
.filtri-portale .f-apri { background: #fff; color: var(--testo); border: 1px solid var(--filo); }
.filtri-portale .f-cerca { background: var(--verde-testo); color: #fff; }
.portale-risultati { grid-template-columns: minmax(0, 1.12fr) minmax(0, 1fr); min-height: calc(100svh - var(--nav) - 89px); }
.portale-risultati .lista-colonna { min-width: 0; padding: 28px 24px 60px; }
.portale-risultati .lista-testa { align-items: flex-start; margin-bottom: 16px; }
.portale-risultati .lista-testa h1 { font-size: clamp(1.4rem, 1.05rem + 1vw, 1.9rem); line-height: 1.25; font-weight: 650; }
.ip-salva-ricerca { display: inline-flex; align-items: center; justify-content: center; gap: 7px; min-height: 44px; padding: 8px 12px; border: 1px solid #b6c8bd; border-radius: 8px; background: #fff; color: var(--verde-testo); font-size: 13px; font-weight: 600; white-space: nowrap; cursor: pointer; }
.ip-salva-ricerca .ip-icona { width: 18px; height: 18px; }
.lista-strumenti { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-bottom: 16px; margin-bottom: 16px; border-bottom: 1px solid var(--filo); }
.ip-viste { display: flex; align-items: center; gap: 3px; padding: 3px; border: 1px solid var(--filo); border-radius: 8px; background: #fff; }
.ip-viste button { min-height: 38px; border: 0; border-radius: 5px; padding: 7px 10px; background: #fff; font-size: 12px; cursor: pointer; color: var(--testo-2); }
.ip-viste button[aria-pressed=true] { background: var(--verde-velo); color: var(--verde-testo); font-weight: 600; }
.lista-ordine { display: flex; align-items: center; gap: 7px; font-size: 12px; color: var(--testo-2); }
.lista-ordine select { min-height: 44px; max-width: 190px; padding: 7px 8px; border: 0; border-radius: 7px; background: transparent; color: var(--testo); font-size: 13px; }
.portale-risultati .lista { grid-template-columns: 1fr; gap: 18px; }
.portale-risultati .lista .immobile { display: grid; grid-template-columns: minmax(0, .88fr) minmax(0, 1fr); border: 1px solid var(--filo); border-radius: 12px; background: #fff; overflow: hidden; min-height: 216px; }
.portale-risultati .lista .immobile-foto { border-radius: 0; height: 100%; aspect-ratio: auto; min-height: 216px; }
.portale-risultati .lista .immobile-testo { padding: 22px 18px 20px; gap: 10px; align-content: start; }
.portale-risultati .lista .immobile-prezzo { font-size: 23px; line-height: 1.3; font-variant-numeric: tabular-nums; }
.portale-risultati .lista .immobile-titolo { font-size: 16px; font-weight: 600; line-height: 1.4; -webkit-line-clamp: 3; color: var(--verde-testo); }
.portale-risultati .lista .immobile-luogo, .portale-risultati .lista .immobile-dati { font-size: 13px; line-height: 1.5; }
.portale-risultati .mappa-colonna { top: calc(var(--nav) + 89px); height: calc(100svh - var(--nav) - 89px); border-left: 1px solid var(--filo); }
.portale-risultati .mappa-opzioni { max-width: calc(100% - 28px); width: max-content; white-space: normal; font-size: 12px; min-height: 44px; line-height: 1.4; border-radius: 8px; }
.ip-filtri-attivi { margin-bottom: 18px; }
.portale-risultati.solo-lista { grid-template-columns: minmax(0, 1fr); max-width: 1248px; margin-inline: auto; }
.portale-risultati.solo-lista .mappa-colonna { display: none; }
.portale-risultati.solo-lista .lista { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.pagina-raccolta .raccolta-testa { padding-top: 38px; padding-bottom: 24px; }
.raccolta-testa h1 { font-size: clamp(2rem, 1.3rem + 2vw, 3rem); line-height: 1.2; }
.raccolta-contenuto { padding-top: 18px; min-height: 45svh; }
.ip-memoria-nota { max-width: 65em; padding: 16px 20px; border-radius: 10px; background: var(--verde-velo); font-size: 14px; line-height: 1.6; color: #344c3e; margin-bottom: 28px; }
.agenzie-ricerca { width: min(100%, 560px); margin-bottom: 32px; }
.agenzie-ricerca > label { display: block; font-size: 15px; line-height: 1.5; font-weight: 550; margin-bottom: 9px; }
.agenzie-ricerca > div { display: flex; align-items: center; gap: 12px; min-height: 52px; padding: 0 16px; border: 1px solid #b8c4bd; border-radius: 9px; background: #fff; }
.agenzie-ricerca input { flex: 1; min-width: 0; min-height: 50px; border: 0; padding: 10px 0; background: transparent; font-size: 16px; }
.agenzie-ricerca > p { margin: 9px 0 0; color: var(--testo-2); font-size: 13px; line-height: 1.5; }
.agenzie-affiliazione { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-top: 44px; padding: 26px 30px; border-radius: 16px; background: var(--verde-velo); }
.agenzie-affiliazione h2 { font-size: 23px; line-height: 1.3; letter-spacing: -.02em; }
.agenzie-affiliazione p { margin: 9px 0 0; font-size: 15px; line-height: 1.6; }
.agenzie-affiliazione .pillola { flex: none; }
.franchising-griglia { display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, .65fr); gap: 60px; align-items: start; }
.franchising-testo { max-width: 45em; }
.franchising-testo h2 { font-size: 26px; line-height: 1.3; letter-spacing: -.02em; margin-bottom: 16px; }
.franchising-testo h2:not(:first-child) { margin-top: 34px; }
.franchising-testo p, .franchising-testo li { font-size: 17px; line-height: 1.65; color: #34463b; }
.franchising-testo ul { padding-left: 22px; margin-bottom: 22px; }
.franchising-testo li { padding-left: 4px; margin-bottom: 12px; }
.franchising-contatto { padding: 28px; border: 1px solid var(--filo); border-radius: 18px; background: var(--grigio); }
.franchising-contatto h2 { font-size: 25px; line-height: 1.3; letter-spacing: -.02em; }
.franchising-contatto p { margin-top: 13px; font-size: 15px; line-height: 1.6; color: var(--testo-2); }
.franchising-contatto .pillola { width: 100%; font-size: 15px; }
.franchising-email { display: block; padding: 14px 0 0; font-size: 15px; line-height: 1.6; text-align: center; overflow-wrap: anywhere; }
@media (max-width: 800px) {
  .franchising-griglia { grid-template-columns: 1fr; gap: 32px; }
  .agenzie-affiliazione { align-items: flex-start; flex-direction: column; padding: 24px; }
}
@media (max-width: 1200px) {
  .nav-portale .nav-dentro { gap: 12px; }
  .nav-portale .nav-dentro > nav { margin-left: 0; }
  .nav-portale .nav-voci a { padding-inline: 10px; }
  .nav-personale { gap: 4px; }
  .nav-personale a { padding-inline: 8px; }
  .portale-risultati .lista-colonna { padding-inline: 18px; }
  .portale-risultati .lista .immobile { grid-template-columns: minmax(0, .8fr) minmax(0, 1fr); }
  .portale-risultati .lista .immobile-testo { padding: 18px 14px; gap: 8px; }
}
@media (max-width: 1080px) {
  .nav-portale .nav-dentro > nav { margin-left: 0; }
  .nav-portale .nav-menu { margin-left: 0; }
  .nav-portale .nav-voci a { min-height: 50px; padding: 8px 0; font-size: 24px; }
  .nav-portale .nav-voci .solo-menu { margin-top: 0; }
  .nav-portale .nav-voci .solo-menu a { font-size: 19px; font-weight: 500; min-height: 44px; }
}
@media (max-width: 1000px) {
  .portale-home .mh-pannello { padding: 28px 24px 26px; }
  .portale-tipologia { width: 190px; }
  .portale-intenti { gap: 5px; }
  .portale-intenti > a, .portale-intenti .intento > span { padding-inline: 14px; }
  .portale-risultati { grid-template-columns: 1fr; }
  .portale-risultati .lista { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .portale-risultati .lista .immobile { display: flex; min-height: 0; }
  .portale-risultati .lista .immobile-foto { min-height: 0; height: auto; aspect-ratio: 4/3; }
  .portale-risultati .mappa-colonna { top: calc(var(--nav) + 89px); height: auto; }
  .ip-viste { display: none; }
  .filtri-portale form { overflow: visible; flex-wrap: nowrap; margin: 0; padding-inline: 0; }
  .filtri-portale .f-campo { flex: 1; }
  .filtri-portale .f-parola { display: none; }
  .filtri-portale select { font-size: 13px; min-width: 0; }
  .filtri-portale button { padding-inline: 12px; }
  .pagina-ricerca .cambia-vista { z-index: 80; min-height: 48px; background: var(--verde-testo); }
}
@media (max-width: 760px) {
  :root { --nav: 64px; --margine: max(16px, env(safe-area-inset-left), env(safe-area-inset-right)); }
  .nav-portale .nav-marchio { font-size: 18px; }
  .nav-portale .nav-marchio img { width: 28px; height: 28px; }
  .nav-personale .nav-accesso { display: none; }
  .nav-personale a { font-size: 13px; padding-inline: 5px; gap: 5px; }
  .nav-portale .nav-dentro { gap: 6px; }
  .portale-home { padding-top: 18px; }
  .portale-home .mh-pannello { padding: 26px 18px 24px; border-radius: 20px; }
  .portale-brand img { width: 236px; }
  .portale-home .mh-pannello h1 { font-size: 21px; line-height: 1.3; margin-top: 16px; }
  .portale-home .mh-sotto { max-width: 30em; margin: 8px auto 0; font-size: 14px; }
  .portale-home .portale-cerca { margin-top: 22px; }
  .portale-intenti { justify-content: flex-start; gap: 2px; overflow-x: auto; margin-inline: -6px; padding-inline: 6px; scrollbar-width: thin; }
  .portale-intenti > a, .portale-intenti .intento > span { padding: 8px 12px; font-size: 15px; white-space: nowrap; }
  .portale-barra { display: grid; grid-template-columns: minmax(0, 1fr) auto; padding: 8px; border-radius: 12px; gap: 8px; }
  .portale-luogo { grid-column: 1/-1; min-height: 60px; padding: 4px 8px 10px; border-bottom: 1px solid var(--filo); }
  .portale-tipologia { width: auto; padding: 0 8px; border: 0; }
  .portale-barra .portale-filtri { min-height: 48px; padding: 8px 12px; border: 1px solid var(--filo); border-radius: 7px; }
  .portale-cerca-bottone { min-height: 50px; }
  .portale-barra > .portale-cerca-bottone { grid-column: 1/-1; }
  .portale-home .mh-chiedi { font-size: 13px; max-width: 100%; margin-top: 16px; }
  .portale-scorciatoie { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 8px; margin-top: 24px; }
  .portale-scorciatoie a { min-width: 0; font-size: 11px; line-height: 1.4; gap: 8px; }
  .portale-scorciatoie a > svg { width: 40px; height: 40px; padding: 9px; }
  .portale-mappa-testa { padding-top: 30px; }
  .portale-mappa-testa p { max-width: 32em; font-size: 13px; }
  .portale-home .mh-mappa { height: 350px; border-radius: 16px; }
  .portale-home .mh-lista { bottom: 18px; font-size: 14px; min-height: 44px; white-space: nowrap; }
  .portale-home .intera .portale-intenti { overflow: visible; padding: 0; gap: 0; }
  .portale-home .intera .portale-intenti .intento > span { padding-inline: 9px; }
  .portale-frequenti { padding-top: 30px; padding-bottom: 30px; }
  .portale-frequenti h2 { font-size: 19px; }
  .portale-frequenti a { padding-inline: 12px; font-size: 13px; }
  .filtri-portale form { gap: 8px; flex-wrap: wrap; padding-block: 10px; }
  .filtri-portale .f-campo { flex: 1 1 25%; }
  .filtri-portale .f-campo:nth-child(2) { display: none; }
  .filtri-portale .f-campo:nth-child(4) { flex: 1 1 25%; }
  .filtri-portale button { margin-top: 0; }
  .filtri-portale .f-apri { flex: 1; }
  .filtri-portale .f-cerca { flex: 1; }
  .filtri-portale select { padding-left: 8px; padding-right: 24px; background-position: calc(100% - 14px) 54%, calc(100% - 9px) 54%; }
  .portale-risultati .mappa-colonna { top: calc(var(--nav) + 142px); }
  .portale-risultati .lista-colonna { padding: 22px var(--margine) 84px; }
  .portale-risultati .lista-testa { gap: 12px; }
  .portale-risultati .lista-testa h1 { font-size: 22px; }
  .portale-risultati .lista-testa .conta { font-size: 13px; line-height: 1.5; }
  .ip-salva-ricerca { font-size: 12px; padding: 8px 10px; }
  .ip-salva-ricerca .ip-icona { width: 16px; }
  .lista-strumenti { justify-content: flex-end; margin-bottom: 16px; padding-bottom: 12px; }
  .lista-ordine select { max-width: 180px; }
  .ip-campi-filtri { padding: 20px; gap: 18px 12px; }
  .ip-dialogo-testa { padding: 16px 20px; }
  .ip-dialogo-testa h2 { font-size: 19px; }
  .ip-dialogo-piede { padding: 16px 20px; gap: 12px; }
  .ip-dialogo-piede .portale-cerca-bottone { padding-inline: 16px; font-size: 14px; }
  .pagina-ricerca .as-apri { bottom: calc(78px + env(safe-area-inset-bottom)); }
}
@media (max-width: 560px) {
  .portale-risultati .lista, .portale-risultati.solo-lista .lista { grid-template-columns: 1fr; }
  .portale-risultati .lista .immobile-testo { padding: 18px; }
  .portale-risultati .lista .immobile-prezzo { font-size: 24px; }
  .portale-risultati .lista .immobile-titolo { font-size: 17px; }
  .portale-risultati .lista .immobile-luogo, .portale-risultati .lista .immobile-dati { font-size: 14px; }
}
@media (max-width: 360px) {
  .nav-personale .nav-preferiti > span { display: none; }
  .portale-home .mh-pannello { padding-inline: 12px; }
  .portale-home .mh-pannello h1 { font-size: 19px; }
  .ip-campi-filtri { grid-template-columns: 1fr; }
  .ip-dialogo-piede { align-items: stretch; flex-direction: column-reverse; }
  .ip-dialogo-piede > button, .ip-dialogo-piede > a { text-align: center; }
}
