/* ════════════════════════════════════════════════════════════════
   FX ACADEMY — pagina formazione (usa i token e i componenti di style.css)
   ════════════════════════════════════════════════════════════════ */
.acad{ position:relative; z-index:2; }
.acad strong{ color:var(--green); font-weight:600; }
/* i contenitori dentro <button>/<a> sono <span>: vanno resi blocchi */
.pill__frame, .guide__frame, .pill__title, .tut__title, .tut__desc, .ep__title{ display:block; }
.tut__meta > span:first-child{ display:block; flex:1; min-width:0; }

/* ── HERO ──────────────────────────────────────────────────────── */
.acad-hero{
  position:relative; overflow:hidden;
  padding:calc(var(--nav-h) + clamp(44px,8vh,96px)) 0 0;
}
.acad-hero__bg{
  position:absolute; inset:0; z-index:0; pointer-events:none;
  background:
    radial-gradient(ellipse 55% 42% at 50% -6%, rgba(149,252,81,.20), transparent 70%),
    radial-gradient(ellipse 30% 26% at 88% 34%, rgba(149,252,81,.07), transparent 70%),
    radial-gradient(ellipse 30% 26% at 10% 40%, rgba(149,252,81,.05), transparent 70%);
}
.acad-hero__bg::after{
  content:''; position:absolute; inset:0;
  background-image:
    linear-gradient(rgba(255,255,255,.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px);
  background-size:72px 72px;
  -webkit-mask-image:radial-gradient(ellipse 70% 60% at 50% 20%, #000 20%, transparent 75%);
          mask-image:radial-gradient(ellipse 70% 60% at 50% 20%, #000 20%, transparent 75%);
}
.acad-hero__in{
  position:relative; z-index:1; text-align:center;
  padding:0 var(--pad); max-width:1400px; margin:0 auto;
}
.acad-hero__eyebrow{
  display:inline-flex; align-items:center; gap:12px; color:var(--green); margin:0 0 clamp(18px,3vh,30px); text-align:center;
}
.acad-hero__eyebrow::before, .acad-hero__eyebrow::after{
  content:''; width:34px; height:1px; background:var(--green-25);
}
.acad-title{
  margin:0; font-family:var(--f-num); font-weight:400; text-transform:uppercase;
  font-size:clamp(4.4rem, 19vw, 17.5rem); line-height:.84; letter-spacing:.01em;
  display:flex; justify-content:center; align-items:baseline; gap:.16em; flex-wrap:wrap;
}
.acad-title__w{ display:inline-block; overflow:hidden; padding:.08em .06em 0; margin:-.08em -.06em 0; }
.acad-title__in{ display:inline-block; }
.acad-title .fx{ color:transparent; -webkit-text-stroke:clamp(1.5px,.22vw,3px) var(--green); }
.acad-title .ac{ color:var(--green); text-shadow:0 0 70px rgba(149,252,81,.28); }
.acad-lead{
  color:var(--w70); max-width:66ch; margin:clamp(22px,3.5vh,36px) auto 0;
  font-size:clamp(15px, 1.25vw, 18.5px); line-height:1.65;
}
.acad-index{
  display:flex; flex-wrap:wrap; justify-content:center; gap:10px; margin:clamp(24px,4vh,40px) auto 0;
}
.acad-chip{
  display:inline-flex; align-items:center; gap:10px; padding:10px 16px 10px 12px;
  border-radius:999px; border:1px solid var(--hair); background:rgba(255,255,255,.03);
  color:var(--w70); text-decoration:none; transition:border-color .3s, color .3s, background .3s, transform .3s var(--ease-out);
}
.acad-chip i{
  font-style:normal; display:inline-grid; place-items:center; min-width:24px; height:24px; padding:0 7px;
  border-radius:999px; background:var(--green); color:#09090B; font-weight:700; letter-spacing:.06em; font-size:10px;
}
.acad-chip small{ font-size:inherit; color:var(--w40); letter-spacing:.14em; }
.acad-chip:hover{ border-color:var(--green); color:var(--w100); background:var(--green-12); transform:translateY(-2px); }

/* tutorial card */
.tut-wrap{ position:relative; z-index:1; padding:0 var(--pad); max-width:1400px; margin:clamp(40px,7vh,72px) auto 0; }
.tut{
  position:relative; display:block; width:100%; aspect-ratio:16/9; max-height:78vh;
  border-radius:clamp(16px,2vw,26px); overflow:hidden; background:#000; text-align:left;
  border:1px solid rgba(255,255,255,.10);
  box-shadow:0 50px 140px rgba(0,0,0,.65), 0 0 0 1px rgba(149,252,81,.06), 0 0 120px rgba(149,252,81,.08);
  transition:box-shadow .5s, border-color .4s;
}
.tut:hover{ border-color:rgba(149,252,81,.45); box-shadow:0 50px 140px rgba(0,0,0,.7), 0 0 0 1px rgba(149,252,81,.2), 0 0 140px rgba(149,252,81,.16); }
.tut__img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transform:scale(1.02); transition:transform 1.4s var(--ease-out); }
.tut:hover .tut__img{ transform:scale(1.06); }
.tut__shade{
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(9,9,11,.10) 0%, rgba(9,9,11,.12) 45%, rgba(9,9,11,.88) 100%);
}
.tut__play, .pill__play, .player__play{
  position:absolute; left:50%; top:50%; transform:translate(-50%,-50%);
  display:grid; place-items:center; border-radius:50%; color:#fff;
  background:rgba(9,9,11,.55); border:1px solid rgba(255,255,255,.4);
  -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px);
  transition:background .3s, color .3s, border-color .3s, transform .5s var(--ease-out);
}
.tut__play{ width:clamp(64px,8vw,108px); height:clamp(64px,8vw,108px); }
.tut__play::before, .player__play::before{
  content:''; position:absolute; inset:-1px; border-radius:50%; border:1px solid rgba(149,252,81,.55);
  animation:ringpulse 2.4s ease-out infinite;
}
@keyframes ringpulse{ 0%{ transform:scale(1); opacity:.9; } 100%{ transform:scale(1.9); opacity:0; } }
.tut__play svg{ width:38%; height:38%; margin-left:6%; }
.tut:hover .tut__play, .pill__btn:hover .pill__play, .player__play:hover{
  background:var(--green); border-color:var(--green); color:#09090B; transform:translate(-50%,-50%) scale(1.08);
}
.tut__meta{
  position:absolute; left:clamp(18px,3vw,40px); right:clamp(18px,3vw,40px); bottom:clamp(18px,3vw,36px);
  display:flex; align-items:flex-end; justify-content:space-between; gap:24px;
}
.tut__tag{ color:var(--green); display:inline-flex; align-items:center; gap:8px; }
.tut__title{
  font-family:var(--f-head); font-weight:800; text-transform:uppercase; color:var(--w100);
  font-size:clamp(1.7rem, 3.6vw, 3.3rem); line-height:.95; margin:10px 0 0;
}
.tut__desc{ color:var(--w70); font-size:clamp(13px,1vw,15px); max-width:52ch; margin:10px 0 0; }
.tut__cta{ flex-shrink:0; font-size:17px; padding:13px 24px 14px; pointer-events:none; }
.tut__cta .btn__arrow{ transform:none; }
.tut:hover .tut__cta{ background:var(--green); color:#09090B; box-shadow:0 8px 34px rgba(149,252,81,.3); }

/* marquee */
.acad-marquee{
  margin-top:clamp(44px,7vh,80px); padding:13px 0; overflow:hidden;
  border-top:1px solid var(--hair); border-bottom:1px solid var(--hair);
  -webkit-mask-image:linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
          mask-image:linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
}
.acad-marquee__track{ display:flex; width:max-content; white-space:nowrap; animation:acadmarq 36s linear infinite; }
.acad-marquee__track span{ padding:0 1.1em; color:var(--w40); }
.acad-marquee__track span::before{ content:'\2731'; color:var(--green); margin-right:1.8em; }
@keyframes acadmarq{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }

/* ── SEZIONI ───────────────────────────────────────────────────── */
.acad-sec{ position:relative; padding:clamp(64px,9vh,120px) 0 clamp(40px,6vh,70px); scroll-margin-top:var(--nav-h); }
.acad-sec + .acad-sec::before{
  content:''; position:absolute; top:0; left:var(--pad); right:var(--pad); height:1px; background:var(--hair);
}
.acad-sec__head{
  padding:0 var(--pad); max-width:1400px; margin:0 auto;
  display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(18px,4vw,70px); align-items:end;
}
.acad-sec__head .h2{ margin:0; font-size:clamp(2.8rem, 6.4vw, 5.6rem); }
.acad-sec__num{ display:flex; align-items:center; gap:12px; color:var(--green); margin:0 0 16px; }
.acad-sec__num::after{ content:''; flex:0 0 46px; height:1px; background:var(--green-25); }
.acad-sec__p{ color:var(--w70); font-size:clamp(15px,1.15vw,17px); max-width:60ch; margin:0; line-height:1.65; }

.acad-tools{
  display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap;
  padding:0 var(--pad); max-width:1400px; margin:clamp(26px,4vh,44px) auto 8px;
}
.acad-tools--end{ justify-content:flex-end; }

/* search */
.search{
  position:relative; display:flex; align-items:center; gap:10px; height:50px; padding:0 8px 0 18px;
  width:min(100%, 480px); border-radius:999px;
  border:1px solid rgba(149,252,81,.35); background:rgba(255,255,255,.03);
  transition:border-color .3s, box-shadow .3s, background .3s;
}
.search:focus-within{ border-color:var(--green); background:rgba(149,252,81,.05); box-shadow:0 0 0 4px rgba(149,252,81,.12); }
.search svg{ width:18px; height:18px; color:var(--green); flex-shrink:0; }
.search input{
  flex:1; min-width:0; background:none; border:0; outline:none; color:var(--w100);
  font:inherit; font-size:15px; padding:0;
}
.search input::placeholder{ color:var(--w40); }
.search input::-webkit-search-cancel-button{ -webkit-appearance:none; }
.search__clear{
  width:34px; height:34px; border-radius:50%; display:grid; place-items:center; color:var(--w70);
  transition:background .25s, color .25s;
}
.search__clear:hover{ background:rgba(255,255,255,.08); color:var(--w100); }
.search__count{ color:var(--w40); white-space:nowrap; }

/* rail (carousel) */
.rail{ position:relative; }
.rail__track{
  display:flex; gap:clamp(14px,1.8vw,24px); padding:10px var(--pad) 26px; margin:0;
  overflow-x:auto; overscroll-behavior-x:contain; scroll-snap-type:x mandatory; scroll-padding-inline:var(--pad);
  -webkit-overflow-scrolling:touch; scrollbar-width:none; cursor:grab; list-style:none;
}
.rail__track::-webkit-scrollbar{ display:none; }
.rail__track.is-drag{ cursor:grabbing; scroll-snap-type:none; scroll-behavior:auto; user-select:none; }
.rail__track.is-drag *{ pointer-events:none; }
.rail__nav{ display:flex; gap:8px; }
.rail__btn{
  width:48px; height:48px; border-radius:50%; display:grid; place-items:center;
  border:1px solid rgba(255,255,255,.22); color:var(--w100);
  transition:border-color .25s, color .25s, background .25s, opacity .25s, transform .3s var(--ease-out);
}
.rail__btn svg{ width:20px; height:20px; }
.rail__btn:hover{ border-color:var(--green); color:var(--green); background:var(--green-12); }
.rail__btn:disabled{ opacity:.28; pointer-events:none; }
.rail__empty{ padding:10px var(--pad) 30px; color:var(--w40); margin:0; }
.rail__empty b{ color:var(--w100); font-weight:600; }

/* pillole */
.pill{ flex:0 0 clamp(200px, 21vw, 300px); scroll-snap-align:start; }
.pill[hidden]{ display:none; }
.pill__btn{ display:block; width:100%; text-align:left; }
.pill__frame{
  position:relative; aspect-ratio:3/4; border-radius:18px; overflow:hidden; background:var(--card);
  border:1px solid var(--hair);
  transition:transform .55s var(--ease-out), border-color .3s, box-shadow .45s;
}
.pill__btn:hover .pill__frame{
  transform:translateY(-8px); border-color:rgba(149,252,81,.55);
  box-shadow:0 26px 60px rgba(0,0,0,.55), 0 0 44px rgba(149,252,81,.14);
}
.pill__frame img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform 1.1s var(--ease-out); }
.pill__btn:hover .pill__frame img{ transform:scale(1.06); }
.pill__frame::after{
  content:''; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(9,9,11,.25) 0%, transparent 35%, transparent 60%, rgba(9,9,11,.55) 100%);
}
.pill__num, .pill__tag{
  position:absolute; top:12px; z-index:2; padding:6px 10px; border-radius:999px;
  background:rgba(9,9,11,.62); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px);
  border:1px solid rgba(255,255,255,.12); font-size:10px;
}
.pill__num{ left:12px; color:var(--green); }
.pill__tag{ right:12px; color:var(--w70); }
.pill__play{ width:60px; height:60px; z-index:2; }
.pill__play svg{ width:22px; height:22px; margin-left:3px; }
.pill__title{ margin:14px 4px 0; font-weight:600; font-size:15.5px; line-height:1.3; color:var(--w100); }
.pill__btn:hover .pill__title{ color:var(--green); }
.pill__title mark{ background:var(--green-25); color:var(--w100); border-radius:3px; padding:0 2px; }

