/* ============================================================
   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: Archivo (UI) + IBM Plex Mono (mono/etichette).
   Palette: dark blu-inchiostro, accent #5aa9ff, striscia rainbow.
   ============================================================ */

: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:999px;   /* bottoni, campi, selettori: la pillola */
  --r-lg:24px;         /* pannelli grandi */
  --r-md:18px;         /* card, media, contenitori */
  --r-sm:12px;         /* chip, celle, elementi minori */
  --r-xs:6px;          /* dettagli minuti */
  --shadow:0 30px 70px -20px rgba(0,0,0,0.72);
  --font:"Archivo",system-ui,sans-serif;
  --mono:"IBM Plex Mono",monospace;
  --maxw:1320px;
}

/* ---------- 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);
}
: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. */
:root[data-theme="light"] body{
  background:
    radial-gradient(900px 420px at 50% -6%, rgba(var(--accent-rgb),0.10), transparent 70%),
    radial-gradient(48% 38% at 6% 0%, rgba(107,63,176,0.06), transparent 58%),
    linear-gradient(180deg,var(--bg2),var(--bg) 23%,var(--bg3));
}
/* barra 18+, navbar e footer: fondi semitrasparenti nati scuri */
:root[data-theme="light"] .agestrip{background:rgba(232,237,247,.92);}
:root[data-theme="light"] nav{background:rgba(244,246,251,.86);border-bottom-color:var(--border);}
:root[data-theme="light"] .navcats{border-top-color:var(--border);}
:root[data-theme="light"] footer{background:var(--bg2);}
: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"] .citysel-search,
: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);}
/* Il logotipo è bianco: su fondo chiaro sparirebbe. Due file, non un filtro:
   invert() ribalterebbe anche il blu e il rosso del marchio. */
/* `.brand .logo{display:block}` piu' avanti nel foglio ha specificita' 0-2-0 e
   vinceva su `.logo-light{display:none}`: si vedevano entrambi i logotipi. */
.brand .logo.logo-light{display:none;}
:root[data-theme="light"] .brand .logo.logo-dark{display:none;}
:root[data-theme="light"] .brand .logo.logo-light{display:block;}
/* la striscia rainbow su bianco è troppo squillante */
:root[data-theme="light"] .rainbow{opacity:.85;}
/* --- 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"] .card .meta .nm b{color:#fff;}
:root[data-theme="light"] .card .meta .nm span,
:root[data-theme="light"] .card .meta .zo{color:rgba(255,255,255,.82);}
:root[data-theme="light"] .card .meta .zo svg{stroke:#8ec4ff;}
: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);}
/* fascia «In primo piano»: l'azzurro pallido su bianco non si legge */
:root[data-theme="light"] .spotlight{background:linear-gradient(180deg,rgba(22,104,201,.07),rgba(22,104,201,.02));
  border-color:rgba(22,104,201,.24);}
