/* ---------- Hero ---------- */
.hero {
  position: relative;
  min-height: 100svh;
  display: flex;
  align-items: center;
  background: var(--c-ink);
  color: var(--c-text-inv);
  overflow: hidden;
  padding-top: var(--header-h);
}
.hero-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.hero-mesh {
  position: absolute;
  inset: -10%;
  background:
    radial-gradient(circle at 15% 85%, rgba(var(--c-clay-rgb), 0.55), transparent 55%),
    radial-gradient(circle at 80% 20%, rgba(var(--c-amber-rgb), 0.35), transparent 50%),
    radial-gradient(circle at 50% 100%, rgba(var(--c-amber-rgb), 0.2), transparent 60%);
  filter: blur(60px);
  opacity: 0;
  transform: scale(1.15);
  transition: opacity 900ms var(--ease-out), transform 1400ms var(--ease-out);
  animation: hero-hue 18s ease-in-out infinite alternate;
  animation-play-state: paused;
}
.hero.is-live .hero-mesh { opacity: 0.85; transform: scale(1); animation-play-state: running; }
@keyframes hero-hue { from { filter: blur(60px) hue-rotate(0deg); } to { filter: blur(60px) hue-rotate(10deg); } }

.hero-grid {
  position: absolute;
  inset: 0;
  background-image:
    repeating-linear-gradient(90deg, rgba(255,255,255,0.05) 0 1px, transparent 1px 40px),
    repeating-linear-gradient(0deg, rgba(255,255,255,0.05) 0 1px, transparent 1px 40px);
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 900ms var(--ease-out) 200ms, transform 1200ms var(--ease-out) 200ms;
}
.hero.is-live .hero-grid { opacity: 0.6; transform: translateY(0); }

.hero-noise {
  position: absolute; inset: 0;
  opacity: 0.04;
  mix-blend-mode: overlay;
  pointer-events: none;
}

.hero-illustration {
  position: absolute;
  right: -4%;
  bottom: -6%;
  width: min(52vw, 620px);
  z-index: 1;
  opacity: 0.92;
}
.hero-illustration .draw-layer path {
  fill: none;
  stroke: var(--c-amber);
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.hero-illustration .fill-shape {
  clip-path: inset(100% 0 0 0);
}
.hero.is-live .hero-illustration { animation: hero-float 16s ease-in-out infinite; }
@keyframes hero-float { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-16px); } }

.hero-content {
  position: relative;
  z-index: 2;
  max-width: 760px;
}
.hero-rule {
  width: 64px;
  height: 2px;
  background: var(--c-amber);
  transform: scaleX(0);
  transform-origin: center;
  margin-bottom: var(--s-3);
  transition: transform 500ms var(--ease-out);
}
.hero.is-live .hero-rule { transform: scaleX(1); }

.hero h1 {
  font-size: var(--fs-hero);
  margin-bottom: var(--s-3);
}
.hero h1 .word { display: inline-block; overflow: hidden; vertical-align: top; }
.hero h1 .word__inner {
  display: inline-block;
  transform: translateY(110%);
  transition: transform 620ms var(--ease-out);
}
.hero.is-live h1 .word__inner { transform: translateY(0); }

.hero .lead {
  color: var(--c-text-inv-mute);
  max-width: 46ch;
  opacity: 0;
  transform: translateY(16px);
  transition: opacity 600ms var(--ease-out), transform 600ms var(--ease-out);
  transition-delay: 400ms;
}
.hero.is-live .lead { opacity: 1; transform: translateY(0); }

.hero-rotator {
  margin-top: var(--s-2);
  font-family: var(--font-display);
  font-size: 1rem;
  color: var(--c-amber);
  height: 1.4em;
  overflow: hidden;
  position: relative;
  opacity: 0;
  transition: opacity 600ms var(--ease-out) 500ms;
}
.hero.is-live .hero-rotator { opacity: 1; }
.hero-rotator span {
  position: absolute;
  inset: 0;
  transform: translateY(100%);
  transition: transform 500ms var(--ease-out);
}
.hero-rotator span.is-active { transform: translateY(0); }
.hero-rotator span.is-prev { transform: translateY(-100%); }

.hero-cta {
  display: flex;
  gap: var(--s-3);
  margin-top: var(--s-5);
  flex-wrap: wrap;
  opacity: 0;
  transform: translateY(16px);
  transition: opacity 600ms var(--ease-out) 550ms, transform 600ms var(--ease-out) 550ms;
}
.hero.is-live .hero-cta { opacity: 1; transform: translateY(0); }

.hero-trust {
  margin-top: var(--s-6);
  display: flex;
  gap: var(--s-4);
  flex-wrap: wrap;
  font-size: 0.78rem;
  color: var(--c-text-inv-mute);
  letter-spacing: 0.03em;
  opacity: 0;
  transition: opacity 600ms var(--ease-out) 650ms;
}
.hero.is-live .hero-trust { opacity: 1; }
.hero-trust span { display: inline-flex; align-items: center; gap: 0.5em; }
.hero-trust svg { width: 14px; height: 14px; color: var(--c-amber); }

