/* ==========================================================================
   Legado 7 — Dobras 07 (case Grupo LL Ambiental), 08 (fundador), 09 (CTA final)
   + elementos globais: barra superior, botão flutuante do WhatsApp e rodapé.
   final.js marca as entradas (.ato-in, .is-in, .legado-in) e cuida da contagem,
   do carrossel e do parallax. Sem JS ou com movimento reduzido: tudo pronto e estático.
   ========================================================================== */

:root { --topbar-h: 36px; }

/* --------------------------------------------------------------------------
   Barra superior (some ao rolar; o menu continua acessível)
   -------------------------------------------------------------------------- */
.site-header { height: auto; --tb: var(--topbar-h); }
.site-header.is-scrolled { --tb: 0px; }
.site-header__inner { height: var(--header-h); }
.topbar {
  height: var(--topbar-h); overflow: hidden;
  background: rgba(5, 4, 25, .55); border-bottom: 1px solid var(--l7-linha);
  transition: margin-top .35s var(--ease), opacity .3s var(--ease);
}
.site-header.is-scrolled .topbar { margin-top: calc(var(--topbar-h) * -1); opacity: 0; }
.topbar__inner {
  height: 100%; max-width: var(--max); margin: 0 auto; padding: 0 var(--gutter);
  display: flex; align-items: center; justify-content: flex-end; gap: 28px;
  font-size: 12px; letter-spacing: .04em; color: var(--l7-texto-suave);
}
.topbar__item { display: inline-flex; align-items: center; gap: 8px; text-decoration: none; color: inherit; transition: color .2s; }
.topbar__item svg { width: 14px; height: 14px; fill: none; stroke: var(--l7-rosa-glow); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
a.topbar__item:hover { color: #fff; }
.topbar__item--brasil { margin-right: auto; font-family: var(--l7-mono); font-size: 11px; letter-spacing: .16em; text-transform: uppercase; }
.topbar__item--brasil::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--l7-rosa-glow); box-shadow: 0 0 8px var(--l7-rosa-glow); }
.hero { padding-top: calc(var(--header-h) + var(--topbar-h) + clamp(16px, 4vh, 48px)); }
.admin-bar .hero { padding-top: calc(var(--header-h) + var(--topbar-h) + 32px + clamp(16px, 4vh, 48px)); }
@media (max-width: 1023px) {
  .js .site-nav { top: calc(var(--header-h) + var(--tb)); }
  .js .admin-bar .site-nav { top: calc(var(--header-h) + var(--tb) + 32px); }
}
@media (max-width: 782px) { .js .admin-bar .site-nav { top: calc(var(--header-h) + var(--tb) + 46px); } }
@media (max-width: 860px) { .hero { padding-top: calc(var(--header-h) + var(--topbar-h) + 24px); } }
@media (max-width: 640px) {
  :root { --topbar-h: 32px; }
  .topbar__inner { gap: 16px; }
  .topbar__item span { display: none; }
  .topbar__item--brasil { font-size: 10px; letter-spacing: .12em; }
  .topbar__item svg { width: 16px; height: 16px; }
}

/* --------------------------------------------------------------------------
   Botão flutuante do WhatsApp
   -------------------------------------------------------------------------- */