:root[data-theme="light"] .spot-head{color:#0f4f96;}
:root[data-theme="light"] .spot-head .spot-ic{color:#1668c9;}
/* 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"] .card .top .minib:not([class*="tier-"]):not(.boostb):not(.hotrankb),
: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;}
/* «Hot or Not» in navbar: l'arancione acceso su bianco fa 2,7:1 */
:root[data-theme="light"] .navhot{color:var(--hot)!important;}
/* 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 */
:root[data-theme="light"] .hotcta-btn{color:#fff;background:linear-gradient(135deg,#d1421a,#b93a15);
  box-shadow:0 8px 22px -10px rgba(185,58,21,.5);}
/* 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:
    radial-gradient(900px 420px at 50% -6%, rgba(var(--accent-rgb),0.15), transparent 70%),
    radial-gradient(48% 38% at 6% 0%, rgba(134,89,196,0.08), transparent 58%),
    linear-gradient(180deg,var(--bg2),var(--bg) 23%,var(--bg3));
  color:var(--text); font-family:var(--font); font-size:16px; -webkit-font-smoothing:antialiased;
}
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 44px;}
.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)}}

/* ---------- STRISCIA RAINBOW (firma del brand: top pagina + footer) ---------- */
.rainbow{height:3px;background:var(--rainbow);opacity:.55;}
.rainbow-bar{height:3px;width:110px;border-radius:var(--r-xs);background:var(--rainbow);opacity:.6;}

/* ---------- BUTTON ---------- */
.btn-accent{display:inline-flex;align-items:center;justify-content:center;gap:9px;font-weight:700;font-size:14.5px;line-height:1;letter-spacing:-.01em;color:var(--accent-ink);
  padding:13px 22px;border-radius:var(--r-control);background:linear-gradient(135deg,var(--accent-bright),var(--accent));
  box-shadow:0 16px 40px -12px var(--accent-glow);transition:transform .12s,box-shadow .2s;}
.btn-accent:hover{transform:translateY(-2px);box-shadow:0 22px 52px -12px var(--accent-glow);}
.btn-accent:active{transform:translateY(0) scale(.98);}

/* ---------- 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;}

/* ---------- 18+ STRIP ---------- */
.agestrip{background:#000;border-bottom:1px solid rgba(255,255,255,0.06);}
.agestrip .in{display:flex;align-items:center;justify-content:space-between;height:40px;font-size:12.5px;color:var(--faint);}
.agestrip .l{display:flex;align-items:center;gap:10px;}
.chip18{border:1px solid var(--accent-glow);color:var(--accent-bright);border-radius:var(--r-xs);padding:2px 8px;font-weight:800;font-size:10.5px;}
.agestrip .r{display:flex;align-items:center;gap:18px;}
.agestrip .r a{color:var(--dim);font-weight:600;}
.agestrip .r a:hover{color:var(--text);}
.langsel{display:flex;align-items:center;gap:2px;}
/* link e non più button: ogni lingua è un URL vero, che Google può seguire */
.langsel a{color:var(--faint);font-weight:700;font-size:11.5px;padding:2px 5px;border-radius:var(--r-xs);letter-spacing:.3px;}
.langsel a:hover{color:var(--text);}
.langsel a.on{color:var(--text);background:var(--surface-2);}

/* ---------- NAV ---------- */
nav{position:sticky;top:0;z-index:50;backdrop-filter:blur(16px);
  padding-top:env(safe-area-inset-top);   /* in PWA standalone: non finire sotto la status bar */
  background:linear-gradient(180deg,rgba(11,11,15,0.92),rgba(11,11,15,0.6));
  border-bottom:1px solid rgba(255,255,255,0.06);}
[x-cloak]{display:none!important;}
/* 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,.7);max-width:520px;margin:0 auto;}
.pwabanner[hidden]{display:none;}
.pwabanner-ic{font-size:26px;flex-shrink:0;}
.pwabanner-tx{flex:1;min-width:0;line-height:1.25;}
.pwabanner-tx b{display:block;font-size:14.5px;font-weight:700;}
.pwabanner-sub{font-size:12px;color:var(--dim);}
.pwabanner-btn{flex-shrink:0;padding:9px 16px;border-radius:var(--r-control);border:none;font:inherit;font-weight:800;font-size:13.5px;
  color:var(--accent-ink);background:linear-gradient(135deg,var(--accent-bright),var(--accent));cursor:pointer;}
.pwabanner-x{flex-shrink:0;width:30px;height:30px;border-radius:var(--r-sm);border:1px solid var(--border);background:var(--surface-2);
  color:var(--dim);font-size:13px;cursor:pointer;}
@media(min-width:680px){.pwabanner{left:auto;right:18px;width:420px;}}
/* ---- NAVBAR (2 righe: utility + categorie) -------------------------------- */
.nav-in{display:flex;align-items:center;gap:18px;height:68px;}
/* Logotipo: immagine unica, non più quadrato + testo. Il PNG è trasparente e ha
   il testo bianco, quindi funziona solo su fondo scuro (vedi wallet_receipt.html). */
.brand{display:flex;align-items:center;flex-shrink:0;}
.brand .logo{display:block;height:44px;width:auto;}
@media(max-width:900px){.brand .logo{height:36px;}}
@media(max-width:420px){.brand .logo{height:32px;}}

/* ricerca digitabile (cresce per riempire lo spazio centrale) */
/* Cappata: a tutta larghezza la ricerca si prendeva 765px su 1320 e la riga
   sembrava una barra di ricerca con un sito intorno. Con il solo max-width lo
   spazio avanzato si apriva tutto fra ricerca e selettore città, come un buco;
   con i margini automatici la ricerca si centra e i vuoti diventano simmetrici. */
.navsearch{position:relative;flex:1 1 auto;min-width:0;max-width:620px;margin:0 auto;}
.navsearch form{display:flex;align-items:center;gap:10px;height:44px;padding:0 16px;border-radius:var(--r-control);background:var(--surface);border:1px solid var(--border);transition:border-color .15s;}
.navsearch form:focus-within{border-color:var(--border-strong);}
.navsearch .svgi{color:var(--faint);flex-shrink:0;}
.navsearch input{flex:1;min-width:0;background:none;border:none;outline:none;color:var(--text);font:inherit;font-size:14.5px;}
/* Su desktop la ricerca è già inline (riga 1): icona-toggle e barra-mobile nascoste. */
.nav-search-toggle{display:none;}
.navsearch-m{display:none;}
.acbox{position:absolute;top:54px;left:0;right:0;background:var(--surface-solid);border:1px solid var(--border);border-radius:var(--r-sm);
  box-shadow:0 24px 60px -20px rgba(0,0,0,.75);padding:6px;z-index:60;max-height:60vh;overflow-y:auto;}
.acit{display:flex;align-items:center;gap:10px;padding:9px 11px;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:11.5px;color:var(--faint);}
.acico{display:grid;place-items:center;width:30px;height:30px;border-radius:var(--r-sm);background:var(--surface);
  border:1px solid var(--border);color:var(--dim);flex-shrink:0;}
.acit.t-profile .acico{color:var(--accent-bright);}
.acit.t-phone .acico{color:#34d399;}
.acit.t-city .acico{color:#60a5fa;}
.acit.t-zone .acico{color:#fbbf24;}

/* selettore città */
.citysel{position:relative;flex-shrink:0;}
.citysel-btn{display:inline-flex;align-items:center;gap:8px;height:44px;padding:0 16px;border-radius:var(--r-control);background:var(--surface);
  border:1px solid var(--border);font-size:14.5px;font-weight:600;color:var(--text);cursor:pointer;white-space:nowrap;transition:border-color .15s;}
.citysel-btn:hover{border-color:var(--border-strong);}
.citysel-pop{position:absolute;top:54px;right:0;width:280px;background:var(--surface-solid);border:1px solid var(--border);
  border-radius:var(--r-sm);box-shadow:0 24px 60px -20px rgba(0,0,0,.75);padding:10px;z-index:60;}
.citysel-geo{display:flex;align-items:center;justify-content:center;gap:9px;width:100%;padding:11px 12px;border-radius:var(--r-sm);
  background:linear-gradient(135deg,var(--accent-bright),var(--accent));color:var(--accent-ink);font-weight:700;font-size:13.5px;border:none;cursor:pointer;transition:.15s;}
.citysel-geo:hover{filter:brightness(1.06);} .citysel-geo:disabled{opacity:.6;cursor:default;}
.citysel-search{width:100%;margin:9px 0;padding:9px 12px;border-radius:var(--r-sm);background:var(--surface);border:1px solid var(--border);color:var(--text);font:inherit;font-size:13.5px;outline:none;}
.citysel-list{max-height:300px;overflow-y:auto;display:flex;flex-direction:column;}
.citysel-list a{display:block;padding:9px 12px;border-radius:var(--r-sm);color:var(--dim);font-size:14px;}
.citysel-list a:hover{background:var(--surface);color:var(--text);}
.citysel-list a.on{color:var(--accent-bright);font-weight:700;}
.citysel-list .citysel-all{color:var(--accent-bright);font-weight:600;border-top:1px solid var(--border);margin-top:4px;padding-top:11px;}
.citysel-empty{padding:14px 12px;font-size:13px;color:var(--faint);text-align:center;}

.nav-cta{flex-shrink:0;height:44px;padding:0 20px;box-shadow:0 10px 26px -12px var(--accent-glow);}

/* interruttore del tema in navbar: mostra l'icona di DOVE si va, non di dove si è */
.themetoggle{flex:none;display:grid;place-items:center;width:44px;height:44px;
  border-radius:50%;border:1px solid var(--border);background:var(--surface);
  color:var(--dim);cursor:pointer;transition:.15s;}
.themetoggle:hover{border-color:var(--border-strong);color:var(--text);}
.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;}
/* nel drawer l'interruttore è a due opzioni etichettate */
.nd-theme{display:flex;gap:8px;margin-top:10px;}
.nd-theme button{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:7px;
  padding:10px 0;border-radius:var(--r-sm);border:1px solid var(--border);background:var(--surface);
  color:var(--dim);font-family:inherit;font-weight:700;font-size:13px;line-height:1;cursor:pointer;}
.nd-theme button:hover{border-color:var(--border-strong);color:var(--text);}
.nd-theme button.on{background:var(--accent-bright);border-color:var(--accent-bright);color:var(--accent-ink);}


/* riga 2: categorie */
.navcats{border-top:1px solid rgba(255,255,255,.05);}
.navcats .nav-cats{display:flex;align-items:center;gap:30px;height:46px;}
.nav-cats a{font-size:13.5px;line-height:1;font-weight:500;letter-spacing:-.01em;color:var(--dim-2);white-space:nowrap;transition:color .15s;}
.nav-cats a.on{color:var(--accent-bright);}
.nav-cats a:hover{color:var(--text);font-weight:500;}
.nav-cats a.on{font-weight:600;}

/* hamburger (solo mobile) */
.nav-burger{display:none;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;
  border:1px solid var(--border);background:var(--surface);color:var(--text);flex-shrink:0;cursor:pointer;}

/* drawer mobile */
.navdrawer-backdrop{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: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(.4,0,.2,1);
  overflow-y:auto;padding:16px 16px 40px;display:flex;flex-direction:column;}
.navdrawer.open{transform:translateX(0);}
.navdrawer-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;}
.navdrawer-head .brand{font-size:18px;}
.navdrawer-close{display:grid;place-items:center;width:38px;height:38px;border-radius:var(--r-sm);border:1px solid var(--border);background:var(--surface);color:var(--dim);}
.nd-search{display:flex;align-items:center;gap:9px;height:44px;padding:0 14px;border-radius:var(--r-sm);background:var(--surface);border:1px solid var(--border);color:var(--faint);margin:6px 0;}
.nd-search input{flex:1;min-width:0;background:none;border:none;outline:none;color:var(--text);font:inherit;}
.nd-geo{margin:6px 0 4px;}
.nd-sect{font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:var(--faint);font-weight:700;margin:16px 0 4px;}
.nd-link{display:block;padding:11px 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,.nd-link.nd-xp{font-size:15px;}
.nd-xp{color:var(--accent-bright);}
.nd-cta{width:100%;margin-top:12px;padding:13px;justify-content:center;}
/* link e non più button: ogni lingua ha un URL proprio */
.nd-lang{display:flex;gap:8px;margin-top:6px;}
.nd-lang a{flex:1;padding:10px 0;text-align:center;border-radius:var(--r-sm);border:1px solid var(--border);
  background:var(--surface);color:var(--dim);font-weight:700;font-size:13px;}
.nd-lang a:hover{border-color:var(--border-strong);color:var(--text);}
.nd-lang a.on{background:var(--accent-bright);border-color:var(--accent-bright);color:var(--accent-ink);}

/* ---------- SECTION HEAD ---------- */
.sechead{display:flex;align-items:flex-end;justify-content:space-between;margin:52px 0 22px;}
.sechead h2{font-size:27px;line-height:1;font-weight:800;letter-spacing:-.025em;margin:0;}
.sechead .sub{font-size:12.5px;line-height:1.4;color:var(--faint);font-weight:500;margin-top:8px;}
.sechead a{display:inline-flex;align-items:center;gap:7px;font-weight:600;font-size:12.5px;line-height:1;color:var(--accent-bright);}

/* ============================================================
   HOME
   ============================================================ */

/* ---------- SEARCH BAND (hero alternativa) ---------- */
.searchband{text-align:center;padding-top:40px;padding-bottom:14px;display:flex;flex-direction:column;align-items:center;}
.online-pill{display:inline-flex;align-items:center;gap:13px;padding:9px 18px 9px 9px;border-radius:var(--r-control);
  background:var(--tile);border:1px solid var(--border);font-size:12.5px;line-height:1;font-weight:500;color:var(--dim-2);}
.avstack{display:flex;}
.avstack span{flex:none;width:28px;height:28px;border-radius:50%;border:2px solid var(--bg);margin-right:-10px;background-size:cover;}
.online-pill b{color:var(--text);}
.searchband h1{font-size:60px;line-height:1.02;letter-spacing:-.035em;font-weight:800;margin:24px 0 0;max-width:820px;text-wrap:balance;}
/* Blu pieno: il gradiente su testo sfuma il tratto e sporca il colore. */
.searchband h1 .ac{color:var(--accent-bright);}
.searchband .lead{font-size:16.5px;line-height:1.55;color:var(--dim);max-width:560px;margin:20px 0 0;text-wrap:pretty;}
/* Stessa pillola del pulsante «Inserisci annuncio»: sono controlli della stessa
   famiglia e devono leggersi come tali. */
.searchbar{display:flex;align-items:center;gap:8px;margin-top:18px;padding:7px;border-radius:var(--r-control);width:100%;max-width:560px;
  background:var(--surface-solid);border:1px solid var(--border-strong);box-shadow:var(--shadow);}
.sb-field{display:flex;align-items:center;gap:9px;padding:11px 14px;color:var(--text);font-size:14px;line-height:1;font-weight:600;white-space:nowrap;}
.sb-field.grow{flex:1;color:var(--faint);font-weight:500;justify-content:flex-start;}
/* autocomplete ricerca */
.searchwrap{position:relative;width:100%;max-width:560px;}
.ac-panel{position:absolute;top:calc(100% + 8px);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:11px 12px;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:12px;color:var(--faint);}
.ac-ic{width:30px;height:30px;border-radius:var(--r-sm);flex-shrink:0;background:var(--surface-2);border:1px solid var(--border);
  position:relative;}
.ac-ic::after{content:"";position:absolute;inset:0;background:center/16px no-repeat;}
.ac-profile{color:var(--accent-bright);}
.ac-ic.ac-profile::after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%23ff4d8d' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='8' cy='5.5' r='2.6'/%3E%3Cpath d='M3 14c0-2.5 2.2-4 5-4s5 1.5 5 4'/%3E%3C/svg%3E");}
.ac-ic.ac-city::after,.ac-ic.ac-zone::after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%23ff4d8d' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 14s5-4.3 5-7.3A5 5 0 1 0 3 6.7C3 9.7 8 14 8 14z'/%3E%3Ccircle cx='8' cy='6.5' r='1.6'/%3E%3C/svg%3E");}
.ac-ic.ac-phone::after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%2336d57d' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 11.3v2a1.3 1.3 0 0 1-1.5 1.3A13 13 0 0 1 1.4 3.5 1.3 1.3 0 0 1 2.7 2h2a1.3 1.3 0 0 1 1.3 1.1c.1.7.3 1.3.5 1.9a1.3 1.3 0 0 1-.3 1.4l-.9.8a10.5 10.5 0 0 0 4 4l.8-.9a1.3 1.3 0 0 1 1.4-.3c.6.2 1.2.4 1.9.5a1.3 1.3 0 0 1 1.1 1.3z'/%3E%3C/svg%3E");}
.sb-div{width:1px;height:28px;background:var(--border);}
.searchbar .btn-accent{padding:0 22px;height:40px;}
.microcopy{display:flex;gap:22px;justify-content:center;color:var(--faint);font-size:12.5px;line-height:1;margin-top:20px;flex-wrap:wrap;}
.microcopy span{display:flex;align-items:center;gap:7px;}
.microcopy .pt{color:var(--accent-bright);font-weight:800;}
/* prompt geolocalizzazione home */
.geoprompt{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:14px;flex-wrap:wrap;}
.geoprompt .geo-loc{display:inline-flex;align-items:center;gap:6px;font-size:13.5px;color:var(--dim);}
.geoprompt .geo-loc b{color:var(--text);}
.geoprompt .geo-link{background:none;border:none;color:var(--accent-bright);font:inherit;font-size:13px;font-weight:600;cursor:pointer;text-decoration:underline;}
.geoprompt .geo-cta{display:inline-flex;align-items:center;gap:8px;padding:9px 16px;border-radius:var(--r-control);border:1px solid var(--border);
  background:var(--surface);color:var(--text);font:inherit;font-size:13.5px;font-weight:600;cursor:pointer;transition:.15s;}
.geoprompt .geo-cta:hover{border-color:var(--accent-bright);color:var(--accent-bright);}

/* ---------- STORIES ---------- */
.storiesband{margin-top:26px;border:1px solid var(--border);border-radius:var(--r-md);
  background:linear-gradient(180deg,var(--surface-2),var(--surface));padding:16px 22px 18px;backdrop-filter:blur(8px);}
.storiesband .sb-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;}
.storiesband .lbl{display:flex;align-items:center;gap:11px;font-weight:700;font-size:15.5px;}
.storiesband .live-tag{display:inline-flex;align-items:center;gap:7px;padding:4px 10px;border-radius:var(--r-control);
  background:rgba(var(--accent-rgb),0.12);border:1px solid var(--accent-glow);color:var(--accent-bright);font-size:12px;font-weight:700;}
.storiesband .sb-head a{display:inline-flex;align-items:center;gap:6px;font-weight:700;font-size:13.5px;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:linear-gradient(140deg,var(--accent-bright),var(--accent) 60%,var(--violet));}
.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:1.5px 7px;border-radius:var(--r-control);
  background:linear-gradient(135deg,var(--accent-bright),var(--accent));color:var(--accent-ink);font-size:8.5px;font-weight:800;letter-spacing:.5px;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{transform:translateY(-3px);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;}
.xphero{margin:6px 0 20px;}
.xphero h1{font-size:30px;font-weight:800;letter-spacing:-1px;margin:0 0 6px;}
.xphero p{color:var(--dim);max-width:640px;font-size:14.5px;line-height:1.5;margin:0;}
/* barra filtri esperienze: righe etichettate, chip a scorrimento orizzontale (mobile-friendly) */
.xpfilterbar{display:flex;flex-direction:column;gap:10px;margin-bottom:22px;}
.xpfilter-row{display:flex;align-items:center;gap:14px;min-width:0;}
.xpfilter-lbl{flex:0 0 auto;width:44px;font-size:11px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;color:var(--faint);}
.xpchips{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;padding:2px 2px;
  -webkit-overflow-scrolling:touch;scroll-snap-type:x proximity;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 14px,#000 calc(100% - 14px),transparent);
  mask-image:linear-gradient(90deg,transparent,#000 14px,#000 calc(100% - 14px),transparent);}
.xpchips::-webkit-scrollbar{display:none;}
.xpchip{flex:0 0 auto;scroll-snap-align:start;white-space:nowrap;display:inline-flex;align-items:center;gap:5px;
  padding:8px 15px;border-radius:var(--r-control);border:1px solid var(--border);background:var(--surface);
  font-size:13px;font-weight:600;color:var(--dim);transition:.15s;}
.xpchip:hover{border-color:var(--border-strong);color:var(--text);}
.xpchip.on{border-color:var(--accent-glow);color:var(--accent-bright);background:rgba(var(--accent-rgb),.1);}
/* ---- CARD ESPERIENZA (premium, editoriale verticale, accento oro) -------- */
.xpgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(248px,1fr));gap:20px;}
/* carosello esperienze (home): scroll orizzontale, non ruba altezza alle card profilo */
.xprow{display:flex;gap:18px;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;padding:2px 2px 6px;
  -webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 16px,#000 calc(100% - 16px),transparent);
  mask-image:linear-gradient(90deg,transparent,#000 16px,#000 calc(100% - 16px),transparent);}
.xprow::-webkit-scrollbar{display:none;}
.xprow .xpcard{flex:0 0 238px;width:238px;scroll-snap-align:start;}
.xpcard{position:relative;display:block;border-radius:var(--r-md);overflow:hidden;text-decoration:none;color:inherit;
  background:#15121a;border:1px solid var(--border);
  transition:transform .25s cubic-bezier(.2,.7,.3,1),box-shadow .25s,border-color .25s;}
/* bordo gradiente oro→rosa che appare in hover */
.xpcard::before{content:"";position:absolute;inset:0;border-radius:var(--r-md);padding:1px;z-index:4;pointer-events:none;opacity:0;
  background:linear-gradient(135deg,rgba(215,169,75,.65),rgba(var(--accent-rgb),.35) 45%,transparent 72%);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;
  mask-composite:exclude;transition:opacity .25s;}
.xpcard:hover{transform:translateY(-5px);border-color:transparent;box-shadow:0 24px 54px -18px rgba(0,0,0,.7);}
.xpcard:hover::before{opacity:1;}
.xpcover{position:relative;aspect-ratio:3/4;overflow:hidden;background:linear-gradient(200deg,#3a2a33,#181318);}
.xpcover-img{position:absolute;inset:0;background-size:cover;background-position:center;
  transition:transform .55s cubic-bezier(.2,.7,.3,1);}
.xpcard:hover .xpcover-img{transform:scale(1.06);}
.xpcover-grad{position:absolute;inset:0;z-index:1;
  background:linear-gradient(180deg,rgba(8,7,11,0) 26%,rgba(8,7,11,.5) 58%,rgba(8,7,11,.95) 100%);}
.xpk{position:absolute;top:11px;left:11px;z-index:3;display:inline-flex;align-items:center;gap:5px;
  font-size:10.5px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;padding:5px 11px;border-radius:var(--r-control);
  background:rgba(12,10,16,.62);color:var(--gold);border:1px solid rgba(215,169,75,.4);backdrop-filter:blur(6px);}
.xpk svg{opacity:.9;}
.xpvip{position:absolute;top:11px;right:11px;z-index:3;font-size:10.5px;font-weight:800;letter-spacing:.4px;
  padding:5px 9px;border-radius:var(--r-control);background:linear-gradient(135deg,#ffd779,#e0a83f);color:#241704;
  box-shadow:0 5px 16px -5px rgba(215,169,75,.7);}
.xpover{position:absolute;left:0;right:0;bottom:0;z-index:3;padding:15px 15px 16px;}
.xpprice{display:inline-block;font-size:12px;font-weight:800;letter-spacing:.3px;color:var(--gold);margin-bottom:7px;}
.xptitle{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
  font-size:17px;font-weight:700;line-height:1.22;letter-spacing:-.2px;color:#fff;margin-bottom:10px;}
.xphost{display:flex;align-items:center;gap:8px;font-size:12px;color:rgba(255,255,255,.8);font-weight:500;}
.xpav{width:23px;height:23px;border-radius:50%;flex-shrink:0;background-size:cover;background-position:center;
  background-color:#2a2230;border:1.5px solid rgba(255,255,255,.55);}
.xphost-tx{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.xpcta{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 15px;
  font-size:13px;font-weight:700;color:var(--text);background:linear-gradient(0deg,#15121a,#1a1620);border-top:1px solid var(--border);}
.xpcta svg{transition:transform .2s;color:var(--gold);}
.xpcard:hover .xpcta{color:var(--gold);}
.xpcard:hover .xpcta svg{transform:translateX(4px);}
.xpempty{padding:60px 0;text-align:center;color:var(--faint);}

/* 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;}}

/* ===== Experience LANDING (dettaglio) ===== */
.xpl-hero{position:relative;min-height:430px;display:flex;align-items:flex-end;overflow:hidden;border-bottom:1px solid var(--border);}
.xpl-bg{position:absolute;inset:0;background-size:cover;background-position:center;transform:scale(1.04);}
.xpl-bg-ov{position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,7,11,.45) 0%,rgba(8,7,11,.2) 40%,rgba(8,7,11,.92) 100%);}
.xpl-hero-in{position:relative;width:100%;padding:30px 0 26px;}
.xpl-back{display:inline-block;color:rgba(255,255,255,.85);font-weight:700;font-size:13px;margin-bottom:14px;text-shadow:0 1px 6px rgba(0,0,0,.6);}
.xpl-kind{display:inline-block;font-size:11.5px;font-weight:800;letter-spacing:.4px;text-transform:uppercase;padding:5px 11px;border-radius:var(--r-control);background:var(--accent-bright);color:var(--accent-ink);}
.xpl-hero h1{font-size:38px;font-weight:800;letter-spacing:-1.2px;color:#fff;margin:12px 0 4px;line-height:1.05;max-width:780px;text-shadow:0 2px 18px rgba(0,0,0,.5);}
.xpl-hook{font-size:17px;color:rgba(255,255,255,.92);max-width:680px;margin:0 0 14px;text-shadow:0 1px 10px rgba(0,0,0,.6);}
.xpl-chips{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:18px;}
.xpl-chip{padding:7px 13px;border-radius:var(--r-control);background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.22);color:#fff;font-size:13px;font-weight:700;backdrop-filter:blur(6px);}
.xpl-chip.price{background:#fff;color:#1a1620;border-color:#fff;}
.xpl-by{display:flex;align-items:center;gap:13px;}
.xpl-av{width:54px;height:54px;border-radius:50%;background:#2a222e center/cover;border:2px solid rgba(255,255,255,.7);flex-shrink:0;}
.xpl-bywho{color:#fff;}
.xpl-bywho b{font-size:16px;display:block;}
.xpl-bywho small{color:rgba(255,255,255,.78);font-size:13px;}
.xpl-cta{display:flex;align-items:center;gap:9px;margin-left:auto;}
.xpl-ic{width:44px;height:44px;border-radius:var(--r-sm);display:grid;place-items:center;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.25);color:#fff;backdrop-filter:blur(6px);}
.xpl-ic.wa{background:#25d366;border-color:#25d366;}
.xpl-body{display:grid;grid-template-columns:1.7fr 1fr;gap:32px;align-items:start;padding-top:30px;}
.xpl-intro{font-size:17px;line-height:1.7;color:var(--text);}
.xpl-sec{margin-top:26px;padding-top:22px;border-top:1px solid var(--border);}
.xpl-sec h2{font-size:21px;font-weight:800;letter-spacing:-.5px;margin:0 0 9px;}
.xpl-sec p{font-size:15px;line-height:1.7;color:var(--dim);margin:0;}
.xpl-incl-box{margin-top:26px;padding:20px 22px;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);}
.xpl-incl-box h2{font-size:18px;margin:0 0 14px;}
.xpl-gal{margin-top:30px;}
.xpl-gal h2{font-size:18px;margin:0 0 14px;}
.xpl-galgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;}
.xpl-galimg{aspect-ratio:3/4;border-radius:var(--r-sm);background:#1a151c center/cover;border:1px solid var(--border);transition:.15s;}
.xpl-galimg:hover{transform:scale(1.02);border-color:var(--accent-glow);}
.xpl-faq{margin-top:32px;}
.xpl-faq h2{font-size:21px;margin:0 0 14px;}
.xpl-fitem{border:1px solid var(--border);border-radius:var(--r-sm);margin-bottom:9px;overflow:hidden;background:var(--surface);}
.xpl-fitem.on{border-color:var(--accent-glow);}
.xpl-fq{width:100%;text-align:left;padding:15px 17px;background:none;border:none;color:var(--text);font-size:15px;font-weight:700;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:10px;}
.xpl-fchev{transition:transform .2s;color:var(--faint);}
.xpl-fitem.on .xpl-fchev{transform:rotate(180deg);color:var(--accent-bright);}
.xpl-fa{padding:0 17px 15px;}
.xpl-fa p{margin:0;font-size:14.5px;line-height:1.6;color:var(--dim);}
.xpl-side .xpl-card{position:sticky;top:88px;border:1px solid var(--border-strong);border-radius:var(--r-md);background:var(--surface);padding:20px;box-shadow:0 14px 36px rgba(0,0,0,.34);}
.xpl-price{font-size:26px;font-weight:800;margin-bottom:4px;}
.xpl-cardh{display:block;margin-bottom:12px;font-size:15px;}
.xpl-orcontact{display:flex;gap:8px;margin-top:12px;}
.xpl-orcontact .btn-ghost{flex:1;text-align:center;}
@media(max-width:880px){.xpl-body{grid-template-columns:1fr;}.xpl-side .xpl-card{position:static;}.xpl-hero h1{font-size:28px;}.xpl-cta{margin-left:0;width:100%;}}
.pstory.hl .hl-badge{position:absolute;top:7px;left:7px;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;
  background:linear-gradient(135deg,var(--accent),var(--accent-bright));box-shadow:0 2px 6px rgba(0,0,0,.5);}
/* tag "in diretta" riusabile fuori dalla storiesband (es. titolo sezione profilo) */
.psec h3 .live-tag{display:inline-flex;align-items:center;gap:6px;margin-left:10px;padding:3px 9px;border-radius:var(--r-control);vertical-align:middle;
  background:rgba(var(--accent-rgb),0.12);border:1px solid var(--accent-glow);color:var(--accent-bright);font-size:11px;font-weight:700;}
.psec h3 .live-tag .dot{width:6px;height:6px;border-radius:50%;background:var(--accent-bright);box-shadow:0 0 0 0 var(--accent-glow);animation:livepulse 1.6s infinite;}
@keyframes livepulse{0%{box-shadow:0 0 0 0 rgba(var(--accent-rgb),.5);}70%{box-shadow:0 0 0 6px rgba(var(--accent-rgb),0);}100%{box-shadow:0 0 0 0 rgba(var(--accent-rgb),0);}}

/* ---------- 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:14px;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 230px;scroll-snap-align:start;}
.cnav{position:absolute;top:calc(50% - 6px);transform:translateY(-50%);z-index:4;
  width:42px;height:42px;border-radius:50%;display:grid;place-items:center;cursor:pointer;color:#fff;
  background:rgba(18,14,24,.82);border:1px solid var(--border-strong);
  backdrop-filter:blur(6px);box-shadow:0 4px 14px rgba(0,0,0,.4);transition:.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;
  border:1px solid var(--border);background:var(--surface-2);transition:.16s;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:linear-gradient(135deg,#291226,#14121b);}
.city .flag{position:absolute;top:10px;right:10px;z-index:1;width:30px;height:21px;border-radius:var(--r-xs);
  object-fit:cover;box-shadow:0 1px 5px rgba(0,0,0,.55);border:1px solid rgba(255,255,255,.55);}
.city .lbl{position:absolute;left:0;right:0;bottom:0;z-index:1;padding:13px 15px;}
.city b{font-size:17px;font-weight:700;letter-spacing:-.3px;color:#fff;display:block;line-height:1.2;}
.city small{font-size:12.5px;color:rgba(255,255,255,.82);}
.city:hover{transform:translateY(-3px);border-color:var(--border-strong);}
.city:hover img:not(.flag){transform:scale(1.06);}

/* ---------- TRUST BAND ---------- */
/* Blocco SEO in fondo alla home: separatore + prosa con keyword + link interni città */
.home-seo{margin:44px 0 4px;padding-top:30px;border-top:1px solid var(--border);}
.home-seo h2{font-size:21px;font-weight:800;letter-spacing:-.4px;color:var(--text);margin:0 0 12px;}
.home-seo p{font-size:15px;line-height:1.75;color:var(--dim);margin:0 0 18px;max-width:78ch;}
.home-seo-links{display:flex;flex-wrap:wrap;gap:8px;}
.home-seo-links a{font-size:13px;font-weight:600;color:var(--dim);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-control);padding:6px 12px;transition:.15s;}
.home-seo-links a:hover{border-color:var(--accent-glow);color:var(--accent-bright);}
.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:18px;min-width:0;grid-template-columns:repeat(auto-fill,minmax(var(--cardmin,210px),1fr));}
.card{border-radius:var(--r-md);overflow:hidden;border:1px solid var(--border);background:var(--surface-solid);transition:transform .18s,border-color .18s,box-shadow .18s;cursor:pointer;}
.card:hover{transform:translateY(-5px);border-color:var(--border-strong);box-shadow:var(--shadow);}
/* cornici/bagliori per tier (gerarchia visiva): più alto il tier, più spicca */
/* fascia spotlight «In primo piano» (Diamond) */
.spotlight{margin-bottom:22px;padding:16px;border-radius:var(--r-md);
  background:linear-gradient(180deg,rgba(120,210,255,.07),rgba(120,210,255,.02));
  border:1px solid rgba(150,225,255,.22);}
.spot-head{display:flex;align-items:center;gap:9px;font-size:14px;font-weight:800;letter-spacing:.3px;margin-bottom:14px;color:#bfeaff;}
.spot-head .spot-ic{color:#8fd3ff;font-size:16px;}
.spot-head small{font-weight:600;color:var(--faint);letter-spacing:.2px;text-transform:uppercase;font-size:10.5px;}
.spot-grid{--cardmin:200px;}
.card.tier-gold{border-color:rgba(215,169,75,.55);box-shadow:0 0 0 1px rgba(215,169,75,.4);}
.card.tier-red{border-color:var(--accent-glow);box-shadow:0 0 0 1px var(--accent-glow),0 12px 30px -14px var(--accent-glow);}
.card.tier-diamond{border-color:rgba(150,225,255,.6);
  box-shadow:0 0 0 1px rgba(150,225,255,.5),0 0 22px -6px rgba(120,210,255,.5),0 14px 34px -14px rgba(90,180,255,.45);}
.card.tier-diamond:hover{box-shadow:0 0 0 1px rgba(150,225,255,.7),0 0 28px -4px rgba(120,210,255,.6),0 18px 40px -14px rgba(90,180,255,.55);}
/* BOOST: bordo gradiente che SCORRE visibilmente attorno alla card + glow pulsante */
@keyframes boostflow{to{background-position:200% 0;}}
@keyframes boostglow{0%,100%{box-shadow:0 0 18px -4px rgba(255,107,74,.55),0 10px 30px -12px rgba(255,107,74,.55);}
  50%{box-shadow:0 0 26px -2px rgba(215,169,75,.7),0 14px 38px -10px rgba(255,107,74,.8);}}
.card.boosted,.gcover.boosted{position:relative;border-color:transparent;animation:boostglow 1.4s ease-in-out infinite;}
.card.boosted::after,.gcover.boosted::after{content:"";position:absolute;inset:0;border-radius:inherit;padding:3px;z-index:6;pointer-events:none;
  background:linear-gradient(90deg,#ff6b4a,#d7a94b,#8659c4,#ff6b4a,#d7a94b,#ff6b4a);
  background-size:200% 100%;
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;
  mask-composite:exclude;animation:boostflow 1.6s linear infinite;}
.gcover.boosted::after{padding:4px;}
/* flag «In Boost» sulla scheda profilo */
.gcover{position:relative;}
.boostflag{position:absolute;top:12px;left:12px;z-index:7;display:inline-flex;align-items:center;gap:5px;
  font-size:11.5px;font-weight:800;letter-spacing:.4px;text-transform:uppercase;padding:6px 11px;border-radius:var(--r-control);
  color:var(--hot-ink);background:linear-gradient(90deg,#ff6b4a,#d7a94b,#ff6b4a);background-size:200% 100%;
  box-shadow:0 6px 18px -6px rgba(255,107,74,.8);animation:boostflow 1.6s linear infinite;}
/* bordo tier sulla gallery del profilo (statico, coerente con le card) */
.gcover.tier-gold{box-shadow:0 0 0 2px rgba(215,169,75,.5);}
.gcover.tier-red{box-shadow:0 0 0 2px var(--accent-glow),0 0 24px -8px var(--accent-glow);}
.gcover.tier-diamond{box-shadow:0 0 0 2px rgba(150,225,255,.55),0 0 26px -8px rgba(120,210,255,.5);}
@media (prefers-reduced-motion:reduce){.card.boosted,.gcover.boosted,.boostflag{animation:none;}.card.boosted::after,.gcover.boosted::after{animation:none;}}
.minib.boostb{background:linear-gradient(135deg,#ff6b4a,#d7a94b);border-color:transparent;color:var(--hot-ink);font-weight:800;}
.minib.hotrankb{background:linear-gradient(135deg,#ff8a6d,#ff6b4a);border-color:transparent;color:var(--hot-ink);font-weight:800;}
/* ===== Gioco «Hot or Not» ================================================= */
.hotwrap{max-width:560px;padding-top:20px;}
.hothead{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin:6px 0 16px;}
.hothead h1{font-size:26px;font-weight:800;letter-spacing:-.6px;margin:0 0 4px;}
.hothead p{font-size:13.5px;color:var(--dim);margin:0;line-height:1.45;max-width:380px;}
.hotlead-link{flex-shrink:0;font-size:13px;font-weight:700;color:var(--accent-bright);align-self:center;white-space:nowrap;}
.hotinstall{display:inline-flex;align-items:center;gap:6px;padding:7px 13px;border-radius:var(--r-control);border:1px solid rgba(255,106,61,.4);
  background:rgba(255,106,61,.12);color:#ff7a52;font:inherit;font-size:12px;font-weight:700;cursor:pointer;white-space:nowrap;}
.hotinstall:hover{background:rgba(255,106,61,.2);}
.hotcats{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding:2px;margin-bottom:16px;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 14px,#000 calc(100% - 14px),transparent);
  mask-image:linear-gradient(90deg,transparent,#000 14px,#000 calc(100% - 14px),transparent);}
.hotcats::-webkit-scrollbar{display:none;}
.hotcat{flex:0 0 auto;white-space:nowrap;padding:8px 15px;border-radius:var(--r-control);border:1px solid var(--border);
  background:var(--surface);font-size:13px;font-weight:600;color:var(--dim);text-decoration:none;transition:.15s;}
.hotcat:hover{border-color:var(--border-strong);color:var(--text);}
.hotcat.on{background:var(--accent-bright);border-color:var(--accent-bright);color:var(--accent-ink);}
/* mazzo */
.hotdeck{position:relative;aspect-ratio:3/4;margin:0 auto;}
.hotcard{position:absolute;inset:0;border-radius:var(--r-md);background-size:cover;background-position:center;
  background-color:#1a141c;overflow:hidden;box-shadow:0 20px 50px -20px rgba(0,0,0,.7);}
.hotcard.behind{transform:scale(.94) translateY(14px);filter:brightness(.7);z-index:1;}
.hotcard.top{z-index:2;transition:transform .24s ease,opacity .24s ease;will-change:transform;}
.hotcard.top.go-hot{transform:translateX(120%) rotate(16deg);opacity:0;}
.hotcard.top.go-skip{transform:translateX(-120%) rotate(-16deg);opacity:0;}
.hotcard-grad{position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(8,7,11,.92));}
.hotcard-info{position:absolute;left:18px;right:18px;bottom:16px;display:flex;align-items:baseline;flex-wrap:wrap;gap:8px;color:#fff;text-decoration:none;}
.hotcard-info b{font-size:24px;font-weight:800;letter-spacing:-.4px;}
.hotcard-info span{font-size:19px;font-weight:600;opacity:.9;}
.hotcard-info small{flex-basis:100%;font-size:13px;color:rgba(255,255,255,.78);font-weight:500;}
.hotcard-stamp{position:absolute;top:22px;z-index:3;font-size:24px;font-weight:900;letter-spacing:1px;padding:6px 14px;
  border-radius:var(--r-sm);border:3px solid;opacity:0;transition:opacity .15s;text-transform:uppercase;}
.hotcard-stamp.like{right:20px;color:#34d399;border-color:#34d399;transform:rotate(12deg);}
.hotcard-stamp.nope{left:20px;color:#ff5470;border-color:#ff5470;transform:rotate(-12deg);}
.hotcard.go-hot .hotcard-stamp.like{opacity:1;}
.hotcard.go-skip .hotcard-stamp.nope{opacity:1;}
/* bottoni */
.hotbtns{display:flex;align-items:center;justify-content:center;gap:26px;margin-top:22px;}
.hotbtn{width:62px;height:62px;border-radius:50%;display:grid;place-items:center;cursor:pointer;border:1px solid var(--border);
  background:var(--surface-solid);transition:transform .12s,box-shadow .2s,border-color .15s;}
.hotbtn:active{transform:scale(.92);}
.hotbtn.skip{color:#ff5470;}
.hotbtn.skip:hover{border-color:#ff5470;box-shadow:0 8px 24px -8px rgba(255,84,112,.6);}
.hotbtn.hot{width:74px;height:74px;color:var(--hot-ink);border-color:transparent;background:linear-gradient(135deg,#ff8a6d,#ff6b4a);
  box-shadow:0 12px 30px -8px rgba(255,107,74,.7);}
.hotbtn.hot:hover{box-shadow:0 16px 38px -8px rgba(255,107,74,.85);}
.hotcount{text-align:center;min-width:54px;}
.hotcount b{font-size:22px;font-weight:800;display:block;line-height:1;color:var(--accent-bright);}
.hotcount small{font-size:11px;color:var(--faint);text-transform:uppercase;letter-spacing:.4px;}
.hothint{text-align:center;font-size:12px;color:var(--faint);margin-top:14px;}
.hotempty{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;gap:8px;padding:24px;border:1px dashed var(--border);border-radius:var(--r-md);background:var(--surface);}
.hotempty-ic{font-size:40px;}
.hotempty b{font-size:18px;}
.hotempty p{font-size:13.5px;color:var(--dim);margin:0 0 8px;max-width:280px;line-height:1.5;}
/* classifica */
.hotboard{display:flex;flex-direction:column;gap:9px;}
.hotrow{display:flex;align-items:center;gap:13px;padding:11px 14px;border-radius:var(--r-sm);border:1px solid var(--border);
  background:var(--surface);text-decoration:none;color:inherit;transition:.15s;}
.hotrow:hover{border-color:var(--border-strong);transform:translateX(2px);}
.hotrow.rank-1{border-color:rgba(215,169,75,.5);background:linear-gradient(100deg,rgba(215,169,75,.1),var(--surface) 55%);}
.hotrow.rank-2{border-color:rgba(200,210,225,.35);}
.hotrow.rank-3{border-color:rgba(205,127,80,.35);}
.hotrank{width:30px;text-align:center;font-size:20px;font-weight:800;color:var(--dim);flex-shrink:0;}
.hotav{width:50px;height:50px;border-radius:var(--r-sm);flex-shrink:0;background-size:cover;background-position:center;
  background-color:#2a2230;border:1px solid var(--border);}
.hotmeta{flex:1;min-width:0;}
.hotmeta b{font-size:15px;display:block;}
.hotmeta small{font-size:12px;color:var(--dim);}
.hotscore{flex-shrink:0;font-size:14px;font-weight:800;color:#ff6a3d;}
.navhot{color:#ff6a3d!important;font-weight:700;}
/* ===== Centro Aiuto ======================================================== */
.helpwrap{max-width:920px;}
.help-hero{text-align:center;padding:18px 0 26px;}
.help-hero h1{font-size:clamp(26px,4vw,38px);font-weight:800;letter-spacing:-1px;margin:0 0 8px;}
.help-hero p{color:var(--dim);font-size:15px;max-width:520px;margin:0 auto 20px;line-height:1.5;}
.help-search{display:flex;align-items:center;gap:10px;max-width:560px;margin:0 auto;padding:6px 6px 6px 16px;
  border-radius:var(--r-sm);background:var(--surface);border:1px solid var(--border);}
.help-search svg{color:var(--faint);flex-shrink:0;}
.help-search input{flex:1;min-width:0;background:none;border:none;outline:none;color:var(--text);font:inherit;font-size:15px;}
.help-search .btn-accent{flex-shrink:0;padding:11px 20px;}
.help-cats{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:18px;margin-top:8px;}
.help-cat{border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);padding:18px 18px 14px;}
.help-cat-h{display:flex;align-items:flex-start;gap:12px;margin-bottom:12px;}
.help-emoji{font-size:24px;flex-shrink:0;line-height:1;}
.help-cat-h b{font-size:16px;display:block;}
.help-cat-h span{font-size:12.5px;color:var(--faint);}
.help-cat-list{display:flex;flex-direction:column;}
.help-cat-list a{padding:8px 0;font-size:14px;color:var(--dim);border-top:1px solid var(--border);text-decoration:none;transition:.12s;}
.help-cat-list a:first-child{border-top:none;}
.help-cat-list a:hover{color:var(--accent-bright);padding-left:4px;}
/* ricerca */
.help-results h2{font-size:17px;font-weight:700;margin:6px 0 14px;}
.help-rrow{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px;border-radius:var(--r-sm);
  border:1px solid var(--border);background:var(--surface);text-decoration:none;color:inherit;margin-bottom:9px;transition:.12s;}
.help-rrow:hover{border-color:var(--border-strong);}
.help-rrow b{font-size:14.5px;display:block;}
.help-rrow span{font-size:12.5px;color:var(--dim);}
.help-rrow small{flex-shrink:0;font-size:11px;color:var(--faint);background:var(--surface-2);padding:4px 10px;border-radius:var(--r-control);}
.help-empty{color:var(--dim);font-size:14px;}
/* CTA contatta */
.help-contact{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin:28px 0 0;
  padding:18px 20px;border-radius:var(--r-md);background:linear-gradient(100deg,rgba(var(--accent-rgb),.1),var(--surface) 60%);border:1px solid var(--border);}
.help-contact b{font-size:15.5px;display:block;}
.help-contact span{font-size:13px;color:var(--dim);}
.help-contact .btn-accent{flex-shrink:0;}
/* articolo */
.help-art{max-width:760px;}
.help-art-head{display:flex;align-items:center;gap:14px;margin:14px 0 8px;}
.help-art-head .help-emoji{font-size:30px;}
.help-art-cat{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--accent-bright);}
.help-art-head h1{font-size:clamp(24px,3.2vw,34px);font-weight:800;letter-spacing:-.6px;line-height:1.15;margin:2px 0 0;}
.help-art-body{font-size:16px;line-height:1.78;color:var(--dim);margin-top:18px;}
.help-art-body h3{font-size:19px;font-weight:800;color:var(--text);letter-spacing:-.3px;margin:26px 0 8px;}
.help-art-body p{margin:0 0 12px;}
.help-art-body strong{color:var(--text);}
.help-art-body code{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-xs);padding:1px 6px;font-size:13px;font-family:var(--mono);}
.help-art-body ul,.help-art-body ol{margin:0 0 14px;padding-left:22px;}
.help-art-body li{margin:5px 0;line-height:1.65;}
.help-art-body ol li::marker{color:var(--accent-bright);font-weight:700;}
.help-related{margin-top:26px;}
.help-related h2{font-size:16px;font-weight:700;margin:0 0 10px;}
.help-related a{display:block;padding:11px 14px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);
  color:var(--dim);text-decoration:none;font-size:14px;margin-bottom:8px;transition:.12s;}
.help-related a:hover{border-color:var(--border-strong);color:var(--text);}
@media(max-width:560px){.help-contact{flex-direction:column;align-items:flex-start;}}
/* CTA gioco in home */
.hotcta{display:flex;align-items:center;gap:16px;margin-top:38px;padding:16px 20px;border-radius:var(--r-md);text-decoration:none;color:inherit;
  background:linear-gradient(100deg,rgba(255,107,74,.14),rgba(255,107,74,.06) 60%,var(--surface));
  border:1px solid rgba(255,107,74,.28);transition:.18s;}
.hotcta:hover{border-color:rgba(255,107,74,.55);transform:translateY(-2px);box-shadow:0 14px 34px -16px rgba(255,107,74,.6);}
.hotcta-ic{font-size:30px;flex-shrink:0;filter:drop-shadow(0 3px 8px rgba(255,107,74,.5));}
.hotcta-tx{flex:1;min-width:0;}
.hotcta-tx b{display:block;font-size:16px;font-weight:800;letter-spacing:-.3px;}
.hotcta-tx span{font-size:13px;color:var(--dim);}
.hotcta-btn{flex-shrink:0;padding:10px 18px;border-radius:var(--r-control);font-weight:800;font-size:14px;color:var(--hot-ink);
  background:linear-gradient(135deg,#ff8a6d,#ff6b4a);box-shadow:0 8px 22px -8px rgba(255,107,74,.7);white-space:nowrap;}
@media(max-width:560px){.hotcta-tx span{display:none;}.hotcta{padding:14px 16px;}}
@media(max-width:560px){.hothead{flex-direction:column;gap:8px;}.hotlead-link{align-self:flex-start;}}
/* gioco FULL-SCREEN su mobile (stile Tinder): il mazzo riempie il viewport.
   Altezza DIRETTA sul mazzo (con fallback vh→svh) per evitare collassi d'altezza su browser
   che non supportano svh (card nera ma bottoni cliccabili). */
@media(max-width:768px){
  body.hotpage footer{display:none;}
  body.hotpage .agestrip{display:none;}
  .hotpage .hotwrap{max-width:none;padding-top:10px;}
  .hotpage .hothead{margin:2px 0 10px;}
  .hotpage .hothead h1{font-size:20px;}
  .hotpage .hothead p{display:none;}
  .hotpage .hotcats{margin-bottom:10px;}
  .hotpage .hotdeck{aspect-ratio:auto;height:calc(100vh - 240px);height:calc(100svh - 240px);min-height:360px;}
  .hotpage .hotbtns{margin-top:16px;}
  .hotpage .hothint{display:none;}
}
/* in standalone (PWA installata) sfrutta tutta l'altezza, niente chrome browser */
@media(display-mode:standalone){
  body.hotpage nav,body.hotpage .agestrip{display:none;}
  body.hotpage .hotwrap{height:100svh;padding-top:max(12px,env(safe-area-inset-top));}
}
.card .ph{position:relative;aspect-ratio:3/4;overflow:hidden;}
.card .ph .phimg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;}
.card .ph .pg{position:absolute;inset:0;background:linear-gradient(transparent 48%,rgba(8,7,11,0.9));}
.card .top{position:absolute;top:13px;left:13px;right:13px;display:flex;justify-content:space-between;align-items:flex-start;gap:8px;}
.card .top>div:first-child{display:flex;flex-wrap:wrap;gap:6px;min-width:0;}
.minib{display:inline-flex;align-items:center;gap:5px;padding:5px 11px;border-radius:var(--r-control);font-size:11.5px;font-weight:700;line-height:1;
  white-space:nowrap;flex-shrink:0;max-width:100%;background:rgba(10,9,14,0.55);backdrop-filter:blur(10px);border:1px solid var(--border);}
.minib.vip{background:linear-gradient(135deg,var(--accent-bright),var(--accent));border-color:transparent;}
/* badge tier */
.minib.tierb{border-color:transparent;color:#fff;}
.minib.tierb.tier-gold{background:linear-gradient(135deg,#ffd779,#e0a83f);color:#241704;}
.minib.tierb.tier-red{background:linear-gradient(135deg,var(--accent-bright),var(--accent));}
.minib.tierb.tier-diamond{background:linear-gradient(135deg,#dff4ff,#8fd3ff 55%,#6db8ff);color:#06243a;
  box-shadow:0 3px 14px -3px rgba(120,210,255,.7);}
.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;margin:-4px -6px -4px 0;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;}
.card .meta{position:absolute;left:15px;right:15px;bottom:14px;}
.card .meta .nm{display:flex;align-items:center;gap:8px;}
.card .meta .nm b{font-size:16.5px;line-height:1.25;letter-spacing:-.015em;}
.card .meta .nm span{color:var(--dim-2);font-size:13.5px;line-height:1;}
.card .meta .zo{display:flex;align-items:center;gap:6px;color:var(--dim-2);font-size:13px;line-height:1;margin-top:7px;}
.card .foot{display:flex;align-items:center;justify-content:space-between;padding:13px 15px;}
.card .foot .rt{display:flex;align-items:center;gap:6px;font-size:13px;line-height:1;color:var(--dim-2);}
.card .foot .pr{font-weight:700;font-size:14.5px;line-height:1;letter-spacing:-.01em;}

/* ---------- 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À
   ============================================================ */
.lhead{padding-top:22px;padding-bottom:20px;}
.crumb{font-size:12.5px;font-weight:500;color:var(--faint);display:flex;align-items:center;gap:8px;margin-bottom:12px;}
.crumb a:hover{color:var(--dim);}
.crumb .sep{opacity:.5;}
.crumb .cur{color:var(--dim);}
.lhead-row{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;}
/* Il blocco titolo si restringe e manda a capo il testo (min-width:0), così i tool
   (cambio vista / ordina / salva) restano a destra, allineati in basso vicino alla
   griglia, anche con H1 lungo (invece di finire a capo sotto il titolo). */
.lhead-row>div:first-child{flex:1 1 auto;min-width:0;}
.lhead h1{font-size:32px;font-weight:800;letter-spacing:-1px;margin:0;overflow-wrap:break-word;}
.lhead h1 .ac{color:var(--accent-bright);}
.lhead .count{display:flex;align-items:center;gap:9px;color:var(--dim);font-size:14.5px;margin-top:7px;}
.lhead .count .on{display:inline-flex;align-items:center;gap:6px;color:var(--online);font-weight:600;}
.lhead-tools{display:flex;align-items:center;gap:10px;flex:none;flex-wrap:wrap;justify-content:flex-end;}
.vtoggle{display:flex;border:1px solid var(--border);border-radius:var(--r-sm);overflow:hidden;}
.vtoggle button,.vtoggle a{display:grid;place-items:center;width:42px;height:42px;color:var(--faint);transition:.15s;cursor:pointer;}
.vtoggle button.on,.vtoggle a.on{background:var(--surface-2);color:var(--accent-bright);}
.vtoggle button:hover,.vtoggle a:hover{color:var(--text);}
.sortsel{position:relative;display:inline-flex;align-items:center;gap:9px;border:1px solid var(--border);border-radius:var(--r-sm);padding:0 14px;height:42px;font-size:14px;font-weight:600;color:var(--dim);background:var(--surface);cursor:pointer;}
.savesearch{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--border);border-radius:var(--r-sm);padding:0 14px;height:42px;font-size:14px;font-weight:600;color:var(--dim);background:var(--surface);cursor:pointer;transition:.14s;}
.savesearch:hover{color:var(--text);border-color:var(--border-strong);}
.savesearch.on{color:var(--accent-bright);border-color:rgba(var(--accent-rgb),.5);background:rgba(var(--accent-rgb),.1);}
.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-sm);padding:6px;box-shadow:var(--shadow);z-index:60;}
.sortmenu div{padding:10px 12px;border-radius:var(--r-sm);font-size:14px;color:var(--dim);}
.sortmenu div:hover{background:var(--surface-2);color:var(--text);}
.sortmenu div.on{color:var(--accent-bright);}
[x-cloak]{display:none!important;}

.layout{display:grid;grid-template-columns:264px 1fr;gap:30px;align-items:start;padding-bottom:30px;}
.layout>main{min-width:0;}

/* sidebar filtri */
/* La navbar è sticky (2 righe = ~116px): la sidebar filtri si aggancia SOTTO di essa. */
.fside{position:sticky;top:124px;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);padding:6px 20px 20px;backdrop-filter:blur(8px);}
.fside .fhead{display:flex;align-items:center;justify-content:space-between;padding:16px 0 4px;}
.fside .fhead b{display:inline-flex;align-items:center;gap:9px;font-size:15px;}
.fside .fhead a{font-size:12.5px;color:var(--accent-bright);font-weight:600;}
.fgroup{border-top:1px solid var(--border);padding:15px 0 4px;}
.fgroup .ft{display:flex;align-items:center;justify-content:space-between;cursor:pointer;margin-bottom:13px;}
.fgroup .ft span{font-size:13px;font-weight:700;}
.fgroup .ft svg{color:var(--faint);}
.check{display:flex;align-items:center;gap:10px;font-size:13.5px;color:var(--dim);margin-bottom:12px;cursor:pointer;}
.check .box{width:18px;height:18px;border-radius:var(--r-xs);border:1.5px solid var(--border-strong);display:grid;place-items:center;flex-shrink:0;transition:.15s;}
.check.on{color:var(--text);}
.check.on .box{background:var(--accent);border-color:var(--accent);}
.check .cnt{margin-left:auto;font-size:12px;color:var(--faint);}
.range{margin:6px 0 4px;}
.range .track{height:5px;border-radius:var(--r-xs);background:var(--surface-2);position:relative;margin:10px 0 12px;}
.range .fill{position:absolute;top:0;bottom:0;border-radius:var(--r-xs);background:linear-gradient(90deg,var(--accent-bright),var(--accent));}
.range .h{position:absolute;top:-5px;width:15px;height:15px;border-radius:50%;background:#fff;box-shadow:0 2px 6px rgba(0,0,0,.5);transform:translateX(-50%);}
.range .lbls{display:flex;justify-content:space-between;font-size:12px;color:var(--dim);}
.range .lbls b{color:var(--text);font-weight:700;}
.fchips{display:flex;gap:7px;flex-wrap:wrap;}
.fchip{border:1px solid var(--border);border-radius:var(--r-control);padding:7px 13px;font-size:12.5px;font-weight:600;color:var(--dim);cursor:pointer;transition:.15s;}
.fchip:hover{border-color:var(--border-strong);color:var(--text);}
.fchip.on{background:linear-gradient(135deg,var(--accent-bright),var(--accent));color:var(--accent-ink);border-color:transparent;}
.fside .btn-accent{width:100%;margin-top:18px;padding:13px;}

/* risultati */
.achips{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:18px;}
.achip{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--accent-glow);background:rgba(var(--accent-rgb),0.10);color:var(--accent-bright);
  border-radius:var(--r-control);padding:7px 9px 7px 13px;font-size:12.5px;font-weight:600;cursor:pointer;}
.achip svg{opacity:.8;}
.achip-clear{font-size:12.5px;color:var(--faint);font-weight:600;cursor:pointer;margin-left:2px;}
.achip-clear:hover{color:var(--text);}
.pag{display:flex;justify-content:center;gap:8px;margin-top:34px;flex-wrap:wrap;}
.pag a,.pag button{min-width:42px;height:42px;border-radius:var(--r-sm);display:grid;place-items:center;font-size:14px;font-weight:600;border:1px solid var(--border);color:var(--dim);background:transparent;font-family:inherit;cursor:pointer;transition:.15s;}
.pag a:hover,.pag button:hover{border-color:var(--border-strong);color:var(--text);}
.pag a.on,.pag button.on{background:linear-gradient(135deg,var(--accent-bright),var(--accent));color:var(--accent-ink);border-color:transparent;}
.pag a.dots{border:none;}
.pag-gap{min-width:24px;height:42px;display:grid;place-items:center;color:var(--faint);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;}   /* desktop: mai (l'ordinamento usa il dropdown .sortsel) */
/* barre mobile sticky/fisse: sfondo theme-aware (in light non devono restare scure) */
:root[data-theme="light"] .mbar{background:rgba(244,246,251,0.9);}
:root[data-theme="light"] .pbar{background:rgba(244,246,251,0.92);border-top-color:var(--border);}
.fside-close{display:none;}
.drawer-backdrop{display:none;}
.seo{border-top:1px solid var(--border);margin-top:10px;padding:30px 0 4px;color:var(--dim);font-size:13.5px;line-height:1.7;}
.seo h3{color:var(--text);font-size:17px;margin:0 0 10px;}
.seo p{max-width:1040px;margin:0 0 4px;}
.seo-st{color:var(--text);font-size:15px;font-weight:700;margin:18px 0 7px;}
.seo-faq{max-width:840px;margin-top:8px;}
.lfaq{border:1px solid var(--border);border-radius:var(--r-sm);margin-bottom:8px;overflow:hidden;}
.lfaq.on{border-color:var(--accent-glow);}
.lfaq-q{width:100%;text-align:left;padding:13px 16px;background:none;border:none;color:var(--text);font-size:14.5px;font-weight:600;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:10px;}
.lfaq-c{color:var(--faint);transition:transform .2s;}
.lfaq.on .lfaq-c{transform:rotate(180deg);color:var(--accent-bright);}
.lfaq-a{padding:0 16px 13px;}
.lfaq-a p{font-size:13.5px;color:var(--dim);margin:0;line-height:1.6;max-width:none;}

/* ===== GUIDE / BLOG ===== */
.ggrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:18px;margin-top:6px;}
.gcard{display:block;border:1px solid var(--border);border-radius:var(--r-sm);overflow:hidden;background:var(--surface);transition:.15s;color:inherit;text-decoration:none;}
.gcard:hover{transform:translateY(-3px);border-color:var(--border-strong);box-shadow:0 12px 30px rgba(0,0,0,.35);}
.gcard-cov{position:relative;aspect-ratio:16/9;background:linear-gradient(200deg,#2a2230,#15121a);}
.gcard-tag{position:absolute;top:9px;left:9px;font-size:11px;font-weight:700;padding:3px 9px;border-radius:var(--r-control);background:rgba(8,7,11,.6);color:#fff;backdrop-filter:blur(4px);}
.gcard-kind{position:absolute;top:9px;right:9px;font-size:10.5px;font-weight:800;letter-spacing:.3px;text-transform:uppercase;padding:3px 9px;border-radius:var(--r-control);background:rgba(var(--accent-rgb),.92);color:var(--accent-ink);}
.gcard-body{padding:14px 15px 16px;}
/* blog: tab tipologie */
.blog-tabs{display:flex;gap:8px;margin:4px 0 22px;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;
  padding:2px 2px;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 14px,#000 calc(100% - 14px),transparent);
  mask-image:linear-gradient(90deg,transparent,#000 14px,#000 calc(100% - 14px),transparent);}
.blog-tabs::-webkit-scrollbar{display:none;}
.blog-tabs .bt{flex:0 0 auto;scroll-snap-align:start;white-space:nowrap;display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;padding:7px 14px;border-radius:var(--r-control);border:1px solid var(--border);background:var(--surface);color:var(--dim);text-decoration:none;transition:.15s;}
.blog-tabs .bt:hover{border-color:var(--border-strong);color:var(--text);}
.blog-tabs .bt.on{background:var(--accent-bright);border-color:var(--accent-bright);color:var(--accent-ink);}
.blog-tabs .bt-n{font-size:11px;opacity:.7;font-weight:700;}
.gart-kind{color:#ff7fb0;text-decoration:none;font-weight:700;text-transform:uppercase;letter-spacing:.4px;}
.gart-kind:hover{text-decoration:underline;}
.gcard-body b{font-size:15.5px;line-height:1.3;display:block;margin-bottom:5px;}
.gcard-body p{font-size:13px;color:var(--dim);margin:0;line-height:1.5;}
/* Home «Dal blog»: 4 colonne su desktop, striscia scrollabile su mobile */
.blogrow{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;}
@media(max-width:820px){
  .blogrow{display:flex;overflow-x:auto;gap:12px;scroll-snap-type:x proximity;
    scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;padding-bottom:4px;}
  .blogrow::-webkit-scrollbar{display:none;}
  .blogrow>.gcard{flex:0 0 76%;max-width:300px;scroll-snap-align:start;}
}
/* articolo */
/* --- Articolo blog: layout editoriale + indice paragrafi --- */
.gart-wrap{max-width:1100px;padding-top:20px;}
html{scroll-behavior:smooth;}
.gart-head{max-width:720px;margin:8px 0 0;}
.gart-kick{display:inline-block;font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;
  color:var(--accent-ink);background:var(--accent-bright);padding:5px 12px;border-radius:999px;}
.gart-title{font-size:clamp(30px,4.4vw,46px);font-weight:800;letter-spacing:-.02em;line-height:1.08;
  margin:16px 0 12px;text-wrap:balance;}
.gart-metarow{display:flex;flex-wrap:wrap;gap:10px;align-items:center;color:var(--faint);font-size:13px;font-family:var(--mono);}
.gart-metarow a{color:var(--dim);} .gart-metarow .dot{opacity:.5;}
.gart-cov{max-width:none;margin:22px 0 6px;aspect-ratio:16/7;border-radius:var(--r-md);
  background:linear-gradient(200deg,#2a2230,#15121a);background-size:cover;background-position:center;}

.gart-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:34px;margin-top:26px;}
@media(min-width:980px){.gart-layout{grid-template-columns:minmax(0,720px) 250px;justify-content:start;align-items:start;}}
.gart-main{min-width:0;}
.gart-lead{font-size:20px;line-height:1.7;color:var(--text);margin:0 0 26px;font-weight:500;text-wrap:pretty;}
.gart-sec{margin:0;}
.gart-h{font-size:25px;font-weight:800;letter-spacing:-.4px;line-height:1.25;margin:38px 0 14px;
  color:var(--text);scroll-margin-top:96px;text-wrap:balance;}
.gart-sec p{font-size:17.5px;line-height:1.8;color:var(--text-2);margin:0 0 20px;max-width:68ch;}

/* indice */
.gart-aside{min-width:0;}
@media(max-width:979px){.gart-aside{order:-1;margin-bottom:6px;}}
.gart-toc{border:1px solid var(--border);border-radius:var(--r-md);background:transparent;padding:14px 16px;}
@media(min-width:980px){.gart-toc{position:sticky;top:90px;}.gart-toc>summary{cursor:default;pointer-events:none;}}
.gart-toc>summary{list-style:none;font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--dim);}
.gart-toc>summary::-webkit-details-marker{display:none;}
.gart-toc ol{margin:12px 0 0;padding:0;list-style:none;counter-reset:toc;}
.gart-toc li{counter-increment:toc;}
.gart-toc a{display:flex;gap:9px;padding:8px 0;color:var(--text-2);font-size:13.5px;line-height:1.35;
  text-decoration:none;border-top:1px solid var(--border);}
.gart-toc li:first-child a{border-top:none;}
.gart-toc a::before{content:counter(toc,decimal-leading-zero);color:var(--accent-bright);font-family:var(--mono);font-size:11px;flex:0 0 auto;padding-top:1px;}
.gart-toc a:hover{color:var(--accent-bright);}

/* CTA in coda + correlati */
.gart-cta{margin:36px 0 0;padding:22px;border:1px solid rgba(90,169,255,.3);border-radius:var(--r-md);background:rgba(90,169,255,.07);}
.gart-cta b{font-size:16px;} .gart-cta p{margin:6px 0 14px;color:var(--dim);font-size:14px;}
.gart-related{max-width:none;margin:46px 0 0;}

/* ============================================================
   SCHEDA PROFILO
   ============================================================ */
.pdetail{display:grid;grid-template-columns:440px 1fr;gap:34px;align-items:start;padding-bottom:8px;}
.pcol-a,.pcol-b{min-width:0;}            /* desktop: ordine del DOM (order ignorato) */
.pcol-a .gallery{margin-bottom:22px;}

/* --- galleria --- */
.gallery{min-width:0;}
.gcover{position:relative;aspect-ratio:3/4;border-radius:var(--r-md);overflow:hidden;border:1px solid var(--border);box-shadow:var(--shadow);background-size:cover;}
.gcover .badges{position:absolute;top:14px;left:14px;display:flex;gap:7px;}
.gcover .gacts{position:absolute;top:14px;right:14px;display:flex;gap:8px;}
.gact{width:38px;height:38px;border-radius:50%;background:rgba(10,9,14,0.5);backdrop-filter:blur(10px);border:1px solid var(--border);display:grid;place-items:center;color:#fff;cursor:pointer;transition:.15s;}
.gact:hover{background:rgba(10,9,14,0.75);}
.gcount{position:absolute;right: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);font-size:12px;font-weight:600;border:1px solid var(--border);}
.thumbs{display:grid;grid-template-columns:repeat(5,1fr);gap:9px;margin-top:10px;}
.thumb{position:relative;aspect-ratio:1;border-radius:var(--r-sm);overflow:hidden;border:1px solid var(--border);cursor:pointer;transition:.15s;background-size:cover;}
.thumb:hover{border-color:var(--border-strong);}
.thumb.on{border-color:var(--accent-bright);box-shadow:0 0 0 2px var(--accent-glow);}
.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;}

/* --- info --- */
.pinfo{min-width:0;}
.pname{display:flex;align-items:center;gap:11px;flex-wrap:wrap;}
.pname h1{font-size:30px;font-weight:800;letter-spacing:-0.8px;margin:0;}
.pname .age{font-size:19px;color:var(--dim);}
.pname .pacts{margin-left:auto;display:flex;gap:8px;}
.pacts .a{width:40px;height:40px;border-radius:var(--r-sm);border:1px solid var(--border);display:grid;place-items:center;color:var(--dim);cursor:pointer;transition:.15s;}
.pacts .a:hover{border-color:var(--border-strong);color:var(--text);}
.psub{display:flex;align-items:center;gap:18px;margin:12px 0 18px;flex-wrap:wrap;color:var(--dim);font-size:13.5px;}
.psub .zone,.psub .rate{display:inline-flex;align-items:center;gap:7px;}
.stars{display:inline-flex;gap:1px;color:var(--gold-bright);font-size:13px;}

/* --- contatti --- */
.contact{display:flex;gap:11px;margin-top:16px;margin-bottom:22px;}
.claimbar{display:flex;align-items:center;gap:12px;margin:0 0 22px;padding:12px 14px;border-radius:var(--r-sm);
  border:1px solid rgba(90,169,255,.35);background:rgba(90,169,255,.08);color:var(--text);text-decoration:none;transition:.15s;}
.claimbar:hover{border-color:rgba(90,169,255,.6);background:rgba(90,169,255,.13);}
.claimbar-ic{color:var(--accent-bright);display:grid;place-items:center;flex:0 0 auto;}
.claimbar-tx{flex:1;font-size:13.5px;line-height:1.4;color:var(--dim);}
.claimbar-tx b{color:var(--text);}
.claimbar-cta{flex:0 0 auto;background:var(--accent-bright);color:var(--accent-ink);font-weight:700;font-size:13px;padding:7px 14px;border-radius:var(--r-control);}
/* stati annuncio: pausa (visibile, non al lavoro) / anteprima privata */
.statebar{display:flex;align-items:center;gap:13px;padding:14px 18px;border-radius:var(--r-sm);margin-bottom:6px;border:1px solid;}
.statebar b{display:block;font-size:14px;}
.statebar span{font-size:12.5px;opacity:.85;}
.statebar.paused{background:rgba(124,138,255,0.1);border-color:rgba(124,138,255,0.32);color:#aab2ff;}
.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;padding:9px 15px;border-radius:var(--r-sm);font-weight:800;font-size:13px;background:var(--surface-2);color:var(--text);border:1px solid var(--border);}
.contact-off{display:flex;align-items:center;gap:9px;margin-top:16px;margin-bottom:22px;padding:14px 16px;border-radius:var(--r-sm);background:var(--surface-2);color:var(--dim);font-weight:600;font-size:13.5px;border:1px dashed var(--border);}
.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;letter-spacing:-.01em;cursor:pointer;transition:.15s;}
.btn-tel{color:var(--accent-ink);background:linear-gradient(135deg,var(--accent-bright),var(--accent));box-shadow:0 16px 40px -14px var(--accent-glow);}
.btn-tel:hover{transform:translateY(-2px);}
.btn-wa{color:#25d366;background:rgba(37,211,102,0.12);border:1px solid rgba(37,211,102,0.5);}
.btn-wa:hover{background:rgba(37,211,102,0.2);}

/* --- sezioni --- */
.psec{margin-bottom:22px;}
.psec>h3{font-size:10px;font-weight:600;line-height:1;font-family:var(--mono);text-transform:uppercase;letter-spacing:.16em;color:var(--mute);margin:0 0 14px;}
.pdesc{font-size:15.5px;line-height:1.72;color:var(--dim);}
.two{display:grid;grid-template-columns:1fr 1fr;gap:22px;}

.attr{border:1px solid var(--border);border-radius:var(--r-md);overflow:hidden;}
.attr .row{display:flex;padding:11px 15px;font-size:14.5px;}
.attr .row+.row{border-top:1px solid var(--border);}
.attr .k{width:128px;font-family:var(--mono);font-size:10.5px;text-transform:uppercase;letter-spacing:.4px;color:var(--faint);flex-shrink:0;align-self:center;}
.attr .v{color:var(--text);font-weight:500;margin-left:auto;text-align:right;padding-left:14px;}

.rates{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.rate-item{display:flex;justify-content:space-between;align-items:center;border:1px solid var(--border);border-radius:var(--r-sm);padding:12px 15px;background:var(--surface);}
.rate-item .d{font-size:13px;color:var(--dim);}
.rate-item .p{font-size:15px;font-weight:800;}

.tags{display:flex;gap:8px;flex-wrap:wrap;}
.tag{border:1px solid var(--border);border-radius:var(--r-control);padding:9px 15px;font-size:13px;font-weight:600;color:var(--dim);background:var(--surface);}

/* --- mappa --- */
.pmap{position:relative;aspect-ratio:16/7;border-radius:var(--r-md);overflow:hidden;border:1px solid var(--border);
  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;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;}
/* 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). */
.pmap-wrap .leaflet-bar{border:1px solid var(--border)!important;box-shadow:0 6px 18px -8px rgba(0,0,0,.6);}
.pmap-wrap .leaflet-bar a{background-color:var(--surface-solid)!important;color:var(--text)!important;border-bottom:1px solid var(--border)!important;}
.pmap-wrap .leaflet-bar a:hover{background-color:var(--surface-2)!important;}
.pmap-wrap .leaflet-bar a.leaflet-disabled{background-color:var(--surface)!important;color:var(--faint)!important;}
.pmap-wrap .leaflet-control-attribution{background:rgba(10,9,14,0.6)!important;color:var(--faint)!important;border-radius:var(--r-sm) 0 0 0;}
.pmap-wrap .leaflet-control-attribution a{color:var(--dim)!important;}
/* popup Leaflet in tema scuro (testo leggibile, bordo come gli altri box) */
.pmap-wrap .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;}
.pmap-wrap .leaflet-popup-content{color:var(--text)!important;margin:9px 13px!important;font-size:13px!important;font-weight:600;}
.pmap-wrap .leaflet-popup-content b{color:var(--text)!important;}
.pmap-wrap .leaflet-popup-tip{background:var(--surface-solid)!important;border:1px solid var(--border)!important;box-shadow:none!important;}
.pmap-wrap .leaflet-popup-close-button{color:var(--faint)!important;}
.pmap-wrap .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:linear-gradient(135deg,var(--accent-bright),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:linear-gradient(135deg,var(--accent-bright),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{border-top:1px solid rgba(255,255,255,0.07);margin-top:60px;background:linear-gradient(180deg,transparent,rgba(0,0,0,0.3));}
.foot-cols{display:grid;grid-template-columns:1.5fr repeat(5,1fr);gap:36px;padding:54px 0 36px;}
.foot-brand{width:auto;max-width:340px;}
.foot-brand .brand{margin-bottom:16px;}
.foot-brand p{font-size:13.5px;color:var(--dim);line-height:1.6;margin:0 0 16px;}
.foot-brand .mail{font-family:var(--mono);font-size:12.5px;color:var(--faint);}
.foot-tg{display:inline-flex;align-items:center;gap:7px;margin-top:14px;font-size:13.5px;font-weight:600;color:#229ED9;transition:color .15s,opacity .15s;}
.foot-tg:hover{opacity:.8;}
.foot-tg svg{flex:0 0 auto;}
.foot-col .foot-h{font-family:var(--mono);font-size:10px;font-weight:600;line-height:1;color:var(--mute);text-transform:uppercase;letter-spacing:.16em;margin:6px 0 18px;}
.foot-col a{display:block;font-size:14.5px;color:var(--dim);margin-bottom:13px;transition:color .15s;}
.foot-col a:hover{color:var(--text);}
.foot-bottom{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--border);padding:22px 0;font-size:13px;color:var(--faint);}
.foot-bottom .mod{display:inline-flex;align-items:center;gap:8px;color:var(--online);}

/* ============================================================
   RESPONSIVE
   ============================================================ */
/* Schermi molto grandi: container un po' più largo (card invariate) */
@media(min-width:1600px){ :root{--maxw:1560px;} }

/* ---- TABLET / ≤1080 (iPad ecc.) ---------------------------- */
@media(max-width:1080px){
  .wrap{padding:0 18px;}            /* gutter più stretto: niente margini larghi */
  /* navbar → hamburger + drawer: nascondi riga categorie, ricerca e selettore città inline */
  .navcats{display:none;}
  .navsearch{display:none;}
  .citysel{display:none;}
  .nav-burger{display:inline-flex;}
  /* Ricerca mobile: icona-toggle in barra + campo a comparsa sotto la navbar */
  .nav-search-toggle{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;border:1px solid var(--border);background:var(--surface);color:var(--dim);flex:none;}
  .nav-search-toggle:active{transform:scale(.94);}
  .navsearch-m{display:block;border-top:1px solid var(--border);background:var(--bg2);padding:10px 16px;}
  .navsearch-m form{display:flex;align-items:center;gap:10px;height:44px;padding:0 14px;border-radius:var(--r-control);background:var(--surface);border:1px solid var(--border);}
  .navsearch-m svg{color:var(--faint);flex:none;}
  .navsearch-m input{flex:1;min-width:0;background:none;border:none;outline:none;color:var(--text);font:inherit;font-size:15px;}
  /* Senza ricerca e selettore città la riga si svuota: i controlli scendono
     a 40 e il logotipo sale a 34, così il marchio torna il pezzo principale. */
  .nav-burger,.themetoggle,.nav-avatar,.nav-search-toggle{width:40px;height:40px;}
  .nav-in{gap:9px;}
  .nav-in .brand{margin-right:auto;min-width:0;}
  .searchband{padding-top:34px;}
  .searchband h1{font-size:42px;}
  .trust{flex-wrap:wrap;}.trust .it{flex:1 1 45%;}.trust .it:nth-child(odd){border-left:none;}
  .trust .it:nth-child(n+3){border-top:1px solid var(--border);}
  /* 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:67px;margin-top:-1px;z-index:40;padding:10px 14px;background:rgba(11,11,15,0.72);backdrop-filter:blur(14px);
    overflow-x:auto;flex-wrap:nowrap;scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}
  .mbar::-webkit-scrollbar{display:none;}
  .mbar button,.mbar a{flex:0 0 auto;white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid var(--border);border-radius:var(--r-sm);padding:9px 14px;font-size:13px;font-weight:600;color:var(--dim);background:var(--surface);}
  .mbar .badge{background:var(--accent-bright);color:var(--accent-ink);border-radius:var(--r-control);padding:0 5px;font-size:10.5px;font-weight:800;}
  /* 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:16px 16px 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:15px 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;width:min(88vw,360px);
    border:none;border-left:1px solid var(--border);border-radius:0;background:var(--surface-solid);
    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{position:sticky;top:0;background:var(--surface-solid);padding:18px 0 12px;z-index:1;border-bottom:1px solid var(--border);}
  .fside-close{display:grid;place-items:center;width:32px;height:32px;border-radius:var(--r-sm);border:1px solid var(--border);color:var(--dim);background:var(--surface);}
  .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: colonna unica con GRID (prevedibile: gli item si stirano a piena larghezza
     di default; `order` riordina foto→nome→contatti→descrizione→tariffe→…).
     display:contents promuove le sezioni di pcol-a/pcol-b a item della grid. */
  .pdetail{display:grid;grid-template-columns:minmax(0,1fr);gap:20px;}
  .pcol-a,.pcol-b{display:contents;}
  .pdetail .psec{margin-bottom:0;}                  /* spaziatura data dal gap, non doppia */
  .pcol-a .gallery{margin-bottom:0;}
  /* width:100% = larghezza DEFINITA: senza, centrare (justify-self/margin:auto) farebbe
     collassare la gallery al contenuto (il .gcover ha solo aspect-ratio, niente width). */
  .gallery{width:100%;max-width:460px;justify-self:center;}
  /* Preferito / condividi / segnala: in colonna unica andavano già a capo, ma il
     margin-left:auto della riga del nome continuava a spingerli contro il bordo
     destro. width:100% le tiene su una riga propria, allineate al nome. */
  .pname .pacts{margin-left:0;width:100%;justify-content:flex-start;}

  /* 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){
  .wrap{padding:0 14px;}
  .searchband h1{font-size:36px;}
  .stepper .sl{display:none;}        /* stepper solo numeri */
  .stepper .st::after{margin:0 8px;}
}

/* ---- MOBILE / ≤560 ----------------------------------------- */
@media(max-width:560px){
  .grid{--cardmin:148px;gap:12px;}   /* → 2 colonne su telefono, card costanti */
  .cities{grid-template-columns:repeat(2,1fr);gap:10px;}
  .wrap{padding:0 11px;}
  .brand .logo{height:30px;}   /* logo più compatto: fa spazio a burger+search+tema+CTA */
  .agestrip .l span.txt{display:none;}
  .agestrip .in{height:36px;}

  /* NAV: hamburger + brand + bottone tondo "＋" */
  .nav-in{height:60px;gap:10px;}
  .brand{margin-right:auto;}
  .nav-cta{padding:0;width:42px;height:42px;border-radius:50%;}
  .nav-cta .btxt{display:none;}
  .searchband{display:none;}

  /* STORIES: via il container (box), avatar più grandi, scroll orizzontale */
  .storiesband{border:none;background:none;backdrop-filter:none;padding:0;margin-top:18px;}
  .storiesband .sb-head{margin-bottom:12px;}
  .stories{gap:15px;}
  .story .ring{width:72px;height:72px;}
  .story small{font-size:12px;}

  /* SEZIONI */
  .sechead{margin:30px 0 14px;}
  .sechead h2{font-size:21px;}
  .sechead .sub{font-size:12.5px;}
  .sechead a{font-size:12px;}

  /* CARD: testo proporzionato (forma 3:4 invariata) */
  .card .meta{left:11px;right:11px;bottom:11px;}
  .card .meta .nm b{font-size:15.5px;}
  .card .meta .nm span{font-size:12.5px;}
  .card .meta .zo{font-size:12px;margin-top:2px;}
  .card .top{top:10px;left:10px;right:10px;}
  /* BADGE testuali compatti: nowrap + il gruppo va a capo come pillole intere */
  .minib{font-size:10px;padding:4px 8px;gap:4px;}
  /* Il riquadro si rimpiccioliva ma il cuore dentro restava a 24px: accanto a
     badge da 10px sembrava enorme. Scala anche il disegno. */
  .heart{width:26px;height:26px;}
  .heart .hi{width:19px;height:19px;}
  .card .foot{padding:9px 11px;}
  .card .foot .rt{font-size:12px;}
  .card .foot .pr{font-size:14px;}

  /* LISTING */
  .lhead{padding-top:16px;padding-bottom:14px;}
  .lhead h1{font-size:23px;letter-spacing:-0.6px;}
  .lhead .count{font-size:13.5px;margin-top:5px;}
  .lhead-tools{display:none;}
  .mbar{top:61px;}
  .achips{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin-bottom:14px;}
  .achips::-webkit-scrollbar{display:none;}
  .achip,.achip-clear{flex-shrink:0;}
  .pag{gap:6px;margin-top:26px;flex-wrap:wrap;}
  .pag a{min-width:38px;height:38px;font-size:13.5px;}
  .seo{margin-top:22px;padding-top:22px;font-size:13px;}
  .seo h3{font-size:16px;}

  /* PROFILO mobile: cover a tutta larghezza, contatti in barra sticky */
  .gallery{max-width:none;}
  .pdetail{gap:18px;}
  .pname h1{font-size:23px;}
  .pname .age{font-size:16px;}
  .two{grid-template-columns:1fr;}
  .psec{margin-bottom:18px;}
  .contact{display:none;}
  .gallery-bleed{margin:0 -16px;}
  .gcover{border-radius:0;border-left:none;border-right:none;}
  /* 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:7px;padding:3px 0;margin-top:7px;
    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 68px;width:68px;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:rgba(8,11,20,0.9);backdrop-filter:blur(18px);border-top:1px solid var(--border);}
  .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-bright);color:var(--accent-ink);}
  .pbar .btn-tel 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:1fr 1fr;gap:30px 40px;padding:40px 0 28px;}
  .foot-brand{grid-column:1 / -1;max-width:none;}
  .foot-bottom{flex-direction:column;gap:12px;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);transform:translateY(-3px);}
.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:linear-gradient(135deg,var(--accent-bright),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{transform:translateY(-2px);}
.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;}}

/* ---- PAGINE LEGALI ---------------------------------------- */
.legalwrap{display:grid;grid-template-columns:240px 1fr;gap:40px;padding-top:34px;padding-bottom:70px;}
.legalnav h3{font-size:12px;text-transform:uppercase;letter-spacing:.6px;color:var(--faint);margin:0 0 12px;}
.legalnav a{display:block;font-size:14px;color:var(--dim);padding:8px 12px;border-radius:var(--r-sm);margin-bottom:2px;}
.legalnav a:hover{background:var(--surface);color:var(--text);}
.legalnav a.on{background:var(--surface-2);color:var(--accent-bright);font-weight:600;}
.legalbody h1{font-size:30px;font-weight:800;letter-spacing:-.8px;margin:0 0 6px;}
.legaldate{font-size:12.5px;color:var(--faint);margin-bottom:24px;}
.legalcontent{color:var(--dim);font-size:15px;line-height:1.7;max-width:720px;}
.legalcontent h2{color:var(--text);font-size:19px;margin:26px 0 10px;letter-spacing:-.3px;}
.legalcontent p{margin:0 0 14px;}
.legalcontent ul{margin:0 0 14px;padding-left:20px;}
.legalcontent li{margin-bottom:6px;}
.legalcontent a{color:var(--accent-bright);}
@media(max-width:760px){.legalwrap{grid-template-columns:1fr;gap:18px;}.legalnav{display:flex;flex-wrap:wrap;gap:6px;}.legalnav h3{width:100%;}}

/* ---- 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:linear-gradient(135deg,var(--accent-bright),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:7px;border-radius:var(--r-xs);background:var(--surface-2);overflow:hidden;}
.drow .dbar i{display:block;height:100%;background:linear-gradient(90deg,var(--accent-bright),var(--accent));}
.drow .dn{color:var(--faint);width:22px;text-align:right;}
.revform{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-sm);padding:16px;margin:6px 0 22px;}
.revlabel{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.6px;color:var(--faint);margin-bottom:7px;}
.starpick{display:flex;gap:4px;font-size:30px;color:#4a4954;cursor:pointer;margin-bottom:12px;width:max-content;}
.starpick span{transition:color .1s;}
.starpick span.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:13.5px;text-align:center;padding:18px 16px;margin:14px 0 0;
  border:1.5px dashed var(--border-strong);border-radius:var(--r-md);background:rgba(150,180,235,.03);}
.revnote a{color:var(--accent-bright);font-weight:700;}
.revlist{display:flex;flex-direction:column;}
.revitem{padding:16px 0;border-top:1px solid var(--border);}
.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:11.5px;color:var(--faint);}
.revstars{color:var(--gold-bright);font-size:13px;}
.revitem>p{font-size:14px;color:var(--dim);line-height:1.6;margin:0;}
.revreply{margin:12px 0 0 14px;padding:12px 14px;background:var(--surface);border-left:2px solid var(--accent);border-radius:0 var(--r-sm) var(--r-sm) 0;}
.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-top:14px;width:100%;padding:12px;border-radius:var(--r-sm);border:1px solid var(--border);background:var(--surface);color:var(--text);font-weight:700;font-size:13.5px;cursor:pointer;transition:.15s;}
.revmore:hover{background:var(--surface-2);border-color:var(--border-strong);}
.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:22px;}
.freqcloud-h{font-family:var(--mono);font-size:10px;font-weight:600;line-height:1;text-transform:uppercase;letter-spacing:.16em;color:var(--mute);margin-bottom:14px;}
.freqcloud-tags{display:flex;flex-wrap:wrap;gap:9px;align-items:center;}
.freqtag{display:inline-flex;padding:8px 14px;border-radius:var(--r-control);border:1px solid var(--border);background:var(--tile);color:var(--text-2);font-weight:500;font-size:12.5px;line-height:1;letter-spacing:-.01em;transition:.14s;}
.freqtag:hover{border-color:var(--accent-bright);color:var(--accent-bright);}
.freqtag.md{font-size:13px;color:var(--text-soft);}
.freqtag.lg{font-size:13.5px;font-weight:600;color:var(--text);border-color:var(--border-strong);}
.searchband .freqcloud{max-width:680px;margin-left:auto;margin-right:auto;}
.searchband .freqcloud-h{text-align:center;}
.searchband .freqcloud-tags{justify-content:center;}

/* 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:linear-gradient(135deg,var(--accent-bright),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;}
.mpop .leaflet-popup-content{margin:0;width:auto!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;}
.mpop-th{width:56px;height:56px;border-radius:var(--r-sm);flex-shrink:0;background-size:cover;background-position:center;border:1px solid var(--border);}
.mpop-b{display:flex;flex-direction:column;min-width:0;}
.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:0;z-index:0;}
.gimg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1;display:block;}
.gvideo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;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:linear-gradient(135deg,var(--accent-bright),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);}

/* ===== EXPERIENCE LANDING (dal file ufficiale, scoped) ===== */
.explanding{--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;
  --border:rgba(150,180,235,0.12); --border-strong:rgba(150,180,235,0.20);
  --text:#eaeefb; --dim:#93a2c4; --faint:#64748f;
  --accent-rgb:90,169,255;
  --accent:#2f8fd6; --accent-bright:#5aa9ff; --accent-glow:rgba(90,169,255,0.42);
  --accent-ink:#06182b;
  --violet:#8659c4; --online:#3fbf62; --wa:#25d366; --gold:#d7a94b; --gold-bright:#e6c97f;
  --r-control:999px; --r-lg:24px; --r-md:18px; --r-sm:12px; --r-xs:6px;
  --shadow:0 30px 70px -22px rgba(0,0,0,0.75);
  --font:"Archivo",system-ui,sans-serif; --mono:"IBM Plex Mono",monospace;
  --maxw:1240px; font-family:var(--font);font-size:16px;line-height:1.6;color:var(--text);-webkit-font-smoothing:antialiased;}
.explanding *{box-sizing:border-box;}
.explanding a{color:inherit;text-decoration:none;}
.explanding button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit;}
.explanding svg{display:block;}
.explanding .wrap{max-width:var(--maxw);margin:0 auto;padding:0 36px;}
.explanding .eyebrow{font-family:var(--mono);font-size:11.5px;letter-spacing:2.5px;text-transform:uppercase;color:var(--accent-bright);}
.explanding .ac-grad{background:linear-gradient(120deg,var(--accent-bright),var(--accent));-webkit-background-clip:text;background-clip:text;color:transparent;}
.explanding .nav-in{display:flex;align-items:center;gap:30px;height:80px;}
.explanding .nav-cats{display:flex;gap:26px;margin-left:8px;}
.explanding .nav-cats a{font-size:15.5px;font-weight:600;color:var(--dim);}
.explanding .nav-cats a.on{color:var(--accent-bright);}
.explanding .nav-cats a:hover{color:var(--text);}
.explanding .nav-right{margin-left:auto;display:flex;align-items:center;gap:12px;}
.explanding .btn-line{display:inline-flex;align-items:center;gap:10px;font-weight:700;font-size:14.5px;color:var(--text);padding:13px 22px;border-radius:var(--r-sm);border:1px solid var(--border-strong);transition:.15s;}
.explanding .btn-line:hover{background:var(--surface);border-color:var(--accent-glow);}
.explanding .pctx{display:flex;align-items:center;gap:16px;padding:16px 0 18px;border-bottom:1px solid var(--border);margin-bottom:4px;}
.explanding .pctx .pav{width:52px;height:52px;border-radius:var(--r-sm);flex-shrink:0;position:relative;background:radial-gradient(120% 100% at 45% 25%,#e7dce4,#b89aae 55%,#3a2c38);border:1px solid var(--border);}
.explanding .pctx .pav .onl{position:absolute;right:-3px;bottom:-3px;width:14px;height:14px;border-radius:50%;background:var(--online);border:3px solid var(--bg);}
.explanding .pctx .pnm{display:flex;align-items:center;gap:9px;}
.explanding .pctx .pnm b{font-size:18px;font-weight:700;}
.explanding .pctx .vk{width:20px;height:20px;border-radius:50%;background:linear-gradient(135deg,var(--accent-bright),var(--accent));display:grid;place-items:center;}
.explanding .pctx .psub{font-size:12.5px;color:var(--faint);margin-top:2px;display:flex;align-items:center;gap:8px;}
.explanding .pctx .pstar{color:var(--gold);}
.explanding .pctx .ptabs{margin-left:auto;display:flex;gap:4px;padding:5px;border-radius:var(--r-sm);background:var(--surface);border:1px solid var(--border);}
.explanding .pctx .ptabs a{padding:9px 16px;border-radius:var(--r-sm);font-size:13.5px;font-weight:600;color:var(--dim);transition:.14s;}
.explanding .pctx .ptabs a:hover{color:var(--text);}
.explanding .pctx .ptabs a.on{background:var(--surface-2);color:var(--text);}
.explanding .imgph{position:relative;overflow:hidden;background:linear-gradient(200deg,rgba(255,255,255,0.06),transparent 30%),radial-gradient(120% 110% at 60% 18%,#efd9e2 0%,#cba9bb 26%,#8a6c7e 58%,#241a25 100%);}
.explanding .imgph .lbl{position:absolute;left:14px;bottom:12px;font-family:var(--mono);font-size:10px;letter-spacing:1.5px;color:rgba(255,255,255,0.55);text-transform:uppercase;}
.explanding .imgph.alt{background:linear-gradient(200deg,rgba(255,255,255,0.05),transparent 30%),radial-gradient(120% 110% at 40% 14%,#e6d4dd 0%,#b58fa6 28%,#6f5463 60%,#1e1820 100%);}
.explanding .imgph.alt2{background:linear-gradient(200deg,rgba(255,255,255,0.05),transparent 30%),radial-gradient(120% 110% at 70% 20%,#d8cfe2 0%,#9f8fb4 30%,#5c5270 60%,#1a1820 100%);}
.explanding .hero{position:relative;border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--border-strong);box-shadow:var(--shadow);margin-top:22px;min-height:480px;display:flex;align-items:flex-end;}
.explanding .hero-img{position:absolute;inset:0;background:linear-gradient(160deg,rgba(255,255,255,0.05),transparent 26%),radial-gradient(120% 110% at 76% 6%,#f0d8e1 0%,#cda7ba 24%,#7e5f72 56%,#16111a 94%);}
.explanding .hero-img::after{content:"";position:absolute;inset:0;opacity:.26;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.4'/%3E%3C/svg%3E");}
.explanding .hero-veil{position:absolute;inset:0;background:linear-gradient(95deg,rgba(11,10,15,0.93) 30%,rgba(11,10,15,0.5) 56%,transparent 82%);}
.explanding .hero-in{position:relative;z-index:3;padding:44px 48px;}
.explanding .hero-tag{display:inline-flex;align-items:center;gap:11px;padding:8px 15px;border-radius:var(--r-control);border:1px solid var(--accent-glow);background:rgba(var(--accent-rgb),0.1);margin-bottom:20px;}
.explanding .hero-tag span{font-family:var(--mono);font-size:10.5px;letter-spacing:2.5px;text-transform:uppercase;color:var(--accent-bright);}
.explanding .hero h1{font-weight:800;font-size:clamp(40px,6vw,72px);line-height:0.98;letter-spacing:-2.4px;margin:0;max-width:16ch;}
.explanding .hero h1 em{font-style:italic;font-weight:600;}
.explanding .hero-sub{font-size:clamp(16px,1.7vw,20px);color:var(--dim);max-width:38ch;margin:18px 0 0;line-height:1.5;}
.explanding .hero-row{display:flex;align-items:center;gap:14px;margin-top:30px;flex-wrap:wrap;}
.explanding .hero-row .btn-line{background:rgba(10,9,14,0.4);backdrop-filter:blur(8px);}
.explanding .hero-meta{display:flex;gap:30px;margin-top:32px;border-top:1px solid var(--border);padding-top:20px;flex-wrap:wrap;}
.explanding .hero-meta .m small{font-family:var(--mono);font-size:10px;letter-spacing:1.5px;color:var(--faint);text-transform:uppercase;display:block;margin-bottom:5px;}
.explanding .hero-meta .m b{font-size:15px;font-weight:600;display:flex;align-items:center;gap:7px;}
.explanding .sec{padding:64px 0 0;}
.explanding .sec-head{text-align:center;margin-bottom:44px;}
.explanding .sec-head .eyebrow{display:block;margin-bottom:14px;}
.explanding .sec-head h2{font-size:clamp(28px,3.8vw,46px);font-weight:800;margin:0;letter-spacing:-1.4px;}
.explanding .sec-head p{color:var(--dim);max-width:52ch;margin:14px auto 0;font-size:15px;}
.explanding .manifesto{text-align:center;padding:72px 0 0;}
.explanding .manifesto .eyebrow{display:block;margin-bottom:24px;}
.explanding .manifesto p.big{font-size:clamp(28px,4.2vw,52px);line-height:1.18;font-weight:800;letter-spacing:-1.5px;max-width:20ch;margin:0 auto;}
.explanding .manifesto p.big .hl{font-style:italic;font-weight:600;}
.explanding .manifesto .small{font-size:15.5px;color:var(--dim);max-width:48ch;margin:30px auto 0;line-height:1.75;}
.explanding .pillars-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:48px;}
.explanding .pillar{border:1px solid var(--border);border-radius:var(--r-lg);background:linear-gradient(180deg,var(--surface),transparent);padding:30px 26px;transition:border-color .2s,transform .2s;}
.explanding .pillar:hover{border-color:var(--accent-glow);transform:translateY(-4px);}
.explanding .pillar .pn{font-family:var(--mono);font-size:14px;color:var(--accent-bright);letter-spacing:1px;}
.explanding .pillar h3{font-size:22px;font-weight:700;margin:14px 0 10px;letter-spacing:-0.5px;}
.explanding .pillar p{font-size:14.5px;color:var(--dim);margin:0;line-height:1.66;}
.explanding .gallery-head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:28px;gap:24px;}
.explanding .gallery-head .eyebrow{margin-bottom:12px;display:block;}
.explanding .gallery-head h2{font-size:clamp(28px,3.8vw,44px);font-weight:800;margin:0;letter-spacing:-1.2px;line-height:1.04;}
.explanding .gmosaic{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:190px;gap:14px;}
.explanding .gmosaic .imgph{border-radius:var(--r-md);}
.explanding .g-a{grid-column:span 2;grid-row:span 2;}
.explanding .g-b{grid-column:span 2;}
.explanding .g-tall{grid-row:span 2;}
.explanding .timeline{max-width:780px;margin:0 auto;position:relative;}
.explanding .timeline::before{content:"";position:absolute;left:118px;top:8px;bottom:8px;width:1px;background:linear-gradient(var(--accent-glow),var(--border),transparent);}
.explanding .tl-item{display:grid;grid-template-columns:104px 1fr;gap:40px;padding:18px 0;position:relative;}
.explanding .tl-time{font-family:var(--mono);font-size:11.5px;color:var(--accent-bright);text-align:right;padding-top:5px;letter-spacing:0.5px;}
.explanding .tl-dot{position:absolute;left:114px;top:25px;width:11px;height:11px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 5px var(--accent-glow);}
.explanding .tl-body h4{font-size:20px;font-weight:700;margin:0 0 6px;letter-spacing:-0.4px;}
.explanding .tl-body p{font-size:14px;color:var(--dim);margin:0;line-height:1.6;}
.explanding .tiers-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;align-items:stretch;margin-top:48px;}
.explanding .tier{position:relative;border:1px solid var(--border);border-radius:var(--r-lg);background:var(--card);overflow:hidden;display:flex;flex-direction:column;transition:transform .2s,border-color .2s;}
.explanding .tier:hover{transform:translateY(-6px);}
.explanding .tier.feat{border-color:var(--accent-glow);box-shadow:0 0 0 1px var(--accent-glow),0 30px 70px -30px var(--accent-glow);}
.explanding .tier-ph{height:180px;position:relative;}
.explanding .tier-ph .badge{position:absolute;top:14px;left:14px;font-family:var(--mono);font-size:10px;letter-spacing:1.5px;text-transform:uppercase;padding:6px 12px;border-radius:var(--r-control);background:rgba(10,9,13,0.6);backdrop-filter:blur(10px);border:1px solid var(--border);}
.explanding .tier.feat .tier-ph .badge{background:linear-gradient(135deg,var(--accent-bright),var(--accent));color:var(--accent-ink);border-color:transparent;font-weight:700;}
.explanding .tier-body{padding:26px;display:flex;flex-direction:column;flex:1;}
.explanding .tier-body h3{font-size:26px;font-weight:800;margin:0;letter-spacing:-0.8px;}
.explanding .tier-dur{font-family:var(--mono);font-size:11px;letter-spacing:1.2px;text-transform:uppercase;color:var(--faint);margin-top:7px;}
.explanding .tier-desc{font-size:14px;color:var(--dim);margin:15px 0 20px;line-height:1.6;}
.explanding .tier-incl{list-style:none;padding:0;margin:0 0 24px;display:flex;flex-direction:column;gap:11px;}
.explanding .tier-incl li{display:flex;gap:11px;font-size:13.5px;color:var(--text);align-items:flex-start;}
.explanding .tier-incl li svg{flex-shrink:0;margin-top:2px;color:var(--accent-bright);}
.explanding .tier-foot{margin-top:auto;}
.explanding .tier-price{display:flex;align-items:baseline;gap:8px;padding-top:20px;border-top:1px solid var(--border);margin-bottom:18px;}
.explanding .tier-price .cur{font-size:20px;color:var(--dim);font-weight:600;}
.explanding .tier-price b{font-size:40px;font-weight:800;letter-spacing:-1.5px;line-height:1;}
.explanding .tier-price small{font-size:12px;color:var(--faint);}
.explanding .tier .btn-accent, .explanding .tier .btn-line{width:100%;justify-content:center;border-radius:var(--r-sm);}
.explanding .host-grid{display:grid;grid-template-columns:0.82fr 1.18fr;gap:54px;align-items:center;margin-top:8px;}
.explanding .host-ph{aspect-ratio:4/5;border-radius:var(--r-lg);}
.explanding .host .eyebrow{display:block;margin-bottom:16px;}
.explanding .host h2{font-size:clamp(28px,3.6vw,44px);font-weight:800;margin:0 0 20px;letter-spacing:-1.2px;line-height:1.05;}
.explanding .host h2 em{font-style:italic;font-weight:600;}
.explanding .host p{font-size:15.5px;color:var(--dim);line-height:1.8;margin:0 0 18px;max-width:56ch;}
.explanding .host .sig{font-style:italic;font-weight:600;font-size:24px;color:var(--text);margin-top:24px;}
.explanding .host-stats{display:flex;gap:36px;margin-top:30px;}
.explanding .host-stats .hs b{font-size:28px;font-weight:800;display:block;line-height:1;letter-spacing:-1px;}
.explanding .host-stats .hs b .star{color:var(--gold);}
.explanding .host-stats .hs small{font-size:11.5px;color:var(--faint);font-family:var(--mono);letter-spacing:0.5px;text-transform:uppercase;}
.explanding .voices-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:8px;}
.explanding .voice{border:1px solid var(--border);border-radius:var(--r-lg);background:linear-gradient(180deg,var(--surface),transparent);padding:26px;}
.explanding .voice .stars{color:var(--gold);font-size:14px;letter-spacing:2px;}
.explanding .voice p{font-size:17px;line-height:1.5;color:var(--text);font-style:italic;font-weight:500;margin:13px 0 18px;}
.explanding .voice .who{display:flex;align-items:center;gap:11px;}
.explanding .voice .who .av{width:36px;height:36px;border-radius:50%;background:linear-gradient(140deg,#c9a9bb,#5c4655);}
.explanding .voice .who b{font-size:13.5px;}
.explanding .voice .who small{font-size:11.5px;color:var(--faint);display:block;}
.explanding .disc-card{border:1px solid var(--border);border-radius:var(--r-lg);background:linear-gradient(150deg,rgba(var(--accent-rgb),0.06),var(--surface-solid) 55%);padding:48px;display:grid;grid-template-columns:1fr 1fr;gap:46px;align-items:center;margin-top:8px;}
.explanding .disc-card .eyebrow{display:block;margin-bottom:16px;}
.explanding .disc-card h2{font-size:clamp(26px,3.2vw,40px);font-weight:800;margin:0 0 16px;letter-spacing:-1px;line-height:1.1;}
.explanding .disc-card .lead{color:var(--dim);font-size:15px;line-height:1.7;}
.explanding .disc-list{display:flex;flex-direction:column;gap:18px;}
.explanding .disc-list .di{display:flex;gap:16px;}
.explanding .disc-list .di .ic{width:46px;height:46px;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;}
.explanding .disc-list .di b{font-size:15px;display:block;margin-bottom:3px;}
.explanding .disc-list .di p{font-size:13px;color:var(--dim);margin:0;line-height:1.55;}
.explanding .final{position:relative;border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--border-strong);margin-top:64px;padding:96px 0;text-align:center;}
.explanding .final-img{position:absolute;inset:0;background:radial-gradient(120% 110% at 50% 0%,#cda7ba 0%,#7e5f72 36%,#16111a 84%);opacity:0.55;}
.explanding .final-veil{position:absolute;inset:0;background:linear-gradient(rgba(11,11,15,0.4),rgba(11,11,15,0.82) 60%,var(--bg));}
.explanding .final-glow{position:absolute;top:-10%;left:50%;transform:translateX(-50%);width:60%;height:60%;background:radial-gradient(circle,var(--accent-glow),transparent 64%);filter:blur(54px);}
.explanding .final-in{position:relative;z-index:3;padding:0 24px;}
.explanding .final .eyebrow{display:block;margin-bottom:22px;}
.explanding .final h2{font-size:clamp(34px,5vw,64px);font-weight:800;line-height:1.0;letter-spacing:-2px;margin:0 auto;max-width:18ch;}
.explanding .final h2 em{font-style:italic;font-weight:600;}
.explanding .final p{font-size:16px;color:var(--dim);max-width:46ch;margin:22px auto 32px;}
.explanding .final-row{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;}
.explanding .final-row .btn-line{background:rgba(10,9,14,0.4);}
.explanding .final-note{font-family:var(--mono);font-size:11px;letter-spacing:1px;color:var(--faint);margin-top:26px;}
.explanding .sticky-cta{position:fixed;bottom:0;left:0;right:0;z-index:55;display:none;padding:13px 18px;background:rgba(11,11,15,0.92);backdrop-filter:blur(14px);border-top:1px solid var(--border);align-items:center;gap:14px;}
.explanding .sticky-cta .sp small{font-family:var(--mono);font-size:9px;letter-spacing:1px;color:var(--faint);text-transform:uppercase;display:block;}
.explanding .sticky-cta .sp b{font-size:16px;font-weight:800;}
.explanding .sticky-cta .btn-accent{margin-left:auto;padding:13px 22px;}
@media(max-width:980px){
.explanding .nav-cats{display:none;}
.explanding .pctx{flex-wrap:wrap;}
.explanding .pctx .ptabs{margin-left:0;width:100%;overflow-x:auto;}
.explanding .pillars-grid, .explanding .tiers-grid, .explanding .voices-grid{grid-template-columns:1fr;}
.explanding .gmosaic{grid-template-columns:repeat(2,1fr);grid-auto-rows:165px;}
.explanding .g-a{grid-column:span 2;}
.explanding .host-grid, .explanding .disc-card{grid-template-columns:1fr;gap:30px;}
.explanding .disc-card{padding:30px;}
.explanding .timeline::before{left:84px;}
.explanding .tl-dot{left:80px;}
.explanding .tl-item{grid-template-columns:72px 1fr;gap:24px;}
.explanding .hero-in{padding:32px 26px;}
.explanding .sticky-cta{display:flex;}
}
@media(max-width:560px){
.explanding .wrap{padding:0 20px;}
.explanding .gmosaic{grid-template-columns:1fr;grid-auto-rows:200px;}
.explanding .g-a, .explanding .g-b{grid-column:span 1;}
.explanding .host-stats{gap:24px;}
.explanding .nav-right .btn-ghost{display:none;}
}

/* fix landing: spazio breadcrumb + override margine globale .psub */
.explanding .crumb{padding-top:18px;}
.explanding .pctx .psub{margin:2px 0 0;}


/* ===== 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);}

/* ===== MEMBERSHIP PREMIUM =============================================== */
.premwrap{padding-top:34px;padding-bottom:60px;}
.premhero{text-align:center;max-width:640px;margin:0 auto 38px;}
.premtag{font:600 10px/1 var(--mono);letter-spacing:.16em;color:var(--accent-bright);}
.premhero h1{margin:14px 0 0;font-size:44px;font-weight:800;letter-spacing:-1.2px;}
.premhero h1 .ac{color:var(--accent-bright);}
.premhero p{margin:14px 0 0;font-size:16px;color:var(--dim);line-height:1.55;}
.premlive{margin-top:18px;padding:11px 18px;border-radius:var(--r-control);display:inline-flex;gap:9px;align-items:center;
  background:rgba(var(--accent-rgb),.1);border:1px solid var(--accent-glow);font-size:13.5px;font-weight:600;}
.premperks{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:34px;}
.perk{padding:20px;border-radius:var(--r-md);background:var(--surface);border:1px solid var(--border);}
.perk b{display:block;font-size:14.5px;margin-bottom:7px;}
.perk span{font-size:13px;color:var(--dim);line-height:1.5;}
.premplans{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
.premplan{position:relative;padding:30px 24px;border-radius:var(--r-lg);background:var(--surface-solid);
  border:1px solid var(--border);text-align:center;}
.premplan.feat{border-color:var(--accent-glow);background:linear-gradient(160deg,rgba(var(--accent-rgb),.09),var(--surface-solid) 60%);}
.prembest{position:absolute;top:-11px;left:50%;transform:translateX(-50%);padding:4px 13px;border-radius:var(--r-control);
  background:var(--accent-bright);color:var(--accent-ink);font-size:11px;font-weight:800;white-space:nowrap;}
.premplan h3{margin:0;font-size:17px;font-weight:700;}
.premprice{margin:14px 0 2px;font-size:40px;font-weight:800;letter-spacing:-1.5px;}
.premprice span{font-size:20px;margin-left:2px;}
.permonth{font-size:12.5px;color:var(--faint);margin-bottom:18px;}
.premplan .btn-accent{width:100%;}
.premwallet{margin-top:22px;text-align:center;font-size:13px;}
.premwallet a{color:var(--accent-bright);font-weight:600;}
@media(max-width:900px){.premperks{grid-template-columns:repeat(2,1fr);}.premplans{grid-template-columns:1fr;}}
@media(max-width:560px){.premperks{grid-template-columns:1fr;}.premhero h1{font-size:32px;}}

/* ===== 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:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--faint);font-weight:700;}
.legal-tab td{padding:11px 12px;border-bottom:1px solid var(--border);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);}
}
