/* ============================================================
   STUDIO V2 — Mockup recreation (pure black editorial)
   Namespaced under .v2-page to avoid leaking into studio.html
   ============================================================ */

.v2-page {
  background: #000;
  color: #fff;
  font-family: 'Montserrat', -apple-system, BlinkMacSystemFont, sans-serif;
  font-weight: 300;
  margin: 0;
  padding: 0;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
.v2-page *{box-sizing:border-box}
.v2-page a{color:#fff;text-decoration:none}
.v2-page a:focus-visible{outline:2px solid #fff;outline-offset:3px}
.v2-page strong{font-weight:700;color:#fff}
:where(.v2-page) p{margin:0}
.v2-page h1,.v2-page h2,.v2-page h3,.v2-page h4,.v2-page h5,.v2-page h6,
.v2-page button,.v2-page input{font-family:'Montserrat',-apple-system,BlinkMacSystemFont,sans-serif}
html{scroll-padding-top:96px}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}

/* Rules */
.v2-rule{border:none;border-top:1px solid rgba(255,255,255,.35);margin:0;width:100%}
.v2-rule-full{margin:0}
.v2-rule-body{margin:34px 0 44px}
.v2-rule-label{margin:0 0 46px}

/* ===== NAV (fixed top) ===== */
.v2-nav{
  display:flex;align-items:center;justify-content:space-between;
  padding:18px 56px 16px;
  position:fixed;top:0;left:0;right:0;z-index:100;
  background:#000;
  border-bottom:1px solid rgba(255,255,255,.1);
}
body.v2-page{padding-top:76px}
.v2-logo{display:inline-flex;align-items:center;flex-shrink:0;margin-right:16px}
.v2-logo img{height:36px;display:block;filter:brightness(0) invert(1)}
.v2-nav-toggle{
  display:none;background:none;border:0;cursor:pointer;
  padding:10px;flex-direction:column;gap:5px;
}
.v2-nav-toggle span{display:block;width:24px;height:2px;background:#fff;transition:transform .3s ease,opacity .3s ease}
.v2-nav-toggle.active span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.v2-nav-toggle.active span:nth-child(2){opacity:0}
.v2-nav-toggle.active span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.v2-nav-toggle:focus-visible{outline:2px solid #fff;outline-offset:3px}
.v2-nav-links{display:flex;align-items:center;gap:40px;list-style:none;margin:0;padding:0}
.v2-nav-links a{
  font-size:.64rem;font-weight:500;
  letter-spacing:.26em;text-transform:uppercase;
  color:rgba(255,255,255,.72);
  transition:color .3s ease;
  position:relative;padding:7px 0;
  white-space:nowrap;
}
.v2-nav-links a:hover{color:#fff}
.v2-nav-links a::after{
  content:'';position:absolute;left:0;right:0;bottom:0;
  height:1px;background:#fff;
  transform:scaleX(0);transform-origin:left;
  transition:transform .35s ease;
}
.v2-nav-links a:hover::after{transform:scaleX(1)}
.v2-nav-active{color:#fff!important;font-weight:600}
.v2-nav-active::after{height:2px;transform:scaleX(1)}
.v2-nav-lang{letter-spacing:.32em!important}

/* ===== HERO ===== */
.v2-hero{
  padding:110px 56px 80px;
  display:flex;flex-direction:column;align-items:center;
}
.v2-overline{
  font-size:.68rem;font-weight:500;
  letter-spacing:.34em;text-transform:uppercase;
  color:rgba(255,255,255,.85);
  margin:0 0 26px;text-align:center;
}
.v2-hero-inner{
  width:100%;max-width:950px;
  display:flex;flex-direction:column;
}
.v2-hero-inner .v2-rule{margin:0 0 30px}
.v2-hero-title + .v2-rule{margin:30px 0 26px}
.v2-hero-title{
  font-weight:700;
  font-size:clamp(1.45rem,2.45vw,2.15rem);
  line-height:1.28;letter-spacing:.012em;
  color:#fff;margin:0;text-align:left;
  text-transform:uppercase;
}
.v2-hero-tagline{
  display:block;
  font-weight:300;
  font-size:inherit;
  letter-spacing:.03em;
  color:rgba(255,255,255,.92);
  text-transform:uppercase;
  margin-top:2px;
}
.v2-hero-lead{
  font-weight:400;font-size:.87rem;line-height:1.85;
  letter-spacing:.1em;text-transform:uppercase;
  color:rgba(255,255,255,.82);
  margin:0;text-align:left;
}
.v2-hero-lead strong{font-weight:700;color:#fff}
.v2-hero-actions{
  display:flex;flex-direction:row;gap:16px;
  align-items:center;justify-content:center;
  margin:64px 0 70px;
}

.v2-btn{
  display:inline-flex;align-items:center;justify-content:center;
  font-size:.62rem;font-weight:500;
  letter-spacing:.3em;text-transform:uppercase;
  color:#fff;
  padding:11px 30px;
  border:1px solid rgba(255,255,255,.8);
  background:transparent;cursor:pointer;
  transition:background .3s ease,color .3s ease,border-color .3s ease;
  min-width:220px;text-align:center;
}
.v2-btn:hover{background:#fff;color:#000;border-color:#fff}
.v2-btn:focus-visible{outline:2px solid #fff;outline-offset:3px}
.v2-btn-filled{background:#fff;color:#000}
.v2-btn-filled:hover{background:transparent;color:#fff;border-color:#fff}

.v2-chevron{
  display:inline-block;color:rgba(255,255,255,.9);
  transition:transform .35s ease,color .35s ease;
}
.v2-chevron:hover{color:#fff}
.v2-chevron:focus-visible{outline:2px solid #fff;outline-offset:6px}
@keyframes v2-chevron-pulse{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(7px)}
}

/* ===== ANIMATIONS & EFFECTS ===== */
@keyframes v2FadeUp{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:translateY(0)}}
@keyframes v2LineDraw{from{transform:scaleX(0)}to{transform:scaleX(1)}}

/* hero entrance — starts when the page loader fades (body.page-ready added by main.js) */
.v2-hero .v2-overline,.v2-hero-title,.v2-hero-lead,.v2-hero-actions,.v2-chevron{opacity:0}
.v2-hero-inner .v2-rule{transform:scaleX(0);transform-origin:left}
body.page-ready .v2-hero .v2-overline{animation:v2FadeUp .8s .05s ease both}
body.page-ready .v2-hero-inner .v2-rule{animation:v2LineDraw 1s .3s cubic-bezier(.65,0,.35,1) both}
body.page-ready .v2-hero-title{animation:v2FadeUp .9s .4s ease both}
body.page-ready .v2-hero-lead{animation:v2FadeUp .9s .65s ease both}
body.page-ready .v2-hero-actions{animation:v2FadeUp .9s .85s ease both}
body.page-ready .v2-chevron{animation:v2FadeUp .9s 1.05s ease both, v2-chevron-pulse 2.6s 2s ease-in-out infinite}

/* scroll reveal: rules draw from left instead of sliding up */
.v2-page hr.fade-in{opacity:1;transform:scaleX(0);transform-origin:left;transition:transform 1.1s cubic-bezier(.65,0,.35,1)}
.v2-page hr.fade-in.visible{transform:scaleX(1)}

/* specialists: staggered reveal + hover */
.v2-spec{transition:opacity .8s ease,transform .8s ease,background .45s ease}
.v2-spec.fade-in:nth-child(2){transition-delay:.08s,.08s,0s}
.v2-spec.fade-in:nth-child(3){transition-delay:.16s,.16s,0s}
.v2-spec.fade-in:nth-child(4){transition-delay:.24s,.24s,0s}
.v2-spec.fade-in:nth-child(5){transition-delay:.32s,.32s,0s}
.v2-spec.fade-in:nth-child(6){transition-delay:.4s,.4s,0s}
.v2-spec.fade-in:nth-child(7){transition-delay:.48s,.48s,0s}
.v2-spec:hover{background:rgba(255,255,255,.03)}
.v2-spec-num{transition:transform .45s ease,color .45s ease}
.v2-spec:hover .v2-spec-num{transform:translateX(8px)}
.v2-spec-role,.v2-spec-desc{transition:color .45s ease}
.v2-spec:hover .v2-spec-role{color:#fff}
.v2-spec:hover .v2-spec-desc{color:rgba(255,255,255,.95)}

/* declinazioni: staggered reveal */
.v2-decl.fade-in:nth-child(2){transition-delay:.12s}
.v2-decl.fade-in:nth-child(3){transition-delay:.24s}
.v2-decl:hover{background:rgba(255,255,255,.05)}

/* stats hover */
.v2-stat-num{transition:transform .5s ease}
.v2-stat:hover .v2-stat-num{transform:translateY(-4px)}
.v2-stat-label{transition:color .4s ease}
.v2-stat:hover .v2-stat-label{color:#fff}

/* misc hovers */
.v2-logo{transition:opacity .3s ease}
.v2-logo:hover{opacity:.75}
.v2-btn{transition:background .3s ease,color .3s ease,border-color .3s ease,letter-spacing .4s ease}
.v2-btn:hover{letter-spacing:.36em}
.v2-footer a{transition:color .3s ease,transform .3s ease}
.v2-footer a:hover{transform:translateX(4px)}
.v2-footer .v2-footer-brand p{transition:none}

@media (prefers-reduced-motion: reduce){
  .v2-chevron,.v2-hero .v2-overline,.v2-hero-inner .v2-rule,
  .v2-hero-title,.v2-hero-lead,.v2-hero-actions,
  body.page-ready .v2-chevron,body.page-ready .v2-hero .v2-overline,
  body.page-ready .v2-hero-inner .v2-rule,body.page-ready .v2-hero-title,
  body.page-ready .v2-hero-lead,body.page-ready .v2-hero-actions{animation:none;opacity:1;transform:none}
  .v2-page .fade-in,.v2-page hr.fade-in{opacity:1;transform:none;transition:none}
  .v2-btn:hover{letter-spacing:.3em}
}

/* ===== SECTIONS ===== */
.v2-section{
  padding:84px 56px;
  max-width:1328px;margin:0 auto;
}
.v2-section-tight{padding:44px 56px 84px}
.v2-section-label{
  font-size:.66rem;font-weight:500;
  letter-spacing:.34em;text-transform:uppercase;
  color:rgba(255,255,255,.8);
  text-align:center;
  margin:0 0 14px;
}
.v2-section-title{
  font-weight:800;
  font-size:clamp(1.55rem,2.6vw,2.3rem);
  line-height:1.26;letter-spacing:.012em;
  color:#fff;margin:0 0 18px;
  text-transform:uppercase;
}
.v2-section-subtitle{
  font-size:.82rem;font-weight:400;line-height:1.7;
  letter-spacing:.1em;text-transform:uppercase;
  color:rgba(255,255,255,.8);
  margin:0;
}

/* 3-column body text */
.v2-cols-3{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:40px;
}
.v2-cols-3 p{
  font-size:.84rem;font-weight:400;
  line-height:1.8;
  color:rgba(255,255,255,.8);
  letter-spacing:.01em;
}

/* ===== SPECIALISTS LIST ===== */
.v2-spec-list{list-style:none;margin:0;padding:0}
.v2-spec{
  display:grid;
  grid-template-columns:130px minmax(0,1fr) minmax(0,1.2fr);
  gap:44px;
  align-items:flex-start;
  padding:36px 0;
  border-bottom:1px solid rgba(255,255,255,.3);
}
.v2-spec-num{
  font-size:3rem;font-weight:700;line-height:1;
  color:#fff;letter-spacing:.02em;
}
.v2-spec-role{
  font-size:.78rem;font-weight:400;
  letter-spacing:.24em;text-transform:uppercase;
  color:rgba(255,255,255,.82);
  padding-top:15px;line-height:1.5;
}
.v2-spec-desc{
  font-size:.84rem;font-weight:400;
  line-height:1.8;color:rgba(255,255,255,.8);
  padding-top:11px;letter-spacing:.01em;
  margin:0;
}

/* ===== DECLINAZIONI ===== */
.v2-decl-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:1px;
  background:rgba(255,255,255,.16);
  border:1px solid rgba(255,255,255,.16);
}
.v2-decl{
  background:#000;
  padding:44px 38px;
  display:flex;flex-direction:column;
  transition:background .4s ease;
}
.v2-decl:hover{background:rgba(255,255,255,.04)}
.v2-decl h3{
  font-weight:600;font-size:1rem;
  color:#fff;margin:0 0 16px;
  letter-spacing:.06em;line-height:1.35;
  text-transform:uppercase;
}
.v2-decl p{
  font-size:.85rem;line-height:1.75;font-weight:400;
  color:rgba(255,255,255,.72);
  margin:0;
}
.v2-decl-link a{display:block;height:100%}
.v2-decl-link h3 span{color:rgba(255,255,255,.55);transition:transform .3s ease;display:inline-block;margin-left:6px}
.v2-decl-link:hover h3 span{transform:translateX(6px);color:#fff}

/* ===== STATS ===== */
.v2-stats-section{padding:64px 56px}
.v2-stats{
  display:grid;grid-template-columns:repeat(4,1fr);
  gap:0;align-items:stretch;
  border-top:1px solid rgba(255,255,255,.3);
  border-bottom:1px solid rgba(255,255,255,.3);
  padding:40px 0;
}
.v2-stat{
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;
  border-right:1px solid rgba(255,255,255,.18);
  padding:6px 28px;
}
.v2-stat:last-child{border-right:none}
.v2-stat-num{
  font-weight:300;font-size:clamp(2rem,3.4vw,2.7rem);
  color:#fff;line-height:1;letter-spacing:-.01em;
}
.v2-stat-label{
  font-size:.64rem;font-weight:500;
  letter-spacing:.3em;text-transform:uppercase;
  color:rgba(255,255,255,.7);
  text-align:center;
}

/* ===== FORM ===== */
.v2-form{
  max-width:560px;margin:0 auto;
  display:flex;flex-direction:column;gap:18px;
}
.v2-form-input{
  width:100%;
  background:transparent;
  border:1px solid rgba(255,255,255,.4);
  color:#fff;font-family:'Montserrat',sans-serif;
  font-size:1rem;font-weight:400;
  padding:16px 22px;outline:none;
  transition:border-color .3s ease;
  border-radius:0;
}
.v2-form-input:focus{border-color:#fff}
.v2-form-input:focus-visible{outline:2px solid #fff;outline-offset:3px}
.v2-form-input::placeholder{color:rgba(255,255,255,.55)}
.v2-form-consent{
  display:flex;align-items:flex-start;gap:12px;
  font-size:.8rem;font-weight:400;line-height:1.6;
  color:rgba(255,255,255,.75);text-align:left;
  cursor:pointer;padding:4px 0;
}
.v2-form-consent input[type=checkbox]{
  flex:0 0 auto;margin-top:2px;
  width:18px;height:18px;accent-color:#fff;cursor:pointer;
}
.v2-form-consent input[type=checkbox]:focus-visible{outline:2px solid #fff;outline-offset:3px}
.v2-form-consent a{color:#fff;text-decoration:underline;text-underline-offset:2px}
.v2-form .v2-btn{width:100%}
.v2-form-status{
  font-size:.82rem;
  text-align:center;margin:6px 0 0;line-height:1.5;min-height:1.4em;
}
.v2-form-status:empty{display:none}
.v2-form-status[data-kind=sending]{color:rgba(255,255,255,.75)}
.v2-form-status[data-kind=ok]{color:#fff;font-weight:500}
.v2-form-status[data-kind=error]{color:#f0c4c4;font-weight:500}
form.v2-form[aria-busy=true]{opacity:.72}
.v2-form button:disabled,.v2-form input:disabled{cursor:not-allowed;opacity:.55}
form.v2-form.tds-form-sent .v2-form-input,
form.v2-form.tds-form-sent .v2-form-consent,
form.v2-form.tds-form-sent button[type=submit]{display:none}

/* ===== FOOTER ===== */
.v2-footer{
  padding:74px 56px 40px;
  border-top:1px solid rgba(255,255,255,.2);
}
.v2-footer-inner{
  display:grid;grid-template-columns:2fr 1fr 1fr;gap:60px;
  max-width:1328px;margin:0 auto 64px;
}
.v2-footer-brand p{
  font-size:.84rem;line-height:1.75;font-weight:400;
  color:rgba(255,255,255,.65);
  max-width:380px;margin-top:20px;
}
.v2-footer-logo{height:32px;filter:brightness(0) invert(1)}
.v2-footer-cols{display:contents}
.v2-footer h5{
  font-size:.66rem;font-weight:500;
  letter-spacing:.32em;text-transform:uppercase;
  color:rgba(255,255,255,.88);
  margin:0 0 20px;
}
.v2-footer a{
  display:block;
  font-size:.84rem;font-weight:400;
  color:rgba(255,255,255,.62);
  padding:8px 0;
  transition:color .3s ease;
}
.v2-footer a:hover{color:#fff}
.v2-footer-bottom{
  border-top:1px solid rgba(255,255,255,.15);
  padding-top:26px;
  max-width:1328px;margin:0 auto;
  display:flex;justify-content:space-between;align-items:center;
  flex-wrap:wrap;gap:14px;
}
.v2-footer-bottom p{
  font-size:.7rem;font-weight:400;color:rgba(255,255,255,.48);
  margin:0;letter-spacing:.05em;
}

/* ============================================================
   RESPONSIVE
   ============================================================ */

/* Large tablet / small desktop */
@media(max-width:1180px){
  .v2-page > .v2-rule-full{width:calc(100% - 80px)}
  .v2-nav{padding:24px 40px 20px}
  .v2-nav-links{gap:30px}
  .v2-hero{padding:90px 40px 70px}
  .v2-section{padding:70px 40px}
  .v2-section-tight{padding:36px 40px 70px}
  .v2-stats-section{padding:54px 40px}
  .v2-cols-3{gap:30px}
  .v2-spec{grid-template-columns:104px minmax(0,1fr) minmax(0,1.05fr);gap:32px}
  .v2-spec-num{font-size:2.5rem}
  .v2-footer{padding:60px 40px 32px}
  .v2-footer-inner{gap:44px}
}

/* Tablet — hamburger nav from here down */
@media(max-width:920px){
  html{scroll-padding-top:80px}
  .v2-page > .v2-rule-full{width:calc(100% - 56px)}
  .v2-nav{padding:13px 24px 11px}
  body.v2-page{padding-top:62px}
  .v2-logo img{height:30px}
  .v2-nav-toggle{display:flex;position:relative;z-index:2}
  .v2-nav-links{
    display:none;
    position:fixed;top:0;left:0;width:100%;height:100vh;
    background:rgba(0,0,0,.98);
    flex-direction:column;align-items:center;justify-content:center;
    gap:30px;padding:0;margin:0;
    z-index:1;
  }
  .v2-nav-links.active{display:flex}
  .v2-nav-links a{font-size:.78rem;letter-spacing:.3em;padding:8px 0}
  .v2-hero{padding:70px 28px 60px}
  .v2-section{padding:60px 28px}
  .v2-section-tight{padding:30px 28px 60px}
  .v2-stats-section{padding:48px 28px}
  .v2-section-label{margin-bottom:12px}
  .v2-rule-label{margin:0 0 34px}
  .v2-rule-body{margin:28px 0 36px}
  .v2-cols-3{grid-template-columns:1fr;gap:20px;max-width:560px}
  .v2-spec{grid-template-columns:88px minmax(0,1fr);gap:14px 24px;padding:30px 0}
  .v2-spec-num{font-size:2.2rem;grid-row:span 2}
  .v2-spec-role{padding-top:8px}
  .v2-spec-desc{grid-column:2;padding-top:0}
  .v2-decl-grid{grid-template-columns:1fr}
  .v2-decl{padding:36px 30px}
  .v2-stats{grid-template-columns:repeat(2,1fr);gap:32px 0;padding:32px 0}
  .v2-stat{padding:0 18px}
  .v2-stat:nth-child(2){border-right:none}
  .v2-footer{padding:54px 28px 28px}
  .v2-footer-inner{grid-template-columns:1fr 1fr;gap:40px;margin-bottom:48px}
  .v2-footer-brand{grid-column:1/-1}
}

/* Mobile */
@media(max-width:600px){
  .v2-page > .v2-rule-full{width:calc(100% - 40px)}
  .v2-nav{padding:11px 18px 9px}
  body.v2-page{padding-top:56px}
  .v2-logo img{height:27px}
  .v2-hero{padding:54px 20px 50px}
  .v2-overline{font-size:.56rem;letter-spacing:.28em;margin-bottom:22px}
  .v2-hero-title{font-size:1.3rem;line-height:1.3}
  .v2-hero-inner .v2-rule{margin-bottom:22px}
  .v2-hero-title + .v2-rule{margin:22px 0 20px}
  .v2-hero-lead{font-size:.68rem;line-height:1.8;letter-spacing:.08em}
  .v2-hero-lead br{display:none}
  .v2-hero-actions{margin:44px 0 50px;width:100%;flex-direction:column;gap:12px}
  .v2-hero-actions .v2-btn{min-width:0;width:100%;max-width:300px}
  .v2-chevron svg{width:64px;height:32px}
  .v2-section{padding:48px 20px}
  .v2-section-tight{padding:24px 20px 48px}
  .v2-stats-section{padding:40px 20px}
  .v2-section-label{margin-bottom:10px}
  .v2-rule-label{margin:0 0 28px}
  .v2-section-title{font-size:1.25rem;line-height:1.3}
  .v2-section-subtitle{font-size:.68rem;letter-spacing:.08em}
  .v2-rule-body{margin:24px 0 30px}
  .v2-spec{grid-template-columns:1fr;gap:6px;padding:24px 0}
  .v2-spec-num{font-size:1.9rem;grid-row:auto;margin-bottom:2px}
  .v2-spec-role{padding-top:0}
  .v2-spec-desc{grid-column:1;padding-top:2px}
  .v2-decl{padding:30px 22px}
  .v2-stats{grid-template-columns:1fr 1fr;gap:28px 0;padding:26px 0}
  .v2-stat{border-right:none;padding:0 10px}
  .v2-stat-num{font-size:1.8rem}
  .v2-stat-label{font-size:.54rem;letter-spacing:.24em}
  .v2-form{gap:14px}
  .v2-form-input{padding:15px 18px}
  .v2-form-consent{font-size:.72rem}
  .v2-footer{padding:44px 20px 24px}
  .v2-footer-inner{grid-template-columns:1fr;gap:30px;margin-bottom:40px}
  .v2-footer-brand{grid-column:auto}
  .v2-footer-bottom{flex-direction:column;text-align:center;gap:8px}
}
