/* Camada de página — Gesto Comercialização / Grupo Gesto.
   Só composição: todas as cores, tipos e medidas vêm dos tokens. */
.wrap{max-width:var(--container-max);margin-inline:auto;padding-inline:var(--gutter)}
.mono{font:var(--text-data);font-family:var(--font-mono)}
a.plain{border-bottom:0;color:inherit}
a.plain:hover{border-bottom:0;color:inherit}

/* header */
.hdr{position:sticky;top:0;z-index:50;height:72px;display:flex;align-items:center;
  background:rgba(251,251,253,.82);backdrop-filter:var(--blur-nav);
  border-bottom:var(--border-hairline-width) solid var(--border-hairline)}
.hdr .in{display:flex;align-items:center;justify-content:space-between;gap:var(--space-8);width:100%}
.lock{display:flex;align-items:center;gap:13px;border-bottom:0}
.lock:hover{border-bottom:0}
.lock img.sym{height:44px;width:44px;display:block;flex:none}
.lock .txt{display:flex;flex-direction:column}
.lock .txt .l1{display:block;font-family:var(--font-sans);font-weight:var(--weight-light);font-size:20px;
  letter-spacing:var(--tracking-brand);line-height:1.05;color:var(--text-primary)}
.lock .txt .l2{display:block;font-family:var(--font-sans);font-weight:var(--weight-regular);font-size:9.5px;
  letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--text-primary);line-height:1.4}
.lock .txt .l3{display:block;font-family:var(--font-mono);font-size:9px;letter-spacing:var(--tracking-services);
  color:var(--text-secondary);margin-top:3px}
.hdr nav{display:flex;align-items:center;gap:var(--space-6)}
.hdr nav a{font-family:var(--font-sans);font-size:var(--size-body-sm);color:var(--text-secondary);border-bottom:0}
.hdr nav a:hover{color:var(--text-primary);border-bottom:0}
.hdr nav a.here{color:var(--text-primary);border-bottom:2px solid var(--accent);padding-bottom:2px}
@media (max-width:900px){ .hdr nav a[data-opt]{display:none} }

/* botões */
.btn{display:inline-flex;align-items:center;gap:9px;padding:13px 24px;border-radius:var(--radius-pill);
  font-family:var(--font-sans);font-size:var(--size-body-sm);font-weight:var(--weight-regular);
  background:var(--ink);color:var(--white);border:1px solid var(--ink);
  transition:background var(--duration-base) var(--ease-out),color var(--duration-base) var(--ease-out)}
.btn:hover{background:#000;color:var(--white);border-color:#000}
.btn.out{background:transparent;color:var(--text-primary);border-color:var(--border-strong)}
.btn.out:hover{background:var(--gray-050);color:var(--text-primary)}
.btn.inv{background:var(--white);color:var(--ink);border-color:var(--white)}
.btn.sm{padding:9px 18px;font-size:var(--size-caption)}
.btn span.a{transition:transform var(--duration-fast) var(--ease-out)}
.btn:hover span.a{transform:translateX(3px)}

/* ritmo */
section{padding-block:var(--section-py)}
section.tight{padding-block:var(--section-py-tight)}
.eyebrow{font-family:var(--font-mono);font-size:var(--size-micro);letter-spacing:var(--tracking-eyebrow);
  text-transform:uppercase;color:var(--text-secondary);margin-bottom:var(--space-5)}
h1.display{font-family:var(--font-sans);font-weight:var(--weight-light);
  font-size:clamp(42px,6.2vw,var(--size-display-1));line-height:1.04;
  letter-spacing:var(--tracking-display);max-width:17ch}
.lede{font:var(--text-body-role);color:var(--text-secondary);max-width:56ch;margin-top:var(--space-6)}
.h2{font-family:var(--font-sans);font-weight:var(--weight-light);font-size:clamp(28px,3.6vw,var(--size-h1));
  line-height:1.15;letter-spacing:var(--tracking-display);max-width:24ch}
.body{font-size:var(--size-body);color:var(--text-secondary);max-width:68ch;margin-top:var(--space-5)}
.body b,.lede b,.h2 b{font-weight:var(--weight-regular);color:var(--text-primary)}
.actions{display:flex;gap:var(--space-4);margin-top:var(--space-8);flex-wrap:wrap}

/* cartões */
.grid{display:grid;gap:var(--grid-gap);margin-top:var(--space-10)}
.g2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}
.g3{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.card{background:var(--surface-card);border:var(--border-hairline-width) solid var(--border-hairline);
  border-radius:var(--radius-lg);padding:var(--space-8);
  transition:border-color var(--duration-base) var(--ease-out),transform var(--duration-base) var(--ease-out),box-shadow var(--duration-base) var(--ease-out)}
.card:hover{border-color:var(--border-strong);transform:translateY(-2px);box-shadow:var(--shadow-lift)}
.card .tag{font-family:var(--font-mono);font-size:var(--size-micro);letter-spacing:var(--tracking-eyebrow);
  text-transform:uppercase;color:var(--text-secondary);margin-bottom:var(--space-4)}
.card h3{font:var(--text-h3);letter-spacing:-.01em;margin-bottom:var(--space-4)}
.card p{font-size:var(--size-body-sm);color:var(--text-secondary);line-height:var(--leading-relaxed)}
.card ul{margin:var(--space-5) 0 0;padding:0;list-style:none}
.card li{font-size:var(--size-body-sm);color:var(--text-secondary);padding-block:var(--space-3);
  border-top:var(--border-hairline-width) solid var(--border-hairline);line-height:var(--leading-snug)}
.card .foot{margin-top:var(--space-6);padding-top:var(--space-4);
  border-top:var(--border-hairline-width) solid var(--border-hairline);
  font-family:var(--font-mono);font-size:var(--size-caption);color:var(--text-secondary)}
.stat{font-family:var(--font-sans);font-weight:var(--weight-light);font-size:var(--size-stat);
  line-height:1;letter-spacing:-.03em;font-variant-numeric:tabular-nums;margin-block:var(--space-4) var(--space-3)}

/* factos em hairline */
.facts{display:grid;gap:0 var(--grid-gap);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));margin-top:var(--space-10)}
.fact{border-top:2px solid var(--ink);padding-top:var(--space-5)}
.fact .k{font-family:var(--font-mono);font-size:var(--size-micro);letter-spacing:var(--tracking-eyebrow);
  text-transform:uppercase;color:var(--text-secondary)}
