  :root{
    --bg:#FFFFFF;
    --bg-soft:#F4F6F7;
    --ink:#12181C;
    --ink-soft:#5B6770;
    --ink-faint:#8A949B;
    --line:#c8caca;
    /* --blue:#1554F0;
    --blue-deep:#0F3FB8; */
    --blue:#025fa8;
    --blue-deep:#01477c;
    --teal:#0E9488;
    --teal-soft:rgba(14,148,136,.10);
    --blue-soft:rgba(21,84,240,.08);
    --radius:12px;
    --maxw:1200px;
    --font-display:'Manrope', sans-serif;
    --font-body:'Inter', sans-serif;
    --font-mono:'IBM Plex Mono', monospace;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;background:var(--bg);color:var(--ink);
    font-family:var(--font-body);font-size:16px;line-height:1.6;
    -webkit-font-smoothing:antialiased;
  }
  img,svg{display:block;max-width:100%;}
  a{color:inherit;}
  h1,h2,h3,h4{font-family:var(--font-display);font-weight:800;margin:0 0 .45em;line-height:1.08;letter-spacing:-0.02em;color:var(--ink);}
  h3{font-weight:700;letter-spacing:-0.01em;}
  p{margin:0 0 1em;color:var(--ink-soft);}
  .container{max-width:var(--maxw);margin:0 auto;padding:0 32px;}
  .eyebrow{
    font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.12em;
    font-size:.8rem;color:var(--blue);margin:0 0 .9em;font-weight:500;
  }
  section.section{padding:104px 0;position:relative;}
  .section-soft{background:var(--bg-soft);}
  .lede{font-size:1.12rem;max-width:52ch;color:var(--ink-soft);}
  :focus-visible{outline:2px solid var(--blue);outline-offset:3px;}

  .btn{
    font-family:var(--font-body);font-size:.92rem;font-weight:600;
    padding:.85em 1.7em;border-radius:100px;border:1.5px solid var(--ink);
    display:inline-flex;align-items:center;gap:.5em;text-decoration:none;cursor:pointer;
    transition:background .15s ease,color .15s ease,border-color .15s ease,transform .15s ease;
    background:transparent;color:var(--ink);
  }
  .btn:hover{transform:translateY(-1px);}
  .btn-filled{background:var(--blue);border-color:var(--blue);color:#fff;}
  .btn-filled:hover{background:var(--blue-deep);border-color:var(--blue-deep);}
  .btn-outline:hover{background:var(--ink);color:#fff;}
  .btn-teal{background:var(--teal);border-color:var(--teal);color:#fff;}
  .btn-teal:hover{background:#0b7d73;border-color:#0b7d73;}
  .btn-small{font-size:.8rem;padding:.6em 1.3em;}
  .btn-ghost{border-color:var(--line);color:var(--ink-soft);}
  .btn-ghost:hover{background:var(--bg-soft);color:var(--ink);}

  header.nav{
    position:fixed;top:0;left:0;right:0;z-index:100;
    background:rgba(255,255,255,.85);backdrop-filter:blur(10px);
    border-bottom:1px solid var(--line);
  }
  .nav-inner{max-width:var(--maxw);margin:0 auto;padding:0 32px;height:72px;display:flex;align-items:center;justify-content:space-between;}
  .logo{display:flex;align-items:center;gap:.5em;font-family:var(--font-display);font-weight:800;font-size:1.2rem;text-decoration:none;color:var(--ink);}
  .logo svg{width:24px;height:24px;}
  .logo img{height:42px;width:auto;display:block;}
  nav.links{display:flex;align-items:center;gap:2em;}
  nav.links a{
    font-size:.9rem;font-weight:500;text-decoration:none;color:var(--ink-soft);
    padding-bottom:5px;border-bottom:2px solid transparent;transition:color .15s ease,border-color .15s ease;
  }
  nav.links a:hover,nav.links a.active{color:var(--ink);border-color:var(--blue);}
  .nav-cta{display:flex;align-items:center;gap:1.4em;}
  .menu-toggle{display:none;background:none;border:none;cursor:pointer;padding:8px;}
  .menu-toggle span{display:block;width:22px;height:2px;background:var(--ink);margin:5px 0;}

  /* ---------- Hero ---------- */
  .hero{padding-top:168px;}
  .hero-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;}
  .hero-copy h1{font-size:clamp(2.4rem,5vw,3.8rem);}
  .hero-actions{display:flex;gap:14px;margin-top:8px;flex-wrap:wrap;}
  .hero-visual{background:var(--bg-soft);border-radius:24px;padding:28px;}
  .hero-visual svg{width:100%;height:auto;}

  .stat-strip{margin-top:96px;display:grid;grid-template-columns:repeat(3,1fr);gap:32px;border-top:1px solid var(--line);padding-top:44px;text-align:center;}
  .stat h3{font-size:2.2rem;color:var(--blue);margin-bottom:.15em;}
  .stat p{font-size:.92rem;margin:0;}

  /* ---------- Mappa contatti ---------- */
  .mappa{margin-top:28px;border-radius:var(--radius);overflow:hidden;aspect-ratio:4/3;background:var(--bg-soft);border:1px solid var(--line);}
  .mappa iframe{width:100%;height:100%;border:0;display:block;}
  .mappa-link{display:inline-block;margin-top:10px;font-size:.82rem;font-weight:600;color:var(--blue);text-decoration:none;}
  .mappa-link:hover{text-decoration:underline;}

  /* ---------- Prodotto ---------- */
  .head-block{max-width:60ch;margin-bottom:56px;}
  .product-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;}
  .product-card{
    background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);
    padding:32px;display:flex;flex-direction:column;
    
    transition:box-shadow .18s ease,transform .18s ease;
  }
  .product-card:hover{box-shadow:0 12px 32px rgba(18,24,28,.08);transform:translateY(-2px);}
  .product-visual{background:var(--bg-soft);border-radius:14px;padding:18px;margin-bottom:20px;}
  .product-visual svg{width:100%;height:auto;}
  .product-sub{font-family:var(--font-mono);font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-faint);display:block;margin-bottom:.3em;}
  .product-name{font-size:1.4rem;margin-bottom:.5em;}
  .product-card p{font-size:.92rem;flex:none;}
  .chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px;}
  .chip{font-family:var(--font-mono);font-size:.68rem;border:1px solid var(--line);padding:4px 10px;border-radius:20px;color:var(--ink-soft);background:var(--bg-soft);}
  .product-price{font-family:var(--font-mono);font-size:1rem;color:var(--ink);margin-top:auto;margin-bottom:2px;}
  .price-note{font-family:var(--font-mono);font-size:.66rem;color:var(--ink-faint);margin-bottom:18px;text-transform:uppercase;}
  .product-footer{margin-top:0;}
  .product-footer .btn{width:100%;justify-content:center;}

  /* ---------- Tendina ---------- */
 .nav-dropdown{position:relative;display:flex;align-items:center;}
  .dropdown-details{position:relative;}
  .dropdown-details summary{
    list-style:none;cursor:pointer;display:flex;align-items:center;gap:5px;
    font-size:.9rem;font-weight:500;color:var(--ink-soft);
    padding-bottom:5px;border-bottom:2px solid transparent;
    transition:color .15s ease,border-color .15s ease;
  }
  .dropdown-details summary::-webkit-details-marker{display:none;}
  .dropdown-details:hover summary,.dropdown-details[open] summary{color:var(--ink);border-color:var(--blue);}
  .dropdown-details .caret{transition:transform .15s ease;color:var(--ink-faint);}
  .dropdown-details[open] .caret{transform:rotate(180deg);}
  .dropdown-menu{
    position:absolute;top:100%;left:0;margin-top:8px;min-width:180px;
    background:#fff;border:1px solid var(--line);border-radius:10px;
    box-shadow:0 12px 28px rgba(18,24,28,.1);padding:8px;
  }
  .dropdown-menu a{
    display:block;padding:10px 12px;font-size:.88rem;font-weight:500;color:var(--ink-soft);
    text-decoration:none;border-radius:6px;border-bottom:none !important;
  }
  .dropdown-menu a:hover{background:var(--bg-soft);color:var(--ink);}
  .nav-dropdown:hover .dropdown-menu{display:block;}

  /* ---------- Metodo ---------- */
  .metodo-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:64px;}
  .pillars{margin-top:48px;display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
  .pillar h4{font-size:1.05rem;color:var(--teal);margin-bottom:.3em;}
  .pillar p{font-size:.88rem;margin:0;}

  .timeline{list-style:none;margin:0;padding:0;border-left:2px solid var(--line);}
  .timeline li{position:relative;padding:0 0 32px 28px;}
  .timeline li:last-child{padding-bottom:0;}
  .timeline li::before{content:"";position:absolute;left:-6px;top:4px;width:10px;height:10px;background:var(--blue);border-radius:50%;border:2px solid var(--bg);}
  .timeline .year{font-family:var(--font-mono);font-size:.8rem;color:var(--blue);display:block;margin-bottom:.2em;}
  .timeline p{font-size:.9rem;margin:0;}

  .metodo-links{margin-top:64px;border-top:1px solid var(--line);padding-top:48px;display:flex;flex-direction:column;gap:14px;}
  .metodo-link-row{
    display:flex;align-items:center;justify-content:space-between;gap:24px;
    padding:24px 28px;border:1px solid var(--line);border-radius:14px;
    text-decoration:none;color:var(--ink);background:var(--bg-soft);
    transition:border-color .15s ease,transform .15s ease;
  }
  .metodo-link-row:hover{border-color:var(--blue);transform:translateX(3px);}
  .metodo-link-title{font-family:var(--font-display);color:var(--blue-deep);font-weight:700;font-size:1.5rem;display:block;margin-bottom:4px;}
  .metodo-link-desc{font-size:.88rem;color:var(--ink);margin:0;max-width:60ch;}
  .metodo-link-row svg{flex:none;color:var(--blue);}

  /* ---------- Chi siamo ------------ */
  .team-more{text-align:center;margin-top:44px;}
  .section-soft .profile-main{background:#fff;}
  .profile-main-name{font-size:clamp(1.5rem,2.6vw,2rem);margin-bottom:.15em;}

  /* ---------- Chi siamo ---------- */
  .profile-photo{border-radius:50%;object-fit:cover;aspect-ratio:1/1;display:block;background:var(--bg-soft);}
  .profile-main{
    display:grid;grid-template-columns:260px 1fr;gap:56px;align-items:center;
    padding:44px;border:1px solid var(--line);border-radius:20px;background:var(--bg-soft);
    margin-bottom:56px;
  }
  .profile-main .profile-photo{width:100%;max-width:260px;}
  .profile-main h2{font-size:clamp(1.6rem,3vw,2.2rem);margin-bottom:.15em;}
  .profile-role{font-family:var(--font-mono);font-size:.76rem;text-transform:uppercase;letter-spacing:.04em;color:var(--teal);margin:0 0 14px;}
  .profile-bio{font-size:.98rem;line-height:1.7;max-width:62ch;margin-bottom:24px;}
  .profile-links{display:flex;gap:12px;flex-wrap:wrap;}

  .profile-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;}
  .profile-card{text-align:center;padding:32px 24px;border:1px solid var(--line);border-radius:16px;background:#fff;}
  .profile-card .profile-photo{width:120px;margin:0 auto 18px;}
  .profile-card h3{font-size:1.05rem;margin-bottom:.25em;}
  .profile-card .profile-role{margin-bottom:16px;}
  .profile-cv{font-family:var(--font-mono);font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;color:var(--blue);text-decoration:none;}
  .profile-cv:hover{text-decoration:underline;}
  .team-more{text-align:center;margin-top:44px;}
  .section-soft .profile-main{background:#fff;}
  .profile-main-name{font-size:clamp(1.5rem,2.6vw,2rem);margin-bottom:.15em;}

  /* ---------- Product detail pages ---------- */
  .product-hero{padding:152px 0 40px;}
  .product-hero .breadcrumb{font-size:.82rem;color:var(--ink-faint);margin-bottom:14px;}
  .product-hero .breadcrumb a{color:var(--ink-faint);text-decoration:none;}
  .product-hero .breadcrumb a:hover{color:var(--blue);}
  .product-hero h1{font-size:clamp(2rem,4vw,2.8rem);margin-bottom:.3em;}
  .product-hero-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;}
  .product-hero-actions{display:flex;gap:14px;margin:20px 0;flex-wrap:wrap;}
  .product-hero-logo{height:100px;width:auto;margin-bottom:.3em;display:block;}
  .carousel{position:relative;border-radius:16px;overflow:hidden;background:var(--bg-soft);}
  .carousel-track{display:flex;transition:transform .35s ease;}
  .carousel-slide{flex:0 0 100%;aspect-ratio:4/3;}
  .carousel-slide img{width:100%;height:100%;object-fit:cover;display:block;}
  .carousel-btn{position:absolute;top:50%;transform:translateY(-50%);width:40px;height:40px;border-radius:50%;background:#fff;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 6px 16px rgba(18,24,28,.12);color:var(--ink);}
  .carousel-prev{left:16px;}
  .carousel-next{right:16px;}
  .carousel-dots{position:absolute;bottom:16px;left:0;right:0;display:flex;justify-content:center;gap:8px;}
  .carousel-dot{width:7px;height:7px;border-radius:50%;background:rgba(255,255,255,.65);border:none;cursor:pointer;padding:0;}
  .carousel-dot.active{background:#fff;}
  .instrument-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;}
  .instrument-card{border:1px solid var(--line);border-radius:14px;padding:26px;background:var(--bg);}
  .instrument-card img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:10px;margin-bottom:16px;display:block;}
  .instrument-card h3{font-size:1.05rem;margin-bottom:.4em;}
  .instrument-card p{font-size:.9rem;margin:0;}
  .resource-list{display:grid;gap:12px;}
  .resource-item{display:flex;align-items:center;gap:14px;padding:16px 18px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--ink);font-size:1rem;}
  .resource-item svg{flex:none;width:20px;height:20px;color:var(--blue-deep);}
  .resource-item .resource-note{margin-left:auto;font-family:var(--font-mono);font-size:.80rem;text-transform:uppercase;}
  .other-models{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;}
  .other-model-card{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border:1px solid var(--line);border-radius:12px;text-decoration:none;color:var(--ink);background:var(--bg);}
  .other-model-card:hover{border-color:var(--blue);}
  .other-model-card span.sub{display:block;font-family:var(--font-mono);font-size:.7rem;color:var(--ink-faint);text-transform:uppercase;margin-top:2px;}
  .section-media-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;}
  .section-media-photos{display:grid;grid-template-columns:repeat(auto-fit, minmax(240px, 1fr));gap:16px;margin-top:32px;}
  .section-media-photos img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:14px;display:block;}

