/* ============================================================
   ATT — stili condivisi
   1. Banner e pannello cookie
   2. Widget accessibilità
   3. Impaginazione delle pagine legali
   ============================================================ */

:root{
  --w-ink:#06080F;
  --w-ink2:#0B0F1E;
  --w-panna:#F6F8FC;
  --w-arancio:#FF6B1A;
  --w-arancio-scuro:#E85A0C;
  --w-blu:#1F63D6;
  --w-testo:#101828;
  --w-muto:#4A5568;
  --w-linea:rgba(255,255,255,.12);
  --w-linea-scura:rgba(10,36,82,.14);
  --w-e:cubic-bezier(.16,1,.3,1);
}

/* ============================================================
   1. COOKIE
   ============================================================ */
.cmp{
  position:fixed;left:0;right:0;bottom:0;z-index:9500;
  padding:0 16px calc(16px + env(safe-area-inset-bottom));
  display:none;
}
.cmp.on{display:block;animation:cmpUp .5s var(--w-e)}
@keyframes cmpUp{from{transform:translateY(110%);opacity:0}to{transform:none;opacity:1}}

.cmp-box{
  max-width:1180px;margin:0 auto;background:rgba(6,8,15,.96);
  backdrop-filter:blur(20px);border:1px solid var(--w-linea);
  border-radius:16px;padding:26px 30px;color:#fff;
  box-shadow:0 30px 80px rgba(0,0,0,.5);
  display:flex;flex-wrap:wrap;gap:22px;align-items:center;justify-content:space-between;
}
.cmp-txt{flex:1 1 420px;min-width:0}
.cmp-txt h2{
  font-family:'Archivo',system-ui,sans-serif;font-size:1.05rem;font-weight:900;
  letter-spacing:-.02em;margin:0 0 8px;color:#fff;
}
.cmp-txt p{margin:0;font-size:.92rem;line-height:1.6;color:rgba(255,255,255,.72)}
.cmp-txt a{color:#FFB27A;text-decoration:underline;text-underline-offset:3px}
.cmp-actions{display:flex;flex-wrap:wrap;gap:10px;flex:0 0 auto}

.cmp-btn{
  font-family:'Archivo',system-ui,sans-serif;font-weight:800;font-size:.92rem;
  padding:14px 24px;border-radius:100px;border:1px solid transparent;cursor:pointer;
  transition:transform .35s var(--w-e),background .3s,border-color .3s,color .3s;
  white-space:nowrap;
}
.cmp-btn:hover{transform:translateY(-2px)}
.cmp-btn:focus-visible{outline:3px solid #FFB27A;outline-offset:2px}
.cmp-ok{background:var(--w-arancio);color:#fff}
.cmp-ok:hover{background:#fff;color:var(--w-arancio)}
.cmp-no{background:rgba(255,255,255,.08);color:#fff;border-color:var(--w-linea)}
.cmp-no:hover{background:rgba(255,255,255,.16)}
.cmp-more{background:none;color:rgba(255,255,255,.7);text-decoration:underline;text-underline-offset:3px;padding:14px 10px}
.cmp-more:hover{color:#fff}

/* pannello preferenze */
.cmp-modal{
  position:fixed;inset:0;z-index:9600;display:none;
  align-items:center;justify-content:center;padding:20px;
  background:rgba(4,6,12,.72);backdrop-filter:blur(6px);
}
.cmp-modal.on{display:flex;animation:fade .3s ease}
@keyframes fade{from{opacity:0}to{opacity:1}}
.cmp-panel{
  width:min(620px,100%);max-height:86vh;overflow:auto;
  background:#fff;color:var(--w-testo);border-radius:18px;padding:34px;
  box-shadow:0 40px 100px rgba(0,0,0,.4);
}
.cmp-panel h2{font-family:'Archivo',system-ui,sans-serif;font-size:1.5rem;font-weight:900;letter-spacing:-.03em;margin:0 0 10px}
.cmp-panel > p{color:var(--w-muto);font-size:.95rem;line-height:1.65;margin:0 0 24px}

.cmp-row{
  border:1px solid var(--w-linea-scura);border-radius:12px;padding:20px 22px;margin-bottom:14px;
}
.cmp-row-top{display:flex;align-items:center;justify-content:space-between;gap:16px}
.cmp-row h3{font-family:'Archivo',system-ui,sans-serif;font-size:1.02rem;font-weight:800;letter-spacing:-.02em;margin:0}
.cmp-row p{margin:10px 0 0;font-size:.9rem;line-height:1.6;color:var(--w-muto)}
.cmp-fisso{font-size:.75rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--w-muto);white-space:nowrap}

/* interruttore */
.sw{position:relative;width:52px;height:30px;flex:none}
.sw input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer;z-index:2}
.sw span{
  position:absolute;inset:0;border-radius:100px;background:#D5DAE3;transition:background .3s;
}
.sw span::after{
  content:'';position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;
  background:#fff;box-shadow:0 2px 6px rgba(0,0,0,.2);transition:transform .3s var(--w-e);
}
.sw input:checked + span{background:var(--w-arancio)}
.sw input:checked + span::after{transform:translateX(22px)}
.sw input:focus-visible + span{outline:3px solid var(--w-blu);outline-offset:2px}

.cmp-panel-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}
.cmp-panel-actions .cmp-btn{flex:1 1 auto;justify-content:center}
.cmp-save{background:var(--w-testo);color:#fff}
.cmp-save:hover{background:var(--w-arancio)}

@media(max-width:720px){
  .cmp-box{flex-direction:column;align-items:stretch;padding:22px}
  .cmp-actions{width:100%}
  .cmp-actions .cmp-btn{flex:1}
  .cmp-panel{padding:26px 22px}
}

/* ============================================================
   2. ACCESSIBILITÀ
   ============================================================ */
.a11y-open{
  position:fixed;right:18px;bottom:18px;z-index:9400;
  width:54px;height:54px;border-radius:50%;border:0;cursor:pointer;
  background:var(--w-blu);color:#fff;
  box-shadow:0 12px 30px rgba(31,99,214,.4);
  display:flex;align-items:center;justify-content:center;
  transition:transform .4s var(--w-e),background .3s;
}
.a11y-open:hover{transform:scale(1.08);background:#1750B4}
.a11y-open:focus-visible{outline:3px solid #FFB27A;outline-offset:3px}
.a11y-open svg{width:28px;height:28px;fill:currentColor}

.a11y-panel{
  position:fixed;right:18px;bottom:84px;z-index:9450;width:min(340px,calc(100vw - 36px));
  background:#fff;color:var(--w-testo);border-radius:16px;padding:24px;
  box-shadow:0 30px 70px rgba(0,0,0,.32);border:1px solid var(--w-linea-scura);
  display:none;max-height:calc(100vh - 120px);overflow:auto;
}
.a11y-panel.on{display:block;animation:cmpUp .35s var(--w-e)}
.a11y-panel h2{font-family:'Archivo',system-ui,sans-serif;font-size:1.1rem;font-weight:900;letter-spacing:-.02em;margin:0 0 4px}
.a11y-panel .hint{font-size:.84rem;color:var(--w-muto);margin:0 0 18px;line-height:1.5}

.a11y-grp{margin-bottom:16px}
.a11y-lab{
  font-family:'Archivo',system-ui,sans-serif;font-size:.7rem;font-weight:800;
  letter-spacing:.14em;text-transform:uppercase;color:var(--w-muto);margin-bottom:8px;display:block;
}
.a11y-steps{display:flex;gap:8px;align-items:center}
.a11y-steps button{
  flex:1;padding:11px 0;border-radius:9px;border:1px solid var(--w-linea-scura);
  background:var(--w-panna);cursor:pointer;font-family:'Archivo',system-ui,sans-serif;
  font-weight:800;font-size:1rem;color:var(--w-testo);transition:background .25s,border-color .25s;
}
.a11y-steps button:hover{background:#E9EEF7;border-color:var(--w-blu)}
.a11y-steps .val{flex:1.2;text-align:center;font-size:.86rem;color:var(--w-muto)}

.a11y-toggle{
  display:flex;align-items:center;justify-content:space-between;gap:14px;
  padding:12px 0;border-top:1px solid var(--w-linea-scura);
}
.a11y-toggle span.t{font-size:.94rem;line-height:1.35}
.a11y-reset{
  width:100%;margin-top:16px;padding:13px;border-radius:100px;border:1px solid var(--w-linea-scura);
  background:none;cursor:pointer;font-family:'Archivo',system-ui,sans-serif;font-weight:800;
  font-size:.9rem;color:var(--w-testo);transition:background .25s}
.a11y-reset:hover{background:var(--w-panna)}
.a11y-panel button:focus-visible,.a11y-panel input:focus-visible{outline:3px solid var(--w-blu);outline-offset:2px}

/* --- effetti applicati alla pagina --- */
html[data-a11y-contrast="1"]{filter:contrast(1.35) saturate(1.15)}
html[data-a11y-links="1"] a{
  text-decoration:underline !important;text-underline-offset:3px !important;
  outline:1px dashed currentColor;outline-offset:2px;
}
html[data-a11y-font="1"] body,
html[data-a11y-font="1"] body *{
  font-family:Verdana,Tahoma,system-ui,sans-serif !important;letter-spacing:.01em !important;
}
html[data-a11y-spacing="1"] body{line-height:2 !important;letter-spacing:.05em !important;word-spacing:.14em !important}
html[data-a11y-spacing="1"] p{margin-bottom:1.6em !important}
html[data-a11y-motion="1"] *,
html[data-a11y-motion="1"] *::before,
html[data-a11y-motion="1"] *::after{
  animation:none !important;transition:none !important;scroll-behavior:auto !important;
}
html[data-a11y-motion="1"] .rally,
html[data-a11y-motion="1"] .cur-ball,
html[data-a11y-motion="1"] .grain{display:none !important}
html[data-a11y-cursor="1"],html[data-a11y-cursor="1"] *{
  cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48' viewBox='0 0 48 48'%3E%3Cpath d='M8 4l28 17-12 3 7 14-5 2-7-14-9 8z' fill='%23fff' stroke='%23000' stroke-width='2.5'/%3E%3C/svg%3E") 4 4, auto !important;
}

/* salto al contenuto */
.skip{
  position:absolute;left:-9999px;top:0;z-index:9999;
  background:var(--w-arancio);color:#fff;padding:14px 22px;border-radius:0 0 10px 0;
  font-family:'Archivo',system-ui,sans-serif;font-weight:800;text-decoration:none;
}
.skip:focus{left:0}

/* ============================================================
   3. PAGINE LEGALI
   ============================================================ */
body.legal{
  margin:0;background:var(--w-ink);color:rgba(255,255,255,.78);
  font-family:'Inter',system-ui,-apple-system,sans-serif;
  font-size:17px;line-height:1.75;-webkit-font-smoothing:antialiased;
}
body.legal h1,body.legal h2,body.legal h3{
  font-family:'Archivo',system-ui,sans-serif;color:#fff;margin:0;letter-spacing:-.03em;line-height:1.1;
}
body.legal a{color:#FFB27A}
.lg-wrap{max-width:820px;margin:0 auto;padding:0 24px}

.lg-head{
  border-bottom:1px solid var(--w-linea);position:sticky;top:0;z-index:100;
  background:rgba(6,8,15,.9);backdrop-filter:blur(16px);
}
.lg-head-in{max-width:1180px;margin:0 auto;padding:14px 24px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.lg-head img{height:38px;width:auto;display:block}
.lg-back{
  font-size:.86rem;text-decoration:none;color:rgba(255,255,255,.7);
  border:1px solid var(--w-linea);padding:9px 18px;border-radius:100px;transition:all .3s;
}
.lg-back:hover{color:#fff;border-color:rgba(255,255,255,.4)}

.lg-hero{padding:clamp(56px,9vw,110px) 0 clamp(30px,4vw,50px)}
.lg-kicker{
  font-family:'Archivo',system-ui,sans-serif;font-size:.7rem;font-weight:800;
  letter-spacing:.22em;text-transform:uppercase;color:var(--w-arancio);
  display:flex;align-items:center;gap:12px;margin-bottom:20px;
}
.lg-kicker::before{content:'';width:26px;height:2px;background:var(--w-arancio)}
.lg-hero h1{font-size:clamp(2.1rem,5.4vw,3.6rem);font-weight:900}
.lg-date{margin-top:18px;font-size:.88rem;color:rgba(255,255,255,.45)}
.lg-intro{margin-top:22px;font-size:1.06rem;color:rgba(255,255,255,.75)}

.lg-toc{
  margin:34px 0 0;padding:22px 24px;border:1px solid var(--w-linea);border-radius:14px;
  background:rgba(255,255,255,.03);
}
.lg-toc strong{
  display:block;font-family:'Archivo',system-ui,sans-serif;font-size:.7rem;font-weight:800;
  letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.5);margin-bottom:12px;
}
.lg-toc ol{margin:0;padding-left:20px;columns:2;column-gap:28px}
.lg-toc li{margin-bottom:7px;font-size:.93rem}
.lg-toc a{color:rgba(255,255,255,.8);text-decoration:none}
.lg-toc a:hover{color:var(--w-arancio)}
@media(max-width:640px){.lg-toc ol{columns:1}}

.lg-sec{padding:clamp(36px,5vw,56px) 0;border-top:1px solid var(--w-linea)}
.lg-num{
  font-family:'Archivo',system-ui,sans-serif;font-size:.72rem;font-weight:800;
  letter-spacing:.18em;color:var(--w-arancio);display:block;margin-bottom:12px;
}
.lg-sec h2{font-size:clamp(1.35rem,2.8vw,1.9rem);font-weight:900;margin-bottom:18px}
.lg-sec h3{font-size:1.08rem;font-weight:800;margin:26px 0 10px}
.lg-sec p{margin:0 0 1.1em}
.lg-sec ul{margin:0 0 1.2em;padding-left:22px}
.lg-sec li{margin-bottom:.55em}
.lg-sec strong{color:#fff}

.lg-table{width:100%;border-collapse:collapse;margin:20px 0;font-size:.9rem;display:block;overflow-x:auto}
.lg-table th,.lg-table td{text-align:left;padding:13px 14px;border-bottom:1px solid var(--w-linea);vertical-align:top}
.lg-table th{
  font-family:'Archivo',system-ui,sans-serif;font-size:.68rem;font-weight:800;
  letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.55);white-space:nowrap;
}
.lg-table td:first-child{color:#fff;font-weight:500;white-space:nowrap}

.lg-box{
  border:1px solid rgba(255,107,26,.3);background:rgba(255,107,26,.07);
  border-radius:12px;padding:22px 24px;margin:22px 0;
}
.lg-box p:last-child{margin-bottom:0}

.lg-cta{
  display:inline-flex;align-items:center;gap:10px;margin-top:8px;
  background:var(--w-arancio);color:#fff;border:0;cursor:pointer;text-decoration:none;
  font-family:'Archivo',system-ui,sans-serif;font-weight:800;font-size:.95rem;
  padding:14px 26px;border-radius:100px;transition:transform .35s var(--w-e),background .3s;
}
.lg-cta:hover{transform:translateY(-2px);background:#fff;color:var(--w-arancio)}

.lg-foot{
  border-top:1px solid var(--w-linea);margin-top:40px;padding:36px 0 60px;
  font-size:.86rem;color:rgba(255,255,255,.45);
}
.lg-foot-in{max-width:1180px;margin:0 auto;padding:0 24px;display:flex;flex-wrap:wrap;gap:14px;justify-content:space-between}
.lg-foot a{color:rgba(255,255,255,.7);text-decoration:none}
.lg-foot a:hover{color:var(--w-arancio)}
.lg-foot nav{display:flex;flex-wrap:wrap;gap:6px}
.lg-foot nav span{opacity:.35}

/* firma dello studio */
.credit{
  display:inline-flex;align-items:baseline;gap:5px;text-decoration:none;
  font-size:.78rem;letter-spacing:.02em;color:rgba(255,255,255,.38);
  transition:color .3s;
}
.credit strong{font-family:'Archivo',system-ui,sans-serif;font-weight:800;color:rgba(255,255,255,.62);transition:color .3s}
.credit:hover{color:rgba(255,255,255,.6)}
.credit:hover strong{color:var(--w-arancio)}
@media(max-width:760px){.lg-foot-in{flex-direction:column;align-items:flex-start;gap:16px}}

@media print{
  .lg-head,.lg-foot,.cmp,.a11y-open,.a11y-panel,.skip{display:none !important}
  body.legal{background:#fff;color:#000}
  body.legal h1,body.legal h2,body.legal h3{color:#000}
}
