/* =============================================================================
   effects.css — camada de acabamento por cima do tema original.
   Só ADITIVO: nada aqui redefine tipografia, cor ou layout das páginas
   portadas. Se um seletor daqui colidir com o tema, o tema deve vencer — por
   isso tudo é escopado em [data-fx] / .fx-*, classes que o original não usa.

   Tudo desliga em prefers-reduced-motion. Animação que ignora essa preferência
   é bug de acessibilidade, não estilo.
   ========================================================================== */

/* --- entrada por scroll ---------------------------------------------------- */
[data-fx='reveal'] {
  opacity: 0;
  transform: translateY(18px);
  transition:
    opacity 0.62s cubic-bezier(0.22, 0.61, 0.36, 1),
    transform 0.62s cubic-bezier(0.22, 0.61, 0.36, 1);
  will-change: opacity, transform;
}
[data-fx='reveal'].fx-in {
  opacity: 1;
  transform: none;
}
/* escalona a entrada de irmãos na mesma seção — dá ritmo em vez de tudo junto */
[data-fx='reveal'].fx-d1 { transition-delay: 0.07s; }
[data-fx='reveal'].fx-d2 { transition-delay: 0.14s; }
[data-fx='reveal'].fx-d3 { transition-delay: 0.21s; }
[data-fx='reveal'].fx-d4 { transition-delay: 0.28s; }

/* --- cards de plano (home) -------------------------------------------------- */
.fx-lift {
  transition:
    transform 0.28s cubic-bezier(0.22, 0.61, 0.36, 1),
    box-shadow 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
@media (hover: hover) and (pointer: fine) {
  .fx-lift:hover {
    transform: translateY(-6px);
    box-shadow: 0 18px 42px -18px rgba(8, 84, 49, 0.42);
  }
}
/* feedback tátil no toque — mobile não tem hover */
.fx-lift:active { transform: translateY(-2px) scale(0.995); }

/* --- botões ----------------------------------------------------------------- */
.fx-cta {
  position: relative;
  overflow: hidden;
  transition: transform 0.18s ease, filter 0.18s ease;
}
.fx-cta:active { transform: scale(0.985); }
@media (hover: hover) and (pointer: fine) {
  .fx-cta:hover { filter: brightness(1.06); }
}
/* brilho que atravessa o botão, discreto e sem loop infinito no mobile */
.fx-cta::after {
  content: '';
  position: absolute;
  inset: 0 auto 0 -60%;
  width: 45%;
  background: linear-gradient(
    100deg,
    transparent,
    rgba(255, 255, 255, 0.34),
    transparent
  );
  transform: skewX(-18deg);
  animation: fx-sheen 4.6s ease-in-out infinite;
  pointer-events: none;
}
@keyframes fx-sheen {
  0%, 62% { left: -60%; }
  92%, 100% { left: 120%; }
}

/* --- foco visível (acessibilidade) ------------------------------------------ */
.fx-cta:focus-visible,
.fx-lift:focus-visible {
  outline: 3px solid #085431;
  outline-offset: 3px;
}

/* --- barra de progresso de leitura (advertorial) ---------------------------- */
.fx-progress {
  position: fixed;
  top: 0;
  left: 0;
  height: 3px;
  width: 0;
  background: linear-gradient(90deg, #085431, #21a366);
  z-index: 2147483000;
  transition: width 0.12s linear;
  pointer-events: none;
}

@media (prefers-reduced-motion: reduce) {
  [data-fx='reveal'] {
    opacity: 1;
    transform: none;
    transition: none;
  }
  .fx-lift,
  .fx-cta { transition: none; }
  .fx-lift:hover,
  .fx-lift:active,
  .fx-cta:active { transform: none; }
  .fx-cta::after { animation: none; display: none; }
  .fx-progress { transition: none; }
}

/* --- wordmark editorial (substitui o logo vetorial do original no adv-b) ---- */
.ed-wordmark {
  text-decoration: none;
  font-weight: 800;
  font-size: 1.05rem;
  letter-spacing: -0.02em;
  color: #cc0000;
  white-space: nowrap;
}

/* o wordmark vive dentro de um <a> do tema, que traz underline por herança */
a:has(> .ed-wordmark),
.site-footer__brand { text-decoration: none; }
