/* ==========================================================================
   V7brasil · estilo do site
   Conceito "prancheta": fundo tinta contínuo com grade de projeto, rótulos
   técnicos em mono, tipografia condensada grande e o amarelo do logo.
   Archivo (larguras condensadas, eco do DIN da marca) + IBM Plex Mono.
   ========================================================================== */

:root {
  --tinta: #0B0C0E;
  --tinta-2: #131518;
  --grafite: #1B1E22;
  --grafite-2: #24282D;
  --papel: #F2EFE9;
  --papel-2: #E6E1D8;
  --txt: #121315;
  --mut: #5B5F66;
  --linha: rgba(18, 19, 21, .13);
  --txt-e: #F2F0EB;
  --mut-e: #9EA2A9;
  --linha-e: rgba(255, 255, 255, .1);
  --grade: rgba(255, 255, 255, .035);
  --amarelo: #FFAF00;
  --amarelo-2: #FFC234;
  --raio: 22px;
  --raio-p: 14px;
  --folha: clamp(24px, 4vw, 48px);
  --f: "Archivo", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --mono: "IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;
  --ease: cubic-bezier(.2, .7, .2, 1);
  --wrap: 1320px;
  --gut: clamp(16px, 4vw, 48px);
  --hdr: 76px;
}

/* ---------- base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: calc(var(--hdr) + 16px); background: var(--tinta); }
body {
  margin: 0; font-family: var(--f); font-size: 17px; line-height: 1.6; color: var(--txt-e);
  background: var(--tinta); -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; overflow-x: clip;
}
img, svg { display: block; max-width: 100%; }
img { height: auto; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; }
h1, h2, h3, h4, p { margin: 0; }
ul, ol { margin: 0; padding: 0; list-style: none; }
::selection { background: var(--amarelo); color: var(--tinta); }
:focus-visible { outline: 2px solid var(--amarelo); outline-offset: 3px; border-radius: 6px; }

.wrap { width: 100%; max-width: calc(var(--wrap) + var(--gut) * 2); margin-inline: auto; padding-inline: var(--gut); }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.pular { position: fixed; left: 16px; top: -80px; z-index: 200; background: var(--amarelo); color: var(--tinta); padding: 10px 16px; border-radius: 10px; font-weight: 600; }
.pular:focus { top: 16px; }
.ic { width: 20px; height: 20px; flex: none; }
main, .rod { position: relative; z-index: 1; }

@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-stopped { overflow: hidden; }

/* grade de prancheta, fixa atrás de tudo */
.grade { position: fixed; inset: 0; z-index: 0; pointer-events: none; }
.grade .wrap { display: grid; grid-template-columns: repeat(6, 1fr); height: 100%; }
.grade i { border-left: 1px solid var(--grade); }
.grade i:last-child { border-right: 1px solid var(--grade); }

/* ---------- tipografia ---------- */
.tit {
  font-stretch: 74%; font-weight: 650; letter-spacing: -.03em; line-height: .96; word-spacing: .04em;
  font-size: clamp(40px, 5.6vw, 88px); text-wrap: balance;
}
.tit--g { font-size: clamp(44px, 6.4vw, 104px); }
.tit--xl { font-size: clamp(48px, 8.4vw, 136px); line-height: .9; letter-spacing: -.035em; }
.tit em { font-style: normal; color: var(--amarelo); }
.folha .tit em, .sec--papel .tit em, .sec--branco .tit em {
  color: inherit; -webkit-box-decoration-break: clone; box-decoration-break: clone;
  background: linear-gradient(transparent 58%, rgba(255, 175, 0, .7) 58%, rgba(255, 175, 0, .7) 90%, transparent 90%);
}

.olho { display: inline-flex; align-items: center; gap: 10px; font-family: var(--mono); font-size: 12px; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; color: var(--mut-e); line-height: 1.4; }
.olho__ponto { width: 8px; height: 8px; border-radius: 50%; background: var(--amarelo); box-shadow: 0 0 0 4px rgba(255, 175, 0, .18); }

