/* =====================================================================
   Vigna Advogados v2 — main.css
   BEM naming. Mobile-first. Modern Bold.
   ===================================================================== */

/* ---------- 1. Tokens ---------- */
:root {
  /* Palette */
  --navy:        #071D55;
  --navy-deep:   #051442;
  --navy-soft:   #1A3D82;
  --orange:      #F99500;
  --orange-deep: #CC7A00;
  --bone:        #f6f3ec;
  --bone-deep:   #ede9dc;
  --paper:       #ffffff;
  --ink:         #0f1a30;
  --ink-soft:    #4a566f;
  --line:        #e5e2d8;

  /* Typography */
  --font-sans: 'Inter', system-ui, -apple-system, sans-serif;

  /* Spacing scale (multiples of 8) */
  --s-1: 8px;  --s-2: 16px;  --s-3: 24px;  --s-4: 32px;
  --s-5: 48px; --s-6: 64px;  --s-7: 96px;  --s-8: 128px;
  --s-9: 160px; --s-10: 200px;

  /* Other */
  --header-h: 88px;
  --maxw: 1320px;
  --radius: 0;       /* Modern Bold: no rounding */
  --tx-fast: 200ms;
  --tx: 400ms;
  --tx-slow: 600ms;
}

/* ---------- 2. Reset ---------- */
*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; padding: 0; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
  font-family: var(--font-sans);
  font-size: 16px;
  line-height: 1.65;
  color: var(--ink);
  background: var(--paper);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
img, svg, video { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
button { background: none; border: none; cursor: pointer; font: inherit; color: inherit; }
ul, ol { list-style: none; }
em, i { font-style: normal; }

/* ---------- 3. Skip link (a11y) ---------- */
.skip-link {
  position: absolute;
  top: -100px;
  left: 16px;
  padding: 12px 20px;
  background: var(--navy);
  color: #fff;
  font-weight: 600;
  z-index: 10000;
  transition: top var(--tx-fast);
}
.skip-link:focus { top: 16px; }

/* ---------- 4. Container ---------- */
.container {
  width: 100%;
  max-width: var(--maxw);
  margin-inline: auto;
  padding-inline: clamp(20px, 5vw, 80px);
}

/* ---------- 5. Section base ---------- */
.section { padding-block: clamp(40px, 5vw, 88px); }
.section--sm { padding-block: clamp(28px, 3.5vw, 56px); }
.section--lg { padding-block: clamp(56px, 7vw, 120px); }

/* ---------- 6. Focus visible (a11y) ---------- */
:focus-visible {
  outline: 2px solid var(--orange);
  outline-offset: 2px;
}

/* ====== Header ====== */
.header {
  position: fixed;
  inset: 0 0 auto 0;
  z-index: 100;
  height: var(--header-h);
  background: transparent;
  transition: background var(--tx-fast) ease, box-shadow var(--tx-fast) ease;
}
.header > .container { height: 100%; }
.header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 100%;
}
.header__logo { display: inline-flex; align-items: center; height: 32px; }
.header__logo svg { height: 100%; width: auto; display: block; }
.header__logo-dark,
.header__logo-light { height: 100%; align-items: center; }
.header__logo-dark { display: none; }
.header__logo-light { display: inline-flex; }

.header__nav {
  display: none;
  align-items: center;
  gap: clamp(20px, 2.5vw, 36px);
}
@media (min-width: 1024px) {
  .header__nav { display: flex; }
}
.header__nav-link {
  font: 500 14px/1 var(--font-sans);
  color: #fff;
  letter-spacing: 0.01em;
  position: relative;
  padding: 8px 0;
  transition: color var(--tx-fast);
}
.header__nav-link::after {
  content: '';
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 2px;
  background: var(--orange);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform var(--tx-fast);
}
.header__nav-link:hover::after,
.header__nav-link.is-current::after { transform: scaleX(1); }

.header__nav-cta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 12px 20px;
  background: var(--orange);
  color: #fff;
  font: 600 14px/1 var(--font-sans);
  border-radius: 6px;
  transition: background var(--tx-fast);
}
.header__nav-cta:hover { background: var(--orange-deep); }

/* Scrolled state */
.header.is-scrolled,
body[data-page="blog-post"] .header {
  background: var(--paper);
  box-shadow: 0 1px 0 var(--line);
}
.header.is-scrolled .header__logo-dark,
body[data-page="blog-post"] .header__logo-dark { display: inline-flex; }
.header.is-scrolled .header__logo-light,
body[data-page="blog-post"] .header__logo-light { display: none; }
.header.is-scrolled .header__nav-link,
body[data-page="blog-post"] .header__nav-link { color: var(--ink); }
.header.is-scrolled .header__burger-bar,
body[data-page="blog-post"] .header__burger-bar { background: var(--ink); }

/* Burger */
.header__burger {
  display: inline-flex;
  flex-direction: column;
  gap: 6px;
  width: 32px;
  height: 24px;
  justify-content: center;
}
@media (min-width: 1024px) { .header__burger { display: none; } }
.header__burger-bar {
  display: block;
  width: 100%;
  height: 2px;
  background: #fff;
  transition: background var(--tx-fast);
}

/* ====== Mobile menu ====== */
.mobile-menu {
  position: fixed;
  inset: 0;
  z-index: 200;
  background: var(--navy-deep);
  color: #fff;
  display: flex;
  flex-direction: column;
  padding: 24px clamp(20px, 5vw, 60px);
  opacity: 0;
  visibility: hidden;
  transition: opacity var(--tx) ease, visibility 0s linear var(--tx);
}
.mobile-menu.is-open {
  opacity: 1;
  visibility: visible;
  transition: opacity var(--tx) ease;
}
.mobile-menu__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: var(--header-h);
}
.mobile-menu__logo { display: inline-flex; height: 32px; }
.mobile-menu__logo svg { height: 100%; width: auto; }
.mobile-menu__close {
  font-size: 40px;
  line-height: 1;
  color: #fff;
  width: 44px;
  height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.mobile-menu__nav {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 8px;
}
.mobile-menu__link {
  display: block;
  font: 700 clamp(28px, 7vw, 44px)/1.1 var(--font-sans);
  letter-spacing: -0.01em;
  padding: 12px 0;
  color: #fff;
  opacity: 0;
  transform: translateY(20px);
  transition: opacity var(--tx) ease, transform var(--tx) ease, color var(--tx-fast);
}
.mobile-menu.is-open .mobile-menu__link {
  opacity: 1;
  transform: translateY(0);
  transition-delay: calc(80ms * var(--i));
}
.mobile-menu__link:hover span,
.mobile-menu__link:focus span { color: var(--orange); }
.mobile-menu__link--cta span { color: var(--orange); }
.mobile-menu__foot {
  display: flex;
  gap: 20px;
  padding-block: 24px;
}
.mobile-menu__foot a {
  display: inline-flex;
  width: 24px;
  height: 24px;
  color: #fff;
  opacity: .7;
  transition: opacity var(--tx-fast);
}
.mobile-menu__foot a:hover { opacity: 1; }
.mobile-menu__foot svg { width: 100%; height: 100%; fill: currentColor; }

body.menu-open { overflow: hidden; }

/* ====== Buttons ====== */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 13px 22px;
  font: 600 13px/1 var(--font-sans);
  letter-spacing: 0.01em;
  border-radius: 6px;
  transition: background var(--tx-fast), color var(--tx-fast), border-color var(--tx-fast);
  cursor: pointer;
}
.btn--primary {
  background: var(--orange);
  color: #fff;
}
.btn--primary:hover { background: var(--orange-deep); }

.btn--navy {
  background: var(--navy);
  color: #fff;
}
.btn--navy:hover { background: var(--orange); color: #fff; }

.btn--ghost-dark {
  background: transparent;
  color: #fff;
  border: 1px solid rgba(255, 255, 255, 0.3);
}
.btn--ghost-dark:hover { background: rgba(255, 255, 255, 0.08); border-color: rgba(255, 255, 255, 0.5); }

.btn--ghost-light {
  background: transparent;
  color: var(--navy);
  border: 1px solid var(--line);
}
.btn--ghost-light:hover { background: var(--bone); border-color: var(--ink-soft); }

.btn--sm { padding: 12px 20px; font-size: 14px; }

.btn__arrow { transition: transform var(--tx-fast); }
.btn:hover .btn__arrow { transform: translateX(4px); }

/* ====== Eyebrow ====== */
.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: 11px;
}
.eyebrow__num {
  color: var(--orange);
  font-weight: 600;
  font-feature-settings: "tnum";
}
.eyebrow__text {
  font-weight: 500;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ink-soft);
}
.eyebrow__rule {
  display: inline-block;
  width: 32px;
  height: 1px;
  background: currentColor;
  opacity: 0.3;
}
.eyebrow--light .eyebrow__text { color: rgba(255, 255, 255, 0.6); }

/* ====== Section title ====== */
.section-title {
  font: 600 clamp(28px, 2.8vw, 44px)/1.15 var(--font-sans);
  letter-spacing: -0.015em;
  color: var(--ink);
  text-wrap: balance;
}
.section-title--light { color: #fff; }
.section-title em,
.section-title--accent { color: var(--orange); }

/* ====== Section lead ====== */
.section-lead {
  font: 400 16px/1.55 var(--font-sans);
  color: var(--ink-soft);
  max-width: 64ch;
}
.section-lead--light { color: rgba(255, 255, 255, 0.8); }

/* ====== Block 1: Hero ====== */
.hero {
  position: relative;
  min-height: clamp(520px, 78vh, 720px);
  display: flex;
  align-items: center;
  color: #fff;
  overflow: hidden;
}
.hero__bg,
.hero__bg img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.hero__bg img {
  filter: grayscale(0.9) contrast(1.1);
  transform-origin: center top;
  will-change: transform;
}
.hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(5, 20, 66, 0.88) 0%, rgba(7, 29, 85, 0.72) 100%);
}

/* Malha de triângulos ▲▽ tesselados no canto inferior direito (motivo do logo) */
.hero__triangles {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  overflow: hidden;
}

/* --tri-size:  tamanho de cada triângulo (todos iguais)
   --tri-gap:   espaço horizontal entre eles
   --row-gap:   espaço vertical entre linhas (calculado a partir do tri-size)
   --base-y:    distância do canto inferior */
.hero__triangles {
  --tri-size: 34px;
  --tri-gap: 5px;
  --row-gap: 8px;
  --base-y: var(--row-gap);
  will-change: transform;
}
@media (min-width: 768px)  { .hero__triangles { --tri-size: 42px; --tri-gap: 6px; --row-gap: 10px; } }
@media (min-width: 1280px) { .hero__triangles { --tri-size: 50px; --tri-gap: 7px; --row-gap: 12px; } }

.hero__tri-row {
  position: absolute;
  right: 2%;
  /* cada linha sobe (tri-size + row-gap) × índice da linha */
  bottom: calc(var(--base-y) + var(--row) * (var(--tri-size) + var(--row-gap)));
  display: flex;
  gap: var(--tri-gap);
  color: var(--orange);
}
.hero__tri {
  display: block;
  width: var(--tri-size);
  height: var(--tri-size);
  flex-shrink: 0;
  opacity: 0;
  transform: translateY(10px) scale(0.8);
  animation: hero-tri-reveal 1100ms cubic-bezier(0.16, 1, 0.3, 1) forwards;
  animation-delay: var(--delay, 0ms);
}

@keyframes hero-tri-reveal {
  from {
    opacity: 0;
    transform: translateY(10px) scale(0.8);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

/* Depois do reveal (JS adiciona .is-revealed via animationend),
   a animation é desligada e a transition controla a opacity.
   Isso é necessário porque 'animation: forwards' bloqueia transitions na mesma propriedade. */
.hero__tri.is-revealed {
  animation: none;
  opacity: 1;
  transform: none;
  transition: opacity 1100ms cubic-bezier(0.4, 0, 0.6, 1);
}

/* Fade contínuo aleatório — apaga até 15% e volta */
.hero__tri.is-revealed.is-fading {
  opacity: 0.15;
}

@media (prefers-reduced-motion: reduce) {
  .hero__bg img { transform: none !important; }
  .hero__tri-row { transform: none !important; }
  .hero__tri {
    animation: none;
    opacity: 1;
    transform: none;
  }
}
.hero__container {
  position: relative;
  z-index: 2;
  min-height: inherit;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding-block: var(--s-5);
  padding-top: calc(var(--header-h) + var(--s-4));
}
/* Mobile: encurta o topo (header já dá ar) e abre o rodapé pra não colar nos triângulos */
@media (max-width: 767px) {
  .hero__container {
    justify-content: flex-start;
    padding-top: calc(var(--header-h) + var(--s-2));
    padding-bottom: clamp(180px, 32vw, 260px);
  }
}
.hero__inner {
  max-width: 880px;
}
.hero__title {
  font: 700 clamp(34px, 4vw, 60px)/1.08 var(--font-sans);
  letter-spacing: -0.02em;
  max-width: 22ch;
  text-wrap: balance;
}
.hero__title-line { display: block; }
.hero__title-accent {
  color: var(--orange);
  font-style: normal;
}
.hero__tagline {
  margin-top: var(--s-3);
  font: 400 clamp(15px, 1.2vw, 17px)/1.6 var(--font-sans);
  color: rgba(255, 255, 255, 0.85);
  max-width: 56ch;
}
.hero__ctas {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: var(--s-4);
}

.hero__meta {
  margin-top: var(--s-5);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.55);
}

/* Hero cascade reveal */
@keyframes hero-rise {
  from { opacity: 0; transform: translateY(20px); }
  to   { opacity: 1; transform: translateY(0); }
}
.hero__title-line,
.hero__tagline,
.hero__ctas,
.hero__meta {
  opacity: 0;
  animation: hero-rise 800ms cubic-bezier(0.16, 1, 0.3, 1) forwards;
}
.hero__title-line:nth-child(1) { animation-delay: 100ms; }
.hero__title-line:nth-child(2) { animation-delay: 240ms; }
.hero__tagline { animation-delay: 420ms; }
.hero__ctas    { animation-delay: 560ms; }
.hero__meta    { animation-delay: 720ms; }

@media (prefers-reduced-motion: reduce) {
  .hero__title-line,
  .hero__tagline,
  .hero__ctas,
  .hero__meta {
    animation: none;
    opacity: 1;
    transform: none;
  }
}

/* ====== Block 2: Numbers (3 big numbers, no title) ====== */
.numbers { background: var(--bone); }
.numbers__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--s-5);
}
@media (min-width: 768px) {
  .numbers__grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 0;
  }
  .numbers__item + .numbers__item {
    border-left: 1px solid rgba(249, 149, 0, 0.4);
    padding-left: clamp(24px, 4vw, 64px);
  }
}
.numbers__item {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: clamp(16px, 2vw, 28px);
  min-width: 0;
}
.numbers__value {
  font: 700 clamp(48px, 5vw, 80px)/0.95 var(--font-sans);
  letter-spacing: -0.03em;
  color: var(--navy);
  font-feature-settings: "tnum";
  flex: 0 0 auto;
}
.numbers__label {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}
.numbers__label strong {
  font: 600 17px/1.2 var(--font-sans);
  color: var(--navy);
}
.numbers__label span {
  font: 400 15px/1.4 var(--font-sans);
  color: var(--ink-soft);
}

/* ====== Block 3: Practice Areas ====== */
.areas { background: var(--paper); }
.areas__head {
  display: flex;
  flex-direction: column;
  gap: var(--s-3);
  margin-bottom: var(--s-4);
  max-width: 62ch;
}
.areas__title { color: var(--navy); max-width: 28ch; }
.areas__lead { max-width: 56ch; }

/* --- Modular carousel with pages + pagination bars --- */
.areas__carousel { position: relative; }

/* Mobile/tablet: track is a flat grid; pages are transparent (display: contents) */
.areas__track {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
}
@media (min-width: 640px) {
  .areas__track { grid-template-columns: repeat(2, 1fr); gap: 14px; }
}

/* Desktop: track becomes a horizontal scroll-snap flex carousel of pages */
@media (min-width: 1024px) {
  .areas__track {
    display: flex;
    gap: 16px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    scrollbar-width: none;
    -ms-overflow-style: none;
  }
  .areas__track::-webkit-scrollbar { display: none; }
}

/* Track uses data-anim for IO trigger, but stays visible — children own the cascade */
.areas__track[data-anim] {
  opacity: 1;
  transform: none;
}

/* Page: ghost at mobile (cards flow up into track grid), real grid at desktop */
.areas__page { display: contents; }
@media (min-width: 1024px) {
  .areas__page {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    grid-template-rows: repeat(2, clamp(120px, 12vw, 140px));
    gap: 16px;
    flex: 0 0 100%;
    scroll-snap-align: start;
  }
}

/* Pagination (desktop only): bars on left, arrows on right */
.areas__pagination {
  display: none;
  align-items: center;
  justify-content: space-between;
  gap: var(--s-4);
  margin-top: var(--s-4);
}
@media (min-width: 1024px) {
  .areas__pagination { display: flex; }
}

.areas__bars {
  display: inline-flex;
  align-items: center;
  gap: 14px;
}
.areas__bar {
  width: clamp(72px, 7vw, 110px);
  height: 4px;
  background: var(--line);
  border: 0;
  border-radius: 999px;
  padding: 0;
  cursor: pointer;
  transition: background 280ms ease, transform 280ms ease;
}
.areas__bar:hover { background: var(--ink-soft); }
.areas__bar.is-active {
  background: var(--orange);
  transform: scaleY(1.5);
}

