/* =====================================================================
   HERO — conteúdo centralizado, background em vídeo
   ===================================================================== */
.hero {
  position: relative;
  min-height: 100svh;
  display: flex;
  align-items: center;        /* centralizado verticalmente */
  justify-content: center;    /* centralizado horizontalmente */
  overflow: hidden;
  padding: clamp(96px, 14vh, 160px) var(--gutter);
}

.hero-media { position: absolute; inset: 0; z-index: 0; }

.hero-video {
  width: 100%; height: 100%;
  object-fit: cover;
}

/* Fallback dinâmico enquanto não há vídeo — gradiente animado cinematográfico */
.hero-fallback {
  position: absolute; inset: 0;
  background:
    radial-gradient(120% 90% at 78% 15%, rgba(138,0,0,0.30), transparent 55%),
    radial-gradient(90% 80% at 10% 90%, rgba(92,0,0,0.32), transparent 60%),
    linear-gradient(115deg, #050505 0%, #16070a 42%, #0a0a0a 100%);
  background-size: 180% 180%;
  animation: heroDrift 18s ease-in-out infinite alternate;
}
/* Se um vídeo carregar, o fallback é escondido via JS adicionando .has-video no hero */
.hero.has-video .hero-fallback { opacity: 0; }

@keyframes heroDrift {
  0%   { background-position: 0% 0%, 100% 100%, 0 0; }
  100% { background-position: 40% 60%, 60% 30%, 0 0; }
}

.hero-grain {
  position: absolute; inset: 0;
  opacity: .05;
  mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  pointer-events: none;
}

/* overlay para legibilidade do texto sobre vídeo */
.hero-media::after {
  content: "";
  position: absolute; inset: 0;
  background:
    radial-gradient(120% 90% at 50% 45%, rgba(0,0,0,.25) 0%, rgba(0,0,0,.6) 100%),
    linear-gradient(180deg, rgba(0,0,0,.35) 0%, rgba(0,0,0,.2) 50%, rgba(0,0,0,.55) 100%);
}

/* Gradiente inferior de transição para a próxima section */
.hero-bottom-gradient {
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 42%;
  z-index: 1;
  background: linear-gradient(to bottom, transparent 0%, rgba(10,10,10,0.6) 55%, var(--black) 100%);
  pointer-events: none;
}

.hero-content {
  position: relative;
  z-index: 2;
  max-width: 880px;
  width: 100%;
  text-align: center;
  margin-inline: auto;
}

.hero-kicker {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: 0.82rem;
  font-weight: 400;
  letter-spacing: 0.22em;
  color: var(--gold-bright);
  text-transform: uppercase;
  margin-bottom: 26px;
}
.hero-kicker .dot {
  width: 8px; height: 8px; border-radius: 50%;
  background: var(--gold-bright);
  box-shadow: 0 0 0 4px var(--gold-glow);
  animation: pulse 2.4s ease-in-out infinite;
}
@keyframes pulse {
  0%,100% { box-shadow: 0 0 0 4px var(--gold-glow); }
  50%     { box-shadow: 0 0 0 9px rgba(156,117,42,0); }
}

.hero-title {
  font-family: var(--font-display);   /* fonte de marca */
  font-size: clamp(2.6rem, 7.4vw, 6rem);
  font-weight: 400;
  line-height: 1.06;
  letter-spacing: 0.01em;
}
/* trecho enfático em vermelho */
.hero-serif { font-family: inherit; }
.hero-serif em {
  font-style: normal;
  color: var(--red);
}

.hero-lead {
  margin: 28px auto 0;
  max-width: 560px;
  font-size: clamp(1.05rem, 1.6vw, 1.3rem);
  font-weight: 300;
  color: var(--off-white);
}

.hero-actions {
  margin-top: 38px;
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
  justify-content: center;
}

.hero-stats {
  margin-top: 56px;
  display: flex;
  gap: clamp(28px, 5vw, 64px);
  flex-wrap: wrap;
  padding-top: 28px;
  border-top: 1px solid var(--line);
  max-width: 620px;
}
.stat { display: flex; flex-direction: column; }
.stat strong { font-size: clamp(1.5rem, 3vw, 2.2rem); font-weight: 900; letter-spacing: -0.02em; }
.stat span { font-size: 0.85rem; color: var(--gray); font-weight: 300; }

.hero-scroll {
  position: absolute;
  left: 50%;
  bottom: clamp(28px, 5vh, 56px);
  transform: translateX(-50%);
  z-index: 2;
  display: grid;
  place-items: center;
  color: var(--gray);
  transition: color .3s;
  animation: scrollBounce 2s ease-in-out infinite;
}
.hero-scroll:hover { color: var(--white); }
.scroll-chevron { width: 30px; height: 30px; }
@keyframes scrollBounce {
  0%, 100% { transform: translateX(-50%) translateY(0); }
  50%      { transform: translateX(-50%) translateY(8px); }
}

/* Entrada da hero no load */
.hero-content > * { opacity: 0; transform: translateY(26px); animation: heroIn .9s var(--ease) forwards; }
.hero-kicker  { animation-delay: .15s; }
.hero-title   { animation-delay: .28s; }
.hero-lead    { animation-delay: .44s; }
.hero-actions { animation-delay: .58s; }
.hero-stats   { animation-delay: .72s; }
@keyframes heroIn { to { opacity: 1; transform: none; } }

@media (prefers-reduced-motion: reduce) {
  .hero-content > * { opacity: 1; transform: none; animation: none; }
}

/* ---------- Responsivo ---------- */
@media (max-width: 760px) {
  .hero-scroll { display: none; }
  .hero-stats { gap: 24px; }
}