/* ── PODCAST ───────────────────────────────────────────────────── */
.pod{
  padding:0 var(--pad); max-width:1400px; margin:clamp(30px,5vh,56px) auto 0;
  display:grid; grid-template-columns:minmax(0,1.55fr) minmax(300px,.95fr); gap:clamp(18px,3vw,44px); align-items:start;
}
.player{
  position:sticky; top:calc(var(--nav-h) + 20px);
  border-radius:22px; overflow:hidden; background:#000; border:1px solid rgba(255,255,255,.10);
  box-shadow:0 40px 110px rgba(0,0,0,.6), 0 0 90px rgba(149,252,81,.06);
}
.player__stage{ position:relative; aspect-ratio:16/9; background:#000; overflow:hidden; }
.player__cover, .player__video{ position:absolute; inset:0; width:100%; height:100%; }
.player__cover{ object-fit:cover; transition:opacity .5s, transform 1.2s var(--ease-out); }
.player__stage:hover .player__cover{ transform:scale(1.03); }
.player__video{ object-fit:contain; background:#000; }
.player.is-playing .player__cover, .player.is-playing .player__shade, .player.is-playing .player__play{ opacity:0; pointer-events:none; }
.player__shade{ position:absolute; inset:0; background:linear-gradient(180deg, rgba(9,9,11,.05), rgba(9,9,11,.35)); transition:opacity .4s; }
.player__play{ width:clamp(64px,7vw,96px); height:clamp(64px,7vw,96px); }
.player__play svg{ width:38%; height:38%; margin-left:6%; }
.player__flag{
  position:absolute; top:14px; right:14px; z-index:3; width:30px; height:30px; padding:4px; object-fit:contain;
  background:rgba(9,9,11,.6); border-radius:8px; border:1px solid rgba(255,255,255,.14);
}
.player__badge{
  position:absolute; top:14px; left:14px; z-index:3; padding:7px 11px; border-radius:999px; font-size:10px;
  background:rgba(9,9,11,.62); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px);
  border:1px solid rgba(255,255,255,.12); color:var(--green); display:inline-flex; align-items:center; gap:7px;
}
.player__bar{
  display:flex; justify-content:space-between; align-items:center; gap:16px;
  padding:16px clamp(16px,2vw,24px); border-top:1px solid var(--hair); background:var(--panel);
}
.player__now{ color:var(--w40); margin:0 0 6px; }
.player__title{
  display:block; font-family:var(--f-head); font-weight:800; text-transform:uppercase;
  font-size:clamp(1.3rem, 2.2vw, 1.9rem); line-height:1; color:var(--w100);
}
.eq{ display:inline-flex; align-items:flex-end; gap:3px; height:20px; flex-shrink:0; }
.eq i{ width:3px; height:6px; background:var(--green); border-radius:2px; animation:eq 1s ease-in-out infinite; animation-play-state:paused; opacity:.35; }
.eq i:nth-child(2){ animation-delay:.15s; } .eq i:nth-child(3){ animation-delay:.3s; } .eq i:nth-child(4){ animation-delay:.45s; }
.is-playing .eq i{ animation-play-state:running; opacity:1; }
@keyframes eq{ 0%,100%{ height:6px; } 50%{ height:20px; } }

.eplist{ display:flex; flex-direction:column; gap:10px; margin:0; padding:0 6px 0 0; list-style:none; max-height:min(72vh, 640px); overflow-y:auto; scrollbar-width:thin; scrollbar-color:#2c2c2c transparent; }
.ep{
  display:grid; grid-template-columns:104px minmax(0,1fr) auto; gap:14px; align-items:center;
  width:100%; padding:10px; border-radius:16px; text-align:left;
  border:1px solid var(--hair); background:rgba(255,255,255,.02);
  transition:border-color .3s, background .3s, transform .3s var(--ease-out);
}
.ep:hover{ border-color:rgba(255,255,255,.22); background:rgba(255,255,255,.045); transform:translateX(4px); }
.ep.is-active{ border-color:rgba(149,252,81,.55); background:rgba(149,252,81,.08); }
.ep__thumb{ position:relative; aspect-ratio:3/2; border-radius:9px; overflow:hidden; background:var(--card); }
.ep__thumb img{ width:100%; height:100%; object-fit:cover; }
.ep__num{ color:var(--w40); font-size:10px; display:block; margin-bottom:4px; }
.ep__title{ margin:0; font-weight:600; font-size:15.5px; line-height:1.3; color:var(--w100); }
.ep.is-active .ep__title{ color:var(--green); }
.ep__date{ display:block; margin-top:5px; color:var(--w40); font-size:10px; }
.ep__ico{ width:34px; height:34px; border-radius:50%; display:grid; place-items:center; border:1px solid rgba(255,255,255,.16); color:var(--w70); transition:all .3s; }
.ep__ico svg{ width:14px; height:14px; margin-left:1px; }
.ep:hover .ep__ico{ border-color:var(--green); color:var(--green); }
.ep.is-active .ep__ico{ background:var(--green); border-color:var(--green); color:#09090B; }

/* ── GUIDE ─────────────────────────────────────────────────────── */
.rail__track > li{ flex-grow:0; flex-shrink:0; scroll-snap-align:start; }
.guide{ display:block; width:clamp(210px, 22vw, 320px); text-decoration:none; color:inherit; }
.guide__frame{
  position:relative; aspect-ratio:3/4; border-radius:20px; overflow:hidden; background:#000;
  border:2px solid var(--green); box-shadow:0 0 26px rgba(149,252,81,.28);
  transition:transform .55s var(--ease-out), box-shadow .45s;
}
.guide:hover .guide__frame{ transform:translateY(-8px); box-shadow:0 26px 70px rgba(0,0,0,.6), 0 0 50px rgba(149,252,81,.55); }
.guide__frame img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform 1.1s var(--ease-out); }
.guide:hover .guide__frame img{ transform:scale(1.05); }
.guide__ext{
  position:absolute; top:12px; right:12px; z-index:2; width:36px; height:36px; border-radius:50%;
  display:grid; place-items:center; background:rgba(9,9,11,.62); border:1px solid rgba(255,255,255,.14); color:var(--w100);
  -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); transition:background .3s, color .3s, transform .4s var(--ease-out);
}
.guide__ext svg{ width:16px; height:16px; }
.guide:hover .guide__ext{ background:var(--green); color:#09090B; transform:translate(2px,-2px); }
.guide__cap{ display:flex; justify-content:space-between; gap:12px; margin:14px 4px 0; color:var(--w70); }
.guide__cap span:last-child{ color:var(--w40); flex-shrink:0; }
.guide:hover .guide__cap{ color:var(--w100); }
.guide:hover .guide__cap span:last-child{ color:var(--green); }

/* ── MODAL (estende .vmodal di style.css) ──────────────────────── */
.vmodal--vert .vmodal__body{ width:auto; max-width:92vw; }
.vmodal--vert .vmodal__body video{ width:auto; height:min(84vh, 880px); max-width:92vw; aspect-ratio:9/16; object-fit:contain; }
.vmodal__cap{ display:flex; align-items:center; gap:8px; }

/* ── RESPONSIVE ────────────────────────────────────────────────── */
@media (max-width: 1100px){
  .pod{ grid-template-columns:1fr; }
  .player{ position:static; }
  .eplist{ max-height:none; overflow:visible; padding:0; }
}
@media (max-width: 899.98px){
  .acad-sec__head{ grid-template-columns:1fr; }
  .tut__meta{ flex-direction:column; align-items:flex-start; }
  .tut__cta{ display:none; }
  .tut{ max-height:none; }
  .pill{ flex-basis:min(62vw, 300px); }
  .guide{ width:min(64vw, 320px); }
  .acad-index{ gap:8px; }
  .acad-chip{ padding:9px 13px 9px 10px; }
}
@media (max-width: 640px){
  .acad-hero{ padding-top:calc(var(--nav-h) + 30px); }
  .acad-title{ font-size:clamp(4rem, 26vw, 7rem); gap:.12em; }
  .acad-hero__eyebrow{ font-size:10px; letter-spacing:.16em; }
  .acad-hero__eyebrow::before, .acad-hero__eyebrow::after{ width:18px; flex-shrink:0; }
  .tut{ aspect-ratio:4/3; }
  .tut__title{ font-size:clamp(1.5rem, 7vw, 2rem); }
  .tut__desc{ display:none; }
  .acad-tools{ align-items:stretch; }
  .search{ width:100%; }
  .search__count{ display:none; }
  .ep{ grid-template-columns:84px minmax(0,1fr) auto; gap:10px; }
  .ep__title{ font-size:14px; }
  .player__bar{ flex-direction:column; align-items:flex-start; gap:10px; }
  .pill{ flex-basis:70vw; }
  .guide{ width:72vw; }
}
@media (hover: none){
  .tut:hover .tut__img, .pill__btn:hover .pill__frame img, .guide:hover .guide__frame img, .player__stage:hover .player__cover{ transform:none; }
  .pill__btn:hover .pill__frame, .guide:hover .guide__frame, .ep:hover{ transform:none; }
}
@media (prefers-reduced-motion: reduce){
  .acad-marquee__track{ animation:none; }
  .tut__play::before, .player__play::before{ animation:none; }
}