/* Prev / Next arrows */
.areas__arrows {
  display: inline-flex;
  align-items: center;
  gap: 10px;
}
.areas__arrow {
  width: 44px;
  height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  color: var(--navy);
  border: 1px solid var(--orange);
  border-radius: 999px;
  font: 500 18px/1 var(--font-sans);
  cursor: pointer;
  transition: background 280ms ease, border-color 280ms ease, color 280ms ease, transform 280ms ease;
}
.areas__arrow:hover:not(:disabled) {
  background: var(--orange);
  border-color: var(--orange);
  color: #fff;
}
.areas__arrow:active:not(:disabled) { transform: scale(0.96); }
.areas__arrow:disabled {
  opacity: 0.35;
  cursor: not-allowed;
}

.areas__module {
  position: relative;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--s-2);
  /* top maior pra abrir espaço sob o triângulo; right menor pra o título caber em 2 linhas */
  padding: clamp(38px, 3.5vw, 44px) clamp(14px, 1.2vw, 16px) clamp(20px, 2vw, 28px) clamp(20px, 2vw, 28px);
  min-height: clamp(120px, 12vw, 140px);
  background: var(--bone);
  color: var(--navy);
  border-radius: 10px;
  text-decoration: none;
  opacity: 0;
  transform: translateY(20px);
  transition: background 280ms ease, color 280ms ease, transform 280ms ease;
}
/* Triângulo do logo no canto superior esquerdo (orange em ambos os estados) */
.areas__module::before {
  content: '';
  position: absolute;
  top: clamp(16px, 1.6vw, 20px);
  left: clamp(20px, 2vw, 28px);
  width: 13px;
  height: 12px;
  background: var(--orange);
  clip-path: polygon(50% 0%, 100% 100%, 0% 100%);
  transition: transform 280ms ease;
}
.areas__module:hover::before { transform: translateY(-2px); }

@keyframes area-rise {
  from { opacity: 0; transform: translateY(20px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* Initial cascade — fires when track scrolls into vertical view; runs on all 20 cards */
.areas__track.is-revealed .areas__page > .areas__module {
  animation: area-rise 650ms cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

/* Column stagger per breakpoint (relative to position within each page) */
@media (min-width: 1024px) {
  .areas__track.is-revealed .areas__page > .areas__module:nth-child(4n+1) { animation-delay: 0ms; }
  .areas__track.is-revealed .areas__page > .areas__module:nth-child(4n+2) { animation-delay: 80ms; }
  .areas__track.is-revealed .areas__page > .areas__module:nth-child(4n+3) { animation-delay: 160ms; }
  .areas__track.is-revealed .areas__page > .areas__module:nth-child(4n+4) { animation-delay: 240ms; }
}
@media (min-width: 640px) and (max-width: 1023px) {
  .areas__track.is-revealed .areas__page > .areas__module:nth-child(2n+1) { animation-delay: 0ms; }
  .areas__track.is-revealed .areas__page > .areas__module:nth-child(2n+2) { animation-delay: 80ms; }
}

.areas__module-title {
  font: 600 clamp(15px, 1.05vw, 17px)/1.3 var(--font-sans);
  letter-spacing: -0.005em;
  color: inherit;
  max-width: 22ch;
}
.areas__module-arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  flex-shrink: 0;
  font-size: 16px;
  color: var(--navy);
  opacity: 0;
  transform: translateX(-8px);
  transition: opacity 280ms ease, transform 280ms ease, color 280ms ease;
}

/* Hover state — navy fill, orange arrow slides in */
.areas__module:hover {
  background: var(--navy);
  color: #fff;
  transform: translateY(-2px);
}
.areas__module:hover .areas__module-arrow {
  opacity: 1;
  transform: translateX(0);
  color: var(--orange);
}

@media (prefers-reduced-motion: reduce) {
  .areas__module {
    opacity: 1 !important;
    transform: none !important;
    animation: none !important;
    transition: none !important;
  }
  .areas__module-arrow { transition: none !important; transform: none !important; opacity: 1; }
  .areas__track { scroll-behavior: auto; }
  .areas__bar { transition: none !important; }
}

/* ====== Block 4: Tecnologia & Inteligência ====== */
.tech {
  background: var(--navy-deep);
  color: #fff;
}
.tech__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--s-5);
}
@media (min-width: 1024px) {
  .tech__grid {
    grid-template-columns: 5fr 7fr;
    gap: var(--s-6);
  }
}
.tech__main {
  display: flex;
  flex-direction: column;
  gap: var(--s-3);
}
.tech__title { margin-top: 4px; }
.tech__lead { margin-top: var(--s-2); }

.tech__support {
  display: flex;
  flex-direction: column;
}
.tech__support-item {
  position: relative;
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: var(--s-3);
  align-items: center;
  padding-block: 18px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}
.tech__support-item:first-child { border-top: 1px solid rgba(255, 255, 255, 0.1); }
.tech__support-code {
  font: 500 11px/1 'JetBrains Mono', ui-monospace, monospace;
  color: var(--orange);
  letter-spacing: 0.08em;
}
.tech__support-name {
  font: 600 17px/1.2 var(--font-sans);
  color: #fff;
}
.tech__support-desc {
  margin-top: 2px;
  font-size: 13px;
  color: rgba(255, 255, 255, 0.65);
}
.tech__support-icon {
  display: inline-flex;
  width: 22px;
  height: 22px;
  color: rgba(255, 255, 255, 0.4);
}
.tech__support-icon svg { width: 100%; height: 100%; }

/* --- Differentials (grid of 8 cards) --- */
/* Diferenciais — section separada, slider horizontal de uma linha */
.tech-diffs {
  background: var(--navy);
  color: #fff;
  padding-block: clamp(20px, 2.5vw, 44px);
}
.tech-diffs__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--s-4);
  flex-wrap: wrap;
  margin-bottom: var(--s-3);
}
.tech-diffs__title {
  margin: 0;
  font: 600 clamp(20px, 1.8vw, 28px)/1.2 var(--font-sans);
  letter-spacing: -0.015em;
  color: #fff;
  text-align: left;
}

.tech-diffs__slider {
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  scrollbar-width: none;
  -ms-overflow-style: none;
  /* mantém o padding-inline do container nas bordas */
  padding-inline: clamp(20px, 5vw, 80px);
  /* fade nas bordas pra indicar mais conteúdo */
  mask-image: linear-gradient(to right, transparent 0, #000 4%, #000 96%, transparent 100%);
  -webkit-mask-image: linear-gradient(to right, transparent 0, #000 4%, #000 96%, transparent 100%);
}
.tech-diffs__slider::-webkit-scrollbar { display: none; }

.tech-diffs__track {
  display: flex;
  gap: 14px;
  list-style: none;
  padding: 0;
  margin: 0;
}
/* Especificidade aumentada (2 classes) pra vencer o .tech__diff que aparece depois no arquivo com opacity:0 */
.tech-diffs__track .tech-diffs__slide {
  flex: 0 0 clamp(260px, 28vw, 320px);
  scroll-snap-align: start;
  opacity: 1;
  transform: none;
  background: var(--navy-soft);
  border-color: rgba(255, 255, 255, 0.08);
  /* espaço no topo pro triângulo do logo */
  padding-top: 42px;
}
/* Triângulo do logo no canto superior esquerdo (laranja; vira navy no hover, que fica laranja) */
.tech-diffs__track .tech-diffs__slide::before {
  content: '';
  position: absolute;
  top: 22px;
  left: 22px;
  width: 13px;
  height: 12px;
  background: var(--orange);
  clip-path: polygon(50% 0%, 100% 100%, 0% 100%);
  transition: background 280ms ease, transform 280ms ease;
}
.tech-diffs__track .tech-diffs__slide:hover {
  background: var(--orange);
  color: var(--navy);
  border-color: var(--orange);
}
.tech-diffs__track .tech-diffs__slide:hover::before {
  background: var(--navy);
  transform: translateY(-2px);
}
.tech-diffs__track .tech-diffs__slide:hover .tech__diff-tag,
.tech-diffs__track .tech-diffs__slide:hover .tech__diff-desc,
.tech-diffs__track .tech-diffs__slide:hover .tech__diff-title { color: var(--navy); }

/* Slider data-anim — só faz fade no track inteiro, sem cascade individual */
.tech-diffs__slider[data-anim] { opacity: 0; transform: translateY(20px); transition: opacity 700ms ease, transform 700ms ease; }
.tech-diffs__slider[data-anim].is-revealed { opacity: 1; transform: translateY(0); }

/* Setas de navegação do slide (agora dentro do header, à direita) */
.tech-diffs__nav {
  display: flex;
  align-items: center;
  gap: 10px;
}
.tech-diffs__arrow {
  width: 44px;
  height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  color: #fff;
  border: 1px solid var(--orange);
  border-radius: 999px;
  font: 500 18px/1 var(--font-sans);
  cursor: pointer;
  transition: background 280ms ease, color 280ms ease, transform 280ms ease, opacity 280ms ease;
}
.tech-diffs__arrow:hover:not(:disabled) {
  background: var(--orange);
  color: var(--navy);
}
.tech-diffs__arrow:active:not(:disabled) { transform: scale(0.96); }
.tech-diffs__arrow:disabled {
  opacity: 0.3;
  cursor: not-allowed;
}

.tech__diffs-wrap {
  margin-top: var(--s-6);
  padding-top: var(--s-5);
  border-top: 1px solid rgba(255, 255, 255, 0.1);
}
.tech__diffs-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--s-3);
  flex-wrap: wrap;
  margin-bottom: var(--s-4);
}
.tech__diffs-title { text-align: right; }
.tech__diffs-eyebrow {
  font: 500 11px/1 'JetBrains Mono', ui-monospace, monospace;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--orange);
}
.tech__diffs-title {
  font: 600 clamp(20px, 1.8vw, 28px)/1.2 var(--font-sans);
  letter-spacing: -0.015em;
  color: #fff;
}
.tech__diffs {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
}
@media (min-width: 640px)  { .tech__diffs { grid-template-columns: repeat(2, 1fr); gap: 14px; } }
@media (min-width: 1024px) { .tech__diffs { grid-template-columns: repeat(4, 1fr); gap: 14px; } }

/* Wrapper uses data-anim for IO trigger, but keeps visible — children own the cascade */
.tech__diffs-wrap[data-anim] { opacity: 1; transform: none; }

.tech__diff {
  position: relative;
  display: flex;
  flex-direction: column;
  padding: 22px;
  background: var(--navy);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 12px;
  opacity: 0;
  transform: translateY(20px);
  transition: background var(--tx-fast) ease, border-color var(--tx-fast) ease, transform var(--tx-fast) ease;
}

@keyframes diff-rise {
  from { opacity: 0; transform: translateY(20px); }
  to   { opacity: 1; transform: translateY(0); }
}

.tech__diffs-wrap.is-revealed .tech__diff {
  animation: diff-rise 700ms cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

/* Column stagger per breakpoint */
@media (min-width: 1024px) {
  .tech__diffs-wrap.is-revealed .tech__diff:nth-child(4n+1) { animation-delay: 0ms; }
  .tech__diffs-wrap.is-revealed .tech__diff:nth-child(4n+2) { animation-delay: 80ms; }
  .tech__diffs-wrap.is-revealed .tech__diff:nth-child(4n+3) { animation-delay: 160ms; }
  .tech__diffs-wrap.is-revealed .tech__diff:nth-child(4n+4) { animation-delay: 240ms; }
}
@media (min-width: 640px) and (max-width: 1023px) {
  .tech__diffs-wrap.is-revealed .tech__diff:nth-child(2n+1) { animation-delay: 0ms; }
  .tech__diffs-wrap.is-revealed .tech__diff:nth-child(2n+2) { animation-delay: 80ms; }
}

.tech__diff:hover {
  background: var(--navy-soft);
  border-color: rgba(249, 149, 0, 0.4);
  transform: translateY(-3px);
}
.tech__diff:hover .tech__diff-tag { color: var(--orange); }

@media (prefers-reduced-motion: reduce) {
  .tech__diff {
    opacity: 1 !important;
    transform: none !important;
    animation: none !important;
    transition: none !important;
  }
}

.tech__diff-tag {
  font: 500 10px/1 var(--font-sans);
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.5);
  transition: color var(--tx-fast);
}
.tech__diff-title {
  margin-top: 6px;
  font: 600 16px/1.25 var(--font-sans);
  color: #fff;
  letter-spacing: -0.005em;
}
.tech__diff-desc {
  margin-top: 20px;
  font: 400 13px/1.5 var(--font-sans);
  color: rgba(255, 255, 255, 0.6);
}

/* ====== Block 5: Blog ====== */
.blog { background: var(--paper); }
.blog__head {
  display: flex;
  flex-direction: column;
  gap: var(--s-3);
  margin-bottom: var(--s-5);
  max-width: 62ch;
}
.blog__title { color: var(--navy); max-width: 28ch; }
.blog__lead  { max-width: 56ch; }

.blog__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
  list-style: none;
  padding: 0;
  margin: 0;
}
@media (min-width: 720px)  { .blog__grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .blog__grid { grid-template-columns: repeat(3, 1fr); } }

.blog__link {
  display: flex;
  flex-direction: column;
  height: 100%;
  background: var(--paper);
  color: inherit;
  text-decoration: none;
  border: 1px solid var(--line);
  border-radius: 12px;
  overflow: hidden;
  transition: border-color var(--tx) ease, transform var(--tx) ease, box-shadow var(--tx) ease;
}
.blog__link:hover {
  border-color: var(--orange);
  transform: translateY(-4px);
  box-shadow: 0 12px 30px -10px rgba(7, 29, 85, 0.12);
}

.blog__media {
  position: relative;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: var(--bone);
}
.blog__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 600ms cubic-bezier(0.16, 1, 0.3, 1);
}
.blog__link:hover .blog__media img { transform: scale(1.04); }

.blog__body {
  display: flex;
  flex-direction: column;
  gap: 14px;
  flex: 1;
  padding: clamp(20px, 1.8vw, 28px);
}

.blog__meta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font: 500 11px/1 'JetBrains Mono', ui-monospace, monospace;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.blog__cat  { color: var(--orange); }
.blog__sep  { color: var(--ink-soft); opacity: 0.5; }
.blog__date { color: var(--ink-soft); }

.blog__post-title {
  margin: 0;
  font: 600 clamp(17px, 1.3vw, 20px)/1.3 var(--font-sans);
  letter-spacing: -0.01em;
  color: var(--navy);
  text-wrap: balance;
  transition: color var(--tx) ease;
}
.blog__link:hover .blog__post-title { color: var(--orange); }

.blog__excerpt {
  margin: 0;
  flex: 1;
  font: 400 14px/1.55 var(--font-sans);
  color: var(--ink-soft);
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.blog__cta {
  align-self: flex-start;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding-top: 4px;
  font: 600 13px/1 var(--font-sans);
  color: var(--navy);
  transition: color var(--tx) ease;
}
.blog__cta-arrow {
  display: inline-block;
  transition: transform var(--tx) ease;
}
.blog__link:hover .blog__cta { color: var(--orange); }
.blog__link:hover .blog__cta-arrow { transform: translateX(4px); }

.blog__more {
  display: flex;
  justify-content: center;
  margin-top: var(--s-5);
}

@media (prefers-reduced-motion: reduce) {
  .blog__link,
  .blog__media img,
  .blog__post-title,
  .blog__cta,
  .blog__cta-arrow { transition: none; transform: none; }
}

/* ====== Block 5b: Awards (intro branco + faixa fina de marquee) ====== */
.awards {
  background: var(--paper);
  overflow: hidden;
}

/* --- Intro: parte branca com head + ISO + CTA --- */
.awards__intro {
  padding-top: 0;
  padding-bottom: clamp(32px, 4vw, 56px);
}
.awards__intro-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--s-5);
  align-items: end;
}
@media (min-width: 900px) {
  .awards__intro-grid {
    grid-template-columns: 1fr auto;
    gap: var(--s-6);
  }
}

.awards__head {
  display: flex;
  flex-direction: column;
  gap: var(--s-2);
  max-width: 52ch;
}
.awards__eyebrow {
  font: 500 11px/1 'JetBrains Mono', ui-monospace, monospace;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--orange);
}
.awards__title {
  margin: 0;
  font: 600 clamp(24px, 2.5vw, 36px)/1.2 var(--font-sans);
  letter-spacing: -0.015em;
  color: var(--navy);
  max-width: 22ch;
  text-wrap: balance;
}
.awards__title em { color: var(--orange); font-style: normal; }
.awards__lead {
  margin: 0;
  font: 400 15px/1.55 var(--font-sans);
  color: var(--ink-soft);
  max-width: 48ch;
}

/* Coluna direita: ISO + CTA empilhados */
.awards__intro-side {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--s-3);
}
@media (min-width: 900px) {
  .awards__intro-side { align-items: flex-end; }
}

.awards__iso {
  display: flex;
  gap: 16px;
  align-items: center;
  list-style: none;
  padding: 0;
  margin: 0;
}
.awards__iso-item {
  display: block;
  line-height: 0;
  transition: transform var(--tx-fast) ease;
}
.awards__iso-item:hover { transform: translateY(-3px); }
.awards__iso-item img {
  display: block;
  height: clamp(76px, 8vw, 104px);
  width: auto;
}

