/* CNSBII 258D · ECO hardening. Tutti i selettori sono confinati al layer/classi cns258d. */
#cns258d-eco-layer[hidden]{display:none!important}

body.cns258d-eco-active{
  overflow:hidden!important;
  overscroll-behavior:none;
  background:#06101d!important;
}

body.cns258d-eco-active > :not(#cns258d-eco-layer){
  visibility:hidden!important;
}

body.cns258d-eco-active *,
body.cns258d-eco-active *::before,
body.cns258d-eco-active *::after{
  animation-play-state:paused!important;
  transition:none!important;
}

#cns258d-eco-layer{
  position:fixed;
  inset:0;
  z-index:2147483000;
  display:grid;
  grid-template-rows:auto 1fr auto;
  min-height:100dvh;
  padding:clamp(24px,4vw,58px);
  overflow:hidden;
  color:#f7fbff;
  background:#06101d;
  font-family:inherit;
  isolation:isolate;
  cursor:default;
}

#cns258d-eco-layer::before,
#cns258d-eco-layer::after{
  content:"";
  position:absolute;
  z-index:-1;
  right:clamp(-390px,-21vw,-190px);
  border-radius:50%;
  pointer-events:none;
}

#cns258d-eco-layer::before{
  top:clamp(-260px,-12vw,-80px);
  width:clamp(620px,70vw,1180px);
  aspect-ratio:1;
  border:3px dashed rgba(226,237,247,.76);
}

#cns258d-eco-layer::after{
  top:clamp(310px,38vh,520px);
  width:clamp(520px,61vw,1040px);
  aspect-ratio:1;
  border:3px solid rgba(59,139,202,.82);
}

.cns258d-eco-brand{
  display:flex;
  align-items:center;
  gap:14px;
  width:max-content;
  max-width:min(100%,420px);
}

.cns258d-eco-brand img{
  width:clamp(58px,7vw,90px);
  height:clamp(58px,7vw,90px);
  object-fit:contain;
  border-radius:14px;
  background:#fff;
}

.cns258d-eco-brand span{
  display:grid;
  gap:2px;
  line-height:1.08;
}

.cns258d-eco-brand strong{
  font-size:clamp(1.05rem,1.5vw,1.35rem);
  letter-spacing:.04em;
}

.cns258d-eco-brand small{
  color:rgba(247,251,255,.72);
  font-size:.83rem;
}

.cns258d-eco-content{
  align-self:center;
  width:min(720px,78vw);
  margin-left:clamp(0px,6vw,120px);
  padding-left:clamp(24px,3vw,48px);
  border-left:1px solid rgba(247,251,255,.44);
}

.cns258d-eco-kicker{
  margin:0 0 14px;
  color:#8fc7ef;
  font-size:.76rem;
  font-weight:800;
  letter-spacing:.16em;
  text-transform:uppercase;
}

.cns258d-eco-content h2{
  max-width:650px;
  margin:0 0 24px;
  color:#fff;
  font-size:clamp(2.55rem,5.5vw,5.7rem);
  font-weight:500;
  line-height:.98;
  letter-spacing:-.045em;
}

.cns258d-eco-content p{
  max-width:660px;
  margin:0;
  color:rgba(247,251,255,.84);
  font-size:clamp(1rem,1.6vw,1.2rem);
  line-height:1.55;
}

.cns258d-eco-actions{
  display:flex;
  align-items:center;
  gap:14px;
  margin-top:32px;
}

#cns258d-eco-resume{
  display:inline-flex;
  align-items:center;
  gap:12px;
  min-height:52px;
  padding:10px 18px 10px 10px;
  border:0;
  border-radius:999px;
  color:#fff;
  background:transparent;
  font:inherit;
  font-size:.92rem;
  font-weight:800;
  letter-spacing:.035em;
  text-transform:uppercase;
  cursor:pointer;
}

#cns258d-eco-resume .cns258d-eco-arrow{
  display:grid;
  place-items:center;
  width:46px;
  height:46px;
  border:1px solid rgba(255,255,255,.72);
  border-radius:50%;
  font-size:1.45rem;
  line-height:1;
}

#cns258d-eco-resume:hover,
#cns258d-eco-resume:focus-visible{
  outline:2px solid #fff;
  outline-offset:4px;
  background:rgba(255,255,255,.08);
}

.cns258d-eco-foot{
  align-self:end;
  max-width:760px;
  color:rgba(247,251,255,.55);
  font-size:.78rem;
  line-height:1.4;
  letter-spacing:.03em;
}

/* Secondo stadio: dopo lunga inattività l'interfaccia diventa quasi interamente nera e statica.
   Il pulsante rimane disponibile per tastiera e tecnologie assistive. */
body.cns258d-eco-deep #cns258d-eco-layer{
  grid-template-rows:1fr;
  place-items:center;
  padding:20px;
  background:#000;
}

body.cns258d-eco-deep #cns258d-eco-layer::before,
body.cns258d-eco-deep #cns258d-eco-layer::after,
body.cns258d-eco-deep .cns258d-eco-brand,
body.cns258d-eco-deep .cns258d-eco-kicker,
body.cns258d-eco-deep .cns258d-eco-content h2,
body.cns258d-eco-deep .cns258d-eco-content > p,
body.cns258d-eco-deep .cns258d-eco-foot{
  display:none!important;
}

body.cns258d-eco-deep .cns258d-eco-content{
  width:auto;
  margin:0;
  padding:0;
  border:0;
}

body.cns258d-eco-deep .cns258d-eco-actions{margin:0}

body.cns258d-eco-deep #cns258d-eco-resume{
  min-height:48px;
  color:rgba(255,255,255,.64);
  font-size:.78rem;
  letter-spacing:.05em;
}

body.cns258d-eco-deep #cns258d-eco-resume .cns258d-eco-arrow{
  width:42px;
  height:42px;
  border-color:rgba(255,255,255,.34);
}

@media (max-width:800px){
  #cns258d-eco-layer{padding:24px 20px 28px}
  #cns258d-eco-layer::before{right:-470px;top:-190px}
  #cns258d-eco-layer::after{right:-500px;top:50vh}
  .cns258d-eco-brand small{display:none}
  .cns258d-eco-content{width:100%;margin-left:0;padding-left:22px}
  .cns258d-eco-content h2{font-size:clamp(2.35rem,12vw,4.2rem)}
  .cns258d-eco-content p{max-width:94%}
}

@media (max-width:480px){
  .cns258d-eco-brand img{width:54px;height:54px;border-radius:12px}
  .cns258d-eco-content{padding-left:18px}
  .cns258d-eco-actions{margin-top:24px}
  #cns258d-eco-resume{padding-right:12px;font-size:.78rem}
}

@media (prefers-reduced-motion:reduce){
  #cns258d-eco-layer *,
  #cns258d-eco-layer *::before,
  #cns258d-eco-layer *::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}
}

@media print{
  #cns258d-eco-layer{display:none!important}
  body.cns258d-eco-active{overflow:visible!important;background:#fff!important}
  body.cns258d-eco-active > :not(#cns258d-eco-layer){visibility:visible!important}
}
