/*
Theme Name: Envyda AI - casa + cosmo
Theme URI: https://www.envyda.ai
Author: Envyda (Leo & Evan)
Description: Tema custom del mondo AI di Envyda (anima casa + cosmo). Generato da prototipo-hero via build-theme.ps1.
Version: 3.14
Requires at least: 6.0
Requires PHP: 7.4
*/

:root{
  --cosmo-900:#0b0b0d; --cosmo-800:#131316; --cosmo-700:#1b1b1f; --cosmo-600:#2c2c32;
  --giallo:#f0e500; --giallo-light:#f7ef4d; --giallo-deep:#cdc400;
  --amber:#f3c44b; --amber-soft:rgba(243,196,75,.14);
  --verde:#7cda24;         /* sub-brand mondo Video (da envyda.it) → solo nel ponte */
  --arancio:#f5822b;       /* Approfondimenti (verticali tematici/tecnologici) */
  --ink:#edeef0; --ink-soft:#a8a8b0; --ink-faint:#71717b;
  --display:"Comfortaa", system-ui, sans-serif;
  --body:"Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  --fs-body:15px; --fs-small:13.5px; --fs-h3:20px; --fs-h2:clamp(23px,2.5vw,30px); --fs-hero:clamp(15.5px,1.65vw,21px);
  --maxw:min(92vw, 1560px);
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{font-family:var(--body); font-size:var(--fs-body); line-height:1.6; background:var(--cosmo-800); color:var(--ink); -webkit-font-smoothing:antialiased; overflow-x:hidden;}
h1,h2,h3,.display{font-family:var(--display); font-weight:600;}
/* Link "nudi" (senza classe) nei contenuti — post_content, prosa: colore del tema invece del blu del browser.
   I link con classe (CTA, menu, card, mega-menu…) mantengono il loro stile. */
a:not([class]){ color:var(--amber); text-decoration:none; border-bottom:1px solid rgba(243,196,75,.4); transition:color .2s ease, border-color .2s ease; }
a:not([class]):hover{ color:var(--giallo); border-color:var(--giallo); }

/* fondo cosmo per le sezioni sotto l'hero */
.cosmo{position:fixed; inset:0; z-index:-3;
  background:
    radial-gradient(120% 90% at 15% 84%, rgba(243,196,75,.10) 0%, rgba(243,196,75,.03) 26%, transparent 52%),
    radial-gradient(90% 80% at 87% 10%, rgba(128,130,142,.10) 0%, transparent 60%),
    linear-gradient(180deg, var(--cosmo-700) 0%, var(--cosmo-800) 42%, var(--cosmo-900) 100%);}
.grain{position:fixed; inset:0; z-index:-2; pointer-events:none; opacity:.04;
  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.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");}

/* ---------- HEADER (sopra il video) ---------- */
header{position:absolute; top:0; left:0; right:0; z-index:20; max-width:var(--maxw); margin:0 auto; padding:24px 36px; display:flex; align-items:center; justify-content:space-between; opacity:0; animation:fadeIn 1s ease .3s forwards;}
.logo{height:58px; width:auto; display:block;}
.nav{display:flex; align-items:center; gap:30px;}
.nav a{color:var(--ink); text-decoration:none; font-size:15px; font-weight:500; transition:.2s; opacity:.85;}
.nav a:hover{opacity:1;}
.cta-sm{display:inline-flex; align-items:center; gap:8px; background:var(--giallo); color:#0a0a06 !important; font-family:var(--display); font-weight:700; font-size:14px; padding:10px 18px; border-radius:100px; text-decoration:none; transition:transform .25s, background .25s, box-shadow .4s;}
.cta-sm:hover{transform:translateY(-2px); background:var(--giallo-light); box-shadow:0 10px 30px -10px rgba(240,229,0,.5);}
/* hamburger: nascosto su desktop, attivo sotto 860px (vedi media query in fondo) */
.nav-toggle{display:none; flex-direction:column; justify-content:center; gap:5px; width:42px; height:42px; padding:0; background:transparent; border:1px solid var(--cosmo-600); border-radius:10px; cursor:pointer; -webkit-tap-highlight-color:transparent;}
.nav-toggle span{display:block; width:20px; height:2px; margin:0 auto; background:var(--ink); border-radius:2px; transition:transform .25s ease, opacity .2s ease;}
.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0;}
.nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

/* ---------- HERO: video full-screen + overlay ---------- */
.hero{position:relative; min-height:100vh; display:flex; align-items:center; overflow:hidden;}

/* il VIDEO (placeholder animato; in produzione: <video> object-fit:cover) */
.hero-bg{position:absolute; inset:0; z-index:1;
  background:
    radial-gradient(60% 70% at 70% 35%, rgba(243,196,75,.18), transparent 60%),
    radial-gradient(50% 60% at 30% 75%, rgba(120,122,140,.16), transparent 65%),
    linear-gradient(130deg, #17171b 0%, #121214 45%, #0b0b0d 100%);
  background-size:160% 160%; animation:drift 26s ease-in-out infinite; }
@keyframes drift{0%{background-position:0% 0%;}50%{background-position:100% 60%;}100%{background-position:0% 0%;}}
/* etichetta che dichiara cosa va lì (solo nel prototipo) */
.vid-note{position:absolute; z-index:2; right:5%; top:50%; transform:translateY(-50%); max-width:340px; text-align:right; color:var(--ink-soft); opacity:.5; font-size:13px; line-height:1.6; pointer-events:none;}
.vid-note b{color:var(--amber); font-family:var(--display); display:block; margin-bottom:8px; letter-spacing:.04em;}
/* scrim per leggibilità del testo */
.scrim{position:absolute; inset:0; z-index:3; pointer-events:none;
  background:
    linear-gradient(90deg, rgba(11,11,13,.93) 0%, rgba(11,11,13,.72) 38%, rgba(11,11,13,.30) 70%, rgba(11,11,13,.15) 100%),
    linear-gradient(0deg, rgba(11,11,13,.80) 0%, transparent 45%);}
.grain.over{z-index:4; position:absolute;}
/* HERO cablato (2026-07-09): poster reali + video responsivo iniettato via JS + velo mobile */
.hero > .hero-bg{background:none; background-image:url('assets/hero/poster-desktop.webp'); background-size:cover; background-position:center; animation:none;}
@media(max-width:860px){ .hero > .hero-bg{background-image:url('assets/hero/poster-mobile.webp');} }
.hero-vid{position:absolute; inset:0; z-index:2; width:100%; height:100%; object-fit:cover;}
.hero .reinforce{position:absolute; inset:0; z-index:3; pointer-events:none; opacity:0; transition:opacity .4s ease;
  background:linear-gradient(180deg, rgba(11,11,13,.52) 0%, rgba(11,11,13,.34) 48%, rgba(11,11,13,.56) 100%);}
.hero.hero--veil .reinforce{opacity:1;}

.hero-inner{position:relative; z-index:5; max-width:var(--maxw); margin:0 auto; padding:0 36px; width:100%;}
.lines{max-width:680px;}
.line{font-family:var(--display); font-weight:500; font-size:var(--fs-hero); line-height:1.4; color:var(--ink); margin-bottom:.45em; opacity:0; transform:translateY(12px); filter:blur(5px); text-shadow:0 2px 30px rgba(0,0,0,.5);}
.line .soft{color:var(--ink-soft); font-weight:400;}
.line.warm{font-weight:700; color:var(--amber); margin-top:1.7em; text-shadow:0 0 40px rgba(243,196,75,.3);}
/* H1 forte di posizionamento (stile envyda.it): keyword in giallo + payoff in bianco + riga-servizi */
.hero-h1{font-family:var(--display); font-weight:700; font-size:clamp(30px,4.4vw,54px); line-height:1.08; color:var(--giallo); margin-bottom:.16em; letter-spacing:-.015em; text-shadow:0 2px 40px rgba(0,0,0,.55), 0 0 55px rgba(240,229,0,.12);}
.hero-h1 .soft{display:block; color:var(--ink); font-weight:600; font-size:.56em; margin-top:.1em; letter-spacing:-.01em;}
.hero-tag{font-family:var(--display); font-weight:500; font-size:clamp(13.5px,1.45vw,16.5px); color:var(--ink-soft); letter-spacing:.005em; margin-bottom:.2em; text-shadow:0 2px 20px rgba(0,0,0,.5);}
.hero-tag b{color:var(--amber); font-weight:600;}
.hero-div{width:62px; height:2px; background:linear-gradient(90deg,var(--giallo),transparent); margin:28px 0 40px; border-radius:2px; opacity:.75;}
.reveal{animation:lineIn 1.05s cubic-bezier(.2,.7,.2,1) forwards;}
@keyframes lineIn{to{opacity:1; transform:translateY(0); filter:blur(0);}}
.cta-wrap{margin-top:32px; opacity:0;}
.cta{display:inline-flex; align-items:center; gap:10px; background:var(--giallo); color:#0a0a06 !important; font-family:var(--display); font-weight:700; font-size:16px; padding:15px 28px; border-radius:100px; text-decoration:none; cursor:pointer; transition:transform .25s, box-shadow .4s, background .25s;}
.cta:hover{transform:translateY(-2px); background:var(--giallo-light); box-shadow:0 14px 42px -10px rgba(240,229,0,.55);}
.cta .cup{font-size:17px;}
.cta-sub{margin-top:13px; font-size:14px; color:var(--ink-soft); line-height:1.55; max-width:460px;}
.cta-sub b{color:var(--ink); font-weight:600;}
.scroll-hint{position:absolute; bottom:26px; left:50%; transform:translateX(-50%); z-index:5; color:var(--ink-faint); font-size:12px; letter-spacing:.1em; text-transform:uppercase; opacity:0; animation:fadeIn 1s ease 5.2s forwards;}
.scroll-hint span{display:block; text-align:center; font-size:18px; margin-top:4px; animation:bob 2s ease-in-out infinite;}
@keyframes bob{0%,100%{transform:translateY(0);}50%{transform:translateY(5px);}}
@keyframes fadeIn{to{opacity:1;}}

/* ---------- SERVIZI ---------- */
.services{position:relative; z-index:5; max-width:var(--maxw); margin:0 auto; padding:84px 36px 30px;}
.sec-head{max-width:860px; margin-bottom:42px;}
.sec-kicker{font-family:var(--display); font-weight:600; font-size:12.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--giallo); margin-bottom:14px;}
.sec-title{font-size:var(--fs-h2); font-weight:600; line-height:1.25; color:var(--ink); letter-spacing:-.01em;}
.sec-title em{color:var(--giallo); font-style:normal;}
.sec-sub{margin-top:15px; font-size:15px; color:var(--ink-soft); line-height:1.6; max-width:640px;}

.grid{display:grid; grid-template-columns:repeat(4,1fr); gap:16px;}
.box{position:relative; border-radius:14px; padding:26px 24px 22px; border:1px solid var(--cosmo-600); background:linear-gradient(168deg, rgba(40,40,46,.45), rgba(15,15,18,.55)); display:flex; flex-direction:column; opacity:0; transform:translateY(20px); transition:transform .35s ease, border-color .35s ease, background .35s ease;}
.box.in{opacity:1; transform:translateY(0);}
.box:hover{transform:translateY(-5px); border-color:rgba(240,229,0,.5); background:linear-gradient(168deg, rgba(52,52,59,.55), rgba(17,17,21,.6));}
.box .bi{width:52px; height:52px; margin-bottom:18px;}
.box .bi svg{width:100%; height:100%; overflow:visible;}
.box .bi .stroke{fill:none; stroke:var(--giallo); stroke-width:2; opacity:.95;}
.box .bi .stroke-soft{fill:none; stroke:var(--ink-soft); stroke-width:1.6; opacity:.55;}
.box .bi .fill{fill:var(--giallo); opacity:.95;} .box .bi .fill-soft{fill:var(--ink-soft); opacity:.45;}
.box h3{font-size:var(--fs-h3); font-weight:600; color:var(--ink); margin-bottom:6px; letter-spacing:-.01em; line-height:1.25;}
.box .tagline{font-family:var(--body); font-style:italic; font-size:14px; color:var(--amber); margin-bottom:11px;}
.box .incl{font-size:13.5px; color:var(--ink-soft); line-height:1.55;}
.box .incl b{color:var(--ink); font-weight:600;}
.box .more{margin-top:auto; padding-top:18px; font-family:var(--display); font-weight:600; font-size:13px; color:var(--ink-soft); display:inline-flex; align-items:center; gap:6px; transition:gap .25s, color .25s; text-decoration:none;}
.box:hover .more{color:var(--giallo); gap:10px;}
.crossover{position:absolute; top:18px; right:18px; font-family:var(--display); font-size:10px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--cosmo-900); background:var(--giallo); padding:3px 8px; border-radius:100px;}

.vision{position:relative; z-index:5; max-width:var(--maxw); margin:22px auto 0; padding:30px 34px; border-radius:14px;
  border:1px solid rgba(243,196,75,.18); background:linear-gradient(120deg, rgba(243,196,75,.05), rgba(36,36,42,.4) 40%, rgba(14,14,17,.3));
  display:flex; align-items:center; gap:26px; opacity:0; transform:translateY(20px); transition:transform .4s ease, opacity .4s ease;}
.vision.in{opacity:1; transform:translateY(0);}
.vision .vi{width:52px; height:52px; flex-shrink:0;}
.vision .vi svg{width:100%; height:100%; overflow:visible;}
.vision .vi .stroke{fill:none; stroke:var(--amber); stroke-width:1.8; opacity:.85;}
.vision .vi .stroke-soft{fill:none; stroke:var(--ink-soft); stroke-width:1.4; opacity:.45;}
.vision .vi .fill{fill:var(--amber); opacity:.9;}
.vision .vtext{flex:1;}
.vision .vk{font-family:var(--display); font-weight:600; font-size:11.5px; letter-spacing:.13em; text-transform:uppercase; color:var(--amber); margin-bottom:5px;}
.vision h3{font-size:19px; font-weight:600; color:var(--ink); margin-bottom:5px;}
.vision p{font-size:14px; color:var(--ink-soft); line-height:1.55; max-width:660px;}
.vision .vmore{font-family:var(--display); font-weight:600; font-size:13px; color:var(--ink); white-space:nowrap; display:inline-flex; align-items:center; gap:7px; transition:gap .25s, color .25s; cursor:pointer;}
.vision:hover .vmore{color:var(--amber); gap:11px;}
.vision .vsoon{font-family:var(--display); font-weight:700; font-size:12px; letter-spacing:.05em; color:var(--amber); white-space:nowrap; border:1px solid rgba(243,196,75,.4); background:var(--amber-soft); padding:7px 15px; border-radius:100px;}

/* ---------- MOBILE ---------- */
@media (max-width:980px){ .grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:860px){
  header{padding:16px 18px;} .nav .link{display:none;} .nav{gap:14px;}
  .logo{height:38px;}
  .hero-inner{padding:0 22px;}
  .vid-note{display:none;}
  /* fallback: niente movimento pesante su mobile, poster statico */
  .hero-bg{animation:none; background-size:cover;}
  .services{padding:54px 18px 24px;}
  .grid{grid-template-columns:1fr; gap:12px;}
  .vision{flex-direction:column; align-items:flex-start; text-align:left; gap:16px; margin:18px 0 0;}
}

/* ---------- SCHERMI BASSI (2026-07-10) ----------
   L'header e' position:absolute (106px da desktop, 76px sotto gli 860px). L'hero centra il testo
   verticalmente: quando il viewport e' basso il testo risale e finisce SOTTO il logo.
   Colpisce: telefoni piccoli in verticale (iPhone SE 667px, Android 640px), QUALUNQUE telefono
   ruotato, e i portatili 1366x768 (viewport utile ~660px, misurato: -88px di sovrapposizione).
   Ancorata a max-height e NON a max-width: un Pro Max ruotato fa 932px di larghezza e sfuggirebbe
   a un breakpoint sulla larghezza pur avendo lo stesso problema. */
@media (max-height:720px){
  .hero{align-items:flex-start;}
  .hero-inner{padding-top:126px; padding-bottom:30px;}   /* 106 header + 20 di respiro */
  .hero-div{margin:16px 0 20px;}
  .cta-wrap{margin-top:20px;}
  .line.warm{margin-top:1.1em;}
  .scroll-hint{display:none;}                            /* si sovrapporrebbe alla CTA */
}
@media (max-height:720px) and (max-width:860px){
  .hero-inner{padding-top:96px;}                         /* 76 header mobile + 20 di respiro */
}

@media (prefers-reduced-motion:reduce){
  *{animation:none !important; transition:none !important;}
  .hero-bg{animation:none;} .line,.cta-wrap,.box,.vision,.blk,.tcard,.stat,.bridge-inner,header,.scroll-hint,.cm-line,.cm-cta{opacity:1 !important; transform:none !important; filter:none !important;}
}

/* ---------- PERCHÉ ENVYDA (autorità, idea-first) ---------- */
.why{position:relative; z-index:5; max-width:var(--maxw); margin:0 auto; padding:74px 36px 24px;}
.why .sec-sub{max-width:780px;}
.stats{display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-top:40px;}
.stat{border-radius:14px; padding:26px 24px; border:1px solid var(--cosmo-600); background:linear-gradient(168deg, rgba(40,40,46,.45), rgba(15,15,18,.55)); opacity:0; transform:translateY(20px); transition:transform .35s ease, border-color .35s ease;}
.stat.in{opacity:1; transform:none;}
.stat:hover{border-color:rgba(243,196,75,.4);}
.stat .num{font-family:var(--display); font-weight:700; font-size:clamp(24px,3vw,36px); color:var(--giallo); line-height:1; margin-bottom:10px;}
.stat .lbl{font-size:13px; color:var(--ink-soft); line-height:1.5;}
/* Card riconoscimento sotto la banda numeri: stessa formattazione delle .stat, a tutta larghezza */
.award-card{border-radius:14px; padding:24px 26px; border:1px solid var(--cosmo-600); background:linear-gradient(168deg, rgba(40,40,46,.45), rgba(15,15,18,.55)); margin-top:16px;}
.award-card .num{font-family:var(--display); font-weight:700; font-size:clamp(18px,2vw,24px); color:var(--giallo); line-height:1.15; margin-bottom:10px;}
.award-card .lbl{font-size:13px; color:var(--ink-soft); line-height:1.6;}
.award-card .lbl strong{color:var(--ink); font-weight:600;}
.award-card .award-proj{color:var(--ink-soft);}
.award-card .award-proj strong{color:var(--amber);}
/* Specchietto feedback corsi (pagina Certificazioni) */
.fbk-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:8px;}
.fbk{border-radius:14px; padding:24px 20px; border:1px solid var(--cosmo-600); background:linear-gradient(168deg, rgba(40,40,46,.45), rgba(15,15,18,.55)); text-align:center;}
.fbk-num{font-family:var(--display); font-weight:700; font-size:clamp(30px,4vw,42px); color:var(--giallo); line-height:1;}
.fbk-num span{font-size:.45em; color:var(--ink-soft); font-weight:600;}
.fbk-lbl{font-size:13px; color:var(--ink-soft); line-height:1.4; margin-top:10px;}
.fbk-base{max-width:820px; margin:18px auto 0; font-size:13.5px; color:var(--ink-soft); line-height:1.6; text-align:center;}
.fbk-wall{display:flex; flex-wrap:wrap; gap:10px 12px; margin-top:26px; justify-content:center;}
.fbk-wall span{font-size:12.5px; font-style:italic; color:var(--ink-soft); background:rgba(255,255,255,.03); border:1px solid var(--cosmo-600); border-radius:20px; padding:7px 14px; line-height:1.3;}
.fbk-hero{text-align:center; margin:4px auto 26px; padding:24px; border-radius:16px; border:1px solid rgba(243,196,75,.30); background:linear-gradient(168deg, rgba(243,196,75,.07), rgba(15,15,18,.5));}
.fbk-hero-num{font-family:var(--display); font-weight:700; font-size:clamp(40px,7vw,60px); color:var(--giallo); line-height:1;}
.fbk-hero-num span{font-size:.4em; color:var(--ink-soft); font-weight:600;}
.fbk-hero-txt{margin-top:12px; font-size:16px; color:var(--ink);}
.fbk-hero-txt small{display:block; margin-top:6px; font-size:12.5px; color:var(--ink-soft);}
.stars{--v:100%; position:relative; display:inline-block; font-size:15px; letter-spacing:3px; margin-top:9px;}
.stars::before{content:"\2605\2605\2605\2605\2605"; color:var(--cosmo-600);}
.stars::after{content:"\2605\2605\2605\2605\2605"; color:var(--amber); position:absolute; left:0; top:0; width:var(--v); overflow:hidden; white-space:nowrap;}
.fbk-badge-wrap{text-align:center;}
.fbk-badge{display:inline-flex; align-items:center; gap:8px; margin-top:20px; padding:10px 20px; border-radius:24px; border:1px solid var(--amber); background:rgba(243,196,75,.08); font-size:14px; color:var(--ink-soft); text-decoration:none; transition:background .2s ease, border-color .2s ease;}
.fbk-badge:hover{background:rgba(243,196,75,.14); border-color:var(--giallo);}
.fbk-badge b{color:var(--giallo); font-weight:700;}
@media (max-width:860px){ .fbk-grid{grid-template-columns:1fr;} }
.affil{margin-top:26px; font-size:14px; color:var(--ink-soft); line-height:1.75;}
.affil b{color:var(--ink); font-weight:600;}
.affil .badge{color:var(--amber); font-family:var(--display); font-weight:600;}
.affil-lead{max-width:760px; margin:4px 0 20px; font-size:15px; color:var(--ink-soft); line-height:1.7;}
@media (max-width:860px){ .why{padding:50px 18px 18px;} .stats{grid-template-columns:repeat(2,1fr); gap:12px;} }

/* ---------- PROVA SOCIALE ---------- */
/* STANZA PANNELLO (prova sociale): banda neutra più chiara full-bleed */
.proof::before{content:''; position:absolute; z-index:-1; top:0; bottom:0; left:50%; transform:translateX(-50%); width:100vw;
  background:linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.018));
  border-top:1px solid var(--cosmo-600); border-bottom:1px solid var(--cosmo-600);}