.awards__cta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding-bottom: 4px;
  font: 600 13px/1 var(--font-sans);
  color: var(--navy);
  border-bottom: 1px solid currentColor;
  transition: color var(--tx-fast) ease, gap var(--tx-fast) ease;
}
.awards__cta:hover { color: var(--orange); gap: 12px; }
.awards__cta-arrow {
  display: inline-block;
  transition: transform var(--tx-fast) ease;
}
.awards__cta:hover .awards__cta-arrow { transform: translateX(4px); }

/* --- Strip: faixa fina bege com marquee --- */
.awards__strip {
  background: var(--bone-deep);
  padding-block: clamp(28px, 3.5vw, 44px);
  overflow: hidden;
}
.awards__marquee {
  display: flex;
  width: max-content;
  animation: awards-scroll 40s linear infinite;
}
.awards__track {
  display: flex;
  gap: clamp(40px, 6vw, 80px);
  padding-right: clamp(40px, 6vw, 80px);
  align-items: center;
}
.awards__logo {
  flex: 0 0 auto;
  height: 56px;
  display: inline-flex;
  align-items: center;
  filter: grayscale(0.4);
  opacity: 0.85;
  transition: transform 400ms cubic-bezier(0.16, 1, 0.3, 1),
              filter 300ms ease,
              opacity 300ms ease;
  will-change: transform;
}
.awards__logo img {
  max-height: 100%;
  width: auto;
  object-fit: contain;
}

/* Hover: pausa o marquee para o usuário inspecionar + zoom no selo focado */
.awards__marquee:hover { animation-play-state: paused; }
.awards__logo:hover {
  transform: scale(1.18);
  filter: grayscale(0);
  opacity: 1;
  z-index: 2;
}

@keyframes awards-scroll {
  from { transform: translate3d(0, 0, 0); }
  to   { transform: translate3d(-50%, 0, 0); }
}
@media (prefers-reduced-motion: reduce) {
  .awards__iso-item { transition: none; }
  .awards__marquee { animation: none; }
  .awards__logo { transition: none; }
  .awards__logo:hover { transform: none; }
}

/* ====== Block 6: Testimonials ====== */
.testimonials {
  position: relative;
  background: var(--bone);
  overflow: hidden;
}
.testimonials__layout {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--s-6);
  position: relative;
  z-index: 1;
}
@media (min-width: 1024px) {
  .testimonials__layout {
    grid-template-columns: 5fr 7fr;
    gap: var(--s-8);
    align-items: start;
  }
}

/* --- Aside (left column) --- */
.testimonials__aside {
  display: flex;
  flex-direction: column;
  gap: var(--s-5);
}
.testimonials__head {
  display: flex;
  flex-direction: column;
  gap: var(--s-3);
  max-width: 42ch;
}
.testimonials__title { color: var(--navy); }
.testimonials__lead { margin-top: var(--s-1); max-width: 38ch; }

.testimonials__stats {
  display: grid;
  grid-template-columns: repeat(2, auto);
  gap: clamp(20px, 3vw, 40px);
  padding-top: var(--s-4);
  border-top: 1px solid var(--line);
}
.testimonials__stat {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.testimonials__stat strong {
  font: 700 clamp(22px, 2.2vw, 30px)/1 var(--font-sans);
  color: var(--navy);
  letter-spacing: -0.02em;
  font-feature-settings: "tnum";
}
.testimonials__stat span {
  font: 400 12px/1.3 var(--font-sans);
  color: var(--ink-soft);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

/* --- Card (right column) — módulo arredondado --- */
.testimonials__card-wrap {
  position: relative;
  background: var(--paper);
  padding: clamp(32px, 4vw, 56px) clamp(28px, 4vw, 56px);
  border-radius: 20px;
  box-shadow: 0 30px 60px -30px rgba(7, 29, 85, 0.18), 0 2px 8px rgba(7, 29, 85, 0.05);
  transition: transform 500ms cubic-bezier(0.16, 1, 0.3, 1),
              box-shadow 500ms cubic-bezier(0.16, 1, 0.3, 1);
  will-change: transform;
}
.testimonials__card-wrap:hover {
  transform: translateY(-4px);
  box-shadow: 0 40px 80px -28px rgba(7, 29, 85, 0.28), 0 4px 16px rgba(7, 29, 85, 0.08);
}
.testimonials__mark {
  position: absolute;
  top: clamp(-42px, -3vw, -28px);
  right: clamp(20px, 3vw, 48px);
  font: 800 clamp(100px, 10vw, 150px)/1 var(--font-sans);
  color: var(--orange);
  pointer-events: none;
  user-select: none;
  transition: transform 600ms cubic-bezier(0.16, 1, 0.3, 1);
}
.testimonials__card-wrap:hover .testimonials__mark {
  transform: translate(-4px, -2px) rotate(-4deg);
}

.testimonials__card-side {
  display: flex;
  flex-direction: column;
  gap: var(--s-3);
}

/* Override do data-anim global pra entrada mais refinada */
.testimonials__card-side[data-anim] {
  transition: opacity 800ms cubic-bezier(0.16, 1, 0.3, 1),
              transform 800ms cubic-bezier(0.16, 1, 0.3, 1);
  transform: translateY(28px);
}

.testimonials__stage {
  position: relative;
}
.testimonials__slide {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  gap: var(--s-4);
  opacity: 0;
  transform: translateX(24px);
  pointer-events: none;
  transition: opacity 500ms cubic-bezier(0.16, 1, 0.3, 1),
              transform 500ms cubic-bezier(0.16, 1, 0.3, 1);
}
.testimonials__slide.is-active {
  opacity: 1;
  transform: translateX(0);
  pointer-events: auto;
  position: relative;
}
.testimonials__quote {
  font: 400 clamp(16px, 1.4vw, 19px)/1.55 var(--font-sans);
  color: var(--navy);
  letter-spacing: 0;
}
.testimonials__meta {
  display: flex;
  align-items: center;
  gap: var(--s-3);
  padding-top: var(--s-3);
  border-top: 1px solid var(--line);
}
.testimonials__avatar {
  flex: 0 0 auto;
  width: 56px;
  height: 56px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--navy);
  color: var(--orange);
  font: 700 18px/1 var(--font-sans);
  letter-spacing: 0.02em;
  border-radius: 50%;
}
.testimonials__byline {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.testimonials__author {
  font: 600 16px/1.2 var(--font-sans);
  color: var(--navy);
}
.testimonials__role {
  font: 400 13px/1.4 var(--font-sans);
  color: var(--ink-soft);
}

/* --- Controls (arrows + dots + counter) --- */
.testimonials__controls {
  display: flex;
  align-items: center;
  gap: var(--s-3);
  flex-wrap: wrap;
  justify-content: flex-end;
  margin-top: var(--s-2);
}
.testimonials__arrow {
  width: 44px;
  height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  color: var(--navy);
  border: 1px solid var(--orange);
  border-radius: 999px;
  font: 500 18px/1 var(--font-sans);
  cursor: pointer;
  transition: background 280ms ease, border-color 280ms ease, color 280ms ease, transform 280ms ease;
}
.testimonials__arrow:hover:not(:disabled) {
  background: var(--orange);
  border-color: var(--orange);
  color: #fff;
}
.testimonials__arrow:active:not(:disabled) { transform: scale(0.96); }
.testimonials__arrow:disabled { opacity: 0.35; cursor: not-allowed; }

.testimonials__dots {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  padding-inline: var(--s-2);
}
.testimonials__dot {
  width: clamp(48px, 5vw, 80px);
  height: 4px;
  border: 0;
  border-radius: 999px;
  background: var(--line);
  padding: 0;
  cursor: pointer;
  transition: background 280ms ease, transform 280ms ease;
}
.testimonials__dot:hover { background: var(--ink-soft); }
.testimonials__dot.is-active {
  background: var(--orange);
  transform: scaleY(1.5);
}
.testimonials__counter {
  font: 500 13px/1 var(--font-sans);
  color: var(--ink-soft);
  font-feature-settings: "tnum";
  letter-spacing: 0.04em;
}
.testimonials__counter-sep { margin-inline: 4px; opacity: 0.5; }

/* ====== Block 7: Ecossistema (2-col carousel) ====== */
.ecosystem {
  background: var(--navy-deep);
  color: #fff;
}
.ecosystem__layout {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--s-5);
  align-items: center;
}
@media (min-width: 1024px) {
  .ecosystem__layout {
    grid-template-columns: 5fr 7fr;
    gap: var(--s-6);
  }
}

/* Left column */
.ecosystem__aside {
  display: flex;
  flex-direction: column;
  gap: var(--s-5);
}
.ecosystem__head {
  display: flex;
  flex-direction: column;
  gap: var(--s-3);
  max-width: 50ch;
}

.ecosystem__pagination {
  display: inline-flex;
  align-items: center;
  gap: var(--s-3);
  flex-wrap: wrap;
}
.ecosystem__counter {
  font: 500 12px/1 'JetBrains Mono', ui-monospace, monospace;
  letter-spacing: 0.1em;
  color: rgba(255, 255, 255, 0.55);
  font-feature-settings: "tnum";
}
.ecosystem__counter-sep { margin-inline: 4px; opacity: 0.5; }
.ecosystem__bars {
  display: inline-flex;
  gap: 10px;
}
.ecosystem__bar {
  width: clamp(48px, 4vw, 64px);
  height: 3px;
  background: rgba(255, 255, 255, 0.2);
  border: 0;
  border-radius: 999px;
  padding: 0;
  cursor: pointer;
  transition: background 280ms ease, transform 280ms ease;
}
.ecosystem__bar:hover { background: rgba(255, 255, 255, 0.45); }
.ecosystem__bar.is-active {
  background: var(--orange);
  transform: scaleY(1.5);
}

/* Right column (stage + flanking arrows) */
.ecosystem__stage-wrap {
  position: relative;
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--s-3);
}
@media (min-width: 1024px) {
  .ecosystem__stage-wrap {
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: var(--s-3);
  }
}

.ecosystem__arrow {
  align-self: center;
  width: 48px;
  height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  color: #fff;
  border: 1px solid var(--orange);
  border-radius: 999px;
  font: 500 18px/1 var(--font-sans);
  cursor: pointer;
  transition: background 280ms ease, color 280ms ease, transform 280ms ease;
}
.ecosystem__arrow:hover:not(:disabled) {
  background: var(--orange);
  color: var(--navy-deep);
}
.ecosystem__arrow:active:not(:disabled) { transform: scale(0.96); }
.ecosystem__arrow:disabled {
  opacity: 0.3;
  cursor: not-allowed;
}

/* Mobile: stage on top, arrows row below stage */
@media (max-width: 1023px) {
  .ecosystem__stage-wrap {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: auto auto;
  }
  .ecosystem__stage { grid-column: 1 / -1; grid-row: 1; }
  .ecosystem__arrow--prev { grid-column: 1; grid-row: 2; justify-self: start; }
  .ecosystem__arrow--next { grid-column: 2; grid-row: 2; justify-self: end; }
}

/* Stage card */
.ecosystem__stage {
  position: relative;
  background: var(--navy);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 16px;
  overflow: hidden;
  min-height: clamp(280px, 26vw, 360px);
}

.ecosystem__slide {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  padding: clamp(28px, 3vw, 48px);
  opacity: 0;
  transform: translateX(24px);
  pointer-events: none;
  transition: opacity 500ms cubic-bezier(0.16, 1, 0.3, 1),
              transform 500ms cubic-bezier(0.16, 1, 0.3, 1);
}
.ecosystem__slide.is-active {
  opacity: 1;
  transform: translateX(0);
  pointer-events: auto;
}

.ecosystem__slide-logo {
  display: inline-flex;
  height: 36px;
  margin-bottom: var(--s-3);
}
.ecosystem__slide-logo svg,
.ecosystem__slide-logo img {
  height: 100%;
  width: auto;
  filter: brightness(0) invert(1) opacity(0.95);
}
.ecosystem__slide.is-current .ecosystem__slide-logo svg { filter: none; }

.ecosystem__slide-desc {
  flex: 1;
  font: 400 clamp(14px, 1vw, 16px)/1.6 var(--font-sans);
  color: rgba(255, 255, 255, 0.85);
  max-width: 56ch;
}

.ecosystem__slide-cta {
  margin-top: var(--s-4);
  align-self: flex-start;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding-bottom: 8px;
  font: 600 12px/1 var(--font-sans);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--orange);
  border-bottom: 1px solid var(--orange);
  transition: gap 280ms ease;
}
.ecosystem__slide-cta:hover { gap: 14px; }
.ecosystem__slide-cta-arrow {
  display: inline-block;
  transition: transform 280ms ease;
}
.ecosystem__slide-cta:hover .ecosystem__slide-cta-arrow { transform: translateX(4px); }

.ecosystem__slide-cta.is-current {
  color: rgba(255, 255, 255, 0.45);
  border-bottom-color: transparent;
  cursor: default;
}

/* ====== Block 8: Filiais ====== */
.branches { background: var(--paper); }
.branches__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--s-6);
  align-items: start;
}
@media (min-width: 1024px) {
  .branches__grid { grid-template-columns: 5fr 7fr; gap: var(--s-8); align-items: center; }
}
.branches__content {
  display: flex;
  flex-direction: column;
  gap: var(--s-3);
  max-width: 44ch;
}
.branches__title { color: var(--navy); margin-top: 4px; }
.branches__lead { margin-block: var(--s-2) var(--s-3); }

.branches__featured {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}
.branches__featured-item {
  display: inline-block;
  padding: 7px 14px;
  font: 600 12px/1 var(--font-sans);
  color: var(--navy);
  border: 1px solid var(--line);
  text-decoration: none;
  cursor: pointer;
  transition: border-color var(--tx-fast) ease, color var(--tx-fast) ease, background var(--tx-fast) ease;
}
.branches__featured-item:hover {
  border-color: var(--orange);
  color: var(--orange);
  background: rgba(249, 149, 0, 0.06);
}
.branches__cta { align-self: flex-start; margin-top: var(--s-3); }

.branches__map {
  position: relative;
  display: block;
}
.branches__map svg {
  width: 100%;
  height: auto;
  max-width: 540px;
  margin: 0 auto;
  shape-rendering: geometricPrecision;
}
.branches__map svg path {
  fill: var(--bone-deep);
  stroke: none;
}
.branches__pin {
  position: absolute;
  display: block;
  width: 12px;
  height: 12px;
  background: var(--orange);
  border-radius: 50%;
  box-shadow: 0 0 0 4px rgba(249, 149, 0, 0.15), 0 0 16px rgba(249, 149, 0, 0.45);
  transform: translate(-50%, -50%);
  cursor: pointer;
  transition: transform var(--tx-fast) ease, box-shadow var(--tx-fast) ease;
}
.branches__pin:hover {
  transform: translate(-50%, -50%) scale(1.4);
  box-shadow: 0 0 0 5px rgba(249, 149, 0, 0.28), 0 0 22px rgba(249, 149, 0, 0.6);
}
@media (prefers-reduced-motion: reduce) {
  .branches__pin { transition: none; }
  .branches__pin:hover { transform: translate(-50%, -50%); }
}

/* Unidade internacional — callout flutuante */
.branches__intl {
  position: absolute;
  top: 8%;
  right: -2%;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  z-index: 2;
}
.branches__intl-connector {
  width: 24px;
  height: 1.5px;
  background-image: repeating-linear-gradient(to right, var(--orange) 0, var(--orange) 3px, transparent 3px, transparent 7px);
  flex-shrink: 0;
  opacity: 0.55;
}
.branches__intl-pin {
  width: 12px;
  height: 12px;
  background: var(--orange);
  border-radius: 50%;
  box-shadow: 0 0 0 4px rgba(249, 149, 0, 0.15), 0 0 16px rgba(249, 149, 0, 0.45);
  flex-shrink: 0;
}
.branches__intl-text {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 7px 11px 8px;
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 8px;
  box-shadow: 0 4px 14px rgba(7, 29, 85, 0.08);
  white-space: nowrap;
}
.branches__intl-eyebrow {
  font: 500 9px/1 'JetBrains Mono', ui-monospace, monospace;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--orange);
}
.branches__intl-place {
  font: 600 12px/1.2 var(--font-sans);
  letter-spacing: -0.005em;
  color: var(--navy);
}
@media (max-width: 900px) {
  .branches__intl { right: 4%; gap: 6px; }
  .branches__intl-connector { display: none; }
}

/* ====== Block 9: Pre-footer CTA ====== */
.footer-cta {
  position: relative;
  color: #fff;
  padding-block: clamp(48px, 6vw, 88px);
  overflow: hidden;
}
.footer-cta__bg,
.footer-cta__bg img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: grayscale(0.7) contrast(1.1);
}
.footer-cta__overlay {
  position: absolute;
  inset: 0;
  background: var(--navy-deep);
}
.footer-cta__layout {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--s-6);
  align-items: start;
}
@media (min-width: 1024px) {
  .footer-cta__layout {
    grid-template-columns: 7fr 5fr;
    gap: clamp(48px, 6vw, 96px);
    align-items: center;
  }
}

