/* ═══════════════════════════════════════════════════════════
   Lucas Henrique Santos · Psicanálise
   Direção: "vir à luz" — a página começa na noite e amanhece
   apenas no contato.
   ═══════════════════════════════════════════════════════════ */

:root {
  --noite:  #04100C;
  --breu:   #071C16;
  --fundo:  #0B2A20;
  --verde:  #3E9A78;
  --brilho: #8FD6B4;
  --aurora: #E7F0E2;
  --tinta:  #0C2A1F;
  --nevoa:  #B8CFC2;
  --musgo:  #7FA490;
  --linha:  rgba(143, 214, 180, .14);

  --mx: 50vw;
  --my: 40vh;
  --lanterna-op: 1;

  --env: min(1120px, 90vw);
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  margin: 0;
  background: var(--noite);
  color: var(--nevoa);
  font-size: clamp(1rem, .95rem + .25vw, 1.125rem);
  line-height: 1.65;
  overflow-x: hidden;
}

section[id] { scroll-margin-top: 5rem; }

::selection { background: var(--brilho); color: var(--noite); }

:focus-visible {
  outline: 2px solid var(--brilho);
  outline-offset: 4px;
  border-radius: 4px;
}


/* ── O gradiente que atravessa a página ──────────────────── */
.pagina {
  position: relative;
  z-index: 1;
  background-image: linear-gradient(
    180deg,
    var(--noite) 0%,
    #051511 26%,
    var(--breu) 58%,
    #092419 82%,
    var(--fundo) 100%
  );
}


/* ── Atmosfera: grão + vinheta ───────────────────────────── */
.veu {
  position: fixed;
  inset: 0;
  z-index: 3;
  pointer-events: none;
  opacity: .045;
  mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}


/* ── A lanterna: o gesto-assinatura ──────────────────────── */
.lanterna {
  position: fixed;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  opacity: var(--lanterna-op);
  transition: opacity .8s ease;
  background: radial-gradient(
    280px 280px at var(--mx) var(--my),
    rgba(143, 214, 180, .085),
    rgba(143, 214, 180, .03) 45%,
    transparent 70%
  );
}


/* ── Tipografia base ─────────────────────────────────────── */
.titulo,
.hero__titulo,
.manifesto__texto,
.contato__titulo {
  font-family: Fraunces, Georgia, serif;
  font-variation-settings: 'SOFT' 60, 'WONK' 1;
  font-weight: 400;
  letter-spacing: -.015em;
  line-height: 1.06;
  text-wrap: balance;
}

.titulo {
  margin: 0;
  font-size: clamp(2.1rem, 1.5rem + 2.6vw, 3.4rem);
  color: var(--aurora);
}
.titulo--largo { max-width: 16ch; }

.sobrancelha {
  margin: 0 0 1.6rem;
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--verde);
}
.sobrancelha--dia { color: #2C6B4F; }

.prosa p { margin: 0 0 1.15rem; max-width: 58ch; }
.prosa p:last-child { margin-bottom: 0; }

.env { width: var(--env); margin-inline: auto; }

.secao { padding-block: clamp(3.75rem, 7vw, 6.5rem); }


/* ── Topo ────────────────────────────────────────────────── */
.topo {
  position: fixed;
  inset: 0 0 auto;
  z-index: 40;
  padding-block: 1.15rem;
  transition: background-color .5s ease, padding .5s ease, backdrop-filter .5s ease;
}
.topo.encolhido {
  padding-block: .7rem;
  background: rgba(4, 16, 12, .72);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--linha);
}
.topo.dia {
  background: rgba(231, 240, 225, .78);
  border-bottom-color: rgba(12, 42, 31, .12);
}

.topo__linha {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
}

.marca {
  display: inline-flex;
  align-items: center;
  gap: .6rem;
  font-size: .88rem;
  font-weight: 600;
  letter-spacing: .01em;
  color: var(--aurora);
  text-decoration: none;
  transition: color .4s ease;
}
.marca__ponto {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--brilho);
  box-shadow: 0 0 0 0 rgba(143, 214, 180, .45);
  animation: pulso 3.6s ease-out infinite;
}
@keyframes pulso {
  0%        { box-shadow: 0 0 0 0 rgba(143, 214, 180, .5); }
  60%, 100% { box-shadow: 0 0 0 12px rgba(143, 214, 180, 0); }
}

