
html.avis-final-open,body.avis-final-open{overflow:hidden!important}

#avis-final-landing{
 position:fixed!important;
 inset:0!important;
 z-index:2147483647!important;
 width:100vw!important;
 height:100dvh!important;
 overflow:hidden!important;
 background:#071f46!important;
 cursor:pointer;
}

.avis-final-stage{
 position:absolute;
 inset:0;
 display:flex;
 align-items:center;
 justify-content:center;
 background:#071f46;
 overflow:hidden;
}

.avis-final-artboard{
 position:relative;
 width:1671px;
 height:941px;
 flex:0 0 1671px;
 overflow:hidden;
 transform-origin:center center;
 background:#071f46;
}

.avis-final-bg{
 position:absolute;
 inset:0;
 width:1671px;
 height:941px;
 object-fit:cover;
 pointer-events:none;
}

/* Animated waves on top of the approved waves */
.avis-final-wave-overlay{
 position:absolute;
 left:0;
 right:0;
 bottom:0;
 height:220px;
 z-index:5;
 pointer-events:none;
 opacity:.82;
}
.avis-final-wave-overlay svg{
 width:100%;
 height:100%;
 display:block;
}
.avis-final-wave-overlay path{
 fill:none;
 stroke-linecap:round;
}
.wave-a{
 stroke:rgba(74,222,255,.90);
 stroke-width:4.4;
 filter:drop-shadow(0 0 7px rgba(74,222,255,.45));
}
.wave-b{
 stroke:rgba(55,160,255,.64);
 stroke-width:2.8;
 filter:drop-shadow(0 0 5px rgba(55,160,255,.30));
}

/* Small ENTER cue */
.avis-final-enter{
 position:absolute;
 left:50%;
 bottom:42px;
 transform:translateX(-50%);
 z-index:10;
 display:flex;
 align-items:center;
 justify-content:center;
 gap:7px;
 min-width:96px;
 height:38px;
 padding:0 13px 0 15px;
 border-radius:22px;
 border:1px solid rgba(110,228,255,.90);
 background:linear-gradient(180deg,rgba(17,92,151,.88),rgba(5,44,89,.95));
 color:#fff;
 box-shadow:0 0 13px rgba(62,214,255,.28), inset 0 0 10px rgba(62,214,255,.08);
 cursor:pointer;
}
.avis-final-enter span{
 font:600 12px/1 Arial,Helvetica,sans-serif;
 letter-spacing:.12em;
}
.avis-final-enter b{
 font:300 24px/1 Arial,Helvetica,sans-serif;
 color:#8cecff;
 transform:translateY(-1px);
}


/* Linea luminosa sotto AI Version come riferimento approvato */
.avis-final-divider{
 position:absolute;
 left:102px;
 top:500px;
 width:545px;
 height:4px;
 z-index:7;
 pointer-events:none;
 border-radius:999px;
 background:
   linear-gradient(90deg,
     rgba(41,199,255,0) 0%,
     rgba(41,199,255,.28) 7%,
     rgba(80,220,255,.78) 18%,
     rgba(126,242,255,.95) 42%,
     rgba(255,255,255,1) 50%,
     rgba(126,242,255,.95) 58%,
     rgba(80,220,255,.78) 82%,
     rgba(41,199,255,.28) 93%,
     rgba(41,199,255,0) 100%);
 box-shadow:
   0 0 4px rgba(70,215,255,.85),
   0 0 9px rgba(70,215,255,.58),
   0 0 16px rgba(70,215,255,.28);
}
.avis-final-divider::after{
 content:"";
 position:absolute;
 left:44%;
 top:50%;
 width:12%;
 height:8px;
 transform:translateY(-50%);
 border-radius:999px;
 background:rgba(255,255,255,.72);
 filter:blur(2px);
 opacity:.55;
}


/* --- TRUE SMARTPHONE PORTRAIT COMPOSITION --- */
.avis-mobile-bg,
.avis-mobile-claim{display:none}

@media (max-width:600px) and (orientation:portrait){
  .avis-final-artboard{
    width:941px;
    height:1671px;
    flex:0 0 941px;
    background:#071f46;
  }

  .avis-final-bg{
    display:none;
  }

  .avis-mobile-bg{
    display:block;
    position:absolute;
    inset:0;
    width:941px;
    height:1671px;
    object-fit:cover;
    pointer-events:none;
  }

  /* animated claim placed separately on mobile */
  .avis-mobile-claim{
    display:block;
    position:absolute;
    left:82px;
    top:1190px;
    width:770px;
    z-index:8;
    pointer-events:none;
  }

  .avis-mobile-claim .m-white{
    font:300 italic 46px/1.16 Arial,Helvetica,sans-serif;
    color:#fff;
    opacity:0;
    transform:translate(180px,-150px);
  }

  #avis-final-landing.is-ready .avis-mobile-claim .m-white{
    animation:mClaimIn 2.6s cubic-bezier(.20,.78,.22,1) .18s forwards;
  }

  @keyframes mClaimIn{
    0%{opacity:0;transform:translate(180px,-150px)}
    15%{opacity:.78}
    100%{opacity:1;transform:translate(0,0)}
  }

  .avis-mobile-claim .m-red{
    margin-top:16px;
    font:700 italic 54px/1.05 Arial,Helvetica,sans-serif;
    color:#f01924;
    opacity:0;
  }

  #avis-final-landing.is-ready .avis-mobile-claim .m-red{
    animation:mRedIn .58s ease 2.95s forwards;
  }

  @keyframes mRedIn{from{opacity:0}to{opacity:1}}

  .avis-final-divider{
    display:none;
  }

  .avis-final-wave-overlay{
    height:220px;
    bottom:0;
    opacity:.80;
  }

  .avis-final-enter{
    bottom:46px;
    min-width:92px;
    height:36px;
  }
}