.wa-flutuante {
  position: fixed; right: max(18px, env(safe-area-inset-right)); bottom: max(18px, env(safe-area-inset-bottom)); z-index: 60;
  display: grid; place-items: center; width: 58px; height: 58px; border-radius: 50%;
  background: linear-gradient(145deg, var(--l7-rosa-glow), var(--l7-magenta)); color: #fff;
  box-shadow: 0 12px 30px -8px rgba(230, 11, 79, .7), inset 0 1px 0 rgba(255, 255, 255, .25);
  transition: transform .3s var(--ease), box-shadow .3s var(--ease), opacity .4s var(--ease);
}
.wa-flutuante svg { width: 28px; height: 28px; }
.wa-flutuante:hover { transform: translateY(-3px) scale(1.04); box-shadow: 0 16px 36px -8px rgba(255, 26, 94, .85); }
.wa-flutuante:focus-visible { outline: 2px solid #fff; outline-offset: 4px; }
.js .wa-flutuante:not(.is-visivel) { opacity: 0; transform: translateY(16px); pointer-events: none; }

/* --------------------------------------------------------------------------
   Base comum das novas dobras
   -------------------------------------------------------------------------- */
.case, .fundador, .contato { position: relative; isolation: isolate; overflow: clip; padding: clamp(88px, 12vh, 140px) var(--gutter) clamp(72px, 10vh, 120px); }
.case__inner, .fundador__inner, .contato__inner { max-width: var(--max); margin: 0 auto; }
.case__eyebrow, .fundador__eyebrow, .contato__eyebrow {
  display: inline-flex; align-items: center; gap: 12px; margin: 0 0 20px;
  font-family: var(--l7-mono); font-size: 12px; letter-spacing: .22em; text-transform: uppercase; color: var(--l7-rosa-glow);
}
.case__eyebrow span, .fundador__eyebrow span, .contato__eyebrow span { width: 28px; height: 1px; background: currentColor; box-shadow: 0 0 8px currentColor; }
.case__eyebrow b { color: rgba(255, 255, 255, .3); font-weight: 400; }
.case em, .fundador em, .contato em { font-style: normal; color: var(--l7-rosa-glow); }

/* --------------------------------------------------------------------------
   DOBRA 07 — Case Grupo LL Ambiental
   -------------------------------------------------------------------------- */
.case { background: radial-gradient(50% 40% at 85% 10%, rgba(164, 5, 78, .16), transparent 70%), linear-gradient(180deg, var(--l7-abismo), #070b28 40%, var(--l7-abismo)); }
.case::before { content: ""; position: absolute; left: 50%; top: 0; width: min(560px, 70%); height: 1px; transform: translateX(-50%); background: linear-gradient(90deg, transparent, rgba(255, 26, 94, .55), transparent); }
.case__ato + .case__ato { margin-top: clamp(80px, 12vh, 140px); }
.case__ato-rotulo { margin: 0 0 16px; font-family: var(--l7-mono); font-size: 11px; letter-spacing: .24em; text-transform: uppercase; color: var(--l7-texto-suave); display: flex; align-items: center; gap: 12px; }
.case__ato-rotulo::after { content: ""; flex: 0 0 56px; height: 1px; background: rgba(255, 255, 255, .2); }

/* Ato 01 */
.case__ato--frustracao { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: clamp(32px, 5vw, 80px); align-items: center; }
.case__logo { display: block; width: 190px; height: auto; margin: 0 0 26px; }
.case__title { margin: 0 0 34px; font-weight: 800; letter-spacing: -.03em; line-height: 1.06; font-size: clamp(30px, 2.8vw + 12px, 56px); text-wrap: balance; }
.case__dor { margin: 0; max-width: 52ch; font-size: clamp(16px, .4vw + 14px, 19px); line-height: 1.6; color: var(--l7-texto-suave); }
.case__dor--forte { margin-top: 16px; font-size: clamp(18px, .6vw + 14px, 23px); font-weight: 700; line-height: 1.4; color: #fff; padding-left: 18px; border-left: 2px solid rgba(255, 255, 255, .25); }
.case__virada { margin: 22px 0 0; display: inline-flex; align-items: center; gap: 12px; font-size: clamp(17px, .5vw + 14px, 21px); font-weight: 700; color: var(--l7-rosa-glow); }
.case__virada::before { content: ""; width: 34px; height: 2px; background: var(--l7-rosa-glow); box-shadow: 0 0 10px var(--l7-rosa-glow); }

.case__painel-frustracao {
  position: relative; display: grid; gap: 18px; padding: 26px;
  border-radius: 24px; border: 1px solid rgba(255, 255, 255, .1);
  background: linear-gradient(160deg, rgba(14, 24, 62, .7), rgba(5, 4, 25, .92));
}
.pf__grade { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.tile { position: relative; aspect-ratio: 4 / 5; border-radius: 12px; overflow: hidden; display: flex; flex-direction: column; justify-content: flex-end; gap: 6px; padding: 12px; transition: filter 1s var(--ease), opacity 1s var(--ease), transform 1s var(--ease); }
.tile i { display: block; height: 5px; border-radius: 3px; background: rgba(255, 255, 255, .55); }
.tile i:nth-child(2) { width: 70%; opacity: .7; } .tile i:nth-child(3) { width: 45%; opacity: .5; }
.tile--0 { background: linear-gradient(150deg, #24357e, #0b1236); }
.tile--1 { background: linear-gradient(150deg, #a4054e, #3b0a3f); }
.tile--2 { background: linear-gradient(150deg, #256fa1, #0c1f4a); }
.tile--3 { background: linear-gradient(150deg, #411651, #a4054e); }
.tile--4 { background: linear-gradient(150deg, #0e5a7a, #1b2ba8); }
.tile--5 { background: linear-gradient(150deg, #5b032a, #e60b4f); }
.pf__funil { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 12px; padding-top: 6px; border-top: 1px dashed rgba(255, 255, 255, .14); }
.pf__rotulo { font-family: var(--l7-mono); font-size: 10.5px; letter-spacing: .14em; text-transform: uppercase; color: var(--l7-texto-suave); }
.pf__trilho { position: relative; height: 6px; border-radius: 3px; background: rgba(255, 255, 255, .08); overflow: hidden; }
.pf__trilho i { position: absolute; left: 0; top: 0; bottom: 0; width: 8%; border-radius: inherit; background: rgba(255, 255, 255, .35); }
.pf__vazio { width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; font-weight: 800; color: var(--l7-texto-suave); border: 1px dashed rgba(255, 255, 255, .3); }
.pf__status { position: absolute; top: 18px; right: 18px; padding: 6px 12px; border-radius: 999px; font-family: var(--l7-mono); font-size: 10.5px; letter-spacing: .14em; text-transform: uppercase; background: rgba(5, 4, 25, .85); border: 1px solid rgba(255, 26, 94, .5); color: var(--l7-rosa-glow); }
.pf__site { position: absolute; left: 38px; top: 38px; padding: 5px 10px; border-radius: 6px; font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; background: #fff; color: var(--l7-abismo); }
/* estado final (estático): ações interrompidas, só o site permanece */
.tile:not(.tile--0) { filter: grayscale(1); opacity: .22; }

/* Ato 02 */
.case__mudanca { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(28px, 4vw, 72px); align-items: start; }
.case__h3 { margin: 0; font-weight: 800; letter-spacing: -.025em; line-height: 1.1; font-size: clamp(26px, 2vw + 12px, 44px); text-wrap: balance; }
.case__mudanca-texto p { margin: 0 0 14px; font-size: 16px; line-height: 1.65; color: var(--l7-texto-suave); }
.case__destaque { font-size: clamp(19px, .6vw + 15px, 24px) !important; font-weight: 700; line-height: 1.35 !important; color: #fff !important; }
.case__direcao { display: flex; align-items: center; gap: 0; margin: clamp(36px, 5vh, 56px) 0 0; }
.dir__no { flex: none; padding: 12px 18px; border-radius: 999px; border: 1px solid rgba(255, 26, 94, .45); background: rgba(14, 24, 62, .8); font-size: 12.5px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; white-space: nowrap; }
.dir__no--fim { background: var(--l7-rosa); border-color: var(--l7-rosa-glow); box-shadow: 0 0 24px rgba(230, 11, 79, .5); }
.dir__linha { flex: 1; height: 2px; min-width: 24px; background: linear-gradient(90deg, rgba(255, 26, 94, .3), var(--l7-rosa-glow)); transform-origin: left; }

.case__pilares { margin-top: clamp(48px, 7vh, 72px); }
.case__pilares-topo { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 18px; }
.case__pilares-titulo { margin: 0; font-size: clamp(18px, .5vw + 15px, 22px); font-weight: 700; }
.case__setas { display: flex; gap: 8px; }
.case__seta { width: 46px; height: 46px; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .2); background: rgba(255, 255, 255, .03); color: #fff; font-size: 18px; cursor: pointer; transition: border-color .2s, background .2s; }
.case__seta:hover { border-color: var(--l7-rosa-glow); background: rgba(255, 26, 94, .1); }
.case__seta:focus-visible, .case__trilho:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
.case__trilho {
  list-style: none; margin: 0; padding: 4px 2px 14px; display: grid; grid-auto-flow: column; grid-auto-columns: min(360px, 84%);
  gap: 16px; overflow-x: auto; scroll-snap-type: x mandatory; overscroll-behavior-x: contain; scrollbar-width: thin; scrollbar-color: rgba(255, 26, 94, .5) transparent;
}
.case-pilar {
  scroll-snap-align: start; position: relative; padding: 24px 24px 26px; border-radius: 20px;
  border: 1px solid rgba(255, 255, 255, .1); background: linear-gradient(165deg, rgba(14, 24, 62, .75), rgba(5, 4, 25, .92));
}
.case-pilar__num { display: block; font-size: 44px; font-weight: 800; line-height: 1; letter-spacing: -.03em; color: rgba(255, 26, 94, .85); }
.case-pilar__nome { margin: 12px 0 0; font-family: var(--l7-mono); font-size: 12px; font-weight: 500; letter-spacing: .2em; text-transform: uppercase; color: var(--l7-rosa-glow); }
.case-pilar__frase { margin: 10px 0 0; font-size: 17px; font-weight: 700; line-height: 1.35; }
.case-pilar__texto { margin: 10px 0 0; font-size: 14.5px; line-height: 1.6; color: var(--l7-texto-suave); }

/* Atos 03 e 04: o mapa acompanha a expansão e o legado */
.case__ato--expansao { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(32px, 5vw, 80px); align-items: start; }
.case__ato--legado { margin-top: clamp(64px, 12vh, 140px); }
.case__h3--climax { font-size: clamp(28px, 2.4vw + 12px, 50px); }
.case__indicador { margin: 28px 0 0; display: flex; align-items: baseline; gap: 14px; line-height: .85; }
.case__indicador-num { font-size: clamp(110px, 10vw + 30px, 220px); font-weight: 800; letter-spacing: -.05em; background: linear-gradient(180deg, #fff 25%, var(--l7-rosa-glow)); -webkit-background-clip: text; background-clip: text; color: transparent; font-variant-numeric: tabular-nums; min-width: 2ch; }
.case__indicador-unid { font-size: clamp(28px, 2vw + 14px, 48px); font-weight: 800; text-transform: uppercase; letter-spacing: .02em; }
.case__indicador-legenda { margin: 16px 0 0; font-size: 17px; font-weight: 700; }
.case__ressalva { margin: 12px 0 0; max-width: 48ch; font-size: 13.5px; line-height: 1.55; color: var(--l7-texto-suave); }
.case__logo-franquias { display: block; width: min(280px, 70%); height: auto; margin: 6px 0 22px; }
.case__legado-texto { margin: 0; max-width: 50ch; font-size: clamp(17px, .5vw + 14px, 20px); line-height: 1.6; color: #DDE0EE; }
.case__mapa { position: sticky; top: calc(var(--header-h) + 24px); }
.mapa-br { display: block; width: 100%; height: auto; overflow: visible; }
.uf { fill: rgba(230, 11, 79, .5); stroke: rgba(255, 140, 175, .8); stroke-width: .7; stroke-linejoin: round; transition: fill .3s; }
.uf:hover { fill: rgba(255, 26, 94, .8); }
.rede-linha { fill: none; stroke: #fff; stroke-width: 1.6; stroke-dasharray: 1; stroke-dashoffset: 0; opacity: .75; stroke-linecap: round; }
.rede-no { fill: #fff; stroke: var(--l7-rosa-glow); stroke-width: 3; filter: drop-shadow(0 0 8px var(--l7-rosa-glow)); }

.case__final {
  margin: clamp(64px, 10vh, 120px) 0 0; display: flex; align-items: center; justify-content: center; gap: .35em; flex-wrap: wrap; text-align: center;
  font-size: clamp(36px, 4.6vw + 10px, 92px); font-weight: 800; letter-spacing: -.035em; line-height: 1.05;
}
.case__final-l7 { display: inline-grid; place-items: center; width: 1.1em; height: 1.1em; border-radius: 24%; background: var(--l7-navy); border: 1px solid rgba(255, 26, 94, .5); box-shadow: 0 0 40px rgba(230, 11, 79, .45); }
.case__final-l7 svg { width: 62%; fill: var(--l7-rosa-glow); }
.case__final em { position: relative; text-shadow: 0 0 40px rgba(255, 26, 94, .45); }
.case__final em::after { content: ""; position: absolute; left: 0; right: .2em; bottom: -.04em; height: .06em; background: linear-gradient(90deg, var(--l7-magenta), var(--l7-rosa-glow)); border-radius: 3px; transform-origin: left; }

.case__continuidade { margin: clamp(64px, 10vh, 110px) auto 0; max-width: 860px; text-align: center; padding: 36px clamp(20px, 4vw, 48px); border-radius: 24px; border: 1px solid rgba(255, 26, 94, .3); background: rgba(255, 26, 94, .04); }
.case__continuidade p { margin: 16px 0 0; font-size: 16px; line-height: 1.7; color: var(--l7-texto-suave); }
.case__cta { margin-top: clamp(48px, 7vh, 72px); display: grid; justify-items: center; gap: 22px; text-align: center; }
.case__cta p { margin: 0; max-width: 30ch; font-size: clamp(21px, 1vw + 15px, 30px); font-weight: 700; line-height: 1.3; text-wrap: balance; }

/* --------------------------------------------------------------------------
   DOBRA 08 — Luan Grofoski
   -------------------------------------------------------------------------- */
.fundador { background: linear-gradient(180deg, var(--l7-abismo), #060a24 60%, var(--l7-abismo)); }
.fundador__fundo { position: absolute; z-index: -1; right: -6%; top: -4%; width: 58%; max-width: 900px; opacity: .13; transform: translateY(var(--py, 0px)); filter: grayscale(.4); pointer-events: none;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 40%), linear-gradient(transparent, #000 20%, #000 70%, transparent); -webkit-mask-composite: source-in; mask-image: linear-gradient(90deg, transparent, #000 40%); }
.fundador__fundo img { display: block; width: 100%; height: auto; }
.fundador__topo { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: clamp(32px, 5vw, 80px); align-items: center; }
.fundador__foto { position: relative; margin: 0; }
.fundador__foto::before { content: ""; position: absolute; inset: 10% 4% 0; z-index: -1; border-radius: 28px; background: radial-gradient(60% 60% at 50% 35%, rgba(230, 11, 79, .35), rgba(7, 30, 65, .6) 60%, transparent 85%); }
.fundador__foto::after { content: "Fundador · Legado 7"; position: absolute; left: -6px; top: 50%; transform: rotate(-90deg) translateX(50%); transform-origin: left top; font-family: var(--l7-mono); font-size: 10.5px; letter-spacing: .3em; text-transform: uppercase; color: var(--l7-texto-suave); white-space: nowrap; }
.fundador__foto img { display: block; width: 100%; height: auto; -webkit-mask-image: linear-gradient(#000 78%, transparent 99%); mask-image: linear-gradient(#000 78%, transparent 99%); filter: drop-shadow(-12px -6px 30px rgba(230, 11, 79, .18)); }
.fundador__title { margin: 0; font-weight: 800; letter-spacing: -.03em; line-height: 1.05; font-size: clamp(30px, 2.6vw + 12px, 54px); text-wrap: balance; }
.fundador__assinatura { margin: 28px 0 0; display: grid; gap: 6px; padding: 18px 0 18px 20px; border-left: 2px solid var(--l7-rosa); }
.fundador__nome { margin: 0; display: inline-flex; align-items: center; gap: 10px; font-size: clamp(24px, 1vw + 18px, 32px); font-weight: 800; letter-spacing: -.01em; }
.fundador__selo svg { display: block; width: 26px; height: 26px; }
.fundador__selo svg path:first-child { fill: var(--l7-rosa); filter: drop-shadow(0 0 6px rgba(255, 26, 94, .6)); }
.fundador__selo svg .check { fill: none; stroke: #fff; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.fundador__cargo { margin: 0; font-family: var(--l7-mono); font-size: 12px; letter-spacing: .2em; text-transform: uppercase; color: var(--l7-texto-suave); }
.fundador__insta { justify-self: start; margin-top: 6px; display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px; border-radius: 999px; border: 1px solid rgba(255, 255, 255, .18); color: #fff; text-decoration: none; font-weight: 600; font-size: 14px; transition: border-color .2s, background .2s; }
.fundador__insta:hover { border-color: var(--l7-rosa-glow); background: rgba(255, 26, 94, .08); }
.fundador__insta svg { width: 16px; height: 16px; fill: none; stroke: var(--l7-rosa-glow); stroke-width: 1.8; }
.fundador__relato { position: relative; margin: 44px 0 0; }
.fundador__relato::before { content: "“"; position: absolute; left: -4px; top: -40px; font-size: 96px; font-weight: 800; color: rgba(255, 26, 94, .3); line-height: 1; }
.fundador__relato p { margin: 0 0 12px; font-size: 15.5px; line-height: 1.7; color: var(--l7-texto-suave); }
.fundador__relato strong { color: #fff; }

.fundador__marcos { list-style: none; margin: clamp(56px, 8vh, 88px) 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(16px, 3vw, 40px); }
.fundador__marcos li { position: relative; padding-top: 26px; }
.fundador__marcos li::before { content: ""; position: absolute; left: 0; right: 0; top: 6px; height: 1px; background: linear-gradient(90deg, var(--l7-rosa-glow), rgba(255, 255, 255, .12)); transform-origin: left; }
.fundador__marcos li::after { content: ""; position: absolute; left: 0; top: 0; width: 13px; height: 13px; border-radius: 50%; background: var(--l7-abismo); border: 2px solid var(--l7-rosa-glow); box-shadow: 0 0 10px var(--l7-rosa-glow); }
.marco__quando { display: block; font-size: clamp(30px, 2vw + 14px, 46px); font-weight: 800; letter-spacing: -.03em; line-height: 1; }
.marco__titulo { margin: 10px 0 0; font-family: var(--l7-mono); font-size: 12px; font-weight: 500; letter-spacing: .2em; text-transform: uppercase; color: var(--l7-rosa-glow); }
.fundador__marcos p { margin: 8px 0 0; font-size: 14.5px; line-height: 1.6; color: var(--l7-texto-suave); }

.fundador__filosofia { margin-top: clamp(56px, 8vh, 88px); display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: clamp(28px, 4vw, 64px); align-items: center; padding: clamp(28px, 4vw, 48px); border-radius: 28px; border: 1px solid rgba(255, 255, 255, .1); background: linear-gradient(160deg, rgba(14, 24, 62, .7), rgba(5, 4, 25, .92)); }
.fundador__conceito { margin: 0; font-family: var(--l7-mono); font-size: 12px; letter-spacing: .28em; text-transform: uppercase; color: var(--l7-rosa-glow); }
.fundador__frase { margin: 14px 0 0; font-size: clamp(26px, 2vw + 12px, 44px); font-weight: 800; letter-spacing: -.025em; line-height: 1.15; text-wrap: balance; }
.fundador__tec p { margin: 0; font-size: 15px; line-height: 1.65; color: var(--l7-texto-suave); }
.fundador__chips { list-style: none; margin: 16px 0 22px; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.fundador__chips li { padding: 7px 12px; border-radius: 999px; border: 1px solid rgba(255, 26, 94, .35); background: rgba(255, 26, 94, .06); font-size: 12.5px; font-weight: 600; }

/* --------------------------------------------------------------------------
   DOBRA 09 — CTA final
   -------------------------------------------------------------------------- */
.contato { text-align: center; background: radial-gradient(60% 55% at 50% 40%, rgba(164, 5, 78, .28), transparent 70%), radial-gradient(50% 40% at 50% 100%, rgba(4, 31, 87, .5), transparent 70%), var(--l7-abismo); }
.contato__fundo { position: absolute; inset: 0; z-index: -1; display: grid; place-items: center; pointer-events: none; }
.contato__fundo span { grid-area: 1 / 1; width: min(90vw, 1100px); aspect-ratio: 1; border-radius: 34%; border: 1px solid rgba(255, 26, 94, .12); }
.contato__fundo span:nth-child(2) { width: min(68vw, 820px); border-color: rgba(255, 26, 94, .18); }
.contato__fundo span:nth-child(3) { width: min(46vw, 560px); border-color: rgba(255, 26, 94, .26); }
.contato__title { margin: 0 auto; max-width: 18ch; font-weight: 800; letter-spacing: -.035em; line-height: 1.03; font-size: clamp(34px, 4vw + 12px, 80px); text-wrap: balance; }
.contato__lead { margin: 24px auto 0; max-width: 58ch; font-size: clamp(16px, .4vw + 14px, 19px); line-height: 1.65; color: var(--l7-texto-suave); }
.contato__acoes { margin-top: 36px; display: flex; flex-wrap: wrap; justify-content: center; gap: 14px; }
.btn--grande { min-height: 64px; padding: 20px 32px; font-size: 14px; }
.contato__brasil { margin: clamp(56px, 8vh, 96px) auto 0; max-width: 760px; display: grid; grid-template-columns: 170px 1fr; align-items: center; gap: 28px; text-align: left; padding: 24px 28px; border-radius: 22px; border: 1px solid rgba(255, 255, 255, .1); background: rgba(5, 4, 25, .6); }
.contato__mapa { width: 100%; height: auto; overflow: visible; }
.contato__ufs path { fill: rgba(31, 46, 110, .55); stroke: rgba(255, 26, 94, .4); stroke-width: 1; }
.contato__ponto { fill: #fff; stroke: var(--l7-rosa-glow); stroke-width: 4; }
.contato__onda { fill: none; stroke: var(--l7-rosa-glow); stroke-width: 3; opacity: 0; transform-box: fill-box; transform-origin: center; }
.contato__brasil-titulo { margin: 0; font-size: clamp(20px, .8vw + 15px, 26px); font-weight: 800; letter-spacing: -.01em; }
.contato__brasil p { margin: 8px 0 0; font-size: 14.5px; line-height: 1.6; color: var(--l7-texto-suave); }

/* --------------------------------------------------------------------------
   Rodapé
   -------------------------------------------------------------------------- */
.site-footer { position: relative; padding: clamp(56px, 8vh, 88px) var(--gutter) 28px; background: #03020f; border-top: 1px solid var(--l7-linha); }
.site-footer__inner { max-width: var(--max); margin: 0 auto; display: grid; grid-template-columns: minmax(0, 1.5fr) repeat(3, minmax(0, 1fr)); gap: clamp(28px, 4vw, 56px); }
.site-footer__logo { display: block; width: 150px; }
.site-footer__logo img { width: 100%; height: auto; }
.site-footer__slogan { margin: 16px 0 0; font-family: var(--l7-mono); font-size: 12px; letter-spacing: .22em; text-transform: uppercase; color: var(--l7-rosa-glow); }
.site-footer p { margin: 10px 0 0; font-size: 14px; line-height: 1.6; color: var(--l7-texto-suave); }
.site-footer__marca p:last-child { max-width: 38ch; }
.site-footer__titulo { margin: 0 0 14px !important; font-family: var(--l7-mono); font-size: 11px !important; letter-spacing: .22em; text-transform: uppercase; color: #fff !important; }
.site-footer ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.site-footer a { color: var(--l7-texto-suave); text-decoration: none; font-size: 14px; transition: color .2s; }
.site-footer a:hover { color: #fff; }
.site-footer__contato a { display: inline-flex; align-items: center; gap: 10px; }
.site-footer__contato svg { width: 16px; height: 16px; flex: none; fill: none; stroke: var(--l7-rosa-glow); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.site-footer__contato svg[fill="currentColor"] { fill: var(--l7-rosa-glow); stroke: none; }
.site-footer__base { max-width: var(--max); margin: clamp(40px, 6vh, 64px) auto 0; padding-top: 22px; border-top: 1px solid var(--l7-linha); display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 24px; }
.site-footer__base p { margin: 0; font-size: 12.5px; }
.site-footer__assinatura a { color: #fff; font-weight: 700; }
.site-footer__assinatura a:hover { color: var(--l7-rosa-glow); }

/* --------------------------------------------------------------------------
   Movimento (só sem preferência por movimento reduzido)
   -------------------------------------------------------------------------- */
@media (prefers-reduced-motion: no-preference) {
  /* entradas genéricas */
  .js .case__ato, .js .case__continuidade, .js .case__cta, .js .case__final { opacity: 0; transform: translateY(26px); transition: opacity .9s var(--ease), transform .9s var(--ease); }
  .js .case__ato.ato-in, .js .case__continuidade.ato-in, .js .case__cta.ato-in, .js .case__final.ato-in { opacity: 1; transform: none; }

  /* Ato 01: tudo parece funcionar… até as ações serem interrompidas */
  .js .tile:not(.tile--0) { filter: none; opacity: 1; }
  .js .pf__status, .js .pf__site { opacity: 0; transform: scale(.9); transition: opacity .6s var(--ease), transform .6s var(--ease); }
  .js .case__ato--frustracao.ato-in .pf__trilho i { animation: cf-tenta 2.4s ease-in-out .4s 2 both; }
  .js .case__ato--frustracao.fim .tile:not(.tile--0) { filter: grayscale(1); opacity: .22; transform: scale(.97); }
  .js .case__ato--frustracao.fim .tile:nth-child(2) { transition-delay: .1s; } .js .case__ato--frustracao.fim .tile:nth-child(3) { transition-delay: .2s; }
  .js .case__ato--frustracao.fim .tile:nth-child(4) { transition-delay: .3s; } .js .case__ato--frustracao.fim .tile:nth-child(5) { transition-delay: .4s; } .js .case__ato--frustracao.fim .tile:nth-child(6) { transition-delay: .5s; }
  .js .case__ato--frustracao.fim .pf__status { opacity: 1; transform: none; transition-delay: .7s; }
  .js .case__ato--frustracao.fim .pf__site { opacity: 1; transform: none; transition-delay: 1s; }

  /* Ato 02: a direção se forma */
  .js .dir__linha { transform: scaleX(0); transition: transform .8s var(--ease); }
  .js .case__ato--mudanca.ato-in .dir__linha { transform: none; transition-delay: .5s; }
  .js .case__ato--mudanca.ato-in .dir__linha:nth-of-type(4) { transition-delay: 1.1s; }

  /* Ato 03: os estados acendem; Ato 04: a rede se desenha */
  .js .uf { fill: rgba(31, 46, 110, .6); stroke: rgba(255, 26, 94, .3); }
  .js .case__ato--expansao.ato-in .uf { animation: cf-uf .6s var(--ease) calc(.4s + var(--o) * 70ms) both; }
  .js .rede-linha { stroke-dashoffset: 1; opacity: 0; transition: stroke-dashoffset 1.2s var(--ease), opacity .4s; }
  .js .rede-no { opacity: 0; transform: scale(0); transform-box: fill-box; transform-origin: center; transition: opacity .4s, transform .5s cubic-bezier(.2, 1.4, .4, 1); }
  .js .case.legado-in .rede-linha { stroke-dashoffset: 0; opacity: .75; transition-delay: calc(.3s + var(--i) * .15s); }
  .js .case.legado-in .rede-no { opacity: 1; transform: none; transition-delay: calc(var(--i) * .12s); }
  .js .case.legado-in .rede-no { animation: cf-pulsa 2.4s ease-in-out 1.6s infinite; }

  .js .case__final em::after { transform: scaleX(0); transition: transform .9s var(--ease) .5s; }
  .js .case__final.ato-in em::after { transform: none; }

  /* fundador: entrada e marcos */
  .js .fundador__foto, .js .fundador__texto { opacity: 0; transform: translateY(24px); transition: opacity 1s var(--ease), transform 1s var(--ease); }
  .js .fundador__texto { transition-delay: .15s; }
  .js .fundador.is-in .fundador__foto, .js .fundador.is-in .fundador__texto { opacity: 1; transform: none; }
  .js .fundador__marcos li::before { transform: scaleX(0); transition: transform 1s var(--ease); }
  .js .fundador.marcos-in .fundador__marcos li::before { transform: none; }
  .js .fundador.marcos-in .fundador__marcos li:nth-child(2)::before { transition-delay: .25s; }
  .js .fundador.marcos-in .fundador__marcos li:nth-child(3)::before { transition-delay: .5s; }

  /* CTA final: estrutura em movimento sutil */
  .contato__fundo span { animation: cf-gira 60s linear infinite; }
  .contato__fundo span:nth-child(2) { animation-duration: 44s; animation-direction: reverse; }
  .contato__fundo span:nth-child(3) { animation-duration: 30s; }
  .contato__onda { animation: cf-onda 2.8s ease-out infinite; }
  .contato__onda--2 { animation-delay: 1.4s; }
  .js .contato__title, .js .contato__lead, .js .contato__acoes { opacity: 0; transform: translateY(20px); transition: opacity .9s var(--ease), transform .9s var(--ease); }
  .js .contato__lead { transition-delay: .15s; } .js .contato__acoes { transition-delay: .3s; }
  .js .contato.is-in .contato__title, .js .contato.is-in .contato__lead, .js .contato.is-in .contato__acoes { opacity: 1; transform: none; }
}
@keyframes cf-tenta { 0% { width: 8%; } 50% { width: 34%; background: rgba(255, 255, 255, .5); } 100% { width: 8%; } }
@keyframes cf-uf { from { fill: rgba(31, 46, 110, .6); stroke: rgba(255, 26, 94, .3); } 50% { fill: rgba(255, 120, 160, .9); } to { fill: rgba(230, 11, 79, .5); stroke: rgba(255, 140, 175, .8); } }
@keyframes cf-pulsa { 50% { transform: scale(1.35); } }
@keyframes cf-gira { to { transform: rotate(360deg); } }
@keyframes cf-onda { from { opacity: .8; transform: scale(1); } to { opacity: 0; transform: scale(4.5); } }

/* --------------------------------------------------------------------------
   Responsivo
   -------------------------------------------------------------------------- */
@media (max-width: 1100px) {
  .site-footer__inner { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fundador__filosofia { grid-template-columns: 1fr; }
}
@media (max-width: 900px) {
  .case__ato--frustracao, .case__mudanca, .case__ato--expansao, .fundador__topo { grid-template-columns: 1fr; }
  .case__mapa { position: relative; top: auto; order: 2; max-width: 520px; width: 100%; justify-self: center; }
  .case__expansao-col { display: contents; }
  .case__expansao-texto { order: 1; } .case__ato--legado { order: 3; margin-top: 24px; }
  .case__direcao { flex-direction: column; align-items: stretch; gap: 0; }
  .dir__no { text-align: center; white-space: normal; }
  .dir__linha { flex: none; width: 2px; height: 22px; min-width: 0; align-self: center; transform-origin: top; background: linear-gradient(180deg, rgba(255, 26, 94, .3), var(--l7-rosa-glow)); }
  .fundador__foto { max-width: 420px; width: 100%; justify-self: center; }
  .fundador__foto::after { display: none; }
  .fundador__fundo { width: 110%; right: -40%; opacity: .08; }
  .fundador__marcos { grid-template-columns: 1fr; gap: 24px; }
}
@media (max-width: 1023px) and (prefers-reduced-motion: no-preference) {
  .js .case__ato--mudanca.ato-in .dir__linha { transform: none; }
}
@media (max-width: 640px) {
  .site-footer__inner { grid-template-columns: 1fr; }
  .site-footer { padding-bottom: 96px; } /* espaço para o botão flutuante */
  .contato__brasil { grid-template-columns: 1fr; justify-items: center; text-align: center; }
  .contato__mapa { max-width: 150px; }
  .contato__acoes .btn { width: 100%; }
  .case__cta .btn { width: 100%; }
  .pf__site { left: 30px; top: 30px; }
}
