/* ============================================
   KUMANI — COMPONENTE: HERO
   Dois modos, mesma marcação HTML:
   1) Vídeo em loop (preferido, quando houver ficheiro real)
   2) Crossfade Ken Burns entre imagens (fallback automático)
   ============================================ */

.hero {
  position: relative;
  min-height: 100vh;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  background: var(--color-neutral-900);
}

.hero__media {
  position: absolute;
  inset: 0;
}

/* --- Modo vídeo --- */
.hero__video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.hero--fallback .hero__video {
  display: none;
}

/* --- Modo fallback: crossfade de imagens --- */
.hero__fallback {
  position: absolute;
  inset: 0;
  display: none;
}

.hero--fallback .hero__fallback {
  display: block;
}

.hero__slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  background-size: cover;
  background-position: center;
  animation: heroCrossfade 18s infinite;
}

/* Substituir estes três fundos de cor por
   background-image: url('/assets/images/hero/slide-1.webp'); etc.
   assim que tiveres fotografia real dos trabalhos KUMANI. */
.hero__slide--1 {
  background-color: var(--color-brand-green-accessible);
  animation-delay: 0s;
}
.hero__slide--2 {
  background-color: var(--color-brand-copper);
  animation-delay: 6s;
}
.hero__slide--3 {
  background-color: var(--color-neutral-800);
  animation-delay: 12s;
}

@keyframes heroCrossfade {
  0%, 27.7% { opacity: 1; transform: scale(1); }
  33.3%, 97% { opacity: 0; transform: scale(1.06); }
  100% { opacity: 1; transform: scale(1); }
}

/* prefers-reduced-motion: congela na primeira imagem, sem crossfade nem zoom */
.hero--static .hero__slide {
  animation: none;
  opacity: 0;
  transform: scale(1);
}
.hero--static .hero__slide--1 {
  opacity: 1;
}

/* --- Overlay para garantir contraste AA do texto sobre qualquer imagem/vídeo --- */
.hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    180deg,
    rgba(var(--color-brand-black-rgb), 0.35) 0%,
    rgba(var(--color-brand-black-rgb), 0.5) 45%,
    rgba(var(--color-brand-black-rgb), 0.88) 100%
  );
}

/* --- Conteúdo --- */
.hero__content {
  position: relative;
  z-index: 1;
  max-width: 720px;
  padding: var(--space-11) var(--space-container-x) var(--space-10);
  color: var(--color-neutral-0);
}

.hero__badge {
  display: inline-flex;
  align-items: center;
  background: rgba(76, 175, 80, 0.9);
  border: none;
  color: var(--color-neutral-0);
  padding: var(--space-3) var(--space-5);
  font-size: 11px;
  font-weight: var(--fw-bold);
  letter-spacing: var(--ls-widest);
  text-transform: uppercase;
  border-radius: var(--radius-sm);
  margin-bottom: var(--space-6);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.25);
}

.hero__headline {
  font-family: var(--font-display);
  font-size: var(--fs-5xl);
  font-weight: var(--fw-bold);
  text-transform: uppercase;
  line-height: 0.98;
  letter-spacing: -0.01em;
  margin-bottom: var(--space-6);
  color: var(--color-neutral-0);
  text-shadow: 0 2px 24px rgba(0, 0, 0, 0.45);
}

.hero__cta {
  display: inline-flex;
  align-items: center;
  background: var(--color-brand-primary);
  color: var(--color-text-on-brand);
  font-weight: var(--fw-bold);
  font-size: var(--fs-sm);
  padding: var(--space-4) var(--space-6);
  border-radius: var(--radius-button);
  transition: transform var(--duration-fast) var(--ease-standard),
              box-shadow var(--duration-fast) var(--ease-standard);
}

.hero__cta:hover {
  transform: translateY(-1px);
  box-shadow: var(--shadow-brand);
}

.hero__cta:active {
  transform: scale(0.98);
}

@media (max-width: 767px) {
  .hero__headline {
    font-size: var(--fs-4xl);
  }
  .hero__content {
    padding-inline: var(--space-5);
    padding-bottom: var(--space-9);
  }
}

/* --- Reveal linha-a-linha e palavra-a-palavra do headline --- */
.hero__line {
  display: block;
  overflow: hidden;
  padding-bottom: 0.1em; /* evita cortar caudas de letras como "p", "g" */
}

.hero__word {
  display: inline-block;
  transform: translateY(115%);
  filter: blur(8px);
  opacity: 0;
  transition: transform 1.1s var(--ease-emphasized),
              filter 1.1s var(--ease-emphasized),
              opacity 0.9s var(--ease-standard);
}

.hero--words-visible .hero__word {
  transform: translateY(0);
  filter: blur(0);
  opacity: 1;
}

/* Badge e botão entram bem depois do headline terminar, não em cima dele */
.hero__badge,
.hero__cta {
  opacity: 0;
  transform: translateY(14px);
  transition: opacity 0.8s var(--ease-standard),
              transform 0.8s var(--ease-standard);
}

.hero--content-visible .hero__badge,
.hero--content-visible .hero__cta {
  opacity: 1;
  transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
  .hero__word {
    transition: none;
    transform: translateY(0);
    filter: blur(0);
    opacity: 1;
  }
  .hero__badge,
  .hero__cta {
    transition: none;
    opacity: 1;
    transform: translateY(0);
  }
}