/* ════════════════════════════════════════════════════════════
   VARCO · portale pubblico (pensato prima per telefono e tablet)
   Due schermate: HOME (una domanda, una barra) e RISULTATI.
   ════════════════════════════════════════════════════════════ */
body{margin:0;background:var(--bg);color:var(--tx);font-family:var(--font)}
a{color:inherit}
[hidden]{display:none!important}

/* Header */
.pt-top{height:68px;gap:.75rem}
.pt-top .vx-brand span{font-size:1.3rem}
.pt-summary{flex:1;min-width:0;max-width:520px;display:flex;align-items:center;gap:.6rem;height:48px;margin:0 auto;padding:0 .4rem 0 1rem;border:1px solid var(--br2);border-radius:var(--pill);
  background:var(--surface);box-shadow:0 2px 10px rgba(0,0,0,.07);font-family:var(--font);color:var(--tx);cursor:pointer;text-align:left;transition:box-shadow .25s}
.pt-summary:hover{box-shadow:var(--shadow-card)}
.pt-summary > svg{flex-shrink:0;width:18px;height:18px;color:var(--brand)}
.pt-summary span{flex:1;min-width:0;font-size:.9rem;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pt-summary i{flex-shrink:0;width:38px;height:38px;border-radius:50%;background:var(--surface2);display:flex;align-items:center;justify-content:center}
.pt-summary i svg{width:16px;height:16px}
.pt-agency{display:none}

/* Barra di ricerca */
.pt-ai{display:flex;align-items:center;gap:.5rem;width:100%;padding:.4rem .4rem .4rem 1.1rem;border:1px solid var(--br2);border-radius:var(--pill);background:var(--surface);
  box-shadow:0 4px 18px rgba(0,0,0,.08);transition:box-shadow .3s var(--ease),border-color .2s}
.pt-ai:focus-within{box-shadow:var(--shadow-card);border-color:var(--tx)}
.pt-ai > svg{flex-shrink:0;width:20px;height:20px;color:var(--brand)}
.pt-ai input{flex:1;min-width:0;border:0;outline:none;background:transparent;font-family:var(--font);font-size:1rem;color:var(--tx);padding:.8rem 0}
.pt-ai input::placeholder{color:var(--tm)}
.pt-ai button{--mx:50%;--my:50%;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;gap:.45rem;height:48px;min-width:48px;padding:0 1rem;border:0;border-radius:var(--pill);cursor:pointer;
  font-family:var(--font);font-weight:700;font-size:.95rem;color:#fff;background:radial-gradient(circle at var(--mx) var(--my),var(--brand-hi),var(--brand) 42%,var(--brand-lo));transition:transform .15s}
.pt-ai button:active{transform:scale(.95)}
.pt-ai button svg{width:18px;height:18px}
.pt-ai button span{display:none}
.pt-ai.loading button{background:linear-gradient(90deg,var(--brand-lo),var(--brand-hi),var(--brand-lo));background-size:200% 100%;animation:ptflow 1.2s linear infinite}
@keyframes ptflow{to{background-position:-200% 0}}

/* ══ HOME ═════════════════════════════════════════════════ */
.pt-home{max-width:1180px;margin:0 auto;padding:.5rem .75rem 3rem}
.pt-hero{position:relative;overflow:visible;padding:3rem 1rem 2.75rem;border-radius:var(--r-xl);color:#fff;text-align:center;
  /* foto di una casa sotto la velatura blu: si capisce subito che si parla di immobili */
  background:linear-gradient(160deg,rgba(11,51,181,.86),rgba(6,25,92,.72) 55%,rgba(6,25,92,.55)),url('img/home-casa.jpg') center 62%/cover no-repeat,var(--brand)}
.pt-hero h1{text-shadow:0 2px 18px rgba(0,0,0,.25)}
.pt-hero h1{margin:0 0 1rem;font-size:clamp(1.6rem,6vw,2.8rem);font-weight:800;letter-spacing:-.04em;line-height:1.1}
.pt-tabs{display:inline-flex;gap:.25rem;margin-bottom:1rem}
.pt-tabs button{position:relative;padding:.5rem 1rem .7rem;border:0;background:none;font-family:var(--font);font-size:1rem;font-weight:700;color:rgba(255,255,255,.72);cursor:pointer}
.pt-tabs button::after{content:'';position:absolute;left:.8rem;right:.8rem;bottom:0;height:3px;border-radius:3px;background:#fff;transform:scaleX(0);transition:transform .3s var(--ease)}
.pt-tabs button.on{color:#fff}
.pt-tabs button.on::after{transform:scaleX(1)}

/* Barra unica: comune/zona + tipo + filtri + cerca */
.pt-find{display:grid;grid-template-columns:1fr auto;gap:.5rem;max-width:900px;margin:0 auto;padding:.5rem;border-radius:20px;background:var(--surface);box-shadow:0 12px 34px rgba(3,14,60,.3);text-align:left}
.pt-find-where{position:relative;grid-column:1/-1;display:flex;align-items:center;gap:.5rem;min-height:52px;padding:0 .9rem;border-radius:14px;background:var(--surface2)}
.pt-find-where > svg{flex-shrink:0;width:20px;height:20px;color:var(--tm)}
.pt-find-where input{flex:1;min-width:0;border:0;outline:none;background:transparent;font-family:var(--font);font-size:1rem;color:var(--tx);padding:.8rem 0}
.pt-find-where input::placeholder{color:var(--tm)}
.pt-find-where:focus-within{background:var(--surface);box-shadow:0 0 0 2px var(--tx)}
.pt-place{flex-shrink:0;display:inline-flex;align-items:center;gap:.25rem;max-width:60%;padding:.35rem .35rem .35rem .75rem;border-radius:var(--pill);background:var(--brand-dim);color:var(--brand);font-size:.9rem;font-weight:700}
.pt-place > span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pt-place button{width:24px;height:24px;border:0;border-radius:50%;background:transparent;color:inherit;cursor:pointer;display:flex;align-items:center;justify-content:center}
.pt-place svg{width:12px;height:12px}
.pt-sug{position:absolute;left:0;right:0;top:calc(100% + 8px);z-index:50;margin:0;padding:.4rem;list-style:none;border-radius:16px;background:var(--surface);box-shadow:var(--shadow-pop);display:none;max-height:320px;overflow:auto}
.pt-sug.show{display:block;animation:vxRise .25s var(--ease) both}
/* tendina dentro le finestre (Tempo di viaggio): nel flusso della pagina, così non viene tagliata dallo scorrimento */
.pt-sug.pt-sug-in{position:static;margin-top:.5rem;box-shadow:none;border:1px solid var(--br)}
.pt-sug li{display:flex;align-items:center;gap:.75rem;padding:.7rem .75rem;border-radius:12px;cursor:pointer;color:var(--tx)}
.pt-sug li:hover,.pt-sug li.on{background:var(--surface2)}
.pt-sug li i{flex-shrink:0;width:36px;height:36px;border-radius:10px;background:var(--surface2);display:flex;align-items:center;justify-content:center}
.pt-sug li i svg{width:18px;height:18px}
.pt-sug li b{display:block;font-size:.95rem}
.pt-sug li small{display:block;font-size:.8rem;color:var(--tm)}
.pt-sug li.pt-sug-out{cursor:default;background:var(--amber-dim)}
.pt-sug li.pt-sug-out i{background:transparent;color:var(--amber)}
.pt-find-type{display:flex;align-items:center;gap:.5rem;min-height:50px;padding:0 .9rem;border-radius:14px;background:var(--surface2);cursor:pointer}
.pt-find-type svg{flex-shrink:0;width:19px;height:19px;color:var(--tm)}
.pt-find-type select{flex:1;min-width:0;border:0;outline:none;background:transparent;font-family:var(--font);font-size:.95rem;font-weight:600;color:var(--tx);appearance:none;-webkit-appearance:none;cursor:pointer;padding:.7rem 1.2rem .7rem 0;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23717171' stroke-width='3'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right center}
.pt-find-filters{position:relative;width:50px;height:50px;border:1px solid var(--br2);border-radius:14px;background:var(--surface);color:var(--tx);cursor:pointer;display:flex;align-items:center;justify-content:center}
.pt-find-filters svg{width:20px;height:20px}
.pt-find-filters b{position:absolute;top:-6px;right:-6px;min-width:20px;height:20px;padding:0 .3rem;border-radius:var(--pill);background:var(--brand);color:#fff;font-size:.68rem;display:flex;align-items:center;justify-content:center}
.pt-find-filters b:empty{display:none}
.pt-find-go{--mx:50%;--my:50%;grid-column:1/-1;display:flex;align-items:center;justify-content:center;gap:.5rem;height:52px;border:0;border-radius:14px;cursor:pointer;
  font-family:var(--font);font-size:1rem;font-weight:800;color:#fff;background:radial-gradient(circle at var(--mx) var(--my),var(--brand-hi),var(--brand) 42%,var(--brand-lo));transition:transform .15s,box-shadow .25s}
.pt-find-go:hover{box-shadow:0 8px 22px rgba(11,51,181,.3)}
.pt-find-go:active{transform:scale(.97)}
.pt-find-go svg{width:19px;height:19px}

/* Scorciatoie (riga di icone) */
.pt-shortcuts{display:flex;justify-content:space-between;gap:.25rem;margin:1.5rem 0 0;overflow-x:auto;scrollbar-width:none}
.pt-shortcuts::-webkit-scrollbar{display:none}
.pt-shortcuts > *{flex:1;min-width:72px;display:flex;flex-direction:column;align-items:center;gap:.45rem;padding:.4rem .2rem;border:0;background:none;border-radius:14px;
  font-family:var(--font);font-size:.78rem;font-weight:600;color:var(--tx);text-decoration:none;text-align:center;cursor:pointer;transition:transform .2s var(--spring)}
.pt-shortcuts > *:active{transform:scale(.94)}
.pt-shortcuts i{width:56px;height:56px;border-radius:18px;display:flex;align-items:center;justify-content:center;background:var(--brand-dim);color:var(--brand);transition:transform .35s var(--spring),box-shadow .25s}
.pt-shortcuts i.ai{background:linear-gradient(135deg,#EEF1FF,#F6E9FF);color:#6B3BE8}
.pt-shortcuts i svg{width:24px;height:24px}
.pt-shortcuts > *:hover i{transform:translateY(-3px);box-shadow:0 8px 18px rgba(11,51,181,.18)}

.pt-sec-title{margin:0;font-size:1.2rem;font-weight:800;letter-spacing:-.02em}
#ptRecentWrap{margin-top:2.25rem}
#ptRecentWrap .pt-sec-title{margin-bottom:.9rem}
.pt-recent{display:flex;gap:.75rem;overflow-x:auto;scrollbar-width:none;margin:0 -.75rem;padding:0 .75rem .25rem}
.pt-recent::-webkit-scrollbar{display:none}
.pt-recent button{flex:0 0 240px;display:flex;align-items:center;gap:.8rem;padding:.9rem;border:1px solid var(--br);border-radius:var(--r-lg);background:var(--surface);
  font-family:var(--font);text-align:left;color:var(--tx);cursor:pointer;transition:box-shadow .25s,transform .25s var(--ease)}
.pt-recent button:hover{box-shadow:var(--shadow-card);transform:translateY(-2px)}
.pt-recent i{flex-shrink:0;width:44px;height:44px;border-radius:12px;background:var(--surface2);display:flex;align-items:center;justify-content:center}
.pt-recent i svg{width:20px;height:20px}
.pt-recent b{display:block;font-size:.92rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:160px}
.pt-recent small{display:block;font-size:.8rem;color:var(--tm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:160px}
.pt-latest-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin:2.25rem 0 1rem}
.pt-latest-head button{border:0;background:none;padding:0;font-family:var(--font);font-size:.9rem;font-weight:700;color:var(--tx);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.pt-examples{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}
.pt-examples button{padding:.55rem .95rem;border:1px solid var(--br2);border-radius:var(--pill);background:var(--surface);font-family:var(--font);font-size:.85rem;color:var(--tx);cursor:pointer;text-align:left}

/* ══ RISULTATI ════════════════════════════════════════════ */
.pt-res{display:grid;grid-template-columns:1fr}
.pt-list{padding:.75rem 1rem 6.5rem}
.pt-res-bar{display:flex;align-items:center;gap:.6rem;margin-bottom:.6rem}
.pt-count{flex:1;margin:0;font-size:1rem;font-weight:800}
.pt-btn{display:inline-flex;align-items:center;gap:.45rem;height:40px;padding:0 .9rem;border:1px solid var(--br2);border-radius:var(--pill);background:var(--surface);
  font-family:var(--font);font-size:.86rem;font-weight:700;color:var(--tx);cursor:pointer;transition:border-color .2s}
.pt-btn:hover{border-color:var(--tx)}
.pt-btn svg{width:17px;height:17px}
.pt-btn b{min-width:19px;height:19px;padding:0 .3rem;border-radius:var(--pill);background:var(--tx);color:var(--surface);font-size:.68rem;display:none;align-items:center;justify-content:center}
.pt-btn b.on{display:inline-flex}
.pt-ai-note{margin:0 0 .6rem;font-size:.85rem;color:var(--tm)}
.pt-ai-note:empty{display:none}
.pt-chips{display:flex;gap:.4rem;overflow-x:auto;scrollbar-width:none;margin:0 -1rem .9rem;padding:0 1rem}
.pt-chips::-webkit-scrollbar{display:none}
.pt-chips:empty{display:none}
.pt-chip{flex-shrink:0;display:inline-flex;align-items:center;gap:.3rem;padding:.4rem .45rem .4rem .8rem;border-radius:var(--pill);background:var(--surface2);font-size:.82rem;font-weight:600;white-space:nowrap}
.pt-chip.ai{background:var(--brand-dim);color:var(--brand)}
.pt-chip button{width:24px;height:24px;border:0;border-radius:50%;background:transparent;color:inherit;cursor:pointer;display:flex;align-items:center;justify-content:center}
.pt-chip svg{width:12px;height:12px}
.pt-grid{display:grid;grid-template-columns:1fr;gap:1.75rem}

/* Card annuncio */
.pt-card{display:block;text-decoration:none;color:var(--tx);animation:vxRise .5s var(--ease) both}
.pt-ph{position:relative;aspect-ratio:4/3;border-radius:var(--r-lg);overflow:hidden;background:var(--surface2);touch-action:pan-y}
.pt-ph-track{display:flex;height:100%;transition:transform .45s var(--ease)}
.pt-ph-track img{flex:0 0 100%;width:100%;height:100%;object-fit:cover}
.pt-ph-none{display:flex;align-items:center;justify-content:center;height:100%;color:var(--ts)}
.pt-ph-none svg{width:40px;height:40px}
.pt-ph-nav{position:absolute;top:50%;transform:translateY(-50%);width:32px;height:32px;border-radius:50%;border:0;background:rgba(255,255,255,.95);color:#222;display:none;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,.18)}
.pt-ph-nav.prev{left:.6rem}.pt-ph-nav.next{right:.6rem}
.pt-ph-nav svg{width:14px;height:14px}
.pt-dots{position:absolute;bottom:.7rem;left:50%;transform:translateX(-50%);display:flex;gap:4px}
.pt-dots i{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.6)}
.pt-dots i.on{background:#fff}
.pt-badge{position:absolute;top:.75rem;left:.75rem;z-index:2;padding:.35rem .7rem;border-radius:var(--pill);background:rgba(255,255,255,.95);color:#222;font-size:.75rem;font-weight:700;box-shadow:0 2px 8px rgba(0,0,0,.15)}
.pt-tx{padding:.7rem .1rem 0;display:grid;gap:.1rem}
.pt-tx b{font-size:1rem}
.pt-tx span{font-size:.92rem;color:var(--tm)}
.pt-tx em{margin-top:.2rem;font-style:normal;font-size:1rem;font-weight:800}
.pt-tx em small{font-weight:500;color:var(--tm);font-size:.88rem}
.pt-card.hl .pt-ph{box-shadow:0 0 0 3px var(--tx)}
.pt-empty{text-align:center;padding:2.5rem 1rem;border:1px dashed var(--br2);border-radius:var(--r-lg)}
.pt-empty svg{width:40px;height:40px;color:var(--ts)}
.pt-empty h3{margin:.75rem 0 .35rem;font-size:1.15rem}
.pt-empty p{margin:0 auto 1rem;max-width:42ch;color:var(--tm)}
.pt-skel{border-radius:var(--r-lg);aspect-ratio:4/3;background:var(--surface2);position:relative;overflow:hidden}
.pt-skel::after{content:'';position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.6),transparent);animation:ptsh 1.3s infinite}
@keyframes ptsh{to{transform:translateX(100%)}}

/* Mappa: su telefono e tablet è un foglio a tutto schermo */
.pt-map-wrap{position:fixed;inset:68px 0 0 0;z-index:60;background:var(--bg);transform:translateY(100%);visibility:hidden;transition:transform .45s var(--ease),visibility 0s .45s}
body.pt-show-map .pt-map-wrap{transform:none;visibility:visible;transition:transform .45s var(--ease)}
body.pt-show-map{overflow:hidden}
.pt-map{position:relative;width:100%;height:100%;overflow:hidden;background:#E9EEF0}
#ptMap{position:absolute;inset:0}
.pt-map.drawing #ptMap{cursor:crosshair;touch-action:none}
.pt-tiles{filter:grayscale(.55) saturate(.8) brightness(1.04) contrast(.92)}
.pt-zone-btn{position:absolute;top:.85rem;left:50%;transform:translateX(-50%);z-index:500;display:inline-flex;align-items:center;gap:.5rem;height:46px;padding:0 1.2rem;border:0;border-radius:var(--pill);
  background:var(--surface);box-shadow:0 4px 16px rgba(0,0,0,.18);font-family:var(--font);font-size:.92rem;font-weight:800;color:var(--tx);cursor:pointer;white-space:nowrap}
.pt-zone-btn svg{width:18px;height:18px}
.pt-zone-btn.set{background:var(--tx);color:var(--surface)}
.pt-draw-hint{position:absolute;left:50%;top:.85rem;transform:translateX(-50%);z-index:510;display:none;align-items:center;gap:.75rem;padding:.45rem .45rem .45rem 1rem;border-radius:var(--pill);background:#222;color:#fff;
  font-size:.88rem;font-weight:600;box-shadow:0 8px 24px rgba(0,0,0,.25);white-space:nowrap}
.pt-draw-hint button{height:34px;padding:0 .9rem;border:0;border-radius:var(--pill);background:rgba(255,255,255,.16);color:#fff;font-family:var(--font);font-weight:700;cursor:pointer}
.pt-map.drawing .pt-draw-hint{display:flex}
.pt-map.drawing .pt-zone-btn{display:none}
.pt-alert-cta{position:absolute;left:1rem;right:1rem;bottom:calc(5.25rem + env(safe-area-inset-bottom));z-index:500;display:none;align-items:center;gap:.75rem;padding:.6rem .6rem .6rem 1rem;border-radius:var(--r-lg);
  background:var(--surface);box-shadow:0 10px 30px rgba(0,0,0,.22);animation:vxRise .45s var(--spring) both}
.pt-alert-cta.show{display:flex}
.pt-alert-cta span{flex:1;font-size:.88rem;font-weight:600;line-height:1.3}
.pt-alert-cta button{flex-shrink:0;height:42px;padding:0 1rem;border:0;border-radius:var(--pill);font-family:var(--font);font-weight:700;font-size:.88rem;color:#fff;cursor:pointer;
  background:radial-gradient(circle at 30% 20%,var(--brand-hi),var(--brand) 45%,var(--brand-lo))}

/* Pin prezzo */
.pt-pin-wrap{background:none!important;border:0!important}
.pt-pin{display:inline-block;transform:translate(-50%,-50%);padding:.4rem .7rem;border-radius:var(--pill);background:var(--surface);color:var(--tx);font-family:var(--font);font-size:.82rem;font-weight:800;
  white-space:nowrap;box-shadow:0 2px 8px rgba(0,0,0,.25),0 0 0 1px rgba(0,0,0,.06);transition:transform .2s var(--spring),background .2s,color .2s}
.pt-pin.hl,.pt-pin:hover{background:var(--tx);color:var(--surface);transform:translate(-50%,-50%) scale(1.12)}
.leaflet-popup-content-wrapper{border-radius:var(--r-lg)!important;padding:0!important;overflow:hidden;box-shadow:var(--shadow-card)!important}
.leaflet-popup-content{margin:0!important;width:250px!important}
.pt-pop{display:block;text-decoration:none;color:var(--tx);font-family:var(--font)}
.pt-pop img{width:100%;height:140px;object-fit:cover;display:block}
.pt-pop div{padding:.7rem .85rem .8rem}
.pt-pop b{display:block;font-size:.92rem}
.pt-pop small{display:block;color:var(--tm);font-size:.82rem;margin:.1rem 0 .3rem}
.pt-pop em{font-style:normal;font-weight:800}
.leaflet-container{font-family:var(--font)!important}
.leaflet-control-zoom{display:none}

/* Pulsante Mappa / Elenco */
.pt-switch{position:fixed;left:50%;bottom:calc(1.25rem + env(safe-area-inset-bottom));transform:translateX(-50%);z-index:600;display:inline-flex;align-items:center;gap:.5rem;
  height:50px;padding:0 1.35rem;border:0;border-radius:var(--pill);background:#222;color:#fff;font-family:var(--font);font-size:.95rem;font-weight:700;box-shadow:0 10px 28px rgba(0,0,0,.3);cursor:pointer}
.pt-switch:active{transform:translateX(-50%) scale(.96)}
.pt-switch svg{width:18px;height:18px}

/* Fogli (modali): dal basso su telefono, centrati da tablet */
.pt-ov{position:fixed;inset:0;z-index:900;display:flex;align-items:flex-end;justify-content:center;background:rgba(0,0,0,.42);opacity:0;visibility:hidden;transition:opacity .25s,visibility 0s .25s}
.pt-ov.open{opacity:1;visibility:visible;transition:opacity .25s}
.pt-modal{width:100%;max-height:92vh;display:flex;flex-direction:column;border-radius:var(--r-xl) var(--r-xl) 0 0;background:var(--surface);box-shadow:0 24px 64px rgba(0,0,0,.28);
  transform:translateY(100%);transition:transform .5s var(--spring)}
.pt-ov.open .pt-modal{transform:none}
.pt-modal-head{position:relative;display:flex;align-items:center;justify-content:center;min-height:60px;padding:0 3.5rem;border-bottom:1px solid var(--br);font-weight:800}
.pt-modal-head button{position:absolute;left:.85rem;width:38px;height:38px;border-radius:50%;border:0;background:none;cursor:pointer;color:var(--tx);display:flex;align-items:center;justify-content:center}
.pt-modal-head button:hover{background:var(--surface2)}
.pt-modal-head button svg{width:18px;height:18px}
.pt-modal-body{padding:1.25rem;overflow-y:auto}
.pt-modal-body h4{margin:0 0 .7rem;font-size:1.05rem}
.pt-modal-body section + section{margin-top:1.4rem;padding-top:1.4rem;border-top:1px solid var(--br)}
.pt-modal-foot{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.9rem 1.25rem calc(.9rem + env(safe-area-inset-bottom));border-top:1px solid var(--br)}
.pt-pills{display:flex;flex-wrap:wrap;gap:.5rem}
.pt-pills button{min-width:52px;padding:.65rem 1rem;border:1px solid var(--br2);border-radius:var(--pill);background:var(--surface);font-family:var(--font);font-size:.9rem;font-weight:600;color:var(--tx);cursor:pointer;transition:all .2s}
.pt-pills button.on{background:var(--tx);border-color:var(--tx);color:var(--surface)}
.pt-range{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}
.pt-feat-grid{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}
.pt-feat-grid label{display:flex;align-items:center;gap:.6rem;padding:.8rem .9rem;border:1px solid var(--br2);border-radius:var(--r);cursor:pointer;font-size:.88rem;font-weight:600}
.pt-feat-grid input{width:18px;height:18px;accent-color:var(--tx);margin:0}
.pt-feat-grid label:has(input:checked){border-color:var(--tx);background:var(--surface2)}
.pt-note{font-size:.88rem;color:var(--tm);margin:.75rem 0 0;line-height:1.5}
.pt-choice{display:grid;gap:.6rem}
/* opzioni a riga-scheda (popup "Scegli la zona"): icona, titolo + spiegazione, freccia */
.pt-way{display:flex;align-items:center;gap:.9rem;width:100%;min-height:76px;padding:.9rem 1rem;border:1.5px solid var(--br);border-radius:18px;
  background:var(--surface);color:var(--tx);font-family:var(--font);text-align:left;cursor:pointer;
  transition:border-color .15s,background .15s,box-shadow .2s,transform .15s var(--spring)}
.pt-way:hover{border-color:var(--tx);box-shadow:0 6px 18px rgba(0,0,0,.08)}
.pt-way:active{transform:scale(.98)}
.pt-way:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
.pt-way[hidden]{display:none}
.pt-way > i{flex:0 0 46px;height:46px;border-radius:14px;background:var(--brand-dim);color:var(--brand);display:flex;align-items:center;justify-content:center}
.pt-way > i svg{width:22px;height:22px}
.pt-way > span{flex:1;min-width:0;display:grid;gap:.15rem}
.pt-way b{font-size:1rem;font-weight:800;letter-spacing:-.01em}
.pt-way small{font-size:.86rem;line-height:1.4;color:var(--tm)}
.pt-way > svg{flex-shrink:0;width:18px;height:18px;color:var(--tm);transition:transform .2s var(--ease)}
.pt-way:hover > svg{transform:translateX(3px);color:var(--tx)}
.pt-done{text-align:center;padding:1rem 0}
.pt-done .vx-icon-hero{margin:0 auto 1rem}

/* Footer */
.pt-foot{border-top:1px solid var(--br);background:var(--surface2)}
.pt-foot-in{max-width:1100px;margin:0 auto;padding:1.5rem 1rem 2rem;display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;font-size:.88rem;color:var(--tm)}
.pt-foot-in nav{display:flex;gap:1.1rem;flex-wrap:wrap}
.pt-foot-in a{text-decoration:none}
body.pt-view-res .pt-foot{display:none}

/* ── Tablet ─────────────────────────────────────────────── */
@media (min-width:640px){
  .pt-home{padding:1rem 1.5rem 4rem}
  .pt-hero{padding:5rem 1.5rem 4.5rem}
  .pt-find{grid-template-columns:1fr auto auto;border-radius:22px}
  .pt-find-go{grid-column:auto;padding:0 1.6rem}
  .pt-find-type{grid-column:1/2}
  .pt-shortcuts{justify-content:center;gap:1.25rem}
  .pt-shortcuts > *{flex:0 0 96px}
  .pt-ai button span{display:inline}
  .pt-ai button{padding:0 1.3rem}
  .pt-grid{grid-template-columns:repeat(2,1fr);gap:2rem 1.25rem}
  .pt-list{padding:1rem 1.5rem 6.5rem}
  .pt-chips{margin:0 0 .9rem;padding:0;flex-wrap:wrap}
  .pt-ov{align-items:center;padding:1.5rem}
  .pt-modal{max-width:560px;border-radius:var(--r-xl);transform:translateY(40px)}
  .pt-modal-foot{padding-bottom:.9rem}
  .pt-alert-cta{left:50%;right:auto;transform:translateX(-50%);width:max-content;max-width:calc(100% - 2rem);border-radius:var(--pill)}
  .pt-agency{display:inline-flex}
  .pt-feat-grid{grid-template-columns:repeat(3,1fr)}
}
@media (min-width:900px){
  /* riquadro con la foto più grande (più alto e più largo della colonna); titolo e ricerca restano uguali */
  .pt-hero{padding:7rem 2rem 6.5rem;margin-inline:max(-6rem, min(0px, calc((1180px - 100vw) / 2 + 1rem)))}
  .pt-find{grid-template-columns:minmax(0,1fr) 210px auto auto;padding:.5rem;border-radius:var(--pill)}
  .pt-find-where{grid-column:auto;border-radius:var(--pill);background:transparent}
  .pt-find-where:focus-within{box-shadow:none;background:var(--surface2)}
  .pt-find-type{grid-column:auto;border-radius:0;background:transparent;border-left:1px solid var(--br)}
  .pt-find-filters{border-radius:50%}
  .pt-find-go{border-radius:var(--pill)}
  .pt-top{height:80px}
  .pt-map-wrap{inset:80px 0 0 0}
  .pt-grid{grid-template-columns:repeat(3,1fr)}
  .pt-home .pt-grid{grid-template-columns:repeat(4,1fr)}
  .pt-ph-nav{display:flex;opacity:0;transition:opacity .2s}
  .pt-card:hover .pt-ph-nav{opacity:1}
}
/* ── Computer grande: elenco + mappa affiancati ─────────── */
@media (min-width:1200px){
  .pt-res{grid-template-columns:minmax(0,1fr) minmax(420px,44%)}
  .pt-grid{grid-template-columns:repeat(2,1fr)}
  .pt-list{padding:1.25rem 2rem 3rem}
  .pt-map-wrap{position:sticky;top:80px;height:calc(100vh - 80px);inset:auto;transform:none;visibility:visible;transition:none;padding:0 1rem 1rem 0;background:transparent;z-index:1}
  .pt-map{border-radius:var(--r-xl);box-shadow:0 0 0 1px var(--br)}
  .pt-switch{display:none}
  .leaflet-control-zoom{display:block}
  .pt-alert-cta{bottom:1.25rem}
}
@media (min-width:1500px){.pt-grid{grid-template-columns:repeat(3,1fr)}}
@media (prefers-reduced-motion:reduce){.pt-card{animation:none}}

/* Telefono, schermata risultati: più spazio al riepilogo della ricerca */
@media (max-width:639px){
  body.pt-view-res .pt-top .vx-brand span,
  body.pt-view-res .pt-top .vx-top-right{display:none}
  body.pt-view-res .pt-summary{max-width:none}
}
