/* ============================================================
   EscortGay.net — DESIGN SYSTEM (single source of truth)
   Ogni pagina (home, città/listing, profilo, …) collega questo file.
   Cambia un token qui → si aggiorna su tutto il sito.
   Carattere: Hanken Grotesk, una sola famiglia dal 400 all'800.
   Palette: dark blu-inchiostro, accent #2f8fd6 / #5aa9ff.
   Stile: netto e piatto. Angoli 4px sui controlli e 6px su foto e pannelli,
   filetti a 1px, niente gradienti né pillole (solo interruttori e avatar).
   ============================================================ */

:root{
  /* --- superfici --- */
  --bg:#080b14; --bg2:#0a0f1a; --bg3:#05070d;
  --surface:rgba(150,180,235,0.055); --surface-2:rgba(150,180,235,0.09);
  --surface-solid:#0e1422; --card:#0e1422; --tile:#101626;
  --border:rgba(150,180,235,0.12); --border-strong:rgba(150,180,235,0.20);
  /* --- testo: sette gradini, non quattro ---
     Il tema di riferimento non salta dal bianco al grigio: interpone #ccd6ee e
     #aab8d8, e usa #8494b6 per la navigazione. Sono quei passaggi intermedi a
     dare la sensazione di gerarchia calma invece che di contrasto sbattuto. */
  --text:#eaeefb; --text-soft:#ccd6ee; --text-2:#aab8d8;
  --dim:#93a2c4; --dim-2:#8494b6;
  /* Gli ultimi due gradini del tema (#64748f, #55618a) stanno a 4,15:1 e 3,24:1
     sul fondo — sotto la soglia di leggibilità, e li usiamo su testi da 10-12px.
     Alzati del minimo necessario per superare 4,5:1, tinta invariata. */
  --faint:#6b7b97; --mute:#6d7aa5;
  /* --- accent (blu) — accent-rgb permette rgba() a alpha variabile --- */
  --accent-rgb:90,169,255;
  --accent:#2f8fd6; --accent-bright:#5aa9ff; --accent-soft:#8ec4ff;
  --accent-glow:rgba(90,169,255,0.42);
  --accent-ink:#06182b;              /* testo sopra un fondo accent pieno */
  /* --- accenti secondari --- */
  --gold:#d7a94b; --gold-bright:#e6c97f; --gold-ink:#241d0d;
  --hot:#ff6b4a; --hot-bright:#ff8a6d; --hot-ink:#1a0a06;
  --violet:#8659c4; --online:#3fbf62; --online-bright:#5fe3a1;
  --rainbow:linear-gradient(90deg,#e0483c,#d7a94b,#3fbf62,#2f8fd6,#8659c4,#5aa9ff);
  /* Raggi: pochi gradini, ognuno con un compito preciso. I CONTROLLI che stanno
     in fila (ricerca, selettore città, CTA) condividono --r-control: con raggi
     diversi la riga sembra montata con pezzi di sistemi differenti. */
  --r-control:4px;     /* bottoni, campi, selettori */
  --r-lg:6px;          /* pannelli grandi */
  --r-md:6px;          /* card, media, contenitori */
  --r-sm:4px;          /* chip, celle, elementi minori */
  --r-xs:2px;          /* dettagli minuti */
  --shadow:0 30px 70px -20px rgba(0,0,0,0.72);
  --font:"Hanken Grotesk",ui-sans-serif,system-ui,sans-serif;
  /* Niente più monospazio: le etichette usano la stessa famiglia con le cifre
     tabellari, così prezzi e conteggi restano allineati. */
  --mono:"Hanken Grotesk",ui-sans-serif,system-ui,sans-serif;
  --line:rgba(150,180,235,0.09);     /* filetto tenue: separatori e righe */
  --sel:rgba(47,143,214,0.16); --sel-ink:#8cc4ff;   /* voce selezionata in elenchi e filtri */
  --maxw:1288px;                     /* 1240 di contenuto + 2×24 di margine */
}

/* ---------- RESET / BASE ---------- */
*{box-sizing:border-box;}
/* Reset minimo che sostituisce il preflight di Tailwind (CDN rimosso: non era usato
   nemmeno una classe, ma il suo reset sì). Replica esatta delle parti da cui il sito
   dipende, così l'aspetto resta identico: margini di titoli/paragrafi/liste azzerati,
   niente pallini (le pagine di contenuto reimpostano indent/spaziatura da sé), font
   dei titoli ereditato, controlli col font del sito. */
h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit;margin:0;}
p,blockquote,figure,pre,dl,dd{margin:0;}
ul,ol,menu{margin:0;padding:0;list-style:none;}
img,svg,video,canvas{display:block;max-width:100%;}
button,input,optgroup,select,textarea{font:inherit;color:inherit;}
/* Senza color-scheme il browser considera la pagina chiara e disegna una
   scrollbar bianca su un sito nero. Dichiararlo dark sistema anche i controlli
   nativi (select, date picker, campi in autofill), finora rattoppati a mano. */
html{color-scheme:dark;scrollbar-width:thin;scrollbar-color:rgba(150,180,235,.28) transparent;}

/* ============================================================
   TEMA CHIARO
   Per leggere il sito al sole, dove un fondo quasi nero diventa uno specchio.
   Non è il tema scuro «schiarito»: gli accenti vanno RIDISEGNATI, perché
   #5aa9ff su bianco fa 2,1:1 e come testo è illeggibile. Qui ogni colore che
   può finire su del testo supera 4,5:1 sul fondo più chiaro che lo ospita.
   Il fondo è un bianco freddo virato verso l'inchiostro del brand: il beige
   "caldo" sarebbe un altro marchio, non questo.
   ============================================================ */
:root[data-theme="light"]{
  color-scheme:light;
  scrollbar-color:rgba(24,44,84,.26) transparent;
  /* superfici */
  --bg:#f4f6fb; --bg2:#eef2f9; --bg3:#e8edf7;
  --surface:rgba(24,44,84,0.045); --surface-2:rgba(24,44,84,0.085);
  --surface-solid:#ffffff; --card:#ffffff; --tile:#eef2fa;
  --border:rgba(24,44,84,0.14); --border-strong:rgba(24,44,84,0.26);
  /* testo: la stessa scala a sette gradini, ribaltata */
  --text:#0d1626; --text-soft:#1c2a45; --text-2:#2e3d5c;
  --dim:#475977; --dim-2:#546584;
  --faint:#5d6d8d; --mute:#5e6d90;
  /* accento: più scuro, non più chiaro. Su fondo chiaro «brillante» vuol dire
     saturo e profondo, altrimenti sparisce. */
  --accent-rgb:22,104,201;
  --accent:#0f57ab; --accent-bright:#1668c9; --accent-soft:#1f6ebf;
  --accent-glow:rgba(22,104,201,0.28);
  --accent-ink:#ffffff;
  /* accenti secondari: stessa logica */
  --gold:#8a6a12; --gold-bright:#876914; --gold-ink:#ffffff;
  --hot:#c43e18; --hot-bright:#b93a15; --hot-ink:#ffffff;
  --violet:#6b3fb0; --online:#1b7d41; --online-bright:#167d49;
  /* L'ombra nera del tema scuro qui sporca: serve un'ombra fredda e leggera. */
  --shadow:0 20px 50px -22px rgba(16,32,64,0.22);
  --line:rgba(24,44,84,0.10);
  --sel:rgba(22,104,201,0.10); --sel-ink:#0f57ab;
}
:root[data-theme="light"] ::-webkit-scrollbar-thumb{background:rgba(24,44,84,.24);background-clip:content-box;}
:root[data-theme="light"] ::-webkit-scrollbar-thumb:hover{background:rgba(24,44,84,.38);background-clip:content-box;}

/* --- correzioni mirate: i punti dove il colore era scritto a mano ---------- */
/* Regola per distinguere i due casi: se sta SOPRA UNA FOTO resta com'è (il
   bianco su un'immagine è bianco in entrambi i temi); se sta su una superficie
   della pagina, va agganciato ai token. */
/* barra 18+, navbar e footer: fondi semitrasparenti nati scuri */
:root[data-theme="light"] .navdrawer,
:root[data-theme="light"] .acbox,
:root[data-theme="light"] .citysel-pop,
:root[data-theme="light"] .ac-panel,
:root[data-theme="light"] .sortmenu{background:var(--card);}
:root[data-theme="light"] .drawer-backdrop,
:root[data-theme="light"] .navdrawer-backdrop{background:rgba(16,32,64,.38);}
/* pastiglie sopra le foto: restano scure, ma il bordo bianco stona sul chiaro */
:root[data-theme="light"] .gact,
:root[data-theme="light"] .glike,
:root[data-theme="light"] .gcount{border-color:rgba(255,255,255,.22);}
/* input e select */
/* Solo colore e bordo: dare un fondo a TUTTI gli input dipingeva di bianco
   anche quello dentro la pillola di ricerca, che deve restare trasparente
   perché il fondo lo mette il contenitore. Si vedeva un rettangolo più chiaro. */
