:root{
  --bg:#0c0b10; --bg2:#15131c; --card:#1b1826; --line:#2a2636;
  --text:#ece9f3; --muted:#9b93ad; --accent:#d6336c; --accent2:#7048e8;
  --radius:14px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  background:var(--bg); color:var(--text);
  font:16px/1.55 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none}
.container{max-width:960px;margin:0 auto;padding:28px 20px 64px}

/* Header */
.site-header{
  position:sticky;top:0;z-index:10;
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:14px 20px;background:rgba(12,11,16,.85);backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);
}
.brand{display:flex;align-items:center;flex:0 0 auto}
.brand img{display:block;height:30px;width:auto}
@media(max-width:560px){.brand img{height:24px}}
.mainnav{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.mainnav>a,.mainnav summary{color:var(--muted);font-weight:600;font-size:15px}
.mainnav>a:hover,.mainnav summary:hover{color:var(--text)}

/* ── Gruppi a tendina della nav ────────────────────────────────────
   Costruiti su <details>: si aprono al clic e da tastiera senza JS. Il
   pannello e' in position:absolute cosi' non allarga la barra; su schermi
   stretti torna in linea, perche' una tendina sovrapposta su 320px di
   larghezza copre tutto il resto. */
.navgroup{position:relative}
.navgroup>summary{
  list-style:none;cursor:pointer;user-select:none;
  display:inline-flex;align-items:center;gap:5px;
}
.navgroup>summary::-webkit-details-marker{display:none}
.navgroup>summary::after{
  content:"";width:5px;height:5px;margin-top:-3px;
  border-right:2px solid currentColor;border-bottom:2px solid currentColor;
  transform:rotate(45deg);transition:transform .15s;
}
.navgroup[open]>summary{color:var(--text)}
.navgroup[open]>summary::after{transform:rotate(-135deg);margin-top:1px}
.navmenu{
  position:absolute;top:calc(100% + 10px);left:-14px;z-index:20;
  min-width:210px;display:flex;flex-direction:column;
  background:var(--card);border:1px solid var(--line);border-radius:12px;
  padding:8px;box-shadow:0 14px 34px rgba(0,0,0,.45);
}
.navmenu a{
  color:var(--muted);font-weight:500;font-size:15px;
  padding:8px 10px;border-radius:8px;white-space:nowrap;
}
.navmenu a:hover{color:var(--text);background:var(--bg2)}
/* Pulsante «Menu»: solo su schermi stretti (vedi sotto). */
.nav-toggle{display:none;align-items:center;gap:8px;background:transparent;color:var(--text);
  border:1px solid var(--line);border-radius:10px;padding:8px 12px;font-family:inherit;font-weight:600;font-size:15px;line-height:1;cursor:pointer}
.nav-toggle:hover{border-color:var(--accent)}
.nav-toggle-ico,.nav-toggle-ico::before,.nav-toggle-ico::after{
  display:block;width:18px;height:2px;background:currentColor;border-radius:2px;transition:transform .15s,opacity .15s}
.nav-toggle-ico{position:relative}
.nav-toggle-ico::before,.nav-toggle-ico::after{content:"";position:absolute;left:0}
.nav-toggle-ico::before{top:-6px}
.nav-toggle-ico::after{top:6px}
.nav-open .nav-toggle-ico{background:transparent}
.nav-open .nav-toggle-ico::before{transform:translateY(6px) rotate(45deg)}
.nav-open .nav-toggle-ico::after{transform:translateY(-6px) rotate(-45deg)}
@media(max-width:760px){
  .site-header{flex-wrap:wrap;padding:10px 16px;gap:10px}
  .nav-toggle{display:inline-flex}
  /* la nav si apre a tutta larghezza sotto il logo, con voci grandi da toccare */
  .mainnav{display:none;width:100%;flex-direction:column;align-items:stretch;gap:0;
    max-height:calc(100vh - 64px);overflow-y:auto;padding-bottom:6px}
  .nav-open .mainnav{display:flex}
  .mainnav>a,.navgroup>summary{display:flex;padding:13px 4px;font-size:16px;border-top:1px solid var(--line)}
  .navgroup>summary{justify-content:space-between}
  .navgroup>summary::after{margin-right:6px}
  .navgroup{position:static;width:100%}
  .navmenu{position:static;min-width:0;box-shadow:none;border:0;background:transparent;
    padding:0 0 8px 12px;margin:0}
  .navmenu a{white-space:normal;padding:10px 8px;font-size:15px}
  /* senza JavaScript il pulsante non serve: la nav resta visibile come prima */
  .no-js .nav-toggle{display:none}
  .no-js .mainnav{display:flex}
}

/* ── Banner di marca (solo home) ───────────────────────────────────
   L'immagine e' 1717x916, cioe' quasi 2:1: in una fascia bassa a tutta
   larghezza andrebbe per forza ritagliata, e si vedrebbe una striscia in
   mezzo alle lettere. Qui la lascio nel suo rapporto naturale, con un
   tetto d'altezza per non mangiarsi lo schermo sui monitor larghi. Nelle
   pagine interne il marchio sta nella barra in alto (.brand). */
.brand-banner{display:block;line-height:0;background:transparent}
.brand-banner img{display:block;width:100%;height:auto;
  max-height:min(46vh,420px);object-fit:cover;object-position:center}
.age-brand{display:block;width:100%;height:auto;border-radius:12px;margin-bottom:16px}

/* Hero */
.hero{padding:36px 0 26px;border-bottom:1px solid var(--line);margin-bottom:26px}
.hero h1{font-size:clamp(28px,5vw,44px);line-height:1.1;margin:0 0 12px}
.accent{color:var(--accent)}
.lead{color:var(--muted);font-size:18px;max-width:60ch;margin:0 0 20px}
.cta-row{display:flex;gap:12px;flex-wrap:wrap}
.btn{
  display:inline-block;background:var(--accent);color:#fff;border:0;cursor:pointer;
  padding:11px 18px;border-radius:999px;font-weight:700;font-size:15px;
}
.btn:hover{filter:brightness(1.08)}
.btn-ghost{background:transparent;border:1px solid var(--line);color:var(--text)}

/* Sections */
section{margin:30px 0}
.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:14px}
.section-head h1,.section-head h2{margin:0;font-size:22px}
.more{color:var(--accent);font-weight:600;font-size:14px}
.muted{color:var(--muted)}
.small{font-size:13px}