/* --- Main column (left) --- */
.footer-cta__main {
  display: flex;
  flex-direction: column;
  gap: var(--s-3);
  max-width: 56ch;
}
.footer-cta__title {
  font-size: clamp(28px, 3.5vw, 48px);
  letter-spacing: -0.02em;
  max-width: 18ch;
}
.footer-cta__text { max-width: 52ch; }
.footer-cta__actions {
  display: flex;
  align-items: center;
  gap: var(--s-3);
  flex-wrap: wrap;
  margin-top: var(--s-3);
}
.footer-cta__hint {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font: 500 12px/1 var(--font-sans);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.6);
}
.footer-cta__hint-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--orange);
  box-shadow: 0 0 12px rgba(249, 149, 0, 0.6);
  animation: cta-pulse 2.4s ease-in-out infinite;
}
@keyframes cta-pulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50%      { opacity: 0.4; transform: scale(0.85); }
}
@media (prefers-reduced-motion: reduce) {
  .footer-cta__hint-dot { animation: none; }
}

/* --- Contact panel (right) --- */
.footer-cta__panel {
  display: flex;
  flex-direction: column;
  gap: 1px;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.12);
  padding: 1px;
}
.footer-cta__panel-title {
  font: 500 11px/1 var(--font-sans);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--orange);
  padding: 18px 22px 14px;
  background: rgba(5, 20, 66, 0.4);
}
.footer-cta__channel {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 18px 22px;
  background: rgba(5, 20, 66, 0.4);
  color: #fff;
  transition: background var(--tx-fast) ease;
}
a.footer-cta__channel { cursor: pointer; }
a.footer-cta__channel:hover {
  background: rgba(249, 149, 0, 0.12);
}
a.footer-cta__channel:hover .footer-cta__channel-value {
  color: var(--orange);
}
.footer-cta__channel--static { cursor: default; }
.footer-cta__channel-code {
  font: 500 10px/1 'JetBrains Mono', ui-monospace, monospace;
  letter-spacing: 0.12em;
  color: rgba(255, 255, 255, 0.5);
}
.footer-cta__channel-value {
  font: 600 17px/1.2 var(--font-sans);
  color: #fff;
  letter-spacing: -0.005em;
  transition: color var(--tx-fast) ease;
}
.footer-cta__channel-meta {
  font: 400 12px/1.4 var(--font-sans);
  color: rgba(255, 255, 255, 0.55);
}

/* ====== Site footer ====== */
.site-footer {
  background: var(--navy-deep);
  color: #fff;
  padding-top: clamp(48px, 6vw, 88px);
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.site-footer__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--s-6);
  padding-bottom: clamp(48px, 6vw, 88px);
}
@media (min-width: 640px)  { .site-footer__grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .site-footer__grid { grid-template-columns: 1.4fr 1fr 1fr 1.2fr; gap: var(--s-5); } }

.site-footer__col-title {
  font: 500 12px/1 var(--font-sans);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--orange);
  margin-bottom: var(--s-3);
}
.site-footer__col ul { display: flex; flex-direction: column; gap: 10px; }
.site-footer__col a {
  color: rgba(255, 255, 255, 0.75);
  font-size: 15px;
  transition: color var(--tx-fast);
}
.site-footer__col a:hover { color: var(--orange); }
.site-footer__logo { display: inline-flex; height: 36px; margin-bottom: var(--s-3); }
.site-footer__logo svg { height: 100%; width: auto; }
.site-footer__pitch {
  font-size: 15px;
  line-height: 1.55;
  color: rgba(255, 255, 255, 0.65);
  max-width: 28ch;
}
.site-footer__col address {
  font-style: normal;
  font-size: 15px;
  line-height: 1.65;
  color: rgba(255, 255, 255, 0.75);
}
.site-footer__col a.site-footer__more { color: var(--orange); font-weight: 600; }

.site-footer__bar {
  display: flex;
  flex-direction: column;
  gap: var(--s-3);
  align-items: flex-start;
  padding-block: var(--s-4);
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}
@media (min-width: 768px) {
  .site-footer__bar { flex-direction: row; align-items: center; justify-content: space-between; }
}
.site-footer__copy {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.5);
  letter-spacing: 0.02em;
}
.site-footer__copy a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
.site-footer__social {
  display: flex;
  gap: 14px;
  margin-top: var(--s-3);
}
.site-footer__social a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  color: #fff;
  border: 1px solid var(--orange);
  border-radius: 50%;
  transition: color var(--tx-fast), background var(--tx-fast);
}
.site-footer__social a:hover {
  background: var(--orange);
  color: #fff;
}
.site-footer__social svg { width: 16px; height: 16px; fill: currentColor; }

.site-footer__elleven {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: rgba(255, 255, 255, 0.4);
  transition: color var(--tx-fast), opacity var(--tx-fast);
  opacity: 0.85;
}
.site-footer__elleven:hover { color: rgba(255, 255, 255, 0.85); opacity: 1; }
.site-footer__elleven svg {
  height: 12px;
  width: auto;
  display: block;
}

/* ====== Areas de Atuação — Internal Page ====== */
.areas-page-intro {
  background: var(--navy);
  color: #fff;
  padding-top: calc(var(--header-h) + clamp(48px, 6vw, 96px));
  padding-bottom: clamp(56px, 7vw, 96px);
}
.areas-page-intro__title {
  margin: var(--s-3) 0 0;
  font: 700 clamp(34px, 4.8vw, 64px)/1.05 var(--font-sans);
  letter-spacing: -0.02em;
  color: #fff;
  text-wrap: balance;
  max-width: 26ch;
}
.areas-page-intro__title em {
  color: var(--orange);
  font-style: normal;
}
.areas-page-intro__lead {
  margin-top: var(--s-4);
  max-width: 62ch;
  font: 400 clamp(15px, 1.2vw, 18px)/1.6 var(--font-sans);
  color: rgba(255, 255, 255, 0.78);
}

/* Accordion editorial: header / row clicável + body expansível */
.areas-accordion {
  background: var(--bone);
  padding-block: clamp(40px, 5vw, 72px);
}
.areas-accordion__list {
  border-top: 1px solid rgba(7, 29, 85, 0.12);
}

.area-row {
  scroll-margin-top: calc(var(--header-h) + 20px);
  border-bottom: 1px solid rgba(7, 29, 85, 0.12);
}

.area-row__head {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: clamp(20px, 3vw, 48px);
  width: 100%;
  padding: clamp(24px, 3vw, 40px) 0;
  background: transparent;
  border: 0;
  text-align: left;
  cursor: pointer;
  color: var(--navy);
  transition: padding-left var(--tx) ease, color var(--tx) ease;
}
@media (min-width: 900px) {
  .area-row__head {
    grid-template-columns: auto minmax(0, 1fr) minmax(0, 1fr) auto;
  }
}
.area-row__head:hover { padding-left: 8px; }
.area-row__head:focus-visible {
  outline: 2px solid var(--orange);
  outline-offset: 4px;
  border-radius: 4px;
}

.area-row__num {
  font: 600 12px/1 'JetBrains Mono', ui-monospace, monospace;
  letter-spacing: 0.22em;
  color: var(--orange);
  font-feature-settings: "tnum";
  align-self: center;
}

.area-row__title {
  font: 500 clamp(24px, 3.6vw, 44px)/1.1 var(--font-sans);
  letter-spacing: -0.018em;
  color: var(--navy);
}

.area-row__lead {
  display: none;
  font: 500 11px/1.5 var(--font-sans);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink-soft);
  max-width: 48ch;
}
@media (min-width: 900px) {
  .area-row__lead { display: block; }
}

/* + → × ícone (duas barras cruzadas que rotacionam) */
.area-row__icon {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  align-self: center;
  transition: transform 400ms cubic-bezier(0.16, 1, 0.3, 1);
}
.area-row__icon-bar {
  position: absolute;
  top: 50%;
  left: 50%;
  background: var(--navy);
  transition: background var(--tx) ease;
}
.area-row__icon-bar--h {
  width: 22px;
  height: 1.5px;
  transform: translate(-50%, -50%);
}
.area-row__icon-bar--v {
  width: 1.5px;
  height: 22px;
  transform: translate(-50%, -50%);
  transition: transform 400ms cubic-bezier(0.16, 1, 0.3, 1);
}
.area-row.is-open .area-row__icon-bar--v {
  transform: translate(-50%, -50%) scaleY(0);
}

.area-row.is-open .area-row__title { color: var(--orange); }
.area-row.is-open .area-row__num { color: var(--navy); }

/* Body com animação por grid-template-rows */
.area-row__body {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 450ms cubic-bezier(0.16, 1, 0.3, 1);
}
.area-row.is-open .area-row__body {
  grid-template-rows: 1fr;
}
.area-row__body-inner {
  overflow: hidden;
}
.area-row__body-content {
  display: flex;
  flex-direction: column;
  gap: var(--s-3);
  padding: 0 0 clamp(32px, 4vw, 56px) 0;
  max-width: 72ch;
  opacity: 0;
  transform: translateY(8px);
  transition: opacity 350ms ease 50ms, transform 350ms ease 50ms;
}
.area-row.is-open .area-row__body-content {
  opacity: 1;
  transform: translateY(0);
}
@media (min-width: 900px) {
  .area-row__body-content {
    /* indent para alinhar com o título do row */
    padding-left: clamp(60px, 6vw, 88px);
  }
}

.area-row__body-head {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin-bottom: var(--s-2);
}
.area-row__body-title {
  margin: 0;
  font: 600 clamp(15px, 1.05vw, 17px)/1.3 var(--font-sans);
  letter-spacing: 0.02em;
  color: var(--navy);
  text-transform: uppercase;
}
.area-row__body-subtitle {
  margin: 0;
  font: 400 14px/1.4 var(--font-sans);
  font-style: italic;
  color: var(--orange);
}

.area-row__body-content p {
  margin: 0;
  font: 400 clamp(15px, 1.1vw, 17px)/1.7 var(--font-sans);
  color: var(--ink-soft);
}

@media (prefers-reduced-motion: reduce) {
  .area-row__head,
  .area-row__icon,
  .area-row__icon-bar,
  .area-row__body,
  .area-row__body-content { transition: none !important; }
}

/* ====== Contato — Internal Page ====== */
.contact-intro {
  background: var(--navy);
  color: #fff;
  padding-top: calc(var(--header-h) + clamp(48px, 6vw, 96px));
  padding-bottom: clamp(56px, 7vw, 96px);
}
.contact-intro__title {
  margin: var(--s-3) 0 0;
  font: 700 clamp(34px, 4.8vw, 64px)/1.05 var(--font-sans);
  letter-spacing: -0.02em;
  color: #fff;
  text-wrap: balance;
  max-width: 24ch;
}
.contact-intro__title em { color: var(--orange); font-style: normal; }
.contact-intro__lead {
  margin-top: var(--s-4);
  max-width: 60ch;
  font: 400 clamp(15px, 1.2vw, 18px)/1.6 var(--font-sans);
  color: rgba(255, 255, 255, 0.78);
}

.contact-main {
  padding-block: clamp(56px, 7vw, 96px);
  background: var(--paper);
}
.contact-main__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(40px, 5vw, 80px);
}
@media (min-width: 1024px) {
  .contact-main__grid { grid-template-columns: 7fr 5fr; gap: var(--s-6); }
}

/* Form */
.contact-form-wrap__head { margin-bottom: var(--s-5); }
.contact-form-wrap__eyebrow {
  display: block;
  margin-bottom: var(--s-2);
  font: 500 11px/1 'JetBrains Mono', ui-monospace, monospace;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--orange);
}
.contact-form-wrap__title {
  margin: 0;
  font: 700 clamp(26px, 3vw, 38px)/1.15 var(--font-sans);
  letter-spacing: -0.018em;
  color: var(--navy);
  max-width: 18ch;
}
.contact-form-wrap__lead {
  margin: var(--s-2) 0 0;
  max-width: 60ch;
  font: 400 15px/1.6 var(--font-sans);
  color: var(--ink-soft);
}

.contact-form {
  display: flex;
  flex-direction: column;
  gap: var(--s-3);
}
.contact-form__row {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--s-3);
}
@media (min-width: 640px) {
  .contact-form__row { grid-template-columns: 1fr 1fr; }
}
.contact-form__field {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.contact-form__field label {
  font: 500 12px/1.3 var(--font-sans);
  letter-spacing: 0.04em;
  color: var(--navy);
  text-transform: uppercase;
}
.contact-form__field label span[aria-hidden] { color: var(--orange); }
.contact-form__field input,
.contact-form__field select,
.contact-form__field textarea {
  padding: 14px 16px;
  font: 400 15px/1.4 var(--font-sans);
  color: var(--navy);
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 8px;
  outline: none;
  transition: border-color var(--tx) ease, box-shadow var(--tx) ease;
}
.contact-form__field input:focus,
.contact-form__field select:focus,
.contact-form__field textarea:focus {
  border-color: var(--orange);
  box-shadow: 0 0 0 3px rgba(249, 149, 0, 0.18);
}
.contact-form__field textarea { resize: vertical; min-height: 140px; }
.contact-form__field select {
  appearance: none;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path fill='none' stroke='%23071D55' stroke-width='1.5' d='M1 1.5l5 5 5-5'/></svg>");
  background-repeat: no-repeat;
  background-position: right 18px center;
  padding-right: 44px;
}

.contact-form__field--check {
  flex-direction: row;
  align-items: start;
  gap: 12px;
  margin-top: var(--s-2);
}
.contact-form__field--check input[type="checkbox"] {
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
  margin-top: 2px;
  accent-color: var(--orange);
  padding: 0;
  border: 1px solid var(--line);
  border-radius: 3px;
}
.contact-form__field--check label {
  text-transform: none;
  font: 400 13px/1.5 var(--font-sans);
  color: var(--ink-soft);
  letter-spacing: 0;
}
.contact-form__field--check a { color: var(--navy); text-decoration: underline; }

.contact-form__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--s-3);
  margin-top: var(--s-3);
}
.contact-form__hint {
  font: 400 13px/1.4 var(--font-sans);
  color: var(--ink-soft);
}
.contact-form__feedback {
  margin-top: var(--s-3);
  padding: 16px 20px;
  background: rgba(76, 175, 80, 0.08);
  border: 1px solid rgba(76, 175, 80, 0.3);
  border-radius: 8px;
  font: 400 14px/1.5 var(--font-sans);
  color: #1a4a1f;
}
.contact-form__feedback strong { display: block; color: #0e3712; margin-bottom: 2px; }

/* Info column */
.contact-info {
  display: flex;
  flex-direction: column;
  gap: var(--s-4);
  padding: clamp(28px, 3vw, 40px);
  background: var(--bone);
  border-radius: 12px;
  border: 1px solid var(--line);
}
.contact-info__block { padding-bottom: var(--s-3); border-bottom: 1px solid var(--line); }
.contact-info__block:last-child { padding-bottom: 0; border-bottom: 0; }

.contact-info__label {
  display: block;
  margin-bottom: 12px;
  font: 500 11px/1 'JetBrains Mono', ui-monospace, monospace;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--orange);
}
.contact-info__address {
  margin: 0 0 12px;
  font: 400 15px/1.6 var(--font-sans);
  color: var(--navy);
  font-style: normal;
}
.contact-info__link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font: 500 13px/1 var(--font-sans);
  color: var(--navy);
  text-decoration: none;
  padding-bottom: 4px;
  border-bottom: 1px solid currentColor;
}
.contact-info__link:hover { color: var(--orange); }

.contact-info__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.contact-info__list li { display: flex; flex-direction: column; gap: 2px; }
.contact-info__list-label {
  font: 400 11px/1.3 var(--font-sans);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--ink-soft);
}
.contact-info__list a {
  font: 600 15px/1.4 var(--font-sans);
  color: var(--navy);
  text-decoration: none;
}
.contact-info__list a:hover { color: var(--orange); }

.contact-info__hours { margin: 0 0 6px; font: 400 15px/1.6 var(--font-sans); color: var(--navy); }
.contact-info__hours strong { color: var(--navy); font-weight: 600; }
.contact-info__hours-note { margin: 0; font: 400 13px/1.5 var(--font-sans); color: var(--ink-soft); font-style: italic; }

.contact-info__social {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  list-style: none;
  padding: 0;
  margin: 0;
}
.contact-info__social a {
  display: inline-block;
  padding: 7px 14px;
  font: 500 12px/1 var(--font-sans);
  color: var(--navy);
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 999px;
  text-decoration: none;
  transition: background var(--tx) ease, border-color var(--tx) ease, color var(--tx) ease;
}
.contact-info__social a:hover { background: var(--navy); border-color: var(--navy); color: #fff; }

/* Todas as unidades — agrupadas por região */
.contact-branches { background: var(--bone-deep); padding-block: clamp(56px, 7vw, 96px); scroll-margin-top: calc(var(--header-h) + 24px); }
.contact-branches__head {
  display: flex;
  flex-direction: column;
  gap: var(--s-2);
  max-width: 60ch;
  margin-bottom: var(--s-5);
}
.contact-branches__eyebrow {
  font: 500 11px/1 'JetBrains Mono', ui-monospace, monospace;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--orange);
}
.contact-branches__title {
  margin: 0;
  font: 700 clamp(26px, 3vw, 38px)/1.15 var(--font-sans);
  color: var(--navy);
  letter-spacing: -0.015em;
  text-wrap: balance;
}
.contact-branches__lead { margin: 0; font: 400 15px/1.65 var(--font-sans); color: var(--ink-soft); }