.fact h3{font:var(--text-h3);letter-spacing:-.01em;margin:var(--space-4) 0 var(--space-3)}
.fact p{font-size:var(--size-body-sm);color:var(--text-secondary);line-height:var(--leading-relaxed)}

/* bloco escuro full-bleed */
.dark{background:var(--surface-dark);color:var(--text-inverse);padding-block:var(--section-py)}
.dark .eyebrow{color:var(--text-inverse-secondary)}
.dark .h2{color:var(--text-inverse)}
.dark .body{color:var(--text-inverse-secondary)}
.dark .cols{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(32px,5vw,72px);align-items:start}
.spec{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-6);
  padding-block:var(--space-5);border-top:1px solid var(--border-hairline-dark)}
.spec:last-child{border-bottom:1px solid var(--border-hairline-dark)}
.spec .k{font-size:var(--size-body-sm);color:var(--text-inverse)}
.spec .v{font-family:var(--font-mono);font-size:var(--size-caption);color:var(--text-inverse-secondary);text-align:right}
@media (max-width:820px){ .dark .cols{grid-template-columns:1fr} }

/* cadeia */
.chain{margin-top:var(--space-10);border:var(--border-hairline-width) solid var(--border-hairline);
  border-radius:var(--radius-xl);background:var(--surface-card);overflow:hidden}
.chain .top{padding:var(--space-8);text-align:center;border-bottom:var(--border-hairline-width) solid var(--border-hairline)}
.chain .top .k{font-family:var(--font-mono);font-size:var(--size-micro);letter-spacing:var(--tracking-eyebrow);
  text-transform:uppercase;color:var(--text-secondary)}
.chain .top h3{font-family:var(--font-sans);font-weight:var(--weight-light);font-size:var(--size-h3);
  margin:var(--space-3) 0 var(--space-3);letter-spacing:var(--tracking-display)}
.chain .top p{font-size:var(--size-body-sm);color:var(--text-secondary);max-width:64ch;margin-inline:auto}
.chain .rule{height:2px;background:var(--gradient-ramp-h)}
.chain .two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
.chain .two > a{padding:var(--space-8);border-right:var(--border-hairline-width) solid var(--border-hairline);
  border-bottom:0;display:block;transition:background var(--duration-base) var(--ease-out)}
.chain .two > a:last-child{border-right:0}
.chain .two > a:hover{background:var(--gray-050);border-bottom:0}
.chain .two .nm{font:var(--text-h3);letter-spacing:-.01em;color:var(--text-primary)}
.chain .two .rl{font-family:var(--font-mono);font-size:var(--size-micro);letter-spacing:var(--tracking-eyebrow);
  text-transform:uppercase;color:var(--text-secondary);margin:var(--space-3) 0 var(--space-4)}