:root[data-theme="light"] input,
:root[data-theme="light"] select,
:root[data-theme="light"] textarea{color:var(--text);border-color:var(--border);}
:root[data-theme="light"] .navsearch input,
:root[data-theme="light"] .sb-field input{background:none;}
:root[data-theme="light"] select option,
:root[data-theme="light"] select optgroup{background:#ffffff;color:var(--text);}
:root[data-theme="light"] ::placeholder{color:var(--faint);}
/* --- testo che sta SOPRA UNA FOTO: non segue il tema -----------------------
   Sul gradiente scuro di una foto il bianco è bianco in entrambi i temi.
   Farlo diventare inchiostro col tema chiaro lo rende illeggibile: è successo
   sul nome nelle schede, che spariva contro la foto. */
:root[data-theme="light"] .gcover .badges,
:root[data-theme="light"] .gcover .gacts{color:#fff;}
:root[data-theme="light"] .lbox-a{color:#e6ecfa;background:rgba(14,20,34,.82);border-color:rgba(255,255,255,.16);}
:root[data-theme="light"] .lbox-a:hover{color:#fff;}
:root[data-theme="light"] .lbox-n{color:rgba(255,255,255,.62);}
/* le miniature e il visore stanno su fondo scuro anche col tema chiaro */
:root[data-theme="light"] .lbox-lock{background:rgba(14,20,34,.94);color:#fff;}
:root[data-theme="light"] .lbox-lock span{color:rgba(255,255,255,.72);}
/* Pastiglie appoggiate sulle foto (contatore, like, azioni, badge neutri):
   col tema chiaro diventano vetro bianco con inchiostro scuro. Sopra una foto
   funzionano uguale, e restare nere faceva sembrare quei pezzi non convertiti.
   I badge colorati (Diamond, Gold, Red, Boost) tengono il loro colore. */
:root[data-theme="light"] .gcover .badges .minib:not([class*="tier-"]):not(.boostb):not(.hotrankb),
:root[data-theme="light"] .lrow .minib:not([class*="tier-"]):not(.boostb):not(.hotrankb),
:root[data-theme="light"] .gcount,
:root[data-theme="light"] .glike,
:root[data-theme="light"] .gact{
  background:rgba(255,255,255,.82);color:var(--text);border-color:rgba(24,44,84,.14);
  backdrop-filter:blur(10px);}
:root[data-theme="light"] .glike:hover,
:root[data-theme="light"] .gact:hover{background:rgba(255,255,255,.95);}
:root[data-theme="light"] .gcount svg{stroke:var(--text);}
:root[data-theme="light"] .gact.favx.on{color:#d63b2e;}
:root[data-theme="light"] .glike.on{color:var(--accent);}
/* WhatsApp: il verde del marchio su fondo chiaro fa 2:1, come testo non si legge.
   Il fondo resta il verde tenue riconoscibile, la scritta scende di luminosità. */
:root[data-theme="light"] .btn-wa{color:#0b7a3b;background:rgba(37,211,102,0.14);border-color:rgba(11,122,59,0.45);}
:root[data-theme="light"] .pbar .btn-wa,
:root[data-theme="light"] .pbar .btn-tg{color:#fff;}
:root[data-theme="light"] .pbar .btn-wa{background:#0b7a3b;border-color:transparent;}
:root[data-theme="light"] .pbar .btn-tg{background:#1668c9;border-color:transparent;}
/* La mappa resta a tessere scure anche col tema chiaro (una mappa chiara sarebbe
   un altro disegno): l'etichetta sopra ci sta sopra, quindi resta chiara. */
:root[data-theme="light"] .pmap .mlabel,
:root[data-theme="light"] .pmap-wrap .mlabel{color:rgba(255,255,255,.88);border-color:rgba(255,255,255,.18);}
/* Ultimi tre punti sotto soglia trovati con l'audit del contrasto a pagina
   renderizzata (alpha e gradienti composti, testo sopra le foto escluso). */
/* «Gioca →»: inchiostro scuro su arancione chiaro fa 2,3:1 */
/* didascalie minute: --faint è tarato su --bg, sulle superfici bianche perde mezzo punto */
:root[data-theme="light"] .story-empty,
:root[data-theme="light"] .trust .it small{color:#4d5c77;}
/* chip attiva dei filtri Esperienze: l'accento su fondo accento al 10% fa 4,1:1 */
:root[data-theme="light"] .xpchip.on{color:var(--accent);background:rgba(var(--accent-rgb),.09);}






/* Chrome/Safari più vecchi non leggono scrollbar-color: stessa resa a mano. */
::-webkit-scrollbar{width:10px;height:10px;}
::-webkit-scrollbar-track{background:transparent;}
::-webkit-scrollbar-thumb{background:rgba(150,180,235,.22);border-radius:999px;
  border:2px solid transparent;background-clip:content-box;}
::-webkit-scrollbar-thumb:hover{background:rgba(150,180,235,.38);background-clip:content-box;}
::-webkit-scrollbar-corner{background:transparent;}
/* overflow-x:hidden SOLO su html (che resta lo scroller e clippa l'orizzontale):
   metterlo anche sul body lo trasformava in scroll-container e ROMPEVA position:sticky
   (es. la sidebar filtri non si agganciava). */
html{overflow-x:hidden;}
html,body{margin:0;}
body{
  background:var(--bg);
  color:var(--text); font-family:var(--font); font-size:15px; line-height:1.45;
  -webkit-font-smoothing:antialiased; font-variant-numeric:tabular-nums;
}
h1,h2,h3{text-wrap:balance;}
:focus-visible{outline:2px solid var(--accent-bright);outline-offset:2px;}
a{color:inherit;text-decoration:none;}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit;}
::selection{background:var(--accent-bright);color:var(--accent-ink);}
svg{display:block;}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px;}
.star{color:var(--gold-bright);}
.dot{flex:none;width:9px;height:9px;border-radius:50%;background:var(--online);box-shadow:0 0 0 0 rgba(63,191,98,.6);animation:pulse 2s infinite;}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(63,191,98,.5)}70%{box-shadow:0 0 0 8px rgba(63,191,98,0)}100%{box-shadow:0 0 0 0 rgba(63,191,98,0)}}

/* Logotipo testuale (partials/_logo.html): nome del sito, una parte in accento. */
.logo-text{display:block;font-family:var(--font);font-weight:800;font-size:21px;line-height:1;
  letter-spacing:-.02em;color:var(--text);white-space:nowrap;}
.brand .logo.logo-text{height:auto;}
.logo-acc{color:var(--accent-bright);}
/* Logotipo del brand (partials/_logo.html): due <picture>, «Gay.» bianco sul
   tema scuro e navy sul chiaro; il CSS mostra quella giusta. */
.brand .logo-dark{display:block;}
.brand .logo-light{display:none;}
:root[data-theme="light"] .brand .logo-dark{display:none;}
:root[data-theme="light"] .brand .logo-light{display:block;}
.brand img.logo{display:block;height:34px;width:auto;}
/* La striscia arcobaleno non c'è più: resta la classe, vuota, per i template
   dell'area riservata che la usano ancora come separatore. */
.rainbow,.rainbow-bar{display:none;}

/* ---------- BUTTON ---------- */
/* Due pulsanti, rettangolari: pieno per l'azione principale, contornato per
   la secondaria. Il fondo pieno usa --accent (non --accent-bright): con il
   testo bianco sopra regge il contrasto anche nel tema scuro. */
.btn-accent{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:700;font-size:14.5px;line-height:1;color:#fff;
  min-height:40px;padding:0 18px;border-radius:var(--r-control);background:var(--accent);border:1px solid var(--accent);
  transition:background-color .15s,border-color .15s;}
.btn-accent:hover{background:color-mix(in srgb,var(--accent) 86%,#fff);border-color:transparent;}
.btn-line{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:600;font-size:14.5px;line-height:1;color:var(--text);
  min-height:40px;padding:0 16px;border-radius:var(--r-control);background:none;border:1px solid var(--border-strong);
  transition:border-color .15s,background-color .15s;}
.btn-line:hover{border-color:var(--text-2);background:var(--surface);}

/* ---------- GATE 18+ (overlay client-side, SEO-friendly) ---------- */
.age-overlay{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:24px;
  background:rgba(6,6,9,0.82);backdrop-filter:blur(8px);}
.age-card{width:100%;max-width:430px;background:var(--surface-solid);border:1px solid var(--border-strong);
  border-radius:var(--r-lg);padding:32px 28px;text-align:center;box-shadow:var(--shadow);}
.age-card .brand{justify-content:center;margin-bottom:6px;}
.age-card .a18{display:inline-block;border:1.5px solid var(--accent-glow);color:var(--accent-bright);
  border-radius:var(--r-sm);padding:5px 14px;font-weight:800;font-size:17px;margin:12px 0 6px;}
.age-card h2{font-size:20px;font-weight:800;margin:6px 0 10px;}
.age-card p{font-size:13px;color:var(--dim);line-height:1.6;margin:0 auto 22px;max-width:340px;}
.age-actions{display:flex;gap:11px;}
.age-actions>*{flex:1;display:inline-flex;align-items:center;justify-content:center;padding:13px;border-radius:var(--r-sm);font-weight:800;font-size:15px;cursor:pointer;}
.age-exit{border:1px solid var(--border);color:var(--text);background:var(--surface);}
.age-exit:hover{border-color:var(--border-strong);}
.age-foot{font-size:11px;color:var(--faint);margin-top:16px;}

/* ---------- TESTATA ---------- */
/* Una riga sola: marchio, cinque voci di menu, strumenti a destra. Fondo pieno
   e filetto sotto, niente vetro: la testata è un piano, non un oggetto. */
:root{--hd-h:64px;}
nav.hd{position:sticky;top:0;z-index:50;padding-top:env(safe-area-inset-top);
  background:var(--bg);border-bottom:1px solid var(--line);}
[x-cloak]{display:none!important;}
.hd-in{display:flex;align-items:center;gap:28px;height:var(--hd-h);}
.brand{display:flex;align-items:center;flex-shrink:0;}
.hd-menu{display:flex;gap:2px;flex:1;min-width:0;}
.hd-menu a{padding:8px 11px;border-radius:var(--r-sm);font-weight:600;font-size:15px;line-height:1.2;color:var(--dim);
  white-space:nowrap;transition:color .15s,background-color .15s;}
.hd-menu a:hover{color:var(--text);}
.hd-menu a.on{background:var(--surface-2);color:var(--text);}
.hd-tools{display:flex;align-items:center;gap:6px;flex-shrink:0;}
.hd-tools .btn-accent,.hd-tools .btn-line{min-height:36px;padding:0 14px;font-size:14px;}
/* icone della testata: 40px di area, senza riquadro finché non ci si passa sopra */
.hd-ico{display:grid;place-items:center;width:40px;height:40px;border-radius:var(--r-sm);color:var(--dim);
  flex:none;transition:color .15s,background-color .15s;}
.hd-ico:hover,.hd-ico[aria-expanded="true"]{color:var(--text);background:var(--surface);}
.themetoggle .th-sun{display:block;}
.themetoggle .th-moon{display:none;}
:root[data-theme="light"] .themetoggle .th-sun{display:none;}
:root[data-theme="light"] .themetoggle .th-moon{display:block;}

/* ricerca: pannello sotto la testata */
.hd-search{border-top:1px solid var(--line);background:var(--bg);padding:12px 0;}
.navsearch{position:relative;max-width:720px;margin:0 auto;}   /* centrata sotto la testata */
.navsearch form{display:flex;align-items:center;gap:10px;height:48px;padding:0 5px 0 14px;border-radius:var(--r-control);
  background:var(--surface-solid);border:1px solid var(--border-strong);color:var(--dim-2);}
.navsearch form:focus-within{border-color:var(--accent-bright);}
.navsearch .svgi{flex-shrink:0;}
.navsearch input{flex:1;min-width:0;background:none;border:none;outline:none;color:var(--text);font:inherit;font-size:15px;}
.navsearch .btn-accent{min-height:38px;padding:0 16px;}
.acbox{position:absolute;top:54px;left:0;right:0;background:var(--surface-solid);border:1px solid var(--border);border-radius:var(--r-md);
  box-shadow:0 24px 60px -20px rgba(0,0,0,.6);padding:6px;z-index:60;max-height:60vh;overflow-y:auto;}
.acit{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:var(--r-sm);color:var(--text);}
.acit:hover{background:var(--surface);}
.acit b{font-size:14px;font-weight:600;}
.acit .acsub{margin-left:auto;font-size:12.5px;color:var(--dim-2);}
.acico{display:grid;place-items:center;width:30px;height:30px;border-radius:var(--r-sm);background:var(--surface);color:var(--dim);flex-shrink:0;}

/* selettore città: pulsante senza bordo con il nome */
.citysel{position:relative;flex-shrink:0;}
.citysel-btn{display:inline-flex;align-items:center;gap:7px;height:40px;padding:0 10px;border-radius:var(--r-sm);
  font-size:14.5px;font-weight:600;color:var(--text-soft);white-space:nowrap;transition:background-color .15s;}
.citysel-btn svg{color:var(--accent-bright);}
.citysel-btn:hover,.citysel-btn[aria-expanded="true"]{background:var(--surface);}
.citysel-pop{position:absolute;top:46px;right:0;width:280px;background:var(--surface-solid);border:1px solid var(--border);
  border-radius:var(--r-md);box-shadow:0 24px 60px -20px rgba(0,0,0,.6);padding:8px;z-index:60;}
.citysel-geo{display:flex;align-items:center;justify-content:center;gap:9px;width:100%;min-height:40px;padding:0 12px;border-radius:var(--r-sm);
  background:var(--accent);color:#fff;font-weight:700;font-size:14px;}
.citysel-geo:hover{background:color-mix(in srgb,var(--accent) 86%,#fff);} .citysel-geo:disabled{opacity:.6;cursor:default;}
.citysel-search{width:100%;margin:8px 0;height:40px;padding:0 12px;border-radius:var(--r-sm);background:var(--bg);border:1px solid var(--border);color:var(--text);font:inherit;font-size:14px;outline:none;}
.citysel-search:focus{border-color:var(--accent-bright);}
.citysel-list{max-height:300px;overflow-y:auto;display:flex;flex-direction:column;}
.citysel-list a{display:flex;justify-content:space-between;gap:8px;padding:8px 10px;border-radius:var(--r-sm);color:var(--text-soft);font-size:14px;}
.citysel-list a small{color:var(--dim-2);font-size:13px;}
.citysel-list a:hover{background:var(--surface);color:var(--text);}
.citysel-list a.on{background:var(--sel);color:var(--sel-ink);font-weight:700;}
.citysel-list .citysel-all{color:var(--accent-bright);font-weight:600;border-top:1px solid var(--line);margin-top:4px;padding-top:10px;border-radius:0;}
.citysel-empty{padding:14px 12px;font-size:13px;color:var(--dim-2);text-align:center;}

/* lingua: <details> con l'elenco dei link */
.hd-lang{position:relative;}
.hd-lang summary{list-style:none;display:grid;place-items:center;min-width:40px;height:40px;padding:0 8px;border-radius:var(--r-sm);
  font-weight:600;font-size:13.5px;color:var(--dim);cursor:pointer;}
.hd-lang summary::-webkit-details-marker{display:none;}
.hd-lang summary:hover,.hd-lang[open] summary{color:var(--text);background:var(--surface);}
.hd-pop{position:absolute;top:46px;right:0;min-width:120px;display:grid;padding:6px;background:var(--surface-solid);
  border:1px solid var(--border);border-radius:var(--r-md);box-shadow:0 24px 60px -20px rgba(0,0,0,.6);z-index:60;}
.hd-pop a{padding:8px 10px;border-radius:var(--r-sm);font-size:14px;font-weight:600;color:var(--text-soft);}
.hd-pop a:hover{background:var(--surface);}
.hd-pop a.on{background:var(--sel);color:var(--sel-ink);}

/* PWA: banner installa (in basso, dismissibile) */
.pwabanner{position:fixed;left:12px;right:12px;bottom:12px;z-index:240;display:flex;align-items:center;gap:12px;
  padding:12px 14px;border-radius:var(--r-md);background:var(--surface-solid);border:1px solid var(--border-strong);
  box-shadow:0 20px 50px -16px rgba(0,0,0,.6);max-width:520px;margin:0 auto;}
.pwabanner[hidden]{display:none;}
.pwabanner-tx{flex:1;min-width:0;line-height:1.3;}
.pwabanner-tx b{display:block;font-size:14.5px;font-weight:700;}
.pwabanner-sub{font-size:13px;color:var(--dim);}
.pwabanner-btn{flex-shrink:0;min-height:36px;padding:0 14px;border-radius:var(--r-control);font-weight:700;font-size:14px;
  color:#fff;background:var(--accent);}
.pwabanner-x{flex-shrink:0;width:36px;height:36px;border-radius:var(--r-sm);color:var(--dim);font-size:13px;}
.pwabanner-x:hover{background:var(--surface);color:var(--text);}
@media(min-width:680px){.pwabanner{left:auto;right:18px;width:420px;}}

/* hamburger (solo sotto i 1080px) */
.nav-burger{display:none;align-items:center;justify-content:center;width:40px;height:40px;margin-left:-8px;border-radius:var(--r-sm);
  color:var(--text);flex-shrink:0;}

/* drawer: menu laterale */
.navdrawer-backdrop{position:fixed;inset:0;background:rgba(5,7,13,.62);
  opacity:0;visibility:hidden;transition:opacity .25s,visibility .25s;z-index:800;}
.navdrawer-backdrop.open{opacity:1;visibility:visible;}
.navdrawer{position:fixed;top:0;left:0;height:100dvh;width:min(86vw,340px);background:var(--surface-solid);
  border-right:1px solid var(--border);z-index:810;transform:translateX(-100%);transition:transform .3s cubic-bezier(.22,1,.36,1);
  overflow-y:auto;padding:12px 16px 40px;display:flex;flex-direction:column;}
.navdrawer.open{transform:translateX(0);}
.navdrawer-head{display:flex;align-items:center;justify-content:space-between;height:44px;margin-bottom:8px;}
.navdrawer-close{display:grid;place-items:center;width:40px;height:40px;border-radius:var(--r-sm);color:var(--dim);}
.navdrawer-close:hover{background:var(--surface);color:var(--text);}
.nd-geo{margin:6px 0 4px;}
.nd-sect{font-size:12.5px;font-weight:600;color:var(--dim-2);margin:18px 0 4px;padding:0 10px;}
.nd-link{display:flex;align-items:center;min-height:44px;padding:0 10px;border-radius:var(--r-sm);font-size:16px;font-weight:600;color:var(--text);}
.nd-link:hover{background:var(--surface);}
.nd-link.nd-city{font-size:15px;font-weight:500;color:var(--text-soft);min-height:40px;}
.nd-cta{width:100%;margin-top:12px;min-height:44px;}
.nd-lang,.nd-theme{display:flex;gap:6px;margin-top:6px;}
.nd-lang a,.nd-theme button{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:40px;
  border-radius:var(--r-sm);border:1px solid var(--border);color:var(--dim);font-weight:600;font-size:13.5px;line-height:1;}
.nd-lang a:hover,.nd-theme button:hover{border-color:var(--border-strong);color:var(--text);}
.nd-lang a.on,.nd-theme button.on{background:var(--text);border-color:var(--text);color:var(--bg);}

/* barra a schede in basso: solo telefono */
.tabbar{display:none;}

/* ---------- TITOLI DI SEZIONE ---------- */
/* Titolo a sinistra, «Vedi tutti» a destra sulla stessa linea di base. */
.sec{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;margin-top:48px;min-width:0;}
.sec-h,.sechead{display:flex;align-items:baseline;justify-content:space-between;gap:12px;}
.sechead{margin:48px 0 14px;}
.sec-h h2,.sechead h2{font-size:21px;line-height:1.2;font-weight:700;letter-spacing:-.01em;margin:0;}
.sechead .sub,.sec-h .sub{font-size:13.5px;color:var(--dim-2);margin:4px 0 0;}
.sec-h a,.sechead a{flex:none;display:inline-flex;align-items:center;gap:6px;font-weight:600;font-size:14px;color:var(--accent-bright);}
.sec-h a:hover,.sechead a:hover{color:var(--text);}

/* ============================================================
   HOME
   ============================================================ */
/* Apertura allineata a sinistra: titolo e frase a sinistra, ricerca e città a
   destra, in basso sulla stessa linea. */
.hero{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:40px;align-items:end;padding:36px 0 4px;}
.hero h1{font-size:clamp(2rem,1.2rem + 2.4vw,2.85rem);line-height:1.08;font-weight:800;letter-spacing:-.025em;max-width:16ch;}
.hero-tx p{margin-top:14px;color:var(--dim);font-size:16px;line-height:1.55;max-width:52ch;text-wrap:pretty;}
.hero-search{position:relative;display:grid;gap:10px;min-width:0;}
.sfield{display:flex;align-items:center;gap:10px;height:50px;padding:0 5px 0 14px;border:1px solid var(--border-strong);
  border-radius:var(--r-control);background:var(--surface-solid);color:var(--dim-2);transition:border-color .15s;}
.sfield:focus-within{border-color:var(--accent-bright);}
.sfield svg{flex:none;}
.sfield input{flex:1;min-width:0;height:100%;background:none;border:0;outline:none;color:var(--text);font:inherit;font-size:15px;}
.sfield .btn-accent{min-height:40px;}
.hero-cities{display:flex;flex-wrap:wrap;gap:6px;}
.chip{display:inline-flex;align-items:baseline;gap:6px;min-height:34px;padding:7px 11px;border-radius:var(--r-sm);border:1px solid var(--border-strong);
  font-weight:600;font-size:14px;line-height:1.2;color:var(--text);transition:border-color .15s,background-color .15s;}
.chip small{font-weight:500;font-size:12.5px;color:var(--dim-2);}
.chip:hover{border-color:var(--text-2);}
.chip.on{background:var(--text);border-color:var(--text);color:var(--bg);}
.chip.on small{color:color-mix(in srgb,var(--bg) 60%,var(--text));}
.chip-geo{align-items:center;color:var(--dim);border-color:transparent;}
.chip-geo:hover{color:var(--text);border-color:var(--border);}
/* autocomplete della ricerca */
.ac-panel{position:absolute;top:56px;left:0;right:0;z-index:60;background:var(--surface-solid);
  border:1px solid var(--border-strong);border-radius:var(--r-md);box-shadow:var(--shadow);overflow:hidden;padding:6px;}
.ac-item{display:flex;align-items:center;gap:12px;padding:9px 10px;border-radius:var(--r-sm);text-align:left;}
.ac-item:hover{background:var(--surface);}
.ac-tx{min-width:0;}
.ac-tx b{display:block;font-size:14.5px;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.ac-tx small{display:block;font-size:12.5px;color:var(--dim-2);}

/* riquadri delle categorie: foto, nome e numero sotto una velatura scura */
/* tessere larghe al massimo 190px: con poche categorie restano tessere, non poster */
.cattiles{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,190px);gap:10px;}
.cattile{position:relative;aspect-ratio:1;border-radius:var(--r-md);overflow:hidden;background:var(--tile);
  display:flex;align-items:flex-end;padding:10px;isolation:isolate;}
.cattile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform .6s cubic-bezier(.22,1,.36,1);}
.cattile::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(to top,rgba(5,7,13,.86),rgba(5,7,13,.1) 55%);}
.cattile:hover img{transform:scale(1.04);}
.ct-tx{display:grid;gap:1px;color:#fff;}
.ct-tx b{font-size:15px;font-weight:700;}
.ct-tx small{font-size:12.5px;color:rgba(255,255,255,.78);}

/* «Come funziona»: tre passi */
.steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;}
.steps li{display:grid;gap:8px;align-content:start;padding:20px;border-radius:var(--r-md);background:var(--surface-solid);border:1px solid var(--line);}
.steps .n{display:grid;place-items:center;width:28px;height:28px;border-radius:var(--r-sm);background:var(--sel);color:var(--sel-ink);font-weight:800;font-size:14px;}
.steps b{font-size:16px;font-weight:700;}
.steps li>span:last-child{color:var(--dim);font-size:14px;line-height:1.5;}

/* ---------- STORIES ---------- */
.storiesband{margin-top:40px;}
.storiesband .sb-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;}
.storiesband .lbl{display:flex;align-items:center;gap:10px;font-weight:700;font-size:21px;letter-spacing:-.01em;}
.storiesband .live-tag{display:inline-flex;align-items:center;gap:6px;padding:3px 7px;border-radius:var(--r-sm);
  background:var(--sel);color:var(--sel-ink);font-size:12px;font-weight:600;letter-spacing:0;}
.storiesband .sb-head a{display:inline-flex;align-items:center;gap:6px;font-weight:600;font-size:14px;color:var(--accent-bright);}
.stories{display:flex;gap:22px;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;padding:7px 2px;}
.stories::-webkit-scrollbar{display:none;}
.story{display:flex;flex-direction:column;align-items:center;gap:9px;flex-shrink:0;cursor:pointer;}
.story .ring{position:relative;width:64px;height:64px;border-radius:50%;padding:3px;background:var(--border);transition:transform .15s;}
.story:hover .ring{transform:scale(1.05);}
.story.live .ring{background:var(--accent-bright);}
.story .av{width:100%;height:100%;border-radius:50%;border:3px solid var(--bg);background-size:cover;display:grid;place-items:center;}
.story .lv{position:absolute;bottom:-4px;left:50%;transform:translateX(-50%);padding:1px 5px;border-radius:var(--r-xs);
  background:var(--accent);color:#fff;font-size:10px;font-weight:700;border:2px solid var(--bg);}
.story small{font-size:12.5px;color:var(--dim);font-weight:500;max-width:70px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.story.add .ring{background:repeating-conic-gradient(var(--border) 0 12deg,transparent 12deg 24deg);}
.story.add .av{background:var(--surface-2);color:var(--accent-bright);}
.story-empty{font-size:13px;color:var(--faint);align-self:center;padding:18px 4px;}

/* ---- VIEWER STORIE (fullscreen) ---------------------------------- */
.storyviewer{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;}
.sv-backdrop{position:absolute;inset:0;background:rgba(5,5,8,.92);backdrop-filter:blur(6px);}
.sv-stage{position:relative;width:min(440px,96vw);height:min(86vh,800px);border-radius:var(--r-md);overflow:hidden;
  background:#0b0a0e;border:1px solid var(--border);box-shadow:0 30px 80px -20px rgba(0,0,0,.8);}
.sv-bars{position:absolute;top:10px;left:10px;right:10px;z-index:6;display:flex;gap:4px;}
.sv-bar{flex:1;height:3px;border-radius:var(--r-control);background:rgba(255,255,255,.28);overflow:hidden;}
.sv-bar i{display:block;height:100%;width:0;background:#fff;border-radius:var(--r-control);}
.sv-bar i.done{width:100%;}
.sv-bar i.cur{width:100%;}
.sv-top{position:absolute;top:22px;left:12px;right:12px;z-index:6;display:flex;align-items:center;justify-content:space-between;}
.sv-name{color:#fff;font-weight:700;font-size:14px;text-shadow:0 1px 6px rgba(0,0,0,.6);}
.sv-tools{display:flex;align-items:center;gap:8px;}
.sv-ic{background:rgba(0,0,0,.4);border:none;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;cursor:pointer;}
.sv-ic:hover{background:rgba(0,0,0,.7);}
.sv-media{position:absolute;inset:0;display:grid;place-items:center;background:#0b0a0e;}
.sv-media img,.sv-media video{width:100%;height:100%;object-fit:contain;}
.sv-cap{position:absolute;left:0;right:0;bottom:0;z-index:3;padding:40px 16px 18px;color:#fff;font-size:14px;line-height:1.4;
  background:linear-gradient(0deg,rgba(0,0,0,.72),transparent);}
.sv-nav{position:absolute;top:0;bottom:0;width:40%;z-index:2;background:none;border:none;cursor:pointer;}
.sv-nav.left{left:0;}
.sv-nav.right{right:0;}
/* like = mano a solo contorno, niente sfondo (drop-shadow per leggibilità sulle foto) */
.sv-like{position:absolute;right:16px;bottom:72px;z-index:4;display:flex;flex-direction:column;align-items:center;gap:4px;
  background:none;border:none;cursor:pointer;color:#fff;font-weight:700;font-size:12px;
  filter:drop-shadow(0 1px 4px rgba(0,0,0,.7));transition:transform .12s;}
.sv-like:active{transform:scale(.9);}
.sv-like.on{color:var(--accent-bright);}
/* Il like della foto: prima era un'icona da 16px senza fondo, che su una foto
   chiara semplicemente spariva. Ora è una pastiglia come le azioni in alto —
   stesso fondo scuro sfocato, stessa misura — quindi si vede su qualsiasi foto. */
.glike{position:absolute;left:14px;bottom:14px;display:inline-flex;align-items:center;gap:6px;
  padding:6px 11px;border-radius:var(--r-control);
  background:rgba(10,9,14,0.6);backdrop-filter:blur(10px);border:1px solid var(--border);
  color:#fff;font-size:12px;line-height:1;font-weight:600;cursor:pointer;transition:.15s;}
.glike:hover{border-color:var(--border-strong);background:rgba(10,9,14,0.75);}
.glike:active{transform:scale(.94);}
.glike.on{color:var(--accent-bright);border-color:rgba(90,169,255,.5);}
/* pollice: contornato di default, pieno quando il voto è stato dato */
.tu-fill{display:none;}
.glike.on .tu-out,.sv-like.on .tu-out{display:none;}
.glike.on .tu-fill,.sv-like.on .tu-fill{display:block;}
/* miniature storie dentro la pagina profilo */
.pstories{display:flex;gap:10px;overflow-x:auto;scrollbar-width:none;padding:2px 0;}
.pstories::-webkit-scrollbar{display:none;}
.pstory{position:relative;flex-shrink:0;width:96px;aspect-ratio:9/16;border-radius:var(--r-sm);overflow:hidden;border:1px solid var(--border);cursor:pointer;background:#0d0c12;transition:transform .14s;}
.pstory:hover{border-color:var(--border-strong);}
.pstory img,.pstory video{width:100%;height:100%;object-fit:cover;display:block;}
.pstory-play{position:absolute;inset:0;display:grid;place-items:center;filter:drop-shadow(0 2px 5px rgba(0,0,0,.6));}
.pstory-cap{position:absolute;left:0;right:0;bottom:0;padding:16px 7px 6px;font-size:10.5px;color:#fff;line-height:1.25;
  background:linear-gradient(0deg,rgba(0,0,0,.82),transparent);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
/* "In evidenza": tessera storia evidenziata */
.pstory.hl{border-color:var(--accent-glow);}
.pstory .hl-grad{position:absolute;inset:0;background:radial-gradient(120% 120% at 30% 20%,rgba(var(--accent-rgb),.55),#15121b);}
/* anteprima riservata nella striscia storie: offuscata + lucchetto */
.pstory img.thblur{filter:blur(7px) brightness(.8);transform:scale(1.12);}
.pstory-lock{position:absolute;inset:0;display:grid;place-items:center;filter:drop-shadow(0 2px 6px rgba(0,0,0,.7));}
/* descrizione tradotta automaticamente (badge) */
.autotr{font-size:11px;font-weight:600;color:var(--accent-bright);background:rgba(var(--accent-rgb),.1);border:1px solid var(--accent-glow);border-radius:var(--r-control);padding:2px 8px;margin-left:8px;vertical-align:middle;}
/* "Migliora con AI" nel form annuncio */
.airow{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:8px;}
.aibtn{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--accent-glow);background:rgba(var(--accent-rgb),.1);
  color:var(--accent-bright);font-weight:700;font-size:13px;padding:8px 14px;border-radius:var(--r-sm);cursor:pointer;transition:.15s;}
.aibtn:hover{background:rgba(var(--accent-rgb),.18);}
.aibtn:disabled{opacity:.6;cursor:default;}
.aibtn.locked{text-decoration:none;border-style:dashed;color:#caa6bb;background:rgba(255,255,255,.03);}
.aibtn.locked:hover{border-color:var(--accent-bright);color:var(--accent-bright);}
.aihint{font-size:11.5px;color:var(--faint);flex:1;min-width:160px;}
.aierr{margin-top:6px;font-size:12px;color:#ff8aa3;}

/* ===== Experience (pubblico) ===== */
.navxp{color:var(--accent-bright)!important;font-weight:700;}
/* elenco: schede dei tipi + menu città sulla stessa riga */
.xp{padding-bottom:64px;}
.xp-bar{display:flex;align-items:flex-end;justify-content:space-between;gap:12px 24px;flex-wrap:wrap;margin-bottom:32px;box-shadow:inset 0 -1px 0 var(--line);}
.xp-bar .utabs{margin:0;box-shadow:none;flex:1 1 0;min-width:0;max-width:100%;}
.xp-bar>*{min-width:0;max-width:100%;}
.xp-city{padding-bottom:8px;}
.xp-city label{display:flex;align-items:center;gap:8px;color:var(--dim);}
.xp-city select{min-height:40px;padding:0 34px 0 12px;border:1px solid var(--border-strong);border-radius:var(--r-control);background:var(--surface);
  color:var(--text);font:inherit;font-size:14.5px;}
/* card: foto 4:3 con il tipo, testo sotto */
.xp-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px 24px;}
.xprow{display:flex;gap:20px;overflow-x:auto;scrollbar-width:none;padding-bottom:6px;scroll-snap-type:x mandatory;}
.xprow::-webkit-scrollbar{display:none;}
.xprow .xpcard{flex:0 0 300px;scroll-snap-align:start;}
.xpcard{display:grid;gap:14px;align-content:start;color:inherit;min-width:0;}
.xpc-ph{position:relative;aspect-ratio:4/3;border-radius:var(--r-md);background:var(--tile) center/cover;overflow:hidden;}
.xpc-k{position:absolute;top:10px;left:10px;padding:4px 8px;border-radius:var(--r-sm);background:rgba(8,11,20,.76);color:#fff;font-size:12.5px;font-weight:600;}
.xpc-b{display:grid;gap:6px;min-width:0;}
.xpc-t{font-size:18px;font-weight:700;line-height:1.25;letter-spacing:-.01em;text-wrap:balance;transition:color .15s;}
.xpcard:hover .xpc-t{color:var(--accent-bright);}
.xpc-h{font-size:14.5px;line-height:1.5;color:var(--dim);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.xpc-f{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:4px;padding-top:10px;box-shadow:inset 0 1px 0 var(--line);}
.xpc-host{display:flex;align-items:center;gap:8px;min-width:0;font-size:13.5px;color:var(--dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.xpc-host i{flex:none;width:24px;height:24px;border-radius:50%;background:var(--tile) center/cover;}
.xpc-p{flex:none;font-size:14.5px;font-weight:700;color:var(--text);font-variant-numeric:tabular-nums;}
@media(max-width:1080px){.xp-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:600px){
  .xp-grid{grid-template-columns:minmax(0,1fr);gap:32px;}
  .xp-bar{flex-direction:column;align-items:stretch;}
  .xp-city{padding:0 0 12px;}
  .xp-city select{flex:1;}
  .xprow .xpcard{flex-basis:84%;}
}

/* dettaglio */
.backlink{display:inline-block;color:var(--accent-bright);font-weight:700;font-size:13.5px;margin-bottom:14px;}
.xpdetail{display:grid;grid-template-columns:1.7fr 1fr;gap:28px;align-items:start;}
.xpd-cover{aspect-ratio:16/10;border-radius:var(--r-md);position:relative;background:linear-gradient(200deg,#3a2a33,#181318);margin-bottom:18px;}
.xpd-main h1{font-size:26px;font-weight:800;letter-spacing:-.6px;margin:0 0 6px;}
.xpd-by{color:var(--dim);font-size:14px;margin-bottom:18px;}
.xpd-by a{color:var(--accent-bright);font-weight:700;}
.xpincl{list-style:none;padding:0;margin:0;display:grid;gap:8px;}
.xpincl li{padding-left:24px;position:relative;font-size:14px;color:var(--text);}
.xpincl li::before{content:"✓";position:absolute;left:0;color:var(--online);font-weight:800;}
.xpcities{display:flex;flex-wrap:wrap;gap:8px;}
.xpcities a{padding:6px 12px;border-radius:var(--r-control);border:1px solid var(--border);font-size:13px;color:var(--dim);}
.xpd-side{position:sticky;top:90px;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);padding:18px;}
.xpd-price{font-size:24px;font-weight:800;margin-bottom:14px;}
.xpd-box b{display:block;margin-bottom:10px;font-size:15px;}
.xpreq{display:flex;flex-direction:column;gap:9px;}
.xpreq input,.xpreq textarea{width:100%;padding:11px 13px;border-radius:var(--r-sm);border:1px solid var(--border);background:var(--surface-2);color:var(--text);font-size:14px;font-family:inherit;}
.xphint{display:block;margin-top:10px;font-size:11.5px;color:var(--faint);line-height:1.4;}
.xpd-contact{margin-top:14px;}
.xpd-contact .btn-ghost{width:100%;text-align:center;display:block;}
.xpsim-h{margin:34px 0 16px;font-size:18px;}
@media(max-width:860px){.xpdetail{grid-template-columns:1fr;}.xpd-side{position:static;}}


/* ---------- CITTÀ (griglia link città) ---------- */
/* ---- COVER-TILE città (stile Escort Advisor) --------------- */
.cities{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px;}
/* carosello orizzontale (home) — scrollbar nascosta, frecce JS (Alpine) */
.carousel{position:relative;}
.cityrow{display:flex;gap:10px;overflow-x:auto;overflow-y:hidden;padding:2px 2px 12px;
  scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;
  scrollbar-width:none;-ms-overflow-style:none;}
.cityrow::-webkit-scrollbar{display:none;}
.cityrow>.city{flex:0 0 220px;scroll-snap-align:start;}
.cnav{position:absolute;top:calc(50% - 6px);transform:translateY(-50%);z-index:4;
  width:40px;height:40px;border-radius:var(--r-sm);display:grid;place-items:center;cursor:pointer;color:#fff;
  background:rgba(8,11,20,.86);border:1px solid var(--border-strong);transition:background-color .15s;}
.cnav:hover{background:var(--accent);border-color:var(--accent);}
.cnav.prev{left:-8px;}
.cnav.next{right:-8px;}
/* su device touch / schermi piccoli si scorre con lo swipe: niente frecce */
@media (hover:none),(max-width:768px){.cnav{display:none!important;}}
.city{position:relative;display:block;aspect-ratio:16/10;border-radius:var(--r-md);overflow:hidden;
  background:var(--tile);cursor:pointer;}
.city img:not(.flag){position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .35s;}
.city::after{content:"";position:absolute;inset:0;
  background:linear-gradient(to top,rgba(6,6,10,.92) 0%,rgba(6,6,10,.42) 42%,rgba(6,6,10,.04) 100%);}
.city.nophoto{background:var(--tile);}
.city .flag{position:absolute;top:8px;right:8px;z-index:1;width:26px;height:18px;border-radius:var(--r-xs);object-fit:cover;}
.city .lbl{position:absolute;left:0;right:0;bottom:0;z-index:1;padding:10px 12px;}
.city b{font-size:16px;font-weight:700;color:#fff;display:block;line-height:1.2;}
.city small{font-size:12.5px;color:rgba(255,255,255,.82);}
.city:hover img:not(.flag){transform:scale(1.04);}

/* ---------- TRUST BAND ---------- */
/* Blocco SEO in fondo alla home: separatore + prosa con keyword + link interni città */
.home-seo{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:24px 64px;padding-top:40px;border-top:1px solid var(--line);}
.home-seo-tx,.home-seo-side{display:grid;gap:12px;align-content:start;min-width:0;}
.home-seo h3{font-size:13px;font-weight:600;color:var(--dim-2);}
.home-seo h2{font-size:19px;font-weight:700;}
.home-seo p{font-size:15px;line-height:1.65;color:var(--dim);max-width:68ch;}
.home-seo-links{display:flex;flex-wrap:wrap;gap:4px 18px;}
.home-seo-links a{font-size:14px;color:var(--dim);padding:3px 0;}
.home-seo-links a:hover{color:var(--text);}
.trust{display:flex;border:1px solid var(--border);border-radius:var(--r-md);overflow:hidden;background:var(--surface);margin-top:44px;backdrop-filter:blur(8px);}
.trust .it{flex:1;display:flex;align-items:center;gap:15px;padding:26px 26px;}
.trust .it+.it{border-left:1px solid var(--border);}
.trust .ti{width:50px;height:50px;border-radius:var(--r-sm);background:var(--surface-2);border:1px solid var(--border);display:grid;place-items:center;color:var(--accent-bright);flex-shrink:0;}
.trust b{font-size:15.5px;display:block;}
.trust small{font-size:12.5px;color:var(--faint);}

/* ============================================================
   CARD PROFILO + GRIGLIE (condivise home/listing)
   Griglia FLUIDA: il numero di colonne si adatta da solo alla
   larghezza disponibile mantenendo la card ~costante (--cardmin).
   Niente colonne fisse per breakpoint → card mai deformate.
   Le classi .g4/.gl restano per compatibilità ma non forzano nulla.
   ============================================================ */
.grid{display:grid;gap:24px 14px;min-width:0;grid-template-columns:repeat(auto-fill,minmax(var(--cardmin,190px),1fr));}
.grid.g6{--cardmin:168px;}
/* La card non ha cornice: è la foto più due righe di testo sotto. */
a.card{display:grid;gap:9px;align-content:start;min-width:0;color:inherit;}
a.card .ph{position:relative;aspect-ratio:3/4;border-radius:var(--r-md);overflow:hidden;background-color:var(--tile);}
a.card .ph .phimg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;
  transition:transform .6s cubic-bezier(.22,1,.36,1);}
a.card:hover .phimg{transform:scale(1.035);}
/* I livelli a pagamento si riconoscono da un filetto nel colore del livello e
   dall'etichetta: niente bagliori né bordi animati. */
a.card.ispremium .ph{outline:1px solid var(--tier,#e8b923);outline-offset:-1px;}
a.card.boosted .ph{outline:2px solid var(--accent-bright);outline-offset:-2px;}
.clbl{position:absolute;left:8px;top:8px;max-width:calc(100% - 56px);padding:4px 7px;border-radius:var(--r-sm);
  background:rgba(8,11,20,.76);color:#e6ecf8;font-size:12px;font-weight:600;line-height:1.2;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.clbl-tier{background:var(--tier,#e8b923);color:#141005;}
.clbl-boost{background:var(--accent);color:#fff;}
.ondot{position:absolute;left:10px;bottom:10px;width:10px;height:10px;border-radius:50%;background:var(--online-bright);
  box-shadow:0 0 0 2px rgba(8,11,20,.7);}
a.card .heart{position:absolute;top:2px;right:2px;}
.cinfo{display:grid;gap:2px;min-width:0;padding:0 1px;}
.cinfo .nm{display:flex;align-items:center;gap:6px;min-width:0;font-size:15px;line-height:1.3;}
.cinfo .nm b{font-weight:700;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.cinfo .nm em{font-style:normal;font-weight:500;color:var(--dim-2);flex:none;}
.cinfo .rt{margin-left:auto;flex:none;font-size:13px;font-weight:600;color:var(--text-soft);}
.cinfo .sub{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font-size:13.5px;color:var(--dim);}
.cinfo .zo{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.cinfo .sub b{flex:none;color:var(--text);font-weight:600;}
.vchk{flex:none;display:inline-block;}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
/* fascia «In primo piano» in testa all'elenco */
.spotlight{margin-bottom:28px;padding-bottom:28px;border-bottom:1px solid var(--line);}
.spot-head{display:flex;align-items:baseline;gap:10px;font-size:18px;font-weight:700;margin-bottom:14px;}
.spot-head .spot-ic{display:none;}
.spot-head small{font-weight:500;color:var(--dim-2);font-size:13.5px;}
.spot-grid{--cardmin:190px;}
/* flag «In primo piano» sulla scheda profilo */
.gcover{position:relative;}
.boostflag{position:absolute;top:12px;left:12px;z-index:7;padding:5px 9px;border-radius:var(--r-sm);
  font-size:12.5px;font-weight:600;color:#fff;background:var(--accent);}
.gcover.ispremium{outline:1px solid var(--tier,#e8b923);outline-offset:-1px;}
.gcover.boosted{outline:2px solid var(--accent-bright);outline-offset:-2px;}
.lrow.ispremium{border-color:var(--tier,#e8b923);}
/* Spunta «Premium» sulle recensioni di utenti abbonati (non tocca il voto). */
.revprem{display:inline-block;margin-left:7px;padding:2px 6px;border-radius:var(--r-sm);
  font-size:11.5px;font-weight:700;vertical-align:1px;background:var(--gold-bright);color:#241704;}
.minib.boostb{background:var(--accent);border-color:transparent;color:#fff;}
.minib.hotrankb{background:var(--hot);border-color:transparent;color:var(--hot-ink);}
/* ===== Gioco «Hot or Not» (gioco + classifica) =========================== */
.hot-tabs{margin-bottom:28px;}
.hot-layout{display:grid;grid-template-columns:minmax(0,460px) minmax(0,400px);justify-content:start;column-gap:72px;row-gap:40px;align-items:start;}
.hot-layout-board{grid-template-columns:minmax(0,1fr) 280px;justify-content:stretch;column-gap:56px;}
/* mazzo */
.hotgame{min-width:0;}
.hotdeck{position:relative;aspect-ratio:4/5;user-select:none;-webkit-user-select:none;}
.hotcard{position:absolute;inset:0;border-radius:var(--r-md);background-size:cover;background-position:center;background-color:#141824;overflow:hidden;}
.hotcard.behind{transform:scale(.96) translateY(10px);filter:brightness(.55);z-index:1;}
.hotcard.top{z-index:2;cursor:grab;touch-action:pan-y;transition:transform .26s cubic-bezier(.22,1,.36,1),opacity .26s;will-change:transform;}
.hotcard.top.drag{cursor:grabbing;transition:none;}
.hotcard.top.go-hot{transform:translateX(115%) rotate(12deg);opacity:0;}
.hotcard.top.go-skip{transform:translateX(-115%) rotate(-12deg);opacity:0;}
.hotcard-grad{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,transparent 55%,rgba(6,8,14,.88));}
.hotcard-info{position:absolute;left:20px;right:20px;bottom:18px;display:grid;gap:2px;color:#fff;}
.hotcard-info b{font-size:24px;font-weight:800;letter-spacing:-.02em;line-height:1.15;overflow-wrap:anywhere;}
.hotcard-info .age{font-weight:500;opacity:.85;}
.hotcard-info small{font-size:14px;color:rgba(255,255,255,.8);}
.hotcard-info:hover b>span:first-child{text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;}
.hotcard-stamp{position:absolute;top:20px;z-index:3;padding:6px 12px;border:2px solid;border-radius:var(--r-sm);background:rgba(6,8,14,.45);
  font-size:15px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;opacity:0;pointer-events:none;}
.hotcard-stamp.like{left:20px;color:#fff;border-color:var(--hot-bright);background:var(--hot);}
.hotcard-stamp.nope{right:20px;color:#fff;border-color:rgba(255,255,255,.8);}
.hotcard.go-hot .hotcard-stamp.like,.hotcard.go-skip .hotcard-stamp.nope{opacity:1;}
.hotempty{position:absolute;inset:0;display:grid;align-content:center;justify-items:center;gap:10px;padding:28px;text-align:center;
  border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-solid);}
.hotempty h2{font-size:19px;font-weight:700;}
.hotempty p{max-width:34ch;color:var(--dim);}
.hotempty .btn-accent{margin-top:6px;}
/* contatore + pulsanti */
.hotbar{display:flex;justify-content:space-between;gap:12px;margin-top:14px;font-size:13.5px;color:var(--dim-2);font-variant-numeric:tabular-nums;}
.hotbar b{color:var(--text);font-weight:700;}
.hotbtns{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px;}
.hothint{margin-top:10px;font-size:12.5px;color:var(--dim-2);text-align:center;}
.hotbtn{display:flex;align-items:center;justify-content:center;gap:8px;min-height:52px;padding:0 16px;border-radius:var(--r-sm);
  font:inherit;font-size:15px;font-weight:700;cursor:pointer;transition:background .15s,border-color .15s,transform .1s;}
.hotbtn:active{transform:translateY(1px);}
.hotbtn.skip{border:1px solid var(--border-strong);background:transparent;color:var(--text);}
.hotbtn.skip:hover{border-color:var(--text-2);background:var(--surface);}
.hotbtn.hot{border:1px solid transparent;background:var(--hot);color:var(--hot-ink);}
.hotbtn.hot:hover{background:var(--hot-bright);}
.hotbtn kbd{margin-left:4px;padding:1px 6px;border-radius:3px;font:inherit;font-size:12px;font-weight:600;opacity:.65;box-shadow:inset 0 0 0 1px currentColor;}
/* colonna laterale */
.hot-aside{display:grid;gap:36px;min-width:0;}
.hot-how h2{font-size:17px;font-weight:700;margin-bottom:12px;}
.hot-how ol{display:grid;gap:12px;padding:0;list-style:none;counter-reset:hs;}
.hot-how li{display:grid;grid-template-columns:22px minmax(0,1fr);gap:10px;font-size:14.5px;line-height:1.55;color:var(--text-2);counter-increment:hs;}
.hot-how li::before{content:counter(hs);font-weight:700;color:var(--dim-2);font-variant-numeric:tabular-nums;}
.hot-how p{font-size:14.5px;line-height:1.6;color:var(--text-2);}
.hot-how p+p{margin-top:10px;color:var(--dim);}
.hot-top .sec-h{margin-bottom:6px;}
.hot-top .sec-h h2{font-size:17px;}
.hot-none{font-size:14.5px;color:var(--dim);padding:10px 0;}
.hot-install{justify-self:start;}
.hot-play{justify-self:stretch;min-height:48px;}
/* righe di classifica */
.hotlist{list-style:none;padding:0;}
.hotrow{display:grid;grid-template-columns:24px 44px minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px 0;box-shadow:inset 0 -1px 0 var(--line);color:inherit;}
.hotlist li:last-child .hotrow{box-shadow:none;}
.hotrow:hover .hotmeta b{color:var(--accent-bright);}
.hotrank{font-size:15px;font-weight:700;color:var(--dim-2);font-variant-numeric:tabular-nums;text-align:right;}
.hotrow-win .hotrank{color:var(--hot-bright);}
.hotav{width:44px;aspect-ratio:4/5;border-radius:var(--r-sm);background:#141824 center/cover;}
.hotmeta{min-width:0;display:grid;}
.hotmeta b{font-size:15px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .15s;}
.hotmeta small{font-size:13px;color:var(--dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.hotscore{font-size:13px;color:var(--dim-2);font-variant-numeric:tabular-nums;white-space:nowrap;}
.hotscore b{font-size:15px;color:var(--text);}
.hotlist-full{margin-top:28px;box-shadow:inset 0 1px 0 var(--line);}
.hotlist-full .hotrow{grid-template-columns:28px 52px minmax(0,1fr) auto;gap:16px;padding:12px 0;}
.hotlist-full .hotav{width:52px;}
/* podio: i primi tre */
.podium{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;list-style:none;padding:0;}
.pod{display:grid;gap:10px;color:inherit;}
.pod-ph{position:relative;aspect-ratio:4/5;border-radius:var(--r-md);background:#141824 center/cover;overflow:hidden;}
.pod-rank{position:absolute;left:0;top:0;min-width:36px;padding:7px 10px;background:var(--hot);color:var(--hot-ink);
  font-size:16px;font-weight:800;text-align:center;font-variant-numeric:tabular-nums;border-bottom-right-radius:var(--r-sm);}
.pod-tx{display:grid;min-width:0;}
.pod-tx b{font-size:16px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .15s;}
.pod-tx small{font-size:13.5px;color:var(--dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.pod:hover .pod-tx b{color:var(--accent-bright);}
.pod-score{font-size:13.5px;color:var(--dim-2);font-variant-numeric:tabular-nums;}
.pod-score b{color:var(--text);font-size:15px;}
@media(prefers-reduced-motion:reduce){
  .hotcard.top{transition:opacity .2s;}
  .hotcard.top.go-hot,.hotcard.top.go-skip{transform:none;}
}
@media(max-width:1080px){
  .hot-layout{grid-template-columns:minmax(0,400px) minmax(0,1fr);column-gap:40px;}
  .hot-layout-board{grid-template-columns:minmax(0,1fr) 240px;}
}
@media(max-width:820px){
  .hot-layout,.hot-layout-board{grid-template-columns:minmax(0,1fr);}
  .hotgame{width:100%;max-width:480px;justify-self:center;}
  .hot-layout-board .hot-aside{gap:20px;padding-bottom:16px;}
}
@media(max-width:560px){
  .podium{gap:10px;}
  .pod-rank{min-width:28px;padding:5px 8px;font-size:14px;}
  .pod-tx b{font-size:14px;}
  .pod-tx small{display:none;}
  .pod-score{font-size:12.5px;}
  .hotlist-full .hotrow{grid-template-columns:24px 44px minmax(0,1fr) auto;gap:12px;}
  .hotlist-full .hotav{width:44px;}
}
/* gioco a tutto schermo su telefono: il mazzo riempie lo spazio tra testata e pulsanti,
   la colonna laterale (come funziona, classifica) sta sotto, raggiungibile scorrendo */
@media(max-width:768px){
  body.hotpage footer,body.hotpage .agestrip{display:none;}
  .hotpage .hot-head{padding:10px 0 8px;gap:0;}
  .hotpage .hot-head .crumb,.hotpage .hot-head .count{display:none;}
  .hotpage .hot-head h1{font-size:20px;}
  .hotpage .hot-tabs{margin-bottom:12px;}
  /* 330 = testata 57 + titolo e categorie 97 + contatore e pulsanti 96 + barra in basso 60 + margini */
  .hotpage .hotdeck{aspect-ratio:auto;height:calc(100vh - 330px);height:calc(100svh - 330px - env(safe-area-inset-bottom,0px));min-height:320px;}
  .hotpage .hotbtns kbd{display:none;}
  .hotpage .hot-aside{padding-bottom:32px;}
}
/* in standalone (PWA installata) niente testata del sito: più spazio al mazzo */
@media(display-mode:standalone){
  body.hotpage .agestrip{display:none;}
  body.hotpage .hot-head{padding-top:max(12px,env(safe-area-inset-top));}
}
.navhot{color:#ff6a3d!important;font-weight:700;}
/* home: numeri sotto il titolo */
.hero-facts{display:flex;flex-wrap:wrap;gap:6px 22px;margin-top:18px;font-size:14.5px;color:var(--dim);}
.hero-facts b{color:var(--text);font-weight:700;font-variant-numeric:tabular-nums;}
.hero-facts .on{display:inline-flex;align-items:center;gap:7px;}
/* home: Hot or Not con i tre più votati di oggi */
.hotsec{grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);align-items:center;gap:32px 56px;padding:32px;
  border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-solid);}
.hotsec-tx{display:grid;gap:12px;justify-items:start;}
.hotsec-tx h2{font-size:clamp(1.4rem,1.1rem + .8vw,1.75rem);line-height:1.15;font-weight:800;letter-spacing:-.02em;}
.hotsec-tx p{color:var(--dim);font-size:15.5px;line-height:1.55;max-width:42ch;}
.hotsec-acts{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px;}
.hotsec-pod{gap:14px;}
/* home: fascia per chi pubblica */
.pubband{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:20px 40px;padding:28px 32px;
  border:1px solid var(--line);border-radius:var(--r-md);}
.pubband-tx{display:grid;gap:6px;}
.pubband-tx h2{font-size:21px;font-weight:700;}
.pubband-tx p{color:var(--dim);font-size:15px;line-height:1.55;max-width:62ch;}
.pubband-acts{display:flex;flex-wrap:wrap;gap:8px;}
.pubband+.home-seo{border-top:0;padding-top:8px;}   /* il riquadro sopra fa già da separatore */
@media(max-width:900px){
  .hotsec{grid-template-columns:minmax(0,1fr);padding:24px;}
  .pubband{grid-template-columns:minmax(0,1fr);}
  .home-seo{grid-template-columns:minmax(0,1fr);}
}
@media(max-width:560px){
  .hotsec,.pubband{padding:24px 16px;margin-inline:-16px;border-inline:0;border-radius:0;}
  .hotsec-pod{gap:8px;}
  .pubband-acts>a{flex:1 1 auto;}
}
/* invito al gioco dentro la griglia della città: occupa una riga intera */
.hotband{grid-column:1/-1;display:grid;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:16px;
  padding:16px 20px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-solid);color:inherit;transition:border-color .15s;}
.hotband:hover{border-color:var(--border-strong);}
.hotband:hover .hotband-btn{border-color:var(--text-2);background:var(--surface);}
.hotband-ic{display:grid;place-items:center;width:40px;height:40px;border-radius:var(--r-sm);background:var(--hot);color:var(--hot-ink);}
.hotband-tx{display:grid;gap:2px;min-width:0;}
.hotband-tx b{font-size:16px;font-weight:700;}
.hotband-tx span{font-size:14px;color:var(--dim);}
.lrows .hotband{margin:8px 0;}
@media(max-width:560px){
  .hotband{grid-template-columns:36px minmax(0,1fr);gap:12px;padding:14px 16px;border-inline:0;border-radius:0;}
  .hotband-ic{width:36px;height:36px;}
  .hotband-btn{display:none;}
}
.minib{display:inline-flex;align-items:center;gap:5px;padding:4px 7px;border-radius:var(--r-sm);font-size:12px;font-weight:600;line-height:1.1;
  white-space:nowrap;flex-shrink:0;max-width:100%;background:rgba(8,11,20,.76);color:#e6ecf8;border:0;}
.minib.vip{background:var(--accent);border-color:transparent;}
/* badge tier */
.minib.tierb{border-color:transparent;color:#fff;}
.minib.tierb.tier-gold{background:#e0a83f;color:#241704;}
.minib.tierb.tier-red{background:var(--accent);}
.minib.tierb.tier-diamond{background:#8fd3ff;color:#06243a;}
.minib.on{color:var(--online);}
/* Cuore: sola icona, senza pastiglia. Il box resta 40px per l'area di tocco.
   flex:none è obbligatorio: senza, quando i badge accanto vanno a capo il cuore
   viene compresso in orizzontale e appare ovale. */
.heart{flex:none;width:40px;height:40px;padding:0;border:0;background:none;
  display:grid;place-items:center;cursor:pointer;color:#fff;transition:color .14s,transform .14s;}
/* Tolta la pastiglia scura, l'icona deve reggersi da sola anche su foto chiare:
   l'ombra è quello che le dà il distacco, non il fondo. */
.heart .hi{display:block;filter:drop-shadow(0 1px 3px rgba(0,0,0,.75)) drop-shadow(0 0 10px rgba(0,0,0,.45));}
.heart .hi-fill{display:none;}
.heart.on .hi-out{display:none;}
.heart.on .hi-fill{display:block;}
.heart:hover{color:#ffd7d2;}
.heart:active{transform:scale(.86);}
.heart.on{color:#f4685c;}
.heart.on:hover{color:#ff8579;}
/* Stesso cuore delle card anche sulla scheda profilo (foto, azioni in testa,
   barra fissa mobile): contornato di default, pieno e rosso quando salvato.
   Prima erano tre SVG diversi con il riempimento azzurro via :style inline. */
.favx .hi-fill{display:none;}
.favx.on .hi-out{display:none;}
.favx.on .hi-fill{display:block;}
.favx.on{color:#f4685c;}
.favx.on:hover{color:#ff8579;}
.gact.favx.on,.pacts .a.favx.on,.pbar .fav.favx.on{border-color:rgba(244,104,92,.5);}
/* .gact e .a impongono il proprio color piu' avanti nel foglio: qui serve
   il selettore composto, altrimenti il cuore pieno resta bianco/grigio. */
.gact.favx.on,.pacts .a.favx.on,.pbar .fav.favx.on,
.gact.favx.on:hover,.pacts .a.favx.on:hover{color:#f4685c;}

/* ---------- VISTA LISTA (toggle griglia/lista/mappa) ----------
   Riga a quattro colonne: miniatura · testo · numeri · preferito.
   Non è la card ruotata: sopra una foto verticale il nome sta bene in
   sovraimpressione, su una riga larga no — quindi il testo esce dalla foto. */
.lrows{display:flex;flex-direction:column;gap:10px;min-width:0;}
.lrow{position:relative;display:grid;grid-template-columns:84px minmax(0,1fr) auto 40px;
  align-items:center;gap:16px;padding:10px 14px 10px 10px;
  border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface-solid);
  transition:border-color .18s,background .18s;}
.lrow:hover{border-color:var(--border-strong);background:var(--tile);}
.lrow-ph{position:relative;display:block;width:84px;height:84px;flex:none;
  border-radius:var(--r-sm);overflow:hidden;background-size:cover;}
.lrow-ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;}
.lrow-main{display:flex;flex-direction:column;gap:7px;min-width:0;}
.lrow-nm{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.lrow-nm b{font-size:16.5px;line-height:1.25;letter-spacing:-.015em;}
.lrow-age{color:var(--dim-2);font-size:13.5px;line-height:1;}
.lrow-zo{display:flex;align-items:center;gap:6px;color:var(--dim-2);font-size:13px;line-height:1;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.lrow-badges{display:flex;flex-wrap:wrap;gap:6px;}
.lrow-badges:empty{display:none;}
.lrow-end{display:flex;flex-direction:column;align-items:flex-end;gap:8px;text-align:right;}
.lrow-rt{display:flex;align-items:center;gap:6px;font-size:13px;line-height:1;color:var(--dim-2);}
.lrow-pr{font-weight:700;font-size:14.5px;line-height:1;letter-spacing:-.01em;}
.lrow-fav{justify-self:end;color:var(--dim-2);}
/* In list view il cuore sta su una card piena, non su una foto: via l'ombra scura
   (in tema light era un'ombreggiatura brutta) e icona in colore neutro del tema. */
.lrow-fav .hi{filter:none;}
/* stessa gerarchia dei tier delle card, in versione riga */
.lrow.tier-gold{border-color:rgba(215,169,75,.45);}
.lrow.tier-red{border-color:rgba(90,169,255,.45);}
.lrow.tier-diamond{border-color:rgba(150,225,255,.5);}
.lrow.boosted{border-color:rgba(255,107,74,.55);}
@media(max-width:560px){
  /* Riga compatta stile app: la foto è a FILO e riempie tutto il lato sinistro a
     tutta altezza (niente margini bianchi attorno). Il padding sta solo sul testo;
     gli angoli sinistri li arrotonda il clip della card (overflow:hidden). */
  .lrow{grid-template-columns:108px minmax(0,1fr);grid-auto-rows:min-content;align-content:start;gap:0;padding:0;overflow:hidden;}
  .lrow-ph{grid-row:1 / span 2;width:108px;height:auto;align-self:stretch;border-radius:0;}
  .lrow-main{padding:11px 12px 0;gap:5px;}
  .lrow-end{grid-column:2;flex-direction:row;align-items:center;justify-content:flex-start;gap:14px;padding:7px 12px 11px;}
  .lrow-fav{position:absolute;top:8px;right:8px;}
}

/* ============================================================
   LISTING / PAGINA CITTÀ
   Colonna filtri a sinistra con i conteggi, griglia a destra.
   ============================================================ */
.lhead{display:grid;gap:8px;padding-top:22px;padding-bottom:22px;}
.crumb{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:13px;color:var(--dim-2);}
.crumb a:hover{color:var(--text);}
.crumb .sep{opacity:.6;}
.crumb .cur{color:var(--dim);}
.lhead h1,.lhead .lhead-t{font-size:clamp(1.6rem,1.2rem + 1.2vw,2.15rem);line-height:1.12;font-weight:800;letter-spacing:-.02em;overflow-wrap:break-word;}
.lhead .count{color:var(--dim);font-size:15px;}
.lhead .count .on{color:var(--online-bright);font-weight:600;white-space:nowrap;}
.ondot-i{display:inline-block;width:8px;height:8px;margin-right:6px;border-radius:50%;background:var(--online-bright);vertical-align:1px;}
[x-cloak]{display:none!important;}

.layout{display:grid;grid-template-columns:232px minmax(0,1fr);gap:32px;align-items:start;padding-bottom:30px;}
.layout>main{min-width:0;}
.layout>main>.freqcloud{margin-top:40px;}

/* colonna filtri: niente riquadro, solo gruppi di link con il conteggio */
.fside{position:sticky;top:calc(var(--hd-h) + 20px);display:grid;gap:22px;max-height:calc(100vh - var(--hd-h) - 40px);
  overflow-y:auto;scrollbar-width:none;padding-bottom:12px;}
.fside::-webkit-scrollbar{display:none;}
.fside .fhead{display:none;}
.ftoggle{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 12px 11px 14px;cursor:pointer;
  border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-solid);font-weight:600;font-size:14.5px;}
/* interruttore: l'unica forma tonda dei controlli, perché è la convenzione */
.sw{appearance:none;flex:none;position:relative;width:36px;height:22px;margin:0;border-radius:999px;background:var(--border-strong);cursor:pointer;
  transition:background-color .2s;}
.sw::after{content:"";position:absolute;left:3px;top:3px;width:16px;height:16px;border-radius:50%;background:#fff;
  transition:transform .2s cubic-bezier(.22,1,.36,1);}
.sw:checked{background:var(--accent);}
.sw:checked::after{transform:translateX(14px);}
.fgrp{display:grid;gap:1px;}
.fgrp h2{padding:0 10px 6px;font-size:12.5px;font-weight:600;color:var(--dim-2);}
.fgrp a{display:flex;justify-content:space-between;align-items:baseline;gap:8px;padding:7px 10px;border-radius:var(--r-sm);
  font-size:14px;font-weight:500;color:var(--text-soft);transition:background-color .15s;}
.fgrp a:hover{background:var(--surface);color:var(--text);}
.fgrp a small{font-size:13px;color:var(--dim-2);font-variant-numeric:tabular-nums;}
.fgrp a.on{background:var(--sel);color:var(--sel-ink);font-weight:700;}
.fgrp a.on small{color:inherit;}
.fcheck{display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:var(--r-sm);font-size:14px;color:var(--text-soft);cursor:pointer;}
.fcheck:hover{background:var(--surface);}
.fcheck input{width:16px;height:16px;margin:0;accent-color:var(--accent);}
.frange{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:0 2px;}
.frange input{width:100%;height:38px;padding:0 10px;border-radius:var(--r-sm);border:1px solid var(--border);background:var(--surface-solid);
  color:var(--text);font:inherit;font-size:14px;outline:none;}
.frange input:focus{border-color:var(--accent-bright);}
.fapply{display:none;}
/* campi del wizard che riusano lo stile dei filtri */
.fchips{display:flex;gap:6px;flex-wrap:wrap;}
.fchip{border:1px solid var(--border);border-radius:var(--r-sm);padding:7px 12px;font-size:13px;font-weight:600;color:var(--dim);cursor:pointer;transition:.15s;}
.fchip:hover{border-color:var(--border-strong);color:var(--text);}
.fchip.on{background:var(--text);color:var(--bg);border-color:var(--text);}

/* barra sopra la griglia */
.lbar{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding-bottom:12px;margin-bottom:18px;border-bottom:1px solid var(--line);}
.lsort{display:inline-flex;align-items:center;gap:8px;margin-right:auto;font-size:14px;color:var(--dim);}
.lsort select{height:36px;padding:0 30px 0 10px;border-radius:var(--r-sm);border:1px solid var(--border-strong);color:var(--text);font:inherit;font-size:14px;font-weight:600;
  appearance:none;cursor:pointer;background:var(--surface-solid) 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='%2393a2c4' stroke-width='2.6' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 10px center;}
.lsort select:focus-visible{outline:2px solid var(--accent-bright);outline-offset:1px;}
.vtoggle{display:flex;gap:2px;}
.vtoggle a{display:grid;place-items:center;width:36px;height:36px;border-radius:var(--r-sm);color:var(--dim-2);transition:.15s;}
.vtoggle a:hover{color:var(--text);background:var(--surface);}
.vtoggle a.on{background:var(--surface-2);color:var(--text);}
.savesearch{min-height:36px;font-size:14px;}
.savesearch.on{color:var(--sel-ink);border-color:transparent;background:var(--sel);}
.sortmenu{position:absolute;top:calc(100% + 8px);right:0;min-width:190px;background:var(--surface-solid);border:1px solid var(--border);border-radius:var(--r-md);padding:6px;box-shadow:var(--shadow);z-index:60;}
.sortmenu div{padding:12px;border-radius:var(--r-sm);font-size:15px;color:var(--text-soft);cursor:pointer;}
.sortmenu div:hover{background:var(--surface-2);color:var(--text);}
.sortmenu div.on{background:var(--sel);color:var(--sel-ink);font-weight:700;}

/* filtri attivi come etichette rimovibili */
.achips{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:18px;}
.achip{display:inline-flex;align-items:center;gap:7px;height:30px;padding:0 10px;border-radius:var(--r-sm);background:var(--surface-2);
  color:var(--text);font-size:13px;font-weight:600;}
.achip:hover{background:var(--border-strong);}
.achip svg{color:var(--dim);}
.achip-clear{font-size:13px;color:var(--dim);font-weight:600;margin-left:6px;}
.achip-clear:hover{color:var(--text);}
/* nessun risultato */
.empty{grid-column:1/-1;display:grid;gap:10px;justify-items:start;padding:36px 28px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-solid);}
.empty h2,.empty .empty-t{font-size:19px;font-weight:700;color:var(--text);max-width:none;}
.empty p{color:var(--dim);max-width:56ch;}
.empty-acts{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px;}
/* stato vuoto «a pagina»: niente riquadro, icona grande centrata, titolo, una riga, pulsante
   (stesso aspetto di .acc .empty nell'area personale) */
.emptyx{display:grid;justify-items:center;gap:6px;padding:56px 16px;text-align:center;font-size:15px;line-height:1.5;color:var(--dim);}
.emptyx .eic{margin-bottom:12px;color:var(--dim-2);}
.emptyx b{font-size:17px;font-weight:700;color:var(--text);}
.emptyx p{max-width:46ch;}
.emptyx .btn-accent,.emptyx .btn-line{margin-top:12px;}
/* pagina Preferiti: sulla foto una X per togliere l'annuncio (al posto del cuore) */
.favs .utabs{margin-bottom:24px;}
a.card .unfav{position:absolute;top:8px;right:8px;width:34px;height:34px;display:grid;place-items:center;
  border-radius:var(--r-sm);background:rgba(8,11,20,.72);color:#fff;cursor:pointer;transition:background-color .15s;}
a.card .unfav:hover{background:#c9303f;}
.favs-note{margin-top:28px;font-size:14px;color:var(--dim);}
.favs-note a{color:var(--accent-bright);font-weight:600;}
.pag{display:flex;justify-content:center;gap:4px;margin-top:36px;flex-wrap:wrap;}
.pag a,.pag button{min-width:40px;height:40px;padding:0 6px;border-radius:var(--r-sm);display:grid;place-items:center;font-size:14px;font-weight:600;color:var(--dim);background:transparent;font-family:inherit;cursor:pointer;transition:.15s;}
.pag a:hover,.pag button:hover{background:var(--surface);color:var(--text);}
.pag a.on,.pag button.on{background:var(--text);color:var(--bg);}
.pag-gap{min-width:24px;height:40px;display:grid;place-items:center;color:var(--dim-2);font-weight:600;user-select:none;}

/* swap htmx: leggero fade del blocco risultati */
#results{transition:opacity .12s ease;}
#results.htmx-swapping{opacity:0;}
.mbar{display:none;}
.msheet{display:none;}
:root[data-theme="light"] .pbar{background:rgba(244,246,251,0.94);border-top-color:var(--border);}
.fside-close{display:none;}
.drawer-backdrop{display:none;}
/* testo SEO: una colonna leggibile */
.seo{border-top:1px solid var(--line);margin-top:48px;padding-top:32px;color:var(--dim);font-size:15px;line-height:1.65;}
.seo h2{color:var(--text);font-size:19px;font-weight:700;margin:0 0 10px;}
.seo p{max-width:68ch;margin:0 0 4px;}
.seo-st{color:var(--text);font-size:15.5px;font-weight:700;margin:20px 0 6px;}
.seo-faq{max-width:68ch;margin-top:0;}
.lfaq{border-bottom:1px solid var(--line);}
.lfaq-q{width:100%;min-height:48px;text-align:left;padding:12px 0;color:var(--text);font-size:15px;font-weight:600;display:flex;justify-content:space-between;align-items:center;gap:12px;}
.lfaq-c{flex:none;color:var(--dim-2);transition:transform .2s;}
.lfaq.on .lfaq-c{transform:rotate(180deg);}
.lfaq-a{padding:0 0 14px;}
.lfaq-a p{font-size:14.5px;color:var(--dim);margin:0;line-height:1.6;}

/* ============================================================
   BLOG · PAGINE INFORMATIVE · CENTRO AIUTO
   Stessa grammatica del resto: testata .lhead, filetti a 1px, niente
   etichette sovrapposte alle foto. Il testo lungo sta entro 68ch.
   ============================================================ */
@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth;}}
/* schede sottolineate (tipologie del blog): come l'indice del profilo */
.utabs{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;margin:0 0 32px;box-shadow:inset 0 -1px 0 var(--line);}
.utabs::-webkit-scrollbar{display:none;}
.utabs a{flex:none;white-space:nowrap;padding:12px;font-size:14.5px;font-weight:600;color:var(--dim);box-shadow:inset 0 -2px 0 transparent;transition:color .15s,box-shadow .15s;}
.utabs a:hover{color:var(--text);box-shadow:inset 0 -2px 0 var(--border-strong);}
.utabs a.on{color:var(--text);box-shadow:inset 0 -2px 0 var(--accent-bright);}
.utabs small{color:var(--dim-2);font-weight:500;font-variant-numeric:tabular-nums;}

/* card articolo: foto, riga tipologia · data, titolo, estratto */
.posts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:44px 24px;}
.post{display:grid;gap:14px;align-content:start;color:inherit;}
.post-cov{aspect-ratio:3/2;border-radius:var(--r-md);background:var(--tile) center/cover no-repeat;}
/* senza copertina: la tipologia scritta in grande, non un riquadro vuoto */
.post-cov-0{display:flex;align-items:flex-end;padding:18px;background:var(--surface-solid);box-shadow:inset 0 0 0 1px var(--line);}
.post-cov-0 span{font-size:24px;font-weight:800;letter-spacing:-.02em;color:var(--dim-2);}
.post-meta{display:flex;flex-wrap:wrap;gap:2px 0;font-size:13px;color:var(--dim-2);}
.post-meta>*+*::before{content:"·";margin:0 8px;color:var(--faint);}
.post-kind{color:var(--accent-bright);font-weight:600;}
.post h3{margin-top:6px;font-size:17px;line-height:1.3;font-weight:700;letter-spacing:-.01em;text-wrap:balance;transition:color .15s;}
.post p{margin-top:6px;font-size:14.5px;line-height:1.55;color:var(--dim);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.post:hover h3{color:var(--accent-bright);}
/* apertura del blog: l'ultimo articolo in grande a sinistra, i tre successivi in colonna a destra */
.bhero{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(0,1fr);gap:40px;padding-bottom:48px;box-shadow:0 1px 0 var(--line);}
.post-big{gap:18px;}
.post-big .post-cov{aspect-ratio:16/9;}
.post-big h3{margin-top:10px;font-size:clamp(1.5rem,1.1rem + 1.2vw,2.15rem);line-height:1.14;letter-spacing:-.02em;}
.post-big p{margin-top:12px;max-width:62ch;font-size:16px;line-height:1.6;color:var(--text-2);-webkit-line-clamp:3;}
/* Quattro righe della stessa altezza (1fr) che riempiono l'altezza dell'articolo grande.
   Ogni riga ha lo stesso schema: contenuto in alto, 16px, filetto, 16px. Così miniature
   e filetti cadono a intervalli identici; la prima miniatura parte allineata alla foto grande. */
.bhero-side{display:grid;grid-template-rows:repeat(4,1fr);row-gap:16px;}
/* riga compatta: miniatura a sinistra, tipologia · data, titolo ed estratto a destra */
.post-sm{grid-template-columns:128px minmax(0,1fr);gap:16px;align-items:start;align-content:start;padding-bottom:16px;box-shadow:inset 0 -1px 0 var(--line);}
.post-sm p{margin-top:4px;font-size:14px;}
.bhero-side>.post-sm:last-child{box-shadow:none;padding-bottom:0;}
.post-sm .post-cov{aspect-ratio:4/3;}
.post-sm .post-cov-0{padding:10px;}
.post-sm .post-cov-0 span{font-size:14px;}
.post-sm h3{margin-top:4px;font-size:16px;line-height:1.3;}
.bhero-more{margin:44px 0 22px;}
.posts-3{grid-template-columns:repeat(3,minmax(0,1fr));}
/* home «Dal blog»: quattro colonne, striscia scorrevole sotto gli 820px */
.blogrow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;}
.blogrow .post h3{font-size:16px;}
@media(max-width:1080px){.posts{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:1080px){.post-sm{grid-template-columns:104px minmax(0,1fr);gap:14px;}}
@media(max-width:900px){
  .bhero{grid-template-columns:minmax(0,1fr);gap:28px;}
  .bhero-side{grid-template-rows:none;}
  .bhero-side>.post-sm:first-child{padding-top:16px;box-shadow:inset 0 1px 0 var(--line),inset 0 -1px 0 var(--line);}
}
@media(max-width:820px){
  .blogrow{display:flex;overflow-x:auto;gap:14px;scroll-snap-type:x proximity;scrollbar-width:none;padding-bottom:4px;}
  .blogrow::-webkit-scrollbar{display:none;}
  .blogrow>.post{flex:0 0 72%;max-width:300px;scroll-snap-align:start;}
}
@media(max-width:560px){
  .posts{grid-template-columns:minmax(0,1fr);gap:36px;}
  .posts>.post .post-cov{margin-inline:-16px;border-radius:0;}
  .post-big .post-cov{aspect-ratio:4/3;margin-inline:-16px;border-radius:0;}
  .bhero{padding-bottom:36px;}
  .post-sm p{display:none;}
}

/* ---- articolo ---- */
.art-head{display:grid;gap:14px;max-width:860px;padding:22px 0 32px;}
.art-head h1{font-size:clamp(1.9rem,1.25rem + 2.1vw,3rem);line-height:1.08;font-weight:800;letter-spacing:-.025em;text-wrap:balance;}
/* voci separate dallo spazio, non da puntini: andando a capo un puntino finirebbe a inizio riga */
.art-meta{display:flex;flex-wrap:wrap;gap:4px 20px;font-size:14px;color:var(--dim);}
.art-meta a:hover{color:var(--text);}
.art-meta .art-kind{color:var(--accent-bright);font-weight:600;}
.art-cov{aspect-ratio:21/9;margin-bottom:48px;border-radius:var(--r-md);background:var(--tile) center/cover no-repeat;}
/* 700px a 17px sono ~75 caratteri; l'indice va sul bordo destro, allineato alla copertina */
.art-layout{display:grid;grid-template-columns:minmax(0,700px) 240px;grid-template-areas:"main toc";justify-content:space-between;column-gap:56px;align-items:start;}
.art-layout-1{grid-template-columns:minmax(0,700px);grid-template-areas:"main";}
.art-main{grid-area:main;min-width:0;}
.art-aside{grid-area:toc;position:sticky;top:calc(var(--hd-h) + 28px);}
.art-toc>summary{list-style:none;display:flex;justify-content:space-between;align-items:center;gap:12px;padding-bottom:12px;font-size:13px;font-weight:600;color:var(--dim-2);}
.art-toc>summary::-webkit-details-marker{display:none;}
.art-toc>summary svg{display:none;}
.art-toc ol{display:grid;box-shadow:inset 1px 0 0 var(--line);}
.art-toc a{display:block;padding:7px 0 7px 16px;font-size:14px;line-height:1.35;color:var(--dim);transition:color .15s;}
.art-toc a:hover{color:var(--text);}
.art-toc a.on{color:var(--text);font-weight:600;box-shadow:inset 1px 0 0 var(--text);}
.art-lead{font-size:19px;line-height:1.65;color:var(--text);text-wrap:pretty;}
.art-sec h2{margin:48px 0 14px;font-size:23px;line-height:1.25;font-weight:700;letter-spacing:-.015em;text-wrap:balance;scroll-margin-top:calc(var(--hd-h) + 24px);}
.art-sec>p{font-size:17px;line-height:1.75;color:var(--text-soft);text-wrap:pretty;}
.art-sec .seo-faq{max-width:none;box-shadow:inset 0 1px 0 var(--line);}
.art-related{margin-top:80px;}
.art-related .sec-h{padding-top:32px;margin-bottom:22px;box-shadow:inset 0 1px 0 var(--line);}
/* riquadro d'azione in coda (articolo, aiuto) */
.art-cta,.help-contact{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px 24px;margin-top:56px;padding:24px;
  border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-solid);}
.art-cta h2,.help-contact h2{font-size:17px;font-weight:700;}
.art-cta p,.help-contact p{margin-top:4px;font-size:14.5px;color:var(--dim);}
@media(max-width:1080px){
  .art-layout{grid-template-columns:minmax(0,1fr);grid-template-areas:"toc" "main";}
  .art-layout-1{grid-template-areas:"main";}
  .art-aside{position:static;margin-bottom:36px;}
  .art-toc{border:1px solid var(--line);border-radius:var(--r-md);padding:0 16px;}
  .art-toc>summary{padding:14px 0;cursor:pointer;font-size:14.5px;color:var(--text);}
  .art-toc>summary svg{display:block;color:var(--dim-2);transition:transform .2s;}
  .art-toc[open]>summary svg{transform:rotate(180deg);}
  .art-toc ol{padding-bottom:10px;box-shadow:none;}
  .art-toc a{padding-left:0;}
  .art-toc a.on{box-shadow:none;}
}
@media(max-width:560px){
  .art-cov{aspect-ratio:4/3;margin:0 -16px 32px;border-radius:0;}
  .art-lead{font-size:17.5px;}
  .art-sec h2{margin-top:40px;font-size:20px;}
  .art-sec>p{font-size:16px;}
  .art-related{margin-top:56px;}
}

/* ---- pagine con menu laterale: legali e articoli d'aiuto ---- */
.doc{display:grid;grid-template-columns:240px minmax(0,1fr);column-gap:72px;align-items:start;}
.doc-nav{position:sticky;top:calc(var(--hd-h) + 24px);display:grid;gap:24px;padding-top:26px;}
.doc-nav .fgrp a{font-size:14.5px;line-height:1.35;}
.doc-help{display:grid;gap:4px;padding:16px 10px 0;box-shadow:inset 0 1px 0 var(--line);font-size:13.5px;color:var(--dim-2);}
.doc-help a{font-weight:600;color:var(--accent-bright);}
.doc-help a:hover{color:var(--text);}
.doc-body{min-width:0;}
.doc-body .lhead,.doc-body .help-contact{max-width:68ch;}
.doc-body .help-contact{margin-top:48px;}
/* testo lungo impaginato (contenuti da CMS e da markdown) */
.prose{max-width:68ch;font-size:16px;line-height:1.7;color:var(--text-soft);}
.prose>*+*{margin-top:14px;}
.prose h2{margin-top:44px;font-size:21px;line-height:1.25;font-weight:700;letter-spacing:-.01em;color:var(--text);text-wrap:balance;}
.prose h3{margin-top:30px;font-size:17px;line-height:1.3;font-weight:700;color:var(--text);}
.prose>h2+*,.prose>h3+*{margin-top:10px;}
.prose>:first-child{margin-top:0;}
.prose b,.prose strong{font-weight:600;color:var(--text);}
.prose a{color:var(--accent-bright);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;}
.prose a:hover{color:var(--text);}
.prose ul{list-style:disc;padding-left:22px;}
.prose ol{list-style:decimal;padding-left:22px;}
.prose li+li{margin-top:6px;}
.prose li::marker{color:var(--dim-2);}
.prose code{padding:1px 5px;border-radius:var(--r-xs);background:var(--surface-2);font-size:.9em;}
@media(max-width:1080px){.doc{column-gap:48px;grid-template-columns:200px minmax(0,1fr);}}
@media(max-width:820px){
  /* su schermo stretto prima il testo, poi l'elenco delle altre pagine */
  .doc{grid-template-columns:minmax(0,1fr);}
  .doc-nav{position:static;order:2;margin-top:48px;padding-top:28px;box-shadow:inset 0 1px 0 var(--line);}
  .doc-nav .fgrp a{padding:10px;}
}

/* ---- Centro Aiuto ---- */
.help-head{max-width:720px;padding-bottom:40px;}
.help-head .sfield{max-width:560px;margin-top:14px;}
.help-cats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:48px 40px;padding-top:36px;box-shadow:inset 0 1px 0 var(--line);}
.help-cat h2{font-size:17px;font-weight:700;}
.help-cat p{margin-top:4px;font-size:14px;color:var(--dim-2);}
.help-cat ul{margin-top:12px;}
.help-cat a{display:block;padding:10px 0;font-size:15px;line-height:1.35;color:var(--text-2);box-shadow:inset 0 -1px 0 var(--line);transition:color .15s;}
.help-cat a:hover{color:var(--accent-bright);}
.help-res{max-width:760px;padding-top:32px;box-shadow:inset 0 1px 0 var(--line);}
.help-res h2{margin-bottom:6px;font-size:17px;font-weight:700;}
.linklist a{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:14px 0;box-shadow:inset 0 -1px 0 var(--line);}
.linklist b{display:block;font-size:15.5px;font-weight:600;transition:color .15s;}
.linklist small{display:block;margin-top:2px;font-size:14px;color:var(--dim);}
.linklist em{flex:none;font-style:normal;font-size:13px;color:var(--dim-2);}
.linklist a:hover b{color:var(--accent-bright);}
.help-none{color:var(--dim);}
.help-back{display:inline-block;margin-top:20px;font-size:14px;font-weight:600;color:var(--accent-bright);}
@media(max-width:1080px){.help-cats{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:640px){.help-cats{grid-template-columns:minmax(0,1fr);gap:36px;}.linklist em{display:none;}}

/* ============================================================
   SCHEDA PROFILO
   ============================================================ */
/* Tre aree: foto e nome (alto), pannello contatti (destra, fisso), sezioni. */
.pcrumb{padding-top:20px;padding-bottom:16px;}
.pwrap{display:grid;grid-template-columns:minmax(0,1fr) 340px;grid-template-areas:"top side" "body side";
  column-gap:40px;align-items:start;padding-bottom:8px;}
.ptop{grid-area:top;display:grid;gap:18px;min-width:0;}
.pside{grid-area:side;position:sticky;top:calc(var(--hd-h) + 20px);display:grid;gap:12px;align-content:start;min-width:0;}
.pbody{grid-area:body;min-width:0;}

/* --- galleria: foto grande e miniature in colonna a destra --- */
.gallery{display:grid;grid-template-columns:minmax(0,1fr) 92px;gap:8px;min-width:0;}
/* altezza fissa e foto intera: le foto verticali non vengono tagliate */
.gcover{position:relative;height:clamp(420px,calc(100vh - var(--hd-h) - 150px),720px);border-radius:var(--r-md);overflow:hidden;background-color:#05070d;}
.thumbs{height:clamp(420px,calc(100vh - var(--hd-h) - 150px),720px);}
.gcover .badges{position:absolute;top:10px;left:10px;display:flex;gap:6px;}
.gcover .gacts{position:absolute;top:8px;right:8px;display:flex;gap:6px;}
.gact{width:40px;height:40px;border-radius:var(--r-sm);background:rgba(8,11,20,.72);display:grid;place-items:center;color:#fff;cursor:pointer;transition:background-color .15s;}
.gact:hover{background:rgba(8,11,20,.9);}
.gcount{position:absolute;right:10px;bottom:10px;padding:4px 8px;border-radius:var(--r-sm);background:rgba(8,11,20,.76);color:#e6ecf8;font-size:12.5px;font-weight:600;}
.thumbs{display:grid;grid-auto-rows:min-content;gap:8px;align-content:start;max-height:100%;overflow-y:auto;scrollbar-width:none;}
.thumbs::-webkit-scrollbar{display:none;}
.thumb{position:relative;aspect-ratio:1;border-radius:var(--r-sm);overflow:hidden;cursor:pointer;background-size:cover;background-position:center;
  outline:2px solid transparent;outline-offset:-2px;transition:outline-color .15s,opacity .15s;opacity:.72;}
.thumb:hover{opacity:1;}
.thumb.on{opacity:1;outline-color:var(--text);}
.thumb .more{position:absolute;inset:0;background:rgba(8,7,11,.55);display:grid;place-items:center;font-size:13px;font-weight:700;color:#fff;}
.thumb .playi{position:absolute;inset:0;display:grid;place-items:center;color:#fff;}

/* --- nome --- */
.pname{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px;}
.pname h1{display:flex;align-items:center;gap:10px;font-size:clamp(1.7rem,1.3rem + 1vw,2.1rem);line-height:1.1;font-weight:800;letter-spacing:-.02em;}
.pmeta{margin-top:6px;color:var(--dim);font-size:15px;}
.pon{color:var(--online-bright);font-weight:700;}
.prate{color:var(--text);font-weight:600;}
.prate:hover .pmuted{color:var(--text);}
.pmuted{color:var(--dim-2);font-weight:400;}
.pflags{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;}
.pflag{display:inline-flex;align-items:center;padding:4px 8px;border-radius:var(--r-sm);background:var(--surface-2);color:var(--text-soft);font-size:12.5px;font-weight:600;}
.pflag.clbl-tier{background:var(--tier,#e8b923);color:#141005;}
.stars{display:inline-flex;gap:1px;color:var(--gold-bright);font-size:13px;}

/* --- pannello contatti --- */
.ppanel{display:grid;gap:10px;padding:16px;border-radius:var(--r-md);background:var(--surface-solid);border:1px solid var(--line);}
.ppanel.pcta{border-color:rgba(var(--accent-rgb),.42);}
.ppanel h2{font-size:12.5px;font-weight:600;color:var(--dim-2);}
.ppanel form{display:contents;}
.btn-lg{width:100%;min-height:46px;font-size:15px;}
.pchan{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;}
.pfav.on{color:#f4685c;border-color:rgba(244,104,92,.5);}
.pnote{font-size:13.5px;line-height:1.5;color:var(--dim);}
.pnote b{color:var(--text);font-weight:600;}
.prates{display:grid;}
.prates>div{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--line);font-size:14.5px;}
.prates>div:last-child{border-bottom:0;padding-bottom:0;}
.prates dt{color:var(--dim);}
.prates dd{margin:0;font-weight:700;}
.pclaim{color:inherit;gap:4px;}
.pclaim b{font-size:15px;}
.pclaim span{font-size:13.5px;color:var(--dim);}
.pclaim:hover{border-color:var(--border-strong);}
.pside-acts{display:flex;flex-wrap:wrap;gap:4px 20px;padding:2px 4px;}
.pside-acts button,.pside-acts a{display:inline-flex;align-items:center;gap:7px;font-size:13.5px;color:var(--dim);padding:6px 0;}
.pside-acts button:hover,.pside-acts a:hover{color:var(--text);}
.pside-acts .pact-claim{display:none;}
.pside-acts .sharepop{left:0;right:auto;top:calc(100% + 6px);}
/* stati annuncio: pausa / anteprima privata */
.statebar{display:flex;align-items:center;gap:13px;padding:14px 16px;border-radius:var(--r-md);margin-bottom:6px;border:1px solid;}
.statebar b{display:block;font-size:14.5px;}
.statebar span{font-size:13.5px;opacity:.9;}
.statebar.paused{background:rgba(124,138,255,0.1);border-color:rgba(124,138,255,0.32);color:#b6bcff;}
.statebar.preview{background:rgba(224,169,58,0.1);border-color:rgba(224,169,58,0.32);color:#e6b85a;}
.statebar .sbtn{margin-left:auto;flex-shrink:0;min-height:36px;display:inline-flex;align-items:center;padding:0 14px;border-radius:var(--r-sm);font-weight:700;font-size:14px;background:var(--surface-2);color:var(--text);}
.btn-tel,.btn-wa{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:15px;border-radius:var(--r-sm);font-weight:700;font-size:14.5px;line-height:1;cursor:pointer;transition:.15s;}
.btn-tel{color:#fff;background:var(--accent);}
.btn-wa{color:#25d366;border:1px solid rgba(37,211,102,0.5);}
.btn-wa:hover{background:rgba(37,211,102,0.12);}

/* --- sezioni --- */
.ptabs{position:sticky;top:var(--hd-h);z-index:20;display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;margin:32px 0 8px;
  background:var(--bg);border-bottom:1px solid var(--line);}
.ptabs::-webkit-scrollbar{display:none;}
.ptabs a{flex:none;padding:13px 12px;font-size:14.5px;font-weight:600;color:var(--dim);box-shadow:inset 0 -2px 0 transparent;transition:color .15s,box-shadow .15s;}
.ptabs a:hover{color:var(--text);box-shadow:inset 0 -2px 0 var(--border-strong);}
.ptabs small{color:var(--dim-2);font-weight:500;}
.psec{padding-top:28px;scroll-margin-top:calc(var(--hd-h) + 56px);}
.psec>h2{display:flex;align-items:center;gap:10px;font-size:19px;font-weight:700;margin:0 0 14px;}
.psub-h{font-size:14.5px;font-weight:700;margin:22px 0 10px;}
.pdesc{font-size:16px;line-height:1.65;color:var(--text-soft);max-width:66ch;}
.pheadline{font-size:17px;line-height:1.5;color:var(--dim);max-width:60ch;text-wrap:pretty;}
.disp{margin-top:10px;font-size:14px;}
/* caratteristiche: tabella a tre colonne con filetti */
/* filetti disegnati dalle celle (ombra a destra e sotto): con poche voci non
   restano riquadri vuoti colorati, solo spazio */
.attrs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:0;border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden;}
.attrs>div{padding:11px 14px;display:grid;gap:2px;box-shadow:1px 0 0 var(--line),0 1px 0 var(--line);}
.attrs dt{color:var(--dim-2);font-size:13px;}
.attrs dd{margin:0;font-weight:600;font-size:14.5px;}
/* descrizione a sinistra, caratteristiche come scheda dati a destra */
.pcols{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,300px);column-gap:48px;align-items:start;}
.pcols-1{grid-template-columns:minmax(0,1fr);}
.pcols>#caratteristiche .attrs{grid-template-columns:minmax(0,1fr);}
.pcols>#caratteristiche .attrs>div{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:10px 14px;box-shadow:0 1px 0 var(--line);}
.pcols>#caratteristiche .attrs dd{text-align:right;}
.pcols-1>#caratteristiche .attrs{grid-template-columns:repeat(3,minmax(0,1fr));}
.pcols-1>#caratteristiche .attrs>div{display:grid;justify-content:start;box-shadow:1px 0 0 var(--line),0 1px 0 var(--line);}
.pcols-1>#caratteristiche .attrs dd{text-align:left;}
.tags{display:flex;gap:6px;flex-wrap:wrap;}
.tag{display:inline-block;border:1px solid var(--border);border-radius:var(--r-sm);padding:6px 10px;font-size:13.5px;font-weight:500;color:var(--text-soft);}
.tag-link:hover{border-color:var(--border-strong);color:var(--text);}

/* --- mappa --- */
.pmap{position:relative;aspect-ratio:16/7;border-radius:var(--r-md);overflow:hidden;border:1px solid var(--line);
  background:
    linear-gradient(0deg,rgba(var(--accent-rgb),0.05),transparent),
    repeating-linear-gradient(0deg,#11131a 0 23px,#0d0f15 23px 24px),
    repeating-linear-gradient(90deg,#11131a 0 23px,#0d0f15 23px 24px),
    #0d0f15;}
.pmap .area{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:130px;height:130px;border-radius:50%;background:radial-gradient(circle,rgba(var(--accent-rgb),0.28),rgba(var(--accent-rgb),0.05) 70%);border:1px solid var(--accent-glow);}
.pmap .pin{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);color:var(--accent-bright);}
.pmap .mlabel{position:absolute;left:12px;bottom:12px;font-size:11.5px;color:var(--dim);background:rgba(10,9,14,0.6);backdrop-filter:blur(8px);border:1px solid var(--border);border-radius:var(--r-sm);padding:5px 10px;}
/* mappa Leaflet reale sul profilo */
.pmap-wrap{position:relative;}
#pmap.pmap{width:100%;height:260px;margin-top:12px;z-index:0;background:#0d0f15;}   /* altezza fissa: niente overflow dalla colonna */
.pmap-wrap .mlabel{position:absolute;left:12px;bottom:12px;z-index:600;pointer-events:none;font-size:11.5px;color:var(--dim);background:rgba(10,9,14,0.72);backdrop-filter:blur(8px);border:1px solid var(--border);border-radius:var(--r-sm);padding:5px 10px;}
.leaflet-container{font:inherit;background:#0d0f15;}
/* Tile OpenStreetMap (chiari di natura): in tema scuro li rendiamo scuri via
   filtro CSS — invert+hue-rotate mantiene i colori leggibili (verde=verde). Solo
   i tile, non i marker/controlli (che stanno in pane separati). */
/* Le tessere arrivano già nella variante del tema (partials/_map_tiles.html):
   niente filtri di inversione. Se non arrivano, la mappa diventa un avviso. */
.map-failed{position:relative;}
.map-failed .leaflet-tile-pane{display:none;}
.map-failed::after{content:attr(data-fail);position:absolute;inset:0;z-index:700;display:grid;place-items:center;padding:20px;text-align:center;
  font-size:14px;color:var(--dim);background:var(--surface-solid);pointer-events:none;}
/* Mappa in tema chiaro: fallback (griglia), container Leaflet ed etichetta non
   devono restare scuri. Lo script inline in base.html imposta sempre data-theme. */
:root[data-theme="light"] .pmap{
  background:
    linear-gradient(0deg,rgba(var(--accent-rgb),0.06),transparent),
    repeating-linear-gradient(0deg,#e5ecf7 0 23px,#eef3fb 23px 24px),
    repeating-linear-gradient(90deg,#e5ecf7 0 23px,#eef3fb 23px 24px),
    #eef3fb;}
:root[data-theme="light"] #pmap.pmap{background:#e9eef7;}
:root[data-theme="light"] .leaflet-container{background:#e9eef7;}
:root[data-theme="light"] .pmap .mlabel,
:root[data-theme="light"] .pmap-wrap .mlabel{background:rgba(255,255,255,.85);color:var(--dim-2,#3a4a63);border-color:var(--border);}
/* controlli Leaflet in tema scuro (no bottoni bianchi).
   Specificità .pmap-wrap + !important per scavalcare il CSS di Leaflet (caricato dopo). */
.leaflet-container .leaflet-bar{border:1px solid var(--border)!important;box-shadow:0 6px 18px -8px rgba(0,0,0,.6);}
.leaflet-container .leaflet-bar a{background-color:var(--surface-solid)!important;color:var(--text)!important;border-bottom:1px solid var(--border)!important;}
.leaflet-container .leaflet-bar a:hover{background-color:var(--surface-2)!important;}
.leaflet-container .leaflet-bar a.leaflet-disabled{background-color:var(--surface)!important;color:var(--faint)!important;}
.leaflet-container .leaflet-control-attribution{background:rgba(10,9,14,0.6)!important;color:var(--faint)!important;border-radius:var(--r-sm) 0 0 0;}
.leaflet-container .leaflet-control-attribution a{color:var(--dim)!important;}
/* popup Leaflet in tema scuro (testo leggibile, bordo come gli altri box) */
.leaflet-container .leaflet-popup-content-wrapper{background:var(--surface-solid)!important;color:var(--text)!important;border:1px solid var(--border)!important;border-radius:var(--r-sm)!important;box-shadow:0 14px 34px -12px rgba(0,0,0,.75)!important;}
.leaflet-container .leaflet-popup-content{color:var(--text)!important;margin:9px 13px!important;font-size:13px!important;font-weight:600;}
.leaflet-container .leaflet-popup-content b{color:var(--text)!important;}
.leaflet-container .leaflet-popup-tip{background:var(--surface-solid)!important;border:1px solid var(--border)!important;box-shadow:none!important;}
.leaflet-container .leaflet-popup-close-button{color:var(--faint)!important;}
.leaflet-container .leaflet-popup-close-button:hover{color:var(--text)!important;}

/* --- recensioni --- */
.rev-top{display:flex;align-items:center;gap:14px;margin-bottom:6px;}
.rev-top .big{font-size:30px;font-weight:800;letter-spacing:-1px;}
.rev{display:flex;gap:13px;padding:16px 0;border-top:1px solid var(--border);}
.rev .rav{width:38px;height:38px;border-radius:50%;background:var(--surface-2);border:1px solid var(--border);display:grid;place-items:center;color:var(--faint);flex-shrink:0;}
.rev .body{flex:1;min-width:0;}
.rev .who{display:flex;align-items:center;gap:9px;}
.rev .who b{font-size:13.5px;}
.rev .when{margin-left:auto;font-size:11.5px;color:var(--faint);}
.rev p{font-size:13.5px;line-height:1.6;color:var(--dim);margin:7px 0;}
.rev .react{font-size:12px;color:var(--faint);display:inline-flex;gap:16px;}
.rev .react span{cursor:pointer;}
.rev .react span:hover{color:var(--text);}

/* --- sticky contatti mobile (nascosto su desktop) --- */
.pbar{display:none;}
.pbar-space{display:none;}

/* ============================================================
   INSERISCI ANNUNCIO (wizard form)
   ============================================================ */
.pubhead{padding-top:24px;padding-bottom:18px;}
.pubhead h1{font-size:28px;font-weight:800;letter-spacing:-0.8px;margin:0 0 20px;}

/* stepper — celle a larghezza uguale, connettore via ::after (ultimo step non a filo) */
.stepper{display:flex;align-items:center;}
.stepper .st{flex:1;display:flex;align-items:center;gap:9px;cursor:pointer;min-width:0;}
.stepper .st:not(:last-child)::after{content:"";flex:1;height:1px;background:var(--border);margin:0 14px;min-width:14px;}
.stepper .st.done::after{background:var(--accent-glow);}
.stepper .sb{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:700;background:var(--surface-2);color:var(--faint);border:1px solid var(--border);flex-shrink:0;transition:.15s;}
.stepper .st.done .sb{background:var(--accent-bright);color:var(--accent-ink);border-color:transparent;}
.stepper .st.cur .sb{background:var(--accent);color:var(--accent-ink);border-color:transparent;box-shadow:0 0 0 3px var(--accent-glow);}
.stepper .sl{font-size:13.5px;font-weight:600;color:var(--faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.stepper .st.cur .sl,.stepper .st.done .sl{color:var(--text);}
/* progress bar mobile */
.mstep{display:none;}

/* layout */
.publayout{display:grid;grid-template-columns:1fr 320px;gap:34px;align-items:start;padding:26px 0 20px;}
.formcol{min-width:0;}
.stepblk>h2{font-size:19px;font-weight:800;margin:0 0 4px;letter-spacing:-0.3px;}
.stepblk>.hint{font-size:13px;color:var(--faint);margin:0 0 20px;}

/* campi */
.frow{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px;}
.frow.r4{grid-template-columns:repeat(4,1fr);}
.field{display:flex;flex-direction:column;gap:7px;}
.field.full{grid-column:1/-1;}
.field>label:not(.consent){font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.6px;color:var(--faint);}
.field input,.field select,.field textarea{width:100%;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-sm);padding:13px 15px;color:var(--text);font-family:inherit;font-size:14.5px;outline:none;transition:border-color .15s,box-shadow .15s;}
.field input::placeholder,.field textarea::placeholder{color:var(--faint);}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent-bright);box-shadow:0 0 0 3px rgba(var(--accent-rgb),.13);}
.field textarea{resize:vertical;min-height:104px;line-height:1.6;}
.field select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%237d7c8b' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:38px;}
.field .cc{font-size:11px;color:var(--faint);text-align:right;}

/* upload */
.uploads{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;}
.uptile{position:relative;aspect-ratio:3/4;border-radius:var(--r-sm);overflow:hidden;border:1px solid var(--border);background-size:cover;}
.uptile .cov{position:absolute;top:7px;left:7px;background:var(--accent);color:var(--accent-ink);font-size:9px;font-weight:800;padding:3px 8px;border-radius:var(--r-xs);letter-spacing:.4px;}
.uptile .rm{position:absolute;top:7px;right:7px;width:24px;height:24px;border-radius:50%;background:rgba(10,9,14,.6);backdrop-filter:blur(8px);display:grid;place-items:center;color:#fff;cursor:pointer;border:1px solid var(--border);}
.uptile[draggable]{cursor:grab;}
.uptile.drag{opacity:.45;outline:2px dashed var(--accent-bright);}
/* toolbar in basso sulle foto del wizard (hot/riservata/elimina) */
.uptools{position:absolute;left:0;right:0;bottom:0;display:flex;align-items:center;gap:5px;padding:7px;background:linear-gradient(0deg,rgba(0,0,0,.72),transparent);}
.utbtn{width:28px;height:28px;border-radius:var(--r-sm);border:none;background:rgba(0,0,0,.5);display:grid;place-items:center;cursor:pointer;transition:.14s;}
.utbtn:hover{background:rgba(0,0,0,.8);}
.utbtn.rm:hover{background:rgba(255,77,109,.78);}
.upadd{aspect-ratio:3/4;border:1.5px dashed var(--accent-glow);border-radius:var(--r-sm);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--accent-bright);cursor:pointer;background:rgba(var(--accent-rgb),.05);transition:.15s;text-align:center;padding:8px;}
.upadd:hover{background:rgba(var(--accent-rgb),.1);}
.upadd small{font-size:11px;font-weight:600;}
.upnote{font-size:12px;color:var(--faint);margin-top:14px;display:flex;align-items:center;gap:7px;}

/* sidebar */
.pubside{position:sticky;top:96px;display:flex;flex-direction:column;gap:14px;}
.pubside .slbl{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.8px;color:var(--faint);margin-bottom:-2px;}
.panel{border:1px solid var(--border);border-radius:var(--r-md);padding:15px;background:var(--surface);}
.panel h4{font-size:13px;font-weight:700;margin:0 0 12px;display:flex;align-items:center;gap:7px;}

/* piano */
.plan{display:flex;align-items:center;gap:11px;padding:12px 13px;border-radius:var(--r-sm);border:1px solid var(--border);cursor:pointer;margin-bottom:9px;transition:.15s;}
.plan:last-child{margin-bottom:0;}
.plan.on{border-color:var(--accent-glow);background:rgba(var(--accent-rgb),.08);}
.plan .radio{width:18px;height:18px;border-radius:50%;border:1.5px solid var(--border-strong);display:grid;place-items:center;flex-shrink:0;}
.plan.on .radio{border-color:var(--accent);}
.plan.on .radio::after{content:"";width:9px;height:9px;border-radius:50%;background:var(--accent);}
.plan .pn{font-size:13.5px;font-weight:600;}
.plan.on .pn{color:var(--accent-bright);}
.plan .pp{margin-left:auto;font-size:12.5px;color:var(--dim);font-weight:600;}

/* consensi */
.consent{display:flex;gap:10px;font-size:12.5px;color:var(--dim);margin-bottom:11px;line-height:1.45;cursor:pointer;}
.consent:last-child{margin-bottom:0;}
.consent .cbox{width:18px;height:18px;border-radius:var(--r-xs);border:1.5px solid var(--border-strong);flex-shrink:0;display:grid;place-items:center;margin-top:1px;transition:.15s;}
.consent.on{color:var(--text);}
.consent.on .cbox{background:var(--accent);border-color:var(--accent);}

/* azioni */
.pubnav{display:flex;align-items:center;gap:11px;margin-top:24px;}
.btn-ghost2{display:inline-flex;align-items:center;gap:8px;padding:13px 20px;border:1px solid var(--border);border-radius:var(--r-sm);font-weight:700;font-size:14.5px;color:var(--text);background:var(--surface);cursor:pointer;transition:.15s;}
.btn-ghost2:hover{border-color:var(--border-strong);}
.pubnav .spacer{flex:1;}
.btn-accent[disabled]{opacity:.42;cursor:not-allowed;transform:none !important;box-shadow:none;}
.pubnote{font-size:11.5px;color:var(--faint);text-align:center;margin-top:12px;}

/* ============================================================
   FOOTER
   ============================================================ */
footer.ft{border-top:1px solid var(--line);margin-top:64px;}
.foot-cols{display:grid;grid-template-columns:1.4fr repeat(5,minmax(0,1fr));gap:24px;padding:40px 0 28px;}
.foot-brand{max-width:320px;}
.foot-brand .brand{margin-bottom:12px;}
.foot-brand p{font-size:14px;color:var(--dim);line-height:1.55;}
.foot-tg{display:inline-flex;align-items:center;gap:7px;margin-top:14px;font-size:14px;font-weight:600;color:var(--accent-bright);}
.foot-tg:hover{color:var(--text);}
.foot-col{display:grid;gap:2px;align-content:start;}
.foot-col .foot-h{font-size:12.5px;font-weight:600;color:var(--text);margin:0 0 8px;}
.foot-col a{font-size:14px;color:var(--dim);padding:4px 0;transition:color .15s;}
.foot-col a:hover{color:var(--text);}
.foot-bottom{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 24px;border-top:1px solid var(--line);padding:18px 0 22px;font-size:13px;color:var(--dim-2);}

/* ============================================================
   RESPONSIVE
   ============================================================ */

/* ---- TABLET / ≤1080 (iPad ecc.) ---------------------------- */
@media(max-width:1080px){
  .wrap{padding:0 20px;}
  /* testata: il menu passa nel drawer, restano marchio e strumenti */
  .hd-menu{display:none;}
  .nav-burger{display:inline-flex;}
  .hd-in{gap:8px;}
  .hd-in .brand{margin-right:auto;min-width:0;}
  .hero{grid-template-columns:minmax(0,1fr);gap:22px;padding-top:28px;}
  .hero h1{max-width:20ch;}
  /* listing: layout a colonna unica + barra filtri compatta */
  .layout{grid-template-columns:1fr;gap:0;}
  /* Da qui in giù comanda la .mbar: la toolbar desktop va nascosta ALLO STESSO
     breakpoint, altrimenti su tablet (560-1080px) si vedono entrambe. */
  .lhead-tools{display:none;}
  /* Le pill scorrono in orizzontale (niente wrap né taglio): larghezza naturale,
     scrollbar nascosta. Un piccolo padding laterale così l'ultima pill non tocca il bordo. */
  /* Toolbar full-width edge-to-edge (fuori dal .wrap), scorrevole. top:67 (=altezza
     navbar mobile −1) così si incastra sotto la nav senza il filo di 1px che lasciava
     intravedere il contenuto. margin-top:-1 rinforza l'incastro. */
  .mbar{display:flex;gap:8px;position:sticky;top:var(--hd-h);z-index:40;padding:10px 16px;background:var(--bg);border-bottom:1px solid var(--line);}
  .mbar button{flex:1;min-width:0;}
  .mbar button,.mbar a{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:40px;padding:0 12px;border:1px solid var(--border-strong);
    border-radius:var(--r-sm);font-size:14px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .mbar a{flex:none;width:40px;padding:0;color:var(--dim);}
  .lbar{display:none;}
  .lhead{padding-bottom:16px;}
  .layout>main{padding-top:18px;}
  /* Ordina mobile: bottom-sheet a tutto schermo (fuori dalla .mbar, che con
     backdrop-filter intrappolerebbe il position:fixed facendolo tagliare in alto). */
  .msheet{display:flex;position:fixed;inset:0;z-index:210;align-items:flex-end;}
  .msheet-back{position:absolute;inset:0;background:rgba(5,5,8,.55);backdrop-filter:blur(2px);}
  /* inset:auto azzera il top:calc(100%+8px) ereditato da .sortmenu, che altrimenti
     spinge il pannello fuori dal viewport in basso. */
  .msheet-panel{position:relative;inset:auto;width:100%;margin:0;border-radius:var(--r-md) var(--r-md) 0 0;max-height:70vh;overflow:auto;
    padding:8px 8px calc(10px + env(safe-area-inset-bottom));box-shadow:0 -18px 50px -12px rgba(0,0,0,.6);}
  .msheet-panel div{padding:14px 16px;font-size:15px;}

  /* SIDEBAR FILTRI → drawer che entra da destra */
  /* Da CHIUSO resta dentro la viewport (transform:none, a destra) ma invisibile:
     così NON crea overflow orizzontale — Firefox estende l'area scrollabile per gli
     elementi fixed fuori schermo, e overflow-x:hidden sul body non li clippa. Niente
     box-shadow da chiuso (proiettava un'ombra scura sul bordo destro in tema light).
     Apertura/chiusura in dissolvenza (uno slide da destra rientrerebbe nell'overflow). */
  .fside{position:fixed;top:0;right:0;height:100dvh;max-height:none;width:min(88vw,360px);align-content:start;gap:20px;
    border:none;border-left:1px solid var(--border);border-radius:0;background:var(--surface-solid);scrollbar-width:thin;
    visibility:hidden;opacity:0;pointer-events:none;
    transition:opacity .22s ease,visibility .22s;
    z-index:200;overflow-y:auto;padding:0 20px 24px;}
  .fside.open{visibility:visible;opacity:1;pointer-events:auto;box-shadow:-24px 0 60px -24px rgba(0,0,0,.75);}
  .fside .fhead{display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;background:var(--surface-solid);padding:14px 0 12px;z-index:1;border-bottom:1px solid var(--line);}
  .fside .fhead b{font-size:17px;}
  .fhead-r{display:flex;align-items:center;gap:8px;}
  .fhead-r a{font-size:14px;font-weight:600;color:var(--accent-bright);}
  .fside-close{display:grid;place-items:center;width:40px;height:40px;border-radius:var(--r-sm);color:var(--dim);}
  .fapply{display:inline-flex;position:sticky;bottom:12px;width:100%;min-height:46px;}
  .drawer-backdrop{display:block;position:fixed;inset:0;background:rgba(5,5,8,.62);backdrop-filter:blur(2px);
    opacity:0;visibility:hidden;transition:opacity .25s,visibility .25s;z-index:190;}
  .drawer-backdrop.open{opacity:1;visibility:visible;}

  /* PROFILO: una colonna, nell'ordine foto e nome, pannello, sezioni */
  .pwrap{grid-template-columns:minmax(0,1fr);grid-template-areas:"top" "side" "body";row-gap:20px;}
  .pside{position:static;}
  .ptabs{margin-top:12px;}
  .pcols{grid-template-columns:minmax(0,1fr);}

  /* INSERISCI ANNUNCIO: colonna unica, anteprima sotto */
  .publayout{grid-template-columns:1fr;gap:24px;}
  .pubside{position:static;max-width:460px;}
}

/* ---- TABLET PICCOLO / ≤820 --------------------------------- */
@media(max-width:820px){
  .foot-cols{grid-template-columns:repeat(2,minmax(0,1fr));}
  .foot-brand{grid-column:1 / -1;}
  .wrap{padding:0 16px;}
  .steps{grid-template-columns:minmax(0,1fr);}
  .blogrow{grid-template-columns:none;}
  .stepper .sl{display:none;}        /* stepper solo numeri */
  .stepper .st::after{margin:0 8px;}
}

/* ---- MOBILE / ≤560 ----------------------------------------- */
@media(max-width:560px){
  /* Card senza riquadro, foto da bordo a bordo con 2px di stacco: la griglia
     esce dal margine della pagina e il testo rientra di 12px sotto la foto. */
  .grid,.grid.g6,.spot-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:2px;margin-inline:-16px;}
  .grid a.card{gap:0;}
  .grid a.card .ph{border-radius:0;}
  .grid .cinfo{padding:8px 12px 16px;}
  .cinfo .nm{font-size:14.5px;}
  .cinfo .sub{font-size:12.5px;}
  .cities{grid-template-columns:repeat(2,1fr);gap:10px;}
  /* TESTATA telefono: marchio, ricerca, CTA. Lingua, tema e città stanno nel
     drawer; «Accedi» è la scheda Account della barra in basso. */
  :root{--hd-h:56px;}
  .logo-text{font-size:19px;}
  .brand img.logo{height:30px;}
  .hd-lang,.citysel,.hd-tools .themetoggle,.hd-login{display:none;}
  .hd-tools .btn-accent{min-height:36px;padding:0 12px;}

  /* barra a schede in basso */
  .tabbar{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));position:fixed;left:0;right:0;bottom:0;z-index:110;
    height:calc(60px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);
    background:var(--bg);border-top:1px solid var(--line);}
  .tabbar a{display:grid;place-items:center;align-content:center;gap:3px;font-size:11.5px;font-weight:600;color:var(--dim-2);}
  .tabbar a.on{color:var(--text);}
  body{padding-bottom:calc(60px + env(safe-area-inset-bottom));}
  /* il profilo ha già la sua barra contatti: lì la barra a schede si toglie */
  body:has(.pbar) .tabbar{display:none;}
  body:has(.pbar){padding-bottom:0;}
  .pwabanner{bottom:calc(72px + env(safe-area-inset-bottom));}

  /* STORIES: via il container (box), avatar più grandi, scroll orizzontale */
  .storiesband{margin-top:28px;}
  .storiesband .sb-head{margin-bottom:12px;}
  .stories{gap:15px;}
  .story .ring{width:72px;height:72px;}
  .story small{font-size:12px;}

  /* SEZIONI */
  .sec{margin-top:36px;gap:12px;}
  .sechead{margin:36px 0 12px;}
  .sec-h h2,.sechead h2,.storiesband .lbl{font-size:18px;}
  .hero{padding-top:20px;}
  .hero-tx p{font-size:15px;}
  /* città e categorie: una riga che scorre, che esce dal margine */
  .hero-cities{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin-inline:-16px;padding-inline:16px;}
  .hero-cities::-webkit-scrollbar{display:none;}
  .hero-cities .chip{flex:none;}
  .cattiles{display:flex;overflow-x:auto;scrollbar-width:none;margin-inline:-16px;padding-inline:16px;gap:8px;}
  .cattiles::-webkit-scrollbar{display:none;}
  .cattile{flex:0 0 104px;aspect-ratio:3/4;}

  /* LISTING */
  .lhead{padding-top:16px;padding-bottom:14px;gap:6px;}
  .lhead .count{font-size:14px;}
  .achips{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin:14px 0;}
  .achips::-webkit-scrollbar{display:none;}
  .achip,.achip-clear{flex-shrink:0;}
  .pag{gap:6px;margin-top:26px;flex-wrap:wrap;}
  .seo{margin-top:32px;padding-top:24px;font-size:14.5px;}
  .seo h2{font-size:17px;}

  /* PROFILO telefono: foto da bordo a bordo, miniature in riga, contatti nella
     barra fissa in basso (il pannello tiene tariffe e preferiti) */
  .gallery{display:block;margin-inline:-16px;max-width:none;}
  .gcover{border-radius:0;height:auto;aspect-ratio:4/5;}
  .gallery .thumbs{height:auto;}
  .pcta>.btn-accent,.pcta>a.btn-accent,.pcta .pchan{display:none;}
  /* contatti nella barra in basso e cuore sulla foto: il pannello sarebbe un doppione */
  .pcta.has-bar{display:none;}
  /* senza barra resta solo «Scrivi a…»: niente cuore doppio, niente riquadro attorno */
  .pcta .pfav,.pcta>.pnote:last-child{display:none;}
  .pcta{padding:0;border:0;background:none;}
  /* «Sei tu?» diventa una voce della riga di azioni invece di un riquadro */
  .pclaim{display:none;}
  .pside-acts .pact-claim{display:inline-flex;}
  .pside-acts{gap:4px 22px;padding:0;}
  .attrs{grid-template-columns:repeat(2,minmax(0,1fr));}
  .pcrumb{padding-top:14px;padding-bottom:12px;}
  /* Miniature: stessa larghezza esatta della foto grande (padding 0, come .gcover)
     e scorrimento orizzontale invece di accumularsi su più righe.
     Il padding verticale lascia respirare l'anello della miniatura attiva, che
     overflow-x:auto ritaglierebbe: il margin negativo lo riassorbe. */
  .thumbs{display:flex;gap:6px;padding:3px 16px;margin-top:6px;
    overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;
    scroll-snap-type:x proximity;scrollbar-width:none;}
  .thumbs::-webkit-scrollbar{display:none;}
  .thumbs .thumb{flex:0 0 64px;width:64px;scroll-snap-align:start;}
  /* Barra contatti fissa: e' l'azione principale della pagina, quindi deve
     essere leggera, non urlata. Via il gradiente e l'alone del bottone
     telefono (qui il rilievo lo da' gia' la barra), pesi e corpo allineati
     alla scala del resto del sito. */
  .pbar{display:flex;align-items:center;position:fixed;left:0;right:0;bottom:0;z-index:120;gap:8px;
    padding:9px 14px max(9px,env(safe-area-inset-bottom));
    background:var(--bg);border-top:1px solid var(--line);}
  .pbar .btn-tel,.pbar .btn-wa,.pbar .btn-tg{height:46px;padding:0 16px;border-radius:var(--r-sm);
    font-size:13.5px;line-height:1;font-weight:700;letter-spacing:-.01em;box-shadow:none;gap:8px;}
  .pbar .btn-tel{flex:1;min-width:0;background:var(--accent);color:#fff;}
  .pbar .btn-tel span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  /* Bottone «Messaggio» nella barra mobile: secondario (il telefono resta primario). */
  .pbar-msgform{display:contents;}
  .pbar .btn-msg{height:46px;flex:1;min-width:0;width:auto;padding:0 14px;font-size:13.5px;
    font-weight:700;gap:8px;border-radius:var(--r-sm);}
  .pbar .btn-msg span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  /* WhatsApp e Telegram come sole icone: due marchi che nessuno ha bisogno di
     leggere, e cosi' ci stanno entrambi accanto al telefono anche a 360px. */
  .pbar .ico{flex:none;width:50px;padding:0;justify-content:center;}
  .pbar .ico .ico-lbl{display:none;}   /* in modalità icona: solo il marchio grafico */
  /* Senza bottone Telefono, WhatsApp/Telegram non devono restare due bottoncini a
     lato con la barra vuota: si espandono a riempire (metà ciascuno, o intera se sola)
     e mostrano anche l'etichetta, come farebbe un bottone pieno. */
  .pbar:not(:has(.btn-tel)) .ico{flex:1;width:auto;padding:0 16px;}
  .pbar:not(:has(.btn-tel)) .ico .ico-lbl{display:inline;}
  .btn-tg{display:inline-flex;align-items:center;justify-content:center;gap:9px;
    color:#3aa6e0;background:rgba(58,166,224,0.12);border:1px solid rgba(58,166,224,0.45);
    border-radius:var(--r-sm);font-weight:700;transition:.15s;}
  .btn-tg:hover{background:rgba(58,166,224,0.2);}
  .pbar-space{display:block;height:74px;}

  /* INSERISCI ANNUNCIO mobile */
  .pubhead{padding:18px 0 14px;}
  .pubhead h1{font-size:22px;margin-bottom:14px;}
  .stepper{display:none;}
  .mstep{display:flex;align-items:center;gap:9px;}
  .mstep .bar{flex:1;height:5px;border-radius:var(--r-xs);background:var(--surface-2);overflow:hidden;}
  .mstep .bar i{display:block;height:100%;background:linear-gradient(90deg,var(--accent-bright),var(--accent));border-radius:var(--r-xs);transition:width .3s;}
  .mstep .lab{font-size:12px;color:var(--dim);font-weight:600;white-space:nowrap;}
  .publayout{padding:18px 0 0;}
  .frow,.frow.r4{grid-template-columns:1fr 1fr;}
  .uploads{grid-template-columns:1fr 1fr 1fr;gap:9px;}
  .pubside{display:none;}
  .pubnav{position:sticky;bottom:0;margin:22px -16px 0;padding:12px 16px;
    background:rgba(11,11,15,0.9);backdrop-filter:blur(14px);border-top:1px solid var(--border-strong);z-index:50;}
  .pubnav .btn-ghost2,.pubnav .btn-accent{padding:13px 16px;}

  /* FOOTER */
  .foot-cols{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 20px;padding:32px 0 24px;}
  .foot-brand{grid-column:1 / -1;max-width:none;}
  .foot-bottom{flex-direction:column;align-items:flex-start;}
}

/* ---- AUTH (login / registrazione / OTP) -------------------- */
.authwrap{max-width:440px;margin:0 auto;padding:46px 18px 70px;box-sizing:border-box;}
.authcard{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:30px 28px;}
.authcard h1{font-size:24px;font-weight:800;letter-spacing:-.6px;margin:0 0 6px;}
.authcard .sub{color:var(--dim);font-size:14px;margin:0 0 22px;line-height:1.5;}
.authform{display:flex;flex-direction:column;gap:16px;}
.authform .btn-accent{width:100%;padding:14px;}
.auth-alt{margin-top:18px;text-align:center;font-size:13.5px;color:var(--dim);}
.auth-alt a{color:var(--accent-bright);font-weight:600;}
.authsub{color:var(--dim);font-size:14px;margin:0 0 22px;line-height:1.5;}
.authalt{margin-top:18px;text-align:center;font-size:13.5px;color:var(--dim);}
.authalt a{color:var(--accent-bright);font-weight:600;}
.authform input[type=text],.authform input[type=password],.authform input[type=email],.authform input[type=tel]{
  background:var(--tile);border:1px solid var(--border);border-radius:var(--r-sm);padding:13px 14px;color:var(--text);font:inherit;font-size:15px;outline:none;}
.authform input:focus{border-color:var(--border-strong);}
/* tab recupero (email/telefono) */
.rec-tabs{display:flex;gap:8px;margin:0 0 18px;}
.rec-tabs button{flex:1;padding:10px;border-radius:var(--r-sm);border:1px solid var(--border);background:var(--surface-solid);
  color:var(--dim);font:inherit;font-weight:700;font-size:13.5px;cursor:pointer;}
.rec-tabs button.on{background:var(--accent-bright);border-color:var(--accent-bright);color:var(--accent-ink);}
/* setup 2FA */
.tfa-steps{margin:0 0 16px;padding-left:20px;color:var(--dim);font-size:14px;line-height:1.7;}
.tfa-setup{display:flex;gap:18px;align-items:center;flex-wrap:wrap;}
.tfa-qr{background:#16151d;border:1px solid var(--border);border-radius:var(--r-sm);padding:8px;}
.tfa-secret small{display:block;font-size:12px;color:var(--faint);margin-bottom:4px;}
.tfa-secret code{font-family:var(--mono);font-size:15px;letter-spacing:1px;color:var(--text);background:var(--surface-2);
  border:1px solid var(--border);border-radius:var(--r-sm);padding:8px 12px;display:inline-block;word-break:break-all;}
.errlist{list-style:none;margin:4px 0 0;padding:0;color:#ff8aa3;font-size:12.5px;}
.formerr{background:rgba(255,77,109,.1);border:1px solid rgba(255,77,109,.4);color:#ff9bb0;
  border-radius:var(--r-sm);padding:11px 14px;font-size:13.5px;}
.msgs{max-width:440px;margin:14px auto 0;display:flex;flex-direction:column;gap:8px;}
.msg{border-radius:var(--r-sm);padding:11px 14px;font-size:13.5px;border:1px solid var(--border);background:var(--surface);}
.msg.success{border-color:rgba(37,211,102,.4);color:#7ee7a3;background:rgba(37,211,102,.08);}
.msg.error,.msg.warning{border-color:rgba(255,77,109,.4);color:#ff9bb0;background:rgba(255,77,109,.08);}
.msg.info{border-color:var(--border-strong);}
/* scelta percorso registrazione */
.rolepick{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:6px;}
.rolecard{display:block;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:22px 20px;transition:.16s;}
.rolecard:hover{border-color:var(--accent-bright);}
.rolecard .ic{width:46px;height:46px;border-radius:var(--r-sm);display:grid;place-items:center;
  background:var(--surface-2);color:var(--accent-bright);border:1px solid var(--border);margin-bottom:14px;}
.rolecard b{display:block;font-size:17px;margin-bottom:5px;}
.rolecard small{color:var(--dim);font-size:13px;line-height:1.5;}
.dash-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;margin-top:18px;}
.dash-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-sm);padding:20px;}
.dash-card b{display:block;font-size:15px;margin-bottom:4px;}
.dash-card small{color:var(--dim);font-size:13px;}
.badge-ok{display:inline-block;font-size:11px;font-weight:700;color:#7ee7a3;background:rgba(37,211,102,.1);
  border:1px solid rgba(37,211,102,.4);border-radius:var(--r-xs);padding:2px 8px;}
.badge-wait{display:inline-block;font-size:11px;font-weight:700;color:#f5d488;background:rgba(245,196,82,.1);
  border:1px solid rgba(245,196,82,.4);border-radius:var(--r-xs);padding:2px 8px;}
@media(max-width:560px){.rolepick{grid-template-columns:1fr;}}

/* ---- WIZARD pubblicazione: stato selezionato via form nativo --- */
.fchip input{position:absolute;opacity:0;width:0;height:0;}
.fchip:has(input:checked){background:var(--accent);color:var(--accent-ink);border-color:transparent;}
.consent input{position:absolute;opacity:0;width:0;height:0;}
.consent:has(input:checked){color:var(--text);}
.consent:has(input:checked) .cbox{background:var(--accent);border-color:var(--accent);}
.consent:has(input:checked) .cbox::after{content:"";width:5px;height:9px;border:2px solid #fff;border-top:0;border-left:0;transform:rotate(45deg);margin-top:-2px;}
.field .errlist{margin-top:5px;}

/* ---- CODA DI MODERAZIONE (staff) --------------------------- */
.modwrap{padding:26px 0 60px;}
.modhd{display:flex;align-items:center;gap:14px;margin-bottom:20px;flex-wrap:wrap;}
.modhd h1{font-size:26px;font-weight:800;letter-spacing:-.6px;margin:0;}
.modstat{display:flex;gap:8px;margin-left:auto;}
.modstat span{font-size:12.5px;font-weight:700;border-radius:var(--r-control);padding:4px 12px;border:1px solid var(--border);color:var(--dim);}
.modstat .pend{color:#f5d488;border-color:rgba(245,196,82,.4);background:rgba(245,196,82,.08);}
.modstat .act{color:#7ee7a3;border-color:rgba(54,213,125,.4);background:rgba(54,213,125,.08);}
.modcard{display:grid;grid-template-columns:130px 1fr 210px;gap:20px;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);padding:18px;margin-bottom:16px;}
.modmedia{display:flex;flex-direction:column;gap:6px;}
.modmedia .mimg{width:100%;aspect-ratio:3/4;border-radius:var(--r-sm);object-fit:cover;border:1px solid var(--border);}
.modmedia .mph{width:100%;aspect-ratio:3/4;border-radius:var(--r-sm);border:1px solid var(--border);}
.modmedia .more{font-size:11px;color:var(--faint);text-align:center;}
.modbody b.nm{font-size:17px;}
.modbody .tags{display:flex;gap:7px;flex-wrap:wrap;margin:7px 0;}
.modbody .tag{font-size:11.5px;font-weight:600;color:var(--dim);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-control);padding:3px 10px;}
.modbody .mmeta{font-size:12px;color:var(--faint);margin-bottom:6px;}
.modbody p.desc{font-size:13.5px;color:var(--dim);line-height:1.55;margin:8px 0;max-height:120px;overflow:auto;}
.modbody .contacts{font-size:12.5px;color:var(--faint);}
.modactions{display:flex;flex-direction:column;gap:9px;}
.btn-approve{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:800;font-size:14px;color:#fff;padding:12px;border-radius:var(--r-sm);background:linear-gradient(135deg,#5fe3a1,#3fbf62);cursor:pointer;transition:.15s;}
.btn-approve:hover{}
.btn-reject{font-weight:700;font-size:13.5px;color:#ff9bb0;padding:11px;border-radius:var(--r-sm);border:1px solid rgba(255,77,109,.4);background:rgba(255,77,109,.07);cursor:pointer;}
.btn-reject:hover{background:rgba(255,77,109,.14);}
.modactions .reason{width:100%;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);padding:9px 11px;color:var(--text);font-family:inherit;font-size:13px;outline:none;}
.modactions .reason:focus{border-color:var(--accent-bright);}
@media(max-width:760px){.modcard{grid-template-columns:90px 1fr;}.modactions{grid-column:1/-1;flex-direction:row;flex-wrap:wrap;}}

/* ---- MAPPA (Leaflet, tema scuro/magenta) ------------------- */
.mapwrap{padding-top:26px;padding-bottom:50px;}
.maphd h1{font-size:28px;font-weight:800;letter-spacing:-.7px;margin:0 0 6px;}
.maphd p{color:var(--dim);font-size:14px;margin:0 0 18px;}
#map{width:100%;height:72vh;min-height:420px;border-radius:var(--r-md);overflow:hidden;border:1px solid var(--border);background:var(--bg3);z-index:0;}
.leaflet-container{background:var(--bg3);font-family:var(--font);}
.leaflet-popup-content-wrapper{background:var(--surface-solid);color:var(--text);border:1px solid var(--border);border-radius:var(--r-sm);box-shadow:var(--shadow);}
.leaflet-popup-content{margin:12px 14px;font-size:13.5px;line-height:1.5;}
.leaflet-popup-content b{color:#fff;font-size:15px;}
.leaflet-popup-content small{color:var(--faint);}
.leaflet-popup-content a{color:var(--accent-bright);font-weight:700;}
.leaflet-popup-tip{background:var(--surface-solid);border:1px solid var(--border);}
.leaflet-popup-close-button{color:var(--faint)!important;}
.leaflet-bar a{background:var(--surface-solid);color:var(--text);border-color:var(--border)!important;}
.leaflet-bar a:hover{background:var(--surface-2);}
.leaflet-control-attribution{background:rgba(13,12,18,.7)!important;color:var(--faint);}
.leaflet-control-attribution a{color:var(--dim);}
/* marker magenta a goccia (DivIcon) */
.vemark{width:20px;height:20px;border-radius:50% 50% 50% 0;background:var(--accent);
  border:2px solid #fff;transform:rotate(-45deg);box-shadow:0 3px 10px rgba(0,0,0,.55);}
.vemark.big{width:28px;height:28px;}

/* ---- TOUR / TRASFERTE -------------------------------------- */
.minib.tour{background:linear-gradient(135deg,#9a80ff,var(--violet));color:#fff;border-color:transparent;}
.tourrow{display:flex;align-items:center;gap:12px;padding:12px 0;border-top:1px solid var(--border);}
.tourrow:first-child{border-top:none;}
.tourrow .tcity{font-weight:700;}
.tourrow .tdate{font-size:13px;color:var(--dim);}
.tourrow .tstate{margin-left:auto;font-size:11px;font-weight:700;padding:3px 10px;border-radius:var(--r-control);}
.tstate.active{background:rgba(124,92,255,.16);color:#bcaaff;}
.tstate.upcoming{background:rgba(245,196,82,.14);color:#f5d488;}
.tstate.scheduled{background:var(--surface-2);color:var(--faint);}
.tourmgr{max-width:760px;margin:0 auto;padding-top:34px;padding-bottom:70px;}
.tourmgr h1{font-size:26px;font-weight:800;letter-spacing:-.6px;margin:0 0 6px;}
.tourmgr .sub{color:var(--dim);font-size:14px;margin:0 0 22px;}
.tourcard{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-sm);padding:16px 18px;margin-bottom:12px;display:flex;align-items:center;gap:12px;}
.tourcard b{font-size:15.5px;}
.tourcard small{color:var(--faint);font-size:12.5px;}
.tourform{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:8px;}
.tourform .full{grid-column:1/-1;}
.tourform .btn-accent{grid-column:1/-1;}
@media(max-width:560px){.tourform{grid-template-columns:1fr;}}

/* ---- PIANI & VISIBILITÀ ------------------------------------ */
.plangrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin-top:14px;}
.plancard{border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);padding:22px;}
.plancard.vip{border-color:var(--accent-glow);background:linear-gradient(160deg,rgba(var(--accent-rgb),.08),var(--surface) 60%);}
.plancard .pname{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--accent-bright);}
.plancard .pprice{font-size:34px;font-weight:800;letter-spacing:-1px;margin:8px 0 14px;}
.plancard .pprice span{font-size:14px;font-weight:600;color:var(--faint);}
.plancard .phl{list-style:none;margin:0 0 18px;padding:0;}
.plancard .phl li{font-size:13.5px;color:var(--dim);padding:5px 0 5px 22px;position:relative;}
.plancard .phl li::before{content:"✓";position:absolute;left:0;color:var(--online);font-weight:800;}
.pselect{width:100%;margin-bottom:10px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);padding:10px 12px;color:var(--text);font-family:inherit;font-size:14px;}
.pselect:focus{outline:none;border-color:var(--accent-bright);}

/* dropdown: option leggibili (no testo chiaro su sfondo bianco) */
select option,select optgroup{background:#16151d;color:#f6f5f9;}

/* ---- RECENSIONI (profilo) --------------------------------- */
.revsum{display:flex;gap:30px;align-items:center;flex-wrap:wrap;padding:6px 0 18px;}
.revscore{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;}
.revscore .big{font-size:44px;font-weight:800;letter-spacing:-1.5px;line-height:1;display:block;}
.revscore .stars{display:block;color:var(--gold-bright);font-size:17px;letter-spacing:2px;line-height:1;}
.revscore small{display:block;color:var(--dim);font-size:12.5px;}
.revdist{flex:1;min-width:220px;display:flex;flex-direction:column;gap:5px;}
.drow{display:flex;align-items:center;gap:10px;font-size:12px;}
.drow .dl{color:var(--faint);width:26px;}
.drow .dbar{flex:1;height:6px;border-radius:var(--r-xs);background:var(--surface-2);overflow:hidden;}
.drow .dbar i{display:block;height:100%;background:var(--gold-bright);}
.drow .dn{color:var(--faint);width:22px;text-align:right;}
.revform{background:var(--surface-solid);border:1px solid var(--line);border-radius:var(--r-md);padding:16px;margin:16px 0 0;}
.revlabel{font-size:13.5px;font-weight:600;color:var(--text);margin-bottom:6px;}
.starpick{display:flex;gap:2px;margin-bottom:12px;width:max-content;}
.starpick button{font-size:30px;line-height:1;color:var(--border-strong);padding:2px;transition:color .1s;}
.starpick button.on{color:var(--gold-bright);}
.revform textarea{width:100%;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);padding:12px 14px;color:var(--text);font-family:inherit;font-size:14px;resize:vertical;outline:none;margin-bottom:12px;}
.revform textarea:focus{border-color:var(--accent-bright);}
.revform .btn-accent[disabled]{opacity:.45;cursor:not-allowed;}
.revnote{color:var(--dim);font-size:14.5px;padding:4px 0 14px;}
.revnote a{color:var(--accent-bright);font-weight:700;}
.revlist{display:flex;flex-direction:column;}
.revitem{padding:16px 0;border-top:1px solid var(--line);}
.revhead{display:flex;align-items:center;gap:11px;margin-bottom:8px;}
.ravatar{width:36px;height:36px;border-radius:var(--r-sm);background:var(--surface-2);border:1px solid var(--border);display:grid;place-items:center;color:var(--faint);flex-shrink:0;}
.revhead b{font-size:14px;}
.revdate{font-size:13px;color:var(--dim-2);}
.revstars{color:var(--gold-bright);font-size:13px;}
.revitem>p{font-size:15px;color:var(--text-soft);line-height:1.6;margin:0;max-width:66ch;}
.revreply{margin:12px 0 0;padding:12px 14px;background:var(--surface);border-radius:var(--r-md);}
.revreply b{font-size:12.5px;color:var(--accent-bright);}
.revreply p{font-size:13.5px;color:var(--dim);line-height:1.55;margin:5px 0 0;}
.revmore{margin:6px 8px 0 0;}
#recensioni>.btn-line{margin-top:10px;}
.revform select{width:100%;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);padding:11px 13px;color:var(--text);font-family:inherit;font-size:14px;margin-bottom:12px;outline:none;}
.revform select:focus{border-color:var(--accent-bright);}

/* ---- COMBOBOX RICERCA CITTÀ (wizard annuncio) ------------- */
.citybox{position:relative;}
.cityresults{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:30;max-height:264px;overflow:auto;
  background:var(--surface-solid);border:1px solid var(--border-strong);border-radius:var(--r-sm);box-shadow:var(--shadow);padding:5px;}
.cityopt{padding:9px 12px;border-radius:var(--r-sm);font-size:14px;color:var(--text);cursor:pointer;}
.cityopt:hover{background:var(--surface-2);}

/* combobox a tendina con ricerca in cima */
.combo{position:relative;}
.cbtrigger{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-sm);padding:13px 15px;color:var(--text);font-family:inherit;font-size:14.5px;cursor:pointer;text-align:left;}
.cbtrigger:hover{border-color:var(--border-strong);}
.cbtrigger .ph{color:var(--faint);}
.cbpanel{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:30;background:var(--surface-solid);border:1px solid var(--border-strong);border-radius:var(--r-sm);box-shadow:var(--shadow);padding:8px;}
.cbsearch{width:100%;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);padding:9px 12px;color:var(--text);font-family:inherit;font-size:14px;outline:none;margin-bottom:6px;}
.cbsearch:focus{border-color:var(--accent-bright);}
.cblist{max-height:240px;overflow:auto;}
.cbempty{padding:12px;color:var(--faint);font-size:13px;text-align:center;}
.cityopt{display:flex;align-items:center;gap:9px;}
.optflag{width:18px;height:13px;border-radius:var(--r-xs);object-fit:cover;border:1px solid rgba(255,255,255,.25);flex-shrink:0;box-shadow:0 1px 2px rgba(0,0,0,.4);}

/* ricerche frequenti */
.freqgrid{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px;}
.freqchip{display:inline-flex;align-items:center;gap:9px;padding:10px 15px;border-radius:var(--r-control);border:1px solid var(--border);background:var(--surface);font-weight:600;font-size:14px;color:var(--text);transition:.14s;}
.freqchip:hover{border-color:var(--accent-bright);color:var(--accent-bright);}
.freqchip span{font-size:11.5px;color:var(--faint);background:var(--surface-2);border-radius:var(--r-control);padding:1px 8px;}

/* tag cloud ricerche frequenti */
.freqcloud{margin-top:12px;}
.freqcloud-h{font-size:14px;font-weight:600;color:var(--text);margin-bottom:6px;}
.freqcloud-tags{display:flex;flex-wrap:wrap;gap:4px 18px;}
.freqtag{font-size:14px;color:var(--dim);padding:3px 0;}
.freqtag:hover{color:var(--text);}

/* vista mappa città (cluster) */
.maphd2{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px;flex-wrap:wrap;}
.maphd2 h1{font-size:26px;font-weight:800;letter-spacing:-0.6px;margin:0;}
.maphd2 .count{font-size:13.5px;color:var(--faint);margin-top:4px;}
#citymap{width:100%;height:72vh;min-height:460px;border-radius:var(--r-md);overflow:hidden;border:1px solid var(--border);background:#0d0f15;z-index:0;}
.leaflet-container{font:inherit;background:#0d0f15;}
/* cluster in tema (rosa) */
.marker-cluster{background:rgba(var(--accent-rgb),.22)!important;}
.marker-cluster div{background:var(--accent)!important;color:var(--accent-ink)!important;font-weight:700;}
.marker-cluster span{color:#fff;}
/* popup dark mappa città */
.mpop .leaflet-popup-content-wrapper{background:var(--surface-solid);color:var(--text);border:1px solid var(--border);border-radius:var(--r-sm);box-shadow:0 16px 36px -12px rgba(0,0,0,.75);overflow:hidden;}
/* Card del pin: SEMPRE lo stesso formato (larghezza fissa, testi a una riga con
   ellissi) così non cambia dimensione col nome/zona. */
.mpop .leaflet-popup-content{margin:0!important;width:250px!important;}
.mpop .leaflet-popup-tip{background:var(--surface-solid);border:1px solid var(--border);}
.mpop .leaflet-popup-close-button{color:var(--faint);}
.mpop-row{display:flex;gap:11px;padding:11px;align-items:center;width:250px;box-sizing:border-box;}
.mpop-th{width:56px;height:56px;border-radius:var(--r-sm);flex:0 0 56px;background-size:cover;background-position:center;border:1px solid var(--border);}
.mpop-b{display:flex;flex-direction:column;flex:1;min-width:0;}
.mpop-b b,.mpop-z{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;}
.mpop-b b{font-size:14.5px;color:var(--text);}
.mpop-z{font-size:12px;color:var(--faint);margin-top:1px;}
.mpop-r{font-size:12.5px;color:var(--gold-bright);margin-top:2px;}
.mpop-a{margin-top:5px;font-weight:700;font-size:12.5px;color:var(--accent-bright);}

/* condivisione + segnalazione profilo */
.sharepop{position:absolute;top:calc(100% + 8px);right:0;z-index:50;width:206px;background:var(--surface-solid);border:1px solid var(--border-strong);border-radius:var(--r-sm);box-shadow:var(--shadow);padding:6px;}
.shrow{display:flex;align-items:center;gap:11px;width:100%;padding:10px 12px;border-radius:var(--r-sm);font-weight:600;font-size:13.5px;color:var(--text);background:none;border:none;cursor:pointer;text-align:left;}
.shrow:hover{background:var(--surface);}
.repmodal{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:20px;}
.rep-back{position:absolute;inset:0;background:rgba(5,5,8,.82);backdrop-filter:blur(5px);}
.rep-card{position:relative;width:min(460px,100%);max-height:90vh;overflow:auto;background:var(--surface-solid);border:1px solid var(--border-strong);border-radius:var(--r-md);box-shadow:var(--shadow);padding:24px;}
.rep-card h3{font-size:19px;font-weight:800;margin:0 0 6px;}
.rep-sub{font-size:13px;color:var(--dim);line-height:1.5;margin:0 0 16px;}
.rep-reasons{display:flex;flex-direction:column;gap:8px;margin-bottom:14px;}
.rep-r{display:flex;align-items:center;gap:11px;padding:12px 14px;border:1px solid var(--border);border-radius:var(--r-sm);cursor:pointer;font-size:14px;font-weight:600;transition:.14s;}
.rep-r:hover{border-color:var(--border-strong);}
.rep-r.on{border-color:var(--accent-bright);background:rgba(var(--accent-rgb),.08);}
.rep-r input{accent-color:var(--accent-bright);}
.repmodal textarea{width:100%;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);padding:11px 13px;color:var(--text);font:inherit;font-size:14px;outline:none;resize:vertical;}
.rep-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:16px;}
.rep-done{text-align:center;padding:8px 0;}
.rep-ok{width:56px;height:56px;border-radius:50%;background:rgba(54,213,125,.14);border:1px solid rgba(54,213,125,.4);display:grid;place-items:center;margin:0 auto 14px;}
.rep-done b{font-size:17px;display:block;margin-bottom:5px;}
.rep-done p{font-size:13.5px;color:var(--dim);margin:0 0 18px;}

/* media hot: video, lucchetto, badge HOT (galleria profilo) */
.gph{position:absolute;inset:-24px;z-index:0;filter:blur(22px) brightness(.45);}
.gimg{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;z-index:1;display:block;}
.gvideo{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#000;z-index:2;}
.gvidposter{position:absolute;inset:0;z-index:2;cursor:pointer;}
.gvidposter .gimg{z-index:2;}
.gplay{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:3;width:62px;height:62px;border-radius:50%;border:none;
  background:rgba(0,0,0,.5);backdrop-filter:blur(3px);display:grid;place-items:center;cursor:pointer;transition:.15s;padding-left:4px;}
.gvidposter:hover .gplay{background:var(--accent);transform:translate(-50%,-50%) scale(1.06);}
.gcover .badges,.gcover .gacts,.gcover .gcount,.gcover .glike{z-index:5;}

/* ---------- VISORE A SCHERMO INTERO (galleria profilo) ----------
   Sta sopra a tutto (drawer compresi) e riusa lo stato della galleria: le
   frecce, le miniature e il like agiscono sullo stesso activeImg della pagina. */
.lbox{position:fixed;inset:0;z-index:400;display:grid;
  grid-template-rows:1fr auto auto;align-items:center;justify-items:center;}
/* Fondo quasi pieno: al 94%% la pagina dietro traspariva, e siccome dietro c'e'
   la stessa foto sembrava che l'immagine continuasse fuori dalla cornice. */
.lbox-bg{position:absolute;inset:0;background:rgba(4,6,12,.985);backdrop-filter:blur(10px);}
/* align-self:stretch fa riempire alla stage SOLO la riga 1fr della griglia; con
   height:100% invece si risolveva sull'intero viewport e la foto sfondava sotto
   barra azioni e thumbnail. overflow:hidden tiene l'immagine dentro la riga. */
/* Flex, NON grid: con display:grid l'immagine (grid item) definiva da sola
   l'altezza della cella implicita, così max-height:100%% si calcolava sulla sua
   altezza naturale e non la rimpiccioliva mai — la foto sforava e overflow:hidden
   la tagliava. In flex, max-height:100%% si risolve sull'altezza reale dello stage. */
.lbox-stage{position:relative;z-index:1;width:100%;align-self:stretch;overflow:hidden;
  display:flex;align-items:center;justify-content:center;padding:56px 68px 8px;min-height:0;}
.lbox-stage img,.lbox-stage video{max-width:100%;max-height:100%;width:auto;height:auto;
  display:block;border-radius:var(--r-md);object-fit:contain;}
.lbox-lock{display:flex;flex-direction:column;align-items:center;gap:9px;text-align:center;
  padding:38px 30px;border-radius:var(--r-md);border:1px solid var(--border-strong);
  background:rgba(14,20,34,.9);color:#fff;max-width:340px;}
.lbox-lock b{font-size:16px;}
.lbox-lock span{font-size:13px;color:var(--dim);}
.lbox-lock .lockbtn{margin-top:8px;padding:10px 20px;border-radius:var(--r-control);
  background:var(--accent-bright);color:var(--accent-ink);font-weight:700;font-size:13.5px;}
.lbox-x,.lbox-nav{position:absolute;z-index:2;display:grid;place-items:center;
  width:44px;height:44px;border-radius:50%;cursor:pointer;color:#fff;
  background:rgba(10,9,14,.55);backdrop-filter:blur(10px);border:1px solid var(--border);
  transition:background .15s,border-color .15s;}
.lbox-x:hover,.lbox-nav:hover{background:rgba(10,9,14,.8);border-color:var(--border-strong);}
.lbox-x{top:16px;right:16px;}
.lbox-nav{top:50%;transform:translateY(-50%);}
.lbox-nav.prev{left:16px;}
.lbox-nav.next{right:16px;}
.lbox-bar{position:relative;z-index:2;display:flex;align-items:center;gap:18px;flex-wrap:wrap;
  justify-content:center;padding:10px 16px 4px;}
.lbox-n{font-family:var(--mono);font-size:11px;letter-spacing:.12em;color:var(--faint);}
.lbox-acts{display:flex;gap:9px;}
.lbox-a{display:inline-flex;align-items:center;gap:7px;height:38px;padding:0 15px;
  border-radius:var(--r-control);border:1px solid var(--border);background:rgba(14,20,34,.75);
  color:var(--text-2);font-size:12.5px;line-height:1;font-weight:600;cursor:pointer;transition:.15s;}
.lbox-a:hover{border-color:var(--border-strong);color:var(--text);}
.lbox-a.on{color:var(--accent-bright);border-color:rgba(90,169,255,.5);}
.lbox-a.favx.on{color:#f4685c;border-color:rgba(244,104,92,.5);}
.lbox-a.on .tu-out,.lbox-a.on .hi-out{display:none;}
.lbox-a.on .tu-fill,.lbox-a.on .hi-fill{display:block;}
.lbox-thumbs{position:relative;z-index:2;display:flex;gap:7px;padding:4px 16px 18px;
  max-width:100%;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;}
.lbox-thumbs::-webkit-scrollbar{display:none;}
.lbox-thumbs .thumb{flex:0 0 56px;width:56px;}
/* la foto grande della pagina invita al clic */
.gzoom{cursor:zoom-in;}
@media(max-width:560px){
  .lbox-stage{padding:52px 20px 6px;}
  .lbox-nav{width:38px;height:38px;}
  .lbox-nav.prev{left:8px;}
  .lbox-nav.next{right:8px;}
  .lbox-bar{gap:12px;padding:8px 12px 2px;}
  .lbox-a{height:34px;padding:0 12px;font-size:12px;}
  .lbox-a .lbl{display:none;}   /* su telefono restano le sole icone, il conteggio no */
  .lbox-thumbs .thumb{flex:0 0 46px;width:46px;}
}

.lockwrap{position:absolute;inset:0;z-index:3;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;text-align:center;padding:20px;color:#fff;text-shadow:0 1px 8px rgba(0,0,0,.7);background:linear-gradient(180deg,rgba(8,7,11,.18),rgba(8,7,11,.5));}
/* foto riservata: l'anteprima è già 64px, la sfochiamo ancora un filo per uniformità */
.sv-media img.blurlock{filter:blur(14px) brightness(.82);transform:scale(1.1);}
/* video riservato: nessun frame disponibile → stesso fondo "frosted" della foto */
.lockbg{position:absolute;inset:0;background:
  radial-gradient(120% 90% at 50% 25%,rgba(120,70,80,.55),transparent 60%),
  radial-gradient(120% 90% at 50% 100%,rgba(60,40,55,.7),transparent 55%),
  linear-gradient(180deg,#3a2a30,#241b22);filter:blur(2px);}
.lockic{width:58px;height:58px;border-radius:50%;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.28);display:grid;place-items:center;margin-bottom:6px;}
.lockwrap b{font-size:17px;}
.lockwrap span{font-size:12.5px;color:rgba(255,255,255,.85);max-width:240px;line-height:1.4;}
.lockbtn{margin-top:12px;background:var(--accent);color:var(--accent-ink);font-weight:800;font-size:14px;padding:11px 24px;border-radius:var(--r-sm);}
.hotbadge{font-size:10.5px;font-weight:800;letter-spacing:.6px;color:var(--hot-ink);background:linear-gradient(135deg,#ff8a6d,#ff6b4a);padding:4px 10px;border-radius:var(--r-control);box-shadow:0 4px 14px -4px rgba(255,107,74,.6);}
.thlock,.thplay{position:absolute;inset:0;display:grid;place-items:center;background:rgba(8,7,11,.4);}



/* ===== MESSAGGISTICA (chat real-time) ==================================== */
.chatwrap{max-width:820px;}
.chatbox{display:flex;flex-direction:column;padding:0;overflow:hidden;}
.chatlog{display:flex;flex-direction:column;gap:10px;padding:20px;min-height:46vh;max-height:60vh;overflow-y:auto;}
.chatempty{margin:auto;text-align:center;}
.cmsg{max-width:74%;padding:10px 14px;border-radius:var(--r-md);font-size:14.5px;line-height:1.45;word-break:break-word;}
.cmsg .cbody{white-space:pre-wrap;}
.cmsg time{display:block;margin-top:4px;font-size:10.5px;opacity:.65;}
.cmsg.mine{align-self:flex-end;background:var(--accent-bright);color:var(--accent-ink);border-bottom-right-radius:5px;}
.cmsg.theirs{align-self:flex-start;background:var(--surface-2);border:1px solid var(--border);border-bottom-left-radius:5px;}

/* «sta scrivendo» */
.typing{display:flex;align-items:center;gap:5px;padding:0 20px 10px;font-size:12.5px;color:var(--dim);}
.typing[hidden]{display:none;}
.tdot{width:5px;height:5px;border-radius:50%;background:var(--dim);animation:tbounce 1.2s infinite;}
.tdot:nth-child(2){animation-delay:.15s;}
.tdot:nth-child(3){animation-delay:.3s;margin-right:5px;}
@keyframes tbounce{0%,60%,100%{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}
@media (prefers-reduced-motion:reduce){.tdot{animation:none;}}

.chatform{display:flex;gap:10px;align-items:flex-end;padding:14px;border-top:1px solid var(--border);background:var(--surface);}
.chatform textarea{flex:1;resize:none;max-height:140px;padding:11px 14px;border-radius:var(--r-sm);border:1px solid var(--border);
  background:var(--surface-solid);color:var(--text);font:inherit;font-size:14.5px;line-height:1.4;outline:none;}
.chatform textarea:focus{border-color:var(--accent-bright);}
.chatlock{padding:18px;border-top:1px solid var(--border);background:var(--surface);text-align:center;}
.chatlock p{margin:0 0 12px;font-size:13.5px;color:var(--dim);}
.chatnote{margin-top:12px;font-size:12px;text-align:center;}

/* stato di presenza */
.presence{display:inline-flex;align-items:center;gap:6px;}
.presence .pdot{width:8px;height:8px;border-radius:50%;background:var(--faint);}
.presence[data-online="1"] .pdot{background:var(--online);box-shadow:0 0 0 3px rgba(63,191,98,.18);}
.presence[data-online="1"] .ptxt{color:var(--online-bright);}

/* elenco conversazioni */
.convlist{padding:6px;}
.convrow{display:flex;align-items:center;gap:13px;padding:13px 14px;border-radius:var(--r-sm);transition:.14s;}
.convrow:hover{background:var(--surface);}
.convrow.unread .cprev{color:var(--text);font-weight:600;}
.cavatar{position:relative;flex-shrink:0;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;
  background:var(--surface-2);border:1px solid var(--border);font-weight:800;font-size:16px;}
.cavatar::after{content:"";position:absolute;right:0;bottom:0;width:11px;height:11px;border-radius:50%;
  background:var(--faint);border:2px solid var(--surface-solid);}
.cavatar[data-online="1"]::after{background:var(--online);}
.cmain{flex:1;min-width:0;}
.ctop{display:flex;align-items:baseline;justify-content:space-between;gap:10px;}
.ctop b{font-size:14.5px;}
.ctop time{font-size:11.5px;color:var(--faint);flex-shrink:0;}
.cprev{display:block;margin-top:3px;font-size:13px;color:var(--dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.cbadge{flex-shrink:0;min-width:20px;height:20px;padding:0 6px;border-radius:var(--r-control);background:var(--accent-bright);
  color:var(--accent-ink);font-size:11.5px;font-weight:800;display:grid;place-items:center;}

/* CTA premium in cima alla lista */
.premium-cta{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:16px;}
.premium-cta p{margin:5px 0 0;font-size:13px;}
@media(max-width:640px){.premium-cta{flex-direction:column;align-items:flex-start;}}

/* bottone «Invia messaggio» sulla scheda profilo */
.msgform{display:contents;}
.btn-msg{display:inline-flex;align-items:center;justify-content:center;gap:9px;width:100%;padding:13px 18px;border-radius:var(--r-sm);
  font-weight:800;font-size:14.5px;cursor:pointer;border:1px solid var(--border-strong);background:var(--surface-2);color:var(--text);transition:.15s;}
.btn-msg:hover{border-color:var(--accent-bright);color:var(--accent-bright);}
.btn-msg.locked{color:var(--dim);}
.btn-msg small{font-size:10px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;padding:3px 7px;border-radius:var(--r-xs);
  background:rgba(var(--accent-rgb),.16);color:var(--accent-bright);}

/* ===== PREMIUM (membership cliente) ======================================
   Piani a sinistra, vantaggi con icona a destra. Stesso corpo nella pagina
   pubblica (.prem-page) e dentro l'area personale (.acc). */
.prem-page{padding-bottom:64px;}
.prem{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:40px 56px;align-items:start;}
.prem-plans{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;}
.prem-plan{display:grid;align-content:start;gap:4px;padding:24px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-solid);}
.prem-plan.best{border-color:var(--accent-bright);box-shadow:inset 0 0 0 1px var(--accent-bright);}
.prem-plan-h{display:flex;align-items:baseline;justify-content:space-between;gap:10px;}
.prem-plan-h h2{font-size:16px;font-weight:700;}
.prem-plan-h span{font-size:13px;font-weight:700;color:var(--accent-bright);}
.prem-price{margin-top:10px;font-size:38px;line-height:1;font-weight:800;letter-spacing:-.03em;font-variant-numeric:tabular-nums;}
.prem-price small{font-size:20px;font-weight:700;color:var(--dim);}
.prem-per{font-size:14px;color:var(--dim);font-variant-numeric:tabular-nums;}
.prem-per b{color:var(--online-bright,#3fbf62);font-weight:700;}
.prem-note{margin-top:6px;font-size:14px;color:var(--dim-2);}
.prem-plan form,.prem-plan>a{margin-top:18px;}
.prem-plan .btn-accent,.prem-plan .btn-line{width:100%;min-height:46px;}
.prem-pay{display:flex;gap:10px;align-items:flex-start;margin-top:18px;font-size:14px;color:var(--dim);line-height:1.5;}
.prem-pay svg{flex:none;margin-top:2px;color:var(--dim-2);}
.prem-pay b{color:var(--text);}
.prem-pay a{color:var(--accent-bright);font-weight:600;}
.prem-none{color:var(--dim);}
.prem-perks{display:grid;gap:18px;list-style:none;padding:0;}
.prem-perks li{display:grid;grid-template-columns:36px minmax(0,1fr);column-gap:14px;align-items:start;}
.pk-ic{grid-row:span 2;display:grid;place-items:center;width:36px;height:36px;border-radius:var(--r-sm);background:var(--surface);color:var(--accent-bright);}
.prem-perks b{font-size:15px;font-weight:700;line-height:1.3;}
.prem-perks li>span:last-child{font-size:14px;color:var(--dim);line-height:1.45;}
.prem-live{display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px;margin-bottom:24px;padding:14px 16px;
  border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-solid);font-size:15px;}
.prem-live svg{flex:none;color:var(--online-bright,#3fbf62);}
.prem-live small{margin-left:auto;font-size:13.5px;color:var(--dim-2);font-variant-numeric:tabular-nums;}
@media(max-width:1080px){.prem{grid-template-columns:minmax(0,1fr);}.prem-perks{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:560px){.prem-perks{grid-template-columns:minmax(0,1fr);}.prem-plan{padding:20px;}}

/* ===== SCHEDA «SOLO VIP» (teaser) ======================================= */
.viplock{padding:38px 44px 70px;max-width:860px;}
.viplock-card{display:grid;grid-template-columns:300px 1fr;gap:0;border-radius:var(--r-lg);overflow:hidden;
  background:var(--surface-solid);border:1px solid var(--border);}
.viplock-ph{position:relative;min-height:380px;}
.viplock-ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:blur(18px) saturate(.7);transform:scale(1.1);}
.viplock-veil{position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,11,20,.35),rgba(8,11,20,.8));}
.viplock-badge{position:absolute;top:14px;left:14px;padding:5px 11px;border-radius:var(--r-xs);background:var(--accent-bright);
  color:var(--accent-ink);font:800 10.5px/1 var(--mono);letter-spacing:.08em;}
.viplock-body{padding:34px 32px;}
.viplock-body h1{margin:0;font-size:28px;font-weight:800;letter-spacing:-.8px;}
.viplock-body h1 span{font-weight:600;color:var(--dim);}
.viplock-where{margin:6px 0 0;font-size:13.5px;color:var(--faint);}
.viplock-msg{margin:24px 0;padding:22px;border-radius:var(--r-md);background:rgba(var(--accent-rgb),.07);
  border:1px solid var(--accent-glow);color:var(--accent-bright);}
.viplock-msg h2{margin:12px 0 8px;font-size:17px;font-weight:800;color:var(--text);}
.viplock-msg p{margin:0;font-size:13.5px;color:var(--dim);line-height:1.55;}
.viplock-perks{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:20px 0 0;}
.viplock-perks li{padding:6px 12px;border-radius:var(--r-control);background:var(--surface);border:1px solid var(--border);
  font-size:12.5px;color:var(--dim);}
.viplock-back{margin-top:22px;font-size:13px;}
@media(max-width:760px){.viplock{padding:24px 18px 50px;}.viplock-card{grid-template-columns:1fr;}
  .viplock-ph{min-height:200px;}.viplock-body{padding:24px 20px;}}

/* ===== ATTRIBUTI, INTERESSI, INTERVISTA ================================== */
.pheadline{margin:8px 0 0;font-size:16.5px;line-height:1.45;color:var(--dim);font-weight:500;text-wrap:pretty;}
.disp{margin:10px 0 0;font-size:12.5px;}

/* blocco attributi riservati ai Premium — label fuori dal box come "Caratteristiche" */
.attr-vip{margin-top:0;}
.psec>h3.attr-vip-label{font-size:10px;font-weight:600;line-height:1;font-family:var(--mono);text-transform:uppercase;letter-spacing:.16em;color:var(--accent-bright);margin:34px 0 12px;}
.attr-locked{display:flex;align-items:center;gap:13px;margin-top:14px;padding:14px 16px;border-radius:var(--r-sm);
  background:rgba(var(--accent-rgb),.07);border:1px solid var(--accent-glow);color:var(--accent-bright);transition:.15s;}
.attr-locked:hover{background:rgba(var(--accent-rgb),.13);}
.attr-locked span{flex:1;min-width:0;}
.attr-locked b{display:block;font-size:14px;color:var(--text);}
.attr-locked small{font-size:12px;color:var(--dim);}
.attr-locked em{flex-shrink:0;font-style:normal;font-weight:800;font-size:12.5px;}

.tag-link{transition:.15s;}
.tag-link:hover{border-color:var(--accent-bright);color:var(--accent-bright);}

/* intervista: testo lungo, deve restare leggibile */
.psec-interview .qa{display:flex;flex-direction:column;gap:20px;}
.qa-item h4{margin:0 0 7px;font-size:14.5px;font-weight:700;color:var(--accent-bright);line-height:1.35;}
.qa-item p{margin:0;font-size:14.5px;line-height:1.65;color:var(--dim);max-width:66ch;text-wrap:pretty;white-space:pre-wrap;}

/* ===== AVATAR IN NAVBAR + DRAWER ACCOUNT (da destra) ====================== */
/* Chi è loggato non ha bisogno del bottone «Inserisci annuncio» sempre in vista:
   al suo posto l'avatar, che apre il menu account. */
.nav-avatar{position:relative;flex:none;width:44px;height:44px;border-radius:50%;padding:0;cursor:pointer;
  border:1px solid var(--border-strong);background:var(--surface-2);color:var(--text);
  display:grid;place-items:center;overflow:visible;transition:border-color .15s,transform .12s;}
.nav-avatar:hover{border-color:var(--accent-bright);}
.nav-avatar:active{transform:scale(.94);}
.nav-avatar img{width:100%;height:100%;border-radius:50%;object-fit:cover;}
.av-ini{font-weight:800;font-size:17px;letter-spacing:-.02em;}
/* pallino non letti: informa senza aprire il menu */
.nav-avatar-dot{position:absolute;top:-1px;right:-1px;width:12px;height:12px;border-radius:50%;
  background:var(--accent-bright);border:2px solid var(--bg);}

@media(max-width:900px){
  .nav-burger,.themetoggle,.nav-avatar,.nav-search-toggle{width:40px;height:40px;}
  .av-ini{font-size:16px;}
}

/* ---------- PAGINE LEGALI ---------- */
.legal-tab{width:100%;border-collapse:collapse;margin:14px 0;font-size:13.5px;}
.legal-tab th{text-align:left;padding:10px 12px;border-bottom:1px solid var(--border-strong);
  font-size:13px;color:var(--dim-2);font-weight:600;}
.legal-tab td{padding:11px 12px;border-bottom:1px solid var(--line);vertical-align:top;
  line-height:1.5;color:var(--text-2);}
.legal-tab tr:last-child td{border-bottom:none;}
.legal-draft{margin-top:30px;padding:12px 15px;border-radius:var(--r-sm);
  border:1px dashed var(--border-strong);background:var(--surface);
  font-size:12.5px;color:var(--faint);}
@media(max-width:560px){
  .legal-tab,.legal-tab tbody,.legal-tab tr,.legal-tab td{display:block;width:100%;}
  .legal-tab thead{display:none;}
  .legal-tab tr{border-bottom:1px solid var(--border);padding:8px 0;}
  .legal-tab td{border:none;padding:3px 0;}
  .legal-tab td:first-child{font-weight:700;color:var(--text);}
}

/* ============================================================
   INSERISCI / MODIFICA ANNUNCIO (procedura in 5 passi, .pw-*)
   Campi grandi, etichette chiare, obbligatorio/facoltativo scritto,
   errore sotto il campo, anteprima a destra solo su desktop.
   ============================================================ */
.pw{padding-top:28px;padding-bottom:64px;}
.pw-head{display:grid;gap:6px;margin-bottom:28px;}
.pw-head h1{font-size:clamp(1.6rem,1.2rem + 1.2vw,2.15rem);font-weight:800;letter-spacing:-.02em;line-height:1.15;}
.pw-sub{font-size:15px;color:var(--dim);}
.pw-sub b{color:var(--text);}
.pw-steps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;margin-top:14px;list-style:none;padding:0;}
.pw-steps button{display:grid;gap:8px;width:100%;padding:0;border:0;background:none;color:var(--dim-2);font:inherit;text-align:left;cursor:default;}
.pw-steps li.open button{cursor:pointer;}
.pw-steps button::before{content:"";height:4px;border-radius:2px;background:var(--surface-2);}
.pw-steps li.done button::before,.pw-steps li.cur button::before{background:var(--accent-bright);}
.pw-steps .n{display:none;}
.pw-steps .l{font-size:13.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.pw-steps li.cur .l,.pw-steps li.done .l{color:var(--text);}
.pw-steps li.open:not(.cur) button:hover .l{color:var(--accent-bright);}
.pw-layout{display:grid;grid-template-columns:minmax(0,640px) 260px;justify-content:space-between;gap:48px;align-items:start;}
.pw-main{min-width:0;}
.pw-step{display:grid;gap:22px;}
.pw-step h2{font-size:21px;font-weight:700;letter-spacing:-.01em;}
.pw-intro{margin-top:-12px;font-size:15px;color:var(--dim);line-height:1.5;max-width:60ch;}
.pw-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:22px 16px;}
.pw-grid:has(.pw-f-s){grid-template-columns:minmax(0,1fr) 120px;}
.pw-grid-3{grid-template-columns:repeat(3,minmax(0,1fr));}
.pw-f{display:grid;gap:8px;align-content:start;min-width:0;}
.pw-f>label,.pw-lbl{font-size:15px;font-weight:600;color:var(--text);}
.pw-f>label small,.pw-lbl small,.pw-more summary small{margin-left:6px;font-size:13px;font-weight:500;color:var(--dim-2);}
.pw input[type=text],.pw input[type=number],.pw input[type=tel],.pw input:not([type]),.pw select,.pw textarea,.pw-select{
  width:100%;min-height:50px;padding:0 14px;border:1px solid var(--border-strong);border-radius:var(--r-control);
  background:var(--surface);color:var(--text);font:inherit;font-size:16px;transition:border-color .15s,box-shadow .15s;}
.pw textarea{min-height:160px;padding:12px 14px;line-height:1.6;resize:vertical;}
.pw input:focus,.pw select:focus,.pw textarea:focus,.pw-select:focus{outline:none;border-color:var(--accent-bright);box-shadow:0 0 0 3px var(--sel);}
.pw input::placeholder,.pw textarea::placeholder{color:var(--dim-2);}
.pw select:disabled{opacity:.55;}
.pw-select{display:flex;align-items:center;justify-content:space-between;gap:10px;text-align:left;cursor:pointer;}
.pw-select.ph span{color:var(--dim-2);}
.pw-select svg{flex:none;color:var(--dim);}
.pw .combo{position:relative;}
.pw-help{font-size:13.5px;color:var(--dim-2);line-height:1.45;}
.pw-count{justify-self:end;margin-top:-4px;font-size:13px;color:var(--dim-2);font-variant-numeric:tabular-nums;}
.pw-err{display:flex;align-items:center;gap:6px;font-size:14px;font-weight:600;color:#ff6f7d;}
.pw-err::before{content:"!";display:grid;place-items:center;flex:none;width:18px;height:18px;border-radius:50%;background:#ff6f7d;color:#1a0306;font-size:12px;font-weight:800;}
:root[data-theme="light"] .pw-err{color:#c22a3a;}
:root[data-theme="light"] .pw-err::before{background:#c22a3a;color:#fff;}
.pw-ok{font-size:14px;color:var(--online-bright);}
.pw-alert{padding:12px 14px;border:1px solid var(--gold-bright);border-radius:var(--r-sm);font-size:14.5px;color:var(--text-2);line-height:1.45;}
.pw-link{justify-self:start;padding:6px 0;border:0;background:none;color:var(--accent-bright);font:inherit;font-size:14.5px;font-weight:600;cursor:pointer;}
/* categoria: pulsanti grandi */
.pw-cats{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px;}
.pw-cats label,.pw-chips label{position:relative;display:flex;align-items:center;justify-content:center;min-height:46px;padding:0 12px;
  border:1px solid var(--border);border-radius:var(--r-sm);font-size:15px;font-weight:600;color:var(--text-2);cursor:pointer;text-align:center;
  transition:border-color .15s,background-color .15s;}
.pw-cats label:hover,.pw-chips label:hover{border-color:var(--border-strong);}
.pw-cats label.on,.pw-chips label:has(input:checked){border-color:var(--accent-bright);background:var(--sel);color:var(--sel-ink);}
.pw-cats input,.pw-chips input{position:absolute;opacity:0;pointer-events:none;}
.pw-cats label:has(input:focus-visible),.pw-chips label:has(input:focus-visible){outline:2px solid var(--accent-bright);outline-offset:2px;}
.pw-chips{display:flex;flex-wrap:wrap;gap:8px;}
.pw-chips label{min-height:40px;font-size:14.5px;font-weight:500;}
/* foto */
.pw-drop{display:grid;justify-items:center;gap:6px;padding:36px 16px;border:2px dashed var(--border-strong);border-radius:var(--r-md);
  text-align:center;color:var(--dim);cursor:pointer;transition:border-color .15s,background-color .15s;}
.pw-drop:hover{border-color:var(--accent-bright);background:var(--sel);}
.pw-drop svg{color:var(--accent-bright);margin-bottom:4px;}
.pw-drop b{font-size:17px;color:var(--text);}
.pw-drop span{font-size:14px;}
.pw-drop.small{grid-template-columns:auto auto;justify-content:center;align-items:center;column-gap:12px;padding:16px;}
.pw-drop.small svg{grid-row:span 2;margin:0;}
.pw-drop.small b{font-size:15.5px;}
.pw-drop.small span{display:none;}
.pw-photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;}
.pw-ph{position:relative;aspect-ratio:3/4;border-radius:var(--r-sm);background:#141824 center/cover;overflow:hidden;cursor:grab;}
.pw-ph.drag{opacity:.4;outline:2px dashed var(--accent-bright);}
.pw-cover{position:absolute;top:8px;left:8px;padding:3px 8px;border-radius:var(--r-xs);background:var(--accent);color:#fff;font-size:12px;font-weight:700;}
.pw-mk{position:absolute;top:8px;left:8px;min-height:28px;padding:0 9px;border:0;border-radius:var(--r-xs);background:rgba(8,11,20,.72);color:#fff;font:inherit;font-size:12.5px;font-weight:600;cursor:pointer;}
.pw-rm{position:absolute;top:6px;right:6px;display:grid;place-items:center;width:32px;height:32px;border:0;border-radius:var(--r-sm);background:rgba(8,11,20,.72);color:#fff;cursor:pointer;}
.pw-rm:hover{background:#c9303f;}
.pw-tags{position:absolute;left:6px;right:6px;bottom:6px;display:grid;grid-template-columns:1fr 1fr;gap:6px;}
.pw-tags button{display:flex;align-items:center;justify-content:center;gap:5px;min-height:32px;border:0;border-radius:var(--r-xs);
  background:rgba(8,11,20,.72);color:#fff;font:inherit;font-size:12.5px;font-weight:600;cursor:pointer;}
.pw-tags button.on{background:var(--hot,#ff6b4a);color:#fff;}
.pw-tags button.on:last-child{background:var(--accent);}
.pw-legend{display:grid;gap:4px;list-style:none;padding:0;font-size:14px;color:var(--dim);}
.pw-legend b{color:var(--text);}
/* descrizione */
.pw-ai{display:flex;align-items:center;gap:12px;flex-wrap:wrap;}
.pw-ai small{font-size:13.5px;color:var(--dim-2);}
.pw-more{border-top:1px solid var(--line);padding-top:16px;}
.pw-more summary{cursor:pointer;font-size:15px;font-weight:600;list-style:none;}
.pw-more summary::-webkit-details-marker{display:none;}
.pw-more summary::before{content:"+";display:inline-block;width:18px;color:var(--accent-bright);font-weight:700;}
.pw-more[open] summary::before{content:"−";}
.pw-more .pw-grid{margin-top:16px;}
/* prezzi */
.pw-prices{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;}
.pw-prices label{display:grid;gap:6px;font-size:14px;color:var(--dim);}
.pw-otp{display:grid;gap:10px;padding:14px;border:1px solid var(--line);border-radius:var(--r-sm);}
.pw-otp-row{display:flex;gap:8px;}
.pw-otp-row input{flex:1;}
.pw-otp-row .btn-line,.pw-otp-row .btn-accent{min-height:50px;white-space:nowrap;}
/* riepilogo */
.pw-recap{margin:0;}
.pw-recap>div{display:grid;grid-template-columns:130px minmax(0,1fr) auto;gap:12px;align-items:baseline;padding:13px 0;box-shadow:inset 0 -1px 0 var(--line);}
.pw-recap>div:first-child{box-shadow:inset 0 1px 0 var(--line),inset 0 -1px 0 var(--line);}
.pw-recap dt{font-size:14px;color:var(--dim);}
.pw-recap dd{margin:0;display:grid;font-size:15px;min-width:0;overflow-wrap:anywhere;}
.pw-recap dd small{font-size:13.5px;color:var(--dim-2);}
.pw-recap button{padding:4px 0;border:0;background:none;color:var(--accent-bright);font:inherit;font-size:14px;font-weight:600;cursor:pointer;}
.pw-consents{display:grid;gap:10px;}
.pw-consents label{display:grid;grid-template-columns:24px minmax(0,1fr);gap:12px;align-items:start;padding:14px;border:1px solid var(--border);
  border-radius:var(--r-sm);font-size:15px;line-height:1.45;cursor:pointer;transition:border-color .15s,background-color .15s;}
.pw-consents label:has(input:checked){border-color:var(--accent-bright);background:var(--sel);}
.pw-consents input{width:22px;height:22px;margin:0;accent-color:var(--accent-bright);}
.pw-consents a{color:var(--accent-bright);text-decoration:underline;text-underline-offset:2px;}
/* navigazione */
.pw-nav{display:flex;align-items:center;gap:10px;margin-top:32px;padding-top:20px;border-top:1px solid var(--line);}
.pw-sp{flex:1;}
.pw-nav .btn-accent,.pw-nav .btn-line{min-height:52px;padding:0 24px;font-size:16px;}
.pw-nav .btn-accent{min-width:180px;}
/* anteprima */
.pw-side{position:sticky;top:calc(var(--hd-h) + 24px);display:grid;gap:14px;}
.pw-side-h{font-size:14px;font-weight:600;color:var(--dim);}
.pw-card{pointer-events:none;}
.pw-card .ph{background:#141824 center/cover;display:grid;place-items:center;}
.pw-card-empty{color:var(--dim-2);}
.pw-tips{display:grid;gap:6px;list-style:none;padding:12px 0 0;border-top:1px solid var(--line);font-size:13.5px;color:var(--dim);}
.pw-tips li::before{content:"✓";margin-right:8px;color:var(--online-bright);font-weight:700;}
@media(max-width:1000px){.pw-layout{grid-template-columns:minmax(0,1fr);}.pw-side{display:none;}}
@media(max-width:640px){
  .pw{padding-top:18px;}
  .pw-steps .l{display:none;}
  .pw-grid,.pw-grid-3{grid-template-columns:minmax(0,1fr);}
  .pw-grid:has(.pw-f-s){grid-template-columns:minmax(0,1fr) 96px;}
  .pw-cats{grid-template-columns:repeat(2,minmax(0,1fr));}
  .pw-prices{grid-template-columns:repeat(2,minmax(0,1fr));}
  .pw-photos{grid-template-columns:repeat(2,minmax(0,1fr));}
  .pw-recap>div{grid-template-columns:minmax(0,1fr) auto;}
  .pw-recap dt{grid-column:1/-1;}
  .pw-otp-row{flex-direction:column;}
  .pw-nav{position:sticky;bottom:calc(60px + env(safe-area-inset-bottom,0px));z-index:20;margin-inline:-16px;padding:12px 16px;background:var(--bg);}
  .pw-sp{display:none;}
  .pw-nav .btn-accent{flex:1;min-width:0;}
}

/* ============================================================
   SCHEDA ESPERIENZA
   ============================================================ */
/* Le foto fanno l'atmosfera: testata con titolo a sinistra e mosaico a destra
   (foto intere, niente testo sopra le immagini: regge anche il tema chiaro). */
.xd{padding-bottom:72px;}
.xd-crumb{padding:20px 0 18px;}
.xd-owner{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:18px;padding:12px 14px;border-radius:var(--r-md);
  background:var(--sel);color:var(--sel-ink);font-size:14px;}
.xd-owner span{color:var(--text-soft);}
.xd-owner a{margin-left:auto;font-weight:700;color:var(--accent-bright);}

.xd-hero{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:48px;align-items:center;}
.xd-hero-tx{display:grid;gap:18px;align-content:center;min-width:0;}
.xd-kind{justify-self:start;font-size:13.5px;font-weight:700;color:var(--accent-bright);}
.xd-hero h1{font-size:clamp(2.1rem,1.3rem + 2.6vw,3.5rem);line-height:1.04;font-weight:800;letter-spacing:-.03em;text-wrap:balance;overflow-wrap:break-word;}
.xd-hook{font-size:clamp(1.05rem,.98rem + .3vw,1.22rem);line-height:1.55;color:var(--text-soft);max-width:44ch;text-wrap:pretty;}
.xd-facts{display:flex;flex-wrap:wrap;gap:14px 32px;padding:18px 0;margin-top:4px;box-shadow:inset 0 1px 0 var(--line),inset 0 -1px 0 var(--line);}
.xd-facts dt{font-size:12.5px;color:var(--dim-2);}
.xd-facts dd{margin:3px 0 0;font-size:15.5px;font-weight:700;font-variant-numeric:tabular-nums;}
.xd-hero-acts{display:flex;align-items:center;flex-wrap:wrap;gap:16px 24px;margin-top:4px;}
.xd-go{min-height:48px;padding:0 24px;font-size:15px;}
.xd-by{display:flex;align-items:center;gap:10px;color:inherit;}
.xd-by i{width:40px;height:40px;border-radius:50%;background:var(--tile) center/cover;flex:none;}
.xd-by span{display:grid;line-height:1.25;}
.xd-by small{font-size:12.5px;color:var(--dim-2);}
.xd-by b{display:inline-flex;align-items:center;gap:5px;font-size:15px;transition:color .15s;}
.xd-by:hover b{color:var(--accent-bright);}
.xd-vk{color:var(--accent-bright);}

/* mosaico: una foto alta + due in colonna */
.xd-mosaic{position:relative;display:grid;gap:8px;height:clamp(420px,calc(100vh - var(--hd-h) - 120px),640px);min-width:0;}
.xd-mosaic.n3{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);grid-template-rows:1fr 1fr;}
.xd-mosaic.n3 .xd-ph:first-child{grid-row:1 / span 2;}
.xd-mosaic.n2{grid-template-columns:minmax(0,1fr) minmax(0,1fr);}
.xd-ph{position:relative;display:block;width:100%;height:100%;padding:0;border:0;border-radius:var(--r-md);overflow:hidden;background:var(--tile);cursor:zoom-in;}
.xd-ph img{width:100%;height:100%;object-fit:cover;object-position:center 28%;transition:transform 1.2s cubic-bezier(.16,1,.3,1);}
.xd-ph:hover img{transform:scale(1.035);}
.xd-ph:focus-visible{outline:2px solid var(--accent-bright);outline-offset:2px;}
.xd-ph-none{cursor:default;background:linear-gradient(160deg,var(--surface-2),var(--tile));}
.xd-all{position:absolute;right:12px;bottom:12px;display:inline-flex;align-items:center;gap:7px;padding:8px 12px;border-radius:var(--r-control);
  background:rgba(8,11,20,.78);color:#fff;font-size:13.5px;font-weight:600;cursor:pointer;transition:background-color .15s;}
.xd-all:hover{background:rgba(8,11,20,.94);}
/* entrata morbida della testata: il contenuto parte già visibile, si sposta appena */
@keyframes xdIn{from{opacity:.001;transform:translateY(10px);}to{opacity:1;transform:none;}}
.xd-hero-tx>*{animation:xdIn .7s cubic-bezier(.16,1,.3,1) both;}
.xd-hero-tx>*:nth-child(2){animation-delay:.05s;}
.xd-hero-tx>*:nth-child(3){animation-delay:.1s;}
.xd-hero-tx>*:nth-child(n+4){animation-delay:.15s;}
.xd-mosaic .xd-ph{animation:xdIn .9s cubic-bezier(.16,1,.3,1) both;}
.xd-mosaic .xd-ph:nth-child(2){animation-delay:.08s;}
.xd-mosaic .xd-ph:nth-child(3){animation-delay:.16s;}

/* corpo: racconto a sinistra, richiesta fissa a destra */
.xd-body{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:72px;align-items:start;margin-top:64px;}
.xd-main{min-width:0;}
.xd-lead{font-size:clamp(1.15rem,1.05rem + .45vw,1.4rem);line-height:1.6;color:var(--text);max-width:60ch;text-wrap:pretty;}
.xd-tr{display:block;margin-top:10px;font-size:12.5px;color:var(--dim-2);}
.xd-sec{margin-top:56px;}
.xd-main>.xd-sec:first-child{margin-top:0;}
.xd-sec>h2{font-size:22px;line-height:1.2;font-weight:700;letter-spacing:-.01em;margin-bottom:22px;}
.xd-sec h3{font-size:16.5px;line-height:1.3;font-weight:700;}
.xd-sec p{font-size:15.5px;line-height:1.65;color:var(--text-2);}

.xd-moods{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:28px 32px;}
.xd-mood{display:grid;gap:8px;align-content:start;padding-top:16px;box-shadow:inset 0 1px 0 var(--border-strong);}

/* come si svolge: linea sottile con un punto per momento */
.xd-tl{position:relative;display:grid;gap:30px;padding-left:28px;}
.xd-tl::before{content:"";position:absolute;left:5px;top:8px;bottom:8px;width:1px;background:var(--border-strong);}
.xd-tl li{position:relative;display:grid;gap:5px;max-width:62ch;}
.xd-tl li::before{content:"";position:absolute;left:-28px;top:5px;width:11px;height:11px;border-radius:50%;background:var(--bg);box-shadow:inset 0 0 0 2px var(--accent-bright);}
.xd-when{font-size:13px;font-weight:700;color:var(--accent-bright);font-variant-numeric:tabular-nums;}
.xd-sec .xd-note{margin-top:22px;font-size:13.5px;color:var(--dim-2);}

.xd-strip{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;}
.xd-strip .xd-ph{aspect-ratio:3/4;height:auto;}

.xd-incl{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px 32px;}
.xd-incl li{display:flex;align-items:flex-start;gap:12px;font-size:15.5px;line-height:1.45;color:var(--text-soft);}
.xd-incl svg{flex:none;margin-top:1px;color:var(--online-bright);}

.xd-voices{display:grid;gap:32px;}
.xd-voices figure{margin:0;display:grid;gap:10px;max-width:56ch;}
.xd-voices blockquote{margin:0;font-size:clamp(1.15rem,1.05rem + .4vw,1.35rem);line-height:1.5;font-weight:500;color:var(--text);text-wrap:pretty;}
.xd-voices blockquote::before{content:"\201C";}
.xd-voices blockquote::after{content:"\201D";}
.xd-voices figcaption{font-size:14px;color:var(--dim);}
.xd-voices figcaption::before{content:"\2014\00a0";}

.xd-host{display:grid;grid-template-columns:132px minmax(0,1fr);gap:28px;align-items:start;padding-top:40px;box-shadow:inset 0 1px 0 var(--line);}
.xd-host-ph{aspect-ratio:3/4;border-radius:var(--r-md);background:var(--tile) center 25%/cover;}
.xd-host-tx{display:grid;gap:10px;}
.xd-host-tx h2{font-size:22px;line-height:1.2;font-weight:700;letter-spacing:-.01em;}
.xd-sec .xd-host-meta{font-size:14.5px;color:var(--dim);}
.xd-star{color:var(--gold-bright);font-weight:700;}
.xd-more{display:inline-flex;align-items:center;gap:6px;justify-self:start;margin-top:4px;font-weight:700;font-size:14.5px;color:var(--accent-bright);}
.xd-more:hover{color:var(--text);}

.xd-faq{display:grid;max-width:68ch;}
.xd-faq details{box-shadow:inset 0 -1px 0 var(--line);}
.xd-faq summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 0;cursor:pointer;list-style:none;font-size:16px;font-weight:600;}
.xd-faq summary::-webkit-details-marker{display:none;}
.xd-faq summary svg{flex:none;color:var(--dim-2);transition:transform .25s cubic-bezier(.16,1,.3,1);}
.xd-faq details[open] summary svg{transform:rotate(180deg);}
.xd-faq details p{padding:0 0 18px;max-width:62ch;}

/* pannello richiesta */
.xd-side{position:sticky;top:calc(var(--hd-h) + 20px);scroll-margin-top:calc(var(--hd-h) + 20px);min-width:0;}
.xd-req{gap:16px;padding:22px;}
.xd-price{display:grid;gap:2px;padding-bottom:16px;box-shadow:inset 0 -1px 0 var(--line);}
.xd-price small{font-size:13px;color:var(--dim-2);}
.xd-price b{font-size:28px;line-height:1.15;font-weight:800;letter-spacing:-.02em;font-variant-numeric:tabular-nums;}
.xd-price span{font-size:14px;color:var(--dim);}
.xd-form{display:grid;gap:12px;}
.xd-form label{display:grid;gap:6px;min-width:0;}
.xd-form label>span{font-size:13px;font-weight:600;color:var(--dim);}
.xd-form input,.xd-form textarea{width:100%;min-height:44px;padding:10px 12px;border:1px solid var(--border-strong);border-radius:var(--r-control);
  background:var(--surface);color:var(--text);font:inherit;font-size:15px;transition:border-color .15s,box-shadow .15s;}
.xd-form textarea{min-height:88px;resize:vertical;line-height:1.5;}
.xd-form input::placeholder,.xd-form textarea::placeholder{color:var(--faint);}
.xd-form input:focus,.xd-form textarea:focus{outline:none;border-color:var(--accent-bright);box-shadow:0 0 0 3px rgba(var(--accent-rgb),.16);}
.xd-2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;}
.xd-form .btn-lg{margin-top:4px;}
.xd-safe{display:flex;gap:9px;align-items:flex-start;font-size:13px;line-height:1.5;color:var(--dim);}
.xd-safe svg{flex:none;margin-top:1px;color:var(--dim-2);}
.xd-rel{margin-top:80px;}

/* barra fissa su telefono */
.xd-bar{display:none;}

@media(max-width:1080px){
  .xd-hero{grid-template-columns:minmax(0,1fr);gap:28px;}
  .xd-mosaic{order:-1;height:clamp(360px,62vw,560px);}
  .xd-body{grid-template-columns:minmax(0,1fr) 320px;gap:40px;}
}
@media(max-width:860px){
  .xd-body{grid-template-columns:minmax(0,1fr);margin-top:44px;}
  .xd-side{position:static;margin-top:48px;}
}
@media(max-width:640px){
  .xd{padding-bottom:96px;}
  .xd-crumb{padding:14px 0 12px;}
  /* foto a tutta larghezza, scorrevoli col dito */
  .xd-mosaic,.xd-mosaic.n2,.xd-mosaic.n3{display:flex;gap:6px;height:auto;margin:0 -16px;padding:0 16px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;}
  .xd-mosaic::-webkit-scrollbar{display:none;}
  .xd-mosaic .xd-ph{flex:0 0 86%;aspect-ratio:4/5;height:auto;scroll-snap-align:center;}
  .xd-mosaic.n1 .xd-ph{flex-basis:100%;}
  .xd-all{display:none;}
  .xd-hero-acts .xd-go{display:none;}
  .xd-facts{gap:12px 24px;}
  .xd-sec{margin-top:44px;}
  .xd-host{grid-template-columns:88px minmax(0,1fr);gap:18px;}
  .xd-req{padding:0;border:0;background:none;}
  .xd-rel{margin-top:56px;}
  .xd-bar{position:fixed;left:0;right:0;bottom:0;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:12px;
    padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:var(--surface-solid);box-shadow:0 -1px 0 var(--border);}
  .xd-bar div{display:grid;line-height:1.2;min-width:0;}
  .xd-bar small{font-size:12.5px;color:var(--dim-2);}
  .xd-bar b{font-size:16px;font-weight:800;}
  .xd-bar .btn-accent{min-height:44px;padding:0 22px;}
}
@media(prefers-reduced-motion:reduce){
  .xd-hero-tx>*,.xd-mosaic .xd-ph{animation:none;}
  .xd-ph img{transition:none;}
}

/* ---------- SCHEDA PROFILO: tour, esperienze, rimandi nel pannello ---------- */
.ptours{display:grid;}
.ptour{display:grid;grid-template-columns:52px minmax(0,1fr) auto;align-items:center;gap:16px;padding:14px 0;box-shadow:inset 0 -1px 0 var(--line);}
.ptour:first-child{padding-top:4px;}
.ptour-d{display:grid;justify-items:center;line-height:1;padding:8px 0;border-radius:var(--r-sm);background:var(--surface-2);}
.ptour-d b{font-size:20px;font-weight:800;font-variant-numeric:tabular-nums;}
.ptour-d small{margin-top:3px;font-size:11.5px;font-weight:600;color:var(--dim);text-transform:capitalize;}
.ptour-tx{display:grid;gap:3px;min-width:0;}
.ptour-tx a{font-size:16px;font-weight:700;color:var(--text);}
.ptour-tx a:hover{color:var(--accent-bright);}
.ptour-tx small{font-size:13.5px;color:var(--dim);}
.ptour-st{font-size:12.5px;font-weight:700;color:var(--dim);white-space:nowrap;}
.ptour.active .ptour-st{color:var(--online-bright);}
.ptour.active .ptour-d{background:rgba(63,191,98,.14);}
.ptour.upcoming .ptour-st{color:var(--gold-bright);}
.pexps{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:32px 20px;}
.pnext{gap:2px;padding:8px 16px;}
.pnext-row{display:flex;align-items:center;gap:10px;padding:9px 0;font-size:14px;color:var(--dim);}
.pnext-row+.pnext-row{box-shadow:inset 0 1px 0 var(--line);}
.pnext-row svg{flex:none;color:var(--dim-2);}
.pnext-row b{color:var(--text);font-weight:700;}
.pnext-row em{font-style:normal;font-weight:700;}
.pnext-row em.on{color:var(--online-bright);}
.pnext-row:hover b{color:var(--accent-bright);}
@media(max-width:640px){.ptour{grid-template-columns:46px minmax(0,1fr);}.ptour-st{grid-column:2;margin-top:-8px;}}
/* su telefono la barra «Richiedi» prende il posto della barra delle scorciatoie */
@media(max-width:640px){body:has(.xd-bar) .tabbar{display:none;}}

/* ---------- COMPOSITORE ESPERIENZA (area personale) ----------
   Riusa i campi del wizard (.pw-*): sei blocchi nell'ordine della pagina
   pubblica, anteprima della card e cosa manca a destra. */
.pw.xc{padding:0;}
.xc-layout{grid-template-columns:minmax(0,680px) 300px;}
@media(max-width:1000px){.xc-layout{grid-template-columns:minmax(0,1fr);}}
.xc-main{display:grid;gap:0;}
.xc-blk{display:grid;gap:22px;padding:32px 0;scroll-margin-top:calc(var(--hd-h) + 16px);box-shadow:inset 0 -1px 0 var(--line);}
.xc-blk:first-child{padding-top:4px;}
.xc-blk>h2{display:flex;align-items:center;gap:12px;font-size:21px;font-weight:700;letter-spacing:-.01em;}
.xc-blk>.pw-intro{margin-top:-10px;}
.xc-n{display:grid;place-items:center;flex:none;width:28px;height:28px;border-radius:50%;background:var(--sel);color:var(--sel-ink);font-size:14px;font-weight:700;font-variant-numeric:tabular-nums;}

/* copertina: l'area stessa è il pulsante */
.xc-cover{position:relative;display:grid;place-items:center;aspect-ratio:16/9;max-width:520px;border:1px dashed var(--border-strong);border-radius:var(--r-md);
  background:var(--surface) center/cover;cursor:pointer;overflow:hidden;transition:border-color .15s;}
.xc-cover:hover{border-color:var(--accent-bright);}
.xc-cover.fb{box-shadow:inset 0 0 0 999px rgba(8,11,20,.6);}   /* foto dell'annuncio di ripiego, non ancora scelta */
.xc-cover-b{display:inline-flex;align-items:center;gap:8px;padding:9px 14px;border-radius:var(--r-control);background:rgba(8,11,20,.78);color:#fff;font-size:14px;font-weight:600;}
.pw-ph.xc-del{opacity:.4;}
.xc-del-l{position:absolute;left:8px;bottom:8px;padding:3px 8px;border-radius:var(--r-xs);background:#c9303f;color:#fff;font-size:12px;font-weight:700;}

/* AI: riquadro tenue, separato dai campi che riempie */
.xc-ai{display:grid;gap:12px;padding:16px;border-radius:var(--r-md);background:var(--surface);}
.pw .xc-ai textarea{min-height:72px;}
.xc-ai .pw-ai .btn-line{min-height:42px;}
.xc-ai .pw-ai .btn-line:disabled{opacity:.6;cursor:progress;}

/* blocchi ripetibili: campi a sinistra, sposta/rimuovi a destra */
.xc-rows{display:grid;gap:10px;list-style:none;padding:0;margin:0;}
.xc-rows:empty{display:none;}
.xc-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:start;padding:12px;border:1px solid var(--line);border-radius:var(--r-md);}
.xc-row-f{display:grid;gap:8px;min-width:0;}
.pw .xc-row input[type=text]{min-height:44px;font-size:15px;}
.pw .xc-row input[type=text]:first-child{font-weight:600;}
.pw .xc-row textarea{min-height:68px;font-size:15px;}
.xc-row-a{display:grid;gap:4px;}
.xc-row-a button{display:grid;place-items:center;width:34px;height:34px;padding:0;border:0;border-radius:var(--r-sm);background:none;color:var(--dim);cursor:pointer;transition:color .15s,background-color .15s;}
.xc-row-a button:hover:not(:disabled){background:var(--surface-2);color:var(--text);}
.xc-row-a button.rm:hover{color:#ff6f7d;}
.xc-row-a button:disabled{opacity:.3;cursor:default;}
.xc-2{display:grid;grid-template-columns:minmax(0,180px) minmax(0,1fr);gap:8px;}
.pw .xc-2 input[type=text]:first-child{color:var(--accent-bright);}

/* città e «cosa include»: etichette rimovibili */
.xc-cities{display:grid;gap:10px;margin-top:4px;}
.xc-tags{display:flex;flex-wrap:wrap;gap:6px;}
.xc-tag{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 4px 0 12px;border-radius:var(--r-sm);background:var(--surface-2);font-size:14.5px;color:var(--text-soft);}
.xc-tag>svg{color:var(--online-bright);margin-left:-2px;}
.xc-tag button{display:grid;place-items:center;width:28px;height:28px;padding:0;border:0;border-radius:var(--r-xs);background:none;color:var(--dim);cursor:pointer;}
.xc-tag button:hover{color:var(--text);background:var(--surface-2);}
.xc-sugg{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:30;max-height:280px;overflow-y:auto;padding:4px;list-style:none;margin:0;
  border:1px solid var(--border-strong);border-radius:var(--r-md);background:var(--surface-solid);box-shadow:var(--shadow);}
.xc-sugg button{display:block;width:100%;padding:10px 12px;border:0;border-radius:var(--r-sm);background:none;color:var(--text);font:inherit;font-size:15px;text-align:left;cursor:pointer;}
.xc-sugg button:hover{background:var(--sel);color:var(--sel-ink);}
.xc-add{display:flex;gap:8px;}
.xc-add input{flex:1;min-width:0;}
.xc-add .btn-line{min-height:50px;padding:0 18px;}
.xc-eur{display:flex;align-items:center;gap:10px;max-width:220px;}
.xc-eur span{font-size:17px;font-weight:700;color:var(--dim);}

.xc-nav{border-top:0;margin-top:8px;flex-wrap:wrap;}
.xc-nav .pw-help{flex:1;min-width:180px;}

/* anteprima + cosa manca */
.xc-side{gap:16px;}
.xc-prev .xpc-ph{background-color:var(--tile);}
.xc-prev .xpc-h{min-height:2.9em;}
.xc-check{display:grid;list-style:none;padding:12px 0 0;margin:0;box-shadow:inset 0 1px 0 var(--line);}
.xc-check a{display:flex;align-items:center;gap:10px;padding:6px 0;font-size:14px;color:var(--dim);}
.xc-check a:hover{color:var(--text);}
.xc-check svg{flex:none;color:var(--dim-2);}
.xc-check li.ok a{color:var(--text-2);}
.xc-check li.ok svg{color:var(--online-bright);}
@media(max-width:640px){
  .xc-2{grid-template-columns:minmax(0,1fr);}
  .xc-row{padding:10px;}
  .xc-add .btn-line{padding:0 14px;}
  .xc-nav{bottom:calc(60px + env(safe-area-inset-bottom,0px));}
}