/* ---------- Razionale ---------- */
.doc-header{max-width:70ch;}
.toc-box{
  border:1px solid var(--line);border-radius:14px;background:var(--bg-soft);
  padding:26px 30px;margin:32px 0 56px;max-width:520px;
}
.toc-box h2{font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;font-family:var(--font-mono);font-weight:500;color:var(--ink-faint);margin-bottom:16px;}
.toc-box ol{margin:0;padding:0;list-style:none;counter-reset:toc;}
.toc-box li{counter-increment:toc;margin-bottom:11px;}
.toc-box li:last-child{margin-bottom:0;}
.toc-box li::before{content:counter(toc) ". ";font-family:var(--font-mono);color:var(--blue);margin-right:2px;}
.toc-box a{color:var(--ink);text-decoration:none;font-weight:500;font-size:.92rem;}
.toc-box a:hover{color:var(--blue);}

.doc-body{max-width:70ch;}
.doc-body h2{font-size:1.55rem;margin-top:60px;padding-top:28px;border-top:1px solid var(--line);scroll-margin-top:100px;}
.doc-body h2:first-of-type{margin-top:0;padding-top:0;border-top:none;}
.doc-body h3{font-size:1.08rem;margin-top:30px;color:var(--ink);}
.doc-body p{font-size:.98rem;line-height:1.75;}
.doc-body ul,.doc-body ol{margin:0 0 1.2em;padding-left:1.4em;}
.doc-body li{font-size:.98rem;line-height:1.75;color:var(--ink-soft);margin-bottom:.5em;}
.doc-body li strong{color:var(--ink);}
.toc-box ul{list-style:none;margin:8px 0 4px;padding-left:18px;border-left:1px solid var(--line);}
.toc-box li li{counter-increment:none;margin-bottom:7px;}
.toc-box li li::before{content:none;}
.toc-box li li a{font-weight:400;font-size:.86rem;color:var(--ink-soft);}
.toc-box li li li a{font-size:.82rem;}
.doc-body h4{font-size:.98rem;margin-top:24px;color:var(--ink);scroll-margin-top:100px;}
.article-num{font-family:var(--font-mono);font-size:.74rem;color:var(--blue);margin-right:8px;}
.toc-box{scroll-margin-top:100px;}
.back-to-toc{
  position:fixed;right:24px;bottom:calc(70px + env(safe-area-inset-bottom, 0px));z-index:150;
  display:inline-flex;align-items:center;gap:8px;
  padding:12px 18px;border-radius:100px;background:var(--blue);color:#fff;
  font-size:.85rem;font-weight:600;text-decoration:none;
  box-shadow:0 8px 24px rgba(18,24,28,.18);
  opacity:0;visibility:hidden;transform:translateY(10px);
  transition:opacity .2s ease,transform .2s ease,visibility .2s ease,background .15s ease;
}
.back-to-toc.show{opacity:1;visibility:visible;transform:translateY(0);}
.back-to-toc:hover{background:var(--blue-deep);}