.contact-branches__regions {
  display: flex;
  flex-direction: column;
  gap: var(--s-5);
}
.contact-branches__region-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--s-3);
  margin-bottom: var(--s-3);
  padding-bottom: 12px;
  border-bottom: 1px solid var(--line);
}
.contact-branches__region-name {
  margin: 0;
  font: 700 14px/1 var(--font-sans);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--orange);
}
.contact-branches__region-count {
  font: 500 12px/1 'JetBrains Mono', ui-monospace, monospace;
  letter-spacing: 0.08em;
  color: var(--ink-soft);
}

.contact-branches__units {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: 1fr;
  gap: 14px;
}
@media (min-width: 640px)  { .contact-branches__units { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .contact-branches__units { grid-template-columns: repeat(3, 1fr); } }

/* ====== Blog Listing Page ====== */
.blog-page-intro {
  background: var(--navy);
  color: #fff;
  padding-top: calc(var(--header-h) + clamp(48px, 6vw, 96px));
  padding-bottom: clamp(56px, 7vw, 96px);
}
.blog-page-intro__title {
  margin: var(--s-3) 0 0;
  font: 700 clamp(34px, 4.8vw, 64px)/1.05 var(--font-sans);
  letter-spacing: -0.02em;
  color: #fff;
  text-wrap: balance;
  max-width: 24ch;
}
.blog-page-intro__title em { color: var(--orange); font-style: normal; }
.blog-page-intro__lead {
  margin-top: var(--s-4);
  max-width: 60ch;
  font: 400 clamp(15px, 1.2vw, 18px)/1.6 var(--font-sans);
  color: rgba(255, 255, 255, 0.78);
}

/* Featured post (top) */
.blog-featured { background: var(--paper); padding-block: clamp(48px, 6vw, 80px); }
.blog-featured__link {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--s-4);
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 16px;
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  transition: border-color var(--tx) ease, transform var(--tx) ease, box-shadow var(--tx) ease;
}
@media (min-width: 900px) {
  .blog-featured__link { grid-template-columns: 7fr 5fr; gap: 0; }
}
.blog-featured__link:hover {
  border-color: var(--orange);
  transform: translateY(-4px);
  box-shadow: 0 14px 40px -14px rgba(7, 29, 85, 0.18);
}

.blog-featured__media {
  position: relative;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: var(--bone);
}
.blog-featured__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 700ms cubic-bezier(0.16, 1, 0.3, 1);
}
.blog-featured__link:hover .blog-featured__media img { transform: scale(1.04); }

.blog-featured__badge {
  position: absolute;
  top: 16px;
  left: 16px;
  padding: 6px 12px;
  font: 600 11px/1 'JetBrains Mono', ui-monospace, monospace;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--navy);
  background: var(--orange);
  border-radius: 999px;
}

.blog-featured__body {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 14px;
  padding: clamp(28px, 3vw, 44px);
}
.blog-featured__meta {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  font: 500 11px/1 'JetBrains Mono', ui-monospace, monospace;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.blog-featured__cat { color: var(--orange); }
.blog-featured__sep { color: var(--ink-soft); opacity: 0.5; }
.blog-featured__meta time, .blog-featured__meta span:not(.blog-featured__cat):not(.blog-featured__sep) { color: var(--ink-soft); }

.blog-featured__title {
  margin: 0;
  font: 700 clamp(22px, 2.4vw, 32px)/1.2 var(--font-sans);
  letter-spacing: -0.015em;
  color: var(--navy);
  text-wrap: balance;
  transition: color var(--tx) ease;
}
.blog-featured__link:hover .blog-featured__title { color: var(--orange); }
.blog-featured__excerpt {
  margin: 0;
  font: 400 15px/1.6 var(--font-sans);
  color: var(--ink-soft);
  max-width: 56ch;
}
.blog-featured__cta {
  align-self: flex-start;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 8px;
  padding-bottom: 4px;
  font: 600 13px/1 var(--font-sans);
  color: var(--navy);
  border-bottom: 1px solid currentColor;
  transition: color var(--tx) ease, gap var(--tx) ease;
}
.blog-featured__link:hover .blog-featured__cta { color: var(--orange); }
.blog-featured__cta-arrow { display: inline-block; transition: transform var(--tx) ease; }
.blog-featured__link:hover .blog-featured__cta-arrow { transform: translateX(4px); }

/* Blog list (uses existing .blog__grid) */
.blog-list { background: var(--bone); padding-block: clamp(48px, 6vw, 80px); }
.blog-list__head { margin-bottom: var(--s-5); }
.blog-list__eyebrow {
  display: block;
  margin-bottom: var(--s-2);
  font: 500 11px/1 'JetBrains Mono', ui-monospace, monospace;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--orange);
}
.blog-list__title {
  margin: 0;
  font: 700 clamp(26px, 3vw, 38px)/1.15 var(--font-sans);
  letter-spacing: -0.018em;
  color: var(--navy);
}

/* ====== Blog Single Post Page ====== */
.post-page { background: var(--paper); }

.post__head {
  padding-top: calc(var(--header-h) + clamp(40px, 5vw, 80px));
  padding-bottom: clamp(32px, 4vw, 56px);
  background: var(--bone);
  border-bottom: 1px solid var(--line);
}
.post__head-inner { display: flex; flex-direction: column; gap: var(--s-3); }

.post__breadcrumb {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  font: 500 12px/1.4 var(--font-sans);
  color: var(--ink-soft);
}
.post__breadcrumb a {
  color: var(--ink-soft);
  text-decoration: none;
  transition: color var(--tx) ease;
}
.post__breadcrumb a:hover { color: var(--orange); }
.post__breadcrumb-current { color: var(--navy); font-weight: 500; }
.post__breadcrumb span[aria-hidden] { color: var(--ink-soft); opacity: 0.6; }

.post__meta {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  font: 500 11px/1 'JetBrains Mono', ui-monospace, monospace;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.post__cat { color: var(--orange); }
.post__sep { color: var(--ink-soft); opacity: 0.5; }
.post__date, .post__reading { color: var(--ink-soft); }

.post__title {
  margin: 0;
  font: 700 clamp(32px, 4vw, 56px)/1.08 var(--font-sans);
  letter-spacing: -0.02em;
  color: var(--navy);
  text-wrap: balance;
  max-width: 22ch;
}
.post__title em { color: var(--orange); font-style: normal; }

.post__deck {
  margin: 0;
  max-width: 64ch;
  font: 400 clamp(16px, 1.3vw, 19px)/1.55 var(--font-sans);
  color: var(--ink-soft);
}

.post__byline {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--s-3);
  margin-top: var(--s-3);
  padding-top: var(--s-3);
  border-top: 1px solid var(--line);
}
.post__author { display: inline-flex; align-items: center; gap: 12px; }
.post__author-avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  background: var(--navy);
  color: var(--orange);
  font: 700 14px/1 var(--font-sans);
  letter-spacing: 0.04em;
  border-radius: 999px;
}
.post__author-info { display: flex; flex-direction: column; gap: 2px; }
.post__author-label {
  font: 400 11px/1 var(--font-sans);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ink-soft);
}
.post__author-name { font: 600 14px/1.3 var(--font-sans); color: var(--navy); }

.post__share { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.post__share-label {
  font: 500 11px/1 var(--font-sans);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ink-soft);
}
.post__share a,
.post__share button {
  padding: 6px 12px;
  font: 500 12px/1 var(--font-sans);
  color: var(--navy);
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 999px;
  text-decoration: none;
  cursor: pointer;
  transition: background var(--tx) ease, border-color var(--tx) ease, color var(--tx) ease;
}
.post__share a:hover,
.post__share button:hover,
.post__share button.is-copied { background: var(--navy); border-color: var(--navy); color: #fff; }

/* Cover */
.post__cover {
  margin: 0;
  padding: 0;
  background: var(--bone-deep);
}
.post__cover img {
  display: block;
  width: 100%;
  max-height: clamp(360px, 50vw, 560px);
  object-fit: cover;
}
.post__cover-caption {
  display: block;
  max-width: 1320px;
  margin: 0 auto;
  padding: 10px clamp(20px, 5vw, 80px);
  font: 400 12px/1.4 var(--font-sans);
  font-style: italic;
  color: var(--ink-soft);
  background: var(--bone);
}

/* Body */
.post__body { padding-block: clamp(48px, 6vw, 88px); background: var(--paper); }
.post__body-inner {
  display: flex;
  flex-direction: column;
  gap: var(--s-3);
  max-width: 90ch;
  margin-inline: auto;
}
.post__body-inner p {
  margin: 0;
  font: 400 clamp(16px, 1.15vw, 18px)/1.75 var(--font-sans);
  color: var(--ink);
}
.post__body-inner p strong { color: var(--navy); font-weight: 600; }
.post__body-inner p em { font-style: italic; }
.post__body-inner a {
  color: var(--navy);
  text-decoration: none;
  border-bottom: 1px solid var(--orange);
  transition: color var(--tx) ease;
}
.post__body-inner a:hover { color: var(--orange); }

.post__lede {
  font-size: clamp(17px, 1.3vw, 20px) !important;
  line-height: 1.6 !important;
  color: var(--navy) !important;
}

.post__h2 {
  margin: var(--s-4) 0 var(--s-1);
  font: 700 clamp(22px, 2.2vw, 30px)/1.2 var(--font-sans);
  letter-spacing: -0.015em;
  color: var(--navy);
  text-wrap: balance;
}

.post__ul {
  margin: 0;
  padding-left: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.post__ul li {
  position: relative;
  padding-left: 26px;
  font: 400 clamp(16px, 1.15vw, 18px)/1.7 var(--font-sans);
  color: var(--ink);
}
.post__ul li::before {
  content: "→";
  position: absolute;
  left: 0;
  top: 0;
  color: var(--orange);
  font-weight: 700;
}

.post__quote {
  margin: var(--s-3) 0;
  padding: clamp(24px, 3vw, 36px);
  background: var(--bone);
  border-left: 4px solid var(--orange);
  border-radius: 0 12px 12px 0;
}
.post__quote p {
  margin: 0;
  font: 500 clamp(17px, 1.4vw, 21px)/1.55 var(--font-sans) !important;
  color: var(--navy) !important;
  font-style: italic;
}
.post__quote-author {
  display: block;
  margin-top: 12px;
  font: 400 13px/1.4 var(--font-sans);
  color: var(--ink-soft);
  font-style: normal;
}

/* Post CTA inline */
.post__cta {
  background: var(--navy);
  color: #fff;
  padding-block: clamp(40px, 5vw, 64px);
}
.post__cta-inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--s-4);
  max-width: 1100px;
  margin-inline: auto;
}
.post__cta-text { display: flex; flex-direction: column; gap: 6px; max-width: 44ch; }
.post__cta-eyebrow {
  font: 500 11px/1 'JetBrains Mono', ui-monospace, monospace;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--orange);
}
.post__cta-title {
  margin: 0;
  font: 700 clamp(22px, 2.2vw, 28px)/1.2 var(--font-sans);
  letter-spacing: -0.015em;
  color: #fff;
  text-wrap: balance;
}
.post__cta-text p {
  margin: 0;
  font: 400 14px/1.55 var(--font-sans);
  color: rgba(255, 255, 255, 0.78);
}

/* Tags */
.post__footer { padding-block: clamp(32px, 4vw, 56px); background: var(--paper); border-top: 1px solid var(--line); }
.post__tags { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.post__tags-label {
  font: 500 11px/1 var(--font-sans);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink-soft);
  margin-right: 6px;
}
.post__tags a,
.post__tags span {
  padding: 6px 12px;
  font: 500 12px/1 var(--font-sans);
  color: var(--navy);
  background: var(--bone);
  border: 1px solid var(--line);
  border-radius: 999px;
  text-decoration: none;
  transition: background var(--tx) ease, color var(--tx) ease;
}
.post__tags a:hover { background: var(--navy); color: var(--orange); }

/* Related */
.post-related { background: var(--bone); padding-block: clamp(48px, 6vw, 80px); }
.post-related__head { margin-bottom: var(--s-4); display: flex; flex-direction: column; gap: 6px; }
.post-related__eyebrow {
  font: 500 11px/1 'JetBrains Mono', ui-monospace, monospace;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--orange);
}
.post-related__title {
  margin: 0;
  font: 700 clamp(22px, 2.4vw, 30px)/1.2 var(--font-sans);
  letter-spacing: -0.015em;
  color: var(--navy);
}
.post-related__grid {
  grid-template-columns: 1fr !important;
}
@media (min-width: 720px) { .post-related__grid { grid-template-columns: repeat(2, 1fr) !important; } }
.post-related__back { display: flex; justify-content: center; margin-top: var(--s-5); }

/* ====== Sobre — Internal Page ====== */

/* Hero */
.about-hero {
  background: var(--navy);
  color: #fff;
  padding-top: calc(var(--header-h) + clamp(56px, 7vw, 112px));
  padding-bottom: clamp(64px, 8vw, 112px);
}
.about-hero__title {
  margin: var(--s-3) 0 0;
  font: 700 clamp(34px, 5vw, 68px)/1.05 var(--font-sans);
  letter-spacing: -0.02em;
  color: #fff;
  text-wrap: balance;
  max-width: 22ch;
}
.about-hero__title em { color: var(--orange); font-style: normal; }
.about-hero__lead {
  margin-top: var(--s-4);
  max-width: 62ch;
  font: 400 clamp(15px, 1.2vw, 18px)/1.6 var(--font-sans);
  color: rgba(255, 255, 255, 0.78);
}

.about-hero__metrics {
  list-style: none;
  margin: var(--s-6) 0 0;
  padding: var(--s-4) 0 0;
  border-top: 1px solid rgba(255, 255, 255, 0.14);
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--s-4);
}
@media (min-width: 768px)  { .about-hero__metrics { grid-template-columns: repeat(3, 1fr); } }
.about-hero__metrics li { display: flex; flex-direction: column; gap: 6px; }
.about-hero__metric-num {
  font: 700 clamp(36px, 4vw, 56px)/1 var(--font-sans);
  letter-spacing: -0.02em;
  color: var(--orange);
  font-feature-settings: "tnum";
}
.about-hero__metric-num small {
  font-size: 0.5em;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.6);
  margin-left: 2px;
}
.about-hero__metric-label {
  font: 500 11px/1.3 var(--font-sans);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.65);
}

/* Quem somos */
.about-who { background: var(--paper); padding-block: clamp(64px, 8vw, 112px); }
.about-who__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(32px, 4vw, 64px);
  align-items: center;
}
@media (min-width: 1024px) { .about-who__grid { grid-template-columns: 5fr 7fr; gap: clamp(48px, 5vw, 80px); } }

.about-who__media {
  margin: 0;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  border-radius: 16px;
  background: var(--bone);
}
.about-who__media img { width: 100%; height: 100%; object-fit: cover; }

.about-who__body { display: flex; flex-direction: column; gap: var(--s-3); }
.about-who__eyebrow {
  font: 500 11px/1 'JetBrains Mono', ui-monospace, monospace;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--orange);
}
.about-who__title {
  margin: 0;
  font: 700 clamp(28px, 3.4vw, 44px)/1.15 var(--font-sans);
  letter-spacing: -0.018em;
  color: var(--navy);
  text-wrap: balance;
  max-width: 18ch;
}
.about-who__title em { color: var(--orange); font-style: normal; }
.about-who__body p {
  margin: 0;
  font: 400 clamp(15px, 1.1vw, 17px)/1.7 var(--font-sans);
  color: var(--ink-soft);
  max-width: 60ch;
}
.about-who__body strong { color: var(--navy); font-weight: 600; }

/* Manifesto */
.about-manifesto {
  background: var(--navy);
  color: #fff;
  padding-block: clamp(72px, 9vw, 128px);
  position: relative;
  overflow: hidden;
}
.about-manifesto::before {
  content: "";
  position: absolute;
  top: clamp(-60px, -5vw, -40px);
  left: clamp(20px, 5vw, 80px);
  font: 800 clamp(180px, 22vw, 320px)/1 var(--font-sans);
  color: var(--orange);
  opacity: 0.12;
  content: "“";
  pointer-events: none;
  user-select: none;
}
.about-manifesto__inner { position: relative; z-index: 2; }
.about-manifesto__label {
  display: block;
  margin-bottom: var(--s-3);
  font: 500 11px/1 'JetBrains Mono', ui-monospace, monospace;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--orange);
}
.about-manifesto__quote {
  margin: 0;
  max-width: none;
}
.about-manifesto__quote p {
  margin: 0;
  font: 700 clamp(32px, 5vw, 72px)/1.1 var(--font-sans);
  letter-spacing: -0.02em;
  color: #fff;
  /* removido text-wrap: balance — agora a quebra é forçada via <br> */
}
.about-manifesto__quote em { color: var(--orange); font-style: normal; }
.about-manifesto__quote footer {
  margin-top: var(--s-4);
  font: 500 13px/1 'JetBrains Mono', ui-monospace, monospace;
  letter-spacing: 0.1em;
  color: rgba(255, 255, 255, 0.5);
}

/* Linha do tempo */
.about-timeline { background: var(--paper); padding-block: clamp(64px, 8vw, 112px); }
.about-timeline__head { margin-bottom: var(--s-6); max-width: 60ch; }
.about-timeline__eyebrow {
  display: block;
  margin-bottom: var(--s-2);
  font: 500 11px/1 'JetBrains Mono', ui-monospace, monospace;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--orange);
}
.about-timeline__title {
  margin: 0;
  font: 700 clamp(26px, 3vw, 40px)/1.15 var(--font-sans);
  letter-spacing: -0.018em;
  color: var(--navy);
  text-wrap: balance;
}
.about-timeline__lead {
  margin: var(--s-2) 0 0;
  font: 400 15px/1.6 var(--font-sans);
  color: var(--ink-soft);
}