.scroll-cue {
  position: absolute;
  bottom: var(--s-4);
  left: 50%;
  transform: translateX(-50%);
  width: 1px;
  height: 56px;
  background: rgba(255,255,255,0.15);
  overflow: hidden;
  opacity: 0;
  transition: opacity 600ms var(--ease-out) 900ms;
}
.hero.is-live .scroll-cue { opacity: 1; }
.scroll-cue::after {
  content: '';
  position: absolute;
  top: -20%;
  left: 0;
  width: 100%;
  height: 20%;
  background: var(--c-amber);
  animation: cue-travel 2s ease-in-out infinite;
}
@keyframes cue-travel { 0% { top: -20%; } 100% { top: 100%; } }

@media (max-width: 900px) {
  .hero-illustration { opacity: 0.35; width: 80vw; right: -20%; }
}

/* ---------- Editorial split (Sobre resumo) ---------- */
.split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--s-8);
  align-items: center;
}
.split-visual { position: relative; }
@media (max-width: 860px) {
  .split { grid-template-columns: 1fr; gap: var(--s-6); }
  .split-visual { order: -1; }
}

/* ---------- Process ---------- */
.process-list { position: relative; margin-top: var(--s-6); }
.process-line {
  position: absolute;
  left: 27px;
  top: 0;
  bottom: 0;
  width: 2px;
  background: var(--c-ink-line);
}
.process-line-fill {
  position: absolute;
  left: 0; top: 0;
  width: 2px;
  height: 0%;
  background: var(--grad-accent);
  transition: height 200ms linear;
}
.process-step {
  position: relative;
  display: flex;
  gap: var(--s-4);
  padding-block: var(--s-4);
}
.process-num {
  flex-shrink: 0;
  width: 56px; height: 56px;
  border-radius: 50%;
  background: var(--c-ink-soft);
  border: 1px solid var(--c-ink-line);
  display: flex; align-items: center; justify-content: center;
  font-family: var(--font-display);
  font-weight: 700;
  color: var(--c-amber);
  z-index: 1;
}
.process-step h3 { color: var(--c-text-inv); margin-bottom: 0.4em; }
.process-step p { color: var(--c-text-inv-mute); max-width: 56ch; }

/* ---------- CTA band ---------- */
.cta-band {
  position: relative;
  overflow: hidden;
  border-radius: var(--r-lg);
  padding: var(--s-8) var(--s-6);
  text-align: center;
  background: var(--c-ink);
  color: var(--c-text-inv);
}
.cta-band::before {
  content: '';
  position: absolute;
  inset: -20%;
  background: radial-gradient(circle at 30% 30%, rgba(var(--c-amber-rgb),0.35), transparent 55%),
              radial-gradient(circle at 80% 80%, rgba(var(--c-clay-rgb),0.4), transparent 55%);
  filter: blur(50px);
}
.cta-band > * { position: relative; z-index: 1; }
.cta-band h2 { margin-bottom: var(--s-2); }
.cta-band .cluster { justify-content: center; margin-top: var(--s-4); }

/* ---------- Testimonial placeholder ---------- */
.testimonial-invite {
  text-align: center;
  max-width: 600px;
  margin-inline: auto;
}

/* ---------- Map / address cards ---------- */
.address-card { padding: var(--s-4); border: 1px solid var(--c-ink-line); border-radius: var(--r-md); margin-bottom: var(--s-3); }
.address-card h3 { color: var(--c-text-inv); margin-bottom: 0.5em; font-size: 1.05rem; }
.address-card p { color: var(--c-text-inv-mute); font-size: 0.92rem; }
.map-embed { border-radius: var(--r-md); overflow: hidden; border: 1px solid var(--c-ink-line); aspect-ratio: 4/3; position: relative; background: var(--c-ink-soft); }
.map-poster {
  position: absolute; inset: 0;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: var(--s-2);
  color: var(--c-text-inv-mute);
  background: var(--c-ink-soft);
}
.map-poster svg { width: 32px; height: 32px; color: var(--c-amber); }
.map-embed iframe { width: 100%; height: 100%; border: 0; display: none; }
.map-embed.is-loaded iframe { display: block; }
.map-embed.is-loaded .map-poster { display: none; }

/* ---------- Hero-lite (inner pages) ---------- */
.hero-lite { padding-top: calc(var(--header-h) + var(--s-8)); padding-bottom: var(--s-6); }
.hero-lite h1 { margin-bottom: var(--s-2); }

/* ---------- Gallery placeholder ---------- */
.gallery-note {
  border: 1px dashed rgba(16,20,26,0.2);
  border-radius: var(--r-md);
  padding: var(--s-4);
  text-align: center;
  color: var(--c-text-mute);
  font-size: 0.9rem;
}