/* Cards */
.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}
.card{
  display:block;background:var(--card);border:1px solid var(--line);
  border-radius:var(--radius);padding:16px;transition:.15s;
}
.card:hover{border-color:var(--accent);transform:translateY(-2px)}
.card-date{color:var(--accent);font-weight:700;font-size:13px;margin-bottom:6px}
.card-title{font-weight:700;font-size:17px;margin-bottom:8px}
.card-meta{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:13px}
.card-featured{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}
.region-card{text-align:center}
.region-card-img{width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:12px;background:var(--bg2);margin-bottom:10px}
.back-nav{display:flex;flex-wrap:wrap;gap:14px;align-items:center}
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;margin:12px 0 8px}
.gallery-item{display:block;border-radius:12px;overflow:hidden;background:var(--bg2);border:1px solid var(--line)}
.gallery-item img{width:100%;aspect-ratio:1/1;object-fit:cover;display:block;transition:transform .2s}
.gallery-item:hover img{transform:scale(1.04)}

/* Chips / tags */
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{background:var(--bg2);border:1px solid var(--line);padding:7px 12px;border-radius:999px;font-size:14px}
.chip:hover{border-color:var(--accent)}
.chip-active{background:var(--accent);border-color:var(--accent);color:#fff}
.chip b{color:var(--accent);margin-left:4px}
.chip-active b{color:#fff;opacity:.85}
.tag{background:rgba(214,51,108,.15);color:#ff7aa8;border:1px solid rgba(214,51,108,.3);padding:2px 9px;border-radius:999px;font-size:12px;font-weight:600}
.tag-tipo{background:rgba(140,160,255,.14);color:#a9b7ff;border-color:rgba(140,160,255,.3)}

/* Filtro per tipo di evento (chip in evidenza sopra la lista) */
.filter-tipi{margin:0 0 20px}
.filter-label{display:block;margin-bottom:8px;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.08em}

/* Event list */
.filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:20px}
.filters input,.filters select{
  background:var(--bg2);border:1px solid var(--line);color:var(--text);
  padding:10px 12px;border-radius:10px;font-size:15px
}
.filters input[type=search]{flex:1;min-width:180px}

/* Intervallo di date: chiuso di default, aperto se un intervallo e' attivo,
   cosi' i due campi non rubano spazio a chi usa i chip rapidi. */
.date-range{margin-top:10px}
.date-range>summary{
  cursor:pointer;color:var(--muted);font-size:14px;
  display:inline-block;padding:4px 0;
}
.date-range>summary:hover{color:var(--text)}
.filters-date{margin:10px 0 0;align-items:center}
.filters-date label{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:14px}

/* Paginazione della lista eventi */
.pager{display:flex;align-items:center;justify-content:center;gap:14px;margin:26px 0 0;flex-wrap:wrap}
.event-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.event-row{display:flex;gap:16px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;transition:.15s}
.event-row:hover{border-color:var(--accent)}
.er-date{min-width:180px;display:flex;flex-direction:column}
.er-day{font-weight:700;color:var(--accent);font-size:14px}
.er-time{color:var(--muted);font-size:13px}
.er-title{font-weight:700;font-size:17px;margin-bottom:6px}
.er-meta{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:13px}
@media(max-width:560px){.event-row{flex-direction:column;gap:6px}.er-date{min-width:0;flex-direction:row;gap:8px}}

/* Detail */
.back{color:var(--muted);font-size:14px;display:inline-block;margin-bottom:12px}
.event-detail h1{font-size:28px;margin:6px 0 18px}
.ed-facts{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;margin-bottom:22px}
.ed-facts .k{display:block;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.5px}
.ed-facts .v{font-weight:600}
.ed-facts a{color:#ff7aa8}
.prose{max-width:70ch;color:#d8d3e4}
.prose a{color:#ff7aa8;text-decoration:underline}

/* Footer */
.site-footer{border-top:1px solid var(--line);padding:26px 20px;text-align:center;color:var(--muted);font-size:14px}

/* Indice di tutte le sezioni, in fondo a ogni pagina. */
.footer-index{
  max-width:960px;margin:0 auto 26px;text-align:left;
  display:grid;gap:22px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
}
.fi-col{display:flex;flex-direction:column;gap:7px}
.fi-col h2{
  margin:0 0 4px;font-size:12px;letter-spacing:.09em;text-transform:uppercase;
  color:var(--text);opacity:.55;font-weight:700;
}
.fi-col a{color:var(--muted)}
.fi-col a:hover{color:var(--accent)}

/* Age gate */
.age-body{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:20px;
  background:radial-gradient(1200px 600px at 50% -10%,rgba(112,72,232,.25),transparent),var(--bg)}
.age-card{max-width:440px;background:var(--card);border:1px solid var(--line);border-radius:20px;padding:32px;text-align:center}
.age-card h1{font-size:24px;margin:6px 0 12px}
.age-card p{color:var(--muted)}
.age-card .cta-row{justify-content:center;margin-top:18px}

/* Locandine eventi (immagini remote: riservo spazio per evitare salti di layout) */
.er-thumb{width:76px;height:76px;object-fit:cover;border-radius:10px;flex:0 0 auto;background:var(--bg2)}
.card-img{width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:10px;margin-bottom:10px;background:var(--bg2)}
/* Copertine di libri e locandine: sono verticali, in un riquadro 16/10 se
   ne vedrebbe solo una striscia. `contain` le mostra intere, il riquadro
   resta della stessa altezza per tutte e la griglia non balla. */
.card-img-poster{aspect-ratio:2/3;object-fit:contain;background:var(--bg2)}
.ed-locandina{width:100%;max-width:520px;height:auto;border-radius:14px;margin:6px 0 18px;background:var(--bg2)}
@media (max-width:520px){.er-thumb{width:56px;height:56px}}
.avatar-big{width:140px;height:140px;object-fit:cover;border-radius:50%;margin:6px 0 16px;background:var(--bg2)}

/* ── Pagina regione (hub) ─────────────────────────────────────── */
.region-hero{display:flex;gap:22px;align-items:flex-end;margin:8px 0 22px;flex-wrap:wrap}
.region-hero-img{width:260px;max-width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:16px;background:var(--bg2)}
.region-hero-body{flex:1;min-width:260px}
.region-jump{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
.region-jump a{font-size:13px;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:5px 12px;text-decoration:none}
.region-jump a:hover{border-color:var(--accent);color:var(--text)}

.tg-strip{display:flex;gap:10px;align-items:center;flex-wrap:wrap;background:var(--card);
  border:1px solid var(--line);border-radius:14px;padding:14px 16px;margin-bottom:22px}
.tg-strip>span{color:var(--muted);font-size:14px}
.btn-tg{background:#229ED4;color:#fff;border:0;padding:8px 14px;border-radius:10px;
  font-weight:600;font-size:14px;text-decoration:none}
.btn-tg:hover{filter:brightness(1.08)}

h3.sub{margin:22px 0 12px;font-size:16px;color:var(--muted);font-weight:600}
.people{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.person{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;
  background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px 10px;text-decoration:none;transition:.15s}
.person:hover{border-color:var(--accent);transform:translateY(-2px)}
.avatar{width:64px;height:64px;border-radius:50%;object-fit:cover;background:var(--bg2)}
.avatar-ph{display:flex;align-items:center;justify-content:center;font-size:26px;font-weight:700;color:var(--accent)}
.person-name{font-weight:600;font-size:14px}
.person-tg{font-size:12px;color:var(--accent)}
.event-list.past .event-row{opacity:.75}
.event-list.past .event-row:hover{opacity:1}

/* ── Chi siamo ─────────────────────────────────────────────────── */
.about-intro{max-width:720px}
.values{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin:26px 0}
.value{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:18px}
.value h3{margin:0 0 8px;font-size:16px}
.value p{margin:0;color:var(--muted);font-size:14px}

.cta-tg{margin:30px 0 10px;border-radius:20px;padding:2px;
  background:linear-gradient(120deg,#229ED4,var(--accent2))}
.cta-tg-inner{display:flex;align-items:center;gap:20px;flex-wrap:wrap;
  background:var(--bg2);border-radius:18px;padding:26px 28px}
.cta-tg-icon{color:#229ED4;flex:0 0 auto}
.cta-tg-text{flex:1;min-width:220px}
.cta-tg-text h2{margin:0 0 6px}
.cta-tg-text p{margin:0;color:var(--muted)}
.btn-tg-big{background:#229ED4;color:#fff;border:0;padding:14px 22px;border-radius:12px;
  font-weight:700;font-size:15px;text-decoration:none;white-space:nowrap}
.btn-tg-big:hover{filter:brightness(1.08)}
@media(max-width:560px){.cta-tg-inner{flex-direction:column;text-align:center}.btn-tg-big{width:100%;text-align:center}}
.footer-tg{display:inline-block;margin-bottom:12px}

/* ── Home ─────────────────────────────────────────────────────── */
.home-hero{
  position:relative;border-radius:22px;overflow:hidden;margin:6px 0 30px;
  padding:64px 40px;min-height:340px;display:flex;align-items:flex-end;
  background:linear-gradient(180deg,rgba(12,11,16,.35),rgba(12,11,16,.92)),
             radial-gradient(900px 400px at 80% -10%,rgba(112,72,232,.4),transparent),
             var(--bg2);
}
.home-hero[style*="--hero"]{
  background:linear-gradient(180deg,rgba(12,11,16,.35),rgba(12,11,16,.92)),
             var(--hero) center/cover no-repeat,var(--bg2);
}
.home-hero-inner{position:relative;max-width:640px}
.home-hero h1{font-size:clamp(28px,5vw,46px);line-height:1.08;margin:0 0 14px;
  text-shadow:0 2px 24px rgba(0,0,0,.5)}
.home-hero .lead{margin-bottom:22px}
@media(max-width:560px){.home-hero{padding:40px 22px;min-height:280px}}

.richiamo{background:var(--card);border:1px solid var(--line);border-radius:18px;
  padding:26px 28px;margin:30px 0}
.richiamo-body h2{margin:0 0 8px;font-size:22px}
.richiamo-body p{margin:0 0 12px;color:var(--muted);max-width:70ch}

.box-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}
.nav-box{display:flex;flex-direction:column;gap:4px;background:var(--card);
  border:1px solid var(--line);border-radius:var(--radius);padding:20px;transition:.15s}
.nav-box:hover{border-color:var(--accent);transform:translateY(-2px)}
.nav-box-ico{font-size:28px;line-height:1;margin-bottom:6px}
.nav-box-title{font-weight:700;font-size:18px}
.nav-box-desc{color:var(--muted);font-size:14px}
.nav-box-n{color:var(--accent);font-size:13px;font-weight:600;margin-top:6px}

.pratica-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:14px}
.pratica-card{position:relative;border-radius:var(--radius);overflow:hidden;
  border:1px solid var(--line);aspect-ratio:1;display:flex;align-items:flex-end;
  background:var(--bg2);transition:.15s}
.pratica-card:hover{border-color:var(--accent);transform:translateY(-2px)}
.pratica-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.pratica-img-ph{display:flex;align-items:center;justify-content:center;font-size:44px}
.pratica-name{position:relative;z-index:1;width:100%;padding:26px 14px 12px;
  font-weight:700;font-size:15px;
  background:linear-gradient(180deg,transparent,rgba(12,11,16,.9))}

/* CTA "Contatta / Iscriviti" nella scheda evento */
.event-cta-wrap{margin:24px 0 8px}
.btn-cta{font-size:16px;padding:12px 28px;font-weight:700;border-radius:10px}
/* Copertina degli eventi ricorrenti (allineata alla locandina evento) */
.ed-cover{max-width:100%;border-radius:12px;margin:8px 0 16px;display:block}

/* Contenuto articoli scritto con l'editor (CKEditor 5) dentro .prose */
.prose h2{font-size:20px;margin:24px 0 10px}
.prose h3{font-size:17px;margin:20px 0 8px}
.prose img{max-width:100%;height:auto;border-radius:10px}
.prose figure{margin:16px 0}
.prose figure.image img{width:100%}
.prose figcaption{color:var(--muted);font-size:13px;margin-top:6px;text-align:center}
.prose .image-style-align-center{margin-left:auto;margin-right:auto}
.prose .image-style-align-left{float:left;margin:6px 18px 12px 0;max-width:50%}
.prose .image-style-align-right{float:right;margin:6px 0 12px 18px;max-width:50%}
.prose table{width:100%;border-collapse:collapse;margin:16px 0;font-size:15px}
.prose th,.prose td{border:1px solid var(--line);padding:8px 10px;text-align:left}
.prose blockquote{border-left:3px solid var(--accent);margin:14px 0;padding:4px 14px;color:var(--muted)}

/* Mappa d'Italia (Leaflet) */
#map{height:72vh;min-height:440px;width:100%;border:1px solid var(--line);border-radius:14px;
  background:var(--bg2);z-index:0}
.map-filtri{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px}
.map-chip{display:inline-flex;align-items:center;gap:8px;background:var(--card);
  border:1px solid var(--line);border-radius:999px;padding:7px 13px;font-size:14px;cursor:pointer;user-select:none}
.map-chip:hover{border-color:var(--accent)}
.map-chip input{accent-color:var(--accent);margin:0}
.map-chip .dot{width:11px;height:11px;border-radius:50%;display:inline-block}
.map-chip b{color:var(--muted);font-weight:600}
/* punti non collocabili: elencati sotto la mappa invece di sparire */
.map-avviso{margin:14px 0 0;padding:12px 14px;background:var(--card);
  border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:10px;font-size:14px}
.map-avviso ul{margin:8px 0 0;padding-left:20px}
.map-avviso li{margin:3px 0}
/* elenco degli appuntamenti dentro il popup di un locale/serie */
.map-pop-ev{margin-top:8px;padding-top:8px;border-top:1px solid var(--line)}
.map-pop-ev ul{margin:4px 0 0;padding-left:18px}
.map-pop-ev li{margin:4px 0}
/* popup Leaflet in tema scuro */
.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:var(--card);color:var(--text);
  border:1px solid var(--line)}
.leaflet-popup-content a{color:#ff7aa8}
.leaflet-container{font:inherit}

/* Domande frequenti in coda alla pagina (vedi content/faq.py).
   Accordion: la prima risposta resta aperta, cosi' la sezione si legge per
   quello che e' anche senza cliccare, e il resto non allunga la pagina. */
.faq{margin:46px 0 6px;padding-top:22px;border-top:1px solid var(--line)}
.faq-titolo{font-size:20px;margin:0 0 14px}
.faq-voce{background:var(--card);border:1px solid var(--line);border-radius:12px;
  margin:0 0 10px;overflow:hidden}
.faq-voce[open]{border-color:var(--accent)}
.faq-voce summary{cursor:pointer;list-style:none;padding:13px 42px 13px 15px;position:relative}
.faq-voce summary::-webkit-details-marker{display:none}
.faq-voce summary::after{content:"+";position:absolute;right:16px;top:9px;
  color:var(--accent);font-size:22px;line-height:1.3}
.faq-voce[open] summary::after{content:"–"}
.faq-voce summary:hover{color:var(--accent)}
.faq-d{display:inline;margin:0;font-size:16px;font-weight:600;line-height:1.4}
.faq-r{padding:0 15px 14px;color:var(--muted);font-size:15px;line-height:1.65}
.faq-r p{margin:0 0 8px}

/* Tipi di evento */
.tipo-sezione{max-width:none;border-top:1px solid var(--line);padding-top:8px;margin-top:28px;scroll-margin-top:80px}
.tipo-sezione > p,.tipo-sezione > ul,.tipo-sezione > h3{max-width:70ch}
.tipo-sezione .event-list{padding:0;margin:16px 0 0}
.tipo-sezione .event-list a{text-decoration:none}
.tipo-cta{margin:16px 0 8px;align-items:center}
.tipo-cta .btn{text-decoration:none;color:#fff}
.tipo-cta .btn-ghost{color:var(--text)}
.tipo-info{margin:-4px 0 16px;font-size:14px}
.tipo-info a{color:#ff7aa8;text-decoration:underline}

/* Age gate sovrapposto (la pagina sotto resta nel DOM per i crawler) */
body.age-locked{overflow:hidden}
.age-overlay{position:fixed;inset:0;z-index:1000;background:var(--bg);overflow:auto;
  display:flex;align-items:center;justify-content:center;padding:20px}
.age-overlay .age-titolo{font-size:24px;font-weight:700;color:var(--text);margin:6px 0 12px}

/* Banner cookie (sopra anche all'age gate) */
.cookie-banner{position:fixed;left:16px;right:16px;bottom:16px;z-index:1100;max-width:640px;margin:0 auto;
  background:var(--card);border:1px solid var(--line);border-radius:14px;padding:18px 44px 16px 18px;
  box-shadow:0 10px 40px rgba(0,0,0,.5);font-size:14px;color:#d8d3e4}
.cookie-banner[hidden]{display:none}
.cookie-banner p{margin:0 0 12px}
.cookie-banner a{color:#ff7aa8;text-decoration:underline}
.cookie-banner .cookie-titolo{font-weight:700;font-size:16px;color:var(--text);margin-bottom:6px}
.cookie-banner .cta-row{justify-content:flex-end}
.cookie-banner .btn{min-width:110px}
.cookie-x{position:absolute;top:8px;right:10px;background:none;border:0;color:var(--muted);font-size:24px;line-height:1;cursor:pointer;padding:4px 8px}
.cookie-x:hover{color:var(--text)}
.footer-legal{text-align:center;font-size:13px;margin-top:14px}
.footer-legal a,.footer-legal button{color:var(--muted);text-decoration:underline;background:none;border:0;font:inherit;cursor:pointer;padding:0}


/* KinkOn Festival: pagina e box in home */
.kinkon-hero img{display:block;width:100%;height:auto;border-radius:16px;margin-bottom:8px}
.kinkon-edizione{margin:22px 0}
.kinkon-box{display:grid;grid-template-columns:1.1fr 1fr;align-items:center;gap:0;margin:28px 0;
  background:var(--card);border:1px solid var(--line);border-radius:18px;overflow:hidden;text-decoration:none;color:inherit}
.kinkon-box:hover{border-color:#e64980}
.kinkon-box img{display:block;width:100%;height:100%;object-fit:cover;min-height:200px}
.kinkon-box-body{display:flex;flex-direction:column;gap:8px;padding:22px 24px}
.kinkon-box-kicker{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:#ff7aa8;font-weight:700}
.kinkon-box-title{font-size:24px;font-weight:800}
.kinkon-box-text{color:var(--muted);font-size:15px}
.kinkon-box .btn{align-self:flex-start;margin-top:6px}
@media(max-width:700px){.kinkon-box{grid-template-columns:1fr}.kinkon-box img{min-height:0}}
/* pulsanti dentro i testi: non devono ereditare lo stile dei link (.prose a) */
.prose a.btn{color:#fff;text-decoration:none}
.prose a.btn-ghost{color:var(--text)}