.about-timeline__list {
  list-style: none;
  padding: 0;
  margin: 0;
  position: relative;
  /* --rail = posição X do trilho/bolinha (também marca o fim da coluna do ano) */
  --rail: clamp(100px, 11vw, 144px);
}
/* linha vertical conectora */
.about-timeline__list::before {
  content: "";
  position: absolute;
  left: var(--rail);
  top: 16px;
  bottom: 16px;
  width: 2px;
  background: linear-gradient(to bottom, var(--orange) 0%, var(--orange) 82%, rgba(249, 149, 0, 0) 100%);
  transform: translateX(-50%);
}
.about-timeline__item {
  position: relative;
  display: grid;
  /* coluna do ano termina exatamente no trilho; gap separa o conteúdo do trilho */
  grid-template-columns: var(--rail) 1fr;
  column-gap: clamp(32px, 4vw, 64px);
  padding-block: clamp(20px, 2.5vw, 32px);
}
/* bolinha centrada no trilho */
.about-timeline__item::before {
  content: "";
  position: absolute;
  left: var(--rail);
  top: 50%;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: var(--orange);
  border: 3px solid var(--paper);
  box-shadow: 0 0 0 2px var(--orange);
  transform: translate(-50%, -50%);
}
.about-timeline__year {
  align-self: center;
  /* termina antes do trilho — espaço maior pra não tocar a bolinha */
  padding-right: clamp(20px, 2.4vw, 36px);
  font: 700 clamp(28px, 3vw, 40px)/1 var(--font-sans);
  letter-spacing: -0.01em;
  color: var(--orange);
  font-feature-settings: "tnum";
  text-align: right;
}
.about-timeline__content { display: flex; flex-direction: column; gap: 6px; max-width: 56ch; }
.about-timeline__item-title {
  margin: 0;
  font: 700 clamp(17px, 1.4vw, 21px)/1.3 var(--font-sans);
  letter-spacing: -0.005em;
  color: var(--navy);
}
.about-timeline__item-desc {
  margin: 0;
  font: 400 15px/1.65 var(--font-sans);
  color: var(--ink-soft);
}

/* Mobile: empilhado, trilho ao lado esquerdo (rail = 12px) */
@media (max-width: 640px) {
  .about-timeline__list { --rail: 12px; }
  .about-timeline__item {
    grid-template-columns: 1fr;
    column-gap: 0;
    padding-left: 36px;
  }
  .about-timeline__item::before {
    top: clamp(28px, 4vw, 36px);
    transform: translate(-50%, 0);
  }
  .about-timeline__year {
    padding-right: 0;
    text-align: left;
    margin-bottom: 4px;
  }
}

/* Pilares */
/* ====== Sobre — Certificações ISO (anchor #certificacoes) ====== */
.about-certs {
  background: var(--bone-deep);
  padding-block: clamp(64px, 8vw, 112px);
  scroll-margin-top: calc(var(--header-h) + 20px);
}
.about-certs__head {
  display: flex;
  flex-direction: column;
  gap: var(--s-2);
  max-width: 60ch;
  margin-bottom: var(--s-5);
}
.about-certs__eyebrow {
  font: 500 11px/1 'JetBrains Mono', ui-monospace, monospace;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--orange);
}
.about-certs__title {
  margin: 0;
  font: 700 clamp(28px, 3.2vw, 44px)/1.15 var(--font-sans);
  letter-spacing: -0.018em;
  color: var(--navy);
  text-wrap: balance;
}
.about-certs__title em { color: var(--orange); font-style: normal; }
.about-certs__lead {
  margin: var(--s-2) 0 0;
  font: 400 clamp(15px, 1.1vw, 17px)/1.65 var(--font-sans);
  color: var(--ink-soft);
  max-width: 64ch;
}

/* Group titles (ISO / Reconhecimentos) */
.about-certs__group-title {
  margin: 0 0 var(--s-3);
  font: 500 11px/1 'JetBrains Mono', ui-monospace, monospace;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ink-soft);
}
.about-certs__group-title + .about-certs__iso,
.about-certs__group-title + .about-certs__grid {
  margin-bottom: var(--s-6);
}
.about-certs__grid:last-child { margin-bottom: 0; }

/* ISO mini cards */
.about-certs__iso {
  display: grid;
  grid-template-columns: 1fr;
  gap: 14px;
  list-style: none;
  padding: 0;
  margin: 0;
}
@media (min-width: 640px) {
  .about-certs__iso { grid-template-columns: 1fr 1fr; }
}

.about-cert-mini {
  display: flex;
  align-items: center;
  gap: var(--s-3);
  padding: 18px 22px;
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 12px;
  transition: border-color var(--tx) ease, transform var(--tx) ease;
}
.about-cert-mini:hover {
  border-color: var(--orange);
  transform: translateY(-2px);
}
.about-cert-mini__logo {
  display: block;
  height: clamp(60px, 7vw, 76px);
  width: auto;
  flex-shrink: 0;
}
.about-cert-mini__body {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}
.about-cert-mini__name {
  font: 600 clamp(16px, 1.3vw, 18px)/1.25 var(--font-sans);
  letter-spacing: -0.005em;
  color: var(--navy);
}
.about-cert-mini__since {
  font: 500 10px/1 'JetBrains Mono', ui-monospace, monospace;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ink-soft);
  margin-top: 2px;
}

/* Reconhecimentos grid: cards com logo + nome */
.about-certs__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 14px;
  list-style: none;
  padding: 0;
  margin: 0;
}
@media (min-width: 640px)  { .about-certs__grid { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 900px)  { .about-certs__grid { grid-template-columns: repeat(4, 1fr); } }
@media (min-width: 1200px) { .about-certs__grid { grid-template-columns: repeat(5, 1fr); } }

.about-award {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  padding: 20px 16px;
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 12px;
  text-align: center;
  transition: border-color var(--tx) ease, transform var(--tx) ease;
}
.about-award:hover {
  border-color: var(--orange);
  transform: translateY(-2px);
}
.about-award__logo {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 64px;
  width: 100%;
}
.about-award__logo img {
  max-height: 100%;
  max-width: 100%;
  width: auto;
  object-fit: contain;
}
.about-award__name {
  font: 500 12px/1.35 var(--font-sans);
  color: var(--navy);
  text-wrap: balance;
}

@media (prefers-reduced-motion: reduce) {
  .about-cert-mini,
  .about-award { transition: none; }
  .about-cert-mini:hover,
  .about-award:hover { transform: none; }
}

.about-pillars { background: var(--bone); padding-block: clamp(64px, 8vw, 112px); }
.about-pillars__head { margin-bottom: var(--s-5); }
.about-pillars__eyebrow {
  display: block;
  margin-bottom: var(--s-2);
  font: 500 11px/1 'JetBrains Mono', ui-monospace, monospace;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--orange);
}
.about-pillars__title {
  margin: 0;
  font: 700 clamp(26px, 3vw, 40px)/1.15 var(--font-sans);
  letter-spacing: -0.018em;
  color: var(--navy);
}

.about-pillars__grid {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: 1fr;
  gap: 14px;
}
@media (min-width: 640px)  { .about-pillars__grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .about-pillars__grid { grid-template-columns: repeat(4, 1fr); } }

.about-pillar {
  padding: clamp(24px, 3vw, 36px);
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 14px;
  display: flex;
  flex-direction: column;
  gap: var(--s-2);
  transition: border-color var(--tx) ease, transform var(--tx) ease;
}
.about-pillar:hover {
  border-color: var(--orange);
  transform: translateY(-3px);
}
.about-pillar__num {
  font: 700 14px/1 'JetBrains Mono', ui-monospace, monospace;
  letter-spacing: 0.18em;
  color: var(--orange);
}
.about-pillar__title {
  margin: 0;
  font: 700 clamp(19px, 1.6vw, 22px)/1.2 var(--font-sans);
  letter-spacing: -0.01em;
  color: var(--navy);
}
.about-pillar__desc {
  margin: 0;
  font: 400 14px/1.6 var(--font-sans);
  color: var(--ink-soft);
}

/* Liderança */
.about-leadership { background: var(--paper); padding-block: clamp(64px, 8vw, 112px); }
.about-leadership__head { margin-bottom: var(--s-5); max-width: 60ch; }
.about-leadership__eyebrow {
  display: block;
  margin-bottom: var(--s-2);
  font: 500 11px/1 'JetBrains Mono', ui-monospace, monospace;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--orange);
}
.about-leadership__title {
  margin: 0;
  font: 700 clamp(26px, 3vw, 40px)/1.15 var(--font-sans);
  letter-spacing: -0.018em;
  color: var(--navy);
  text-wrap: balance;
}
.about-leadership__lead {
  margin: var(--s-2) 0 0;
  font: 400 15px/1.6 var(--font-sans);
  color: var(--ink-soft);
}

/* Lista editorial — cada sócio em uma linha, identidade à esquerda + bio à direita */
.about-leadership__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
}
.about-leader {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--s-3);
  padding-block: clamp(32px, 4vw, 52px);
  border-top: 1px solid var(--line);
}
.about-leader:first-child { border-top: 0; padding-top: 0; }
@media (min-width: 860px) {
  .about-leader {
    grid-template-columns: minmax(220px, 280px) 1fr;
    gap: clamp(32px, 5vw, 80px);
  }
}

/* Coluna de identidade */
.about-leader__id {
  display: flex;
  align-items: center;
  gap: var(--s-3);
}
@media (min-width: 860px) {
  .about-leader__id {
    flex-direction: column;
    align-items: flex-start;
    gap: var(--s-3);
    align-self: start;
    position: sticky;
    top: calc(var(--header-h) + 24px);
  }
}
/* Retrato do sócio — thumbnail no mobile, retrato cheio na coluna no desktop */
.about-leader__photo {
  display: block;
  flex: 0 0 auto;
  width: 104px;
  border-radius: 12px;
  overflow: hidden;
  background: var(--bone);
  border: 1px solid var(--line);
}
.about-leader__photo img {
  display: block;
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  object-position: center top;
}
@media (min-width: 860px) {
  .about-leader__photo { width: 100%; border-radius: 16px; }
}

.about-leader__avatar {
  flex: 0 0 auto;
  width: 64px;
  height: 64px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--navy);
  color: var(--orange);
  font: 700 17px/1 var(--font-sans);
  letter-spacing: 0.04em;
  border-radius: 999px;
}
.about-leader__meta { display: flex; flex-direction: column; gap: 6px; }
.about-leader__name {
  margin: 0;
  font: 700 clamp(18px, 1.6vw, 22px)/1.2 var(--font-sans);
  letter-spacing: -0.01em;
  color: var(--navy);
  text-wrap: balance;
}
.about-leader__role {
  margin: 0;
  font: 500 12px/1.3 'JetBrains Mono', ui-monospace, monospace;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--orange);
}

/* Coluna da bio */
.about-leader__body {
  display: flex;
  flex-direction: column;
  gap: var(--s-2);
}
.about-leader__bio {
  margin: 0;
  font: 400 clamp(14px, 1vw, 15.5px)/1.7 var(--font-sans);
  color: var(--ink-soft);
  max-width: 72ch;
}
.about-leader__bio:first-child { color: var(--ink); }

@media (prefers-reduced-motion: reduce) {
  .about-leader__id { position: static; }
}

/* ====== Sobre — Na mídia (carrossel centralizado com setas) ====== */
.about-media {
  background: var(--paper);
  padding-top: 0;
  padding-bottom: clamp(64px, 8vw, 112px);
  overflow: hidden;
}
.about-media__head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: var(--s-4);
  flex-wrap: wrap;
}
.about-media__head-text {
  display: flex;
  flex-direction: column;
  gap: var(--s-2);
  max-width: 60ch;
}
.about-media__nav {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
}
.about-media__arrow {
  width: 44px;
  height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  color: var(--navy);
  border: 1px solid var(--orange);
  border-radius: 999px;
  font: 500 18px/1 var(--font-sans);
  cursor: pointer;
  transition: background 280ms ease, border-color 280ms ease, color 280ms ease, transform 280ms ease;
}
.about-media__arrow:hover:not(:disabled) {
  background: var(--orange);
  color: #fff;
}
.about-media__arrow:active:not(:disabled) { transform: scale(0.96); }
.about-media__arrow:disabled { opacity: 0.35; cursor: not-allowed; }
.about-media__eyebrow {
  font: 500 11px/1 'JetBrains Mono', ui-monospace, monospace;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--orange);
}
.about-media__title {
  margin: 0;
  font: 700 clamp(28px, 3.2vw, 44px)/1.15 var(--font-sans);
  letter-spacing: -0.018em;
  color: var(--navy);
  text-wrap: balance;
}
.about-media__title em { color: var(--orange); font-style: normal; }
.about-media__lead {
  margin: var(--s-2) 0 0;
  font: 400 clamp(15px, 1.1vw, 17px)/1.65 var(--font-sans);
  color: var(--ink-soft);
  max-width: 60ch;
}

/* Rail: scroll infinito (3 sets de cards, JS teleporta silenciosamente nas bordas).
   Fora do .container — ocupa 100% da viewport, com mask em ambas as bordas. */
.about-media__rail {
  width: 100%;
  overflow-x: auto;
  overflow-y: visible;
  scroll-behavior: smooth;
  scrollbar-width: none;
  -ms-overflow-style: none;
  margin-top: var(--s-4);
  padding-inline: clamp(20px, 5vw, 80px);
}
.about-media__rail::-webkit-scrollbar { display: none; }

.about-media__track {
  display: flex;
  gap: clamp(16px, 1.5vw, 24px);
  list-style: none;
  margin: 0;
  padding-block: 4px;
  width: max-content;
}

.about-media__item {
  flex: 0 0 clamp(280px, 28vw, 360px);
  scroll-snap-align: start;
  display: flex;
}

.about-media__link {
  width: 100%;
  display: flex;
  flex-direction: column;
  height: 100%;
  background: var(--paper);
  color: inherit;
  text-decoration: none;
  border: 1px solid var(--line);
  border-radius: 12px;
  overflow: hidden;
  transition: border-color var(--tx) ease, transform var(--tx) ease, box-shadow var(--tx) ease;
}
.about-media__link:hover {
  border-color: var(--orange);
  transform: translateY(-4px);
  box-shadow: 0 12px 30px -10px rgba(7, 29, 85, 0.12);
}

.about-media__thumb {
  position: relative;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: var(--bone);
}
.about-media__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: grayscale(0.15);
  transition: transform 600ms cubic-bezier(0.16, 1, 0.3, 1), filter var(--tx) ease;
}
.about-media__link:hover .about-media__thumb img {
  transform: scale(1.04);
  filter: grayscale(0);
}

.about-media__body {
  display: flex;
  flex-direction: column;
  gap: 12px;
  flex: 1;
  padding: clamp(20px, 1.8vw, 28px);
}

.about-media__meta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font: 500 11px/1 'JetBrains Mono', ui-monospace, monospace;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.about-media__veiculo { color: var(--orange); }
.about-media__sep     { color: var(--ink-soft); opacity: 0.5; }
.about-media__date    { color: var(--ink-soft); }

.about-media__heading {
  margin: 0;
  font: 600 clamp(16px, 1.2vw, 19px)/1.3 var(--font-sans);
  letter-spacing: -0.005em;
  color: var(--navy);
  text-wrap: balance;
  transition: color var(--tx) ease;
}
.about-media__link:hover .about-media__heading { color: var(--orange); }

.about-media__resumo {
  margin: 0;
  flex: 1;
  font: 400 14px/1.55 var(--font-sans);
  color: var(--ink-soft);
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.about-media__cta {
  align-self: flex-start;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding-top: 4px;
  font: 600 13px/1 var(--font-sans);
  color: var(--navy);
  transition: color var(--tx) ease;
}
.about-media__cta-arrow {
  display: inline-block;
  transition: transform var(--tx) ease;
}
.about-media__link:hover .about-media__cta { color: var(--orange); }
.about-media__link:hover .about-media__cta-arrow {
  transform: translate(2px, -2px);
}

/* Rail data-anim: fade-in do trilho inteiro (cards visíveis desde sempre) */
.about-media__rail[data-anim] {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 700ms ease, transform 700ms ease;
}
.about-media__rail[data-anim].is-revealed {
  opacity: 1;
  transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
  .about-media__rail { scroll-behavior: auto; }
  .about-media__link,
  .about-media__thumb img,
  .about-media__cta,
  .about-media__cta-arrow,
  .about-media__heading { transition: none; transform: none; }
}

/* Diversidade & Inclusão */
.about-diversity {
  background: var(--bone-deep);
  padding-block: clamp(64px, 8vw, 112px);
}
.about-diversity__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(32px, 4vw, 64px);
  align-items: start;
}
@media (min-width: 1024px) { .about-diversity__grid { grid-template-columns: 7fr 5fr; gap: clamp(48px, 5vw, 80px); } }