.chain .two p{font-size:var(--size-body-sm);color:var(--text-secondary);line-height:var(--leading-relaxed)}
.chain .two .go{margin-top:var(--space-4);font-size:var(--size-body-sm);color:var(--text-primary)}
@media (max-width:820px){ .chain .two{grid-template-columns:1fr}
  .chain .two > a{border-right:0;border-bottom:var(--border-hairline-width) solid var(--border-hairline)} }

/* mercados */
.mk{display:grid;gap:var(--grid-gap);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-top:var(--space-10)}
.mk .h{font-family:var(--font-mono);font-size:var(--size-micro);letter-spacing:var(--tracking-eyebrow);
  text-transform:uppercase;color:var(--text-secondary);padding-bottom:var(--space-4);
  border-bottom:2px solid var(--ink)}
.mk .r{font-size:var(--size-body-sm);color:var(--text-secondary);padding-block:var(--space-4);
  border-bottom:var(--border-hairline-width) solid var(--border-hairline)}

/* gráfico */
.chart{margin-top:var(--space-10)}
.chart svg{width:100%;height:auto;display:block}
.prov{font-family:var(--font-mono);font-size:var(--size-caption);color:var(--text-secondary);margin-top:var(--space-4)}

/* contacto */
.mail{font-family:var(--font-mono);font-size:var(--size-caption);color:var(--text-primary);
  border-bottom:1px solid var(--border-strong)}
.mail:hover{color:var(--text-primary);border-color:var(--ink)}

/* rodapé escuro */
footer.site{background:var(--surface-dark);color:var(--text-inverse);padding-block:var(--space-16) var(--space-12)}
footer.site .cols{display:grid;gap:var(--grid-gap);grid-template-columns:1.6fr repeat(3,minmax(150px,1fr))}
footer.site .t{font-family:var(--font-mono);font-size:var(--size-micro);letter-spacing:var(--tracking-eyebrow);
  text-transform:uppercase;color:var(--text-inverse-secondary);margin-bottom:var(--space-5)}
footer.site p{font-size:var(--size-body-sm);color:var(--text-inverse-secondary);line-height:var(--leading-relaxed)}
footer.site a{display:block;font-size:var(--size-body-sm);color:var(--text-inverse-secondary);
  border-bottom:0;padding-block:4px}
footer.site a:hover{color:var(--text-inverse);border-bottom:0}
footer.site .legal{margin-top:var(--space-12);padding-top:var(--space-6);
  border-top:1px solid var(--border-hairline-dark);font-family:var(--font-mono);
  font-size:var(--size-micro);letter-spacing:.06em;color:var(--text-inverse-secondary)}
footer.site img.sym{height:40px;width:40px;display:block;margin-bottom:var(--space-5)}
@media (max-width:820px){ footer.site .cols{grid-template-columns:1fr 1fr} }

/* painel de marcas */
.brands{margin-top:var(--space-10);border:var(--border-hairline-width) solid var(--border-hairline);
  border-radius:var(--radius-xl);background:var(--surface-card);overflow:hidden;
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
.brands .b{padding:var(--space-8) var(--space-6);text-align:center;
  border-right:var(--border-hairline-width) solid var(--border-hairline);
  border-bottom:var(--border-hairline-width) solid var(--border-hairline);
  display:flex;flex-direction:column;justify-content:center;gap:var(--space-3);min-height:132px}
.brands .b:nth-child(4n){border-right:0}
.brands .b:nth-last-child(-n+4){border-bottom:0}
.brands .nm{font-family:var(--font-sans);font-weight:var(--weight-light);font-size:var(--size-h3);
  letter-spacing:var(--tracking-display);color:var(--text-primary);line-height:1.1}
.brands .cx{font-family:var(--font-mono);font-size:var(--size-micro);letter-spacing:var(--tracking-eyebrow);
  text-transform:uppercase;color:var(--text-secondary)}
@media (max-width:980px){ .brands{grid-template-columns:repeat(2,minmax(0,1fr))}
  .brands .b{border-right:var(--border-hairline-width) solid var(--border-hairline);
    border-bottom:var(--border-hairline-width) solid var(--border-hairline)}
  .brands .b:nth-child(2n){border-right:0}
  .brands .b:nth-last-child(-n+2){border-bottom:0} }