.proof{position:relative; z-index:5; max-width:var(--maxw); margin:0 auto; padding:74px 36px 20px;}
.tgrid{display:grid; grid-template-columns:repeat(3,1fr); gap:16px;}
.tcard{border-radius:14px; padding:28px 28px 26px; border:1px solid var(--cosmo-600); background:linear-gradient(168deg, rgba(40,40,46,.45), rgba(15,15,18,.55)); display:flex; flex-direction:column; opacity:0; transform:translateY(20px); transition:transform .35s ease, border-color .35s ease;}
.tcard.in{opacity:1; transform:none;}
.tcard:hover{border-color:rgba(243,196,75,.4);}
.tcard .mark{font-family:Georgia,"Times New Roman",serif; font-size:50px; line-height:.5; color:var(--amber); opacity:.45; height:22px;}
.tcard .quote{font-size:14.5px; color:var(--ink); line-height:1.62; flex:1;}
.tcard .who{margin-top:18px; font-family:var(--display); font-weight:600; font-size:13.5px; color:var(--amber);}
/* Voci dai corsi: riquadri più piccoli e tenui sotto le tre recensioni firmate */
.tgrid--mini{display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:16px;}
.tcard--mini{padding:18px 20px 16px; background:linear-gradient(168deg, rgba(40,40,46,.3), rgba(15,15,18,.42));}
.tcard--mini .mark{font-size:34px; height:14px;}
.tcard--mini .quote{font-size:13.5px; line-height:1.5; color:var(--ink-soft);}
.tcard--mini .who{margin-top:12px; font-size:12px;}
@media (max-width:860px){ .tgrid--mini{grid-template-columns:1fr; gap:12px;} }
@media (max-width:860px){ .proof{padding:50px 18px 16px;} .tgrid{grid-template-columns:1fr; gap:12px;} }

/* ---------- I 4 BLOCCHI che ti tengono fermo (blocco→risposta) ---------- */
/* STANZA CALDA (casa/empatia): banda ambra full-bleed dietro i freni */
.blocks::before{content:''; position:absolute; z-index:-1; top:0; bottom:0; left:50%; transform:translateX(-50%); width:100vw;
  background:linear-gradient(180deg, rgba(243,196,75,.075), rgba(243,196,75,.04));
  border-top:1px solid rgba(243,196,75,.14); border-bottom:1px solid rgba(243,196,75,.14);}
.blocks{position:relative; z-index:5; max-width:var(--maxw); margin:0 auto; padding:72px 36px 24px;}
.grid2{display:grid; grid-template-columns:repeat(2,1fr); gap:16px;}
.blk{border-radius:14px; padding:28px 30px 26px; border:1px solid var(--cosmo-600); background:linear-gradient(168deg, rgba(40,40,46,.45), rgba(15,15,18,.55)); opacity:0; transform:translateY(20px); transition:transform .35s ease, border-color .35s ease, background .35s ease;}
.blk.in{opacity:1; transform:none;}
.blk:hover{border-color:rgba(243,196,75,.42); background:linear-gradient(168deg, rgba(50,50,57,.5), rgba(17,17,21,.6));}
.blk .obj{font-family:var(--display); font-weight:500; font-size:clamp(17px,1.85vw,21px); color:var(--ink); line-height:1.35;}
.blk .arrow{color:var(--giallo); font-size:17px; line-height:1; margin:13px 0 11px; font-weight:700;}
.blk .ans{font-size:14.5px; color:var(--ink-soft); line-height:1.6;}
.blk .ans b{color:var(--amber); font-weight:600;}
@media (max-width:860px){ .blocks{padding:48px 18px 18px;} .grid2{grid-template-columns:1fr; gap:12px;} }