.about-diversity__body { display: flex; flex-direction: column; gap: var(--s-3); max-width: 60ch; }
.about-diversity__eyebrow {
  font: 500 11px/1 'JetBrains Mono', ui-monospace, monospace;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--orange);
}
.about-diversity__title {
  margin: 0;
  font: 700 clamp(26px, 3vw, 40px)/1.15 var(--font-sans);
  letter-spacing: -0.018em;
  color: var(--navy);
  text-wrap: balance;
}
.about-diversity__title em { color: var(--orange); font-style: normal; }
.about-diversity__body p {
  margin: 0;
  font: 400 15px/1.7 var(--font-sans);
  color: var(--ink-soft);
}

.about-diversity__stats {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: var(--s-2);
}
.about-diversity__stats li {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: var(--s-3);
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 12px;
}
.about-diversity__stat-num {
  font: 700 clamp(32px, 3.5vw, 44px)/1 var(--font-sans);
  letter-spacing: -0.015em;
  color: var(--orange);
  font-feature-settings: "tnum";
}
.about-diversity__stat-num small {
  font-size: 0.55em;
  font-weight: 600;
  color: var(--navy);
  margin-left: 2px;
}
.about-diversity__stat-label {
  font: 500 12px/1.4 var(--font-sans);
  letter-spacing: 0.06em;
  color: var(--ink-soft);
}

/* ====== Tecnologia — Internal Page ====== */

.tech-hero {
  background: var(--navy-deep);
  color: #fff;
  padding-top: calc(var(--header-h) + clamp(56px, 7vw, 112px));
  padding-bottom: clamp(56px, 7vw, 96px);
}
.tech-hero__title {
  margin: var(--s-3) 0 0;
  font: 700 clamp(34px, 4.8vw, 64px)/1.05 var(--font-sans);
  letter-spacing: -0.02em;
  color: #fff;
  text-wrap: balance;
  max-width: 22ch;
}
.tech-hero__title em { color: var(--orange); font-style: normal; }
.tech-hero__lead {
  margin-top: var(--s-4);
  max-width: 62ch;
  font: 400 clamp(15px, 1.2vw, 18px)/1.6 var(--font-sans);
  color: rgba(255, 255, 255, 0.78);
}
.tech-hero__metrics {
  list-style: none;
  margin: var(--s-6) 0 0;
  padding: var(--s-4) 0 0;
  border-top: 1px solid rgba(255, 255, 255, 0.14);
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--s-4);
}
@media (min-width: 768px) { .tech-hero__metrics { grid-template-columns: repeat(4, 1fr); } }
.tech-hero__metrics li { display: flex; flex-direction: column; gap: 6px; }
.tech-hero__metric-num {
  font: 700 clamp(36px, 4vw, 56px)/1 var(--font-sans);
  letter-spacing: -0.02em;
  color: var(--orange);
  font-feature-settings: "tnum";
}
.tech-hero__metric-label {
  font: 500 11px/1.3 var(--font-sans);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.65);
}

/* Certificações */
.tech-certs-page { background: var(--paper); padding-block: clamp(64px, 8vw, 112px); }
.tech-certs-page__head { max-width: 60ch; margin-bottom: var(--s-5); }
.tech-certs-page__eyebrow {
  display: block;
  margin-bottom: var(--s-2);
  font: 500 11px/1 'JetBrains Mono', ui-monospace, monospace;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--orange);
}
.tech-certs-page__title {
  margin: 0;
  font: 700 clamp(26px, 3vw, 40px)/1.15 var(--font-sans);
  letter-spacing: -0.018em;
  color: var(--navy);
  text-wrap: balance;
}
.tech-certs-page__lead {
  margin: var(--s-2) 0 0;
  font: 400 15px/1.6 var(--font-sans);
  color: var(--ink-soft);
}

.tech-certs-page__grid {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--s-3);
}
@media (min-width: 768px) { .tech-certs-page__grid { grid-template-columns: 1fr 1fr; } }

.tech-cert-card {
  padding: clamp(28px, 3vw, 40px);
  background: var(--bone);
  border: 1px solid rgba(249, 149, 0, 0.35);
  border-radius: 16px;
  display: flex;
  flex-direction: column;
  gap: var(--s-2);
  transition: border-color var(--tx) ease, transform var(--tx) ease;
}
.tech-cert-card:hover { border-color: var(--orange); transform: translateY(-3px); }
.tech-cert-card__head {
  display: flex;
  align-items: center;
  gap: var(--s-3);
  padding-bottom: var(--s-2);
  border-bottom: 1px solid rgba(7, 29, 85, 0.08);
  margin-bottom: var(--s-1);
}
.tech-cert-card__logo {
  display: block;
  height: clamp(64px, 7vw, 84px);
  width: auto;
  flex-shrink: 0;
}
.tech-cert-card__meta {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
  flex: 1;
}
.tech-cert-card__since {
  font: 500 11px/1 'JetBrains Mono', ui-monospace, monospace;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink-soft);
}
.tech-cert-card__title {
  margin: 0;
  font: 700 clamp(17px, 1.4vw, 20px)/1.3 var(--font-sans);
  color: var(--navy);
  letter-spacing: -0.005em;
}
.tech-cert-card__desc { margin: 0; font: 400 14.5px/1.65 var(--font-sans); color: var(--ink-soft); }

/* Áreas de suporte (página) */
.tech-support-page { background: var(--bone); padding-block: clamp(64px, 8vw, 112px); }
.tech-support-page__head { max-width: 60ch; margin-bottom: var(--s-5); }
.tech-support-page__eyebrow {
  display: block;
  margin-bottom: var(--s-2);
  font: 500 11px/1 'JetBrains Mono', ui-monospace, monospace;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--orange);
}
.tech-support-page__title {
  margin: 0;
  font: 700 clamp(26px, 3vw, 40px)/1.15 var(--font-sans);
  letter-spacing: -0.018em;
  color: var(--navy);
  text-wrap: balance;
}
.tech-support-page__lead { margin: var(--s-2) 0 0; font: 400 15px/1.6 var(--font-sans); color: var(--ink-soft); }

.tech-support-page__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.tech-support-card {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--s-3);
  padding: clamp(24px, 3vw, 40px);
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 14px;
  transition: border-color var(--tx) ease, transform var(--tx) ease;
}
@media (min-width: 900px) { .tech-support-card { grid-template-columns: 5fr 7fr; gap: var(--s-5); align-items: start; } }
.tech-support-card:hover { border-color: var(--orange); transform: translateY(-2px); }
.tech-support-card__left { display: flex; flex-direction: column; gap: 6px; }
.tech-support-card__code {
  font: 600 11px/1 'JetBrains Mono', ui-monospace, monospace;
  letter-spacing: 0.18em;
  color: var(--orange);
}
.tech-support-card__name {
  margin: 0;
  font: 700 clamp(22px, 2.2vw, 30px)/1.15 var(--font-sans);
  letter-spacing: -0.015em;
  color: var(--navy);
}
.tech-support-card__subtitle { margin: 0; font: 500 13.5px/1.5 var(--font-sans); color: var(--ink-soft); }
.tech-support-card__desc { margin: 0; font: 400 15px/1.7 var(--font-sans); color: var(--ink-soft); }

/* Universidade Corporativa */
.tech-university { background: var(--navy); color: #fff; padding-block: clamp(64px, 8vw, 112px); }
.tech-university__inner {
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(32px, 4vw, 64px);
  align-items: start;
}
@media (min-width: 1024px) { .tech-university__inner { grid-template-columns: 7fr 5fr; gap: clamp(48px, 5vw, 80px); } }

.tech-university__body { display: flex; flex-direction: column; gap: var(--s-3); max-width: 60ch; }
.tech-university__eyebrow {
  font: 500 11px/1 'JetBrains Mono', ui-monospace, monospace;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--orange);
}
.tech-university__title {
  margin: 0;
  font: 700 clamp(28px, 3.4vw, 44px)/1.15 var(--font-sans);
  letter-spacing: -0.018em;
  color: #fff;
  text-wrap: balance;
}
.tech-university__title em { color: var(--orange); font-style: normal; }
.tech-university__body p { margin: 0; font: 400 15px/1.7 var(--font-sans); color: rgba(255, 255, 255, 0.82); }
.tech-university__features {
  list-style: none;
  padding: 0;
  margin: var(--s-3) 0 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.tech-university__features li {
  padding-left: 22px;
  position: relative;
  font: 400 14.5px/1.6 var(--font-sans);
  color: rgba(255, 255, 255, 0.78);
}
.tech-university__features li::before {
  content: "→";
  position: absolute; left: 0; top: 0;
  color: var(--orange);
  font-weight: 700;
}
.tech-university__features strong { color: #fff; font-weight: 600; }

.tech-university__aside {
  display: flex;
  flex-direction: column;
  gap: var(--s-2);
}
.tech-university__stat {
  padding: var(--s-3);
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 12px;
}
.tech-university__stat-num {
  display: block;
  font: 700 clamp(32px, 3.6vw, 44px)/1 var(--font-sans);
  letter-spacing: -0.015em;
  color: var(--orange);
  font-feature-settings: "tnum";
}
.tech-university__stat-num small {
  font-size: 0.55em;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.5);
  margin-left: 2px;
}
.tech-university__stat-label {
  display: block;
  margin-top: 4px;
  font: 500 12px/1.4 var(--font-sans);
  letter-spacing: 0.06em;
  color: rgba(255, 255, 255, 0.65);
}

/* 8 diferenciais — página (reusa estrutura do home) */
.tech-diffs-page { background: var(--navy-deep); padding-block: clamp(64px, 8vw, 112px); color: #fff; }

/* ====== Ecossistema — Internal Page ====== */
.eco-hero {
  background: var(--navy);
  color: #fff;
  padding-top: calc(var(--header-h) + clamp(56px, 7vw, 112px));
  padding-bottom: clamp(56px, 7vw, 96px);
}
.eco-hero__title {
  margin: var(--s-3) 0 0;
  font: 700 clamp(34px, 4.8vw, 64px)/1.05 var(--font-sans);
  letter-spacing: -0.02em;
  color: #fff;
  text-wrap: balance;
  max-width: 18ch;
}
.eco-hero__title em { color: var(--orange); font-style: normal; }
.eco-hero__lead {
  margin-top: var(--s-4);
  max-width: 62ch;
  font: 400 clamp(15px, 1.2vw, 18px)/1.6 var(--font-sans);
  color: rgba(255, 255, 255, 0.78);
}
.eco-hero__nav {
  margin-top: var(--s-5);
  padding-top: var(--s-4);
  border-top: 1px solid rgba(255, 255, 255, 0.14);
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.eco-hero__nav a {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 12px 18px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 999px;
  font: 500 13px/1 var(--font-sans);
  color: #fff;
  text-decoration: none;
  transition: background var(--tx) ease, border-color var(--tx) ease, color var(--tx) ease, transform var(--tx) ease;
}
.eco-hero__nav a:hover {
  background: var(--orange);
  border-color: var(--orange);
  color: var(--navy);
  transform: translateY(-1px);
}
.eco-hero__nav-num {
  font: 600 11px/1 'JetBrains Mono', ui-monospace, monospace;
  letter-spacing: 0.14em;
  color: var(--orange);
}
.eco-hero__nav a:hover .eco-hero__nav-num { color: var(--navy); }

/* Brand section (cada empresa) */
.eco-brand {
  scroll-margin-top: calc(var(--header-h) + 20px);
  background: var(--paper);
  padding-block: clamp(64px, 8vw, 112px);
  border-bottom: 1px solid var(--line);
}
.eco-brand--alt { background: var(--bone); }

.eco-brand__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--s-4);
}
@media (min-width: 1024px) {
  .eco-brand__grid { grid-template-columns: 4fr 8fr; gap: clamp(48px, 5vw, 80px); align-items: start; }
  .eco-brand__head { position: sticky; top: calc(var(--header-h) + var(--s-4)); }
}

.eco-brand__head { display: flex; flex-direction: column; gap: var(--s-1); }
.eco-brand__num {
  font: 600 12px/1 'JetBrains Mono', ui-monospace, monospace;
  letter-spacing: 0.18em;
  color: var(--orange);
}
.eco-brand__name {
  margin: 6px 0 0;
  font: 700 clamp(28px, 3.4vw, 44px)/1.1 var(--font-sans);
  letter-spacing: -0.018em;
  color: var(--navy);
  text-wrap: balance;
}
.eco-brand__tag { margin: 0; font: 500 14px/1.4 var(--font-sans); color: var(--orange); font-style: italic; }

.eco-brand__body { display: flex; flex-direction: column; gap: var(--s-3); max-width: 70ch; }
.eco-brand__lede {
  margin: 0;
  font: 400 clamp(16px, 1.2vw, 19px)/1.6 var(--font-sans);
  color: var(--navy);
}
.eco-brand__lede strong { color: var(--orange); font-weight: 700; }
.eco-brand__body p { margin: 0; font: 400 15px/1.7 var(--font-sans); color: var(--ink-soft); }
.eco-brand__body strong { color: var(--navy); font-weight: 600; }

.eco-brand__features {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: var(--s-2);
}
.eco-brand__feature {
  padding: 7px 14px;
  font: 500 12px/1 var(--font-sans);
  color: var(--navy);
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 999px;
}

.eco-brand__subhead {
  margin: var(--s-3) 0 0;
  font: 500 11px/1 'JetBrains Mono', ui-monospace, monospace;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--orange);
}

.eco-brand__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
}
@media (min-width: 640px)  { .eco-brand__list { grid-template-columns: 1fr 1fr; gap: 10px; } }
@media (min-width: 1280px) { .eco-brand__list { grid-template-columns: 1fr 1fr 1fr; gap: 10px; } }

.eco-brand__list li {
  padding: 16px 18px;
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 10px;
  font: 500 14px/1.4 var(--font-sans);
  color: var(--navy);
  transition: border-color var(--tx) ease, transform var(--tx) ease, background var(--tx) ease;
  cursor: default;
}
.eco-brand__list li:hover {
  border-color: var(--orange);
  background: var(--paper);
  transform: translateY(-2px);
}
.eco-brand--alt .eco-brand__list li { background: var(--bone-deep); }
.eco-brand--alt .eco-brand__list li:hover { background: var(--paper); }

/* Bullet variant: lista limpa com seta laranja */
.eco-brand__list--bullet {
  grid-template-columns: 1fr !important;
  gap: 12px !important;
}
.eco-brand__list--bullet li {
  position: relative;
  padding: 0 0 0 26px;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0;
  font: 400 14.5px/1.65 var(--font-sans);
  color: var(--ink-soft);
  transform: none !important;
}
.eco-brand__list--bullet li:hover {
  transform: none !important;
  background: transparent !important;
}
.eco-brand__list--bullet li::before {
  content: "→";
  position: absolute; left: 0; top: 0;
  color: var(--orange);
  font: 700 16px/1.65 var(--font-sans);
}

.eco-brand__cta {
  align-self: flex-start;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-top: var(--s-2);
  padding: 14px 22px;
  font: 600 13px/1 var(--font-sans);
  letter-spacing: 0.04em;
  color: #fff;
  background: var(--navy);
  border-radius: 999px;
  text-decoration: none;
  transition: background var(--tx) ease, color var(--tx) ease;
}
.eco-brand__cta:hover { background: var(--orange); color: var(--navy); }

/* Integração */
.eco-integrated { background: var(--navy-deep); color: #fff; padding-block: clamp(64px, 8vw, 112px); }
.eco-integrated__head { margin-bottom: var(--s-5); max-width: 60ch; }
.eco-integrated__eyebrow {
  display: block;
  margin-bottom: var(--s-2);
  font: 500 11px/1 'JetBrains Mono', ui-monospace, monospace;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--orange);
}
.eco-integrated__title {
  margin: 0;
  font: 700 clamp(26px, 3vw, 40px)/1.15 var(--font-sans);
  letter-spacing: -0.018em;
  color: #fff;
  text-wrap: balance;
}
.eco-integrated__title em { color: var(--orange); font-style: normal; }
.eco-integrated__lead { margin: var(--s-2) 0 0; font: 400 15px/1.7 var(--font-sans); color: rgba(255, 255, 255, 0.82); }

