/*
Theme Name: Impact Co.
Theme URI: https://impactco.com.br
Author: Impact Company Ltda
Description: Site institucional do Impact Co. em página única: Business e Advisory como seções ancoradas, cada capacidade como pilar expansível. Sistema visual autoral: grid editorial, sistema de colchetes, tracados ortogonais (Business) e diagonais (Advisory). Estetica clara, luminosa e editorial.
Version: 3.2.0
Requires at least: 6.0
Tested up to: 6.6
Requires PHP: 7.4
License: Proprietary
Text Domain: impactco
*/

/* =========================================================
   1. TOKENS
   ========================================================= */
:root{
  /* O Impact Co. tem um unico esquema de cor, e ele e claro.
     Declarar isso impede que o navegador aplique inversao automatica. */
  color-scheme: light;

  /* Superficies — luz como protagonista */
  --paper:   #FFFFFF;
  --ivory:   #F6F5F2;
  --mist:    #EEF0F1;
  --line:    #DFDEDA;
  --line-2:  #ECEBE7;

  /* Tinta */
  --ink:     #14171A;
  --ink-70:  #45494E;
  --graphite:#5E656C;   /* texto secundario e rotulos — 5,4:1 sobre ivory */

  /* Identidade */
  --blue:    #1F6E9C;   /* Business — texto e estado */
  --sky:     #3AA6DE;   /* Advisory — traçado e ilustração */
  --sky-ink: #16769F;   /* Advisory — texto e estado, 5,0:1 */
  --signal:  #B34A22;

  --accent:      var(--blue);
  --accent-line: var(--blue);
  --fg:      var(--ink);
  --bg:      var(--paper);

  /* Tipografia — duas familias, tres papeis */
  --display: "Archivo", "Helvetica Neue", Arial, sans-serif;
  --text:    "Newsreader", Georgia, "Times New Roman", serif;
  --ui:      "Archivo", "Helvetica Neue", Arial, sans-serif;

  --wide:   116;
  --plain:  100;
  --tight:  92;

  /* Escala */
  --t-hero:  clamp(2.45rem, 5.1vw, 5.05rem);
  --t-d1:    clamp(2rem, 3.9vw, 3.7rem);
  --t-d2:    clamp(1.85rem, 3.3vw, 3.1rem);
  --t-d3:    clamp(1.35rem, 2vw, 1.95rem);
  --t-lead:  clamp(1.12rem, 1.5vw, 1.45rem);
  --t-body:  1.0625rem;
  --t-sm:    .9rem;
  --t-xs:    .8125rem;
  --t-micro: .75rem;

  /* Ritmo */
  --gutter: clamp(1.15rem, 4.2vw, 4.25rem);
  --band:   clamp(4rem, 10vh, 8.5rem);
  --maxw:   1520px;
  --measure:64ch;

  --ease:  cubic-bezier(.22,.61,.36,1);
  --slow:  cubic-bezier(.16,1,.3,1);
}