/* ---------- PONTE VIDEO (vira al verde: l'altra stanza della stessa casa) ---------- */
.bridge{position:relative; z-index:5; max-width:var(--maxw); margin:44px auto 0; padding:0 36px;}
.bridge-inner{border-radius:16px; padding:40px; border:1px solid rgba(124,218,36,.28); position:relative; overflow:hidden;
  background:linear-gradient(120deg, rgba(124,218,36,.07), rgba(14,24,12,.5) 45%, rgba(10,14,10,.4));
  display:flex; align-items:center; justify-content:space-between; gap:34px;
  opacity:0; transform:translateY(20px); transition:opacity .5s ease, transform .5s ease;}
.bridge-inner.in{opacity:1; transform:none;}
.bridge .btext{max-width:700px;}
.bridge .bk{font-family:var(--display); font-weight:600; font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--verde); margin-bottom:12px;}
.bridge h2{font-size:var(--fs-h2); font-weight:600; color:var(--ink); line-height:1.25; margin-bottom:12px; letter-spacing:-.01em;}
.bridge h2 em{color:var(--verde); font-style:normal;}
.bridge p{font-size:14.5px; color:var(--ink-soft); line-height:1.6;}
.bridge .vbtn{flex-shrink:0; display:inline-flex; align-items:center; gap:9px; background:var(--verde); color:#08120a !important; font-family:var(--display); font-weight:700; font-size:15px; padding:14px 24px; border-radius:100px; text-decoration:none; white-space:nowrap; transition:transform .25s, background .25s, box-shadow .4s;}
.bridge .vbtn:hover{transform:translateY(-2px); background:#8ce82f; box-shadow:0 12px 36px -10px rgba(124,218,36,.5);}
@media (max-width:860px){ .bridge{padding:0 18px;} .bridge-inner{flex-direction:column; align-items:flex-start; padding:30px 24px; gap:20px;} }

/* ---------- SECONDO MOVIMENTO · il cosmo (tocco, non monumento) ---------- */
/* l'arco paura→meraviglia→bene è anche nel colore: si scalda scendendo */
.cosmo-movement{position:relative; z-index:5; margin-top:36px; padding:88px 0 96px; overflow:hidden;
  background:linear-gradient(180deg, #0b0b0d 0%, #131315 40%, #18160f 70%, #1b1409 100%);}
.cosmo-movement::after{content:''; position:absolute; left:24%; bottom:4%; transform:translateX(-50%); width:54vw; max-width:640px; height:300px; pointer-events:none;
  background:radial-gradient(ellipse at center, rgba(243,196,75,.15), transparent 70%); filter:blur(24px);}
.cm-inner{position:relative; z-index:2; max-width:var(--maxw); margin:0 auto; padding:0 36px; text-align:left;}
.cm-kicker{font-family:var(--display); font-weight:600; font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:var(--amber); margin-bottom:22px;}
.cm-line{font-family:var(--display); color:var(--ink); line-height:1.5; margin:0 0 16px; max-width:780px; opacity:0; transform:translateY(16px); transition:opacity 1s ease, transform 1s ease;}
.cm-line.in{opacity:1; transform:none;}
.cm-sm{font-size:15px; color:var(--ink-soft); font-weight:400; margin-bottom:18px;}
.cm-asks{display:flex; flex-direction:column; gap:14px; margin:0 0 30px; align-items:flex-start;}
.cm-asks span{font-family:var(--display); font-weight:600; font-size:clamp(18px,2vw,24px); color:var(--ink); border-left:2px solid var(--amber); padding-left:18px; line-height:1.3;}
.cm-big{font-size:clamp(17px,1.7vw,20px); font-weight:400; color:var(--ink-soft); max-width:720px;}
.cm-hinge{font-size:clamp(19px,2.1vw,26px); font-weight:600; color:var(--ink); margin-top:14px; max-width:760px;}
.cm-hinge em{color:var(--amber); font-style:normal;}
.cm-cta{position:relative; z-index:2; max-width:var(--maxw); margin:36px auto 0; padding:0 36px; text-align:left; opacity:0; transform:translateY(16px); transition:opacity 1s ease, transform 1s ease;}
.cm-cta.in{opacity:1; transform:none;}
.cm-cta .lead{font-family:var(--display); font-size:clamp(18px,1.9vw,22px); font-weight:600; color:var(--ink); margin-bottom:20px; max-width:640px;}
.cm-ew{margin-top:22px; font-size:13px;}
.cm-ew a{color:var(--ink-faint); text-decoration:none; border-bottom:1px solid rgba(166,171,196,.25); transition:.25s;}
.cm-ew a:hover{color:var(--amber); border-color:var(--amber);}
@media (max-width:860px){ .cosmo-movement{padding:60px 0 70px; margin-top:20px;} .cm-inner,.cm-cta{padding:0 18px;} .cosmo-movement::after{left:50%; width:86vw;} }

/* grafica cosmica a destra del blocco-cosmo (sobria, bassa opacità) */
.cm-art{position:absolute; z-index:1; pointer-events:none; display:block;}
#cm-net{right:-120px; top:50%; transform:translateY(-50%); width:min(80%,1150px); aspect-ratio:62 / 52; opacity:.85;
  -webkit-mask-image:linear-gradient(to left,#000 8%,transparent 96%); mask-image:linear-gradient(to left,#000 8%,transparent 96%);}
#net-serv{left:calc((100% - 100vw)/2); top:-20px; width:min(56vw,820px); aspect-ratio:1 / 1; opacity:.4;
  -webkit-mask-image:linear-gradient(to right,#000 0%,transparent 72%); mask-image:linear-gradient(to right,#000 0%,transparent 72%);}
#net-foot{left:0; top:0; width:100%; height:100%; opacity:.5;
  -webkit-mask-image:linear-gradient(to top,#000 0%,rgba(0,0,0,.55) 55%,transparent 100%); mask-image:linear-gradient(to top,#000 0%,rgba(0,0,0,.55) 55%,transparent 100%);}
.services{overflow:visible;}
.services .sec-head,.services .grid{position:relative; z-index:2;}
.site-footer .foot-inner,.site-footer .foot-bottom{z-index:2;}
.cm-art .o{fill:none; stroke:var(--amber); stroke-width:1.4; opacity:.55;}
.cm-art .o2{fill:none; stroke:var(--ink-soft); stroke-width:1; opacity:.32;}
.cm-art .star{fill:var(--amber);}
.cm-art .star-s{fill:var(--ink-soft); opacity:.6;}
@media (max-width:980px){ .cm-art{opacity:.4;} }
@media (max-width:860px){ .cm-art{display:none;} }

/* icone dei 6 blocchi + social/recapiti footer */
.blk-ic{width:30px; height:30px; margin-bottom:14px;}
.blk-ic svg{width:100%; height:100%; fill:none; stroke:var(--amber); stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; opacity:.92;}
.blk-ic svg .f{fill:var(--amber); stroke:none;}
.foot-social-h{font-family:var(--display); font-weight:600; font-size:11.5px; letter-spacing:.04em; color:var(--ink-faint); margin:18px 0 0;}
.foot-social{display:flex; gap:10px; margin-top:10px;}
.foot-social a{display:inline-flex; width:34px; height:34px; align-items:center; justify-content:center; border:1px solid var(--cosmo-600); border-radius:50%; color:var(--ink-soft); transition:.2s;}
.foot-social a:hover{color:var(--cosmo-900); background:var(--giallo); border-color:var(--giallo);}
.foot-social svg{width:16px; height:16px;}
.foot-contact{font-size:13.5px; color:var(--ink-soft); line-height:1.85;}
.foot-col .foot-contact a{display:inline; margin:0; color:var(--ink-soft); text-decoration:none;}
.foot-col .foot-contact a:hover{color:var(--ink);}

/* ---------- FOOTER ---------- */
.site-footer{position:relative; z-index:5; margin-top:60px; padding:64px 0 28px; border-top:1px solid var(--cosmo-600); background:linear-gradient(180deg, rgba(11,11,13,0), rgba(11,11,13,.55)); overflow:hidden;}
.foot-glow{position:absolute; left:50%; top:-50px; transform:translateX(-50%); width:60vw; max-width:700px; height:200px; background:radial-gradient(ellipse at center, rgba(243,196,75,.08), transparent 70%); pointer-events:none;}
.foot-inner{position:relative; max-width:var(--maxw); margin:0 auto; padding:0 36px; display:grid; grid-template-columns:1.5fr 1fr 1fr 1.7fr; gap:40px;}
.foot-logo{height:40px; width:auto; margin-bottom:14px;}
.foot-claim{font-family:var(--display); font-weight:600; color:var(--ink); font-size:15px; margin-bottom:8px; line-height:1.4;}
.foot-place{font-size:13px; color:var(--ink-faint);}
.foot-col h4,.foot-news h4{font-family:var(--display); font-weight:600; font-size:13px; letter-spacing:.04em; color:var(--giallo); margin-bottom:16px;}
.foot-col a{display:block; color:var(--ink-soft); text-decoration:none; font-size:14px; margin-bottom:10px; transition:.2s;}
.foot-col a:hover{color:var(--ink);}
.foot-news p{font-size:13.5px; color:var(--ink-soft); line-height:1.55; margin-bottom:16px;}
/* Il lead-magnet va visto prima del resto: è il motivo per cui si lascia l'indirizzo. */
.foot-news .news-magnet{color:var(--giallo); font-weight:600;}
.news-form{display:flex; gap:8px;}
.news-form input{flex:1; min-width:0; background:rgba(255,255,255,.04); border:1px solid var(--cosmo-600); border-radius:100px; padding:11px 16px; color:var(--ink); font-family:var(--body); font-size:14px;}
.news-form input::placeholder{color:var(--ink-faint);}
.news-form input:focus{outline:none; border-color:var(--amber);}
.news-form button{background:var(--giallo); color:#0a0a06; border:none; border-radius:100px; padding:11px 20px; font-family:var(--display); font-weight:700; font-size:14px; cursor:pointer; white-space:nowrap; transition:background .25s;}
.news-form button:hover{background:var(--giallo-light);}
.news-consent{display:flex; align-items:flex-start; gap:8px; margin-top:11px; font-size:11.5px; color:var(--ink-faint); line-height:1.45;}
.news-consent input{margin-top:2px; accent-color:var(--giallo); flex-shrink:0;}
.news-consent a{color:var(--ink-soft); text-decoration:underline;}

/* Newsletter — form Fluent nel footer (sostituisce il markup statico .news-form).
   Il consenso sta SOPRA il pulsante: si legge prima di premere, non dopo. */
.news-fluent .ff-el-group{margin:0 0 10px;}
.news-fluent .ff-el-input--label{display:none;}
.news-fluent input[type=email]{width:100%; background:rgba(255,255,255,.04); border:1px solid var(--cosmo-600); border-radius:100px; padding:11px 16px; color:var(--ink); font-family:var(--body); font-size:14px;}
.news-fluent input[type=email]::placeholder{color:var(--ink-faint);}
/* Quando ci si scrive dentro il campo deve schiarirsi: col fondo semitrasparente di
   partenza si fatica a leggere ciò che si sta digitando (rilievo di Leo, 15/08). Il bordo
   giallo dice quale campo è attivo. */
.news-fluent input[type=email]:focus{outline:none; border-color:var(--giallo); background:rgba(255,255,255,.12); color:var(--ink);}
/* Riempimento automatico del browser: senza queste righe Chrome dipinge il campo di
   azzurro con testo scuro, illeggibile sul nostro fondo. */
.news-fluent input[type=email]:-webkit-autofill,
.news-fluent input[type=email]:-webkit-autofill:focus{
  -webkit-text-fill-color:var(--ink);
  caret-color:var(--ink);
  -webkit-box-shadow:0 0 0 1000px var(--cosmo-700) inset;
  transition:background-color 9999s ease-in-out 0s;
}
/* Il CSS di Fluent è accodato dopo il nostro: serve un selettore più specifico,
   altrimenti a parità di peso vincono i suoi bordi. */
:is(.foot-news,.page-body) .news-fluent .ff-el-group,
:is(.foot-news,.page-body) .news-fluent .ff-el-input--content,
:is(.foot-news,.page-body) .news-fluent .ff-el-form-check,
:is(.foot-news,.page-body) .news-fluent div.ff-el-form-control{background:none; border:none; padding:0; box-shadow:none;}
.news-fluent .ff-el-form-check{display:flex; align-items:flex-start; gap:8px; color:var(--ink-faint); line-height:1.45;}
/* Specificità alta: il foglio di Fluent è accodato dopo il nostro e altrimenti vince lui. */
:is(.foot-news,.page-body) .news-fluent .ff-el-form-check,
:is(.foot-news,.page-body) .news-fluent .ff-el-form-check-label,
:is(.foot-news,.page-body) .news-fluent .ff-el-form-check-label span,
:is(.foot-news,.page-body) .news-fluent .ff-el-form-check-label a{font-size:11.5px; line-height:1.45;}
.news-fluent .ff-el-form-check-label{display:flex; align-items:flex-start; gap:8px; margin:0; cursor:pointer;}
.news-fluent .ff-el-form-check input[type=checkbox]{margin-top:2px; accent-color:var(--giallo); flex-shrink:0;}
.news-fluent .ff-el-form-check-label a{color:var(--ink-soft); text-decoration:underline;}
.news-fluent .ff-btn.ff-btn-submit{background:var(--giallo); color:#0a0a06; border:none; border-radius:100px; padding:11px 24px; font-family:var(--display); font-weight:700; font-size:14px; cursor:pointer; transition:background .25s;}
.news-fluent .ff-btn.ff-btn-submit:hover{background:var(--giallo-light);}
.news-fluent .ff-el-is-error input[type=email]{border-color:#e06666;}
.news-fluent .error-text, .news-fluent .text-danger{font-size:11.5px; color:#e6a5a5;}
/* Giallo, non grigio: qui l'utente deve capire che manca ancora un suo clic.
   In grigio-tenue il messaggio si legge come una formula di cortesia e si salta. */
.news-fluent .ff-message-success{font-size:13px; color:var(--giallo); line-height:1.5;}
/* Modulo di DISISCRIZIONE. Invia a Brevo, ma il markup è nostro: del codice originale
   sono stati tolti i @font-face e il foglio di stile ospitati su Brevo, che avrebbero
   introdotto due terze parti su una pagina che oggi non ne ha nessuna.
   Volutamente più sobrio di quello di iscrizione (bordo, non giallo): l'uscita si trova,
   non si promuove. */
.unsub-form{display:flex; flex-wrap:wrap; gap:10px; align-items:center; margin:4px 0 6px;}
.unsub-form .unsub-label{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap;}
.unsub-form input[type=email]{flex:1 1 240px; background:rgba(255,255,255,.04); border:1px solid var(--cosmo-600); border-radius:100px; padding:11px 16px; color:var(--ink); font-family:var(--body); font-size:14px;}
.unsub-form input[type=email]::placeholder{color:var(--ink-faint);}
.unsub-form input[type=email]:focus{outline:none; border-color:var(--ink-soft);}
.unsub-form .unsub-hp{display:none;}
.unsub-form button{background:transparent; color:var(--ink-soft); border:1px solid var(--cosmo-600); border-radius:100px; padding:11px 22px; font-family:var(--display); font-weight:600; font-size:14px; cursor:pointer; transition:border-color .25s, color .25s;}
.unsub-form button:hover{border-color:var(--ink-soft); color:var(--ink);}
.page-body .unsub-nota{font-size:13.5px; color:var(--ink-faint); line-height:1.6;}
/* Il modulo invia dentro questa cornice invisibile: senza, il browser navigherebbe verso
   il servizio e mostrerebbe la sua risposta grezza ({"success":true} su fondo nero).
   Rilievo di Leo, 15/08: il pezzo di codice che lo evitava era di Brevo, ed è stato tolto
   insieme ai font e al foglio di stile esterni. */
.unsub-sink{position:absolute; width:0; height:0; border:0; visibility:hidden;}
.page-body .unsub-esito{font-size:14.5px; color:var(--giallo); line-height:1.6; border:1px solid rgba(240,229,0,.35); border-radius:12px; padding:14px 16px; background:rgba(240,229,0,.05);}
.page-body .unsub-esito a{color:var(--giallo);}

/* In PAGINA il modulo è l'azione, non un ingrediente del testo: una cornice sottile
   lo stacca dai paragrafi e dice a colpo d'occhio dov'è il pezzo da compilare.
   Nel footer non serve (lì sta già nella sua colonna), quindi la regola è legata a .page-body. */
.page-body .news-fluent{
  border:1px solid rgba(240,229,0,.5);
  border-radius:14px;
  background:linear-gradient(168deg, rgba(240,229,0,.055), rgba(15,15,18,.35));
  padding:24px 24px 20px;
  margin:4px 0 26px;
  box-shadow:0 18px 44px -28px rgba(240,229,0,.45);
}
@media (max-width:860px){ .page-body .news-fluent{padding:18px 16px 16px;} }
.foot-bottom{position:relative; max-width:var(--maxw); margin:46px auto 0; padding:22px 36px 0; border-top:1px solid var(--cosmo-600); display:flex; justify-content:space-between; gap:16px; font-size:12.5px; color:var(--ink-faint); flex-wrap:wrap;}
.foot-bottom a{color:var(--ink-faint); text-decoration:none;}
.foot-bottom a:hover{color:var(--ink-soft);}
@media (max-width:860px){ .foot-inner{grid-template-columns:1fr 1fr; gap:28px; padding:0 18px;} .foot-news{grid-column:1 / -1;} .foot-bottom{flex-direction:column; padding:18px 18px 0; margin-top:30px;} }

/* Menu principale gestito da bacheca (Aspetto → Menu) — la <ul> generata da wp_nav_menu */
.nav-links{display:flex; align-items:center; gap:30px; list-style:none; margin:0; padding:0;}
.nav-links a{color:var(--ink); text-decoration:none; font-size:15px; font-weight:500; transition:.2s; opacity:.85;}
.nav-links a:hover{opacity:1;}
.nav-links .current-menu-item > a{opacity:1; color:var(--giallo);}
@media (max-width:860px){ .nav-links{display:none;} }
/* menu mobile: hamburger visibile + tendina a comparsa ancorata sotto l'header */
@media (max-width:860px){
  .nav-toggle{display:flex;}
  /* la placchetta «Caffè AI» sbatteva su logo e hamburger nei telefoni stretti (rilievo di Leo, 15/09): più piccola solo qui */
  .nav{gap:14px;}
  .cta-sm{font-size:13px; padding:7px 13px; gap:6px;}
  .nav-links.open{display:flex; flex-direction:column; align-items:stretch; gap:0; position:absolute; top:calc(100% + 6px); right:0; min-width:220px; padding:8px; list-style:none; margin:0; background:linear-gradient(168deg, rgba(30,30,35,.98), rgba(15,15,18,.98)); border:1px solid var(--cosmo-600); border-radius:14px; box-shadow:0 22px 50px -16px rgba(0,0,0,.65); backdrop-filter:blur(8px);}
  .nav-links.open li{width:100%;}
  .nav-links.open li + li{border-top:1px solid rgba(255,255,255,.06);}
  .nav-links.open a{display:block; width:100%; padding:13px 14px; border-radius:9px; opacity:1; font-size:15.5px;}
  .nav-links.open a:hover{background:rgba(255,255,255,.05);}
  .nav-links.open .current-menu-item > a{color:var(--giallo);}
}
/* Menu footer gestito da bacheca (la <ul> generata da wp_nav_menu nel footer) */
.foot-col .foot-menu{list-style:none; margin:0; padding:0;}
.foot-col .foot-menu li{ margin:0; padding:0; line-height:1.1; }
.foot-col .foot-menu a{ display:block; padding:1px 0; margin:0; font-size:14px; line-height:1.35; color:var(--ink-soft); text-decoration:none; transition:color .2s; }
.foot-col .foot-menu a:hover{ color:var(--amber); }

/* Menu principale — TENDINA (sotto-voci, es. i Corsi agganciati in automatico) */
.nav-links li{ position:relative; }
.nav-links .sub-menu{ list-style:none; margin:0; padding:8px; position:absolute; top:calc(100% + 10px); left:50%; transform:translateX(-50%) translateY(6px); min-width:240px; background:linear-gradient(168deg, rgba(30,30,35,.98), rgba(15,15,18,.98)); border:1px solid var(--cosmo-600); border-radius:14px; box-shadow:0 22px 50px -16px rgba(0,0,0,.65); backdrop-filter:blur(8px); opacity:0; visibility:hidden; transition:opacity .2s, transform .2s; z-index:50; max-height:72vh; overflow-y:auto; }
.nav-links li:hover > .sub-menu{ opacity:1; visibility:visible; transform:translateX(-50%) translateY(0); }
.nav-links .sub-menu a{ display:block; padding:5px 12px; border-radius:8px; font-size:14px; opacity:.85; white-space:nowrap; }
.nav-links .sub-menu .menu-corso-dyn > a::before{ content:''; display:inline-block; width:6px; height:6px; border-radius:50%; background:var(--giallo); margin-right:8px; vertical-align:middle; }
.nav-links .sub-menu .menu-corso-verde > a::before{ background:var(--verde); }
.nav-links .sub-menu .menu-corso-vetrina > a{ font-weight:600; }
.nav-links .sub-menu .menu-corso-vetrina > a::before{ background:linear-gradient(90deg, var(--giallo) 0 50%, var(--verde) 50% 100%); }

/* Banda CORSI in home (subito dopo i Servizi) → vetrina */
.corsi-band{ position:relative; padding:clamp(22px,4vw,40px) 24px; text-align:center; background:linear-gradient(120deg, var(--cosmo-800) 0%, var(--amber-soft) 50%, var(--cosmo-900) 100%); border-top:1px solid rgba(255,255,255,.06); border-bottom:1px solid rgba(255,255,255,.06); }
.corsi-band-inner{ max-width:680px; margin:0 auto; display:flex; flex-direction:column; align-items:center; gap:12px; }
.corsi-band .sec-kicker{ margin:0; }
.corsi-band-sub{ font-size:14px; color:var(--ink-soft); margin:0; }
/* Due pulsanti affiancati: chi vuole capire approfondisce, chi ha già capito chiede.
   Niente .cta-wrap qui — quella parte da opacity:0 e dipende dall'animazione d'ingresso. */
.corsi-band-cta{ display:flex; gap:10px; flex-wrap:wrap; justify-content:center; }
.corsi-band-sub a{ color:var(--amber); text-decoration:none; border-bottom:1px solid rgba(243,196,75,.45); transition:color .2s ease, border-color .2s ease; }
.corsi-band-sub a:hover{ color:var(--giallo); border-color:var(--giallo); }
.nav-links .sub-menu a:hover{ background:rgba(255,255,255,.05); opacity:1; color:var(--ink); }
.nav-links .menu-item-has-children > a::after{ content:'▾'; margin-left:6px; font-size:11px; opacity:.55; }
/* Mobile: i sotto-menu NON si nascondono più (fino al 10/08 erano `display:none`, e da telefono
   sparivano AI Academy, Video Academy e Formazione finanziata). Stesso trattamento che il mega-menu
   dei Corsi ha già qui sotto: pannello statico dentro la tendina, rientrato, senza fondo né ombra.
   La freccetta ▾ sul genitore si toglie: indica un'apertura al passaggio del mouse che su un dito
   non esiste, e qui il sotto-menu è già aperto. */
@media (max-width:860px){
  .nav-links.open .sub-menu{
    display:block; position:static; opacity:1; visibility:visible; transform:none;
    min-width:0; background:none; border:none; box-shadow:none;
    padding:2px 0 4px 14px; margin:2px 0 6px;
  }
  .nav-links.open .sub-menu a{ padding:7px 0; white-space:normal; font-size:14.5px; }
  .nav-links.open .menu-item-has-children > a::after{ display:none; }
}

/* Header sotto la barra admin di WordPress quando sei loggato (i visitatori non la vedono) */
.admin-bar header{ top:32px; }
@media screen and (max-width:782px){ .admin-bar header{ top:46px; } }

/* ============================================================
   PAGINE INTERNE (Servizi, Formazione, Chi siamo, …)
   Vivono solo nel tema (il prototipo copre la home).
   ============================================================ */
/* Header trasparente anche sulle pagine interne: ci sta SOPRA l'hero-banner (vedi .page-hero) */

/* intestazione di pagina interna = HERO-BANNER (fascia visiva più bassa della home; header trasparente sopra) */
.page-hero{position:relative; min-height:clamp(300px,40vh,440px); display:flex; align-items:flex-end; overflow:hidden; padding-top:120px;}
/* sfondo banner: riusa .hero-bg (gradiente animato) e .scrim; predisposto per <video class="hero-bg"> o background-image */
.page-hero .scrim{background:linear-gradient(0deg, rgba(11,11,13,.92) 0%, rgba(11,11,13,.45) 48%, rgba(11,11,13,.62) 100%);}
.page-hero-inner{position:relative; z-index:5; max-width:var(--maxw); margin:0 auto; padding:0 36px 46px; width:100%;}
.page-hero .sec-kicker{margin-bottom:14px;}
.page-title{font-family:var(--display); font-weight:700; font-size:clamp(32px,4.4vw,52px); color:var(--giallo); line-height:1.08; letter-spacing:-.015em; margin-bottom:.18em; text-shadow:0 2px 30px rgba(0,0,0,.55);}
.page-lead{font-size:clamp(15px,1.4vw,18px); color:var(--ink-soft); line-height:1.6; max-width:680px; text-shadow:0 1px 16px rgba(0,0,0,.5);}
.page-lead b{color:var(--ink); font-weight:600;}
/* evidenza gialla inline, riusabile in qualsiasi testo di pagina/articolo/corso.
   Usare con parsimonia: 2-3 occorrenze per pagina, o il giallo smette di significare qualcosa. */
.evi{color:var(--giallo); font-weight:600;}
/* rete neurale del banner pagina (motivo-firma, lato destro) */
#net-page{right:-80px; top:0; width:min(70%,1000px); height:100%; opacity:.5;
  -webkit-mask-image:linear-gradient(to left,#000 12%,transparent 92%); mask-image:linear-gradient(to left,#000 12%,transparent 92%);}
/* rete neurale decorativa nella zona centrale delle pagine interne (entra da destra, stessa logica della home) */
#net-mid{right:-90px; top:50%; transform:translateY(-50%); width:min(72%,980px); aspect-ratio:62 / 52; opacity:.6; z-index:-1;
  -webkit-mask-image:linear-gradient(to left,#000 6%,transparent 90%); mask-image:linear-gradient(to left,#000 6%,transparent 90%);}

/* lista servizi (card larghe impilate) */
.srv-list{position:relative; z-index:5; max-width:var(--maxw); margin:0 auto; padding:10px 36px 30px; display:flex; flex-direction:column; gap:18px;}
.srv-card{display:flex; gap:26px; align-items:flex-start; border-radius:16px; padding:30px 32px; border:1px solid var(--cosmo-600); background:linear-gradient(168deg, rgba(40,40,46,.45), rgba(15,15,18,.55)); position:relative; opacity:0; transform:translateY(20px); transition:transform .4s ease, opacity .4s ease, border-color .35s ease;}
.srv-card.in{opacity:1; transform:none;}
.srv-card:hover{border-color:rgba(240,229,0,.4);}
.srv-ic{width:64px; height:64px; flex-shrink:0;}
.srv-ic svg{width:100%; height:100%; overflow:visible;}
.srv-ic .stroke{fill:none; stroke:var(--giallo); stroke-width:2; opacity:.95;}
.srv-ic .stroke-soft{fill:none; stroke:var(--ink-soft); stroke-width:1.6; opacity:.55;}
.srv-ic .fill{fill:var(--giallo); opacity:.95;} .srv-ic .fill-soft{fill:var(--ink-soft); opacity:.45;}
.porta-ic{display:flex; align-items:center; justify-content:center; font-family:var(--display); font-weight:700; font-size:32px; color:var(--giallo); border:2px solid rgba(240,229,0,.3); border-radius:14px;}
.srv-body{flex:1; min-width:0;}
.srv-body h2{font-size:clamp(20px,2.2vw,26px); font-weight:600; color:var(--ink); letter-spacing:-.01em; line-height:1.2;}
/* Schede cliccabili per intero — pagina Formazione, 09/09/2026.
   Il bordo si accendeva già in hover, quindi la scheda prometteva di essere cliccabile
   e non lo era: diverse persone ci hanno provato senza risultato (segnalazione a Leo).
   Il link vero sta sul TITOLO — così il testo del collegamento è il titolo e non l'intero
   paragrafo, che è ciò che sente chi naviga con lo screen reader — e viene "stirato" su
   tutta la scheda con uno pseudo-elemento. Funziona perché .srv-card è già position:relative.
   Tutte le regole sono limitate con :has(.srv-stretch) per non toccare le .srv-card di altre pagine. */
.srv-body h2 .srv-stretch{color:inherit; text-decoration:none; transition:color .25s ease;}
.srv-stretch::after{content:""; position:absolute; inset:0; border-radius:16px; z-index:2;}
.srv-card:has(.srv-stretch){cursor:pointer;}
.srv-card:has(.srv-stretch):hover .srv-body h2 .srv-stretch{color:var(--giallo);}
.srv-card:has(.srv-stretch):focus-within{border-color:rgba(240,229,0,.55);}
.srv-stretch:focus-visible::after{outline:2px solid var(--giallo); outline-offset:4px;}
.srv-tag{font-family:var(--body); font-style:italic; font-size:15px; color:var(--amber); margin:4px 0 12px;}
.srv-txt{font-size:14.5px; color:var(--ink-soft); line-height:1.6; max-width:760px;}
.srv-txt b{color:var(--ink); font-weight:600;}
.srv-ex{font-size:13.5px; color:var(--ink-soft); line-height:1.55; margin-top:14px; padding:12px 16px; border-left:2px solid var(--amber); background:rgba(243,196,75,.05); border-radius:0 8px 8px 0;}
.srv-ex span{display:block; font-family:var(--display); font-weight:600; font-size:11.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--amber); margin-bottom:3px;}
.srv-cta{display:inline-flex; align-items:center; gap:8px; margin-top:16px; font-family:var(--display); font-weight:600; font-size:14px; color:var(--giallo); text-decoration:none; transition:gap .25s;}
.srv-cta:hover{gap:12px;}
.srv-badge{position:absolute; top:18px; right:18px; font-family:var(--display); font-size:10px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--cosmo-900); background:var(--giallo); padding:3px 8px; border-radius:100px;}
@media (max-width:860px){
  .page-hero{min-height:clamp(230px,40vh,330px); padding-top:80px;}
  .page-hero-inner{padding:0 18px 32px;}
  .srv-list{padding:6px 18px 24px;}
  .srv-card{flex-direction:column; gap:14px; padding:24px 22px;}
  .srv-ic{width:48px; height:48px;}
}

/* CTA finale di pagina */
.page-cta{position:relative; z-index:5; max-width:760px; margin:30px auto 0; padding:56px 36px 20px; text-align:center;}
.page-cta h2{font-size:clamp(22px,2.4vw,30px); font-weight:600; color:var(--ink); margin-bottom:12px;}
.page-cta p{font-size:15px; color:var(--ink-soft); line-height:1.6; max-width:560px; margin:0 auto 24px;}
@media (max-width:860px){ .page-cta{padding:40px 18px 16px;} }

/* Caffè AI — "come funziona" (3 step) */
.steps-sec{position:relative; z-index:5; max-width:var(--maxw); margin:0 auto; padding:48px 36px 16px;}
.steps{display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:22px;}
.step{border-radius:14px; padding:26px 24px; border:1px solid var(--cosmo-600); background:linear-gradient(168deg, rgba(40,40,46,.45), rgba(15,15,18,.55));}
.step .n{font-family:var(--display); font-weight:700; font-size:20px; color:var(--cosmo-900); background:var(--giallo); width:38px; height:38px; border-radius:50%; display:flex; align-items:center; justify-content:center; margin-bottom:14px;}
.step h3{font-size:var(--fs-h3); font-weight:600; color:var(--ink); margin-bottom:6px;}
.step p{font-size:14px; color:var(--ink-soft); line-height:1.55;}
@media (max-width:860px){ .steps{grid-template-columns:1fr;} .steps-sec{padding:34px 18px 12px;} }

/* Caffè AI — blocco prenota (form placeholder + contatti diretti) */
.book{position:relative; z-index:5; max-width:760px; margin:0 auto; padding:40px 36px 30px;}
.book-ph{border:1px dashed var(--cosmo-600); border-radius:14px; padding:20px; text-align:center; color:var(--ink-faint); font-size:13.5px; margin:18px 0 22px; background:rgba(255,255,255,.02);}
.book-live{margin:18px 0 22px;}
.contact-form{display:flex; flex-direction:column; gap:12px;}
.contact-form input,.contact-form textarea{background:rgba(255,255,255,.04); border:1px solid var(--cosmo-600); border-radius:12px; padding:13px 16px; color:var(--ink); font-family:var(--body); font-size:14px; width:100%;}
.contact-form input::placeholder,.contact-form textarea::placeholder{color:var(--ink-faint);}
.contact-form input:focus,.contact-form textarea:focus{outline:none; border-color:var(--amber);}
.contact-form button{align-self:flex-start; background:var(--giallo); color:#0a0a06; border:none; border-radius:100px; padding:13px 26px; font-family:var(--display); font-weight:700; font-size:15px; cursor:pointer; transition:background .25s;}
.contact-form button:hover{background:var(--giallo-light);}
.book-direct{margin-top:20px; font-size:14px; color:var(--ink-soft); text-align:center; line-height:1.7;}
.book-direct a{color:var(--amber); text-decoration:none;}
@media (max-width:860px){ .book{padding:30px 18px 20px;} }

/* Chi siamo — prosa narrativa + bottone secondario */
.prose-sec{position:relative; z-index:5; max-width:820px; margin:0 auto; padding:48px 36px 8px;}
.prose{font-size:clamp(15px,1.5vw,17px); color:var(--ink-soft); line-height:1.75;}
.prose p{margin-bottom:1.1em;}
.prose b{color:var(--ink); font-weight:600;}
.prose em{color:var(--amber); font-style:normal;}
/* citazione evidenziata (es. Cristianini in Chi siamo) */
.cit{max-width:820px; margin:26px auto 0; padding:22px 26px; border-left:3px solid var(--amber); background:rgba(243,196,75,.05); border-radius:0 12px 12px 0;}
.cit blockquote{margin:0; font-family:var(--display); font-weight:500; font-size:clamp(16px,1.7vw,20px); color:var(--ink); line-height:1.5; font-style:italic;}
.cit figcaption{margin-top:12px; font-size:13px; color:var(--ink-soft); font-style:normal;}
.cit cite{font-style:italic;}
@media (max-width:860px){ .cit{padding:18px 20px;} }
@media (max-width:860px){ .prose-sec{padding:34px 18px 6px;} }
/* bottone secondario "ghost" (accanto alla CTA piena, es. in Chi siamo) */
.cta-ghost{background:transparent !important; color:var(--ink) !important; border:1px solid var(--cosmo-600); margin:0 10px 10px 0;}
.cta-ghost:hover{border-color:var(--giallo); background:rgba(240,229,0,.06) !important; box-shadow:none !important; transform:translateY(-2px);}

/* Certificazioni — sezioni + griglia credenziali */
.cred-sec{position:relative; z-index:5; max-width:var(--maxw); margin:0 auto; padding:42px 36px 8px;}
.cred-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:8px;}
.cred{border-radius:14px; padding:24px; border:1px solid var(--cosmo-600); background:linear-gradient(168deg, rgba(40,40,46,.45), rgba(15,15,18,.55)); opacity:0; transform:translateY(20px); transition:transform .35s ease, opacity .35s ease, border-color .35s ease;}
.cred.in{opacity:1; transform:none;}
.cred:hover{border-color:rgba(243,196,75,.4);}
.cred .ent{font-family:var(--display); font-weight:600; font-size:12px; letter-spacing:.04em; color:var(--amber); margin-bottom:8px;}
.cred h3{font-size:16px; font-weight:600; color:var(--ink); margin-bottom:8px; line-height:1.3;}
.cred p{font-size:13px; color:var(--ink-soft); line-height:1.55;}
/* Scheda di punta a tutta larghezza — pagina Certificazioni, 09/09/2026.
   Dice visivamente quello che è vero nella sostanza: il diploma di Academy non è
   uno dei quattro riquadri, sta un gradino sopra. Testo a sinistra, dettaglio del
   diploma a destra, i crediti ECTS come numero grande perché davanti a scuole,
   enti e PA sono l'unica unità che sanno confrontare. */
.cred-hero{display:grid; grid-template-columns:1.78fr .66fr; gap:30px; align-items:center; padding:28px 30px; margin-top:8px;}
.cred-hero-txt{min-width:0;}
.cred-hero .ent{font-size:12.5px;}
.cred-hero h3{font-size:clamp(19px,2vw,23px); margin-bottom:10px;}
.cred-hero p{font-size:13.5px;}
.cred-ects{display:flex; align-items:baseline; gap:14px; margin-top:18px; padding-top:16px; border-top:1px solid var(--cosmo-600);}
.cred-ects .n{font-family:var(--display); font-weight:700; font-size:clamp(27px,3vw,34px); line-height:.95; color:var(--giallo);}
.cred-ects .l{font-family:var(--display); font-weight:600; font-size:14.5px; color:var(--ink); letter-spacing:.02em;}
.cred-ects .l small{display:block; font-family:var(--body); font-weight:400; font-size:12.5px; line-height:1.45; color:var(--ink-soft); letter-spacing:0; margin-top:5px;}
.cred-hero-img{margin:0; border-radius:10px; overflow:hidden; border:1px solid var(--cosmo-600); line-height:0;}
.cred-hero-img img{width:100%; height:auto; display:block;}
@media (max-width:860px){ .cred-hero{grid-template-columns:1fr; gap:22px; padding:24px 22px;} }
@media (max-width:980px){ .cred-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:860px){ .cred-sec{padding:30px 18px 6px;} .cred-grid{grid-template-columns:1fr;} }

/* Pagine "normali" (page.php): intestazione bassa + corpo tipografico per testo/shortcode plugin/form */
.page-hero--plain{min-height:clamp(180px,26vh,260px);}
.page-body{position:relative; z-index:5; max-width:820px; margin:0 auto; padding:44px 36px 24px;}
.page-body h2,.page-body h3{font-family:var(--display); color:var(--ink); margin:1.4em 0 .5em; line-height:1.3;}
.page-body h2{font-size:clamp(20px,2.2vw,26px);}
.page-body h3{font-size:var(--fs-h3);}
/* Titoli sezione delle schede corso in amber (ritmo/scansione senza toccare i testi) — solo sui corsi, non sulle pagine madri */
.corso-single .page-body h3{color:var(--amber);}
.page-body p,.page-body li{font-size:clamp(15px,1.5vw,16.5px); color:var(--ink-soft); line-height:1.75;}
.page-body p{margin-bottom:1.1em;}
.page-body ul,.page-body ol{margin:0 0 1.1em 1.4em;}
.page-body li{margin-bottom:.4em;}
/* Programma corso (lista numerata): più compatto di interlinea, corpo e spaziatura */
.page-body ol{line-height:1.45; margin-bottom:1em; padding-left:.2em;}
.page-body ol li{font-size:clamp(12px,1.05vw,13px); line-height:1.45; margin-bottom:.2em; color:var(--ink-soft);}
.page-body ul.fasce-ore li{font-size:clamp(12px,1.05vw,13px); line-height:1.45; margin-bottom:.28em; color:var(--ink-soft);}
.page-body a{color:var(--amber); text-decoration:underline;}
.page-body b,.page-body strong{color:var(--ink);}
@media (max-width:860px){ .page-body{padding:30px 18px 18px;} }

/* ---------- EDITORIALE (blog) ---------- */
.editoriale{position:relative; z-index:5; max-width:var(--maxw); margin:0 auto; padding:48px 36px 20px;}
.ed-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:20px; margin-top:8px;}
.post-card{display:flex; flex-direction:column; border-radius:14px; overflow:hidden; border:1px solid var(--cosmo-600); background:linear-gradient(168deg, rgba(40,40,46,.45), rgba(15,15,18,.55)); text-decoration:none; opacity:0; transform:translateY(20px); transition:transform .35s ease, opacity .35s ease, border-color .35s ease;}
.post-card.in{opacity:1; transform:none;}
.post-card:hover{border-color:rgba(243,196,75,.4); transform:translateY(-3px);}
.pc-thumb{aspect-ratio:16/9; background:var(--cosmo-700); overflow:hidden;}
.pc-thumb img{width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s ease;}
.post-card:hover .pc-thumb img{transform:scale(1.04);}
.pc-ph{display:block; width:100%; height:100%; background:radial-gradient(120% 120% at 80% 20%, rgba(243,196,75,.18), transparent 60%), linear-gradient(160deg, var(--cosmo-600), var(--cosmo-800));}
.pc-body{padding:18px 20px 22px; display:flex; flex-direction:column; flex:1;}
.pc-date{font-family:var(--display); font-weight:600; font-size:12px; letter-spacing:.04em; color:var(--amber); margin-bottom:8px;}
.pc-title{font-size:18px; font-weight:600; color:var(--ink); line-height:1.3; margin-bottom:10px;}
.pc-ex{font-size:13.5px; color:var(--ink-soft); line-height:1.6; margin-bottom:14px; flex:1;}
.pc-more{font-family:var(--display); font-weight:600; font-size:13px; color:var(--ink); display:inline-flex; gap:7px; transition:gap .25s, color .25s;}
.post-card:hover .pc-more{color:var(--amber); gap:11px;}
.ed-all{text-align:center; margin-top:28px;}
.ed-empty{text-align:center; color:var(--ink-soft); padding:30px 0;}
.ed-pager{margin-top:30px; text-align:center;}
.ed-pager .page-numbers{display:inline-block; min-width:38px; padding:8px 12px; margin:0 3px; border:1px solid var(--cosmo-600); border-radius:9px; color:var(--ink-soft); text-decoration:none; font-family:var(--display); font-size:14px; transition:.2s;}
.ed-pager .page-numbers.current{background:var(--giallo); color:#0a0a06; border-color:var(--giallo);}
.ed-pager a.page-numbers:hover{border-color:var(--giallo); color:var(--ink);}
/* singolo articolo */
.single-cover{position:relative; z-index:5; max-width:900px; margin:26px auto 0; padding:0 36px;}
.single-cover img{width:100%; height:auto; border-radius:14px; display:block;}
.post-meta-top{margin-top:12px; font-size:13.5px; color:var(--ink-soft);}
.post-meta-top a{color:var(--amber); text-decoration:none;}
.post-pages{font-size:14px; color:var(--ink-soft); margin-top:1.2em;}
.post-nav{position:relative; z-index:5; max-width:820px; margin:18px auto 0; padding:18px 36px 0; display:flex; justify-content:space-between; gap:20px; border-top:1px solid var(--cosmo-600);}
.post-nav a{font-family:var(--display); font-weight:600; font-size:13.5px; color:var(--ink-soft); text-decoration:none; max-width:46%; transition:color .2s;}
.post-nav a:hover{color:var(--amber);}
@media (max-width:980px){ .ed-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:860px){ .editoriale{padding:34px 18px 16px;} .ed-grid{grid-template-columns:1fr;} .single-cover{padding:0 18px;} .post-nav{padding:18px 18px 0;} }

/* ---------- CORSI (motore pre-iscrizione) ---------- */
.corsi-sec{position:relative; z-index:5; max-width:var(--maxw); margin:0 auto; padding:46px 36px 14px;}
.corsi-sec--video{border-top:1px solid var(--cosmo-600); margin-top:22px; padding-top:40px;}
.sec-kicker--verde{color:var(--verde) !important;}
.corsi-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:10px;}
.corso-card{display:flex; flex-direction:column; justify-content:space-between; gap:16px; min-height:200px; border-radius:14px; padding:24px; border:1px solid var(--cosmo-600); border-left:2px solid var(--giallo); background:linear-gradient(168deg, rgba(40,40,46,.45), rgba(15,15,18,.55)); text-decoration:none; opacity:0; transform:translateY(20px); transition:transform .35s ease, opacity .35s ease, border-color .35s ease;}
.corso-card.in{opacity:1; transform:none;}
.corso-card:hover{border-color:rgba(243,196,75,.4); transform:translateY(-3px);}
.corso-card.is-verde{border-left:2px solid var(--verde);}
.corso-card.is-verde:hover{border-color:rgba(124,218,36,.5);}
/* misto AI+visivo: bordo in gradiente giallo→verde che SEGUE il border-radius.
   Tecnica mask ad ANELLO: colora solo la cornice 2px, NON tinge il fill semitrasparente della card. */
.corso-card.is-misto{position:relative; border-left-color:transparent;}
.corso-card.is-misto::after{content:""; position:absolute; inset:0; border-radius:14px; border:0 solid transparent; border-left-width:2px; background:linear-gradient(180deg, var(--giallo), var(--verde)) border-box; -webkit-mask:linear-gradient(#fff 0 0) padding-box, linear-gradient(#fff 0 0); -webkit-mask-composite:xor; mask-composite:exclude; pointer-events:none;}
/* ponte verso l'Academy, in coda ai corsi che si sovrappongono a un percorso */
.corso-academy{position:relative; z-index:5; max-width:760px; margin:26px auto 0; padding:14px 18px; border-left:2px solid var(--giallo); background:linear-gradient(100deg, rgba(240,229,0,.07), rgba(240,229,0,.02)); border-radius:8px;}
.corso-academy p{margin:0; font-size:14px; color:var(--ink-soft); line-height:1.6;}
.corso-academy b{color:var(--ink); font-weight:600;}
.corso-academy a{color:var(--giallo); text-decoration:none; white-space:nowrap;}
.corso-academy a:hover{text-decoration:underline;}
.corso-academy--verde{border-left-color:var(--verde); background:linear-gradient(100deg, rgba(124,218,36,.07), rgba(124,218,36,.02));}
.corso-academy--verde a{color:var(--verde);}

/* box "perché non c'è il prezzo" nella pre-iscrizione */
.iscr-costi{max-width:760px; margin:0 auto 22px; background:var(--amber-soft); border-left:3px solid var(--amber); border-radius:8px; padding:13px 16px;}
.iscr-costi p{margin:0; font-size:13.5px; color:var(--ink-soft); line-height:1.55;}
.iscr-costi b{color:var(--ink); font-weight:600;}
/* hero scheda misto: scrim con un velo amber→verde tenue */
.page-hero--plain.is-misto .scrim{background:linear-gradient(0deg, rgba(11,11,13,.92) 0%, rgba(26,32,12,.30) 55%, rgba(11,11,13,.6) 100%);}
.cc-title{font-size:19px; font-weight:600; color:var(--ink); line-height:1.25; margin-bottom:8px;}
.cc-sub{font-size:14px; color:var(--ink-soft); line-height:1.5;}
.cc-meta{margin-top:12px; font-size:12.5px; color:var(--ink-faint); font-family:var(--display); letter-spacing:.02em;}
.cc-foot{display:flex; align-items:center; justify-content:space-between; gap:12px;}
.cc-soglia{font-family:var(--display); font-weight:600; font-size:11.5px; letter-spacing:.03em; padding:5px 11px; border-radius:100px; border:1px solid var(--cosmo-600); color:var(--ink-soft); white-space:nowrap;}
.cc-soglia--crescita{color:var(--amber); border-color:rgba(243,196,75,.4); background:var(--amber-soft);}
.cc-soglia--quasi{color:var(--giallo); border-color:rgba(240,229,0,.5); background:rgba(240,229,0,.08);}
.cc-soglia--partenza{color:#0a0a06; background:var(--giallo); border-color:var(--giallo);}
.cc-more{font-family:var(--display); font-weight:600; font-size:13px; color:var(--ink); display:inline-flex; gap:7px; transition:gap .25s, color .25s;}
.corso-card:hover .cc-more{color:var(--amber); gap:11px;}
/* scheda singolo corso */
.corso-meta{position:relative; z-index:5; max-width:820px; margin:24px auto 0; padding:0 36px; display:flex; flex-wrap:wrap; gap:14px 30px;}
.corso-meta .cm-item{font-size:14.5px; color:var(--ink);}
.corso-meta .cm-item span{display:block; font-family:var(--display); font-weight:600; font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--amber); margin-bottom:3px;}
.corso-meta .cm-item--achi{flex:1 1 240px; min-width:0;} /* la voce lunga prende lo spazio che resta e va a capo da sola */
.corso-iscr{position:relative; z-index:5; max-width:760px; margin:20px auto 0; padding:36px 36px 24px;}
.iscr-form{margin:18px 0 16px;}
.page-hero--plain.is-verde .scrim{background:linear-gradient(0deg, rgba(11,11,13,.92) 0%, rgba(20,40,12,.35) 55%, rgba(11,11,13,.6) 100%);}
/* Approfondimenti — 4° stato colore arancione */
.corso-card.is-orange{border-left:2px solid var(--arancio);}
.corso-card.is-orange:hover{border-color:rgba(245,130,43,.55);}
.sec-kicker--arancio{color:var(--arancio) !important;}
.page-hero--plain.is-orange .scrim{background:linear-gradient(0deg, rgba(11,11,13,.92) 0%, rgba(40,24,10,.38) 55%, rgba(11,11,13,.6) 100%);}

/* ---------- MEGA-MENU CORSI (pannello a colonne per gruppo) ---------- */
.nav-links .menu-corsi-mega{position:relative;}
.nav-links .menu-corsi-mega .mega{display:none; position:absolute; top:100%; left:50%; right:auto; transform:translateX(-50%); width:max-content; max-width:min(94vw, 760px); padding-top:9px; z-index:60;}
.nav-links .menu-corsi-mega:hover .mega,
.nav-links .menu-corsi-mega .mega:hover{display:block;}
.mega-inner{background:var(--cosmo-800); border:1px solid var(--cosmo-600); border-radius:14px; box-shadow:0 26px 64px -22px rgba(0,0,0,.75); padding:24px 30px 26px;}
.mega-cols{display:flex; gap:38px; align-items:flex-start;}
.mega-col{display:flex; flex-direction:column; gap:6px; min-width:172px;}
.mega-group{display:flex; flex-direction:column; gap:5px;}
.mega-group + .mega-group{margin-top:20px;}
.mega-head{font-family:var(--display); font-weight:700; font-size:11.5px; letter-spacing:.11em; text-transform:uppercase; color:var(--amber); margin-bottom:5px; display:block;}
.mega-col a{color:var(--ink-soft); text-decoration:none; font-size:14px; line-height:1.3; padding:3px 0; transition:color .2s ease, padding-left .2s ease;}
.mega-col a:hover{color:var(--giallo); padding-left:4px;}
/* mobile: il pannello diventa statico dentro il menu a tendina */
@media (max-width:860px){
  .nav-links .menu-corsi-mega .mega{position:static; display:block; width:auto; max-width:none; left:auto; right:auto; transform:none; padding-top:0; margin:4px 0 2px;}
  .mega-inner{background:transparent; border:none; box-shadow:none; padding:0 0 0 12px;}
  .mega-cols{flex-direction:column; gap:16px;}
  .mega-group + .mega-group{margin-top:14px;}
}
@media (max-width:980px){ .corsi-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:860px){ .corsi-sec{padding:32px 18px 12px;} .corsi-grid{grid-template-columns:1fr;} .corso-meta{padding:0 18px;} .corso-iscr{padding:28px 18px 18px;} }

/* Ricerca — blocco "le domande" */
.asks{display:flex; flex-direction:column; gap:12px; max-width:820px; margin:8px auto 0; padding:0 36px;}
.asks span{font-family:var(--display); font-weight:600; font-size:clamp(17px,1.9vw,22px); color:var(--ink); border-left:2px solid var(--amber); padding-left:18px; line-height:1.35;}
@media (max-width:860px){ .asks{padding:0 18px;} }

/* ---- Corsi: immagine (vetrina a fascia 21:9 · hero scheda pieno) + torna-elenco ---- */
.cc-media{margin:-24px -24px 4px; border-radius:14px 14px 0 0; overflow:hidden; aspect-ratio:21/9; background:rgba(255,255,255,.03);}
.cc-media img{width:100%; height:100%; object-fit:cover; display:block;}
.page-hero.has-cover .hero-cover{position:absolute; inset:0; z-index:2; background-size:cover; background-position:center;}
.corso-back{max-width:var(--maxw); margin:6px auto 0; padding:0 36px 44px;}
.corso-back a{color:var(--ink-soft); text-decoration:none; font-size:15px; transition:color .25s ease;}
.corso-back a:hover{color:var(--amber);}
@media (max-width:860px){ .corso-back{padding:0 18px 30px;} }

/* ============================================================
   ACADEMY — hub (due porte) + rami AI (giallo) / Video (verde)
   ============================================================ */
.acad-gates{position:relative; z-index:5; max-width:var(--maxw); margin:0 auto; padding:46px 36px 14px; display:grid; grid-template-columns:1fr 1fr; gap:20px;}
.gate{position:relative; display:flex; flex-direction:column; border-radius:16px; padding:0; border:1px solid var(--cosmo-600); background:linear-gradient(168deg, rgba(40,40,46,.45), rgba(15,15,18,.55)); text-decoration:none; overflow:hidden; transition:transform .3s ease, border-color .3s ease, box-shadow .4s ease;}
.gate-img{width:100%; height:150px; background-size:cover; background-position:center; opacity:.92; transition:opacity .3s ease;}
.gate:hover .gate-img{opacity:1;}
.gate-body{display:flex; flex-direction:column; gap:13px; padding:26px 30px 30px;}
.gate::before{content:""; position:absolute; top:0; left:0; bottom:0; width:3px;}
.gate--ai::before{background:var(--giallo);}
.gate--video::before{background:var(--verde);}
.gate:hover{transform:translateY(-4px);}
.gate--ai:hover{border-color:rgba(240,229,0,.45); box-shadow:0 18px 50px -22px rgba(240,229,0,.4);}
.gate--video:hover{border-color:rgba(124,218,36,.5); box-shadow:0 18px 50px -22px rgba(124,218,36,.4);}
.gate-badge{font-family:var(--display); font-weight:700; font-size:12px; letter-spacing:.12em; text-transform:uppercase;}
.gate--ai .gate-badge{color:var(--giallo);}
.gate--video .gate-badge{color:var(--verde);}
.gate-claim{font-family:var(--display); font-weight:700; font-size:clamp(21px,2.3vw,28px); line-height:1.15; color:var(--ink); letter-spacing:-.01em;}
.gate-txt{font-size:14.5px; color:var(--ink-soft); line-height:1.55;}
.gate-txt b{color:var(--ink); font-weight:600;}
.gate-cta{margin-top:6px; font-family:var(--display); font-weight:600; font-size:14.5px; display:inline-flex; gap:8px; color:var(--ink);}
.gate--ai .gate-cta span{color:var(--giallo);}
.gate--video .gate-cta span{color:var(--verde);}
.gate:hover .gate-cta{gap:12px;}

/* sezioni testo comuni ai rami (intro · modello · how) */
.acad-model,.acad-intro,.acad-how{position:relative; z-index:5; max-width:820px; margin:0 auto; padding:34px 36px 8px;}
.acad-points{list-style:none; display:flex; flex-direction:column; gap:12px; margin-top:8px;}
.acad-points li{position:relative; padding-left:20px; font-size:15.5px; color:var(--ink-soft); line-height:1.55;}
.acad-points li::before{content:""; position:absolute; left:0; top:.62em; width:7px; height:7px; border-radius:50%; background:var(--amber);}
.acad-points b{color:var(--ink); font-weight:600;}
.acad-lead{max-width:760px; font-size:16px; color:var(--ink-soft); line-height:1.6; margin-top:6px;}
.acad-lead b{color:var(--ink); font-weight:600;}

/* programma di massima */
.acad-prog{position:relative; z-index:5; max-width:820px; margin:0 auto; padding:34px 36px 8px;}
.prog{list-style:none; counter-reset:prog; display:flex; flex-direction:column; gap:2px; margin-top:10px;}
.prog-item{position:relative; padding:16px 0 16px 52px; border-top:1px solid var(--cosmo-600); counter-increment:prog;}
.prog-item:first-child{border-top:none;}
.prog-item::before{content:counter(prog,decimal-leading-zero); position:absolute; left:0; top:16px; font-family:var(--display); font-weight:700; font-size:15px; color:var(--amber);}
.prog-h{display:flex; align-items:baseline; justify-content:space-between; gap:14px;}
.prog-h b{font-family:var(--display); font-weight:600; font-size:17px; color:var(--ink);}
.prog-h em{flex-shrink:0; font-style:normal; font-family:var(--display); font-weight:600; font-size:12.5px; color:var(--ink-faint); letter-spacing:.02em;}
.prog-item p{margin-top:5px; font-size:14.5px; color:var(--ink-soft); line-height:1.55; max-width:660px;}
.prog-item p b{color:var(--ink); font-weight:600;}
.prog-note{max-width:820px; margin:14px auto 0; padding:0 36px; font-size:13.5px; color:var(--ink-faint); font-style:italic;}

/* CTA verde (ramo video) */
.cta--verde{background:var(--verde) !important; color:#08120a !important;}
.cta--verde:hover{background:#8fe83a !important; box-shadow:0 14px 42px -10px rgba(124,218,36,.55) !important;}

/* ramo VIDEO: accenti al verde */
.acad--video .scrim{background:linear-gradient(90deg, rgba(11,11,13,.93) 0%, rgba(11,11,13,.72) 38%, rgba(11,20,13,.30) 70%, rgba(11,20,13,.15) 100%), linear-gradient(0deg, rgba(11,13,11,.80) 0%, transparent 45%);}
.acad--video .prog-item::before{color:var(--verde);}
.acad--video .acad-points li::before{background:var(--verde);}

@media (max-width:860px){
  .acad-gates{grid-template-columns:1fr; padding:32px 18px 12px;}
  .gate-body{padding:22px 22px 26px;}
  .acad-model,.acad-intro,.acad-how,.acad-prog{padding:26px 18px 6px;}
  .prog-note{padding:0 18px;}
  .prog-h{flex-direction:column; gap:2px;}
}

/* ============================================================
   FLUENT FORMS — armonizzazione palette AI (amber/nero)
   Scope su .frm-fluent-form: vale per tutti i form del sito.
   ============================================================ */
.frm-fluent-form{max-width:500px;}
.frm-fluent-form .ff-el-group{margin-bottom:13px;}

/* label + asterisco obbligatorio */
.frm-fluent-form .ff-el-input--label label{
  font-family:var(--display); font-weight:600; font-size:13px;
  color:var(--ink); letter-spacing:.005em; margin-bottom:4px; display:inline-block;
}
.frm-fluent-form .ff-el-is-required.asterisk-right label:after,
.frm-fluent-form .asterisk-right.ff-el-is-required label:after{ color:var(--amber); }

/* help message sotto il campo — il default di Fluent Forms e' pensato per sfondi chiari:
   su tema scuro risulta illeggibile (stesso motivo per cui l'icona del tooltip era invisibile) */
.frm-fluent-form .ff-el-group .ff-el-help-message,
.frm-fluent-form .ff-el-help-message,
.fluentform .ff-el-help-message{
  color:var(--ink-soft) !important; font-size:12.5px !important; line-height:1.5;
  margin-top:5px; font-style:normal; opacity:1 !important;
}
/* se da qualche parte resta un tooltip, almeno l'icona si vede (l'SVG del plugin non ha fill) */
.frm-fluent-form .ff-el-tooltip svg{ fill:var(--ink-soft); }

/* input + textarea */
.frm-fluent-form input.ff-el-form-control,
.frm-fluent-form textarea.ff-el-form-control,
.frm-fluent-form select.ff-el-form-control{
  width:100%; background:var(--cosmo-700); color:var(--ink);
  border:1px solid rgba(255,255,255,.10); border-radius:10px;
  padding:9px 13px; font-family:var(--body); font-size:14px; line-height:1.45;
  transition:border-color .2s, box-shadow .2s, background .2s;
}
.frm-fluent-form .ff-el-form-control::placeholder{ color:var(--ink-faint); }
.frm-fluent-form .ff-el-form-control:focus{
  outline:none; background:var(--cosmo-600);
  border-color:var(--giallo); box-shadow:0 0 0 3px var(--amber-soft);
}
.frm-fluent-form textarea.ff-el-form-control{ min-height:88px; resize:vertical; }

/* consenso privacy (GDPR) */
.frm-fluent-form .ff-el-tc .ff-el-form-check-label{
  display:flex; align-items:flex-start; gap:10px;
  font-size:13.5px; color:var(--ink-soft); line-height:1.5; cursor:pointer;
}
.frm-fluent-form .ff_tc_checkbox{ flex:0 0 auto; margin-top:2px; }
.frm-fluent-form .ff-el-form-check-input{
  width:18px; height:18px; accent-color:var(--giallo); cursor:pointer;
}
.frm-fluent-form .ff_t_c{ color:var(--ink-soft); }
.frm-fluent-form .ff_t_c a{ color:var(--amber); text-decoration:underline; text-underline-offset:2px; }
.frm-fluent-form .ff_t_c a:hover{ color:var(--giallo); }

/* bottone submit → pill giallo come le CTA del sito */
.frm-fluent-form .ff-btn-submit{
  background:var(--giallo) !important; color:#0a0a06 !important;
  font-family:var(--display); font-weight:700; font-size:14px;
  padding:11px 26px; border:none; border-radius:100px; cursor:pointer;
  box-shadow:none; transition:transform .25s, background .25s, box-shadow .4s;
}
.frm-fluent-form .ff-btn-submit:hover{
  background:var(--giallo-light) !important;
  transform:translateY(-1px); box-shadow:0 8px 24px rgba(240,229,0,.25);
}

/* stati: errore + messaggio di conferma */
.frm-fluent-form .ff-el-form-control[aria-invalid="true"]{ border-color:#e2564d; }
.frm-fluent-form .error,
.frm-fluent-form .text-danger{ color:#f08a82; font-size:13px; margin-top:6px; }
.ff-message-success{
  background:var(--amber-soft); border:1px solid var(--amber);
  color:var(--ink); padding:18px 20px; border-radius:14px;
  font-size:15px; line-height:1.55;
}

/* radio + checkbox come CHIP selezionabili (look tech, non lista da hotel) */
.frm-fluent-form .ff-el-input--content > .ff-el-form-check:not(.ff-el-tc){
  display:inline-flex; align-items:center; margin:0 8px 8px 0; padding:9px 13px;
  background:var(--cosmo-700); border:1px solid rgba(255,255,255,.10);
  border-radius:9px; transition:border-color .18s, background .18s;
}
.frm-fluent-form .ff-el-form-check:not(.ff-el-tc) .ff-el-form-check-label{
  display:flex; align-items:center; gap:9px; margin:0; cursor:pointer;
  font-size:14px; color:var(--ink-soft); line-height:1.3;
}
.frm-fluent-form .ff-el-form-check:not(.ff-el-tc) .ff-el-form-check-input{
  appearance:none; -webkit-appearance:none; -moz-appearance:none;
  width:17px; height:17px; margin:0; flex:0 0 auto; cursor:pointer; position:relative;
  background:var(--cosmo-900); border:1px solid rgba(255,255,255,.22);
  border-radius:5px; transition:background .15s, border-color .15s;
}
.frm-fluent-form .ff-el-form-check:not(.ff-el-tc) .ff-el-form-check-radio{ border-radius:50%; }
.frm-fluent-form .ff-el-form-check:not(.ff-el-tc) .ff-el-form-check-input:checked{
  background:var(--giallo); border-color:var(--giallo);
}
.frm-fluent-form .ff-el-form-check:not(.ff-el-tc) .ff-el-form-check-checkbox:checked::after{
  content:''; position:absolute; left:5px; top:2px; width:4px; height:8px;
  border:solid #0a0a06; border-width:0 2px 2px 0; transform:rotate(45deg);
}
.frm-fluent-form .ff-el-form-check:not(.ff-el-tc) .ff-el-form-check-radio:checked::after{
  content:''; position:absolute; left:50%; top:50%; width:7px; height:7px;
  background:#0a0a06; border-radius:50%; transform:translate(-50%,-50%);
}
.frm-fluent-form .ff-el-form-check:not(.ff-el-tc) .ff-el-form-check-input:focus-visible{
  outline:2px solid var(--amber-soft); outline-offset:1px;
}
/* casella consenso GDPR — stessa resa scura custom delle altre */
.frm-fluent-form .ff_gdpr_field,
.frm-fluent-form .ff-el-tc .ff-el-form-check-input{
  appearance:none; -webkit-appearance:none; -moz-appearance:none;
  width:17px; height:17px; margin:0; flex:0 0 auto; cursor:pointer; position:relative;
  background:var(--cosmo-900); border:1px solid rgba(255,255,255,.22);
  border-radius:5px; transition:background .15s, border-color .15s;
}
.frm-fluent-form .ff_gdpr_field:checked,
.frm-fluent-form .ff-el-tc .ff-el-form-check-input:checked{
  background:var(--giallo); border-color:var(--giallo);
}
.frm-fluent-form .ff_gdpr_field:checked::after,
.frm-fluent-form .ff-el-tc .ff-el-form-check-input:checked::after{
  content:''; position:absolute; left:5px; top:2px; width:4px; height:8px;
  border:solid #0a0a06; border-width:0 2px 2px 0; transform:rotate(45deg);
}
/* blocco trasparenza costi (manifestazione d'interesse, prima dell'invio) */
.frm-fluent-form .iscr-disclaimer{
  background:var(--amber-soft); border-left:3px solid var(--amber);
  border-radius:8px; padding:13px 16px; margin:2px 0 4px;
  font-size:13.5px; line-height:1.55; color:var(--ink-soft);
}
.frm-fluent-form .iscr-disclaimer strong{ color:var(--ink); font-weight:600; }
/* micro-riga rassicurazione sotto il bottone (no box): la versione piena vive nel box pricing in cima */
.frm-fluent-form .iscr-noimpegno{ font-size:12.5px; color:var(--amber); text-align:center; line-height:1.5; margin:2px 0 6px; }

/* ============ LAVORA CON NOI — posizioni ============ */
.pos-wrap{ max-width:var(--maxw); margin:0 auto; padding:8px 36px 0; }
.pos-area{ margin-bottom:46px; }
.pos-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:18px; margin-top:6px; }
.pos-card{ display:flex; flex-direction:column; }
.pos-card .pos-desc{ font-size:14px; color:var(--ink-soft); line-height:1.55; margin-bottom:12px; }
.pos-card .pos-comp{ font-size:13px; color:var(--ink-soft); line-height:1.5; margin-top:auto; }
.pos-card .pos-comp span{ display:block; font-family:var(--display); font-weight:600; font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--amber); margin-bottom:3px; }
.pos-card .pos-collab{ font-size:12.5px; color:var(--ink-faint); margin-top:9px; font-style:italic; }
.cand-sec{ max-width:var(--maxw); margin:0 auto; padding:36px 36px 0; }
@media (max-width:860px){ .pos-wrap, .cand-sec{ padding-left:18px; padding-right:18px; } }
.frm-fluent-form .ff-el-input--content > .ff-el-form-check:not(.ff-el-tc):hover{ border-color:var(--giallo); }
.frm-fluent-form .ff-el-input--content > .ff-el-form-check:not(.ff-el-tc):has(input:checked){
  border-color:var(--giallo); background:var(--amber-soft);
}
.frm-fluent-form .ff-el-form-check:not(.ff-el-tc):has(input:checked) span{ color:var(--ink); }
/* tooltip e «Altra» */
.frm-fluent-form .ff-el-tooltip svg{ fill:var(--ink-faint); vertical-align:middle; }
.frm-fluent-form .ff-el-form-check-other input[type="text"]{ margin-top:6px; }

/* ============================================================
   REVEAL a due stati per gli articoli (es. illusione di Adelson).
   CSS-only, nessun JS: un checkbox nascosto alterna le due immagini.
   Il lettore CLICCA e vede la prova → vive l'inganno invece di leggerlo.
   Markup: figure.reveal > input.reveal-tgl + label.reveal-stage > img.reveal-a + img.reveal-b + span.reveal-hint
   ============================================================ */
.reveal{ margin:34px auto; max-width:760px; }
.reveal-tgl{ position:absolute; opacity:0; width:0; height:0; pointer-events:none; }
.reveal-stage{ position:relative; display:block; cursor:pointer; border-radius:14px; overflow:hidden;
  border:1px solid var(--cosmo-600); background:var(--cosmo-800); line-height:0; }
.reveal-stage img{ display:block; width:100%; height:auto; transition:opacity .35s ease; }
.reveal-stage .reveal-b{ position:absolute; inset:0; opacity:0; }
.reveal-tgl:checked ~ .reveal-stage .reveal-a{ opacity:0; }
.reveal-tgl:checked ~ .reveal-stage .reveal-b{ opacity:1; }
.reveal-hint{ position:absolute; left:50%; bottom:14px; transform:translateX(-50%);
  display:inline-flex; align-items:center; gap:7px; padding:8px 16px; border-radius:999px;
  background:rgba(11,11,13,.82); border:1px solid var(--cosmo-600); backdrop-filter:blur(4px);
  font-family:var(--body); font-size:13px; line-height:1.2; color:var(--ink); white-space:nowrap;
  transition:opacity .25s ease, background .2s ease; }
.reveal-stage:hover .reveal-hint{ background:rgba(243,196,75,.16); border-color:var(--amber); color:var(--amber); }
.reveal-hint::before{ content:"👁"; font-size:14px; }
.reveal-tgl:checked ~ .reveal-stage .reveal-hint{ background:rgba(11,11,13,.82); }
.reveal-tgl:checked ~ .reveal-stage .reveal-hint .lbl-off{ display:none; }
.reveal-hint .lbl-on{ display:none; }
.reveal-tgl:checked ~ .reveal-stage .reveal-hint .lbl-on{ display:inline; }
/* accessibilità: focus da tastiera visibile */
.reveal-tgl:focus-visible ~ .reveal-stage{ outline:2px solid var(--amber); outline-offset:3px; }
/* ⚠️ selettore `~` (fratello successivo) e NON `+` (fratello adiacente): WordPress applica wpautop
   al contenuto e può infilare <p>/<br /> tra l'input e la label — con `+` il reveal smette di funzionare. */
.reveal figcaption{ margin-top:12px; font-size:13px; color:var(--ink-faint); line-height:1.5; text-align:center; }
.reveal figcaption a{ color:var(--ink-soft); }
@media (max-width:860px){ .reveal-hint{ font-size:12px; padding:7px 13px; bottom:10px; } }

/* ---------------------------------------------------------------------------
   BANNER COOKIE ELMO — leggibilità della firma "Powered by PrivacyLab"
   Il banner è servito da uno script di PrivacyLab, ma NON è isolato in Shadow
   DOM: il nostro CSS lo raggiunge. I loro colori di serie (#444444, #898989)
   sono pensati per un banner chiaro; noi usiamo il tema scuro, e lì la firma
   diventa illeggibile.
   ⚠️ SCELTA DELIBERATA (rilievo di Leo): NON si schiarisce il logo con un
   filtro. Colorare di bianco il marchio di un terzo è una modifica del segno
   distintivo, e le loro linee guida non le conosciamo. Si lascia il logo
   ESATTAMENTE com'è e gli si dà il fondo bianco per cui è stato disegnato.
   "Powered by" invece è testo loro, non parte del marchio: quello si colora.
   Il CSS del banner è accodato dopo il nostro ⇒ serve `!important`, stessa
   lezione dei moduli Fluent.
   --------------------------------------------------------------------------- */
.c-cookie-banner-powered-logo{
  background:#fff !important;
  padding:3px 6px !important;
  border-radius:4px !important;
  /* ⚠️ senza questo il logo RIMPICCIOLISCE: con box-sizing:border-box il
     padding viene sottratto allo spazio dell'immagine invece di aggiungersi
     fuori. Rilevato a occhio da Leo, ed era vero. */
  box-sizing:content-box !important;
}
.c-cookie-banner-body-desc-footer-right{
  color:var(--ink-soft) !important;
}

/* ===== Barra pre-iscrizioni — «il gruppo più vicino a partire» (15/09/2026) ===== */
.barra{max-width:760px; margin:0 auto 22px; padding:16px 18px 12px; border-radius:10px; background:rgba(240,229,0,.05); border:1px solid rgba(240,229,0,.22);}
.barra-testa{display:flex; justify-content:space-between; align-items:baseline; gap:12px; flex-wrap:wrap; margin-bottom:10px;}
.barra-label{font-family:var(--display); font-size:11.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-soft);}
.barra-conto{font-size:15px; color:var(--ink);}
.barra-conto b{color:var(--giallo); font-weight:700;}
.barra-track{height:12px; border-radius:100px; background:rgba(255,255,255,.07); overflow:hidden; box-shadow:inset 0 0 0 1px rgba(255,255,255,.06);}
.barra-fill{height:100%; width:0; border-radius:100px; background:linear-gradient(90deg, var(--giallo-deep), var(--giallo) 60%, var(--giallo-light)); box-shadow:0 0 14px rgba(240,229,0,.55), 0 0 4px rgba(240,229,0,.9); transition:width .9s cubic-bezier(.2,.8,.2,1);}
.barra--quasi .barra-fill{animation:barra-pulse 1.6s ease-in-out infinite;}
.barra--piena{border-color:var(--giallo); background:rgba(240,229,0,.10);}
.barra--piena .barra-label{color:var(--giallo);}
@keyframes barra-pulse{0%,100%{box-shadow:0 0 14px rgba(240,229,0,.55)} 50%{box-shadow:0 0 26px rgba(240,229,0,.95)}}
.barra-altri{margin:10px 0 0; font-size:12.5px; color:var(--ink-faint);}
.barra-invito{margin:8px 0 0; font-size:13px; color:var(--ink-soft); line-height:1.55;}
.barra-invito a{color:var(--giallo); text-decoration:none; border-bottom:1px solid rgba(240,229,0,.4);}
.barra-invito a:hover{border-color:var(--giallo);}
@media (prefers-reduced-motion:reduce){ .barra-fill{transition:none; animation:none !important;} }

/* Seconda porta: dal corso allo sviluppo (15/09/2026) */
.corso-sviluppo{position:relative; z-index:5; max-width:760px; margin:26px auto 0; padding:14px 18px; border-left:2px solid var(--amber); background:linear-gradient(100deg, rgba(243,196,75,.08), rgba(243,196,75,.02)); border-radius:8px;}
.corso-sviluppo p{margin:0; font-size:14px; color:var(--ink-soft); line-height:1.6;}
.corso-sviluppo b{color:var(--ink); font-weight:600;}
.corso-sviluppo a{color:var(--amber); text-decoration:none; white-space:nowrap;}
.corso-sviluppo a:hover{text-decoration:underline;}

/* Blocco «Programmazione 2026/27» in testa a /corsi/ (temporaneo, campagna) */
.prog-band{position:relative; z-index:5; width:100%; margin:0 0 8px; padding:22px 0; background:linear-gradient(120deg, rgba(240,229,0,.09), rgba(240,229,0,.03) 55%, rgba(240,229,0,.07)); border-top:1px solid rgba(240,229,0,.55); border-bottom:1px solid rgba(240,229,0,.55); box-shadow:0 0 22px rgba(240,229,0,.22), inset 0 0 22px rgba(240,229,0,.06);}
.prog-band-inner{max-width:var(--maxw); margin:0 auto; padding:0 36px;}
.prog-band p{margin:0 0 8px; max-width:860px; font-size:14.5px; color:var(--ink-soft); line-height:1.6;}
.prog-band p:last-child{margin-bottom:0;}
.prog-band b{color:var(--ink); font-weight:600;}
.prog-band .prog-data{color:var(--giallo); font-weight:700; text-shadow:0 0 10px rgba(240,229,0,.6);}
@media (max-width:860px){ .prog-band-inner{padding:0 18px;} }