/* ---------- Ricerca ---------- */
.thesis-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;}
.thesis-card{
  display:block;border:1px solid var(--line);border-radius:14px;padding:24px;
  background:var(--bg-soft);text-decoration:none;color:var(--ink);
  transition:box-shadow .15s ease,transform .15s ease;
}
.thesis-card:hover{box-shadow:0 10px 24px rgba(18,24,28,.08);transform:translateY(-2px);}
.thesis-card .thesis-title{font-weight:600;font-size:.98rem;margin-bottom:12px;display:block;line-height:1.4;}
.thesis-card .thesis-meta{font-family:var(--font-mono);font-size:.75rem;color:var(--ink-faint);display:block;margin-bottom:3px;}
.thesis-card .thesis-download{
  margin-top:16px;display:inline-flex;align-items:center;gap:6px;
  font-family:var(--font-mono);font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;color:var(--blue);
}

.article-list{border-top:1px solid var(--line);margin-top:8px;}
.article-item{
  display:flex;align-items:baseline;gap:18px;padding:18px 4px;border-bottom:1px solid var(--line);
  text-decoration:none;color:var(--ink);
}
.article-item.has-link:hover{background:var(--bg-soft);}
.article-item .article-text{flex:1;font-size:.9rem;line-height:1.6;}
.article-item .article-authors{color:var(--ink);font-weight:500;}
.article-item .article-year{font-family:var(--font-mono);font-size:.74rem;color:var(--ink-faint);flex:none;white-space:nowrap;}
.article-item.no-link .article-year::after{content:" · non disponibile online";font-style:italic;}
.article-item .article-link-icon{flex:none;color:var(--blue);align-self:center;}

/* ---------- Archivio Esercizi ---------- */
.lock-notice{
  display:flex;align-items:center;gap:12px;background:rgba(201,122,43,.1);
  border-radius:12px;padding:14px 18px;margin:8px 0 32px;color:#9a5a1f;font-size:.9rem;
}
.lock-notice svg{flex:none;}
.lock-notice a{color:inherit;font-weight:600;text-decoration:underline;}

.cat-tabs{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:18px;}
.cat-tab{
  font-family:var(--font-mono);font-size:.8rem;text-transform:uppercase;letter-spacing:.03em;
  padding:9px 18px;border-radius:20px;border:1px solid var(--line);background:var(--bg-soft);
  color:var(--ink-soft);cursor:pointer;
}
.cat-tab.active{background:var(--blue);border-color:var(--blue);color:#fff;}
.cat-tab:hover:not(.active){border-color:var(--blue);color:var(--ink);}

.cat-chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:32px;}
.cat-chip{
  font-family:var(--font-mono);font-size:.74rem;padding:7px 14px;border-radius:16px;
  border:1px solid var(--line);color:var(--ink-soft);cursor:pointer;background:#fff;
}
.cat-chip.active{border-color:var(--blue);color:var(--blue);font-weight:600;}

.exercise-list-note{font-size:.82rem;color:var(--ink-faint);font-style:italic;margin-bottom:16px;}

.exercise-list{border:1px solid var(--line);border-radius:14px;overflow:hidden;}
.exercise-locked{
  display:flex;align-items:center;gap:12px;padding:16px 18px;border-bottom:1px solid var(--line);
  color:var(--ink-faint);cursor:pointer;transition:background .15s ease;background:#fff;
}
.exercise-locked:last-child{border-bottom:none;}
.exercise-locked:hover{background:var(--bg-soft);}
.exercise-locked span:nth-child(2){flex:1;color:var(--ink);font-size:.92rem;}
.exercise-num{font-family:var(--font-mono);font-size:.76rem;color:var(--ink-faint);}