/* rótulo técnico: [01] TEXTO ———— */
.rot { display: flex; align-items: center; gap: 12px; width: 100%; font-family: var(--mono); font-size: 12px; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; color: var(--mut-e); }
.rot__n { color: var(--amarelo); }
.rot__n::before { content: "["; opacity: .55; margin-right: 2px; }
.rot__n::after { content: "]"; opacity: .55; margin-left: 2px; }
.rot__linha { flex: 1; height: 1px; background: var(--linha-e); position: relative; }
.rot__linha::after { content: ""; position: absolute; right: 0; top: -3px; width: 7px; height: 7px; border-right: 1px solid var(--mut-e); border-top: 1px solid var(--mut-e); opacity: .5; }
.folha .rot, .sec--papel .rot, .sec--branco .rot { color: var(--mut); }
.folha .rot__n, .sec--papel .rot__n, .sec--branco .rot__n { color: #A86F00; }
.folha .rot__linha, .sec--papel .rot__linha, .sec--branco .rot__linha { background: var(--linha); }

/* ---------- seções ---------- */
.sec { position: relative; padding-block: clamp(64px, 7vw, 112px); }
/* duas seções escuras seguidas não somam os dois respiros */
:is(.sec, .topo):not(.sec--papel, .sec--branco) + .sec:not(.sec--papel, .sec--branco) { padding-top: clamp(8px, 1.5vw, 24px); }
.sec--curta { padding-block: clamp(48px, 6vw, 88px); }
.folha, .sec--papel, .sec--branco {
  position: relative; z-index: 2; margin-inline: clamp(6px, 1vw, 14px); border-radius: var(--folha);
  background: var(--papel); color: var(--txt); padding-block: clamp(64px, 7vw, 110px);
}
.sec--branco { background: #fff; }
.sec--papel + .sec--papel, .sec--branco + .sec--papel, .sec--papel + .sec--branco { margin-top: clamp(6px, 1vw, 14px); }

.cab { display: flex; flex-direction: column; gap: 24px; max-width: 900px; margin-bottom: clamp(44px, 6vw, 80px); }
.cab .rot { max-width: 100%; }
.cab__lead { font-size: clamp(17px, 1.4vw, 20px); color: var(--mut-e); max-width: 620px; }
.folha .cab__lead, .sec--papel .cab__lead, .sec--branco .cab__lead { color: var(--mut); }
.cab--centro { margin-inline: auto; align-items: center; text-align: center; }
.cab-linha { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px 40px; margin-bottom: clamp(44px, 6vw, 80px); }
.cab-linha .cab { margin-bottom: 0; }

/* ---------- botões ---------- */
.btn {
  position: relative; display: inline-flex; align-items: center; gap: 12px; height: 56px; padding: 0 9px 0 26px; border-radius: 999px; overflow: hidden;
  font-weight: 600; font-size: 16px; letter-spacing: -.005em; white-space: nowrap; isolation: isolate;
  transition: color .35s var(--ease), border-color .35s;
}
.btn::before { content: ""; position: absolute; inset: 0; z-index: -1; border-radius: inherit; transform: translateY(101%); transition: transform .45s var(--ease); }
.btn:hover::before { transform: none; }
.btn .ic { width: 38px; height: 38px; padding: 10px; border-radius: 50%; transition: transform .45s var(--ease); }
.btn:hover .ic { transform: rotate(-45deg); }
.btn--amarelo { background: var(--amarelo); color: var(--tinta); }
.btn--amarelo::before { background: #fff; }
.btn--amarelo .ic { background: var(--tinta); color: var(--amarelo); }
.btn--linha { border: 1px solid rgba(255, 255, 255, .24); color: var(--txt-e); }
.btn--linha::before { background: #fff; }
.btn--linha:hover { color: var(--tinta); border-color: #fff; }
.btn--linha .ic { background: rgba(255, 255, 255, .1); }
.btn--escuro { background: var(--tinta); color: #fff; }
.btn--escuro::before { background: #2a2e34; }
.btn--escuro .ic { background: var(--amarelo); color: var(--tinta); }
.btn--claro { background: #fff; color: var(--tinta); }
.btn--claro::before { background: var(--amarelo); }
.btn--claro .ic { background: var(--tinta); color: #fff; }
.btn--linha-escura { border: 1px solid rgba(14, 15, 17, .3); color: var(--tinta); }
.btn--linha-escura::before { background: var(--tinta); }
.btn--linha-escura:hover { color: #fff; }
.btn--linha-escura .ic { background: rgba(14, 15, 17, .08); }
.btn--p { height: 44px; padding-left: 18px; gap: 10px; font-size: 15px; }
.btn--p .ic { width: 30px; height: 30px; padding: 7px; }
.btn--todo { width: 100%; justify-content: space-between; }

.link-seta { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; border-bottom: 1px solid currentColor; padding-bottom: 3px; }
.link-seta .ic { width: 18px; height: 18px; transition: transform .3s var(--ease); }
.link-seta:hover .ic { transform: translateX(4px); }

/* ---------- abertura (só na primeira visita da sessão, home) ---------- */
.intro { display: none; }
html.com-intro .intro {
  position: fixed; inset: 0; z-index: 300; display: grid; place-items: center; background: var(--tinta); color: var(--txt-e);
  animation: intro-sai .9s cubic-bezier(.7, 0, .2, 1) 1.5s forwards;
}
.intro__in { display: grid; justify-items: center; gap: 8px; }
.intro__in img { width: 64px; margin-bottom: 18px; animation: intro-pulsa 1.4s var(--ease) both; }
.intro__n { font-stretch: 70%; font-weight: 700; font-size: clamp(72px, 12vw, 160px); line-height: .85; letter-spacing: -.03em; font-variant-numeric: tabular-nums; }
.intro__n b { font-weight: inherit; color: var(--amarelo); }
.intro__rot { font-family: var(--mono); font-size: 12px; letter-spacing: .3em; text-transform: uppercase; color: var(--mut-e); }
.intro__barra { display: block; width: min(320px, 60vw); height: 2px; margin-top: 22px; background: var(--linha-e); position: relative; overflow: hidden; }
.intro__barra::after { content: ""; position: absolute; inset: 0; background: var(--amarelo); transform-origin: left; animation: intro-barra 1.3s var(--ease) .1s both; }
@keyframes intro-sai { to { clip-path: inset(0 0 100% 0); visibility: hidden; } }
@keyframes intro-pulsa { from { opacity: 0; transform: scale(.6) rotate(-12deg); } }
@keyframes intro-barra { from { transform: scaleX(0); } }

/* ---------- header ---------- */
.hdr { position: fixed; inset: 0 0 auto; z-index: 50; color: var(--txt-e); transition: transform .5s var(--ease); }
.hdr::before {
  content: ""; position: absolute; inset: 0; background: rgba(11, 12, 14, .72);
  -webkit-backdrop-filter: blur(16px) saturate(140%); backdrop-filter: blur(16px) saturate(140%);
  border-bottom: 1px solid var(--linha-e); opacity: 0; transition: opacity .35s;
}
.hdr.is-solido::before { opacity: 1; }
.hdr__in { position: relative; display: flex; align-items: center; gap: 28px; height: var(--hdr); }
.hdr__logo img { height: 40px; width: auto; }
.hdr__nav { display: flex; gap: 2px; margin-left: auto; padding: 4px; border-radius: 999px; border: 1px solid var(--linha-e); background: rgba(255, 255, 255, .03); }
.hdr__nav a { padding: 7px 15px; border-radius: 999px; font-size: 14.5px; font-weight: 500; color: rgba(242, 240, 235, .76); transition: color .2s, background-color .2s; }
.hdr__nav a:hover { color: #fff; }
.hdr__nav a[aria-current] { color: var(--tinta); background: var(--amarelo); }
.hdr__acoes { display: flex; align-items: center; gap: 16px; }
.hdr__portal { display: inline-flex; align-items: center; gap: 8px; font-size: 15px; font-weight: 500; color: rgba(242, 240, 235, .78); transition: color .2s; }
.hdr__portal:hover { color: var(--amarelo); }
.hdr__portal .ic { width: 18px; height: 18px; }
.hdr__menu { display: none; position: relative; width: 46px; height: 46px; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .2); }
.hdr__menu i { position: absolute; left: 14px; right: 14px; height: 1.6px; background: currentColor; transition: transform .35s var(--ease); }
.hdr__menu i:nth-of-type(1) { top: 19px; }
.hdr__menu i:nth-of-type(2) { top: 25px; }
.hdr__menu[aria-expanded="true"] i:nth-of-type(1) { transform: translateY(3px) rotate(45deg); }
.hdr__menu[aria-expanded="true"] i:nth-of-type(2) { transform: translateY(-3px) rotate(-45deg); }
.menu { position: fixed; inset: 0; z-index: -1; background: var(--tinta); padding-top: var(--hdr); clip-path: inset(0 0 100% 0); visibility: hidden; transition: clip-path .6s cubic-bezier(.7, 0, .2, 1), visibility .6s; }
.menu.is-aberto { clip-path: inset(0); visibility: visible; }
.menu__in { display: flex; flex-direction: column; justify-content: space-between; gap: 32px; height: 100%; padding-block: 24px 40px; overflow-y: auto; }
.menu__links a { display: flex; align-items: baseline; gap: 16px; padding: 12px 0; border-bottom: 1px solid var(--linha-e); font-size: clamp(34px, 8vw, 56px); font-stretch: 74%; font-weight: 640; letter-spacing: -.02em; line-height: 1.05; }
.menu__n { font-family: var(--mono); font-size: 12px; color: var(--amarelo); }
.menu__pe { display: grid; gap: 14px; color: var(--mut-e); }
.menu__pe a { display: flex; align-items: center; gap: 10px; }
.menu-aberto .hdr::before { opacity: 0; }

/* ---------- hero (home) ---------- */
.hero { --s: 0; position: relative; z-index: 1; min-height: max(100svh, 680px); overflow: hidden; background: var(--tinta); display: flex; }
.hero__planta { position: absolute; inset: 0 -14% 0 22%; pointer-events: none; animation: aparece 1.6s var(--ease) .3s both; }
html.com-intro .hero__planta { animation-delay: 1.9s; }
.plano { position: absolute; inset: -10%; display: grid; place-items: center; perspective: 1800px; }
.plano__cena {
  width: min(1100px, 100%);
  transform: rotateX(calc(56deg - var(--s) * 24deg)) rotateZ(calc(-34deg + var(--s) * 30deg)) scale(calc(1 + var(--s) * .5)) translateY(calc(var(--s) * -6%));
  will-change: transform;
}
.planta { width: 100%; height: auto; overflow: visible; }
.planta__rua { fill: none; stroke: rgba(255, 255, 255, .09); stroke-width: 1; stroke-dasharray: 6 9; }
.planta__lago { fill: #0e1820; stroke: rgba(150, 190, 220, .28); stroke-width: 1.2; }
.planta__parque circle, .planta__parque path { fill: none; stroke: rgba(255, 255, 255, .14); stroke-width: 1.2; }
.planta__parque circle:first-child { fill: #111316; }
.lt { fill: rgba(255, 255, 255, .025); stroke: rgba(255, 255, 255, .17); stroke-width: 1; transition: fill .7s var(--ease), stroke .7s; }
.lt.v { fill: var(--amarelo); stroke: #FFD267; animation: vende .7s var(--ease); }
@keyframes vende { from { fill: #fff; } }
.planta__stand { fill: var(--amarelo); transform-box: fill-box; transform-origin: center; animation: stand 2.2s ease-out infinite; }
@keyframes stand { 0% { stroke: rgba(255, 175, 0, .6); stroke-width: 0; } 100% { stroke: rgba(255, 175, 0, 0); stroke-width: 40; } }
.hero__veu {
  position: absolute; inset: 0; pointer-events: none;
  background:
    linear-gradient(90deg, var(--tinta) 8%, rgba(11, 12, 14, .7) 34%, transparent 62%),
    linear-gradient(0deg, var(--tinta) 0%, transparent 32%),
    linear-gradient(180deg, rgba(11, 12, 14, .8) 0%, transparent 18%),
    radial-gradient(45% 50% at 70% 45%, rgba(255, 175, 0, .14), transparent 70%);
}
.hero__in { position: relative; z-index: 2; display: flex; flex-direction: column; justify-content: space-between; gap: 32px; padding-top: calc(var(--hdr) + 32px); padding-bottom: 40px; }
.hero__sup { display: flex; justify-content: space-between; align-items: center; gap: 16px; }
.hero__coord { font-family: var(--mono); font-size: 11.5px; letter-spacing: .12em; text-transform: uppercase; color: var(--mut-e); }
.hero__tit {
  font-stretch: 70%; font-weight: 700; font-size: clamp(64px, 11.6vw, 196px); line-height: .84; letter-spacing: -.045em; word-spacing: .03em;
  translate: 0 calc(var(--s) * -18%); margin-top: auto;
}
.hero__tit .l { display: block; overflow: hidden; padding-bottom: .04em; }
.hero__tit .l > span { display: block; animation: linha 1.1s var(--ease) both; }
.hero__tit .l:nth-child(2) > span { animation-delay: .08s; }
.hero__tit .l:nth-child(3) > span { animation-delay: .16s; }
html.com-intro .hero__tit .l > span { animation-delay: 1.7s; }
html.com-intro .hero__tit .l:nth-child(2) > span { animation-delay: 1.78s; }
html.com-intro .hero__tit .l:nth-child(3) > span { animation-delay: 1.86s; }
.hero__tit em { font-style: normal; color: var(--amarelo); }
@keyframes linha { from { transform: translateY(105%); } }
.hero__base { display: flex; justify-content: space-between; align-items: flex-end; gap: 32px; }
.hero__txt { display: flex; flex-direction: column; gap: 24px; max-width: 640px; animation: sobe 1s var(--ease) .35s both; }
html.com-intro .hero__txt { animation-delay: 2s; }
.hero__lead { font-size: clamp(17px, 1.5vw, 21px); color: rgba(242, 240, 235, .82); }
.hero__botoes { display: flex; flex-wrap: wrap; gap: 12px; }
.hero__rolar { position: absolute; left: 50%; bottom: 22px; z-index: 3; width: 26px; height: 42px; margin-left: -13px; border: 1px solid rgba(255, 255, 255, .3); border-radius: 20px; }
.hero__rolar span { position: absolute; left: 50%; top: 8px; width: 3px; height: 8px; margin-left: -1.5px; border-radius: 3px; background: var(--amarelo); animation: rolar 1.8s var(--ease) infinite; }
@keyframes rolar { 0% { transform: translateY(0); opacity: 1; } 80% { transform: translateY(14px); opacity: 0; } 100% { opacity: 0; } }
@keyframes sobe { from { opacity: 0; translate: 0 24px; } }
@keyframes aparece { from { opacity: 0; } }

.pcard {
  position: relative; flex: none; width: 340px; padding: 18px; animation: sobe 1s var(--ease) .5s both;
  background: rgba(19, 21, 24, .7); -webkit-backdrop-filter: blur(18px); backdrop-filter: blur(18px);
  border: 1px solid var(--linha-e); border-radius: var(--raio); box-shadow: 0 30px 60px -20px rgba(0, 0, 0, .65);
}
html.com-intro .pcard { animation-delay: 2.15s; }
.pcard__topo, .pcard__num { transition: opacity .3s, translate .3s var(--ease); }
.pcard.troca .pcard__topo, .pcard.troca .pcard__num { opacity: 0; translate: 0 6px; }
.pcard__topo { display: flex; align-items: center; gap: 12px; }
.pcard__logo { flex: none; width: 68px; height: 44px; border-radius: 9px; overflow: hidden; background: #fff; }
.pcard__logo img { width: 100%; height: 100%; object-fit: contain; }
.pcard__nome { font-weight: 600; font-size: 16px; line-height: 1.2; }
.pcard__local { font-size: 13px; color: var(--mut-e); }
.pcard__num { display: flex; align-items: baseline; gap: 12px; margin-top: 16px; }
.pcard__num b { font-stretch: 70%; font-weight: 700; font-size: 54px; line-height: .9; letter-spacing: -.025em; color: var(--amarelo); font-variant-numeric: tabular-nums; }
.pcard__num span { font-size: 14px; line-height: 1.3; color: var(--mut-e); }
.pcard__barra { height: 6px; margin-top: 14px; border-radius: 9px; overflow: hidden; background: rgba(255, 255, 255, .09); }
.pcard__barra i { display: block; height: 100%; width: calc(var(--p, 0) * 1%); border-radius: inherit; background: var(--amarelo); }
.pcard__rod { display: flex; align-items: center; gap: 8px; margin-top: 14px; font-family: var(--mono); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--mut-e); }
.pcard__vivo { width: 7px; height: 7px; border-radius: 50%; background: #3DDC84; animation: vivo 2s infinite; }
@keyframes vivo { 0% { box-shadow: 0 0 0 0 rgba(61, 220, 132, .55); } 100% { box-shadow: 0 0 0 8px rgba(61, 220, 132, 0); } }

/* ---------- números ---------- */
.hud { position: relative; z-index: 1; border-block: 1px solid var(--linha-e); background: var(--tinta); }
.nums { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); color: var(--txt-e); }
.num { position: relative; padding: 30px 24px 34px; border-left: 1px solid var(--linha-e); }
.num:last-child { border-right: 1px solid var(--linha-e); }
.num__i { position: absolute; top: 12px; right: 14px; font-family: var(--mono); font-size: 11px; color: var(--mut-e); opacity: .6; }
.num__v { display: block; font-stretch: 70%; font-weight: 650; font-size: clamp(44px, 5vw, 76px); line-height: 1; letter-spacing: -.025em; white-space: nowrap; }
.num__v b { font-weight: inherit; font-variant-numeric: tabular-nums; }
.num__v span { color: var(--amarelo); font-size: .58em; letter-spacing: -.01em; }
.num__r { position: relative; display: flex; align-items: center; gap: 8px; margin-top: 12px; font-size: 15px; color: var(--mut-e); }
.num__dica { position: relative; width: 20px; height: 20px; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .3); font-family: var(--mono); font-size: 11px; line-height: 18px; text-align: center; color: var(--mut-e); }
.num__dica::after {
  content: attr(data-dica); position: absolute; left: 50%; bottom: calc(100% + 10px); width: 240px; translate: -50% 4px; z-index: 5;
  padding: 12px 14px; border-radius: 12px; background: #fff; color: var(--tinta); font-family: var(--f); font-size: 14px;
  line-height: 1.45; text-align: left; box-shadow: 0 16px 40px -12px rgba(0, 0, 0, .5); opacity: 0; pointer-events: none; transition: opacity .2s, translate .2s;
}
.num__dica:hover::after, .num__dica:focus-visible::after { opacity: 1; translate: -50% 0; }

/* ---------- manifesto ---------- */
.manif { position: relative; z-index: 1; padding-block: clamp(80px, 10vw, 150px); }
.manif .rot { margin-bottom: clamp(32px, 4vw, 56px); }
.manif__txt { font-stretch: 74%; font-weight: 650; font-size: clamp(40px, 6.6vw, 112px); line-height: .98; letter-spacing: -.03em; word-spacing: .04em; max-width: 1240px; }
.manif__txt .w { color: rgba(242, 240, 235, .14); transition: color .5s var(--ease); }
.manif__txt .w.on { color: var(--txt-e); }
.manif__txt .w--d.on { color: var(--amarelo); }

/* ---------- faixas cruzadas ---------- */
.cruz { position: relative; z-index: 2; height: clamp(300px, 30vw, 400px); overflow: hidden; display: grid; place-items: center; }
.cruz__faixa { position: absolute; left: -5%; right: -5%; }
.cruz__faixa--txt { background: var(--amarelo); color: var(--tinta); rotate: 4deg; padding: 14px 0; translate: 0 -78px; }
.cruz__trilho { display: flex; width: max-content; white-space: nowrap; animation: corre 40s linear infinite reverse; }
.cruz__trilho span { font-stretch: 70%; font-weight: 700; font-size: clamp(28px, 3.4vw, 48px); letter-spacing: -.01em; text-transform: uppercase; padding-right: .3em; }
.cruz__faixa--logos { background: #fff; color: var(--txt); rotate: -3deg; padding: 12px 0 14px; translate: 0 52px; box-shadow: 0 30px 60px -20px rgba(0, 0, 0, .6); }
.cruz__rot { position: absolute; left: 6%; top: -30px; padding: 6px 12px; border-radius: 999px; background: var(--tinta); color: var(--txt-e); font-family: var(--mono); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; }
.marcas__trilho ul { display: flex; width: max-content; animation: corre 70s linear infinite; }
.marcas__trilho:hover ul { animation-play-state: paused; }
.marcas__trilho li { flex: none; width: 140px; height: 90px; display: grid; place-items: center; overflow: hidden; }
.marcas__trilho img { width: 120px; height: 90px; object-fit: cover; filter: grayscale(1); opacity: .8; transition: filter .3s, opacity .3s; }
.marcas__trilho li:hover img { filter: none; opacity: 1; }
@keyframes corre { to { transform: translateX(-50%); } }

/* ---------- jornada: percurso horizontal ---------- */
.jor { position: relative; z-index: 1; }
.jor__fixo { position: sticky; top: 0; height: 100vh; height: 100svh; display: flex; flex-direction: column; justify-content: center; gap: clamp(24px, 4vh, 48px); overflow: hidden; padding-top: var(--hdr); }
.jor__cab { display: grid; gap: 22px; }
.jor__rota { display: flex; align-items: center; gap: 16px; font-family: var(--mono); font-size: 11.5px; letter-spacing: .12em; text-transform: uppercase; color: var(--mut-e); }
.jor__rota i { flex: 1; height: 2px; background: var(--linha-e); position: relative; }
.jor__rota b { position: absolute; inset: 0; background: var(--amarelo); transform-origin: left; transform: scaleX(0); }
.jor__trilho { display: flex; gap: clamp(16px, 2vw, 28px); width: max-content; padding-inline: max(var(--gut), calc((100vw - var(--wrap)) / 2)); will-change: transform; }
.jor__painel {
  position: relative; flex: none; width: min(68vw, 880px); min-height: min(62vh, 560px); padding: clamp(28px, 3.4vw, 52px);
  display: flex; gap: clamp(20px, 3vw, 48px); border: 1px solid var(--linha-e); border-radius: var(--raio); background: rgba(19, 21, 24, .82);
  -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); transition: border-color .5s, background-color .5s;
}
.jor__painel.is-on { border-color: rgba(255, 175, 0, .45); }
.jor__painel--abre { width: min(56vw, 760px); flex-direction: column; justify-content: center; gap: 24px; border: 0; background: none; -webkit-backdrop-filter: none; backdrop-filter: none; padding-left: 0; }
.jor__lead { font-size: clamp(17px, 1.4vw, 20px); color: var(--mut-e); max-width: 520px; }
.jor__dica { display: inline-flex; align-items: center; gap: 10px; font-family: var(--mono); font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: var(--amarelo); }
.jor__dica .ic { animation: empurra 1.6s var(--ease) infinite; }
@keyframes empurra { 50% { transform: translateX(6px); } }
.jor__num { flex: none; font-stretch: 62%; font-weight: 700; font-size: clamp(120px, 16vw, 240px); line-height: .78; letter-spacing: -.05em; color: transparent; -webkit-text-stroke: 1.5px rgba(255, 175, 0, .75); transition: color .6s; }
.jor__painel.is-on .jor__num { color: var(--amarelo); }
.jor__corpo { display: flex; flex-direction: column; min-width: 0; flex: 1; }
.jor__fase { font-family: var(--mono); font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--amarelo); }
.jor__perg { margin-top: 14px; font-stretch: 76%; font-weight: 650; font-size: clamp(30px, 3.2vw, 50px); line-height: 1; letter-spacing: -.025em; }
.jor__sols { display: grid; margin-top: auto; padding-top: 28px; }
.jor__sol { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 16px; align-items: start; padding: 20px 0; border-top: 1px solid var(--linha-e); transition: padding .35s var(--ease); }
.jor__sol:hover { padding-left: 8px; }
.jor__ic { width: 46px; height: 46px; border-radius: 13px; display: grid; place-items: center; background: rgba(255, 175, 0, .12); color: var(--amarelo); transition: background-color .3s, color .3s; }
.jor__sol:hover .jor__ic { background: var(--amarelo); color: var(--tinta); }
.jor__ic .ic { width: 22px; height: 22px; }
.jor__txt strong { display: block; font-size: 18px; font-weight: 600; line-height: 1.25; letter-spacing: -.01em; }
.jor__txt span { display: block; margin-top: 6px; font-size: 15px; line-height: 1.5; color: var(--mut-e); }
.jor__seta { color: var(--mut-e); margin-top: 4px; transition: transform .3s var(--ease), color .3s; }
.jor__sol:hover .jor__seta { color: var(--amarelo); transform: translateX(4px); }

/* ---------- ecossistema (heptágono) ---------- */
.eco-sec { position: relative; z-index: 1; overflow-x: clip; }
.eco-sec__fixo { position: relative; padding-block: clamp(96px, 12vw, 160px); }
.eco-sec--pin .eco-sec__fixo { position: sticky; top: 0; height: 100vh; height: 100svh; display: flex; align-items: center; padding-block: calc(var(--hdr) + 8px) 8px; overflow: hidden; }
.eco-sec + .folha { margin-top: clamp(12px, 1.5vw, 24px); }
.eco-sec--pin .eco-sec__fixo > .wrap { width: 100%; }
.eco-sec__fixo::before { content: ""; position: absolute; right: -6%; top: 10%; width: 60%; height: 80%; background: radial-gradient(closest-side, rgba(255, 175, 0, .1), transparent); pointer-events: none; }
.eco-sec__grid { position: relative; display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); gap: clamp(32px, 5vw, 80px); align-items: center; }
.eco-sec .cab { margin-bottom: 32px; }
.eco-sec .tit { font-size: clamp(40px, 4.8vw, 76px); }
.eco__painel { min-height: 150px; padding: 6px 0 6px 24px; border-left: 2px solid var(--amarelo); }
.eco__painel.troca > * { animation: entra .5s var(--ease); }
@keyframes entra { from { opacity: 0; translate: 0 8px; } }
.eco__cont { font-family: var(--mono); font-size: 13px; color: var(--mut-e); }
.eco__cont b { font-weight: 500; color: var(--amarelo); }
.eco__tit { margin-top: 10px; font-stretch: 78%; font-weight: 640; font-size: clamp(26px, 2.4vw, 36px); letter-spacing: -.02em; line-height: 1.08; }
.eco__txt { margin-top: 10px; max-width: 460px; color: var(--mut-e); }
.eco__chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 26px; }
.eco__chips button { padding: 7px 12px; border: 1px solid var(--linha-e); border-radius: 999px; font-size: 13px; color: var(--mut-e); transition: border-color .25s, color .25s, background-color .25s; }
.eco__chips button:hover { border-color: var(--amarelo); color: #fff; }
.eco__chips button[aria-pressed="true"] { border-color: var(--amarelo); background: var(--amarelo); color: var(--tinta); }
.eco { padding-inline: clamp(0px, 9vw, 132px); }
.eco__fig { position: relative; width: min(100%, 480px); aspect-ratio: 1; margin-inline: auto; }
@media (min-width: 901px) and (max-height: 820px) {
  .eco-sec--pin .eco__chips { display: none; }
  .eco-sec--pin .eco__fig { width: min(100%, 480px, calc(100svh - var(--hdr) - 150px)); }
  .eco-sec--pin .cab { gap: 16px; margin-bottom: 24px; }
}
.eco__svg { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.eco__anel { fill: none; stroke: rgba(255, 255, 255, .1); stroke-width: 1; }
.eco__anel--1 { fill: rgba(255, 255, 255, .015); stroke: rgba(255, 255, 255, .16); }
.eco__perim { fill: none; stroke: var(--amarelo); stroke-width: 2; stroke-dasharray: 1; stroke-dashoffset: var(--perim, 1); stroke-linejoin: round; transition: stroke-dashoffset .2s linear; }
.eco__raio { stroke: rgba(255, 255, 255, .08); stroke-width: 1; transition: stroke .4s; }
.eco__raio.is-on { stroke: var(--amarelo); stroke-width: 1.6; }
.eco__centro { position: absolute; left: 50%; top: 50%; width: 19%; translate: -50% -50%; filter: drop-shadow(0 10px 30px rgba(255, 175, 0, .3)); }
.eco__no { position: absolute; left: var(--x); top: var(--y); translate: -50% -50%; }
.eco__pt { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; background: var(--tinta); border: 1px solid rgba(255, 255, 255, .28); font-family: var(--mono); font-size: 12px; color: var(--mut-e); transition: background-color .3s, border-color .3s, color .3s, box-shadow .3s; }
.eco__no:hover .eco__pt { border-color: var(--amarelo); color: #fff; }
.eco__no.is-feito .eco__pt { border-color: var(--amarelo); color: var(--amarelo); }
.eco__no[aria-pressed="true"] .eco__pt { background: var(--amarelo); border-color: var(--amarelo); color: var(--tinta); box-shadow: 0 0 0 9px rgba(255, 175, 0, .16); }
.eco__rot { position: absolute; top: 50%; width: max-content; max-width: 132px; translate: 0 -50%; font-size: 14px; font-weight: 500; line-height: 1.25; color: var(--mut-e); transition: color .3s; }
.eco__no[aria-pressed="true"] .eco__rot, .eco__no:hover .eco__rot { color: #fff; }
.eco__no[data-lado$="dir"] .eco__rot { left: calc(100% + 12px); text-align: left; }
.eco__no[data-lado$="esq"] .eco__rot { right: calc(100% + 12px); text-align: right; }
.eco__no[data-lado="topo"] .eco__rot { top: auto; bottom: calc(100% + 10px); left: 50%; translate: -50% 0; text-align: center; max-width: 200px; }

/* ---------- grade de lotes (waffle: cada quadrado = 1%) ---------- */
.waffle { display: grid; grid-template-columns: repeat(10, 1fr); gap: 3px; width: 92px; flex: none; aspect-ratio: 1; }
.waffle i { border-radius: 1.5px; background: rgba(255, 255, 255, .09); transition: background-color .35s var(--ease); }
.waffle i.on { background: var(--amarelo); }
.waffle--g { width: clamp(200px, 22vw, 300px); gap: 5px; }
.waffle--g i { border-radius: 3px; }

/* ---------- resultados (palco) ---------- */
.res__grid { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: clamp(20px, 3vw, 40px); align-items: stretch; }
.res__lista { display: grid; align-content: start; border-top: 1px solid var(--linha); }
.res__item { position: relative; display: grid; grid-template-columns: 112px minmax(0, 1fr); gap: 16px; align-items: center; width: 100%; padding: 18px 12px 18px 0; border-bottom: 1px solid var(--linha); text-align: left; transition: padding .35s var(--ease), background-color .3s; }
.res__item:hover { padding-left: 10px; }
.res__item[aria-pressed="true"] { padding-left: 16px; background: #fff; }
.res__n { font-stretch: 68%; font-weight: 700; font-size: 48px; line-height: .9; letter-spacing: -.03em; color: rgba(14, 15, 17, .28); transition: color .3s; }
.res__item[aria-pressed="true"] .res__n, .res__item:hover .res__n { color: var(--tinta); }
.res__info strong { display: block; font-size: 18px; font-weight: 600; line-height: 1.25; }
.res__info span { display: block; font-size: 14px; color: var(--mut); }
.res__barra { position: absolute; left: 0; bottom: -1px; height: 2px; width: calc(var(--p) * 1%); background: var(--amarelo); transform-origin: left; transform: scaleX(0); transition: transform .8s var(--ease); }
.res__item[aria-pressed="true"] .res__barra { transform: none; }
.res__palco { position: relative; display: flex; flex-direction: column; gap: 28px; padding: clamp(24px, 3.4vw, 48px); border-radius: var(--raio); background: var(--tinta); color: var(--txt-e); overflow: hidden; }
.res__palco::before { content: ""; position: absolute; right: -20%; top: -30%; width: 70%; height: 90%; background: radial-gradient(closest-side, rgba(255, 175, 0, .16), transparent); pointer-events: none; }
.res__palco.troca .res__id, .res__palco.troca .res__num, .res__palco.troca .res__logo { animation: entra .5s var(--ease); }
.res__topo { position: relative; display: flex; align-items: center; gap: 16px; }
.res__logo { flex: none; width: 104px; height: 66px; padding: 6px; border-radius: 12px; background: #fff; }
.res__logo img { width: 100%; height: 100%; object-fit: contain; }
.res__id { flex: 1; min-width: 0; }
.res__local { font-family: var(--mono); font-size: 11.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--mut-e); }
.res__nome { font-stretch: 78%; font-weight: 650; font-size: clamp(26px, 2.6vw, 38px); letter-spacing: -.02em; line-height: 1.05; margin-top: 4px; }
.res__play { flex: none; display: inline-flex; align-items: center; gap: 10px; padding: 8px 16px 8px 8px; border-radius: 999px; border: 1px solid var(--linha-e); font-size: 14px; font-weight: 600; transition: border-color .3s, background-color .3s; }
.res__play .ic { width: 34px; height: 34px; padding: 10px; border-radius: 50%; background: var(--amarelo); color: var(--tinta); }
.res__play:hover { border-color: var(--amarelo); background: rgba(255, 175, 0, .08); }
.res__meio { position: relative; display: flex; align-items: flex-end; gap: clamp(20px, 3vw, 44px); }
.res__num { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.res__num b { font-stretch: 66%; font-weight: 700; font-size: clamp(76px, 9vw, 150px); line-height: .8; letter-spacing: -.04em; color: var(--amarelo); }
.res__num span { font-size: 17px; color: rgba(242, 240, 235, .85); }
.res__notas { display: flex; flex-wrap: wrap; gap: 6px; }
.res__notas li { padding: 4px 10px; border-radius: 999px; background: rgba(255, 255, 255, .08); font-size: 12.5px; color: var(--mut-e); }
.res__dados { position: relative; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: auto 0 0; padding-top: 18px; border-top: 1px solid var(--linha-e); }
.res__dados dt, .case__dados dt { font-family: var(--mono); font-size: 10.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--mut-e); }
.res__dados dd { margin: 4px 0 0; font-stretch: 80%; font-size: 26px; font-weight: 650; }
.nota { margin-top: 24px; font-size: 14px; color: var(--mut); }

/* ---------- cases (cards) ---------- */
.cases { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; align-content: start; }
.case {
  position: relative; display: flex; flex-direction: column; padding: 20px; border-radius: var(--raio); border: 1px solid var(--linha-e);
  background: linear-gradient(180deg, var(--grafite), var(--tinta-2));
  transition: transform .45s var(--ease), border-color .35s, box-shadow .45s, opacity .9s var(--ease), translate .9s var(--ease);
}
.case:hover { transform: translateY(-5px); border-color: rgba(255, 175, 0, .5); box-shadow: 0 30px 60px -30px rgba(255, 175, 0, .35); }
.case.is-oculto { display: none; }
.case__topo { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; }
.case__logo { width: 132px; height: 82px; padding: 8px; border-radius: 12px; background: #fff; }
.case__logo img { width: 100%; height: 100%; object-fit: contain; transition: transform .5s var(--ease); }
.case:hover .case__logo img { transform: scale(1.05); }
.case__play { display: inline-flex; align-items: center; gap: 8px; padding: 6px 12px 6px 6px; border-radius: 999px; border: 1px solid var(--linha-e); font-size: 13px; font-weight: 600; color: var(--txt-e); transition: border-color .3s, background-color .3s; }
.case__play .ic { width: 30px; height: 30px; padding: 9px; border-radius: 50%; background: var(--amarelo); color: var(--tinta); }
.case__play:hover { border-color: var(--amarelo); background: rgba(255, 175, 0, .1); }
.case__local { display: flex; flex-wrap: wrap; gap: 4px 10px; margin-top: 20px; font-family: var(--mono); font-size: 11px; letter-spacing: .06em; text-transform: uppercase; color: var(--mut-e); }
.case__local span::before { content: "·"; margin-right: 10px; }
.case__nome { margin-top: 6px; font-stretch: 80%; font-weight: 640; font-size: 26px; letter-spacing: -.02em; line-height: 1.1; }
.case__meio { display: flex; align-items: flex-end; gap: 18px; margin-top: 20px; }
.case__num { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.case__num strong { font-stretch: 66%; font-weight: 700; font-size: 66px; line-height: .82; letter-spacing: -.035em; color: var(--amarelo); }
.case__num span { font-size: 14.5px; line-height: 1.35; color: rgba(242, 240, 235, .8); }
.case__frase { font-stretch: 85%; font-size: 21px; font-weight: 600; line-height: 1.25; }
.case__notas { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 16px; }
.case__notas li { padding: 4px 10px; border-radius: 999px; background: rgba(255, 255, 255, .07); font-size: 12.5px; color: var(--mut-e); }
.case__dados { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 18px 0 0; padding-top: 16px; border-top: 1px solid var(--linha-e); }
.case__dados dd { margin: 3px 0 0; font-size: 17px; font-weight: 600; }

.casesx__grid { display: grid; grid-template-columns: minmax(260px, .7fr) minmax(0, 2fr); gap: clamp(24px, 4vw, 56px); align-items: start; }
.casesx__lado { align-self: stretch; }
.casesx__fixo { position: sticky; top: calc(var(--hdr) + 24px); display: grid; gap: 20px; }
.casesx__mapa { position: relative; }
.casesx__cont { font-family: var(--mono); font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--amarelo); }
.casesx .nota { margin-top: 0; color: var(--mut-e); }
.filtros { display: flex; flex-wrap: wrap; gap: 8px; }
.filtro { display: inline-flex; align-items: center; gap: 8px; height: 40px; padding: 0 16px; border-radius: 999px; border: 1px solid var(--linha-e); font-size: 14.5px; font-weight: 550; color: var(--txt-e); transition: background-color .25s, color .25s, border-color .25s; }
.filtro small { font-family: var(--mono); font-size: 12px; color: var(--mut-e); }
.filtro:hover { border-color: var(--amarelo); }
.filtro[aria-pressed="true"] { background: var(--amarelo); border-color: var(--amarelo); color: var(--tinta); }
.filtro[aria-pressed="true"] small { color: var(--tinta); }

.logos { display: grid; grid-template-columns: repeat(8, minmax(0, 1fr)); gap: 10px; }
.logos li { display: grid; place-items: center; aspect-ratio: 1; padding: 8%; border-radius: 16px; background: #fff; transition: transform .35s var(--ease), box-shadow .35s, opacity .9s var(--ease), translate .9s var(--ease); }
.logos li:hover { transform: translateY(-4px); box-shadow: 0 18px 36px -18px rgba(14, 15, 17, .35); }
.logos img { width: 100%; filter: grayscale(1); opacity: .78; transition: filter .3s, opacity .3s; }
.logos li:hover img { filter: none; opacity: 1; }

/* ---------- mapa ---------- */
.atu { z-index: 1; }
.atu__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(32px, 6vw, 96px); align-items: center; }
.atu__mapa { position: relative; }
.mapa { width: 100%; max-width: 580px; height: auto; margin-inline: auto; overflow: visible; filter: drop-shadow(0 30px 70px rgba(255, 175, 0, .12)); }
.uf { fill: rgba(255, 255, 255, .075); stroke: var(--tinta); stroke-width: 1; stroke-linejoin: round; transition: fill .3s; }
.uf:hover { fill: rgba(255, 255, 255, .16); }
.uf--on { fill: var(--amarelo); }
.uf--on:hover { fill: var(--amarelo-2); }
.pin { fill: #fff; stroke: var(--tinta); stroke-width: 1.5; pointer-events: none; }
.pin-onda { fill: none; stroke: #fff; stroke-width: 1.2; transform-box: fill-box; transform-origin: center; animation: onda 2.4s ease-out infinite; pointer-events: none; }
@keyframes onda { from { transform: scale(1); opacity: .8; } to { transform: scale(4.5); opacity: 0; } }
.mapa--filtro .uf { fill: rgba(255, 255, 255, .06); }
.mapa--filtro .uf--tem { fill: rgba(255, 175, 0, .35); cursor: pointer; }
.mapa--filtro .uf--tem:hover { fill: rgba(255, 175, 0, .7); }
.mapa--filtro .uf--sel, .mapa--filtro .uf--sel:hover { fill: var(--amarelo); }
.mapa--filtro .uf--tem:focus-visible { outline: none; fill: var(--amarelo-2); }
.atu__rotulo {
  position: absolute; left: 0; top: 0; z-index: 2; padding: 8px 12px; border-radius: 10px; background: #fff; color: var(--tinta);
  font-size: 14px; font-weight: 600; white-space: nowrap; pointer-events: none; translate: -50% calc(-100% - 14px);
  box-shadow: 0 12px 30px -10px rgba(0, 0, 0, .5); opacity: 0; transition: opacity .2s;
}
.atu__rotulo.on { opacity: 1; }
.atu__rotulo small { display: block; font-size: 12px; font-weight: 500; color: var(--mut); }
.atu__leg { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 24px; margin-top: 20px; font-size: 13px; color: var(--mut-e); }
.atu__leg span { display: inline-flex; align-items: center; gap: 8px; }
.atu__leg i { width: 11px; height: 11px; border-radius: 3px; background: var(--amarelo); }
.atu__leg i.pin-leg { border-radius: 50%; background: #fff; }
.atu .cab { margin-bottom: 32px; }
.atu .tit { font-size: clamp(40px, 4.6vw, 72px); }
.atu__nums { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-bottom: 28px; }
.atu__nums div { padding: 20px; border: 1px solid var(--linha-e); border-radius: var(--raio-p); background: rgba(19, 21, 24, .7); }
.atu__nums b { display: block; font-stretch: 70%; font-weight: 700; font-size: 50px; line-height: 1; color: var(--amarelo); }
.atu__nums span { display: block; margin-top: 6px; font-size: 15px; color: var(--mut-e); }
.atu__rot { margin-bottom: 8px; font-family: var(--mono); font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--mut-e); }
.atu__uf { display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: 12px; padding: 12px 0; border-top: 1px solid var(--linha-e); }
.atu__uf span { padding-top: 2px; font-family: var(--mono); font-size: 13px; color: var(--amarelo); }
.atu__uf p { font-size: 15px; }

/* ---------- liderança ---------- */
.lid__grid { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: 16px; }
.lid__ceo, .lid__cfo { display: flex; flex-direction: column; gap: 28px; padding: clamp(24px, 3.4vw, 44px); border-radius: var(--raio); border: 1px solid var(--linha-e); background: rgba(19, 21, 24, .82); }
.lid__ceo { background: linear-gradient(140deg, #1d1a12, var(--tinta-2) 60%); border-color: rgba(255, 175, 0, .25); }
.lid__pessoa { display: flex; align-items: center; gap: 18px; }
.lid__nums { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-top: auto; padding-top: 24px; border-top: 1px solid var(--linha-e); }
.lid__nums b { display: block; font-stretch: 66%; font-weight: 700; font-size: clamp(56px, 6vw, 96px); line-height: .85; letter-spacing: -.035em; color: var(--amarelo); }
.lid__nums span { display: block; margin-top: 10px; font-size: 15px; line-height: 1.4; color: var(--mut-e); }
.lid__cfo .link-seta { margin-top: auto; align-self: flex-start; }
.lider__foto { flex: none; display: grid; place-items: center; width: 72px; height: 72px; border-radius: 50%; background: linear-gradient(140deg, var(--amarelo), #FF8A00); color: var(--tinta); font-stretch: 75%; font-weight: 700; font-size: 26px; letter-spacing: -.02em; }
.lider__foto--g { width: 104px; height: 104px; font-size: 38px; margin-bottom: 22px; }
.lider__cargo { font-family: var(--mono); font-size: 11.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--amarelo); }
.lider__nome { margin-top: 4px; font-stretch: 78%; font-weight: 650; font-size: clamp(28px, 2.6vw, 38px); letter-spacing: -.02em; line-height: 1.05; }
.lider__txt { font-size: 16px; color: var(--mut-e); }
.sec--papel .lider__cargo, .sec--branco .lider__cargo, .folha .lider__cargo { color: #A86F00; }

/* ---------- dois caminhos ---------- */
.cam__grid { display: flex; gap: 16px; }
.cam__card { position: relative; overflow: hidden; flex: 1; display: flex; flex-direction: column; align-items: flex-start; gap: 18px; min-height: 480px; padding: clamp(28px, 4vw, 56px); border-radius: 28px; }
.cam__grid:hover .cam__card { flex-grow: .8; }
.cam__grid .cam__card:hover { flex-grow: 1.35; }
.cam__card h3 { max-width: 520px; font-stretch: 74%; font-weight: 680; font-size: clamp(34px, 3.6vw, 60px); letter-spacing: -.03em; line-height: .98; }
.cam__card > p:not(.cam__rot) { max-width: 440px; font-size: 17px; }
.cam__rot { font-family: var(--mono); font-size: 12px; letter-spacing: .14em; text-transform: uppercase; }
.cam__card .btn { margin-top: auto; }
.cam__card--emp { background: var(--amarelo); color: var(--tinta); }
.cam__card--emp .cam__rot { color: rgba(14, 15, 17, .65); }
.cam__card--emp::after { content: ""; position: absolute; right: -50px; bottom: -60px; width: 340px; aspect-ratio: 1; background: url(../img/simbolo-v7.png) center / contain no-repeat; filter: brightness(0); opacity: .08; transition: transform .8s var(--ease); pointer-events: none; }
.cam__card--emp:hover::after { transform: rotate(-8deg) scale(1.08); }
.cam__card--cor { background: var(--grafite); color: var(--txt-e); border: 1px solid var(--linha-e); }
.cam__card--cor .cam__rot { color: var(--mut-e); }
.cam__card--cor > p:not(.cam__rot) { color: var(--mut-e); }

/* ---------- topo das páginas internas ---------- */
.topo { position: relative; z-index: 1; overflow: hidden; padding: calc(var(--hdr) + clamp(40px, 5vw, 80px)) 0 clamp(56px, 6vw, 96px); }
.topo__brilho { position: absolute; inset: 0; pointer-events: none; background: radial-gradient(50% 60% at 85% 8%, rgba(255, 175, 0, .16), transparent 70%); }
.topo__simbolo { position: absolute; right: -6%; top: 6%; width: min(560px, 52vw); opacity: .07; pointer-events: none; animation: gira 60s linear infinite; }
@keyframes gira { to { rotate: 360deg; } }
.topo__in { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: flex-start; gap: 28px; }
.topo__in > * { animation: sobe 1s var(--ease) both; }
.topo__in > :nth-child(2) { animation-delay: .08s; }
.topo__in > :nth-child(3) { animation-delay: .16s; }
.topo__in > :nth-child(4) { animation-delay: .24s; }
.topo__in > :nth-child(5) { animation-delay: .32s; }
.topo__in .tit { max-width: 1100px; }
.topo__lead { max-width: 660px; font-size: clamp(17px, 1.5vw, 21px); color: var(--mut-e); }
.topo__botoes { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 4px; }
.topo__nums { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); width: 100%; margin-top: 24px; border-top: 1px solid var(--linha-e); }
.topo__nums div { display: flex; flex-direction: column; padding: 24px 20px 0 0; }
.topo__nums div + div { padding-left: 20px; border-left: 1px solid var(--linha-e); }
.topo__nums b { font-stretch: 68%; font-weight: 700; font-size: clamp(44px, 4.6vw, 72px); line-height: .9; letter-spacing: -.02em; }
.topo__nums span { margin-top: 8px; font-size: 14px; color: var(--mut-e); }
.topo--curto { padding-bottom: clamp(48px, 6vw, 80px); }

/* linha do tempo das soluções */
.tl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); width: 100%; margin-top: 16px; border-top: 1px solid var(--linha-e); }
.tl__fase { position: relative; padding: 24px 24px 0 0; }
.tl__fase::before { content: ""; position: absolute; top: -5px; left: 0; width: 9px; height: 9px; border-radius: 50%; background: var(--amarelo); box-shadow: 0 0 0 5px rgba(255, 175, 0, .18); }
.tl__n { font-family: var(--mono); font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--amarelo); }
.tl__itens { display: grid; gap: 8px; margin-top: 14px; }
.tl__itens a { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-radius: 12px; border: 1px solid var(--linha-e); background: rgba(255, 255, 255, .03); font-size: 15px; font-weight: 500; line-height: 1.3; transition: border-color .25s, background-color .25s; }
.tl__itens a:hover { border-color: var(--amarelo); background: rgba(255, 175, 0, .06); }
.tl__itens .ic { width: 18px; height: 18px; color: var(--amarelo); }

/* ---------- soluções: pilha de cartões ---------- */
.pilha { display: grid; gap: clamp(16px, 3vh, 32px); }
.sol {
  position: sticky; top: calc(var(--hdr) + 16px + var(--i) * 14px); z-index: 1;
  display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: clamp(24px, 4vw, 64px);
  min-height: min(560px, calc(100vh - var(--hdr) - 120px)); padding: clamp(28px, 4vw, 56px); border-radius: 28px; overflow: hidden;
  transform-origin: center top; scroll-margin-top: calc(var(--hdr) + 16px);
}
.sol--grafite { background: var(--grafite); color: var(--txt-e); border: 1px solid var(--linha-e); }
.sol--papel { background: var(--papel); color: var(--txt); }
.sol--amarelo { background: var(--amarelo); color: var(--tinta); }
.sol__fase { font-family: var(--mono); font-size: 12px; letter-spacing: .14em; text-transform: uppercase; opacity: .7; }
.sol__ic { display: grid; place-items: center; width: 54px; height: 54px; margin-top: 22px; border-radius: 15px; background: var(--tinta); color: var(--amarelo); }
.sol--grafite .sol__ic { background: var(--amarelo); color: var(--tinta); }
.sol__ic .ic { width: 24px; height: 24px; }
.sol__nome { margin-top: 20px; font-stretch: 74%; font-weight: 680; font-size: clamp(32px, 3.4vw, 54px); letter-spacing: -.03em; line-height: 1; text-wrap: balance; }
.sol__resumo { margin-top: 16px; font-size: 19px; font-weight: 550; line-height: 1.4; max-width: 560px; }
.sol__texto { max-width: 560px; margin-top: 12px; opacity: .75; }
.sol__dir { position: relative; z-index: 1; align-self: end; }
.sol__rot { margin-bottom: 8px; font-family: var(--mono); font-size: 12px; letter-spacing: .12em; text-transform: uppercase; opacity: .65; }
.sol__dir li { display: flex; align-items: flex-start; gap: 12px; padding: 13px 0; border-top: 1px solid rgba(127, 127, 127, .25); font-weight: 500; line-height: 1.4; }
.sol__dir li .ic { width: 24px; height: 24px; padding: 5px; border-radius: 50%; background: var(--amarelo); color: var(--tinta); stroke-width: 2.4; }
.sol--amarelo .sol__dir li .ic { background: var(--tinta); color: var(--amarelo); }
.sol__dir .link-seta { margin-top: 18px; }
.sol__n { position: absolute; right: clamp(16px, 3vw, 40px); top: clamp(4px, 1vw, 16px); font-stretch: 62%; font-weight: 700; font-size: clamp(90px, 11vw, 170px); line-height: 1; letter-spacing: -.05em; opacity: .09; pointer-events: none; }
.sol__case { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 14px; width: 100%; margin-top: 18px; padding: 18px; border-radius: 14px; background: var(--tinta); color: var(--txt-e); text-align: left; }
.sol__case > * { grid-column: 1; }
.sol__case-rot { font-family: var(--mono); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--amarelo); }
.sol__case strong { font-size: 18px; line-height: 1.3; }
.sol__case span:not(.sol__case-rot) { font-size: 14px; color: var(--mut-e); }
.sol__case .ic { grid-column: 2; grid-row: 1 / 4; align-self: center; width: 42px; height: 42px; padding: 13px; border-radius: 50%; background: var(--amarelo); color: var(--tinta); }

.pilares { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; overflow: hidden; background: var(--linha-e); border: 1px solid var(--linha-e); border-radius: var(--raio); }
.pilar { position: relative; padding: 28px; background: var(--tinta); transition: background-color .35s, opacity .9s var(--ease), translate .9s var(--ease); }
.pilar:hover { background: var(--tinta-2); }
.pilar__n { font-family: var(--mono); font-size: 11px; color: var(--mut-e); }
.pilar h4 { margin-top: 18px; font-stretch: 80%; font-size: 24px; font-weight: 640; letter-spacing: -.015em; color: var(--amarelo); }
.pilar p { margin-top: 8px; font-size: 16px; color: rgba(242, 240, 235, .85); }

/* ---------- faixa de chamada (amarela) ---------- */
.faixa { position: relative; z-index: 2; overflow: hidden; margin-inline: clamp(6px, 1vw, 14px); border-radius: var(--folha); background: var(--amarelo); color: var(--tinta); }
.faixa__in { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: clamp(20px, 4vw, 56px); align-items: center; padding-block: clamp(64px, 8vw, 110px); }
.faixa__simbolo { width: clamp(80px, 9vw, 140px); filter: brightness(0); }
.faixa .tit { font-size: clamp(36px, 4.6vw, 72px); }
.faixa .tit em { color: rgba(14, 15, 17, .5); }
.faixa p { max-width: 560px; margin-top: 14px; font-size: 18px; }
.faixa__botoes { display: flex; flex-direction: column; gap: 10px; }

/* ---------- quem somos ---------- */
.hist { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: clamp(32px, 6vw, 96px); }
.hist__lado .cab { position: sticky; top: calc(var(--hdr) + 40px); }
.hist__p { display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 16px; padding: 28px 0; border-top: 1px solid var(--linha); }
.hist__n { padding-top: 7px; font-family: var(--mono); font-size: 13px; color: var(--mut); }
.hist__p p { font-size: clamp(19px, 1.7vw, 24px); line-height: 1.45; letter-spacing: -.005em; }
.dnas { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.dna { padding: 36px; border: 1px solid var(--linha-e); border-radius: var(--raio); background: rgba(19, 21, 24, .82); transition: border-color .3s, transform .45s var(--ease), opacity .9s var(--ease), translate .9s var(--ease); }
.dna:hover { border-color: rgba(255, 175, 0, .5); transform: translateY(-4px); }
.dna__ic, .ben__ic { display: grid; place-items: center; width: 54px; height: 54px; border-radius: 15px; }
.dna__ic { background: rgba(255, 175, 0, .12); color: var(--amarelo); }
.dna__ic .ic, .ben__ic .ic { width: 24px; height: 24px; }
.dna h3 { margin-top: 24px; font-stretch: 78%; font-weight: 650; font-size: 30px; letter-spacing: -.02em; line-height: 1.1; }
.dna p { margin-top: 10px; color: var(--mut-e); }
.mets__grid { display: grid; grid-template-columns: 1fr 1fr .8fr; gap: 16px; }
.met { padding: 34px; background: #fff; border: 1px solid var(--linha); border-radius: var(--raio); }
.met h3 { font-stretch: 78%; font-weight: 650; font-size: 30px; letter-spacing: -.02em; line-height: 1.1; }
.met p { margin-top: 10px; color: var(--mut); }
.met--num { display: flex; flex-direction: column; justify-content: flex-end; background: var(--tinta); color: #fff; border-color: transparent; }
.met--num b { font-stretch: 66%; font-weight: 700; font-size: clamp(60px, 6vw, 96px); line-height: .9; letter-spacing: -.03em; color: var(--amarelo); }
.met--num span { margin-top: 8px; color: var(--mut-e); }
.perfis { display: grid; gap: 16px; }
.perfil { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: clamp(24px, 5vw, 72px); padding: clamp(28px, 4vw, 52px); background: var(--papel); border: 1px solid var(--linha); border-radius: var(--raio); }
.perfil__nome { margin-top: 6px; font-stretch: 76%; font-weight: 680; font-size: 40px; letter-spacing: -.025em; line-height: 1; }
.perfil__bio { display: grid; gap: 14px; font-size: 16.5px; }
.perfil__bio p:first-child { font-size: 20px; font-weight: 500; line-height: 1.5; }

/* ---------- seja parceiro ---------- */
.bens { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.ben { padding: 26px; background: #fff; border: 1px solid var(--linha); border-radius: var(--raio); transition: transform .45s var(--ease), box-shadow .45s, opacity .9s var(--ease), translate .9s var(--ease); }
.ben:hover { transform: translateY(-4px); box-shadow: 0 20px 40px -24px rgba(14, 15, 17, .35); }
.ben__ic { background: var(--tinta); color: var(--amarelo); }
.ben h3 { margin-top: 20px; font-size: 19px; font-weight: 620; line-height: 1.25; letter-spacing: -.01em; }
.ben p { margin-top: 8px; font-size: 15.5px; color: var(--mut); }
.passos { position: relative; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.passo { position: relative; padding-top: 76px; }
.passo::before { content: ""; position: absolute; top: 26px; left: 64px; right: -12px; height: 1px; background: repeating-linear-gradient(90deg, var(--mut-e) 0 6px, transparent 6px 12px); opacity: .5; }
.passo:last-child::before { display: none; }
.passo__n { position: absolute; top: 0; left: 0; display: grid; place-items: center; width: 54px; height: 54px; border-radius: 50%; background: var(--amarelo); color: var(--tinta); font-stretch: 72%; font-weight: 700; font-size: 24px; }
.passo h3 { font-stretch: 78%; font-weight: 650; font-size: 28px; letter-spacing: -.02em; line-height: 1.1; }
.passo p { margin-top: 8px; color: var(--mut-e); }
.faqs { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(32px, 6vw, 96px); align-items: start; }
.faqs .cab { margin-bottom: 28px; }
.faq { border-top: 1px solid var(--linha); }
.faq:last-child { border-bottom: 1px solid var(--linha); }
.faq summary { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 24px 0; list-style: none; cursor: pointer; font-size: 19px; font-weight: 600; line-height: 1.35; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary .ic { width: 36px; height: 36px; padding: 9px; border-radius: 50%; background: #fff; border: 1px solid var(--linha); transition: transform .3s var(--ease), background-color .3s; }
.faq[open] summary .ic { transform: rotate(45deg); background: var(--amarelo); border-color: var(--amarelo); }
.faq p { padding: 0 48px 24px 0; color: var(--mut); }

/* ---------- contato ---------- */
.topo--contato { padding-bottom: clamp(56px, 6vw, 96px); }
.contato { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .95fr); gap: clamp(32px, 6vw, 96px); align-items: start; }
.contato__info { display: flex; flex-direction: column; align-items: flex-start; gap: 24px; }
.contato__info > *, .contato > .form { animation: sobe 1s var(--ease) both; }
.contato__info > :nth-child(2) { animation-delay: .08s; }
.contato__info > :nth-child(3), .contato > .form { animation-delay: .16s; }
.contato__info > :nth-child(4) { animation-delay: .24s; }
.contato__info > :nth-child(5) { animation-delay: .32s; }
.canais { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; width: 100%; margin-top: 8px; }
.canal { display: flex; align-items: center; gap: 14px; min-width: 0; padding: 14px; border: 1px solid var(--linha-e); border-radius: var(--raio-p); background: rgba(19, 21, 24, .8); font-size: 15px; font-weight: 550; transition: border-color .25s; }
.canal:hover { border-color: var(--amarelo); }
.canal .ic { width: 42px; height: 42px; padding: 11px; border-radius: 11px; background: rgba(255, 255, 255, .06); color: var(--amarelo); }
.canal span { min-width: 0; overflow-wrap: anywhere; }
.canal small { display: block; font-family: var(--mono); font-size: 10.5px; font-weight: 400; letter-spacing: .08em; text-transform: uppercase; color: var(--mut-e); }
.canal--zap { grid-column: 1 / -1; background: rgba(255, 175, 0, .07); border-color: rgba(255, 175, 0, .35); font-size: 18px; }
.aviso-cor { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2px 16px; align-items: center; width: 100%; padding: 18px 20px; border-radius: var(--raio-p); background: var(--grafite); transition: background-color .25s; }
.aviso-cor:hover { background: var(--grafite-2); }
.aviso-cor span { grid-column: 1; font-size: 15px; color: var(--mut-e); }
.aviso-cor .ic { grid-row: 1 / 3; grid-column: 2; color: var(--amarelo); }
.form { padding: clamp(24px, 3.5vw, 44px); border-radius: 28px; background: var(--papel); color: var(--txt); box-shadow: 0 40px 80px -30px rgba(0, 0, 0, .65); }
.form__tit { font-stretch: 78%; font-weight: 680; font-size: 34px; letter-spacing: -.025em; line-height: 1.05; }
.form__sub { margin-top: 6px; font-size: 15px; color: var(--mut); }
.form__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-top: 24px; }
.campo { display: flex; flex-direction: column; gap: 6px; }
.campo > span { font-size: 13px; font-weight: 600; }
.campo--todo { grid-column: 1 / -1; }
.campo input, .campo select, .campo textarea { width: 100%; padding: 13px 14px; border: 1px solid rgba(14, 15, 17, .18); border-radius: 12px; background: #fff; color: var(--txt); font: inherit; font-size: 16px; transition: border-color .2s, box-shadow .2s; }
.campo input:focus, .campo select:focus, .campo textarea:focus { outline: none; border-color: var(--tinta); box-shadow: 0 0 0 3px rgba(255, 175, 0, .5); }
.campo.is-erro input, .campo.is-erro textarea { border-color: #B42318; }
.campo textarea { min-height: 120px; resize: vertical; }
.campo select { -webkit-appearance: none; appearance: none; padding-right: 42px; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23121315' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") right 14px center / 18px no-repeat; }
.aceite { display: flex; align-items: flex-start; gap: 10px; margin: 18px 0 6px; font-size: 14px; color: var(--mut); }
.aceite input { flex: none; width: 18px; height: 18px; margin: 2px 0 0; accent-color: var(--tinta); }
.aceite a { color: var(--txt); text-decoration: underline; text-underline-offset: 3px; }
.form__erro { min-height: 22px; margin-bottom: 8px; font-size: 14px; color: #B42318; }
.form__erro.ok { color: #157F3D; }

/* ---------- texto longo (política) ---------- */
.texto-longo { max-width: 780px; }
.texto-longo h2 { margin: 40px 0 10px; font-stretch: 80%; font-weight: 650; font-size: 28px; letter-spacing: -.02em; }
.texto-longo h2:first-child { margin-top: 0; }
.texto-longo p { color: #33363B; }

/* ---------- rodapé ---------- */
.rod { padding-top: clamp(80px, 10vw, 140px); overflow: hidden; }
.rod__topo { display: flex; justify-content: space-between; align-items: flex-end; gap: 32px; padding-bottom: 48px; border-bottom: 1px solid var(--linha-e); }
.rod__logo { width: clamp(150px, 16vw, 196px); }
.rod__chamada { display: flex; flex-direction: column; align-items: flex-end; gap: 18px; text-align: right; }
.rod__chamada p { max-width: 520px; font-stretch: 76%; font-weight: 650; font-size: clamp(28px, 3vw, 44px); letter-spacing: -.025em; line-height: 1.02; }
.rod__cols { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px; padding-block: 48px; }
.rod__cols h2 { margin-bottom: 16px; font-family: var(--mono); font-size: 12px; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; color: var(--mut-e); }
.rod__cols li + li { margin-top: 10px; }
.rod__cols a { font-size: 15px; color: rgba(242, 240, 235, .85); transition: color .2s; }
.rod__cols a:hover { color: var(--amarelo); }
.rod__cols small { display: block; font-size: 12px; color: var(--mut-e); }
.rod__redes { display: flex; gap: 8px; margin-top: 18px; }
.rede { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; border: 1px solid var(--linha-e); transition: border-color .25s, color .25s; }
.rede:hover { border-color: var(--amarelo); color: var(--amarelo); }
.rede .ic { width: 18px; height: 18px; }
.rod__gigante { padding-inline: var(--gut); font-stretch: 62%; font-weight: 700; font-size: clamp(48px, 10.6vw, 210px); line-height: .82; letter-spacing: -.045em; white-space: nowrap; text-align: center; color: transparent; -webkit-text-stroke: 1px rgba(255, 255, 255, .28); user-select: none; }
.rod__gigante span:last-child { color: var(--amarelo); -webkit-text-stroke: 0; }
.rod__base { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px 24px; padding: 24px 0 32px; margin-top: 32px; border-top: 1px solid var(--linha-e); font-size: 14px; color: var(--mut-e); }
.rod__base a { color: var(--txt-e); text-decoration: underline; text-underline-offset: 3px; }
.rod__base a:hover { color: var(--amarelo); }

/* ---------- WhatsApp flutuante e vídeo ---------- */
.zap { position: fixed; right: 20px; bottom: 20px; z-index: 40; display: grid; place-items: center; width: 58px; height: 58px; border-radius: 50%; background: #25D366; color: #fff; box-shadow: 0 14px 30px -8px rgba(0, 0, 0, .45); transition: transform .3s var(--ease); }
.zap:hover { transform: scale(1.07); }
.zap .ic { width: 30px; height: 30px; }
.video { width: min(1000px, calc(100vw - 32px)); max-width: none; max-height: none; padding: 0; border: 0; background: transparent; color: #fff; }
.video::backdrop { background: rgba(8, 9, 10, .86); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.video[open] { animation: entra .35s var(--ease); }
.video__caixa { overflow: hidden; border: 1px solid var(--linha-e); border-radius: 20px; background: var(--tinta); }
.video__topo { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 10px 10px 10px 20px; font-weight: 600; }
.video__fechar { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; background: rgba(255, 255, 255, .08); }
.video__fechar:hover { background: rgba(255, 255, 255, .16); }
.video__quadro { aspect-ratio: 16 / 9; background: #000; }
.video__quadro iframe { display: block; width: 100%; height: 100%; border: 0; }

/* ---------- revelar ao rolar ----------
   Quem esconde é o main.js (classe .js): se o script não carregar, tudo fica visível. */
.js [data-revela] { transition: opacity .9s var(--ease), translate .9s var(--ease), transform .45s var(--ease), box-shadow .45s, border-color .35s, background-color .35s; transition-delay: calc(var(--d, 0) * 80ms); }
.js [data-revela]:not(.is-visto) { opacity: 0; translate: 0 36px; }
.js .cam__card[data-revela] { transition: opacity .9s var(--ease), translate .9s var(--ease), flex-grow .7s var(--ease); }

/* ---------- responsivo ---------- */
@media (max-width: 1180px) {
  .hdr__nav, .hdr__portal { display: none; }
  .hdr__menu { display: block; }
  .hdr__acoes { margin-left: auto; }
  .bens { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .passos { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 40px; }
  .passo::before { display: none; }
  .logos { grid-template-columns: repeat(6, minmax(0, 1fr)); }
}
@media (max-width: 1020px) {
  .mets__grid { grid-template-columns: 1fr 1fr; }
  .met--num { grid-column: 1 / -1; }
  .casesx__grid { grid-template-columns: 1fr; }
  .casesx__fixo { position: static; grid-template-columns: minmax(0, 260px) minmax(0, 1fr); align-items: center; }
  .casesx__fixo > .rot { grid-column: 1 / -1; }
  .casesx__mapa { grid-row: span 3; }
  .lid__grid { grid-template-columns: 1fr; }
  .res__grid { grid-template-columns: 1fr; }
  .res__lista { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 16px; }
}
@media (max-width: 900px) {
  .hero__planta { inset: 0 -40% 30% -10%; opacity: .6; }
  .hero__veu { background: linear-gradient(0deg, var(--tinta) 30%, rgba(11, 12, 14, .55) 60%, rgba(11, 12, 14, .7) 100%); }
  .hero__base { flex-direction: column; align-items: stretch; }
  .hero__coord { display: none; }
  .pcard { width: 100%; }
  .hero__rolar { display: none; }
  .nums { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .num:nth-child(2) { border-right: 1px solid var(--linha-e); }
  .num:nth-child(n+3) { border-top: 1px solid var(--linha-e); }
  .jor__fixo { position: static; height: auto; padding-block: 96px 40px; }
  .jor__trilho { width: auto; flex-direction: column; padding-inline: var(--gut); transform: none !important; }
  .jor__painel, .jor__painel--abre { width: auto; min-height: 0; }
  .jor__painel { flex-direction: column; }
  .jor__num { font-size: 110px; }
  .jor__dica, .jor__rota { display: none; }
  .eco-sec__grid, .atu__grid, .hist, .faqs, .contato { grid-template-columns: 1fr; }
  .eco-sec__txt { display: contents; }
  .eco-sec .cab { order: 1; margin-bottom: 0; }
  .eco { order: 2; }
  .eco__painel { order: 3; }
  .eco__chips { order: 4; margin-top: -8px; }
  .mapa { max-width: 440px; }
  .hist__lado .cab { position: static; }
  .dnas { grid-template-columns: 1fr; }
  .perfil { grid-template-columns: 1fr; }
  .sol { position: relative; top: auto; grid-template-columns: 1fr; min-height: 0; }
  .pilares { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tl { grid-template-columns: 1fr; gap: 28px; border-top: 0; }
  .tl__fase { padding: 0 0 0 22px; border-left: 1px solid var(--linha-e); }
  .tl__fase::before { top: 4px; left: -5px; }
  .cam__grid { flex-direction: column; }
  .cam__card { min-height: 0; }
  .faixa__in { grid-template-columns: 1fr; }
  .faixa__botoes { flex-direction: row; flex-wrap: wrap; }
  .rod__topo { flex-direction: column; align-items: flex-start; }
  .rod__chamada { align-items: flex-start; text-align: left; }
  .rod__cols { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cab-linha { flex-direction: column; align-items: flex-start; }
  .topo__nums { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .topo__nums div:nth-child(3) { padding-left: 0; border-left: 0; }
  .lid__nums { grid-template-columns: 1fr; }
}
@media (max-width: 700px) {
  .eco__rot { display: none; }
  .eco { padding-inline: 0; }
  .eco__fig { width: min(100%, 400px); }
  .logos { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; }
  .cases { grid-template-columns: 1fr; }
  .casesx__fixo { grid-template-columns: 1fr; }
  .casesx__mapa { grid-row: auto; max-width: 320px; }
  .res__lista { grid-template-columns: 1fr; }
  .res__meio { flex-direction: column; align-items: flex-start; }
  .waffle--g { width: 100%; max-width: 280px; }
  .res__topo { flex-wrap: wrap; }
  .res__id { flex-basis: 100%; order: 2; }
  .res__play { order: 1; margin-left: auto; }
}
@media (max-width: 560px) {
  body { font-size: 16px; }
  .hdr__cta { display: none; }
  .hero__botoes .btn, .topo__botoes .btn { width: 100%; justify-content: space-between; }
  .num { padding: 22px 14px 26px; }
  .bens, .passos, .pilares, .mets__grid, .form__grid, .canais, .rod__cols { grid-template-columns: 1fr; }
  .atu__nums b { font-size: 38px; }
  .case__num strong { font-size: 54px; }
  .case__dados dt { font-size: 9.5px; letter-spacing: .02em; }
  .waffle { width: 78px; }
  .faq p { padding-right: 0; }
  .rod__base { padding-bottom: 96px; }
  .num__dica::after { left: auto; right: -12px; translate: 0 4px; }
  .num__dica:hover::after, .num__dica:focus-visible::after { translate: 0 0; }
  .zap { width: 52px; height: 52px; right: 14px; bottom: 14px; }
  .zap .ic { width: 26px; height: 26px; }
  .res__dados dd { font-size: 20px; }
  .cruz__rot { left: 4%; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-delay: 0s !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  html.com-intro .intro { display: none; }
  .js [data-revela]:not(.is-visto) { opacity: 1; translate: none; }
  .marcas__trilho ul, .cruz__trilho { animation: none; }
  .manif__txt .w { color: var(--txt-e); }
  .manif__txt .w--d { color: var(--amarelo); }
}
.topo--contato .tit--xl { font-size: clamp(44px, 6vw, 96px); }
