/* ==========================================================================
   Componente · Citação de impacto (#s-quote-contratar)
   Portado do slide de quote do deck de referência (Figma · Competitive
   Analysis Report): tela preta, faixas de luz quente sangrando pelo topo,
   a frase sozinha no centro e três leituras curtas na base.

   As faixas são puro CSS (gradiente + blur) e derivam devagar em loop — dão
   vida à tela sem competir com a frase, que é a única coisa que o público
   deve ler aqui.
   ========================================================================== */

#s-quote-contratar {
  padding: 0;
  display: block;
  overflow: hidden;
  /* o acento do tema em que o slide estiver — o template-1 troca por Vermilion */
  --quote-flare: var(--blue);
  --quote-flare-hot: var(--cyan);
}

/* ---------- faixas de luz ---------- */
.quote-flare {
  position: absolute;
  inset: -6% -10% auto;
  height: 42%;
  z-index: 1;
  pointer-events: none;
}

.quote-flare i {
  position: absolute;
  left: 0;
  right: 0;
  border-radius: 50%;
  /* o núcleo claro no meio é o que faz a faixa parecer luz e não pintura:
     o gradiente sai de transparente, satura no laranja e estoura em creme */
  background: linear-gradient(
    90deg,
    transparent 0%,
    color-mix(in srgb, var(--quote-flare) 30%, transparent) 12%,
    var(--quote-flare) 28%,
    var(--quote-flare-hot) 50%,
    var(--quote-flare) 70%,
    color-mix(in srgb, var(--quote-flare) 30%, transparent) 88%,
    transparent 100%
  );
  mix-blend-mode: screen;
  will-change: transform;
}

/* faixas de espessura e altura diferentes: a de cima sangra pela borda e é a
   mais borrada, as de baixo vão ficando finas e nítidas — é isso que dá a
   leitura de luz atravessando, e não de três barras empilhadas */
.quote-flare i:nth-child(1) {
  top: -2%;
  height: 26px;
  filter: blur(20px);
  opacity: 1;
  animation: flare-drift-a 26s ease-in-out infinite alternate;
}

.quote-flare i:nth-child(2) {
  top: 20%;
  height: 16px;
  filter: blur(14px);
  opacity: .9;
  animation: flare-drift-b 21s ease-in-out infinite alternate;
}

.quote-flare i:nth-child(3) {
  top: 34%;
  height: 7px;
  filter: blur(9px);
  opacity: .75;
  animation: flare-drift-a 31s ease-in-out infinite alternate-reverse;
}

/* quarta faixa, quase um fio: some depressa e sela a composição */
.quote-flare i:nth-child(4) {
  top: 45%;
  height: 3px;
  filter: blur(5px);
  opacity: .5;
  transform: scaleX(.7);
  animation: flare-drift-b 37s ease-in-out infinite alternate;
}

@keyframes flare-drift-a {
  from { transform: translate3d(-4%, 0, 0) scaleX(1); }
  to   { transform: translate3d(4%, 8px, 0) scaleX(1.08); }
}

@keyframes flare-drift-b {
  from { transform: translate3d(5%, 0, 0) scaleX(1.06); }
  to   { transform: translate3d(-5%, -6px, 0) scaleX(.94); }
}

/* ---------- corpo ---------- */
#s-quote-contratar .content.quote {
  position: relative;
  z-index: 3;
  width: 100%;
  max-width: none;
  height: 100%;
  padding: 20vh 8% 9vh;
  display: grid;
  grid-template-rows: 1fr auto;
  gap: 4vh;
  box-sizing: border-box;
  text-align: center;
}

.quote__body {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2.6vh;
  min-height: 0;
}

.quote__text {
  margin: 0;
  max-width: 25ch;
  font-size: clamp(28px, 3.6vw, 62px);
  font-weight: 500;
  line-height: 1.14;
  letter-spacing: -.045em;
  color: var(--white);
  text-wrap: balance;
}

.quote__text em {
  font-style: normal;
  color: var(--quote-flare-hot);
}

.quote__source {
  margin: 0;
  font-size: clamp(13px, 1.05vw, 18px);
  line-height: 1.4;
  color: var(--gray);
  letter-spacing: -.01em;
}

/* ---------- três leituras na base ---------- */
.quote__facts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(24px, 4vw, 90px);
  align-items: start;
}

.quote__fact {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.2vh;
}

.quote__fact svg {
  width: clamp(26px, 2vw, 36px);
  height: auto;
  stroke: var(--white);
  stroke-width: 1.4;
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.quote__fact h3 {
  margin: 0;
  font-size: clamp(15px, 1.25vw, 22px);
  font-weight: 500;
  letter-spacing: -.02em;
  color: var(--white);
}

.quote__fact p {
  margin: 0;
  max-width: 30ch;
  font-size: clamp(12px, .92vw, 16px);
  line-height: 1.5;
  color: var(--gray);
}

@media (max-width: 1100px) {
  #s-quote-contratar .content.quote { padding: 16vh 6% 8vh; }
  .quote__text { max-width: 18ch; }
  .quote__facts { grid-template-columns: 1fr; gap: 3vh; }
}

@media (prefers-reduced-motion: reduce) {
  .quote-flare i { animation: none; }
}
