/* Banner di consenso cookie (Consent Mode v2). Riusa solo i token del sito:
   colori/font/radius/ombra estratti da index.html, nessun valore nuovo. */

#exx-consent-banner{
  position:fixed; z-index:9999;
  left:16px; right:16px; bottom:16px;
  bottom:max(16px, env(safe-area-inset-bottom));
  max-width:420px;
  font-family:"Hanken Grotesk",system-ui,sans-serif;
}
@media (min-width:640px){
  #exx-consent-banner{ right:auto; }
}
#exx-consent-banner[hidden]{ display:none; }

#exx-consent-banner .exx-consent-card{
  background:var(--bianco);
  color:var(--nero);
  border:1px solid var(--line);
  border-left:3px solid var(--rosso);
  border-radius:0 6px 6px 0;
  box-shadow:0 8px 22px rgba(0,0,0,.18);
  padding:22px 24px;
  position:relative;
  transform:translateY(0);
  opacity:1;
  transition:transform .3s ease, opacity .3s ease;
}
#exx-consent-banner.exx-consent-enter .exx-consent-card{
  transform:translateY(12px);
  opacity:0;
}
@media (prefers-reduced-motion:reduce){
  #exx-consent-banner .exx-consent-card{ transition:none; }
  #exx-consent-banner.exx-consent-enter .exx-consent-card{ transform:none; opacity:1; }
}

#exx-consent-banner .exx-consent-close{
  position:absolute; top:10px; right:10px;
  width:32px; height:32px; display:grid; place-items:center;
  background:none; border:none; cursor:pointer;
  color:var(--ink-2); font-size:18px; line-height:1;
  border-radius:6px; transition:background .2s,color .2s;
}
#exx-consent-banner .exx-consent-close:hover{ background:var(--paper-2); color:var(--nero); }

#exx-consent-banner .exx-consent-eyebrow{
  font-family:"JetBrains Mono",monospace; font-size:11px; letter-spacing:.16em;
  text-transform:uppercase; color:var(--rosso); font-weight:500; margin-bottom:8px;
}
#exx-consent-banner .exx-consent-title{
  font-family:"Bricolage Grotesque",sans-serif; font-weight:800; font-size:19px;
  line-height:1.15; letter-spacing:-.01em; margin-bottom:10px; padding-right:24px;
}
#exx-consent-banner .exx-consent-desc{
  font-size:13.5px; line-height:1.55; color:var(--ink-2); margin-bottom:18px;
}
#exx-consent-banner .exx-consent-desc a{ color:var(--nero); text-decoration:underline; }

#exx-consent-banner .exx-consent-actions{
  display:flex; gap:10px;
}
#exx-consent-banner .exx-consent-btn{
  flex:1 1 0;
  font-family:"Hanken Grotesk",sans-serif; font-weight:700; font-size:14px;
  padding:13px 16px; border-radius:6px; cursor:pointer;
  text-align:center; transition:background .2s,color .2s,border-color .2s;
}
#exx-consent-banner .exx-consent-btn--solid{
  background:var(--rosso); color:#fff; border:1px solid var(--rosso);
}
#exx-consent-banner .exx-consent-btn--solid:hover{ background:var(--rosso-deep); border-color:var(--rosso-deep); }
#exx-consent-banner .exx-consent-btn--ghost{
  /* var(--line) e' troppo chiaro per un bordo che e' l'unico segnale del
     bottone (contrasto ~1.3:1, sotto la soglia 3:1 di WCAG 2.2 SC 1.4.11);
     var(--ink-2) e' gia' usato nel sito per testo secondario, ~7.4:1. */
  background:transparent; color:var(--nero); border:1px solid var(--ink-2);
}
#exx-consent-banner .exx-consent-btn--ghost:hover{ background:var(--paper-2); }

#exx-consent-banner .exx-consent-close:focus-visible,
#exx-consent-banner .exx-consent-btn:focus-visible,
#exx-consent-banner .exx-consent-desc a:focus-visible{
  outline:2px solid var(--rosso); outline-offset:2px;
}

@media (max-width:380px){
  #exx-consent-banner{ left:10px; right:10px; bottom:10px; }
  #exx-consent-banner .exx-consent-card{ padding:18px 18px; }
  #exx-consent-banner .exx-consent-actions{ flex-direction:column; }
}