.eco-integrated__steps {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: 1fr;
  gap: 14px;
}
@media (min-width: 768px)  { .eco-integrated__steps { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1100px) { .eco-integrated__steps { grid-template-columns: repeat(4, 1fr); } }
.eco-integrated__steps li {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: clamp(20px, 2.5vw, 28px);
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 14px;
  transition: border-color var(--tx) ease, transform var(--tx) ease;
}
.eco-integrated__steps li:hover { border-color: var(--orange); transform: translateY(-2px); }
.eco-integrated__step-num {
  font: 700 12px/1 'JetBrains Mono', ui-monospace, monospace;
  letter-spacing: 0.18em;
  color: var(--orange);
}
.eco-integrated__steps h3 {
  margin: 4px 0 0;
  font: 700 clamp(18px, 1.6vw, 22px)/1.2 var(--font-sans);
  letter-spacing: -0.005em;
  color: #fff;
}
.eco-integrated__steps p { margin: 0; font: 400 14px/1.6 var(--font-sans); color: rgba(255, 255, 255, 0.75); }

/* ====== Carreiras — Internal Page ====== */
.careers-hero {
  background: var(--navy);
  color: #fff;
  padding-top: calc(var(--header-h) + clamp(56px, 7vw, 112px));
  padding-bottom: clamp(56px, 7vw, 96px);
}
.careers-hero__title {
  margin: var(--s-3) 0 0;
  font: 700 clamp(34px, 4.8vw, 64px)/1.05 var(--font-sans);
  letter-spacing: -0.02em;
  color: #fff;
  text-wrap: balance;
  max-width: 22ch;
}
.careers-hero__title em { color: var(--orange); font-style: normal; }
.careers-hero__lead {
  margin-top: var(--s-4);
  max-width: 62ch;
  font: 400 clamp(15px, 1.2vw, 18px)/1.6 var(--font-sans);
  color: rgba(255, 255, 255, 0.78);
}
.careers-hero__ctas {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: var(--s-5);
}

/* Por que Vigna */
.careers-value { background: var(--paper); padding-block: clamp(64px, 8vw, 112px); }
.careers-value__head { margin-bottom: var(--s-5); max-width: 60ch; }
.careers-value__eyebrow {
  display: block;
  margin-bottom: var(--s-2);
  font: 500 11px/1 'JetBrains Mono', ui-monospace, monospace;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--orange);
}
.careers-value__title {
  margin: 0;
  font: 700 clamp(26px, 3vw, 40px)/1.15 var(--font-sans);
  letter-spacing: -0.018em;
  color: var(--navy);
  text-wrap: balance;
}
.careers-value__grid {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: 1fr;
  gap: 14px;
}
@media (min-width: 640px)  { .careers-value__grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .careers-value__grid { grid-template-columns: repeat(3, 1fr); } }
.careers-value-card {
  padding: clamp(24px, 3vw, 32px);
  background: var(--bone);
  border: 1px solid var(--line);
  border-radius: 14px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  transition: border-color var(--tx) ease, transform var(--tx) ease;
}
.careers-value-card:hover { border-color: var(--orange); transform: translateY(-3px); }
.careers-value-card__icon {
  width: 32px;
  height: 4px;
  background: var(--orange);
  border-radius: 4px;
}
.careers-value-card__title {
  margin: 0;
  font: 700 clamp(18px, 1.6vw, 22px)/1.2 var(--font-sans);
  color: var(--navy);
  letter-spacing: -0.01em;
}
.careers-value-card__desc { margin: 0; font: 400 14px/1.6 var(--font-sans); color: var(--ink-soft); }

/* Universidade callout */
.careers-uni { background: var(--bone); padding-block: clamp(64px, 8vw, 112px); }
.careers-uni__inner { max-width: 980px; margin-inline: auto; }
.careers-uni__body { display: flex; flex-direction: column; gap: var(--s-3); }
.careers-uni__eyebrow {
  font: 500 11px/1 'JetBrains Mono', ui-monospace, monospace;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--orange);
}
.careers-uni__title {
  margin: 0;
  font: 700 clamp(28px, 3.4vw, 44px)/1.15 var(--font-sans);
  letter-spacing: -0.018em;
  color: var(--navy);
  text-wrap: balance;
  max-width: 20ch;
}
.careers-uni__title em { color: var(--orange); font-style: normal; }
.careers-uni__body p { margin: 0; font: 400 15px/1.7 var(--font-sans); color: var(--ink-soft); max-width: 70ch; }
.careers-uni__features {
  list-style: none;
  padding: 0;
  margin: var(--s-2) 0 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.careers-uni__features li {
  position: relative;
  padding-left: 22px;
  font: 400 14.5px/1.6 var(--font-sans);
  color: var(--ink-soft);
}
.careers-uni__features li::before {
  content: "→";
  position: absolute; left: 0; top: 0;
  color: var(--orange);
  font-weight: 700;
}
.careers-uni__features strong { color: var(--navy); font-weight: 600; }

/* Áreas em que contratamos */
.careers-areas { background: var(--paper); padding-block: clamp(64px, 8vw, 112px); }
.careers-areas__head { margin-bottom: var(--s-5); max-width: 60ch; }
.careers-areas__eyebrow {
  display: block;
  margin-bottom: var(--s-2);
  font: 500 11px/1 'JetBrains Mono', ui-monospace, monospace;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--orange);
}
.careers-areas__title {
  margin: 0;
  font: 700 clamp(26px, 3vw, 40px)/1.15 var(--font-sans);
  letter-spacing: -0.018em;
  color: var(--navy);
}
.careers-areas__lead { margin: var(--s-2) 0 0; font: 400 15px/1.6 var(--font-sans); color: var(--ink-soft); }
.careers-areas__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(28px, 3vw, 56px);
}
@media (min-width: 768px) { .careers-areas__grid { grid-template-columns: 1fr 1fr; } }
.careers-areas__col-title {
  margin: 0 0 var(--s-3);
  padding-bottom: var(--s-2);
  border-bottom: 1px solid var(--line);
  font: 700 14px/1 var(--font-sans);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--orange);
}
.careers-areas__list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 12px; }
.careers-areas__list li {
  padding: 10px 0;
  font: 500 15px/1.4 var(--font-sans);
  color: var(--navy);
  border-bottom: 1px solid rgba(7, 29, 85, 0.06);
}

/* Processo seletivo */
.careers-process { background: var(--bone); padding-block: clamp(64px, 8vw, 112px); }
.careers-process__head { margin-bottom: var(--s-5); max-width: 60ch; }
.careers-process__eyebrow {
  display: block;
  margin-bottom: var(--s-2);
  font: 500 11px/1 'JetBrains Mono', ui-monospace, monospace;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--orange);
}
.careers-process__title {
  margin: 0;
  font: 700 clamp(26px, 3vw, 40px)/1.15 var(--font-sans);
  letter-spacing: -0.018em;
  color: var(--navy);
}
.careers-process__lead { margin: var(--s-2) 0 0; font: 400 15px/1.6 var(--font-sans); color: var(--ink-soft); }
.careers-process__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.careers-process-step {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: var(--s-3);
  align-items: start;
  padding: clamp(20px, 2.5vw, 32px);
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 12px;
  transition: border-color var(--tx) ease, transform var(--tx) ease;
}
.careers-process-step:hover { border-color: var(--orange); transform: translateY(-2px); }
.careers-process-step__num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  background: var(--navy);
  color: var(--orange);
  font: 700 14px/1 'JetBrains Mono', ui-monospace, monospace;
  letter-spacing: 0.06em;
  border-radius: 999px;
}
.careers-process-step__title {
  margin: 0;
  font: 700 clamp(18px, 1.6vw, 22px)/1.2 var(--font-sans);
  color: var(--navy);
  letter-spacing: -0.005em;
}
.careers-process-step__desc { margin: 6px 0 0; font: 400 14.5px/1.65 var(--font-sans); color: var(--ink-soft); }

/* Vagas */
.careers-jobs { background: var(--paper); padding-block: clamp(64px, 8vw, 112px); scroll-margin-top: calc(var(--header-h) + 20px); }
.careers-jobs__head { margin-bottom: var(--s-5); max-width: 60ch; }
.careers-jobs__eyebrow {
  display: block;
  margin-bottom: var(--s-2);
  font: 500 11px/1 'JetBrains Mono', ui-monospace, monospace;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--orange);
}
.careers-jobs__title {
  margin: 0;
  font: 700 clamp(26px, 3vw, 40px)/1.15 var(--font-sans);
  letter-spacing: -0.018em;
  color: var(--navy);
  text-wrap: balance;
}
.careers-jobs__lead { margin: var(--s-2) 0 0; font: 400 15px/1.6 var(--font-sans); color: var(--ink-soft); }
.careers-jobs__lead a { color: var(--navy); text-decoration: underline; }

.careers-jobs__list { list-style: none; padding: 0; margin: 0 0 var(--s-5); border-top: 1px solid var(--line); }
.careers-job {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: var(--s-3);
  align-items: center;
  padding: var(--s-3) 0;
  border-bottom: 1px solid var(--line);
  transition: padding-left var(--tx) ease;
}
.careers-job:hover { padding-left: 8px; }
.careers-job__main { display: flex; flex-direction: column; gap: 4px; }
.careers-job__tag {
  font: 500 11px/1 'JetBrains Mono', ui-monospace, monospace;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--orange);
}
.careers-job__title {
  margin: 0;
  font: 700 clamp(17px, 1.4vw, 20px)/1.25 var(--font-sans);
  color: var(--navy);
  letter-spacing: -0.005em;
}
.careers-job__loc { font: 400 13.5px/1.4 var(--font-sans); color: var(--ink-soft); }
.careers-job__cta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 10px 18px;
  font: 600 13px/1 var(--font-sans);
  color: var(--navy);
  background: transparent;
  border: 1px solid var(--line);
  border-radius: 999px;
  text-decoration: none;
  white-space: nowrap;
  transition: background var(--tx) ease, color var(--tx) ease, border-color var(--tx) ease;
}
.careers-job__cta:hover { background: var(--navy); color: #fff; border-color: var(--navy); }

.careers-jobs__bank {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--s-3);
  padding: clamp(24px, 3vw, 36px);
  background: var(--bone);
  border: 1px solid var(--line);
  border-radius: 12px;
}
.careers-jobs__bank p { margin: 0; max-width: 48ch; font: 400 14.5px/1.6 var(--font-sans); color: var(--ink-soft); }
.careers-jobs__bank strong { color: var(--navy); font-weight: 600; }

/* ====== Filiais — Internal Page ====== */
.branches-hero {
  background: var(--navy);
  color: #fff;
  padding-top: calc(var(--header-h) + clamp(56px, 7vw, 112px));
  padding-bottom: clamp(56px, 7vw, 96px);
}
.branches-hero__title {
  margin: var(--s-3) 0 0;
  font: 700 clamp(34px, 4.8vw, 64px)/1.05 var(--font-sans);
  letter-spacing: -0.02em;
  color: #fff;
  text-wrap: balance;
  max-width: 18ch;
}
.branches-hero__title em { color: var(--orange); font-style: normal; }
.branches-hero__lead {
  margin-top: var(--s-4);
  max-width: 62ch;
  font: 400 clamp(15px, 1.2vw, 18px)/1.6 var(--font-sans);
  color: rgba(255, 255, 255, 0.78);
}
.branches-hero__metrics {
  list-style: none;
  margin: var(--s-6) 0 0;
  padding: var(--s-4) 0 0;
  border-top: 1px solid rgba(255, 255, 255, 0.14);
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--s-4);
}
@media (min-width: 768px) { .branches-hero__metrics { grid-template-columns: repeat(4, 1fr); } }
.branches-hero__metrics li { display: flex; flex-direction: column; gap: 6px; }
.branches-hero__metric-num {
  font: 700 clamp(36px, 4vw, 56px)/1 var(--font-sans);
  letter-spacing: -0.02em;
  color: var(--orange);
  font-feature-settings: "tnum";
}
.branches-hero__metric-label {
  font: 500 11px/1.3 var(--font-sans);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.65);
}

/* Mapa + legenda */
.branches-map-page { background: var(--bone); padding-block: clamp(64px, 8vw, 112px); }
.branches-map-page__inner {
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(32px, 4vw, 64px);
  align-items: center;
}
@media (min-width: 1024px) { .branches-map-page__inner { grid-template-columns: 5fr 7fr; gap: clamp(48px, 5vw, 80px); } }

.branches-map-page__map { position: relative; max-width: 520px; margin-inline: auto; }
.branches-map-page__map svg { display: block; width: 100%; height: auto; }

.branches-map-page__legend { display: flex; flex-direction: column; gap: var(--s-3); }
.branches-map-page__eyebrow {
  font: 500 11px/1 'JetBrains Mono', ui-monospace, monospace;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--orange);
}
.branches-map-page__title {
  margin: 0;
  font: 700 clamp(26px, 3vw, 40px)/1.15 var(--font-sans);
  letter-spacing: -0.018em;
  color: var(--navy);
  text-wrap: balance;
}
.branches-map-page__title em { color: var(--orange); font-style: normal; }
.branches-map-page__legend p { margin: 0; font: 400 15px/1.7 var(--font-sans); color: var(--ink-soft); max-width: 56ch; }

.branches-map-page__regions {
  list-style: none;
  padding: 0;
  margin: var(--s-2) 0 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
.branches-map-page__regions a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 18px;
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 10px;
  font: 500 14px/1.3 var(--font-sans);
  color: var(--navy);
  text-decoration: none;
  transition: border-color var(--tx) ease, transform var(--tx) ease;
}
.branches-map-page__regions a:hover { border-color: var(--orange); transform: translateY(-2px); }
.branches-map-page__region-count {
  font: 500 12px/1 'JetBrains Mono', ui-monospace, monospace;
  letter-spacing: 0.06em;
  color: var(--orange);
}

/* Filiais por região */
.branches-list { background: var(--paper); padding-block: clamp(56px, 6vw, 88px); }
.branches-region { scroll-margin-top: calc(var(--header-h) + 20px); padding-block: clamp(40px, 5vw, 64px); border-bottom: 1px solid var(--line); }
.branches-region:last-child { border-bottom: 0; }
.branches-region__head { margin-bottom: var(--s-4); display: flex; flex-direction: column; gap: 4px; }
.branches-region__eyebrow {
  font: 700 14px/1 var(--font-sans);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--orange);
}
.branches-region__title {
  margin: 0;
  font: 700 clamp(22px, 2.4vw, 30px)/1.2 var(--font-sans);
  letter-spacing: -0.015em;
  color: var(--navy);
  font-feature-settings: "tnum";
}

.branches-region__grid {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: 1fr;
  gap: 14px;
}
@media (min-width: 640px)  { .branches-region__grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .branches-region__grid { grid-template-columns: repeat(3, 1fr); } }

.branch-card {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: clamp(20px, 2.5vw, 28px);
  background: var(--bone);
  border: 1px solid var(--line);
  border-radius: 12px;
  scroll-margin-top: calc(var(--header-h) + 24px);
  transition: border-color var(--tx) ease, transform var(--tx) ease, background var(--tx) ease, box-shadow var(--tx) ease;
}
.branch-card:hover { background: var(--paper); border-color: var(--orange); transform: translateY(-2px); }
/* Realce quando a âncora da cidade é alvo de um link da home */
.branch-card:target {
  border-color: var(--orange);
  background: var(--paper);
  box-shadow: 0 0 0 3px rgba(249, 149, 0, 0.18);
}
.branch-card__head { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.branch-card__city {
  margin: 0;
  font: 700 clamp(17px, 1.4vw, 20px)/1.2 var(--font-sans);
  color: var(--navy);
  letter-spacing: -0.005em;
}
.branch-card__units {
  font: 500 11px/1 'JetBrains Mono', ui-monospace, monospace;
  letter-spacing: 0.1em;
  padding: 4px 8px;
  background: var(--orange);
  color: var(--navy);
  border-radius: 999px;
  white-space: nowrap;
}
.branch-card__address {
  margin: 0;
  font: 400 13.5px/1.55 var(--font-sans);
  font-style: normal;
  color: var(--ink-soft);
}
.branch-card__contact { display: flex; flex-direction: column; gap: 6px; margin-top: 6px; padding-top: 12px; border-top: 1px solid var(--line); }
.branch-card__contact a {
  font: 500 13.5px/1.4 var(--font-sans);
  color: var(--navy);
  text-decoration: none;
}
.branch-card__contact a:hover { color: var(--orange); }
.branch-card__map {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 12.5px !important;
  color: var(--ink-soft) !important;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.branch-card__map:hover { color: var(--orange) !important; }

/* ====== Reveal on scroll ====== */
[data-anim] {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity var(--tx-slow) ease, transform var(--tx-slow) ease;
  will-change: opacity, transform;
}
[data-anim].is-revealed {
  opacity: 1;
  transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
  [data-anim] { opacity: 1 !important; transform: none !important; transition: none !important; }
  .areas__module,
  .ecosystem__slide,
  .ecosystem__bar,
  .ecosystem__arrow,
  .testimonials__slide,
  .testimonials__card-wrap,
  .testimonials__mark { transition: none !important; transform: none !important; }
}

/* ====== Landscape mobile fallback ====== */
@media (max-height: 500px) and (orientation: landscape) {
  .hero { min-height: 600px; }
}

/* ── Plooma: ícones de suporte vindos da galeria de mídia (<img>) ──
   No original eram SVG inline em branco (currentColor). Como agora são
   <img> da biblioteca, este filtro restaura o branco sobre o fundo navy. */
.tech__support-icon img { width: 100%; height: 100%; object-fit: contain; filter: brightness(0) invert(1); }

/* ── CTA final: cor sólida (var --navy-deep) no lugar da imagem de fundo ──
   A antiga cta-bg.jpg era praticamente um navy chapado coberto por um
   gradiente. Agora é uma única cor sólida (overlay + base no mesmo navy). */
.footer-cta { background-color: var(--navy-deep); }

/* ── Validação client-side do formulário de contato (borda + texto em vermelho) ── */
.contact-form__error { display: none; margin-top: 6px; font: 500 12.5px/1.4 var(--font-sans); color: #d12b2b; }
.contact-form__field.is-error > .contact-form__error,
.contact-form__field--check.is-error > .contact-form__error { display: block; }
.contact-form__field.is-error input,
.contact-form__field.is-error select,
.contact-form__field.is-error textarea { border-color: #d12b2b; box-shadow: 0 0 0 3px rgba(209, 43, 43, 0.12); }
.contact-form__field--check { flex-wrap: wrap; }
.contact-form__field--check.is-error label { color: #d12b2b; }
.contact-form__field--check .contact-form__error { flex-basis: 100%; margin-top: 4px; }
.contact-form__field--check.is-error input[type="checkbox"] { border-color: #d12b2b; outline: 2px solid rgba(209, 43, 43, 0.35); }
