  /* ============ DESIGN TOKENS ============ */
  /* Si agganciano ai token del sito (modules/main.css): cambiano da soli con
     data-theme="light|dark" su <html>. I valori dopo la virgola sono il fallback
     nel caso la pagina venga aperta senza il CSS del sito. */
  .fv2-root {
    --fv2-bg-primary: var(--card-bg, var(--bg-surface, #ffffff));
    --fv2-bg-secondary: var(--bg-secondary, #f8fafc);
    --fv2-bg-tertiary: var(--bg-tertiary, #eef2f7);
    --fv2-text-primary: var(--text-primary, #0f172a);
    --fv2-text-secondary: var(--text-secondary, #475569);
    --fv2-text-muted: var(--text-secondary, #64748b);
    --fv2-text-dim: var(--text-dim, #94a3b8);
    --fv2-border-subtle: var(--border-subtle, rgba(15,23,42,0.08));
    --fv2-border-strong: var(--glass-border, rgba(15,23,42,0.14));
    --fv2-accent-primary: var(--accent-primary, #2563eb);
    --fv2-accent-gold: var(--accent-gold, #d4af37);
    --fv2-badge-launch-bg:rgba(59,130,246,0.10); --fv2-badge-launch-color:#1d4ed8;
    --fv2-badge-offer-bg:rgba(239,68,68,0.10); --fv2-badge-offer-color:#dc2626;
    --fv2-badge-prop-bg:#eff6ff; --fv2-badge-prop-color:#1d4ed8;
    --fv2-match-high:#059669; --fv2-match-mid:#d97706;
    --fv2-card-radius:14px; --fv2-card-gap:1.5rem;
    --fv2-shadow-card:0 4px 16px rgba(15,23,42,0.06),0 1px 3px rgba(15,23,42,0.04);
    --fv2-shadow-hover:0 1px 15px rgba(15,23,42,0.10),0 2px 6px rgba(15,23,42,0.06);
    --fv2-transition:0.25s cubic-bezier(0.4,0,0.2,1);
  }

  /* Tema scuro: solo ciò che il sito non ha (ombre, badge, mappa, stelle vuote) */
  html[data-theme="dark"] .fv2-root{
    --fv2-badge-launch-bg:rgba(59,130,246,0.20); --fv2-badge-launch-color:#93c5fd;
    --fv2-badge-offer-bg:rgba(239,68,68,0.20);  --fv2-badge-offer-color:#fca5a5;
    --fv2-badge-prop-bg:rgba(59,130,246,0.18);  --fv2-badge-prop-color:#93c5fd;
    --fv2-shadow-card:0 4px 16px rgba(0,0,0,0.45),0 1px 3px rgba(0,0,0,0.35);
    --fv2-shadow-hover:0 1px 15px rgba(0,0,0,0.55),0 2px 6px rgba(0,0,0,0.40);
  }
  html[data-theme="dark"] .fv2-root{--fv2-star-empty:#3b4763}
  html[data-theme="light"] .fv2-root{--fv2-star-empty:#e2e8f0}
  .fv2-root{--fv2-star-empty:#e2e8f0}

  .fv2-root *,.fv2-root *::before,.fv2-root *::after{box-sizing:border-box}
.fv2-root{font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;background:transparent;color:var(--fv2-text-primary);line-height:1.5;-webkit-font-smoothing:antialiased}
.fv2-root img{display:block;max-width:100%}
.fv2-root a{color:inherit;text-decoration:none}
/* Reset di base del feed. Sfondo e colore valgono SOLO per i bottoni senza classe:
   `.fv2-root button` ha specificita' 0,1,1 e sovrascriverebbe ogni componente con una
   sola classe (.fv2-strip-nav, .fv2-page-num, .nx-btn-filter-*) rendendoli invisibili. */
/* Reset MINIMO: solo tipografia, cursore e bordo. Sfondo e colore NON si toccano qui:
   una regola `.fv2-root button` (0,1,1) sovrascriverebbe i componenti con una classe
   (.fv2-view-btn, .nx-richiesta button, .nx-btn-filter-*) rendendoli invisibili.
   Ogni componente dichiara il proprio sfondo/colore. */
.fv2-root button{font:inherit;cursor:pointer;border:none}

  .fv2-container{max-width:1320px;margin:0 auto;padding:2rem 1.5rem}

  /* ============ HEADER ============ */
  .fv2-page-header{margin-bottom:1.5rem}
  .fv2-page-header h1{font-size:1.6rem;font-weight:700;letter-spacing:-0.02em;margin:0 0 0.35rem;display:flex;align-items:center;gap:0.6rem}
  .fv2-page-header h1 svg{width:24px;height:24px;color:var(--fv2-accent-primary)}
  .fv2-page-header p{color:var(--fv2-text-muted);margin:0;font-size:0.92rem}

  /* ============ VIEW SWITCHER ============ */
  .fv2-view-switcher{
    display:inline-flex;background:var(--fv2-bg-primary);border:1px solid var(--fv2-border-subtle);
    border-radius:10px;padding:4px;gap:2px;margin-bottom:1.5rem;
    box-shadow:var(--fv2-shadow-card);
  }
  /* Componente autosufficiente: dichiara sfondo e bordo propri, così non dipende
     dal reset globale (che ora non tocca i bottoni con classe) e non mostra il
     grigio di default del browser. */
  .fv2-view-btn{
    display:inline-flex;align-items:center;gap:6px;padding:0.5rem 0.9rem;
    border:0;background:transparent;appearance:none;-webkit-appearance:none;
    border-radius:7px;font-size:0.82rem;font-weight:600;color:var(--fv2-text-muted);
    transition:background var(--fv2-transition),color var(--fv2-transition);
    white-space:nowrap;cursor:pointer;
  }
  .fv2-view-btn svg{width:15px;height:15px}
  .fv2-view-btn:hover{background:var(--fv2-bg-tertiary);color:var(--fv2-text-primary)}
  .fv2-view-btn.is-active{background:var(--fv2-bg-secondary);color:var(--fv2-text-primary)}

  /* ============ VIEW CONTAINERS ============ */
  .fv2-view{display:none}
  .fv2-view.is-active{display:block;animation:fv2FadeIn 0.35s ease}
  @keyframes fv2FadeIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}

  /* ============ COMMON CARD PARTS ============ */
  .fv2-type-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:4px;font-weight:700;font-size:0.68rem;text-transform:uppercase;letter-spacing:0.05em}
  .fv2-type-badge svg{width:12px;height:12px}
  .fv2-type-badge.is-property{background:var(--fv2-badge-prop-bg);color:var(--fv2-badge-prop-color)}
  .fv2-type-badge.is-tag{background:var(--fv2-bg-tertiary);color:var(--fv2-text-secondary);text-transform:none;letter-spacing:0;font-weight:500}

  .fv2-cat-label,.fv2-loc-label{display:inline-flex;align-items:center;gap:4px;color:var(--fv2-text-muted);font-weight:500;font-size:0.75rem}
  .fv2-cat-label svg,.fv2-loc-label svg{width:12px;height:12px}

  .fv2-match{display:inline-flex;align-items:center;gap:4px;padding:5px 10px;background:rgba(15,23,42,0.75);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-radius:20px;font-size:0.72rem;font-weight:700;color:white;letter-spacing:0.02em}
  .fv2-match svg{width:13px;height:13px}
  .fv2-match.is-high{background:rgba(5,150,105,0.90)}
  .fv2-match.is-mid{background:rgba(15,23,42,0.75)}

  .fv2-quick-action{position:absolute;top:12px;right:12px;width:38px;height:38px;border-radius:50%;background:rgb(92 92 92 / 32%);backdrop-filter:blur(11px);display:flex;align-items:center;justify-content:center;color:var(--fv2-text-primary);transition:all var(--fv2-transition);box-shadow:0 2px 8px rgba(0,0,0,0.15)}
  .fv2-quick-action:hover{transform:scale(1.08);background:var(--fv2-accent-primary);color:white}
  .fv2-quick-action svg{width:18px;height:18px}

  .fv2-promo-inline{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:6px;font-size:0.72rem;font-weight:700;text-transform:uppercase;letter-spacing:0.04em;width:fit-content}
  .fv2-promo-inline svg{width:14px;height:14px}
  .fv2-promo-inline.is-launch{background:var(--fv2-badge-launch-bg);color:var(--fv2-badge-launch-color);border:1px dashed rgba(29,78,216,0.3)}
  .fv2-promo-inline.is-offer{background:var(--fv2-badge-offer-bg);color:var(--fv2-badge-offer-color);border:1px dashed rgba(220,38,38,0.3)}
  .fv2-promo-inline .fv2-promo-value{font-weight:500;font-size:0.68rem;text-transform:none;letter-spacing:0;opacity:0.85}

  .fv2-rating-stars{display:inline-flex;gap:1px}
  .fv2-rating-stars svg{width:16px;height:16px;color:var(--fv2-star-empty)}
  .fv2-rating-stars svg.is-filled{color:var(--fv2-accent-gold);fill:var(--fv2-accent-gold)}
  .fv2-rating-value{font-weight:700;color:var(--fv2-text-primary);margin-left:2px}

  .fv2-specs{display:flex;gap:0.4rem;flex-wrap:wrap}
  .fv2-spec{display:inline-flex;align-items:flex-start;gap:4px;font-size:0.72rem;color:var(--fv2-text-secondary);background:var(--fv2-bg-tertiary);padding:3px 8px;border-radius:4px}
  .fv2-spec svg{width:13px;height:13px;color:var(--fv2-text-muted);margin-top:3px}
  .fv2-amenities{display:flex;gap:0.35rem;flex-wrap:wrap}
  .fv2-amenity{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:6px;background:var(--fv2-bg-tertiary);color:var(--fv2-text-muted);cursor:help;transition:all var(--fv2-transition)}
  .fv2-amenity:hover{background:var(--fv2-accent-primary);color:white;transform:translateY(-1px)}
  .fv2-amenity svg{width:13px;height:13px}

  .fv2-price-label{font-size:0.68rem;text-transform:uppercase;letter-spacing:0.05em;color:var(--fv2-text-dim);font-weight:600}
  .fv2-price-value{font-size:1.05rem;font-weight:700;color:var(--fv2-text-primary)}
  .fv2-price-value small{font-size:0.72rem;font-weight:500;color:var(--fv2-text-muted)}
  .fv2-price-value.is-private{font-size:0.72rem;color:var(--fv2-accent-primary);line-height:1.18}

  .fv2-cta{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:0.65rem 1.1rem;border-radius:10px;font-size:0.8rem;font-weight:700;letter-spacing:0.02em;background:var(--fv2-text-primary);color:white;transition:all var(--fv2-transition);white-space:nowrap}
  .fv2-cta:hover{background:var(--fv2-accent-primary);transform:translateY(-1px)}
  .fv2-cta svg{width:14px;height:14px}
  .fv2-cta.is-secondary{background:var(--fv2-bg-tertiary);color:var(--fv2-text-primary)}
  .fv2-cta.is-secondary:hover{background:var(--fv2-text-primary);color:white}

  /* ============ VIEW 1: GRID ============ */
  .fv2-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--fv2-card-gap);align-items:start}
  .fv2-grid .fv2-card{background:var(--fv2-bg-primary);border-radius:var(--fv2-card-radius);overflow:hidden;box-shadow:var(--fv2-shadow-card);transition:transform var(--fv2-transition),box-shadow var(--fv2-transition);display:flex;flex-direction:column;height:100%}
  .fv2-grid .fv2-card:hover{transform:translateY(-3px);box-shadow:var(--fv2-shadow-hover)}
  /* Altezza DINAMICA: nessun aspect-ratio fisso, l'altezza segue la foto (vero mosaico).
     Il tetto a 440px evita che una foto verticale diventi una card chilometrica;
     in quel caso object-fit:cover ritaglia dal centro. Per tornare alle card uniformi
     basta rimettere `aspect-ratio:16/10` qui e `height:100%` sull'img. */
  .fv2-grid .fv2-card-media{position:relative;overflow:hidden;background:var(--fv2-bg-tertiary)}
  .fv2-grid .fv2-card-media img{width:100%;height:auto;object-fit:cover;display:block;transition:transform 0.5s ease}
  .fv2-grid .fv2-card:hover .fv2-card-media img{transform:scale(1.04)}
  .fv2-grid .fv2-card-media .fv2-match{position:absolute;top:12px;left:12px}
  .fv2-grid .fv2-card-body{padding:1rem 1.1rem 1.1rem;display:flex;flex-direction:column;gap:0.7rem;flex:1}
  .fv2-grid .fv2-card-meta{display:flex;flex-wrap:wrap;align-items:center;gap:0.5rem}
  .fv2-grid .fv2-card-title{font-size:1.02rem;font-weight:600;line-height:1.35;margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.7em}
  .fv2-grid .fv2-card-footer{display:flex;align-items:center;justify-content:space-between;gap:0.75rem;margin-top:auto;padding-top:0.8rem;border-top:1px solid var(--fv2-border-subtle)}
  .fv2-grid .fv2-price{display:flex;flex-direction:column;gap:2px}

  /* ============ VIEW 2: LIST ============ */
  .fv2-list{display:flex;flex-direction:column;gap:1rem}
  .fv2-list .fv2-list-item{display:grid;grid-template-columns:280px 1fr auto;gap:0;background:var(--fv2-bg-primary);border-radius:var(--fv2-card-radius);overflow:hidden;box-shadow:var(--fv2-shadow-card);transition:transform var(--fv2-transition),box-shadow var(--fv2-transition);align-items:stretch;max-height:190px}
  .fv2-list .fv2-list-item:hover{transform:translateY(-2px);box-shadow:var(--fv2-shadow-hover)}
  .fv2-list .fv2-list-media{position:relative;overflow:hidden;background:var(--fv2-bg-tertiary);object-fit:cover;max-height:190px}
  .fv2-list .fv2-list-media img{width:100%;height:100%;object-fit:cover;transition:transform 0.5s ease}
  .fv2-list .fv2-list-item:hover .fv2-list-media img{transform:scale(1.04)}
  .fv2-list .fv2-list-media .fv2-match{position:absolute;top:12px;left:12px}
  .fv2-list .fv2-list-body{padding:1.1rem 1.35rem;display:flex;flex-direction:column;gap:0.55rem;justify-content:center}
  .fv2-list .fv2-list-meta{display:flex;flex-wrap:wrap;align-items:center;gap:0.6rem}
  .fv2-list .fv2-list-title{font-size:1.15rem;font-weight:600;line-height:1.3;margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .fv2-list .fv2-list-title a:hover{color:var(--fv2-accent-primary)}
  .fv2-list .fv2-list-tags{display:flex;gap:0.5rem;flex-wrap:wrap;align-items:center}
  .fv2-list .fv2-list-side{padding:1.1rem 1.35rem;display:flex;flex-direction:column;justify-content:center;gap:0.75rem;border-left:1px solid var(--fv2-border-subtle);min-width:200px;background:linear-gradient(90deg,transparent,var(--fv2-bg-secondary) 40%)}
  .fv2-list .fv2-list-side .fv2-price{display:flex;flex-direction:column;gap:2px}
  .fv2-list .fv2-list-side .fv2-cta{width:100%}
  .fv2-list .fv2-list-stats{display:flex;flex-direction:column;gap:0.35rem;font-size:0.75rem;color:var(--fv2-text-muted)}
  .fv2-list .fv2-list-stats span{display:inline-flex;align-items:center;gap:4px}
  .fv2-list .fv2-list-stats svg{width:13px;height:13px;color:var(--fv2-text-dim)}

  /* ============ VIEW 3: COMPACT ============ */
  .fv2-compact{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:0.9rem}
  .fv2-compact-item{background:var(--fv2-bg-primary);border-radius:12px;padding:0.85rem;display:flex;gap:0.85rem;box-shadow:var(--fv2-shadow-card);transition:transform var(--fv2-transition),box-shadow var(--fv2-transition);align-items:center}
  .fv2-compact-item:hover{transform:translateY(-2px);box-shadow:var(--fv2-shadow-hover)}
  .fv2-compact-thumb{width:72px;height:72px;border-radius:10px;overflow:hidden;flex-shrink:0;background:var(--fv2-bg-tertiary)}
  .fv2-compact-thumb img{width:100%;height:100%;object-fit:cover}
  .fv2-compact-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:0.3rem}
  .fv2-compact-title{font-size:0.92rem;font-weight:600;line-height:1.3;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .fv2-compact-title a:hover{color:var(--fv2-accent-primary)}
  .fv2-compact-loc{font-size:0.72rem;color:var(--fv2-text-muted);display:flex;align-items:center;gap:4px}
  .fv2-compact-loc svg{width:11px;height:11px}
  .fv2-compact-bottom{display:flex;align-items:center;justify-content:space-between;margin-top:0.15rem}
  .fv2-compact-price{font-size:0.88rem;font-weight:700;color:var(--fv2-text-primary)}
  .fv2-compact-price small{font-size:0.68rem;color:var(--fv2-text-muted);font-weight:500}
  .fv2-compact-match{display:inline-flex;align-items:center;gap:3px;padding:2px 7px;border-radius:10px;font-size:0.65rem;font-weight:700;color:white}
  .fv2-compact-match svg{width:10px;height:10px}
  .fv2-compact-match.is-high{background:var(--fv2-match-high)}
  .fv2-compact-match.is-mid{background:var(--fv2-match-mid)}

  /* ============ VIEW 4: SPLIT (map-style) ============ */
  .fv2-split{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem;height:auto;min-height:600px}
  .fv2-split .fv2-split-list{display:flex;flex-direction:column;gap:0.75rem;overflow-y:auto;max-height:640px;padding-right:4px}
  .fv2-split .fv2-split-item{display:flex;gap:0.75rem;padding:0.75rem;background:var(--fv2-bg-primary);border-radius:10px;box-shadow:var(--fv2-shadow-card);cursor:pointer;transition:all var(--fv2-transition);border:2px solid transparent}
  .fv2-split .fv2-split-item:hover{border-color:var(--fv2-accent-primary)}
  .fv2-split .fv2-split-item.is-selected{border-color:var(--fv2-accent-primary);box-shadow:0 4px 20px rgba(37,99,235,0.15)}
  .fv2-split .fv2-split-item-img{width:100px;height:100px;border-radius:8px;overflow:hidden;flex-shrink:0}
  .fv2-split .fv2-split-item-img img{width:100%;height:100%;object-fit:cover}
  .fv2-split .fv2-split-item-body{flex:1;display:flex;flex-direction:column;gap:0.3rem;min-width:0}
  .fv2-split .fv2-split-item-title{font-size:0.88rem;font-weight:600;line-height:1.3;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .fv2-split .fv2-split-item-meta{font-size:0.72rem;color:var(--fv2-text-muted);display:flex;align-items:center;gap:4px}
  .fv2-split .fv2-split-item-meta svg{width:11px;height:11px}
  .fv2-split .fv2-split-item-bottom{display:flex;align-items:center;justify-content:space-between;margin-top:auto}
  .fv2-split .fv2-split-item-price{font-size:0.88rem;font-weight:700}
  .fv2-split .fv2-split-map{background:linear-gradient(135deg,#e0e7ff 0%,#f0f9ff 50%,#ecfdf5 100%);border-radius:var(--fv2-card-radius);position:relative;overflow:hidden;box-shadow:var(--fv2-shadow-card);min-height:600px;display:flex;align-items:center;justify-content:center}
  .fv2-split .fv2-split-map::before{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(15,23,42,0.04) 1px,transparent 1px),linear-gradient(90deg,rgba(15,23,42,0.04) 1px,transparent 1px);background-size:40px 40px}
  .fv2-split .fv2-map-pin{position:absolute;width:44px;height:44px;border-radius:50% 50% 50% 0;background:var(--fv2-accent-primary);transform:rotate(-45deg);display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px rgba(37,99,235,0.4);cursor:pointer;transition:all var(--fv2-transition);border:3px solid white}
  .fv2-split .fv2-map-pin:hover{transform:rotate(-45deg) scale(1.15);z-index:10}
  .fv2-split .fv2-map-pin.is-selected{background:var(--fv2-match-high);box-shadow:0 6px 20px rgba(5,150,105,0.5);transform:rotate(-45deg) scale(1.2);z-index:11}
  .fv2-split .fv2-map-pin span{transform:rotate(45deg);color:white;font-weight:800;font-size:0.72rem}
  .fv2-split .fv2-map-label{position:absolute;bottom:1rem;left:1rem;background:rgba(255,255,255,0.95);backdrop-filter:blur(8px);padding:0.6rem 1rem;border-radius:10px;box-shadow:var(--fv2-shadow-card);font-size:0.78rem;color:var(--fv2-text-secondary);font-weight:500}
  .fv2-split .fv2-map-label strong{color:var(--fv2-text-primary)}

  /* ============ RESPONSIVE ============ */
  @media (max-width:1024px){
    .fv2-split{grid-template-columns:1fr}
    .fv2-split .fv2-split-list{max-height:none;order:2}
    .fv2-split .fv2-split-map{order:1;min-height:400px}
  }
  @media (max-width:768px){
    /* il tetto di 190px vale solo per la riga orizzontale: in colonna taglierebbe tutto */
    .fv2-list .fv2-list-item{grid-template-columns:1fr;max-height:none}
    .fv2-list .fv2-list-media{min-height:180px;max-height:none;aspect-ratio:16/9}
    .fv2-list .fv2-list-side{border-left:none;border-top:1px solid var(--fv2-border-subtle);flex-direction:row;align-items:center;justify-content:space-between;padding:1rem 1.2rem}
    .fv2-list .fv2-list-side .fv2-cta{width:auto}
    .fv2-list .fv2-list-stats{flex-direction:row;gap:0.75rem}
  }
  @media (max-width:640px){
    .fv2-container{padding:1.25rem 1rem}
    .fv2-view-switcher{width:100%;overflow-x:auto}
    .fv2-view-btn{flex:1;justify-content:center;padding:0.5rem 0.6rem;font-size:0.75rem}
    .fv2-view-btn span{display:none}
    .fv2-view-btn svg{width:18px;height:18px}
  }
  @media (prefers-reduced-motion:reduce){.fv2-root *{transition:none!important;animation:none!important}}

  /* ============ AGGIUNTE FEED V2 (29/10/2026) ============ */
  .fv2-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.25rem}
  .fv2-toolbar .fv2-view-switcher{margin-bottom:0}
  .fv2-section-title{display:flex;align-items:center;gap:0.5rem;font-size:0.88rem;font-weight:700;text-transform:uppercase;letter-spacing:0.05em;color:var(--fv2-text-muted);margin:2.25rem 0 1rem}
  .fv2-section-title svg{width:16px;height:16px}
  .fv2-strip{display:flex;gap:1rem;overflow-x:auto;padding:0.25rem 0.25rem 0.75rem;scrollbar-width:thin;-webkit-overflow-scrolling:touch}
  .fv2-strip>.fv2-compact-item{flex:0 0 300px;min-width:300px}
  .fv2-pagination{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;margin:2rem 0 0;padding-top:1.25rem;border-top:1px solid var(--fv2-border-subtle)}
  .fv2-page-info{font-size:0.82rem;color:var(--fv2-text-muted)}
  .fv2-page-controls{display:flex;align-items:center;gap:0.35rem;flex-wrap:wrap}
  .fv2-page-btn,.fv2-page-num{display:inline-flex;align-items:center;justify-content:center;gap:4px;min-width:36px;height:36px;padding:0 0.7rem;border-radius:8px;background:var(--fv2-bg-primary);border:1px solid var(--fv2-border-subtle);font-size:0.82rem;font-weight:600;color:var(--fv2-text-secondary);transition:all var(--fv2-transition)}
  .fv2-page-btn:hover,.fv2-page-num:hover{border-color:var(--fv2-accent-primary);color:var(--fv2-accent-primary)}
  .fv2-page-num.is-active{background:var(--fv2-text-primary);border-color:var(--fv2-text-primary);color:var(--fv2-bg-primary)}
  .fv2-page-dots{color:var(--fv2-text-dim);padding:0 2px;font-size:0.8rem}
  .fv2-page-btn svg,.fv2-page-num svg{width:14px;height:14px}
  .fv2-price-value s{color:var(--fv2-text-dim);font-size:0.8rem;font-weight:500;margin-right:2px}
  .fv2-rating-stars{align-items:center}
  .fv2-rating-value{font-size:0.72rem;color:var(--fv2-text-muted);margin-left:2px}
  @media (max-width:640px){.fv2-strip>.fv2-compact-item{flex:0 0 260px;min-width:260px}}


  /* ============ AGGIORNAMENTO 29/10/2026 (sera) ============ */
  /* Griglia "masonry" dinamica: colonne CSS, la card non si spezza tra due colonne */
  .fv2-grid{display:block;columns:290px auto;column-gap:30px;column-fill:balance;padding:0;transition:all 0.2s;position:relative;box-sizing:border-box}
  .fv2-grid .fv2-card{
    display:flex;flex-direction:column;
    width:100%;min-width:260px;max-width:100%;box-sizing:border-box;
    background:var(--fv2-bg-primary);border-radius:var(--fv2-card-radius);overflow:hidden;
    box-shadow:var(--fv2-shadow-card);
    transition:transform var(--fv2-transition),box-shadow var(--fv2-transition);
    height:auto;margin:0 0 2rem;
    break-inside:avoid;-webkit-column-break-inside:avoid;page-break-inside:avoid;
  }
  .fv2-grid .fv2-card:hover{transform:translateY(-3px);box-shadow:var(--fv2-shadow-hover)}
  /* CTA col colore d'accento del sito (segue il tema) */
  .fv2-cta{background:var(--accent-primary,var(--fv2-accent-primary));color:#fff!important}
  .fv2-cta:hover{background:var(--accent-primary,var(--fv2-accent-primary));filter:brightness(.92);transform:translateY(-1px)}
  /* Compatta/strisce: niente overflow con prezzi lunghi o titoli enormi */
  .fv2-compact-price{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}
  .fv2-compact-match{flex-shrink:0}
  .fv2-compact-loc{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .fv2-compact-loc svg{flex-shrink:0}
  .fv2-strip{align-items:stretch}
  /* Icone del cambio vista: SVG inline, nessuna dipendenza da Lucide */
  .fv2-view-btn svg{width:15px;height:15px;flex-shrink:0}

  /* Badge promo: valori lunghi (es. "Sconto 35% per pernottamenti superiori a 3 notti") */
  .fv2-promo-inline{max-width:100%;min-width:0;white-space:nowrap;align-items:center}
  .fv2-promo-inline svg{flex-shrink:0}
  .fv2-promo-inline .fv2-promo-value{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block;vertical-align:bottom;max-width:100%}
  .fv2-grid .fv2-card-body{min-width:0}
  .fv2-list .fv2-list-body{min-width:0}
  /* Lista: la foto riempie il riquadro senza allungare la riga (le immagini verticali la facevano esplodere) */
  .fv2-list .fv2-list-media{position:relative;min-height:190px;overflow:hidden}
  .fv2-list .fv2-list-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
  .fv2-list .fv2-list-side{min-width:210px;max-width:240px}

  /* ============ TEMA SCURO: ritocchi mirati ============ */
  html[data-theme="dark"] .fv2-quick-action{background:rgba(15,23,42,0.78);color:#f1f5f9}
  html[data-theme="dark"] .fv2-quick-action:hover{background:var(--fv2-accent-primary);color:var(--fv2-bg-primary)}
  html[data-theme="dark"] .fv2-split .fv2-split-map{background:linear-gradient(135deg,#111a2e 0%,#0f1b26 50%,#0e1f1a 100%)}
  html[data-theme="dark"] .fv2-split .fv2-split-map::before{background-image:linear-gradient(rgba(255,255,255,0.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,0.05) 1px,transparent 1px)}
  html[data-theme="dark"] .fv2-split .fv2-map-label{background:rgba(17,24,39,0.92);color:var(--fv2-text-secondary)}
  html[data-theme="dark"] .fv2-split .fv2-map-label strong{color:var(--fv2-text-primary)}
  html[data-theme="dark"] .fv2-cta{color:var(--text-on-accent,#0d1220)!important}
  html[data-theme="dark"] .fv2-cta:hover{color:var(--text-on-accent,#0d1220)!important}
  html[data-theme="dark"] .fv2-list .fv2-list-side{background:linear-gradient(90deg,transparent,var(--fv2-bg-tertiary) 40%)}
  html[data-theme="dark"] .fv2-price-value s{color:var(--fv2-text-dim)}
  html[data-theme="dark"] .fv2-promo-inline.is-launch{border-color:rgba(147,197,253,0.35)}
  html[data-theme="dark"] .fv2-promo-inline.is-offer{border-color:rgba(252,165,165,0.35)}
  /* Le stelle VUOTE restano smorzate anche se il sito colora .lucide-star in dorato nel tema scuro */
  .fv2-root .fv2-rating-stars svg:not(.is-filled){color:var(--fv2-accent-gold);fill:none!important}
  .fv2-root .fv2-rating-stars svg.is-filled{color:var(--fv2-accent-gold)!important;fill:var(--fv2-accent-gold)!important}
  /* Su desktop/tablet i tag restano su una riga: con il tetto di 190px non devono spingere */
  @media (min-width:769px){
    .fv2-list .fv2-list-tags{flex-wrap:nowrap;overflow:hidden;max-height:26px}
    .fv2-list .fv2-list-body{padding:0.6rem 1.2rem;gap:0.42rem}
    .fv2-list .fv2-list-side{padding:0.85rem 1.2rem;gap:0.45rem}
  }

  /* ============ FRECCE PER LE STRISCE (chi non ha trackpad) ============ */
  .fv2-strip-wrap{position:relative}
  .fv2-strip{scroll-behavior:smooth}
  .fv2-strip-nav{
    position:absolute;top:50%;transform:translateY(-50%);z-index:3;
    width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;
    background:var(--fv2-bg-primary);color:var(--fv2-text-primary);
    border:1px solid var(--fv2-border-subtle);box-shadow:var(--fv2-shadow-card);
    transition:opacity .2s ease,background .2s ease,color .2s ease,transform .2s ease;
    opacity:0;pointer-events:none;cursor:pointer;
  }
  .fv2-strip-nav.is-prev{left:-8px}
  .fv2-strip-nav.is-next{right:-8px}
  .fv2-strip-wrap.has-prev .fv2-strip-nav.is-prev,
  .fv2-strip-wrap.has-next .fv2-strip-nav.is-next{opacity:1;pointer-events:auto}
  .fv2-strip-nav:hover{background:var(--fv2-accent-primary);color:#fff}
  .fv2-strip-nav:active{transform:translateY(-50%) scale(.94)}
  .fv2-strip-nav svg{width:18px;height:18px}
  .fv2-strip-nav[disabled]{opacity:0!important;pointer-events:none!important}
  @media (max-width:640px){.fv2-strip-nav{display:none}}

  /* Pannello filtri: la regola del sito prevede solo margin-top; qui serve anche il respiro sotto */
  .fv2-root .nx-filter-mobile-drawer{margin-bottom:2rem}

  /* ============ NODI CITTÀ (mappa del feed) ============ */
  /* La puntina è la stessa forma di prima (div + border-radius + rotate): niente SVG. */
  .fv2-split .fv2-city-node{
    position:absolute;width:44px;height:44px;z-index:2;
    transform:translate(-50%,-100%);
    transition:transform var(--fv2-transition),filter var(--fv2-transition);
  }
  .fv2-split .fv2-city-node:hover,.fv2-split .fv2-city-node:focus-visible{
    transform:translate(-50%,-100%) scale(1.08);z-index:6
  }
  .fv2-city-pin{
    position:relative;width:44px;height:44px;border-radius:50% 50% 50% 0;
    background:var(--fv2-accent-primary);transform:rotate(-45deg);
    display:flex;align-items:center;justify-content:center;
    border:3px solid var(--fv2-bg-primary);
    box-shadow:0 4px 12px rgba(37,99,235,.35);
  }
  .fv2-city-count{transform:rotate(45deg);color:#fff;font-weight:800;font-size:.76rem;line-height:1}
  .fv2-city-pin::after{
    content:'';position:absolute;inset:-6px;border-radius:50% 50% 50% 0;
    border:2px solid var(--fv2-accent-primary);opacity:.4;
    animation:fv2CityPulse 2.8s ease-out infinite;pointer-events:none;
  }
  @keyframes fv2CityPulse{0%{transform:scale(.92);opacity:.45}70%{transform:scale(1.6);opacity:0}100%{opacity:0}}
  .fv2-split .fv2-city-node.is-selected .fv2-city-pin{background:var(--fv2-match-high);box-shadow:0 6px 20px rgba(5,150,105,.45)}
  .fv2-split .fv2-city-node.is-selected .fv2-city-pin::after{border-color:var(--fv2-match-high)}
  .fv2-city-name{
    position:absolute;top:calc(100% + 7px);left:50%;transform:translateX(-50%);
    font-size:.66rem;font-weight:700;letter-spacing:.02em;white-space:nowrap;
    color:var(--fv2-text-secondary);background:var(--fv2-bg-primary);
    border:1px solid var(--fv2-border-subtle);border-radius:999px;padding:2px 8px;
    box-shadow:var(--fv2-shadow-card);max-width:150px;overflow:hidden;text-overflow:ellipsis;
  }
  .fv2-split .fv2-city-node.is-selected .fv2-city-name{color:var(--fv2-text-primary);border-color:var(--fv2-match-high)}
  .fv2-split .fv2-city-node:hover .fv2-city-name{z-index:7}
  html[data-theme="dark"] .fv2-city-name{background:rgba(17,24,39,.92)}
  /* i vecchi pin numerati non servono più, ma la regola resta innocua */
  /* Etichette: sempre visibili solo per le prime 3 città (le più popolate), le altre al passaggio */
  .fv2-city-name{opacity:0;transform:translate(-50%,-4px);transition:opacity .18s ease,transform .18s ease;pointer-events:none}
  .fv2-city-node.is-major .fv2-city-name,
  .fv2-city-node:hover .fv2-city-name,
  .fv2-city-node:focus-visible .fv2-city-name,
  .fv2-city-node.is-selected .fv2-city-name{opacity:1;transform:translate(-50%,0)}

  /* ============ CONTESTO GEOGRAFICO (silhouette Nord Italia + Svizzera) ============ */
  .fv2-root{--fv2-geo-fill:#eaf0f8;--fv2-geo-stroke:#c9d6e6}
  html[data-theme="dark"] .fv2-root{--fv2-geo-fill:#16203a;--fv2-geo-stroke:#2f3f61}
  .fv2-split .fv2-split-map::before{z-index:0}
  .fv2-geo-svg{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none;display:block}
  .fv2-geo-land{fill:var(--fv2-geo-fill);stroke:var(--fv2-geo-stroke);stroke-width:1;stroke-linejoin:round;vector-effect:non-scaling-stroke}
  .fv2-geo-tag{
    position:absolute;transform:translate(-50%,-50%);z-index:2;pointer-events:none;white-space:nowrap;
    font-size:.58rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
    color:var(--fv2-text-dim);opacity:.6;
  }
  .fv2-split .fv2-city-node{z-index:3}
  /* etichette di servizio della mappa */
  .fv2-geo-tag-inline{color:var(--fv2-text-dim);font-size:.78rem;margin-left:4px}
  .fv2-geo-back{color:var(--fv2-accent-primary);font-weight:600;text-decoration:underline;text-underline-offset:2px}

  /* ============ PIANETA (linguaggio della home: sfera + reticolo + meridiani) ============ */
  .fv2-root{--fv2-planet-line:rgba(37,99,235,.16);--fv2-planet-face:rgba(255,255,255,.55);--fv2-planet-edge:rgba(37,99,235,.10)}
  html[data-theme="dark"] .fv2-root{--fv2-planet-line:rgba(147,197,253,.18);--fv2-planet-face:rgba(17,26,46,.55);--fv2-planet-edge:rgba(2,6,23,.65)}

  .fv2-planet{position:absolute;inset:-6% -3%;border-radius:50%;pointer-events:none;z-index:0;overflow:hidden;
    background:radial-gradient(circle at 32% 28%,var(--fv2-planet-face) 0%,transparent 62%);
    box-shadow:inset -24px -28px 70px var(--fv2-planet-edge),inset 0 0 1px var(--fv2-planet-line)}
  .fv2-planet-grid{position:absolute;inset:0;border-radius:50%;
    background-image:linear-gradient(var(--fv2-planet-line) 1px,transparent 1px),linear-gradient(90deg,var(--fv2-planet-line) 1px,transparent 1px);
    background-size:34px 34px;background-position:center;
    -webkit-mask-image:radial-gradient(circle at 50% 50%,#000 34%,transparent 72%);
    mask-image:radial-gradient(circle at 50% 50%,#000 34%,transparent 72%);opacity:.75}
  /* equatore e meridiano: ellissi, per dare la curvatura */
  .fv2-planet-ring{position:absolute;left:-2%;right:-2%;top:50%;height:34%;transform:translateY(-50%);
    border:1px solid var(--fv2-planet-line);border-radius:50%}
  .fv2-planet-ring.is-v{left:50%;right:auto;top:-2%;bottom:-2%;height:auto;width:34%;transform:translateX(-50%)}
  /* la terraferma sfuma ai bordi: sembra appoggiata sulla sfera */
  .fv2-geo-svg{-webkit-mask-image:radial-gradient(ellipse 72% 72% at 50% 50%,#000 58%,transparent 100%);
    mask-image:radial-gradient(ellipse 72% 72% at 50% 50%,#000 58%,transparent 100%);opacity:.9}
  .fv2-geo-land{fill-opacity:.55}

  /* ============ PERCORSO (breadcrumb) ============ */
  .fv2-breadcrumb{display:flex;align-items:center;flex-wrap:wrap;gap:.35rem;margin:0 0 1rem;font-size:.8rem;color:var(--fv2-text-muted)}
  .fv2-breadcrumb a{color:var(--fv2-text-secondary);transition:color var(--fv2-transition)}
  .fv2-breadcrumb a:hover{color:var(--fv2-accent-primary);text-decoration:underline;text-underline-offset:2px}
  .fv2-breadcrumb .is-current{color:var(--fv2-text-primary);font-weight:600}
  .fv2-breadcrumb svg{width:12px;height:12px;opacity:.55}

  html[data-theme="dark"] .fv2-quick-action{color:#f1f5f9}

  /* 30/10/2026 — icona del carrello quasi bianca anche su tema chiaro:
     sul vetro chiaro il #444 non si leggeva. */
  html[data-theme="light"] .fv2-quick-action{color:#f1f5f9}


  /* ============ PROMO E PARTNER SULLA FOTO (punto di conversione) ============ */
  .fv2-card-media .fv2-promo-overlay{
    position:absolute;left:12px;bottom:12px;z-index:3;
    display:inline-flex;align-items:center;gap:6px;max-width:55%;
    padding:6px 10px;border-radius:8px;
    font-size:.68rem;font-weight:800;letter-spacing:.03em;text-transform:uppercase;color:#fff;
    box-shadow:0 4px 14px rgba(0,0,0,.30);
  }
  .fv2-card-media .fv2-promo-overlay.is-launch{background:linear-gradient(135deg,#2563eb,#1d4ed8)}
  .fv2-card-media .fv2-promo-overlay.is-offer{background:linear-gradient(135deg,#dc2626,#b91c1c)}
  .fv2-card-media .fv2-promo-overlay svg{width:14px;height:14px;flex-shrink:0}
  .fv2-card-media .fv2-promo-overlay b{font-weight:800;white-space:nowrap}
  .fv2-card-media .fv2-promo-overlay span{font-weight:600;text-transform:none;letter-spacing:0;opacity:.95;
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

  .fv2-card-media .fv2-patron-overlay{
    position:absolute;right:12px;bottom:12px;z-index:3;
    display:inline-flex;align-items:center;gap:5px;max-width:40%;
    padding:5px 9px;border-radius:999px;
    font-size:.66rem;font-weight:700;color:#fff;
    background:rgba(15,23,42,.74);border:1px solid var(--patron,#7c3aed);
    box-shadow:0 2px 10px rgba(0,0,0,.28);
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  }
  .fv2-card-media .fv2-patron-overlay svg{width:12px;height:12px;color:var(--patron,#7c3aed);flex-shrink:0}

  /* stelle + visualizzazioni sulla stessa riga */
  .fv2-card-stats{display:flex;align-items:center;justify-content:space-between;gap:.6rem}
  .fv2-views{display:inline-flex;align-items:center;gap:4px;font-size:.72rem;font-weight:600;
    color:var(--fv2-text-muted);white-space:nowrap}
  .fv2-views svg{width:13px;height:13px}

  /* ============ FASCIA PARTNER (a tutta larghezza, nome intero) ============ */
  /* Prima era un'etichetta sulla foto con max-width 40%: il nome del brand veniva
     troncato, che per una partnership è il taglio peggiore. Ora è una fascia che
     attraversa la card sopra il titolo, col colore del brand. */
  .fv2-patron-band{
    display:flex;align-items:center;gap:6px;
    margin:-1rem -1.1rem 0.15rem;padding:7px 12px;
    font-size:.66rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;
    color:var(--patron,#7c3aed);
    background:linear-gradient(90deg,rgba(15,23,42,.05) 0%,transparent 85%);
    border-left:3px solid var(--patron,#7c3aed);
  }
  .fv2-patron-band strong{font-weight:800;letter-spacing:.02em}
  .fv2-patron-band svg{width:13px;height:13px;flex-shrink:0}
  html[data-theme="dark"] .fv2-patron-band{background:linear-gradient(90deg,rgba(255,255,255,.06) 0%,transparent 85%)}
  /* l'overlay sulla foto non serve più */
  .fv2-card-media .fv2-patron-overlay{display:none}

  /* ============ MOSAICO CHE RIEMPIE I VUOTI ============ */
  /* Le colonne CSS non permettono a una card di "risalire": resta un buco in basso.
     Qui si passa a una griglia a span calcolato (grid-auto-flow:dense) che infila
     ogni card nel primo spazio libero. Senza JS resta il layout a colonne qui sopra. */
  .fv2-grid.js-masonry{
    display:grid;columns:auto;column-gap:30px;row-gap:0;
    grid-template-columns:repeat(auto-fill,minmax(290px,1fr));
    grid-auto-rows:8px;grid-auto-flow:row dense;align-items:start;
  }
  .fv2-grid.js-masonry .fv2-card{margin:0 0 24px}
  @media (max-width:700px){.fv2-grid.js-masonry{display:block;columns:290px auto}}
