/* Préchargeur IWS (remplace celui du template DigiPlus).
   Rideaux blancs comme l'original ; logo construit trait par trait, point rouge qui tombe et rebondit. */
#iws-preloader {
  position: fixed;
  inset: 0;
  z-index: 999999;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: none;
  /* Sécurité : si le script de fermeture ne se charge pas, le préchargeur disparaît quand même. */
  animation: iws-pl-failsafe 0s 8s forwards;
}
#iws-preloader.is-done { pointer-events: none; }

.iws-pl-curtain {
  position: absolute;
  top: 0;
  width: calc(50% + 1px);
  height: 100%;
  background-color: #fff;
  transition: transform 0.7s 0.3s cubic-bezier(0.1, 0.1, 0.1, 1);
}
.iws-pl-left { left: 0; }
.iws-pl-right { right: 0; }
#iws-preloader.is-done .iws-pl-left { transform: translateX(-101%); }
#iws-preloader.is-done .iws-pl-right { transform: translateX(101%); }

.iws-pl-logo {
  position: relative;
  z-index: 1;
  width: min(360px, 72vw);
  height: auto;
  overflow: visible;
  transition: opacity 0.3s ease-out, transform 0.3s ease-out;
}
#iws-preloader.is-done .iws-pl-logo { opacity: 0; transform: translateY(-10px) scale(0.98); }

/* Traits du « i » et du « w » : ils se dessinent de haut en bas, de gauche à droite. */
.iws-pl-logo .pl-stroke {
  transform-box: fill-box;
  transform-origin: 50% 0;
  animation: iws-pl-draw 0.5s cubic-bezier(0.2, 0.8, 0.2, 1) both;
}
.iws-pl-logo .pl-w1 { animation-delay: 0.1s; }
.iws-pl-logo .pl-w2 { animation-delay: 0.18s; }
.iws-pl-logo .pl-w3 { animation-delay: 0.26s; }
.iws-pl-logo .pl-w4 { animation-delay: 0.34s; }

/* « s » : monte en place. */
.iws-pl-logo .pl-s { animation: iws-pl-rise 0.45s 0.42s cubic-bezier(0.2, 0.8, 0.2, 1) both; }

/* Point rouge : chute avec rebond, puis flotte doucement tant que la page charge. */
.iws-pl-logo .pl-dot {
  transform-box: fill-box;
  transform-origin: 50% 100%;
  animation: iws-pl-drop 0.75s 0.55s cubic-bezier(0.3, 0, 0.3, 1) both, iws-pl-float 1.4s 1.45s ease-in-out infinite;
}

/* Séparateur puis signature « Innovate Web Solutions ». */
.iws-pl-logo .pl-sep {
  transform-box: fill-box;
  transform-origin: 50% 50%;
  animation: iws-pl-grow 0.35s 0.75s ease-out both;
}
.iws-pl-logo .pl-tag { animation: iws-pl-slide 0.55s 0.85s cubic-bezier(0.2, 0.8, 0.2, 1) both; }

@keyframes iws-pl-draw {
  from { opacity: 0; transform: scaleY(0); }
  30% { opacity: 1; }
  to { opacity: 1; transform: none; }
}
@keyframes iws-pl-rise {
  from { opacity: 0; transform: translateY(22px); }
  to { opacity: 1; transform: none; }
}
@keyframes iws-pl-drop {
  0% { opacity: 0; transform: translateY(-110px); }
  20% { opacity: 1; }
  45% { transform: translateY(0) scale(1.2, 0.8); }
  62% { transform: translateY(-26px) scale(0.95, 1.05); }
  78% { transform: translateY(0) scale(1.08, 0.92); }
  90% { transform: translateY(-6px) scale(1); }
  100% { opacity: 1; transform: none; }
}
@keyframes iws-pl-float {
  0%, 100% { transform: none; }
  50% { transform: translateY(-12px); }
}
@keyframes iws-pl-grow {
  from { transform: scaleY(0); }
  to { transform: none; }
}
@keyframes iws-pl-slide {
  from { opacity: 0; transform: translateX(-28px); }
  to { opacity: 1; transform: none; }
}
@keyframes iws-pl-failsafe {
  to { visibility: hidden; }
}

@media (prefers-reduced-motion: reduce) {
  .iws-pl-logo * { animation: none !important; }
}