.lock-overlay{
  position:fixed;inset:0;background:rgba(18,24,28,.55);
  display:flex;align-items:center;justify-content:center;padding:20px;z-index:1000;
  opacity:0;visibility:hidden;transition:opacity .2s ease,visibility .2s ease;
}
.lock-overlay.open{opacity:1;visibility:visible;}
.lock-modal{
  background:#fff;border-radius:16px;max-width:420px;width:100%;padding:36px 32px;
  position:relative;transform:translateY(12px);transition:transform .2s ease;
}
.lock-overlay.open .lock-modal{transform:translateY(0);}
.lock-modal-close{position:absolute;top:16px;right:16px;background:none;border:none;font-size:24px;line-height:1;color:var(--ink-faint);cursor:pointer;padding:4px;}
.lock-modal-close:hover{color:var(--ink);}
.lock-modal-icon{width:48px;height:48px;border-radius:50%;background:var(--blue-soft);display:flex;align-items:center;justify-content:center;margin-bottom:18px;color:var(--blue);}
.lock-modal h3{font-size:1.3rem;margin-bottom:.4em;}
.lock-modal p{font-size:.9rem;color:var(--ink-soft);margin-bottom:20px;}
.lock-modal-form{display:grid;gap:16px;}
.lock-modal-form label{font-size:.78rem;font-weight:600;color:var(--ink);display:block;margin-bottom:6px;}
.lock-modal-form input,.lock-modal-form textarea{width:100%;background:var(--bg-soft);border:1.5px solid var(--line);border-radius:10px;font-family:var(--font-body);font-size:.92rem;color:var(--ink);padding:.7em .85em;}
.lock-modal-form textarea{min-height:80px;resize:vertical;}
.lock-modal-form input:focus,.lock-modal-form textarea:focus{outline:none;border-color:var(--blue);background:#fff;}
.lock-modal-form .btn{width:100%;justify-content:center;}
.lock-modal-success{display:none;margin-top:16px;padding:14px 16px;border-radius:10px;background:var(--teal-soft);color:#0b7d73;font-size:.85rem;font-weight:500;}
.lock-modal-success.show{display:block;}
.lock-modal-alt{text-align:center;font-size:.85rem;color:var(--ink-soft);margin:16px 0 0 !important;}

 /* caricamento del video nella finestra: anteprima sfocata che "pulsa" */
.arc-player{position:relative;overflow:hidden;background:#000;}
.arc-player iframe{position:relative;z-index:1;opacity:0;transition:opacity .5s ease;}
.arc-player.pronto iframe{opacity:1;}
.arc-caricamento{position:absolute;inset:0;background-size:cover;background-position:center;
  filter:blur(14px);transform:scale(1.12);transition:opacity .5s ease;}
.arc-caricamento::after{content:"";position:absolute;inset:0;background:#000;opacity:0;
  animation:arc-pulsa 1.6s ease-in-out infinite;}
.arc-player.pronto .arc-caricamento{opacity:0;}
@keyframes arc-pulsa{0%,100%{opacity:0;}50%{opacity:.35;}}
@media (prefers-reduced-motion:reduce){.arc-caricamento::after{animation:none;opacity:.2;}}

  /* ---------- Chi siamo ---------- */
  .team-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:32px;}
  .team-card{text-align:center;}
  .avatar{
    width:88px;height:88px;border-radius:50%;background:var(--blue-soft);
    display:flex;align-items:center;justify-content:center;overflow:hidden;
    font-family:var(--font-display);font-weight:800;font-size:1.35rem;color:var(--blue);
    margin:0 auto 16px;
  }
  /* Se .avatar contiene un'immagine invece delle iniziali, viene ritagliata a cerchio */
  .avatar img{width:100%;height:100%;object-fit:cover;}
  .team-card h3{font-size:.98rem;margin-bottom:.1em;}
  .team-role{font-family:var(--font-mono);font-size:.68rem;text-transform:uppercase;letter-spacing:.04em;color:var(--teal);display:block;margin-bottom:.5em;}
  .team-card p{font-size:.84rem;}

  /* ---------- Eventi / calendario interattivo ---------- */
  .eventi-toggle{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;}
  .eventi-toggle > summary{
    list-style:none;cursor:pointer;padding:24px 28px;
    display:flex;align-items:center;justify-content:space-between;
    font-weight:600;font-size:.95rem;background:var(--bg-soft);
  }
  .eventi-toggle > summary::-webkit-details-marker{display:none;}
  .eventi-toggle > summary .plus{width:16px;height:16px;position:relative;flex:none;}
  .eventi-toggle > summary .plus::before,.eventi-toggle > summary .plus::after{content:"";position:absolute;background:var(--blue);transition:transform .2s ease;}
  .eventi-toggle > summary .plus::before{left:0;top:7px;width:16px;height:2px;}
  .eventi-toggle > summary .plus::after{left:7px;top:0;width:2px;height:16px;}
  .eventi-toggle[open] > summary .plus::after{transform:rotate(90deg);opacity:0;}
  .eventi-body{padding:32px 28px 8px;}

  .cal-widget{display:grid;grid-template-columns:340px 1fr;gap:40px;margin-bottom:16px;}
  .cal-card{border:1px solid var(--line);border-radius:14px;padding:20px;background:var(--bg);}
  .cal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;}
  .cal-header h4{font-size:.95rem;margin:0;text-transform:capitalize;}
  .cal-nav-btn{background:var(--bg-soft);border:1px solid var(--line);border-radius:8px;width:30px;height:30px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--ink);}
  .cal-nav-btn:hover{background:var(--blue-soft);}
  .cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;text-align:center;}
  .cal-grid span.dow{font-family:var(--font-mono);font-size:.62rem;color:var(--ink-faint);padding-bottom:6px;}
  .cal-day{
    font-family:var(--font-mono);font-size:.78rem;aspect-ratio:1;
    display:flex;align-items:center;justify-content:center;position:relative;
    color:var(--ink-soft);border-radius:8px;background:none;border:none;cursor:default;
  }
  .cal-day.empty{visibility:hidden;}
  .cal-day.has-event{color:var(--ink);font-weight:600;cursor:pointer;}
  .cal-day.has-event:hover{background:var(--blue-soft);}
  .cal-day.has-event::after{content:"";position:absolute;bottom:4px;left:50%;transform:translateX(-50%);width:5px;height:5px;border-radius:50%;background:var(--teal);}
  .cal-day.selected{background:var(--blue);color:#fff;}
  .cal-day.selected::after{background:#fff;}
  .cal-day.today{box-shadow:inset 0 0 0 1.5px var(--blue);}
  .cal-legend{margin-top:14px;font-size:.76rem;color:var(--ink-faint);display:flex;align-items:center;gap:6px;}
  .cal-legend .dot{width:6px;height:6px;border-radius:50%;background:var(--teal);display:inline-block;}

  .corsi-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;}
  .corsi-header h4{font-size:.95rem;margin:0;}
  #resetFilter{display:none;}
  #resetFilter.show{display:inline-flex;}
  .corso{border-top:1px solid var(--line);}
  .corso:last-child{border-bottom:1px solid var(--line);}
  .corso > summary{list-style:none;cursor:pointer;padding:16px 0;display:grid;grid-template-columns:140px 1fr auto;gap:18px;align-items:center;}
  .corso > summary::-webkit-details-marker{display:none;}
  .corso-date{font-family:var(--font-mono);font-size:.76rem;color:var(--blue);}
  .corso-title{font-weight:600;font-size:.92rem;}
  .corso-loc{font-family:var(--font-mono);font-size:.7rem;color:var(--ink-faint);text-transform:uppercase;}
  .corso-body{padding:0 0 18px;max-width:65ch;}
  .corso-body p{font-size:.88rem;margin:0;}
  .empty-state{padding:24px 0;font-size:.88rem;color:var(--ink-faint);}

  /* ---------- Contatti ---------- */
  .contatti-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:56px;}
  .contatti-grid-solo{display:grid;grid-template-columns:1fr;gap:40px;max-width:640px;margin:0 auto;text-align:left;}
  form.contact-form{display:grid;gap:20px;}
  .form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
  label{font-size:.8rem;font-weight:600;color:var(--ink);display:block;margin-bottom:7px;}
  input,select,textarea{
    width:100%;background:var(--bg-soft);border:1.5px solid var(--line);border-radius:10px;
    font-family:var(--font-body);font-size:.95rem;color:var(--ink);padding:.75em .9em;
  }
  select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='9'><path d='M1 1l6 6 6-6' stroke='%231554F0' stroke-width='1.6' fill='none'/></svg>");background-repeat:no-repeat;background-position:right 14px center;}
  input:focus,select:focus,textarea:focus{outline:none;border-color:var(--blue);background:#fff;}
  textarea{resize:vertical;min-height:100px;}
  .field-full{grid-column:1 / -1;}
  .form-note{font-size:.78rem;color:var(--ink-faint);margin-top:-4px;}
  .success-msg{display:none;margin-top:16px;padding:14px 16px;border-radius:10px;background:var(--teal-soft);color:#0b7d73;font-size:.85rem;font-weight:500;}
  .success-msg.show{display:block;}
  .success-msg.error{background:rgba(192,54,44,.08);color:#C0362C;}
  .contact-info{border-left:1px solid var(--line);padding-left:44px;}
  .contact-info h3{font-size:1.05rem;}
  .contact-info dl{font-size:.88rem;margin:0;}
  .contact-info dt{color:var(--ink-faint);margin-top:16px;text-transform:uppercase;font-size:.66rem;letter-spacing:.05em;font-weight:600;}
  .contact-info dd{margin:4px 0 0;color:var(--ink);}

  /* ---------- Footer ---------- */
.site-footer{background:var(--blue-deep);color:rgba(255, 255, 255, .8);padding:64px 0 28px;font-size:.88rem;}
.footer-grid{display:grid;grid-template-columns:1.4fr repeat(4,1fr);gap:40px;padding-bottom:40px;border-bottom:1px solid rgba(255,255,255,.12);}
.footer-logo img{height:38px;width:auto;filter:brightness(0) invert(1);}
.footer-brand p{margin:16px 0 0;max-width:30ch;color:rgba(255,255,255,.8);font-size:.86rem;line-height:1.6;}
.footer-col h5{margin:0 0 14px;font-family:var(--font-mono);font-size:.7rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:#fff;}
.footer-col ul{list-style:none;margin:0;padding:0;display:grid;gap:9px;}
.footer-col li{color:rgba(255,255,255,.8);line-height:1.45;overflow-wrap:anywhere;}
.site-footer a{color:rgba(255,255,255,.8);text-decoration:none;transition:color .15s;}
.site-footer a:hover{color:#fff;}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:14px 24px;padding-top:24px;font-size:.78rem;color:rgba(255,255,255,.6);}
.footer-legal{display:flex;flex-wrap:wrap;align-items:center;gap:8px 20px;}
.footer-legal a{color:rgba(255,255,255,.72);}
.footer-admin{display:inline-flex;align-items:center;gap:6px;padding:.35em .85em;border:1px solid rgba(255,255,255,.2);border-radius:100px;}
.footer-admin:hover{border-color:rgba(255,255,255,.6);}

  /* --------- Archivio esercizi ---------*/
  .arc-hero{padding:136px 0 28px;}
.arc-hero .breadcrumb{font-size:.82rem;color:var(--ink-faint);margin-bottom:14px;}
.arc-hero .breadcrumb a{color:var(--ink-faint);text-decoration:none;}
.arc-hero .breadcrumb a:hover{color:var(--blue);}
.arc-hero h1{font-size:clamp(2rem,4vw,2.8rem);margin-bottom:.3em;}
.arc-hero .lede{max-width:62ch;}
 
/* fascia di stato: anteprima / accesso effettuato */
.arc-stato{margin-top:22px;display:flex;align-items:center;gap:14px;flex-wrap:wrap;
  padding:14px 18px;border-radius:var(--radius);background:var(--blue-soft);font-size:.92rem;color:var(--ink);}
.arc-stato.ok{background:var(--teal-soft);}
.arc-stato svg{flex:none;color:var(--blue);}
.arc-stato.ok svg{color:var(--teal);}
.arc-stato span{flex:1;min-width:200px;}
.arc-stato > a,.arc-stato > button{font:inherit;font-weight:600;color:var(--blue);background:none;border:0;padding:0;cursor:pointer;text-decoration:none;}
.arc-stato.ok > button{color:var(--teal);}
 
/* ---------- impaginazione ---------- */
.arc-layout{display:grid;grid-template-columns:290px minmax(0,1fr);gap:40px;align-items:start;padding-bottom:96px;}
 
/* ---------- barra filtri ---------- */
.arc-filtri{position:sticky;top:92px;max-height:calc(100vh - 112px);display:flex;flex-direction:column;
  border:1px solid var(--line);border-radius:16px;background:var(--bg);}
.arc-filtri-testa{display:flex;align-items:center;gap:10px;padding:16px 18px;border-bottom:1px solid var(--line);}
.arc-filtri-titolo{font-family:var(--font-display);font-weight:800;font-size:1.05rem;flex:1;}
.arc-link{font:inherit;font-size:.82rem;font-weight:600;color:var(--blue);background:none;border:0;padding:0;cursor:pointer;}
.arc-link:disabled{color:var(--ink-faint);cursor:default;}
.arc-chiudi{display:none;background:none;border:0;padding:6px;cursor:pointer;color:var(--ink);}
.arc-filtri-corpo{overflow-y:auto;padding:14px 18px 18px;overscroll-behavior:contain;scrollbar-width:thin;}
.arc-filtri-piede{display:none;}
 
.arc-cerca{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:100px;padding:0 14px;
  color:var(--ink-faint);margin-bottom:6px;transition:border-color .2s;}
.arc-cerca:focus-within{border-color:var(--blue);}
.arc-cerca input{border:0;outline:0;font:inherit;font-size:.88rem;padding:10px 0;width:100%;background:none;color:var(--ink);}
 
.arc-gruppo{border-bottom:1px solid var(--line);padding:12px 0;}
.arc-gruppo:last-of-type{border-bottom:0;}
.arc-gruppo summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;
  font-family:var(--font-mono);font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink);font-weight:500;padding:4px 0;}
.arc-gruppo summary::-webkit-details-marker{display:none;}
.arc-gruppo summary::after{content:"";width:7px;height:7px;border-right:1.6px solid var(--ink-faint);border-bottom:1.6px solid var(--ink-faint);
  transform:rotate(45deg) translateY(-2px);transition:transform .2s;}
.arc-gruppo[open] summary::after{transform:rotate(-135deg) translateY(-2px);}
.arc-gruppo summary .arc-badge{margin-left:auto;margin-right:10px;}
 
.arc-chips{display:flex;flex-wrap:wrap;gap:6px;padding-top:10px;}
.arc-chip{font:inherit;font-size:.8rem;line-height:1.2;padding:.45em .85em;border-radius:100px;border:1px solid var(--line);
  background:var(--bg);color:var(--ink-soft);cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:all .15s;}
.arc-chip small{font-family:var(--font-mono);font-size:.68rem;color:var(--ink-faint);}
@media (hover:hover) and (pointer:fine){ .arc-chip:not(:disabled):not(.on):hover{border-color:var(--ink-faint);color:var(--ink);} }
.arc-chip.on{background:var(--blue);border-color:var(--blue);color:#fff;}
.arc-chip.on small{color:rgba(255,255,255,.75);}
.arc-chip:disabled{opacity:.4;cursor:default;}
.arc-chip.sotto{font-size:.75rem;padding:.35em .75em;}
.arc-sottogruppo{display:flex;flex-wrap:wrap;gap:5px;width:100%;margin:2px 0 4px 10px;padding-left:10px;border-left:2px solid var(--line);}
.arc-chips-kit .arc-chip{font-family:var(--font-display);font-weight:700;}
 
/* piani di movimento */
.arc-piani:empty{display:none;}
.arc-piani{margin-top:10px;display:flex;flex-direction:column;gap:6px;}
.arc-piano-riga{display:flex;align-items:center;gap:6px;font-size:.8rem;color:var(--ink);}
.arc-piano-riga > span{flex:1;font-weight:600;}
.arc-piano{font-family:var(--font-mono);font-size:.7rem;padding:.35em .6em;border-radius:6px;border:1px solid var(--line);background:var(--bg);
  color:var(--ink-soft);cursor:pointer;}
.arc-piano.on{background:var(--teal);border-color:var(--teal);color:#fff;}
.arc-aiuto{font-size:.78rem;color:var(--ink-faint);margin:8px 0 0;text-align:center;min-height:1.3em;transition:color .2s;}
.arc-aiuto.attivo{color:var(--blue);font-weight:600;}
.arc-nota{font-size:.74rem;color:var(--ink-faint);margin:12px 0 0;line-height:1.45;}
 
/* ---------- omino ---------- */
.omino{width:150px;height:auto;margin:4px auto 0;overflow:visible;}
.om-corpo{transform-origin:100px 340px;animation:om-respiro 4.5s ease-in-out infinite;}
.om-seg line{stroke:#DCE4F4;stroke-width:15;stroke-linecap:round;
  stroke-dasharray:80;stroke-dashoffset:80;animation:om-disegna .9s ease-out forwards;}
.om-zona{fill:#E9EEF8;stroke:#C9D5EE;stroke-width:1.5;cursor:pointer;transition:fill .2s, stroke .2s;
  opacity:0;animation:om-appari .5s ease-out .35s forwards;}
.om-zona:hover{fill:#D3DEF7;stroke:var(--blue);}
.om-zona.on{fill:var(--blue);stroke:var(--blue-deep);}
.om-art{cursor:pointer;opacity:0;animation:om-appari .4s ease-out .7s forwards;}
.om-hit{fill:transparent;}
.om-dot{fill:#fff;stroke:var(--blue);stroke-width:2;transform-box:fill-box;transform-origin:center;transition:transform .2s, fill .2s;}
.om-art:hover .om-dot{transform:scale(1.35);}
.om-art.on .om-dot{fill:var(--blue);transform:scale(1.2);}
.om-art.on .om-hit{fill:rgba(21,84,240,.18);transform-box:fill-box;transform-origin:center;animation:om-pulsa 1.8s ease-out infinite;}
.om-zona:focus-visible,.om-art:focus-visible{outline:none;}
.om-art:focus-visible .om-dot{stroke-width:3.5;}
.om-zona:focus-visible{stroke-width:3;stroke:var(--blue);}
.omino.tocco .om-corpo{animation:om-respiro 4.5s ease-in-out infinite, om-saltello .35s ease-out;}
 
@keyframes om-respiro{0%,100%{transform:translateY(0) scaleY(1);}50%{transform:translateY(-1.5px) scaleY(1.008);}}
@keyframes om-disegna{to{stroke-dashoffset:0;}}
@keyframes om-appari{to{opacity:1;}}
@keyframes om-pulsa{0%{transform:scale(.7);opacity:1;}100%{transform:scale(1.6);opacity:0;}}
@keyframes om-saltello{0%{translate:0 0;}40%{translate:0 -4px;}100%{translate:0 0;}}
 
/* ---------- barra risultati ---------- */
.arc-barra{display:flex;align-items:center;gap:14px;margin-bottom:12px;min-height:40px;}
.arc-conteggio{margin:0;font-size:.92rem;color:var(--ink-soft);}
.arc-conteggio strong{color:var(--ink);font-family:var(--font-display);}
.arc-apri-filtri{display:none;align-items:center;gap:8px;}
.arc-badge{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 6px;border-radius:100px;
  background:var(--blue);color:#fff;font-size:.7rem;font-weight:700;font-family:var(--font-body);letter-spacing:0;}
.arc-attivi{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:20px;}
.arc-attivi:empty{display:none;}
.arc-pill{font:inherit;font-size:.78rem;display:inline-flex;align-items:center;gap:6px;padding:.35em .7em .35em .85em;border-radius:100px;
  background:var(--blue-soft);color:var(--blue-deep);border:0;cursor:pointer;}
.arc-pill::after{content:"×";font-size:1rem;line-height:1;}
.arc-pill:hover{background:rgba(21,84,240,.16);}
 
/* ---------- griglia vetrina ---------- */
.arc-griglia{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:22px;}
.arc-card{display:flex;flex-direction:column;text-align:left;font:inherit;color:inherit;background:var(--bg);
  border:1px solid var(--line);border-radius:14px;overflow:hidden;cursor:pointer;padding:0;
  transition:transform .2s, box-shadow .2s, border-color .2s;animation:arc-entra .35s ease-out both;}
.arc-card:hover{transform:translateY(-3px);box-shadow:0 14px 30px -18px rgba(18,24,28,.35);border-color:transparent;}
.arc-card:focus-visible{outline:2px solid var(--blue);outline-offset:3px;}
@keyframes arc-entra{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:none;}}
 
.arc-thumb{position:relative;aspect-ratio:16/9;background:var(--bg-soft);overflow:hidden;}
.arc-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .35s;}
.arc-card:hover .arc-thumb img{transform:scale(1.04);}
/* copertina "segnaposto" per chi non ha accesso: niente ID video esposti */
.arc-thumb.chiusa{display:grid;place-items:center;
  background:radial-gradient(circle at 80% 15%,rgba(255,255,255,.18),transparent 45%),linear-gradient(135deg,var(--c1,#1554F0),var(--c2,#0F3FB8));}
.arc-thumb.chiusa.kit-PB{--c1:#0E9488;--c2:#0A6B62;}
.arc-thumb.chiusa.kit-MRS{--c1:#2A3640;--c2:#12181C;}
.arc-thumb-num{font-family:var(--font-display);font-weight:800;font-size:2.6rem;color:rgba(255,255,255,.92);letter-spacing:-.03em;}
.arc-thumb-num small{display:block;text-align:center;font-family:var(--font-mono);font-weight:500;font-size:.62rem;letter-spacing:.14em;color:rgba(255,255,255,.65);}
.arc-thumb-icona{position:absolute;right:12px;bottom:12px;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;
  background:rgba(255,255,255,.95);color:var(--ink);box-shadow:0 4px 12px rgba(0,0,0,.18);transition:transform .2s;}
.arc-card:hover .arc-thumb-icona{transform:scale(1.1);}
.arc-thumb-icona.play{background:var(--blue);color:#fff;}
.arc-thumb-kit{position:absolute;left:10px;top:10px;display:flex;gap:4px;}
.arc-thumb-kit span{font-family:var(--font-display);font-weight:700;font-size:.66rem;padding:.25em .6em;border-radius:100px;
  background:rgba(255,255,255,.92);color:var(--ink);}
 
.arc-card-corpo{padding:14px 16px 16px;display:flex;flex-direction:column;gap:6px;flex:1;}
.arc-num{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--blue);margin:0;}
.arc-card h3{font-size:1rem;line-height:1.25;margin:0;letter-spacing:-.01em;}
.arc-card-desc{font-size:.84rem;line-height:1.5;margin:0;color:var(--ink-soft);
  display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.arc-tag{display:flex;flex-wrap:wrap;gap:4px;margin-top:auto;padding-top:6px;}
.arc-tag span{font-size:.7rem;padding:.2em .6em;border-radius:6px;background:var(--bg-soft);color:var(--ink-soft);}
 
.arc-scheletro{min-height:250px;cursor:default;background:linear-gradient(100deg,var(--bg-soft) 40%,#fbfcfc 50%,var(--bg-soft) 60%);
  background-size:200% 100%;animation:arc-luccica 1.3s linear infinite;border:0;}
.arc-scheletro:hover{transform:none;box-shadow:none;}
@keyframes arc-luccica{to{background-position:-200% 0;}}
 
.arc-vuoto{text-align:center;padding:64px 20px;border:1.5px dashed var(--line);border-radius:16px;}
.arc-vuoto p{margin:0 0 .4em;}
.arc-vuoto .btn{margin-top:12px;}
 
/* ---------- finestre (video / lucchetto) ---------- */
.arc-modale{position:fixed;inset:0;z-index:200;display:grid;place-items:center;padding:20px;background:rgba(10,14,18,.8);
  animation:arc-sfuma .2s ease-out;}
.arc-modale[hidden]{display:none;}
@keyframes arc-sfuma{from{opacity:0;}to{opacity:1;}}
.arc-modale-box{position:relative;background:var(--bg);border-radius:18px;width:100%;max-height:calc(100vh - 40px);overflow:auto;
  animation:arc-sale .25s ease-out;}
@keyframes arc-sale{from{transform:translateY(14px) scale(.98);opacity:0;}to{transform:none;opacity:1;}}
.arc-modale-video{max-width:900px;}
.arc-modale-lucc{max-width:440px;padding:36px 32px 30px;text-align:center;}
.arc-modale-x{position:absolute;top:12px;right:12px;z-index:2;width:36px;height:36px;border-radius:50%;border:0;cursor:pointer;
  display:grid;place-items:center;background:rgba(255,255,255,.92);color:var(--ink);box-shadow:0 2px 10px rgba(0,0,0,.15);}
.arc-player{aspect-ratio:16/9;background:#000;}
.arc-player iframe{width:100%;height:100%;border:0;display:block;}
.arc-video-info{padding:20px 26px 26px;}
.arc-video-info h3{font-size:1.3rem;margin:.2em 0 .4em;}
.arc-video-info p:not(.arc-num){margin:0 0 .6em;}
.arc-lucc-icona{width:60px;height:60px;border-radius:50%;margin:0 auto 14px;display:grid;place-items:center;background:var(--blue-soft);color:var(--blue);}
.arc-modale-lucc h3{font-size:1.35rem;margin:.25em 0 .5em;}
.arc-modale-lucc p:not(.arc-num){font-size:.92rem;}
.arc-lucc-azioni{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:18px;}
body.arc-bloccato{overflow:hidden;}

/* video bloccato finché non si accettano i cookie di YouTube */
.arc-consenso{position:absolute;inset:0;z-index:2;display:none;flex-direction:column;align-items:center;justify-content:center;gap:14px;
  padding:24px;text-align:center;}
.arc-consenso p{margin:0;max-width:34ch;color:#fff;font-weight:500;text-shadow:0 1px 8px rgba(0,0,0,.5);}
.arc-player.bloccato .arc-consenso{display:flex;}
.arc-player.bloccato .arc-caricamento::after{animation:none;opacity:.5;}
 
/* ---------- tablet / mobile: filtri a scomparsa ---------- */
@media (max-width:960px){
  .arc-hero{padding:112px 0 20px;}
  .arc-layout{grid-template-columns:1fr;gap:0;}
  .arc-apri-filtri{display:inline-flex;}
  .arc-barra{position:sticky;top:72px;z-index:20;background:var(--bg);padding:10px 0;margin:0 0 8px;}
  .arc-filtri{position:fixed;top:0;left:0;bottom:0;z-index:150;width:min(360px,88vw);max-height:none;border-radius:0 18px 18px 0;
    border:0;transform:translateX(-102%);transition:transform .3s ease;box-shadow:0 0 40px rgba(0,0,0,.2);}
  .arc-filtri.aperto{transform:none;}
  .arc-chiudi{display:block;}
  .arc-filtri-piede{display:block;padding:12px 18px 18px;border-top:1px solid var(--line);}
  .arc-filtri-piede .btn{width:100%;}
  .arc-velo{position:fixed;inset:0;z-index:140;background:rgba(10,14,18,.45);}
  .arc-velo[hidden]{display:none;}
}
@media (max-width:800px){
  .arc-griglia{grid-template-columns:1fr 1fr;gap:12px;}
  .arc-card-corpo{padding:10px 12px 12px;}
  .arc-card h3{font-size:.88rem;}
  .arc-card-desc,.arc-tag{display:none;}
  .arc-thumb-num{font-size:1.8rem;}
  .arc-thumb-icona{width:28px;height:28px;right:8px;bottom:8px;}
  .arc-video-info{padding:16px 18px 20px;}
  .arc-modale{padding:10px;}
}
@media (prefers-reduced-motion:reduce){
  .om-corpo,.om-art.on .om-hit,.arc-card,.arc-scheletro{animation:none;}
  .om-seg line{stroke-dashoffset:0;animation:none;}
  .om-zona,.om-art{opacity:1;animation:none;}
}
 
/* ---------- attivazione codice (account registrato ma non ancora attivo) ---------- */
.arc-stato.attiva{flex-wrap:wrap;}
.arc-codice{display:flex;gap:8px;flex-wrap:wrap;}
.arc-codice input{font-family:var(--font-mono);font-size:.9rem;letter-spacing:.06em;text-transform:uppercase;
  width:180px;padding:.55em .9em;border:1.5px solid var(--line);border-radius:100px;background:#fff;color:var(--ink);}
.arc-codice input:focus{outline:none;border-color:var(--blue);}
.arc-codice .btn:disabled{opacity:.6;cursor:default;}
.arc-codice-msg{flex-basis:100%;margin:0;font-size:.82rem;color:var(--ink-soft);}
.arc-codice-msg:empty{display:none;}
.arc-codice-msg.errore{color:#C0362C;}
 
@media (max-width:800px){
  .arc-griglia{grid-template-columns:1fr 1fr;gap:12px;}
  .arc-card-corpo{padding:10px 12px 12px;}
  .arc-card h3{font-size:.88rem;}
  .arc-card-desc,.arc-tag{display:none;}
  .arc-thumb-num{font-size:1.8rem;}
  .arc-thumb-icona{width:28px;height:28px;right:8px;bottom:8px;}
  .arc-video-info{padding:16px 18px 20px;}
  .arc-modale{padding:10px;}
}
@media (prefers-reduced-motion:reduce){
  .om-corpo,.om-art.on .om-hit,.arc-card,.arc-scheletro{animation:none;}
  .om-seg line{stroke-dashoffset:0;animation:none;}
  .om-zona,.om-art{opacity:1;animation:none;}
}


@media (max-width:960px){
    
    .thesis-grid{grid-template-columns:1fr;}
    .nav-inner{padding:0 20px;}
    nav.links{
      position:fixed;top:72px;left:0;right:0;background:#fff;flex-direction:column;align-items:flex-start;gap:0;
      border-bottom:1px solid var(--line);transform:translateY(-8px);opacity:0;pointer-events:none;
      transition:opacity .18s ease,transform .18s ease;
    }
    nav.links.open{opacity:1;transform:translateY(0);pointer-events:auto;}
    nav.links a{width:100%;padding:14px 20px;border-bottom:1px solid var(--line);}
    .menu-toggle{display:block;}
    .nav-dropdown{width:100%;}
    .dropdown-details{width:100%;}
    .dropdown-details summary{width:100%;padding:14px 20px;border-bottom:1px solid var(--line);justify-content:space-between;}
    .dropdown-menu{
      position:static;width:100%;margin-top:0;padding:4px 0;
      background:var(--bg-soft);border:none;border-radius:0;box-shadow:none;
    }
    .dropdown-menu a{padding:12px 20px 12px 34px;border-bottom:1px solid var(--line) !important;border-radius:0;}

    .profile-main{grid-template-columns:1fr;gap:28px;text-align:center;padding:32px 24px;}
    .profile-main .profile-photo{max-width:200px;margin:0 auto;}
    .profile-main .profile-bio{margin-left:auto;margin-right:auto;}
    .profile-links{justify-content:center;}
    .profile-grid{grid-template-columns:repeat(2,1fr);}
    .footer-grid{grid-template-columns:1fr 1fr;gap:32px;}
    .footer-brand{grid-column:1 / -1;}   
}

@media (max-width:800px){
    .hero-grid{grid-template-columns:1fr;}
    .container{padding:0px 20px;}
    .stat-strip{grid-template-columns:1fr;gap:24px;padding-top: 44px;}
    .product-grid{grid-template-columns:1fr;}
    .product-hero-grid{grid-template-columns:1fr;}
    .section-media-grid{grid-template-columns:1fr;}
    .section-media-photos{grid-template-columns:1fr;}
    .metodo-grid{grid-template-columns:1fr;gap:40px;}
    .pillars{grid-template-columns:1fr;}
    .team-grid{grid-template-columns:repeat(2,1fr);}
    .cal-widget{grid-template-columns:1fr;}
    .contatti-grid{grid-template-columns:1fr;}
    .contact-info{border-left:none;border-top:1px solid var(--line);padding-left:0;padding-top:28px;}
    .corso > summary{grid-template-columns:1fr;gap:4px;}
    .form-row{grid-template-columns:1fr;}
    .team-grid{grid-template-columns:1fr 1fr;} 
    .article-item{flex-direction:column;gap:4px;}
    .toc-box{padding:20px 22px;}
    .back-to-toc{right:16px;padding:14px;}
    .back-to-toc span{display:none;}
    .profile-grid{grid-template-columns:1fr;}
    .site-footer{padding:48px 0 24px;}
    .footer-grid{grid-template-columns:1fr 1fr;gap:28px 20px;}
    .footer-grid > .footer-col:nth-child(n+4){grid-column:1 / -1;}
    .footer-bottom{flex-direction:column;align-items:flex-start;}

}

@media (prefers-reduced-motion:reduce){
    html{scroll-behavior:auto;}
    *{transition:none !important;animation:none !important;}
}

header.nav a, header.nav button, header.nav summary{
    -webkit-touch-callout:none;
    -webkit-user-select:none;
    user-select:none;
    -webkit-user-drag:none;
}




/* ---------- Hero con video a tutto schermo ---------- */
.hero-video{position:relative;height:100vh;height:100svh;min-height:560px;overflow:hidden;
  background:#0b0f12 url('leonardo-mrs/banner_leonardo_01.jpg') center/cover no-repeat;display:flex;align-items:flex-end;}
.hero-media{position:absolute;inset:0;pointer-events:none;}
/* il video copre sempre tutta l'area: su schermi stretti viene tagliato ai lati */
.hero-yt{position:absolute;top:50%;left:50%;border:0;
  width:100vw;height:56.25vw;min-height:100%;min-width:177.78vh;min-width:177.78svh;
  transform:translate(-50%,-50%) scale(1.12);}
.hero-overlay{position:relative;z-index:1;width:100%;padding-top:96px;padding-bottom:clamp(32px,8vh,88px);}
.hero-box{max-width:620px;padding:clamp(24px,3vw,40px);border-radius:20px;
  background:rgba(255,255,255,.82);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  box-shadow:0 20px 60px -30px rgba(0,0,0,.45);}
.hero-box h1{font-size:clamp(2rem,4.4vw,3.4rem);}
.hero-box .lede{color:var(--ink);}
.hero-box .hero-actions{margin-top:20px;}

/* ---------- Numeri (verticali) + video ---------- */
.numeri-video-grid{display:grid;grid-template-columns:minmax(200px,280px) 1fr;gap:56px;align-items:center;}
.stat-list{display:grid;gap:28px;}
.stat-list .stat{padding-left:20px;border-left:2px solid var(--line);}
.video-box{position:relative;aspect-ratio:16/9;border-radius:20px;overflow:hidden;background:#0b0f12 center/cover no-repeat;}
.video-box iframe{position:absolute;inset:0;width:100%;height:100%;border:0;}
.video-play{position:absolute;inset:0;margin:auto;width:76px;height:76px;border-radius:50%;border:0;cursor:pointer;
  display:grid;place-items:center;background:var(--blue);color:#fff;box-shadow:0 12px 30px -8px rgba(0,0,0,.45);transition:transform .2s;}
.video-play svg{margin-left:4px;}
.video-box:hover .video-play{transform:scale(1.08);}
.video-box.attivo .video-play{display:none;}
.video-consenso{position:absolute;inset:0;z-index:2;display:none;flex-direction:column;align-items:center;justify-content:center;gap:14px;
  padding:24px;text-align:center;background:rgba(10,14,18,.6);}
.video-consenso p{margin:0;max-width:34ch;color:#fff;font-weight:500;}
.video-box.bloccato .video-consenso{display:flex;}

@media (max-width:960px){
  .numeri-video-grid{grid-template-columns:1fr;gap:28px;}
  .video-box{order:-1;}            /* su mobile il video va sopra */
  .stat-list{grid-template-columns:repeat(3,1fr);gap:12px;text-align:center;}
  .stat-list .stat{padding-left:0;border-left:0;}
}
@media (max-width:640px){
  .hero-overlay{padding-bottom:20px;}
  .hero-box{padding:22px;border-radius:16px;}
  .hero-box .lede{font-size:1rem;}
  .stat-list .stat h3{font-size:1.6rem;}
  .stat-list .stat p{font-size:.8rem;}
  .video-play{width:60px;height:60px;}
}

/* ============= CORREZIONI MOBILE ============ */

.nav-inner .logo{flex-shrink:0;}
.nav-inner .logo img{width:auto;max-width:none;}

@media (max-width:640px){
  .nav-cta a.btn{display:none;}
  #metodo{padding-top:112px;}
}

@media (max-width:760px){
  .instrument-grid{grid-template-columns:1fr;}
  .other-models{grid-template-columns:1fr;}
}

@media (max-width:960px){
  .arc-risultati{padding-bottom:72px;}
}

.nav-solo-mobile{display:none;}
@media (max-width:640px){ .nav-solo-mobile{display:block;} }