/* Aste Pubbliche — foglio unico, nessun framework, nessun font esterno */
:root{--bg:#fff;--fg:#1d1d1f;--mut:#5f6368;--line:#e6e6e6;--acc:#0b5bd3;--acc2:#8b1e2d;--soft:#f6f7f9;--ok:#1b7f3b;--att:#9a5b00;--r:10px}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--fg);font:16px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif}
a{color:var(--acc)}
img{max-width:100%}
.wrap{max-width:1080px;margin:0 auto;padding:0 16px}
.sr{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.mut{color:var(--mut);font-weight:400;font-size:14px}
.piccolo{font-size:13px}
s{color:var(--mut);font-weight:400}

/* header */
.top{border-bottom:1px solid var(--line);background:#fff;position:sticky;top:0;z-index:5}
.top .wrap{display:flex;align-items:center;justify-content:space-between;min-height:56px;flex-wrap:nowrap;gap:8px}
.logo{display:flex;align-items:center;gap:8px;font-weight:700;font-size:19px;color:var(--fg);text-decoration:none;white-space:nowrap}
.logo svg{width:26px;height:26px;flex:0 0 auto}
.top nav{display:flex;align-items:center;white-space:nowrap}
.top nav a{display:inline-block;padding:16px 8px;margin-left:4px;text-decoration:none;color:var(--fg);font-weight:500}
.top nav a:hover{color:var(--acc)}

/* hero e testi */
.hero{padding:28px 0 12px}
.hero h1{font-size:30px;margin:0 0 8px;line-height:1.2}
.hero p{max-width:760px;margin:0 0 8px}
.hero .cta-riga{margin-top:12px}
.testo{max-width:760px}
.testo h1{font-size:30px;line-height:1.2;margin:28px 0 10px}
.testo h2{font-size:21px;margin:28px 0 8px}
.testo h3{font-size:17px;margin:20px 0 6px}
.testo p,.testo li{line-height:1.6}
.testo ul,.testo ol{padding-left:22px}
.testo .aggiornato{font-size:13px;color:var(--mut)}
.testo table{border-collapse:collapse;width:100%;margin:10px 0}
.testo table th,.testo table td{text-align:left;padding:7px 8px;border-bottom:1px solid var(--line);vertical-align:top;font-size:15px}
.testo table th{color:var(--mut);font-weight:500;width:34%}
.incompleto{background:#fff5d6;border-radius:4px;padding:0 4px}

/* bottoni */
.btn,.filtri button,button.cta,a.cta{font:inherit;font-size:16px;display:inline-block;padding:11px 18px;border:0;border-radius:8px;background:var(--acc);color:#fff;font-weight:600;cursor:pointer;text-decoration:none;text-align:center;line-height:1.25}
.btn.secondario{background:#fff;color:var(--acc);border:1px solid var(--acc)}
.btn.wa,a.wa{background:#1f8a4d;color:#fff}
button.cta,a.cta.largo{width:100%;padding:13px 16px;background:var(--acc);font-size:17px}
button.mini{font:inherit;font-size:13px;padding:5px 10px;border:0;border-radius:6px;background:var(--acc);color:#fff;cursor:pointer}
button.mini.grigio{background:#999}
.cta-riga{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.sotto-cta{font-size:13px;color:var(--mut);text-align:center;margin:8px 0 0}
.centrato{text-align:center;margin:10px 0 0}

/* filtri */
.filtri{display:flex;flex-wrap:wrap;gap:8px;background:var(--soft);padding:12px;border-radius:var(--r);margin:12px 0;align-items:center}
.filtri select,.filtri input,.modulo input,.modulo select,.modulo textarea,.affiancamento input,.avvisami input,.avvisami select,.edit input,.edit textarea{font:inherit;font-size:16px;padding:10px 10px;border:1px solid #cfd3d8;border-radius:8px;background:#fff;min-width:0;color:var(--fg)}
.filtri select:focus,.filtri input:focus,.modulo input:focus,.modulo select:focus,.affiancamento input:focus,.avvisami input:focus,.avvisami select:focus{outline:2px solid var(--acc);outline-offset:1px}
.filtri input[name=pmax]{width:150px}
.filtri-piu{display:block;flex:1 1 auto}
.filtri-piu summary{display:none}
.filtri-piu .dentro{display:flex;flex-wrap:wrap;gap:8px}
.conta{color:var(--mut);margin:6px 0 10px}
.strumenti{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px 12px;margin:4px 0 10px}
.strumenti .conta{margin:0}
.azioni-lista{display:flex;flex-wrap:wrap;gap:8px;margin:0}
.btn.piccolo{font-size:14px;padding:7px 12px;min-height:44px;display:inline-flex;align-items:center;justify-content:center}
.geo-stato{margin:0 0 10px}
.comuni-link{margin:0 0 8px}
.comuni-link a{display:inline-block;padding:4px 0}
.paginazione{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px 16px;margin:20px 0}
/* indice per zona (link interni) */
.indice{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:8px 28px;margin:30px 0 0;padding-top:8px;border-top:1px solid var(--line)}
.indice h2{font-size:18px;margin:14px 0 6px}
.indice ul{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:2px 16px}
.indice li a{display:inline-block;padding:6px 0}
.indice .mut{font-size:13px}
.indice.compatto{display:block;margin:10px 0;padding:0;border:0}
.indice.compatto nav{display:flex;flex-wrap:wrap;gap:2px 12px;margin:6px 0;align-items:baseline}
.indice.compatto b{color:var(--fg);font-weight:600;margin-right:4px}
.indice.compatto a{color:var(--mut)}

/* lista e card */
.lista{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
.lista>*{min-width:0}
.card{display:block;border:1px solid var(--line);border-radius:12px;overflow:hidden;text-decoration:none;color:var(--fg);background:#fff;transition:box-shadow .15s;position:relative}
.card:hover{box-shadow:0 6px 22px rgba(0,0,0,.09)}
.card.scaduta{opacity:.75}
.copertina{height:190px;background:var(--soft);position:relative;overflow:hidden}
.copertina img{width:100%;height:100%;object-fit:cover;display:block;background:var(--soft)}
.copertina .badge{position:absolute;left:10px;bottom:10px;background:rgba(0,0,0,.7);color:#fff;font-size:12px;padding:3px 8px;border-radius:5px;font-weight:500}
.copertina .badge.destra{left:auto;right:10px}
.copertina .nofoto{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:var(--mut);font-size:13px;text-align:center;padding:12px;background:repeating-linear-gradient(135deg,#f6f7f9 0 10px,#eef0f3 10px 20px)}
.copertina .nofoto svg{width:34px;height:34px;opacity:.5}
.card .info{padding:12px 14px}
.card h2,.card h3{font-size:16px;margin:6px 0 2px;line-height:1.3;font-weight:600}
.card .comune{color:var(--mut);font-size:14px;margin:0 0 8px}
.card .fatti{font-size:14px;color:var(--fg);margin:0 0 8px;line-height:1.4}
.card.piccola .info{padding:10px 12px}
.prezzo{font-weight:700;font-size:19px;line-height:1.3}
.prezzo .mut{margin-left:4px;white-space:nowrap}
.card .offerta-min{font-size:13px;margin:0 0 4px}
.prezzo .sconto,.prezzo-grande .sconto{display:inline-block;background:#e8f6ec;color:var(--ok);font-size:12px;font-weight:600;border-radius:5px;padding:1px 6px;margin-left:4px;vertical-align:middle}
.prezzo-grande{font-weight:700;font-size:32px;margin:6px 0;line-height:1.2}
.prezzo-grande s{font-size:18px;margin-left:6px}
.prezzo-grande .mut{font-size:15px}
.offerta-min{margin:0 0 6px;font-size:15px}
.meta{display:flex;flex-wrap:wrap;gap:6px 8px;font-size:13px;color:var(--mut);align-items:center}
.tag{display:inline-block;background:var(--soft);border:1px solid var(--line);border-radius:5px;padding:2px 8px;font-size:12.5px;color:var(--fg);text-decoration:none;line-height:1.4}
.tag.ok{background:#e8f6ec;border-color:#bfe3c8;color:var(--ok);font-weight:600}
.tag.att{background:#fff5e6;border-color:#f3d9a8;color:var(--att);font-weight:600}
.tag.ko{background:#fdeeee;border-color:#f0c4c4;color:var(--acc2);font-weight:600}
.tag.grande{padding:8px 12px;font-size:14px;margin:4px 6px 0 0}
.vuoto{grid-column:1/-1;color:var(--mut)}

/* scheda */
.briciole{font-size:14px;color:var(--mut);margin:14px 0}
.briciole a{display:inline-block;padding:6px 2px}
.annuncio header h1{font-size:26px;margin:0 0 4px;line-height:1.25}
.indirizzo{color:var(--mut);margin:0}
.link-rapidi{display:flex;flex-wrap:wrap;gap:6px 18px;margin:10px 0 0;font-size:15px}
.link-rapidi a{display:inline-block;padding:4px 0}
.dedotto{display:block;font-weight:400;line-height:1.35;margin-top:2px}
.prezzo .dedotto{font-size:12px}
.colonne{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:28px;margin-top:18px;align-items:start}
.colonne>*{min-width:0}
.colonne aside{position:sticky;top:70px}
.annuncio h2{font-size:20px;margin:26px 0 8px}
.dati{border-collapse:collapse;width:100%;margin:10px 0}
.dati th,.dati td{text-align:left;padding:8px;border-bottom:1px solid var(--line);vertical-align:top;font-size:15px}
.dati th{color:var(--mut);font-weight:500;width:36%}
.dati td{overflow-wrap:anywhere}  /* email e PEC dei referenti lunghe non allargano la pagina sui telefoni */
.dati.admin th{width:auto}
.avviso{border-left:4px solid var(--acc2);background:#fdf4f5;padding:10px 12px;border-radius:0 8px 8px 0;margin:12px 0}
.avviso.ok{border-color:var(--ok);background:#eef8f0}
.avviso.att{border-color:var(--att);background:#fff7e8}
.nota-costi{font-size:14px;color:var(--mut);margin:0 0 6px}
.fonte{font-size:14px;color:var(--mut);border-top:1px solid var(--line);padding-top:10px;margin-top:20px}
.documenti{list-style:none;padding:0;margin:8px 0}
.documenti li{padding:0;border-bottom:1px solid var(--line)}
/* tutta la riga è il link: area di tocco di almeno 44 px */
.documenti a{display:flex;align-items:center;gap:10px;min-height:44px;padding:6px 0;word-break:break-word;text-decoration:none}
.documenti a svg{width:18px;height:18px;flex:0 0 auto;color:var(--mut)}
.documenti .doc-testo{display:flex;flex-wrap:wrap;align-items:baseline;column-gap:8px;min-width:0}
.documenti .doc-nome{text-decoration:underline;text-underline-offset:2px}
.documenti a .mut{color:var(--mut)}

/* media */
.galleria .principale{display:block;position:relative;cursor:zoom-in}
.galleria .principale img{width:100%;height:auto;aspect-ratio:3/2;max-height:460px;object-fit:cover;border-radius:var(--r);display:block;background:var(--soft)}
.conta-foto{position:absolute;right:10px;bottom:10px;background:rgba(0,0,0,.65);color:#fff;font-size:12px;padding:3px 8px;border-radius:5px}
.galleria .strip{display:grid;grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:6px;margin-top:6px}
.galleria .strip a{cursor:zoom-in;position:relative;display:block;border-radius:6px;overflow:hidden}
.galleria .strip a.nascosta{display:none}
.galleria .strip img{width:100%;height:70px;object-fit:cover;display:block;background:var(--soft)}
.galleria .strip .piu{position:absolute;inset:0;background:rgba(0,0,0,.55);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:16px}
.lightbox{position:fixed;inset:0;background:#000;z-index:50;display:flex;align-items:center;justify-content:center;touch-action:pan-x pinch-zoom}
.lightbox[hidden]{display:none}
.lightbox img{max-width:94vw;max-height:88vh;max-height:88dvh;object-fit:contain;border-radius:4px;touch-action:pinch-zoom;transition:opacity .15s}
.lightbox button{position:absolute;background:rgba(0,0,0,.5);color:#fff;border:0;font-size:34px;line-height:1;width:52px;height:52px;border-radius:50%;cursor:pointer}
.lb-prev{left:14px;top:50%;margin-top:-26px}
.lb-next{right:14px;top:50%;margin-top:-26px}
.lb-chiudi{right:14px;top:14px}
.lb-conta{position:absolute;bottom:calc(16px + env(safe-area-inset-bottom));left:50%;right:auto;transform:translateX(-50%);text-align:center;color:#fff;font-size:14px;background:rgba(0,0,0,.6);padding:4px 10px;border-radius:12px;white-space:nowrap}
/* galleria aperta: testata e barra fissa spariscono (prima si vedevano sotto il velo e il contatore ci finiva sopra) */
body.lb-aperta .barra-fissa,body.lb-aperta .top{visibility:hidden}
body.lb-aperta{position:fixed;width:100%;overflow:hidden}
.video{position:relative;display:block;aspect-ratio:16/9;height:auto;max-height:70vh;border-radius:var(--r);overflow:hidden;margin:12px 0;background:#000}
.video img{width:100%;height:100%;object-fit:cover;display:block;opacity:.9}
.video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.video .play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:68px;height:48px;border-radius:12px;background:rgba(200,0,0,.9);display:flex;align-items:center;justify-content:center}
.video .play::after{content:"";border-style:solid;border-width:10px 0 10px 18px;border-color:transparent transparent transparent #fff;margin-left:4px}
.video .etichetta{position:absolute;left:10px;bottom:10px;background:rgba(0,0,0,.7);color:#fff;font-size:13px;padding:4px 8px;border-radius:5px}
.mappa{height:300px;border-radius:var(--r);overflow:hidden;background:var(--soft);position:relative}
.mappa iframe{width:100%;height:100%;border:0}
.mappa.bassa{height:220px;margin-top:10px}
.mappa-attesa{margin:0;padding:16px;color:var(--mut);font-size:14px}
.mappa-grande{height:calc(100vh - 230px);height:calc(100svh - 230px);min-height:320px;border-radius:var(--r);overflow:hidden;background:var(--soft);position:relative;z-index:0}
.mappa,.mappa-grande{isolation:isolate}
.mappa-nota{background:#fff;padding:6px 10px;border-radius:6px;font-size:13px;box-shadow:0 1px 6px rgba(0,0,0,.2)}
.popup-lotto a{display:flex;flex-direction:column;gap:2px;color:var(--fg);text-decoration:none;font-size:13px;line-height:1.35}
.popup-lotto img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;border-radius:6px;margin-bottom:4px;background:var(--soft)}
.popup-lotto .popup-prezzo{font-size:16px}
.popup-lotto .popup-riga{display:block}
.popup-lotto .popup-mq{display:inline;margin-left:6px}
.popup-lotto .popup-mq,.popup-lotto .popup-luogo,.popup-lotto .popup-scad{color:var(--mut)}
.popup-lotto .popup-titolo{font-weight:600}
.popup-lotto .popup-apri{color:var(--acc);font-weight:600;margin-top:4px}
.lista-testo{margin-top:18px}
.elenco-mappa{padding-left:18px}
.elenco-mappa li{margin:6px 0}
.streetview{margin:12px 0}
.streetview .mappa{display:none}
.streetview.aperto .mappa{display:block}
.streetview.aperto .apri{display:none}

/* modulo */
.modulo,.affiancamento{background:var(--soft);border:1px solid var(--line);border-radius:12px;padding:20px;margin:26px 0}
.modulo h2,.affiancamento h2{margin:0 0 6px;font-size:20px;line-height:1.3}
.modulo .intro,.affiancamento .intro{margin:0 0 12px}
.modulo textarea{min-height:130px;resize:vertical;line-height:1.45}
.modulo .nota-campo{font-size:13px;color:var(--mut);margin:-4px 0 6px}
.modulo .valore{background:#fff;border:1px solid #cfdcf5;border-left:4px solid var(--acc);border-radius:8px;padding:12px 14px;margin:0 0 14px;font-size:15px;line-height:1.5}
.modulo .valore b{color:var(--fg)}
.affiancamento .urgente{border-left:4px solid var(--att);background:#fff7e8;padding:10px 12px;border-radius:0 8px 8px 0;margin:0 0 12px}
.pastiglia-ko{display:inline-block;background:#fdeeee;border:1px solid #f0c4c4;color:var(--acc2);font-weight:700;font-size:14px;border-radius:999px;padding:4px 12px;margin:6px 0 2px}
.intro-luogo{max-width:760px;margin:0 0 8px}
.pvp-link{margin:10px 0 4px}
.affiancamento{border-color:#cfdcf5;background:#eef3fc;scroll-margin-top:70px}
.modulo .riga,.completa .riga,.affiancamento .riga{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:10px 0}
.modulo .riga>*,.completa .riga>*,.affiancamento .riga>*{width:100%}
.modulo select,.modulo input,.modulo textarea,.affiancamento input,.completa select,.completa input,.avvisami select,.avvisami input{width:100%;max-width:100%;min-width:0;text-overflow:ellipsis}
.avvisami input[type=email],.avvisami select{width:auto}
input[type=checkbox]{width:26px;height:26px;flex:0 0 26px}
.affiancamento .cta{margin-top:4px}
.affiancamento .riga.uno{grid-template-columns:minmax(0,1fr)}
.completa{background:var(--soft);border:1px solid var(--line);border-radius:12px;padding:16px 20px;margin:18px 0;text-align:left}
.completa h2{margin:0 0 4px;font-size:19px}
.annuncio .passi-lotto{margin:8px 0 16px;padding-left:22px}
.annuncio .passi-lotto li{margin:4px 0}
.annuncio .costi-righe li{margin:4px 0}
.campo{display:flex;flex-direction:column;gap:4px;min-width:0}
.campo label{font-size:13px;color:var(--mut)}
.campo label b{color:var(--acc2);font-weight:600}
.obbligatori{font-size:13px;color:var(--mut);margin:4px 0}
.check{display:flex;gap:10px;align-items:flex-start;min-height:44px;padding:10px 0;font-size:14px;margin:0;line-height:1.4;cursor:pointer}
.check input{flex:0 0 26px;width:26px;height:26px;margin:0;accent-color:var(--acc)}
.check>span{padding-top:3px}
.check.facoltativo{margin-top:0}
.hp{position:absolute;left:-9999px}
.faq{margin:14px 0 0;border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer;padding:11px 0;font-weight:600;font-size:15px;list-style:none;display:flex;justify-content:space-between;gap:8px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--mut);font-weight:400;flex:0 0 auto}
.faq details[open] summary::after{content:"−"}
.faq p{margin:0 0 12px;font-size:15px;color:#333}
.avvisami{display:flex;flex-wrap:wrap;gap:8px;align-items:center;background:#eef3fc;border:1px solid #cfdcf5;border-radius:var(--r);padding:12px 14px;margin:12px 0}
.avvisami.in-lista{grid-column:1/-1}
.avvisami .titolo{font-weight:600;flex:1 1 220px;margin:0}
.avvisami .titolo small{display:block;font-weight:400;color:var(--mut);font-size:13px}
.avvisami form{display:flex;flex-wrap:wrap;gap:8px;flex:2 1 420px;align-items:center}
.avvisami input[type=email]{flex:2 1 180px}
.avvisami select{flex:1 1 140px}
.avvisami .btn{flex:0 0 auto}
.avvisami .check{flex:1 1 100%;margin:0;font-size:13px}

/* passi, griglie informative */
.passi{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:12px 0;padding:0;list-style:none;counter-reset:p}
.passi li{background:var(--soft);border:1px solid var(--line);border-radius:var(--r);padding:16px;counter-increment:p}
.passi li::before{content:counter(p);display:inline-flex;width:28px;height:28px;border-radius:50%;background:var(--acc);color:#fff;align-items:center;justify-content:center;font-weight:700;margin-bottom:8px}
.passi b{display:block;margin-bottom:4px}
.anteprima{border:1px solid var(--line);border-radius:var(--r);padding:16px 18px;background:#fff;max-width:620px;box-shadow:0 6px 22px rgba(0,0,0,.06)}
.anteprima .mail-testa{font-size:13px;color:var(--mut);border-bottom:1px solid var(--line);padding-bottom:8px;margin-bottom:10px}
.anteprima ul{padding-left:18px;margin:8px 0}
.anteprima li{margin:6px 0}
.griglia2{display:grid;grid-template-columns:1fr 1fr;gap:16px}

/* barra fissa (mobile) */
.barra-fissa{display:none}

/* footer */
.foot{color:var(--mut);font-size:13px;padding:30px 0;border-top:1px solid var(--line);margin-top:40px}
.foot p{margin:0 0 8px;max-width:900px}
.foot nav{display:flex;flex-wrap:wrap;gap:4px 14px;margin:10px 0}
.foot nav a{color:var(--mut)}
.foot nav a,.indice.compatto a{display:inline-block;padding:8px 6px;min-height:44px;line-height:28px}

/* pagina errore */
.errore{text-align:center;padding:48px 0 30px;max-width:620px;margin:0 auto}
.errore .codice{font-size:13px;color:var(--mut);letter-spacing:.08em;text-transform:uppercase}
.errore h1{font-size:28px;margin:6px 0 10px}
.errore .cta-riga{justify-content:center;margin-top:18px}

/* admin (resta compatibile) */
.foto-admin{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin:8px 0 14px}
.foto-admin .m{grid-column:1/-1;margin:0}
.fa img{width:100%;height:110px;object-fit:cover;border-radius:6px;display:block;background:var(--soft)}
.fa form{display:flex;gap:3px;margin-top:3px}
.fa .mini{padding:3px 7px}
.edit label{display:block;margin:0 0 10px}
.edit input,.edit textarea{width:100%;margin-top:4px}
.edit .riga{display:flex;gap:8px;align-items:center}
.edit .riga .cta{width:auto}
.mappa-mini{height:170px;background:var(--soft);pointer-events:none;overflow:hidden;position:relative}
.mappa-mini img{width:100%;height:100%;object-fit:cover;display:block}
.mappa-mini iframe{width:100%;height:100%;border:0}

/* desktop: gli altri filtri sono sempre visibili, il summary serve solo su mobile */
@media(min-width:801px){
  .filtri-piu summary{display:none}
  .filtri-piu::details-content{content-visibility:visible;display:contents}
  .filtri-piu:not([open]) .dentro{display:flex}
}

/* mobile */
@media(max-width:800px){
  body{padding-bottom:0}
  body.con-barra{padding-bottom:76px}
  .hero{padding:16px 0 4px}
  .hero h1{font-size:24px}
  .hero .intro-home{font-size:15px}
  .testo h1{font-size:25px}
  .top nav a{padding:16px 6px;margin-left:4px;font-size:15px}
  .colonne{grid-template-columns:minmax(0,1fr)}
  .colonne aside{position:static}
  .annuncio header h1{font-size:21px}
  .prezzo-grande{font-size:27px}
  .modulo .riga,.completa .riga,.affiancamento .riga{grid-template-columns:minmax(0,1fr)}
  .modulo,.affiancamento{padding:16px}
  .avvisami form>*{flex:1 1 100%}
  .avvisami .btn{flex:1 1 100%}
  .filtri{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}
  .filtri-piu{display:block;grid-column:auto;min-width:0}
  .filtri-piu summary{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:7px 12px;border:1px solid var(--acc);border-radius:8px;background:#fff;color:var(--acc);font-weight:600;font-size:14px;cursor:pointer;list-style:none;white-space:nowrap}
  .filtri-piu summary::-webkit-details-marker{display:none}
  .filtri-piu summary::after{content:"";width:7px;height:7px;border:solid currentColor;border-width:0 1.6px 1.6px 0;transform:rotate(45deg) translateY(-2px)}
  .filtri-piu[open] summary::after{transform:rotate(-135deg) translateY(-2px)}
  .filtri-piu[open]{grid-column:1/-1}
  .filtri:has(.filtri-piu[open])>select[name=prov]{grid-column:1/-1}
  .filtri>button{grid-column:1/-1}
  .js .filtri>button{display:none}  /* con JS i filtri si applicano da soli al cambio (filtri.js); senza JS il bottone resta */
  .filtri-piu .dentro{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:4px}
  .filtri-piu .dentro>*{width:100%;min-width:0}
  .filtri-piu .dentro select[name=ord],.filtri-piu .dentro select[name=comune]{grid-column:1/-1}
  .filtri-piu .dentro:not(:has(select[name=fonte])):has(select[name=ord]) input[name=pmax]{grid-column:1/-1}
  .filtri select{min-width:0;max-width:100%;width:100%}
  .strumenti{margin:2px 0 8px}
  .indice ul{gap:0 14px}
  .filtri input[name=pmax]{width:100%}
  .lista{grid-template-columns:1fr;gap:10px}
  .card:not(.piccola){display:grid;grid-template-columns:124px minmax(0,1fr)}
  .card:not(.piccola) .copertina{height:100%;min-height:124px}
  .card:not(.piccola) .copertina .badge{left:6px;bottom:6px;font-size:11px;padding:2px 6px}
  .card:not(.piccola) .copertina .badge.destra{left:auto;right:6px}
  .card:not(.piccola) .copertina .nofoto{font-size:11px;padding:6px}
  .card:not(.piccola) .copertina .nofoto svg{width:24px;height:24px}
  .card .info{padding:10px 12px}
  .card h2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:15px}
  .card .fatti{font-size:13px}
  .prezzo{font-size:17px}
  .avvisami.in-lista{grid-column:auto}
  .passi{grid-template-columns:1fr}
  .griglia2{grid-template-columns:1fr}
  .galleria .principale img{max-height:320px}
  .mappa{height:240px}
  .barra-fissa{display:flex;gap:8px;position:fixed;left:0;right:0;bottom:0;z-index:6;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid var(--line);box-shadow:0 -4px 18px rgba(0,0,0,.08);transition:transform .2s}
  .barra-fissa.nascosta{transform:translateY(110%)}
  .barra-fissa a{flex:1 1 auto;min-width:0;padding:12px 10px;font-size:15px;line-height:1.2;display:flex;align-items:center;justify-content:center;min-height:46px}
  .barra-fissa a.cta{flex:1.3 1 0}
  .barra-fissa a.secondario{flex:1 1 0}
  .barra-fissa a.wa{flex:0 0 auto}
  .barra-fissa a.secondario{background:#fff;color:var(--acc);border:1px solid var(--acc);border-radius:8px;font-weight:600;text-decoration:none;text-align:center}
  .barra-fissa a{white-space:nowrap}
  /* scheda: la foto prima del titolo; i link rapidi ripetono la barra fissa, da telefono non servono */
  .galleria-blocco{margin:0 0 12px}
  .galleria-blocco>.mut{margin:6px 0 0}
  body.con-barra .link-rapidi{display:none}
}
@media(max-width:419px){
  .barra-fissa .lungo{display:none}
}
/* telefono: card verticali con la foto grande in 4:3 (tra 481 e 800 px resta la card orizzontale) */
@media(max-width:480px){
  .card:not(.piccola){display:block}
  .card:not(.piccola) .copertina{aspect-ratio:4/3;height:auto;min-height:0}
  .card:not(.piccola) .copertina img{width:100%;height:100%;object-fit:cover}
  .card:not(.piccola) .copertina .badge{left:10px;bottom:10px;font-size:12px;padding:3px 8px}
  .card:not(.piccola) .copertina .badge.destra{left:auto;right:10px}
  .card:not(.piccola) .copertina .nofoto{font-size:13px;padding:12px}
  .card:not(.piccola) .copertina .nofoto svg{width:34px;height:34px}
  .card .prezzo{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .card .prezzo .dedotto{white-space:normal}
}
@media(max-width:359px){
  .filtri-piu .dentro{grid-template-columns:minmax(0,1fr)}
}
@media(max-width:420px){
  .logo{font-size:17px}
  .top nav a{font-size:14px;padding:16px 5px}
  .top nav .lungo{display:none}
}
@media(max-width:390px){
  /* con la voce Mappa il menu non entra più a 360 px: logo e voci un po' più stretti (niente scroll orizzontale) */
  .logo{font-size:16px}
  .top .wrap{gap:4px}
  .top nav a{font-size:13.5px;padding:16px 4px;margin-left:0}
}
@media(max-width:340px){
  .logo .lungo{display:none}
}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}

/* giro 3: modulo contatti, link PVP, briciole */
.modulo .riga.uno{grid-template-columns:minmax(0,1fr)}
.modulo .campo textarea{display:block}
.pvp-link .btn{white-space:normal;line-height:1.3;min-height:44px}
.annuncio .pastiglia-ko{margin:2px 0 8px}

/* giro 4: home da telefono, select, blocco segnali, scheda con la foto in alto, mappa */
.hero .intro-home{max-width:760px;margin:0 0 10px}
.cta-home{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;margin:0 0 4px}
.meta .tag{white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}
/* select con la freccia disegnata: il testo non finisce più sotto la freccia nativa */
.filtri select,.avvisami select,.modulo select{-webkit-appearance:none;appearance:none;padding-right:32px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23555' stroke-width='1.6'/%3E%3C/svg%3E") no-repeat right 12px center;text-overflow:ellipsis;white-space:nowrap}
.seguiamo{background:#eef3fc;border:1px solid #cfdcf5;border-radius:12px;padding:18px 20px;margin:26px 0 0}
.seguiamo h2{font-size:20px;margin:0 0 6px;line-height:1.3}
.seguiamo p{margin:0 0 8px;max-width:760px}
.seguiamo .cta-riga{margin:12px 0 0}
#modulo,#contatti,#segnali,#esempio,#affiancamento{scroll-margin-top:70px}
/* scheda da desktop: foto a sinistra, titolo e prezzo a destra, poi le due colonne di sempre */
@media(min-width:801px){
  .annuncio.con-foto{display:grid;grid-template-columns:minmax(0,1fr) 360px;column-gap:28px;align-items:start}
  .annuncio.con-foto>.galleria-blocco{grid-column:1;grid-row:1;min-width:0}
  .annuncio.con-foto>.galleria-blocco>.mut{margin:6px 0 0}
  .annuncio.con-foto>header{grid-column:2;grid-row:1;min-width:0}
  .annuncio.con-foto>header h1{font-size:23px}
  .annuncio.con-foto>.colonne{grid-column:1/-1}
}
/* mappa: le righe tra le tessere sono il fondo grigio di Leaflet (#ddd) che passa tra due tessere; con il fondo del colore
   della terra di OpenStreetMap non si vedono. Niente tessere allargate a 256,5 px: provato, il bordo ricampionato fa righe
   più chiare. Giro 7 (P11): outline trasparente + will-change sulle tessere e zoom solo intero (mappa.js) le tolgono davvero,
   verificato a 390 px con DPR 2 sulla scheda 76 e su /mappa (in fondo al file) */
.mappa-grande.leaflet-container,.mappa.leaflet-container{background:#f2efe9}

/* giro 5 */
/* T1: scheda a offerte chiuse */
.affiancamento.chiuso .btn{white-space:normal;line-height:1.3;min-height:44px}
.annuncio .verifica{margin:2px 0 8px}
/* T3: da telefono le miniature stanno su una riga di 4 (la quarta con «+N») e il prezzo entra nella prima schermata */
.galleria .strip .piu-m{display:none}
@media(max-width:480px){
  .galleria .strip{grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;margin-top:4px}
  .galleria .strip a.oltre4{display:none}
  .galleria .strip img{height:56px}
  .galleria .strip .piu{display:none}
  .galleria .strip .piu-m{display:flex}
  .galleria .principale img{aspect-ratio:16/10;max-height:240px}
  .galleria-blocco{margin:0 0 8px}
  .galleria-blocco>.mut{font-size:12px;line-height:1.35;margin:4px 0 0}
  .briciole{margin:6px 0 6px;font-size:13px}
  .annuncio header h1{font-size:19px;line-height:1.25;margin:4px 0 2px}
  .annuncio .indirizzo{margin:0 0 2px;font-size:14px}
  .annuncio .prezzo-grande{font-size:25px;margin:2px 0}
  .annuncio .offerta-min{margin:0 0 4px}
}
/* T4: mappa, grappoli di lotti vicini e pulsanti di zoom da 44 px */
.grappolo{display:flex!important;align-items:center;justify-content:center;border-radius:50%;background:#0b5bd3;color:#fff;font:700 13px/1 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;border:2px solid #fff;box-shadow:0 1px 6px rgba(0,0,0,.35);cursor:pointer}
.grappolo.medio{font-size:14px;background:#0a4fb8}
.grappolo.grande{font-size:15px;background:#083f93}
.grappolo:focus-visible{outline:3px solid #ffbf47;outline-offset:2px}
.popup-elenco{list-style:none;margin:0;padding:0;max-height:240px;overflow:auto;font-size:13px}
.popup-elenco li{border-bottom:1px solid var(--line)}
.popup-elenco a{display:block;padding:8px 0;min-height:44px;color:var(--fg);text-decoration:none;line-height:1.35}
.popup-elenco a b{display:block}
html .leaflet-touch .leaflet-bar a,html .leaflet-touch .leaflet-control-zoom-in,html .leaflet-touch .leaflet-control-zoom-out{width:44px;height:44px;line-height:44px;font-size:24px}

/* giro 6 */
/* P10: «1.012 €/mq» non va a capo a metà */
.prezzo-grande .mut{white-space:nowrap}
/* P1: la foto grande si sfoglia col dito (galleria.js); la miniatura della foto mostrata è segnata */
.galleria .principale{touch-action:pan-y pinch-zoom}
.galleria .principale img{transition:opacity .15s}
.galleria .strip a.attiva img{outline:3px solid var(--acc);outline-offset:-3px}
.foto-procedura{margin:4px 0 0}
/* P9: Condividi, area di tocco da 44 px */
.link-rapidi{align-items:center}
.condividi{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:8px 14px;border:1px solid var(--acc);border-radius:8px;background:#fff;color:var(--acc);font:inherit;font-weight:600;font-size:15px;cursor:pointer;line-height:1.2}
.condividi svg{width:18px;height:18px;flex:0 0 auto}
.condividi:focus-visible{outline:3px solid #ffbf47;outline-offset:2px}
@media(max-width:800px){
  /* da telefono i link rapidi ripetono la barra fissa e restano nascosti; il tasto Condividi no */
  body.con-barra .link-rapidi{display:flex}
  body.con-barra .link-rapidi a{display:none}
}
/* P3: nota sotto il select quando la provincia non ha ancora lotti online */
.nota-prov{margin:6px 0 0;color:var(--att)}
.nota-prov[hidden]{display:none}
.avvisami .nota-prov{flex:1 1 100%;margin:0}
/* P4: provincia con aste in corso ma nessun lotto online */
.prov-vuota{background:#eef3fc;border:1px solid #cfdcf5;border-radius:12px;padding:16px 18px;margin:10px 0 16px}
.prov-vuota-testo{margin:0;font-size:16px;line-height:1.5;max-width:760px}
/* P11: tasto «Tutta Italia» sulla mappa da telefono */
.mappa-tutta{min-height:44px;padding:8px 14px;border:2px solid rgba(0,0,0,.2);border-radius:8px;background:#fff;color:var(--fg);font:600 14px/1.2 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;cursor:pointer;box-shadow:0 1px 5px rgba(0,0,0,.15)}
.mappa-tutta:focus-visible{outline:3px solid #ffbf47;outline-offset:2px}
/* P2: la frase del diritto venduto si legge per intero anche su due righe (due diritti, usufrutto di terzi) */
.annuncio .pastiglia-ko{max-width:100%;white-space:normal;border-radius:12px;line-height:1.35}

/* giro 7 */
/* P1: l'invito a farsi richiamare nella prima schermata della scheda (sotto prezzo e offerta minima) */
.cta-scheda{display:flex;justify-content:center;align-items:center;min-height:48px;width:100%;margin:12px 0 4px;font-size:17px}
.cta-scheda+.sotto-cta{margin:4px 0 8px}
@media(min-width:801px){.cta-scheda{max-width:420px}.cta-scheda+.sotto-cta{max-width:420px}}
@media(max-width:800px){body.con-barra .link-rapidi a:not(.cta-scheda){display:none}}
@media(max-width:480px){.annuncio .cta-scheda{margin:8px 0 2px}}
/* P2: il testo dell'avviso chiuso, si apre con un tocco */
.avviso-testo{border:1px solid var(--line);border-radius:8px;margin:12px 0;padding:0 12px}
.avviso-testo summary{min-height:44px;display:flex;align-items:center;justify-content:space-between;gap:8px;cursor:pointer;font-weight:600;color:var(--acc);list-style:none}
.avviso-testo summary::-webkit-details-marker{display:none}
.avviso-testo summary::after{content:"+";color:var(--mut);font-weight:400;font-size:20px;flex:0 0 auto}
.avviso-testo[open] summary::after{content:"−"}
.avviso-testo summary:focus-visible{outline:3px solid #ffbf47;outline-offset:2px}
.avviso-testo p{margin:0 0 12px}
/* P3: stato di occupazione nei chip; .avviso è anche il riquadro dei messaggi, qui torna un chip (arancio su crema, contrasto 6:1) */
.tag.avviso{display:inline-block;margin:0;padding:2px 8px;border:1px solid #f0cf9a;border-radius:5px;background:#fff3e0;color:#8a4b00;font-weight:600}
/* P8: barra fissa, il pulsante dei segnali dice di cosa avvisa (corto sotto i 420 px) */
.barra-fissa .corto{display:none}
.barra-fissa a.secondario .lungo{overflow:hidden;text-overflow:ellipsis}
/* sotto i 560 px la frase intera andrebbe su tre righe (provincia di Monza e della Brianza): resta quella corta */
@media(max-width:559px){.barra-fissa .corto{display:inline}.barra-fissa a.secondario .lungo{display:none}}
@media(min-width:560px) and (max-width:800px){.barra-fissa a.secondario{white-space:normal;font-size:14px;line-height:1.2;padding:6px 8px}}
/* menu in alto: «Segnali nella tua provincia» per intero solo quando c'è posto (tra 421 e 600 px usciva dallo schermo) */
@media(max-width:600px){.top nav .lungo{display:none}}
/* P9: tag del tribunale cliccabile, area di tocco a 44 px con lo spazio tra le righe dei chip */
a.tag{min-height:36px;display:inline-flex;align-items:center;padding:6px 10px}
.annuncio .meta{row-gap:8px}
/* P11: tessere della mappa senza righe chiare in mezzo */
.leaflet-tile{outline:1px solid transparent;will-change:transform}
.leaflet-container img.leaflet-tile{mix-blend-mode:normal;max-width:none!important}
/* P2: Condividi sulla foto da telefono (la riga sotto i chip sparisce); da desktop resta tra i link rapidi */
.galleria{position:relative}
.condividi.su-foto{display:none}
@media(max-width:800px){
  .condividi.su-foto{display:inline-flex;position:absolute;top:8px;right:8px;z-index:2;min-height:44px;padding:8px 12px;background:rgba(255,255,255,.94);border-color:rgba(0,0,0,.12);color:var(--fg);box-shadow:0 1px 6px rgba(0,0,0,.18)}
  body.con-barra .annuncio.con-foto .link-rapidi{display:none}
  .annuncio h2{margin-top:22px}
}
@media(max-width:480px){
  /* il tribunale dice già da dove viene la vendita (e la fonte è sotto la foto e in fondo): sul telefono il chip del portale non serve */
  .annuncio .meta .tag.fonte-dup{display:none}
}
@media(max-width:480px){
  .annuncio .indirizzo.in-titolo{display:none}
  .annuncio .verifica{margin:2px 0 6px}
}
@media(max-width:480px){
  .annuncio .colonne{margin-top:10px}
  .annuncio .colonne>div>h2:first-child{margin-top:14px}
}
/* il chip del tribunale è un collegamento: più alto per il dito (P9) e con l'aspetto di un link, così la differenza d'altezza si legge */
.annuncio .meta a.tag{color:var(--acc);background:#eef3fc;border-color:#cfdcf5;font-weight:500}

/* giro 8 */
:root{--fondo-2:#f1f3f6}
/* P2: card dei lotti senza foto (o con la copertina scartata): una riga da 72 px al posto del riquadro grigio, prezzo subito sotto */
.card.senza-foto .copertina{display:none}
.card.senza-foto .riga-nofoto{display:flex;gap:12px;align-items:center;min-height:72px;padding:12px;background:var(--fondo-2)}
.riga-nofoto svg{width:30px;height:30px;flex:0 0 auto;color:var(--mut);opacity:.75}
.riga-nofoto .nofoto-testo{display:flex;flex-direction:column;gap:2px;min-width:0;line-height:1.3}
.riga-nofoto .nofoto-cosa{font-weight:600;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.riga-nofoto .nofoto-nota{color:var(--mut);font-size:13px}
.card.senza-foto .info .comune{display:none}  /* comune e provincia sono già nella riga in alto */
@media(max-width:800px){.card.senza-foto:not(.piccola){display:block}}
/* P13: «+N lotti della stessa vendita». Il chip è un link e non può stare dentro il link della card: card e chip stanno in un
   contenitore con il bordo della card, così si leggono come una card sola */
.card-gruppo{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff;min-width:0}
.card-gruppo>.card{border:0;border-radius:0;flex:1 1 auto}
.card-gruppo:hover{box-shadow:0 6px 22px rgba(0,0,0,.09)}
.card-gruppo>.card:hover{box-shadow:none}
.chip.stessa-vendita{display:inline-flex;min-height:36px;align-items:center;padding:0 12px;border:1px solid #cfdcf5;border-radius:999px;background:#eef3fc;color:var(--acc);font-size:13.5px;font-weight:600;text-decoration:none;line-height:1.2}
.chip.stessa-vendita:focus-visible{outline:3px solid #ffbf47;outline-offset:2px}
.card-gruppo>.chip.stessa-vendita{align-self:flex-start;margin:0 14px 12px}
@media(max-width:800px){.card-gruppo>.chip.stessa-vendita{margin:0 12px 10px}}
/* P6: home da telefono, la prima card (foto e prezzo) entra nella prima schermata */
.intro-corta,.conta-cta{display:none}
.conta-cta a{display:inline-block;padding:6px 0;font-weight:600}
@media(max-width:700px){
  .hero .intro-home .intro-lunga{display:none}
  .hero .intro-home .intro-corta{display:inline}
  .hero .intro-home{margin:0 0 4px}
  .cta-home{display:none}
  .conta-cta{display:inline}
  .strumenti .azioni-lista{gap:6px}
  /* in home a pagina 1 «pagina 1 di 18» mandava il contatore su due righe: la paginazione in fondo lo dice già */
  .conta-pag.prima{display:none}
  .hero h1{margin-bottom:6px}
  .filtri{margin:8px 0}
}
@media(max-width:480px){
  /* P6: foto della card in 3:2 (era 4:3): 28 px in meno per card, il prezzo della prima entra nei primi 650 px a 375 px */
  .card:not(.piccola) .copertina{aspect-ratio:3/2}
  .azioni-lista .btn.piccolo{min-height:40px;padding:0 12px;border-radius:999px;font-size:14px}
}
/* P7: bersagli di tocco da 44 px su menu, logo, briciole, footer e consensi; almeno 24 px sui link dentro la scheda */
.top nav a{display:inline-flex;align-items:center;min-height:44px;padding-top:0;padding-bottom:0}
.top .logo{display:inline-flex;align-items:center;min-height:44px}
.briciole a{display:inline-block;padding:10px 4px;line-height:24px}
footer a{display:inline-block;padding:10px 4px}
input[type=checkbox],.check input{width:24px;height:24px;flex:0 0 24px}
.consenso{display:flex;gap:10px;min-height:44px;align-items:flex-start}
.annuncio a[href^="tel:"],.annuncio a[href^="mailto:"],.annuncio .apri-maps,.annuncio a.fonte,.annuncio p.fonte a,.annuncio .galleria-blocco>.mut a{display:inline-block;padding:6px 0;min-height:24px}
@media(max-width:480px){.briciole{margin:0}}
/* P11: /mappa, l'elenco testuale dei lotti in un riquadro che si apre (aperto da 800 px in su, mappa.js) */
.elenco-mappa-box{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.elenco-mappa-box summary{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:48px;cursor:pointer;list-style:none}
.elenco-mappa-box summary::-webkit-details-marker{display:none}
.elenco-mappa-box summary::after{content:"+";color:var(--mut);font-size:22px;flex:0 0 auto}
.elenco-mappa-box[open] summary::after{content:"−"}
.elenco-mappa-box summary h2{margin:0;font-size:18px;line-height:1.3}
.elenco-mappa-box summary:focus-visible{outline:3px solid #ffbf47;outline-offset:2px}
.avviso-vendita{margin:10px 0;padding:10px 12px;border-radius:8px;background:#eef3fc;border:1px solid #cfdcf5;font-size:14.5px}
.avviso-vendita a{display:inline-block;padding:4px 0;font-weight:600}

/* 02/11/2026: storia del lotto, «Se lo affitti», «Il mercato qui» (_storia.html, _mercato.html) */
.storia tr.attuale td{background:var(--soft);font-weight:600}
.prossimo-turno{background:var(--soft);border-radius:10px;padding:10px 12px}
.rendita-ipotesi,.rendita-colonne{display:grid;gap:12px;margin:10px 0}
.rendita-colonne{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}
.rendita-col{border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:#fff;min-width:0}
.rendita-col h3{font-size:16px;margin:0 0 8px}
.rendita label{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:15px;margin:6px 0}
.rendita .inp{display:flex;align-items:center;gap:4px;white-space:nowrap}
.rendita input{width:7.5em;min-height:40px;padding:4px 8px;font-size:16px;text-align:right}
.rendita .esito{margin:8px 0 0;font-size:15px}
.mercato-dati li{margin:0 0 8px}
.omi-sconto{margin:0 0 8px;font-size:15px;color:var(--ok)}
.omi-sconto .mut{font-size:13px}
.omi-sconto a{white-space:nowrap}
