/* =========================================================
   PRELOADER
   Fase 3 — uma única versão
   ========================================================= */

html {
  overflow-y: scroll;
}

html.preloader-active {
  height: 100%;
  overflow: hidden !important;
  overscroll-behavior: none;
}

html.preloader-active body {
  height: 100%;
  overflow: hidden !important;
  overscroll-behavior: none;
}

.site-preloader {
  position: fixed;
  inset: 0;
  z-index: 99999;
  display: grid;
  place-items: center;
  width: 100% !important;
  height: 100vh !important;
  height: 100dvh !important;
  min-height: 100vh;
  margin: 0 !important;
  background:
    radial-gradient(circle at 50% 45%, rgba(23, 109, 168, .09), transparent 34%),
    radial-gradient(circle at 12% 82%, rgba(21, 145, 11, .055), transparent 28%),
    linear-gradient(135deg, #fff 0%, #f6fbfe 55%, #edf7fc 100%);
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
  backface-visibility: hidden;
  touch-action: none;
  overscroll-behavior: none;
  --preloader-fade-ms: 600ms;
  transition:
    opacity var(--preloader-fade-ms) cubic-bezier(.33, 0, .15, 1),
    visibility 0s linear var(--preloader-fade-ms) !important;
}

.site-preloader.preloader-hide {
  opacity: 0 !important;
  visibility: hidden !important;
  transform: none !important;
  pointer-events: none;
}

.preloader-inner {
  width: min(90vw, 620px);
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  opacity: 1 !important;
  transform: none !important;
  transition: none !important;
}

.preloader-crest {
  width: min(48vw, 310px);
  height: auto;
  display: block;
  opacity: 0;
  transform: scale(.88) translateY(10px);
  animation: crestEnter .85s cubic-bezier(.2, .75, .25, 1) .08s forwards;
}

.preloader-title {
  margin-top: 19px;
  color: var(--ink);
  font-family: "Montserrat", system-ui, sans-serif;
  opacity: 0;
  transform: translateY(8px);
  animation: preloaderText .65s ease .48s forwards;
}

.preloader-title span {
  display: block;
  margin-bottom: 5px;
  font-size: clamp(.68rem, 1.1vw, .86rem);
  font-weight: 600;
  letter-spacing: .30em;
}

.preloader-title strong {
  display: block;
  font-size: clamp(1rem, 2vw, 1.45rem);
  font-weight: 700;
  letter-spacing: .055em;
}

.preloader-colors {
  display: flex;
  width: min(58vw, 300px);
  height: 5px;
  margin-top: 18px;
  border-radius: 999px;
  overflow: hidden;
  transform: scaleX(0);
  transform-origin: center;
  animation: preloaderLine .7s cubic-bezier(.2, .8, .25, 1) .65s forwards;
  box-shadow: 0 3px 10px rgba(6, 70, 111, .08);
}

.preloader-colors i {
  flex: 1;
}

.preloader-colors i:nth-child(1) { background: var(--blue); }
.preloader-colors i:nth-child(2) { background: var(--green); }
.preloader-colors i:nth-child(3) { background: var(--yellow); }
.preloader-colors i:nth-child(4) { background: var(--red); }

.site-preloader.preloader-hide .preloader-inner,
.site-preloader.preloader-hide .preloader-crest,
.site-preloader.preloader-hide .preloader-title,
.site-preloader.preloader-hide .preloader-colors {
  transform: none !important;
  transition: none !important;
}

@keyframes crestEnter {
  from {
    opacity: 0;
    transform: scale(.88) translateY(10px);
  }
  to {
    opacity: 1;
    transform: scale(1) translateY(0);
  }
}

@keyframes preloaderText {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes preloaderLine {
  to {
    transform: scaleX(1);
  }
}

@media (max-width: 575px) {
  .preloader-crest {
    width: min(64vw, 270px);
  }

  .preloader-title {
    margin-top: 14px;
  }

  .preloader-title span {
    letter-spacing: .20em;
  }

  .preloader-colors {
    width: 220px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .preloader-crest,
  .preloader-title,
  .preloader-colors {
    animation: none;
    opacity: 1;
    transform: none;
  }

  .site-preloader {
    transition: opacity .2s ease !important;
  }
}
