/* Partial: hero (escopo .hero) */
.hero { position: relative; display: flex; align-items: flex-end; min-height: min(92vh, 860px); padding: calc(var(--header-h) + var(--hero-y)) 0 var(--section-y); color: var(--c-on-dark); overflow: hidden; background: var(--c-purple-900); isolation: isolate; }
.hero--short { min-height: min(62vh, 560px); padding-bottom: var(--hero-y); }
.hero--compact { min-height: 0; padding-bottom: var(--hero-y); }
.hero__bg { position: absolute; inset: -6% 0; z-index: 0; }
.hero__bg img { width: 100%; height: 100%; object-fit: cover; object-position: var(--hero-pos, 50% 30%); }
.hero__bg::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(var(--rgb-deep),0.42) 0%, rgba(var(--rgb-deep),0.22) 35%, rgba(var(--rgb-deep),0.86) 100%); }
/* Hero de evento com foto: véu mais denso para leitura do título, da cartola e dos dados sobre fotos claras. */
.event-hero:not(.hero--textura) .hero__bg::after { background: linear-gradient(180deg, rgba(var(--rgb-deep),0.62) 0%, rgba(var(--rgb-deep),0.52) 40%, rgba(var(--rgb-deep),0.90) 100%); }
/* Hero de textura: o desenho já é da marca, então o véu só garante contraste do texto. */
.hero--textura .hero__bg::after { background: linear-gradient(180deg, rgba(var(--rgb-deep),0.20) 0%, rgba(var(--rgb-deep),0.08) 38%, rgba(var(--rgb-deep),0.68) 100%); }
/* Home: escurece só o lado do texto, deixando os rostos à direita limpos */
.hero--home .hero__bg::after { background: linear-gradient(90deg, rgba(var(--rgb-deep),0.82) 0%, rgba(var(--rgb-deep),0.55) 42%, rgba(var(--rgb-deep),0.12) 75%), linear-gradient(180deg, rgba(var(--rgb-deep),0.25) 0%, rgba(var(--rgb-deep),0) 40%, rgba(var(--rgb-deep),0.7) 100%); }
@media (max-width: 700px) { .hero--home .hero__bg::after { background: linear-gradient(180deg, rgba(var(--rgb-deep),0.45) 0%, rgba(var(--rgb-deep),0.35) 40%, rgba(var(--rgb-deep),0.9) 100%); } }
.hero__shape { position: absolute; inset: 0; z-index: 1; pointer-events: none; opacity: 0.55; mix-blend-mode: screen; }
.hero__shape svg { position: absolute; right: -10%; top: -10%; width: 62vw; max-width: 900px; height: auto; color: var(--c-cyan-500); opacity: 0.35; }
.hero__content { position: relative; z-index: 2; max-width: 1200px; }
.hero__stack h1 { font-size: var(--fs-hero); color: #fff; margin-bottom: 1.25rem; font-weight: 700; letter-spacing: -0.035em; }
.hero__stack .eyebrow { color: var(--c-cyan-500); }
.hero__stack .lead { color: var(--c-on-dark-soft); max-width: 640px; font-size: clamp(1.05rem, 1rem + 0.5vw, 1.35rem); }
.hero__actions { display: flex; flex-wrap: wrap; gap: 0.9rem; margin-top: var(--sp-6); }
.hero__meta { display: flex; flex-wrap: wrap; gap: 1rem 2rem; margin-top: var(--sp-6); font-size: var(--fs-sm); color: var(--c-on-dark-soft); }
.hero__meta span { display: inline-flex; align-items: center; gap: 0.5rem; }
.hero__meta svg { width: 18px; height: 18px; color: var(--c-cyan-500); }
.hero__scroll { position: absolute; right: var(--gutter); bottom: var(--sp-6); z-index: 3; display: none; align-items: center; gap: 0.5rem; font-size: var(--fs-xs); letter-spacing: 0.14em; text-transform: uppercase; color: var(--c-on-dark-soft); }
@media (min-width: 900px) { .hero__scroll { display: inline-flex; } }
.hero__scroll span { width: 1px; height: 46px; background: linear-gradient(180deg, var(--c-cyan-500), transparent); animation: scroll-hint 2.2s var(--ease-inout) infinite; transform-origin: top; }
@keyframes scroll-hint { 0% { transform: scaleY(0); } 50% { transform: scaleY(1); } 100% { transform: scaleY(0); transform-origin: bottom; } }
@media (prefers-reduced-motion: reduce) { .hero__scroll span { animation: none; } }
/* Hero de página interna (claro) */
/* Topo de página interna em roxo profundo: um degrau de tom abaixo do
   cabeçalho, para o limite entre os dois não sumir. */
.page-hero { padding: calc(var(--header-h) + var(--hero-y)) 0 var(--hero-y); background: var(--c-purple-900); color: var(--c-on-dark); }
.page-hero h1 { color: #fff; }
.page-hero .lead { color: var(--c-on-dark-soft); }
.page-hero .eyebrow { color: var(--c-cyan-500); }
.page-hero .breadcrumb a { color: var(--c-on-dark-soft); }
.page-hero .breadcrumb a:hover { color: #fff; }
.page-hero .breadcrumb li[aria-current] { color: #fff; }
.page-hero .breadcrumb li + li::before { color: rgba(255,255,255,0.45); }
.page-hero h1 { margin-bottom: 0.75rem; }
.page-hero .lead { max-width: 720px; }
/* Hero dividido: texto sobre roxo à esquerda, foto inteira à direita (rostos nunca cobertos nem cortados) */
.hero--split { min-height: 0; padding: var(--header-h) 0 0; display: block; align-items: stretch; background: var(--c-purple-700); }
.hero--split .hero__grid { display: grid; }
@media (min-width: 900px) { .hero--split .hero__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); min-height: min(62vh, 600px); } }
.hero--split .hero__text { position: relative; z-index: 2; display: flex; flex-direction: column; justify-content: center; padding: var(--hero-y) var(--gutter) clamp(2.5rem, 5vw, 4rem); padding-left: max(var(--gutter), calc((100vw - var(--container)) / 2)); }
.hero--split .hero__text .hero__stack { max-width: 560px; }
.hero--split .hero__text .hero__stack h1 { font-size: var(--fs-h1); }
.hero--split .hero__text::after { content: ""; position: absolute; right: -1px; top: 0; bottom: 0; width: 120px; background: linear-gradient(90deg, var(--c-purple-700), transparent); z-index: 1; pointer-events: none; display: none; }
@media (min-width: 900px) { .hero--split .hero__text::after { display: block; right: -120px; } }
.hero--split .hero__photo { position: relative; overflow: hidden; aspect-ratio: 16 / 10; }
@media (min-width: 900px) { .hero--split .hero__photo { aspect-ratio: auto; } }
.hero--split .hero__photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: var(--hero-pos, 50% 25%); }
.hero--split .hero__photo::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(var(--rgb-deep),0.08), rgba(var(--rgb-deep),0.22)); pointer-events: none; }
.hero--split .hero__shape svg { right: auto; left: -14%; top: -20%; width: 46vw; opacity: 0.22; }
.hero--split .hero__photo .parallax__layer { inset: -6% 0; }