/* =========================================================
   2. BASE
   ========================================================= */
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
html{ background-color:var(--paper); color-scheme:light; }
body{
  margin:0; background-color:var(--bg); color:var(--fg);
  forced-color-adjust:none; color-scheme:light;
  font-family:var(--text); font-size:var(--t-body); line-height:1.66;
  font-optical-sizing:auto;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img,svg,video{ max-width:100%; height:auto; display:block; }
main{ background-color:var(--paper); display:block; }
a{ color:inherit; text-decoration:none; }
p{ margin:0 0 1.1em; max-width:var(--measure); text-wrap:pretty; }
h1,h2,h3,h4{ margin:0; font-family:var(--display); font-weight:600; line-height:1.04; letter-spacing:-.022em; }
ul,ol{ margin:0; padding:0; list-style:none; }
button{ font:inherit; color:inherit; background-color:transparent; border:0; cursor:pointer; }
hr{ border:0; border-top:1px solid var(--line); margin:0; }
::selection{ background:var(--sky); color:#fff; }
:focus-visible{ outline:2px solid var(--blue); outline-offset:3px; }

.skip{ position:absolute; left:-9999px; }
.skip:focus{ left:1rem; top:1rem; z-index:999; background:var(--ink); color:#fff; padding:.8rem 1.25rem; }
.sr{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }

/* =========================================================
   3. GRID EDITORIAL
   ========================================================= */
.wrap{ width:100%; max-width:var(--maxw); margin-inline:auto; padding-inline:var(--gutter); background-color:transparent; }
.band{ padding-block:var(--band); position:relative; background-color:var(--paper); }
.band--sm{ padding-block:calc(var(--band) * .55); }
.ivory{ background-color:var(--ivory); }
.mist{ background-color:var(--mist); }

.grid12{ display:grid; grid-template-columns:repeat(12,1fr); gap:0 var(--gutter); }
.c1-7{ grid-column:1 / 8; }
.c1-8{ grid-column:1 / 9; }
.c1-9{ grid-column:1 / 10; }
.c1-6{ grid-column:1 / 7; }
.c1-5{ grid-column:1 / 6; }
.c2-8{ grid-column:2 / 9; }
.c7-13{ grid-column:7 / 13; }
.c8-13{ grid-column:8 / 13; }
.c9-13{ grid-column:9 / 13; }
.c10-13{ grid-column:10 / 13; }
.c1-13{ grid-column:1 / 13; }

/* A malha usa a mesma caixa de conteudo do .wrap: as colunas do fundo
   caem exatamente sobre as colunas dos componentes. */
.mesh{ position:absolute; top:0; bottom:0; left:50%; transform:translateX(-50%);
  width:100%; max-width:var(--maxw); padding-inline:var(--gutter);
  pointer-events:none; z-index:0;
  background-image:linear-gradient(to right, var(--line-2) 1px, transparent 1px);
  background-size:calc(100% / 12) 100%;
  background-origin:content-box; background-clip:content-box;
  background-repeat:repeat-x; }
.mesh--wide{ background-size:calc(100% / 6) 100%; }
.above{ position:relative; z-index:1; }

/* =========================================================
   4. TIPOGRAFIA
   ========================================================= */
.dsp{ font-family:var(--display); font-variation-settings:"wdth" var(--wide); font-weight:600;
  letter-spacing:-.028em; line-height:1; text-wrap:balance; }
.hero-t{ font-size:var(--t-hero); letter-spacing:-.038em; line-height:.94; }
.d1{ font-size:var(--t-d1); }
.d2{ font-size:var(--t-d2); }
.d3{ font-size:var(--t-d3); letter-spacing:-.016em; line-height:1.14; }

.lead{ font-size:var(--t-lead); line-height:1.55; color:var(--ink-70); max-width:54ch; text-wrap:pretty; }
.muted{ color:var(--graphite); }
.sm{ font-size:var(--t-sm); }

.micro{ font-family:var(--ui); font-size:var(--t-micro); font-weight:600;
  letter-spacing:.17em; text-transform:uppercase; font-variation-settings:"wdth" var(--tight);
  color:var(--graphite); display:inline-block; }
.micro--ink{ color:var(--ink); }
.micro--accent{ color:var(--accent); }

.idx{ font-family:var(--ui); font-size:var(--t-micro); font-weight:700; letter-spacing:.14em;
  color:var(--accent); font-variant-numeric:tabular-nums; }
.ui{ font-family:var(--ui); }

.opener{ display:grid; grid-template-columns:repeat(12,1fr); gap:.9rem var(--gutter);
  border-top:1px solid var(--ink); padding-top:1.1rem; margin-bottom:clamp(2rem,4.5vw,3.75rem); align-items:baseline; }
.opener__idx{ grid-column:1 / 2; }
.opener__t{ grid-column:2 / 10; }
.opener__note{ grid-column:10 / 13; font-family:var(--ui); font-size:var(--t-sm); color:var(--graphite); }

/* =========================================================
   5. ASSINATURAS VISUAIS
   ========================================================= */
.mark{ display:inline-flex; align-items:center; gap:.5em; font-family:var(--ui); }
.mark__g{ display:inline-flex; gap:.2em; }
.mark__g i{ display:block; width:.6em; height:.84em; border:.15em solid currentColor; font-style:normal; }
.mark__g i:first-child{ border-right:0; color:var(--graphite); }
.mark__g i:last-child{ border-left:0; color:var(--sky); }
.mark__w{ font-weight:700; font-size:.84em; letter-spacing:.15em; text-transform:uppercase;
  font-variation-settings:"wdth" 110; }
.mark--lg{ font-size:1.3rem; }
.mark--xl{ font-size:clamp(1.8rem,4.6vw,3.6rem); }

.brk{ position:relative; padding:clamp(1.6rem,3.2vw,3.2rem) clamp(1.4rem,3vw,3rem); }
.brk::before,.brk::after{ content:""; position:absolute; top:0; bottom:0;
  width:clamp(12px,1.8vw,28px); border:1px solid var(--line); }
.brk::before{ left:0; border-right:0; }
.brk::after{ right:0; border-left:0; border-color:var(--accent); }

.trace{ width:100%; height:auto; overflow:visible; }
.trace path,.trace line,.trace polyline{ fill:none; stroke:var(--accent); stroke-width:1.5;
  vector-effect:non-scaling-stroke; stroke-linecap:square; stroke-linejoin:miter; }
.trace .grid-l{ stroke:var(--line); stroke-width:1; }
.trace .node{ fill:var(--paper); stroke:var(--accent); stroke-width:1.5; }
.js .trace .draw{ stroke-dasharray:1400; stroke-dashoffset:1400; }
.js .trace.in .draw{ stroke-dashoffset:0; transition:stroke-dashoffset 1.8s var(--slow); }

/* =========================================================
   6. HEADER + MEGA MENU
   ========================================================= */
.head{ position:sticky; top:0; z-index:80; background:rgba(255,255,255,.9);
  backdrop-filter:saturate(180%) blur(16px); border-bottom:1px solid var(--line-2);
  transition:box-shadow .4s var(--ease); }
.head.small{ box-shadow:0 1px 0 var(--line-2); }
.head__in{ display:flex; align-items:center; gap:2rem; justify-content:space-between;
  min-height:84px; transition:min-height .4s var(--ease); }
.head.small .head__in{ min-height:64px; }

.brand{ display:inline-flex; align-items:center; gap:.9rem; }
/* Logo carregado pelo cliente: altura fixa, largura proporcional, nunca deformado. */
.brand .custom-logo,.brand img{ height:26px; width:auto; max-width:min(240px,42vw);
  object-fit:contain; transition:height .4s var(--ease); }
.head.small .brand .custom-logo,.head.small .brand img{ height:22px; }
.foot .custom-logo,.foot img{ height:24px; width:auto; object-fit:contain; }
.brand__div{ width:1px; height:18px; background:var(--line); }
.brand__ctx{ font-family:var(--ui); font-size:var(--t-micro); font-weight:600; letter-spacing:.2em;
  text-transform:uppercase; color:var(--graphite); }

.nav{ display:flex; align-items:center; gap:clamp(.9rem,1.9vw,2.1rem); font-family:var(--ui); }
.nav__list{ display:flex; align-items:center; gap:clamp(.9rem,1.9vw,2.1rem); }
.nav__list > li{ position:static; }
.nav__list a,.nav__btn{ font-size:var(--t-sm); padding-block:.45rem;
  display:inline-flex; align-items:center; gap:.4rem; position:relative; }
.nav__list a::after,.nav__btn::after{ content:""; position:absolute; left:0; right:100%; bottom:.1rem;
  height:1px; background:currentColor; transition:right .4s var(--ease); }
.nav__list a:hover::after,.nav__btn[aria-expanded="true"]::after,.current-menu-item > a::after{ right:0; }
.nav__btn i{ display:block; width:.42em; height:.62em; border:1.5px solid var(--accent);
  border-right:0; font-style:normal; }
.nav__ext::after{ display:none; }
.nav__ext{ color:var(--graphite); }
.nav__ext:hover{ color:var(--ink); }

.cta-link{ font-family:var(--ui); font-size:var(--t-sm); font-weight:600; display:inline-flex;
  align-items:center; gap:.55rem; border-bottom:1px solid var(--ink); padding-bottom:.28rem; }
.cta-link:hover{ color:var(--blue); border-color:var(--blue); }

.mega{ position:absolute; left:0; right:0; top:calc(100% + 1px); background:var(--paper);
  border-top:1px solid var(--line-2); border-bottom:1px solid var(--line);
  opacity:0; visibility:hidden; transform:translateY(-8px);
  transition:opacity .32s var(--ease), transform .32s var(--ease), visibility .32s; z-index:79; }
.mega.open{ opacity:1; visibility:visible; transform:none; }
.mega__in{ display:grid; grid-template-columns:repeat(12,1fr); gap:var(--gutter);
  padding-block:clamp(2rem,3.5vw,3.25rem); }
.mega__claim{ grid-column:1 / 5; }
.mega__list{ grid-column:6 / 13; }
.mega__claim h3{ font-size:var(--t-d3); margin-top:.9rem; }
.mega__claim p{ font-size:var(--t-sm); font-family:var(--ui); color:var(--graphite); margin-top:.8rem; max-width:30ch; }
.mega__list{ display:grid; grid-template-columns:repeat(2,1fr); gap:0 var(--gutter);
  border-top:1px solid var(--line); font-family:var(--ui); }
.mega__list a{ display:flex; justify-content:space-between; gap:1rem; align-items:baseline;
  padding:.78rem 0; border-bottom:1px solid var(--line-2); font-size:var(--t-sm);
  transition:padding-left .35s var(--ease); }
.mega__list a::after{ display:none; }
.mega__list a:hover{ padding-left:.6rem; color:var(--accent); }
.mega__list em{ font-style:normal; color:var(--graphite); font-size:var(--t-micro); letter-spacing:.14em; }

.burger{ display:none; padding:.5rem; }
.burger span{ display:block; width:22px; height:1.5px; background:var(--ink); margin:5px 0;
  transition:transform .35s var(--ease), opacity .2s; }
.menu-open .burger span:nth-child(1){ transform:translateY(6.5px) rotate(45deg); }
.menu-open .burger span:nth-child(2){ opacity:0; }
.menu-open .burger span:nth-child(3){ transform:translateY(-6.5px) rotate(-45deg); }

/* =========================================================
   7. BOTOES
   ========================================================= */
.btn{ font-family:var(--ui); display:inline-flex; align-items:center; gap:.6rem;
  padding:.85rem 1.5rem; font-size:var(--t-sm); font-weight:600;
  border:1px solid var(--ink); transition:background .3s var(--ease), color .3s var(--ease), border-color .3s var(--ease); }
.btn--pri{ background-color:var(--ink); color:var(--paper); }
.btn--pri:hover{ background-color:var(--blue); border-color:var(--blue); }
.btn--sec{ background-color:transparent; color:var(--ink); border-color:var(--graphite); }
.btn--sec:hover{ border-color:var(--ink); }
.tlink{ font-family:var(--ui); font-size:var(--t-sm); font-weight:600; display:inline-flex;
  align-items:center; gap:.6rem; padding-bottom:.3rem; border-bottom:1px solid currentColor; }
.tlink span{ transition:transform .35s var(--ease); display:inline-block; }
.tlink:hover span{ transform:translateX(4px); }
.tlink:hover{ color:var(--accent); }

/* =========================================================
   8. HERO
   ========================================================= */
.hero{ padding-block:clamp(3.5rem,9vh,7rem) clamp(2.5rem,6vh,4.5rem); position:relative; overflow:hidden; background-color:var(--paper); }
.hero__t{ margin-top:clamp(1.5rem,3vw,2.4rem); }
.hero__t em{ display:block; font-style:normal; color:var(--ink-70); font-size:.52em;
  letter-spacing:-.022em; line-height:1.06; margin-top:.5em; max-width:20ch; }
.hero__lead{ margin-top:clamp(1.6rem,3vw,2.4rem); }
.hero__acts{ display:flex; flex-wrap:wrap; gap:1rem 1.5rem; margin-top:2.2rem; align-items:center; }
.hero__side{ display:flex; flex-direction:column; gap:1.4rem; padding-top:.6rem; }
.hero__stat{ border-top:1px solid var(--line); padding-top:.8rem; font-family:var(--ui); }
.hero__stat .idx{ display:block; margin-bottom:.4rem; }
.hero__stat b{ display:block; font-size:1.15rem; font-variation-settings:"wdth" 110;
  font-weight:600; letter-spacing:-.012em; }
.hero__stat span{ display:block; margin-top:.45rem; font-size:var(--t-xs); line-height:1.5; color:var(--graphite); }
.hero__fig{ margin-top:clamp(2.5rem,5vw,4rem); border-top:1px solid var(--line); padding-top:1.4rem; }

/* =========================================================
   9. NARRATIVA
   ========================================================= */
.chain li{ display:grid; grid-template-columns:repeat(12,1fr); gap:1rem var(--gutter);
  padding:clamp(1.1rem,2.4vw,1.9rem) 0; border-bottom:1px solid var(--line-2); align-items:baseline; }
.chain li > .idx{ grid-column:1 / 2; }
.chain li > h3{ grid-column:2 / 6; }
.chain li > p{ grid-column:6 / 12; }
.chain li:first-child{ border-top:1px solid var(--line); }
.chain h3{ font-size:var(--t-d3); }
.chain p{ margin:0; color:var(--graphite); font-size:var(--t-sm); font-family:var(--ui); }
.chain li:last-child h3{ color:var(--blue); }

.manifesto{ font-family:var(--display); font-variation-settings:"wdth" 108; font-weight:500;
  font-size:clamp(1.5rem,3vw,2.7rem); line-height:1.16; letter-spacing:-.024em; max-width:24ch; }

/* =========================================================
   10a. CABEÇALHO DE VERTICAL — numeral grande + divisor,
   para que Business e Advisory se leiam como capítulos
   claramente distintos, não apenas seções na rolagem.
   ========================================================= */
.vhead{ display:grid; grid-template-columns:auto 1fr; gap:clamp(1.5rem,4vw,3rem); align-items:start; }
.vhead__num{ font-family:var(--display); font-variation-settings:"wdth" var(--wide); font-weight:600;
  font-size:clamp(3.5rem,9vw,7.5rem); line-height:.85; letter-spacing:-.03em; }
.vhead__body{ max-width:56rem; }

.vkeys{ display:flex; flex-wrap:wrap; gap:.5rem; margin-top:1.4rem; }
.vkeys li{ font-family:var(--ui); font-size:var(--t-sm); font-weight:600; letter-spacing:.02em;
  border:1px solid; padding:.5rem 1rem; }

.vdivider{ display:flex; align-items:center; justify-content:center; gap:1rem;
  padding:1.4rem var(--gutter); font-family:var(--ui); font-size:var(--t-xs); font-weight:600;
  letter-spacing:.14em; text-transform:uppercase; color:var(--graphite); background-color:var(--paper);
  border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.vdivider .mark{ font-size:1rem; }

@media (max-width:860px){
  .vhead{ grid-template-columns:1fr; }
  .vhead__num{ font-size:3rem; }
  .vdivider{ flex-direction:column; gap:.5rem; text-align:center; }
}

/* =========================================================
   10b. ACORDEÃO DE PILARES — Business e Advisory como seções
   completas na mesma página, cada capacidade expansível.
   ========================================================= */
.pillaracc{ border-top:1px solid var(--ink); }
.pillaracc__item{ border-bottom:1px solid var(--line-2); scroll-margin-top:96px; }
.pillaracc__q{ width:100%; display:grid; grid-template-columns:repeat(12,1fr); gap:.5rem var(--gutter);
  align-items:baseline; text-align:left; padding:clamp(1.1rem,2.2vw,1.7rem) 0;
  transition:padding-left .4s var(--ease), background .4s var(--ease); }
.pillaracc__q:hover{ padding-left:.9rem; background:linear-gradient(90deg, var(--ivory), transparent 70%); }
.pillaracc__q .idx{ grid-column:1 / 2; }
.pillaracc__q h3{ grid-column:2 / 8; font-size:var(--t-d3); }
.pillaracc__q .promise{ grid-column:8 / 12; font-family:var(--ui); font-size:var(--t-sm); color:var(--graphite); text-align:right; }
.pillaracc__q .plus{ grid-column:12 / 13; justify-self:end; font-family:var(--ui); font-size:var(--t-micro);
  letter-spacing:.16em; text-transform:uppercase; font-weight:700; color:var(--accent); white-space:nowrap; }
.pillaracc__a{ display:grid; grid-template-rows:0fr; transition:grid-template-rows .5s var(--slow); }
.pillaracc__item.open .pillaracc__a{ grid-template-rows:1fr; }
.pillaracc__a > div{ overflow:hidden; }
.pillaracc__body{ padding:0 0 clamp(1.6rem,3vw,2.4rem); display:grid; grid-template-columns:repeat(12,1fr); gap:1.6rem var(--gutter); }
.pillaracc__lead{ grid-column:2 / 13; color:var(--ink-70); }
.pillaracc__flow{ grid-column:2 / 13; display:grid; grid-template-columns:repeat(3,1fr); gap:var(--gutter); }
.pillaracc__flow > div{ border-top:1px solid var(--ink); padding-top:.9rem; }
.pillaracc__flow > div:nth-child(2){ border-top-color:var(--accent); }
.pillaracc__flow p{ margin-top:.7rem; font-size:var(--t-sm); color:var(--ink-70); }

@media (max-width:860px){
  .pillaracc__q{ grid-template-columns:1fr; gap:.35rem; }
  .pillaracc__q .idx{ grid-column:1; }
  .pillaracc__q h3{ grid-column:1; }
  .pillaracc__q .promise{ grid-column:1; text-align:left; }
  .pillaracc__q .plus{ grid-column:1; justify-self:start; }
  .pillaracc__lead,.pillaracc__flow{ grid-column:1 / -1; }
  .pillaracc__flow{ grid-template-columns:1fr; gap:1.4rem; }
}
/* =========================================================
   14. ECOSSISTEMA CHAMBARELLI
   ========================================================= */
.ally{ display:grid; grid-template-columns:repeat(12,1fr); gap:var(--gutter); align-items:center; }
.ally > div:first-child{ grid-column:1 / 6; }
.ally__box{ grid-column:7 / 13; }
.ally__box{ border:1px solid var(--line); padding:clamp(1.6rem,3vw,2.6rem); background-color:var(--paper); }

/* Faixa de parceiros: cada logo mantém sua própria identidade de marca —
   cores originais preservadas, nunca convertidas ao sistema do Impact Co. */
.ally__pair{ display:grid; grid-template-columns:1fr 1fr; gap:var(--gutter); }
.ally__partner{ display:flex; flex-direction:column; align-items:flex-start; gap:1rem; }
.ally__partner + .ally__partner{ border-left:1px solid var(--line-2); padding-left:var(--gutter); }
.ally__logo{ height:30px; width:auto; max-width:100%; object-fit:contain; object-position:left center; display:block; }
.ally__partner h4{ font-size:var(--t-d3); margin-top:.2rem; }
.ally__partner p{ font-family:var(--ui); font-size:var(--t-sm); color:var(--graphite); margin:0; }
.ally__partner .tlink{ margin-top:.2rem; }

/* =========================================================
   15. CAPACIDADE / PILAR / EDITORIAL
   ========================================================= */
.cols{ columns:3; column-gap:var(--gutter); }
.cols li{ padding:.66rem 0; border-bottom:1px solid var(--line-2); font-family:var(--ui);
  font-size:var(--t-sm); break-inside:avoid; }

.flow{ display:grid; grid-template-columns:repeat(12,1fr); gap:var(--gutter); }
.flow > div{ grid-column:span 4; }
.flow > div{ border-top:1px solid var(--ink); padding-top:1.1rem; }
.flow > div:nth-child(2){ border-top-color:var(--accent); }
.flow p{ margin-top:.9rem; color:var(--ink-70); }

.posts{ border-top:1px solid var(--ink); }
.post-row{ display:grid; grid-template-columns:repeat(12,1fr); gap:.5rem var(--gutter);
  padding:clamp(1.1rem,2.3vw,1.9rem) 0; border-bottom:1px solid var(--line-2);
  align-items:baseline; transition:padding-left .4s var(--ease); }
.post-row > .meta:first-child{ grid-column:1 / 3; }
.post-row > h2{ grid-column:3 / 10; }
.post-row > .meta:last-child{ grid-column:11 / 13; justify-self:end; }
.post-row:hover{ padding-left:1rem; }
.post-row h2{ font-family:var(--display); font-variation-settings:"wdth" 106; font-weight:500;
  font-size:clamp(1.1rem,1.9vw,1.6rem); letter-spacing:-.018em; }
.post-row .meta{ font-family:var(--ui); font-size:var(--t-micro); letter-spacing:.16em;
  text-transform:uppercase; color:var(--graphite); font-weight:600; }

.entry{ max-width:68ch; }
.entry h2{ font-size:var(--t-d2); margin:2.6rem 0 .8rem; }
.entry h3{ font-size:var(--t-d3); margin:2rem 0 .6rem; }
.entry ul,.entry ol{ margin:0 0 1.1em 1.2em; list-style:disc; }
.entry ol{ list-style:decimal; }
.entry li{ margin-bottom:.4em; }
.entry blockquote{ margin:2rem 0; padding-left:1.4rem; border-left:2px solid var(--accent);
  font-size:var(--t-lead); color:var(--ink-70); }
.entry a{ border-bottom:1px solid var(--accent); }
.entry img,.figure-full{ margin:2rem 0; width:100%; height:auto; object-fit:contain; }
.filters{ display:flex; flex-wrap:wrap; gap:.45rem; margin-bottom:2.5rem; font-family:var(--ui); }
.filters a{ font-size:var(--t-micro); letter-spacing:.14em; text-transform:uppercase; font-weight:600;
  border:1px solid var(--line); padding:.42rem .8rem; }
.filters a:hover,.filters a.on{ background:var(--ink); color:var(--paper); border-color:var(--ink); }
.pager{ display:flex; gap:.6rem; margin-top:3rem; font-family:var(--ui); }
.pager .page-numbers{ border:1px solid var(--line); padding:.5rem .9rem; font-size:var(--t-sm); }
.pager .current{ background:var(--ink); color:var(--paper); border-color:var(--ink); }

.leaders{ display:grid; grid-template-columns:repeat(2,1fr); gap:var(--gutter); margin-top:1.2rem; }
.leaders__item h4{ font-size:var(--t-d3); }
.leaders__item p{ margin-top:.4rem; }
/* =========================================================
   17. FECHAMENTO + FOOTER
   ========================================================= */
.close{ background-color:var(--ivory); }
.close__t{ max-width:18ch; }
.close__acts{ display:flex; flex-wrap:wrap; gap:1rem 1.5rem; margin-top:2.2rem; align-items:center; }

.foot{ border-top:1px solid var(--ink); padding-block:clamp(2.5rem,6vh,4rem) 1.8rem; background-color:var(--paper); }
.foot__top{ display:grid; grid-template-columns:repeat(12,1fr); gap:2.5rem var(--gutter); }
.foot__col:nth-child(1){ grid-column:1 / 4; }
.foot__col:nth-child(2){ grid-column:4 / 7; }
.foot__col:nth-child(3){ grid-column:7 / 10; }
.foot__col:nth-child(4){ grid-column:10 / 13; }
.foot__col h4{ font-family:var(--ui); font-size:var(--t-micro); letter-spacing:.2em; text-transform:uppercase;
  color:var(--graphite); margin-bottom:1rem; font-weight:600; }
.foot__col li{ margin-bottom:.5rem; font-family:var(--ui); font-size:var(--t-sm); overflow-wrap:anywhere; }
.foot__col a:hover{ color:var(--blue); }
.foot__sig{ font-family:var(--ui); font-size:var(--t-sm); color:var(--graphite); max-width:32ch; margin-top:1rem; }
.foot__bottom{ display:flex; flex-wrap:wrap; gap:.8rem 2rem; justify-content:space-between;
  border-top:1px solid var(--line); margin-top:2.8rem; padding-top:1.3rem;
  font-family:var(--ui); font-size:var(--t-micro); letter-spacing:.08em; color:var(--graphite); }
.ext::after{ content:"↗"; font-size:.85em; margin-left:.3em; }

/* =========================================================
   18. MOVIMENTO
   ========================================================= */
[data-rv]{ opacity:0; transform:translateY(12px); }
.js [data-rv].in{ opacity:1; transform:none;
  transition:opacity .9s var(--slow), transform .9s var(--slow);
  transition-delay:calc(var(--i,0) * 80ms); }
.no-js [data-rv]{ opacity:1; transform:none; }

@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation-duration:.01ms !important; transition-duration:.01ms !important; }
  [data-rv]{ opacity:1 !important; transform:none !important; }
  .journey__st::before{ width:100% !important; }
  .js .trace .draw{ stroke-dashoffset:0 !important; }
}

/* =========================================================
   18b. MODO ESCURO DO SISTEMA
   O Impact Co. nao tem versao escura: a identidade e clara por
   definicao. Se o dispositivo estiver em modo escuro, os tokens
   sao reafirmados para que nenhuma camada externa os reescreva.
   ========================================================= */
@media (prefers-color-scheme: dark){
  :root{
    color-scheme: light;
    --paper:#FFFFFF; --ivory:#F6F5F2; --mist:#EEF0F1;
    --line:#DFDEDA; --line-2:#ECEBE7;
    --ink:#14171A; --ink-70:#45494E; --graphite:#5E656C;
    --blue:#1F6E9C; --sky:#3AA6DE; --sky-ink:#16769F;
  }
  html,body{ background-color:#FFFFFF; color:#14171A; }
  .head{ background-color:rgba(255,255,255,.9); }
  .mega,.ally__box,.choices label{ background-color:#FFFFFF; }
  .ivory,.close,.notice{ background-color:#F6F5F2; }
  .mist{ background-color:#EEF0F1; }
  .btn--pri{ background-color:#14171A; color:#FFFFFF; }
  img,svg{ filter:none; }
}

/* =========================================================
   19. RESPONSIVO
   ========================================================= */
@media (max-width:1280px){
  .caps a{ grid-template-columns:3rem minmax(0,14rem) minmax(0,1fr) auto; }
  .chain li{ grid-template-columns:3rem minmax(0,18rem) minmax(0,1fr); }
  .foot__top{ grid-template-columns:1fr 1fr; }
}
@media (max-width:1024px){
  .opener__t{ grid-column:2 / 13; }
  .opener__note{ grid-column:2 / 13; }
  .opener__note{ grid-column:2 / 13; }
  .c1-7,.c1-8,.c1-9,.c1-6,.c1-5,.c2-8,.c7-13,.c8-13,.c9-13,.c10-13{ grid-column:1 / 13; }
  .eco,.stakes,.ally{ grid-template-columns:1fr; }
  .eco__nodes,.eco__out,.stakes__list,.stakes__out,.ally > div:first-child,.ally__box,
  .founder,.flow > div,.mega__claim,.mega__list{ grid-column:1 / -1; }
  .foot__col:nth-child(1),.foot__col:nth-child(2),
  .foot__col:nth-child(3),.foot__col:nth-child(4){ grid-column:span 6; }
  .stakes__out{ position:static; }
  .journey__track{ grid-template-columns:repeat(2,1fr); }
  .mega__in{ grid-template-columns:1fr; }
}
@media (max-width:860px){
  :root{ --band:clamp(3rem,7vh,4.75rem); }
  .burger{ display:block; }
  .nav{ position:fixed; inset:64px 0 auto 0; background:var(--paper); flex-direction:column;
    align-items:stretch; gap:0; padding:1.2rem var(--gutter) 2.4rem; border-bottom:1px solid var(--line);
    transform:translateY(-115%); transition:transform .5s var(--slow);
    max-height:calc(100svh - 64px); overflow:auto; }
  .menu-open .nav{ transform:none; }
  .nav__list{ flex-direction:column; align-items:stretch; gap:0; }
  .nav__list > li{ border-bottom:1px solid var(--line-2); }
  .nav__list a,.nav__btn{ font-size:1.32rem; font-variation-settings:"wdth" 108; font-weight:500;
    padding-block:.85rem; width:100%; justify-content:space-between; }
  .nav__list a::after,.nav__btn::after{ display:none; }
  .mega{ position:static; opacity:1; visibility:visible; transform:none; border:0;
    display:none; padding-bottom:.8rem; }
  .mega.open{ display:block; }
  .mega__in{ padding-block:0 1rem; }
  .mega__claim{ display:none; }
  .mega__list{ grid-template-columns:1fr; border-top:0; }
  .mega__list a{ font-size:.95rem; padding:.6rem 0; }
  .cta-link{ margin-top:1.6rem; align-self:flex-start; }
  .brand__div,.brand__ctx{ display:none; }
  .head__in,.head.small .head__in{ min-height:64px; }

  .grid12{ display:block; }
  .opener{ display:block; }
  .opener__idx{ display:block; margin-bottom:.5rem; }
  .opener__note{ margin-top:.9rem; max-width:none; }
  .chain li,.caps a,.post-row,.flow,.founders,.foot__top{ grid-template-columns:1fr; gap:.45rem; }
  .chain li > *,.caps a > *,.post-row > *,.flow > div,.founder,
  .foot__col:nth-child(1),.foot__col:nth-child(2),
  .foot__col:nth-child(3),.foot__col:nth-child(4){ grid-column:1 / -1; justify-self:start; }
  .foot__top{ gap:2.2rem; }
  .flow{ gap:1.8rem; }
  .founders{ gap:2.5rem; }
  .caps .go{ display:none; }
  .flow{ grid-template-columns:1fr; }
  .cols{ columns:1; }
  .triad{ grid-template-columns:1fr; gap:2rem; }
  .triad__side--r{ text-align:left; }
  .triad__side--r p{ margin-left:0; }
  .triad__core{ padding:1.5rem 0; border-block:1px solid var(--line); }
  .journey__track{ grid-template-columns:1fr; }
  .journey__st{ border-top:1px solid var(--line-2); padding-top:1.2rem; }
  .journey__st:first-child{ border-top:0; }
  .founders{ grid-template-columns:1fr; }
  .ally__pair{ grid-template-columns:1fr; gap:1.6rem; }
  .ally__partner + .ally__partner{ border-left:0; padding-left:0; border-top:1px solid var(--line-2); padding-top:1.4rem; }
  .switch__tabs{ flex-direction:column; }
  .switch__tab{ border-bottom:1px solid var(--line-2); padding:1rem 0; }
  .switch__tab::before{ top:auto; bottom:-1px; }
  .hero__side{ flex-direction:row; flex-wrap:wrap; gap:1.2rem 2rem; margin-top:2.2rem; }
  .hero__stat{ flex:1 1 12rem; }
  .hero__fig{ display:none; }
  .hero{ padding-bottom:clamp(2rem,5vh,3rem); }
  .mesh{ display:none; }
}
@media (max-width:560px){
  .hero__stat{ flex:1 1 100%; }
  .foot__top{ grid-template-columns:1fr; }
}
@media (max-width:420px){
  .btn{ padding:.78rem 1.2rem; }
}

/* =========================================================
   20. IMPRESSAO
   ========================================================= */
@media print{
  .head,.nav,.close,.mesh,.trace{ display:none !important; }
  body{ background:#fff; color:#000; }
}