.topo__nav {
  display: none;
  gap: 2rem;
  font-size: .84rem;
}
.topo__nav a {
  position: relative;
  color: var(--musgo);
  text-decoration: none;
  padding-block: .25rem;
  transition: color .35s ease;
}
.topo__nav a::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 1px;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: right;
  transition: transform .45s cubic-bezier(.2, .7, .2, 1);
}
.topo__nav a:hover { color: var(--brilho); }
.topo__nav a:hover::after { transform: scaleX(1); transform-origin: left; }

.topo.dia .marca { color: var(--tinta); }
.topo.dia .topo__nav a { color: #4B6B58; }
.topo.dia .topo__nav a:hover { color: var(--tinta); }

@media (min-width: 900px) { .topo__nav { display: flex; } }


/* ── Botões ──────────────────────────────────────────────── */
.btn {
  --brilho-btn: 0;
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .6rem;
  padding: .95rem 1.6rem;
  border-radius: 999px;
  font-size: .92rem;
  font-weight: 600;
  letter-spacing: .01em;
  text-decoration: none;
  white-space: nowrap;
  transition: transform .35s cubic-bezier(.2, .7, .2, 1),
              box-shadow .45s ease,
              background-color .35s ease,
              color .35s ease,
              border-color .35s ease;
}
.btn:hover { transform: translateY(-2px); }
.btn:active { transform: translateY(0); }

.icone-zap { width: 1.15em; height: 1.15em; fill: currentColor; flex: none; }
.icone-seta {
  width: 1em; height: 1em; flex: none;
  transition: transform .4s cubic-bezier(.2, .7, .2, 1);
}
.btn:hover .icone-seta { transform: translateX(5px); }

/* Primário na noite: o objeto mais luminoso da tela */
.btn--luz {
  background: linear-gradient(135deg, var(--verde), #6FC79E);
  color: #04120D;
  box-shadow: 0 0 0 0 rgba(143, 214, 180, .3), 0 10px 30px -12px rgba(63, 154, 120, .8);
}
.btn--luz:hover {
  box-shadow: 0 0 34px -4px rgba(143, 214, 180, .45), 0 16px 40px -14px rgba(63, 154, 120, .9);
}

.btn--vazio {
  color: var(--nevoa);
  border: 1px solid var(--linha);
}
.btn--vazio:hover {
  color: var(--aurora);
  border-color: rgba(143, 214, 180, .4);
  background: rgba(143, 214, 180, .05);
}

.btn--fino {
  padding: .6rem 1.15rem;
  font-size: .8rem;
  color: var(--aurora);
  border: 1px solid var(--linha);
}
.btn--fino:hover {
  background: var(--brilho);
  color: var(--noite);
  border-color: var(--brilho);
}
.topo.dia .btn--fino { color: var(--tinta); border-color: rgba(12, 42, 31, .2); }
.topo.dia .btn--fino:hover { background: var(--tinta); color: var(--aurora); border-color: var(--tinta); }

/* No mobile o botão flutuante já dá conta do WhatsApp */
.topo .btn--fino { display: none; }
@media (min-width: 560px) { .topo .btn--fino { display: inline-flex; } }

/* Inversão no amanhecer: escuro sobre a luz */
.btn--noite {
  background: var(--tinta);
  color: var(--aurora);
  box-shadow: 0 14px 34px -16px rgba(12, 42, 31, .7);
}
.btn--noite:hover {
  background: #16412F;
  box-shadow: 0 20px 44px -16px rgba(12, 42, 31, .85);
}
.btn--grande {
  width: 100%;
  padding: 1.2rem 1.8rem;
  font-size: 1rem;
}


/* ══ HERO ═══════════════════════════════════════════════════ */
.hero {
  position: relative;
  min-height: 100svh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding-block: 9rem 5rem;
  overflow: hidden;
}

.hero__conteudo { position: relative; z-index: 2; }

.hero__kicker {
  opacity: 0;
  animation: sobe .9s cubic-bezier(.2, .7, .2, 1) .15s forwards;
}

.hero__titulo {
  margin: 0 0 2rem;
  font-size: clamp(2.9rem, 1.6rem + 6.6vw, 7rem);
  color: var(--aurora);
}
.hero__titulo .linha {
  display: block;
  overflow: hidden;
  padding-bottom: .08em;
  margin-bottom: -.04em;
}
.hero__titulo .linha > span {
  display: block;
  transform: translateY(105%);
  animation: entra 1.1s cubic-bezier(.16, 1, .3, 1) forwards;
}
.hero__titulo .linha:nth-child(1) > span { animation-delay: .3s; }
.hero__titulo .linha:nth-child(2) > span { animation-delay: .42s; }
.hero__titulo .linha:nth-child(3) > span { animation-delay: .54s; }

.hero__ainda {
  font-style: italic;
  font-weight: 300;
  color: var(--brilho);
}

@keyframes entra { to { transform: translateY(0); } }
@keyframes sobe  { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }

.hero__sub {
  max-width: 46ch;
  margin: 0 0 2.6rem;
  font-size: clamp(1.02rem, .95rem + .45vw, 1.28rem);
  color: var(--musgo);
}

.hero__acoes {
  display: flex;
  flex-wrap: wrap;
  gap: .9rem;
}

.hero__pe {
  position: absolute;
  left: 50%;
  bottom: 2.2rem;
  transform: translateX(-50%);
  display: none;
  flex-direction: column;
  align-items: center;
  gap: .8rem;
  z-index: 2;
}
@media (min-width: 700px) and (min-height: 640px) {
  .hero__pe { display: flex; }
}
.hero__dica {
  font-size: .66rem;
  letter-spacing: .24em;
  text-transform: uppercase;
  color: rgba(127, 164, 144, .6);
}
.hero__fio {
  width: 1px;
  height: 46px;
  background: linear-gradient(180deg, var(--brilho), transparent);
  transform-origin: top;
  animation: fio 2.6s ease-in-out infinite;
}
@keyframes fio {
  0%, 100% { transform: scaleY(.35); opacity: .35; }
  50%      { transform: scaleY(1);   opacity: 1; }
}


/* ── O não-dito: duas camadas idênticas, uma revelada pela luz ── */
.naodito {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
}
.naodito__camada {
  position: absolute;
  inset: 0;
  font-family: Fraunces, Georgia, serif;
  font-style: italic;
  font-weight: 300;
  font-size: clamp(1rem, .85rem + .7vw, 1.6rem);
  white-space: nowrap;
}
.naodito__camada--breu { color: rgba(143, 214, 180, .06); }
.naodito__camada--luz {
  color: var(--brilho);
  opacity: .85;
  -webkit-mask-image: radial-gradient(circle 200px at var(--mx) var(--my), #000 0%, rgba(0,0,0,.4) 55%, transparent 78%);
  mask-image: radial-gradient(circle 200px at var(--mx) var(--my), #000 0%, rgba(0,0,0,.4) 55%, transparent 78%);
}
.naodito i {
  position: absolute;
  transform: rotate(var(--r, 0deg));
  font-style: italic;
}

/* Sem cursor (toque), a lanterna não existe: acende a base o bastante */
@media (hover: none) {
  .naodito__camada--luz { display: none; }
  .naodito__camada--breu { color: rgba(143, 214, 180, .1); }
  .lanterna { display: none; }
}

/* Em telas estreitas, só os fragmentos ancorados à esquerda cabem */
@media (max-width: 760px) {
  .naodito i:nth-child(2),
  .naodito i:nth-child(3),
  .naodito i:nth-child(4),
  .naodito i:nth-child(5),
  .naodito i:nth-child(6),
  .naodito i:nth-child(8) { display: none; }
  .naodito__camada { font-size: 1rem; }
}


/* ══ MANIFESTO ══════════════════════════════════════════════ */
.manifesto { padding-block: clamp(3.5rem, 6.5vw, 5.5rem); }
.manifesto__texto {
  max-width: 24ch;
  margin: 0;
  font-size: clamp(1.7rem, 1.1rem + 2.4vw, 3.05rem);
  line-height: 1.22;
  color: var(--aurora);
  text-wrap: pretty;
}
.manifesto__texto em {
  font-style: italic;
  font-weight: 300;
  color: var(--brilho);
}
@media (min-width: 800px) { .manifesto__texto { max-width: 20ch; margin-left: auto; } }


/* ══ SOBRE ══════════════════════════════════════════════════ */
.sobre {
  display: grid;
  gap: clamp(2.5rem, 5vw, 5rem);
  align-items: center;
}
@media (min-width: 880px) { .sobre { grid-template-columns: 5fr 7fr; } }

.retrato { margin: 0; position: relative; }

.retrato__moldura {
  /* MOCK · Para usar a foto real, descomente e aponte o caminho:
     --foto: url('img/lucas.jpg');                                  */
  --foto: none;

  aspect-ratio: 4 / 5;
  border-radius: 14px;
  border: 1px solid var(--linha);
  background-image:
    var(--foto),
    radial-gradient(52% 34% at 50% 28%, #2E6349 0%, transparent 62%),
    radial-gradient(88% 58% at 50% 108%, #24503D 0%, transparent 68%),
    linear-gradient(180deg, #0A1F18, #0D2A21);
  background-size: cover;
  background-position: center;
  filter: brightness(.82) saturate(.85);
  transition: filter .8s ease, transform .8s cubic-bezier(.2, .7, .2, 1);
}
.retrato::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 14px;
  pointer-events: none;
  opacity: 0;
  background: radial-gradient(70% 55% at 30% 20%, rgba(143, 214, 180, .16), transparent 70%);
  transition: opacity .8s ease;
}
.retrato:hover .retrato__moldura { filter: brightness(1.08) saturate(1); transform: scale(1.012); }
.retrato:hover::after { opacity: 1; }

.retrato__legenda {
  margin-top: .8rem;
  font-size: .64rem;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: rgba(127, 164, 144, .45);
}

.assinatura {
  margin: .9rem 0 2rem;
  font-size: .82rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--musgo);
}


/* ══ ESCUTA · cartas ════════════════════════════════════════ */
.grade {
  display: grid;
  gap: 1px;
  margin-top: clamp(2.5rem, 5vw, 4rem);
  background: var(--linha);
  border: 1px solid var(--linha);
  border-radius: 16px;
  overflow: hidden;
}
@media (min-width: 640px)  { .grade { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1000px) { .grade { grid-template-columns: repeat(3, 1fr); } }

.carta {
  --x: 50%;
  --y: 50%;
  position: relative;
  padding: clamp(1.6rem, 2.4vw, 2.4rem);
  background: rgba(4, 16, 12, .35);
  transition: background-color .5s ease;
  isolation: isolate;
}
.carta::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  opacity: 0;
  background: radial-gradient(260px circle at var(--x) var(--y), rgba(143, 214, 180, .1), transparent 65%);
  transition: opacity .5s ease;
}
.carta:hover::before { opacity: 1; }
.carta:hover { background: rgba(11, 42, 32, .5); }

.carta h3 {
  margin: 0 0 .7rem;
  font-family: Fraunces, Georgia, serif;
  font-variation-settings: 'SOFT' 60, 'WONK' 1;
  font-weight: 400;
  font-size: 1.32rem;
  line-height: 1.2;
  color: var(--aurora);
  transition: color .4s ease;
}
.carta:hover h3 { color: var(--brilho); }
.carta p { margin: 0; font-size: .95rem; color: var(--musgo); }


/* ══ COMO ACONTECE ══════════════════════════════════════════ */
.modos {
  display: grid;
  gap: 1.2rem;
  margin-top: clamp(2.5rem, 5vw, 4rem);
}
@media (min-width: 780px) { .modos { grid-template-columns: 1fr 1fr; } }

.modo {
  position: relative;
  padding: clamp(1.8rem, 2.6vw, 2.6rem);
  border: 1px solid var(--linha);
  border-radius: 16px;
  background: rgba(4, 16, 12, .3);
  transition: border-color .5s ease, transform .5s cubic-bezier(.2, .7, .2, 1), background-color .5s ease;
}
.modo:hover {
  border-color: rgba(143, 214, 180, .34);
  background: rgba(11, 42, 32, .45);
  transform: translateY(-4px);
}

.modo__marca {
  display: block;
  width: 34px;
  height: 34px;
  margin-bottom: 1.4rem;
  border-radius: 50%;
  border: 1px solid var(--verde);
  background: radial-gradient(circle at 50% 50%, var(--brilho) 0%, transparent 42%);
  transition: box-shadow .6s ease, background-size .6s ease;
}
.modo__marca--online {
  border-style: dashed;
}
.modo:hover .modo__marca { box-shadow: 0 0 26px -2px rgba(143, 214, 180, .5); }

.modo h3 {
  margin: 0 0 .45rem;
  font-family: Fraunces, Georgia, serif;
  font-variation-settings: 'SOFT' 60, 'WONK' 1;
  font-weight: 400;
  font-size: 1.6rem;
  color: var(--aurora);
}
.modo__local {
  margin: 0 0 1rem;
  font-size: .74rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--verde);
}
.modo > p:last-child { margin: 0; color: var(--musgo); font-size: .96rem; }

/* Ficha da sessão */
.sessao {
  display: grid;
  gap: 1px;
  margin: 1.2rem 0 0;
  background: var(--linha);
  border: 1px solid var(--linha);
  border-radius: 16px;
  overflow: hidden;
}
@media (min-width: 560px)  { .sessao { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1000px) { .sessao { grid-template-columns: repeat(4, 1fr); } }

.sessao > div {
  padding: 1.5rem;
  background: rgba(4, 16, 12, .35);
  transition: background-color .5s ease;
}
.sessao > div:hover { background: rgba(11, 42, 32, .55); }
.sessao dt {
  font-size: .68rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--verde);
  margin-bottom: .5rem;
}
.sessao dd {
  margin: 0;
  font-family: Fraunces, Georgia, serif;
  font-variation-settings: 'SOFT' 60, 'WONK' 1;
  font-size: 1.18rem;
  color: var(--aurora);
}


/* ── Perguntas ───────────────────────────────────────────── */
.perguntas { margin-top: clamp(3.5rem, 7vw, 6rem); }

.pergunta { border-top: 1px solid var(--linha); }
.pergunta:last-child { border-bottom: 1px solid var(--linha); }

.pergunta summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  padding: 1.5rem .25rem;
  cursor: pointer;
  list-style: none;
  font-size: clamp(1.02rem, .95rem + .3vw, 1.2rem);
  color: var(--aurora);
  transition: color .4s ease, padding-left .4s ease;
}
.pergunta summary::-webkit-details-marker { display: none; }
.pergunta summary:hover { color: var(--brilho); padding-left: .8rem; }

.pergunta__mais {
  position: relative;
  flex: none;
  width: 14px;
  height: 14px;
}
.pergunta__mais::before,
.pergunta__mais::after {
  content: '';
  position: absolute;
  inset: 50% 0 auto 0;
  height: 1px;
  background: currentColor;
  transition: transform .45s cubic-bezier(.2, .7, .2, 1);
}
.pergunta__mais::after { transform: rotate(90deg); }
.pergunta[open] .pergunta__mais::after { transform: rotate(0deg); }

.pergunta .corpo {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows .5s cubic-bezier(.2, .7, .2, 1);
}
.pergunta[open] .corpo { grid-template-rows: 1fr; }
.pergunta .corpo > div { overflow: hidden; }
.pergunta .corpo p {
  margin: 0;
  padding: 0 4rem 1.8rem .25rem;
  max-width: 62ch;
  color: var(--musgo);
  font-size: .98rem;
}


/* ══ O AMANHECER ════════════════════════════════════════════ */
/* Um único gradiente atravessa "Como acontece" + contato. Como é
   um só elemento, não há emenda: a noite vira luz sem nenhuma linha.
   A primeira luz surge ainda na seção de cima e a luz plena chega
   antes do conteúdo do contato, garantindo contraste no texto. */
.crepusculo {
  position: relative;
  isolation: isolate;
  background: linear-gradient(
    180deg,
    #071B15 0%,
    #071B15 23%,
    #0A2419 32%,
    #0E2D21 40%,
    #163E2D 47%,
    #285941 53%,
    #467D5F 57%,
    #79AB8C 61%,
    #B4D4B7 64%,
    var(--aurora) 68%,
    var(--aurora) 100%
  );
}

/* No mobile o FAQ é um acordeão: abrir uma pergunta muda a altura
   de #encontro, e um degradê calibrado em percentual (pensado para
   uma altura fixa) volta a clarear no lugar errado. Em vez de caçar
   um ponto de equilíbrio que o próprio usuário pode desarmar num
   toque, o amanhecer vira um corte direto: escuro na seção de
   cima, luz plena já no início do contato. */
@media (max-width: 780px) {
  .crepusculo { background: none; }
  .contato { background: var(--aurora); }
}

/* ══ CONTATO ════════════════════════════════════════════════ */
.contato {
  position: relative;
  display: flex;
  align-items: flex-end;
  padding-block: 26vh clamp(4rem, 8vw, 7rem);
}

.contato__conteudo { position: relative; z-index: 2; }

.contato__titulo {
  margin: 0 0 clamp(2.5rem, 5vw, 4rem);
  font-size: clamp(2.4rem, 1.4rem + 4.4vw, 5rem);
  color: var(--tinta);
  max-width: 14ch;
}

.painel {
  max-width: 620px;
  padding: clamp(1.8rem, 3.5vw, 2.8rem);
  border-radius: 20px;
  border: 1px solid rgba(12, 42, 31, .1);
  background: rgba(255, 255, 255, .62);
  backdrop-filter: blur(10px);
  box-shadow: 0 30px 70px -40px rgba(12, 42, 31, .5);
}
.painel__texto {
  margin: 0 0 1.8rem;
  color: #3A5648;
  font-size: 1.02rem;
}

.painel__vias {
  list-style: none;
  margin: 2rem 0 0;
  padding: 1.6rem 0 0;
  border-top: 1px solid rgba(12, 42, 31, .1);
  display: grid;
  gap: .9rem;
}
.painel__vias li {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1.5rem;
}
.painel__vias span {
  font-size: .68rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: #6D8778;
}
.painel__vias a {
  position: relative;
  color: var(--tinta);
  font-weight: 500;
  text-decoration: none;
}
.painel__vias a::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: -2px;
  width: 100%;
  height: 1px;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: right;
  transition: transform .45s cubic-bezier(.2, .7, .2, 1);
}
.painel__vias a:hover::after { transform: scaleX(1); transform-origin: left; }


/* ══ RODAPÉ ═════════════════════════════════════════════════ */
.rodape {
  background: var(--aurora);
  color: #4B6B58;
  padding-block: 2.5rem;
  border-top: 1px solid rgba(12, 42, 31, .1);
}
.rodape__linha {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  font-size: .82rem;
}
.rodape__nome { margin: 0; font-weight: 600; color: var(--tinta); }
.rodape__nome span { font-weight: 400; color: #6D8778; }
.rodape__ano { margin: 0; }


/* ══ Botão flutuante ════════════════════════════════════════ */
.zap-flutuante {
  position: fixed;
  right: clamp(1rem, 3vw, 2rem);
  bottom: clamp(1rem, 3vw, 2rem);
  z-index: 45;
  display: grid;
  place-items: center;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--verde), #6FC79E);
  color: #04120D;
  box-shadow: 0 12px 30px -10px rgba(63, 154, 120, .8);
  opacity: 0;
  visibility: hidden;
  transform: translateY(16px) scale(.9);
  transition: opacity .5s ease, transform .5s cubic-bezier(.2, .7, .2, 1), visibility .5s, box-shadow .4s ease;
}
.zap-flutuante.visivel { opacity: 1; visibility: visible; transform: none; }
.zap-flutuante:hover { transform: scale(1.07); box-shadow: 0 0 34px -4px rgba(143, 214, 180, .55); }
.zap-flutuante svg { width: 26px; height: 26px; fill: currentColor; }


/* ══ Revelação no scroll ════════════════════════════════════ */
.rev {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity .9s cubic-bezier(.2, .7, .2, 1) var(--d, 0s),
              transform .9s cubic-bezier(.2, .7, .2, 1) var(--d, 0s);
}
.rev.visivel { opacity: 1; transform: none; }

/* Hero: as revelações do herói disparam no load, não no scroll */
.hero .rev { animation: sobe .9s cubic-bezier(.2, .7, .2, 1) var(--d, 0s) forwards; }


/* ══ Movimento reduzido ═════════════════════════════════════ */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }

  *, *::before, *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
  }

  .rev, .hero .rev { opacity: 1; transform: none; }
  .hero__titulo .linha > span { transform: none; }
  .hero__kicker { opacity: 1; }
  .lanterna { display: none; }
  .naodito__camada--luz { display: none; }
  .naodito__camada--breu { color: rgba(143, 214, 180, .1); }
}
