/* ===================== FONTES OFICIAIS (self-hosted, OFL) ===================== */
/* Spectral — títulos e nome da marca */
@font-face {
  font-family: "Spectral";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/spectral-latin-500-normal.woff2") format("woff2");
}
@font-face {
  font-family: "Spectral";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/spectral-latin-600-normal.woff2") format("woff2");
}
@font-face {
  font-family: "Spectral";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/spectral-latin-700-normal.woff2") format("woff2");
}
/* Inter — corpo e descritores */
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url("../fonts/inter-latin-300-normal.woff2") format("woff2");
}
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/inter-latin-400-normal.woff2") format("woff2");
}
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/inter-latin-500-normal.woff2") format("woff2");
}
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/inter-latin-600-normal.woff2") format("woff2");
}

/* ===================== TOKENS ===================== */
:root {
  /* Paleta oficial Chaves de Azevedo — Marinho estrutura, Ouro acentua */
  --gold: #b0872f;        /* Ouro — acento raro */
  --gold-dark: #8c6a24;
  --gold-on-light: #835f1f;  /* dourado p/ TEXTO sobre fundo claro (AA ~5:1, ok no creme) */
  --gold-on-dark: #c99a3a;   /* dourado p/ TEXTO sobre fundo escuro/marinho (AA ~6:1) */
  --text-on-dark: rgba(255, 255, 255, .85);  /* corpo sobre marinho — branco translúcido (não cinza) */
  --ink: #17263f;         /* Marinho — principal */
  --ink-2: #1b2c49;
  --dark: #17263f;
  --text: #46505f;        /* texto corrido, marinho suavizado */
  --heading: #17263f;
  --cream: #f4f1ea;       /* Off-white */
  --cream-2: #efe9dd;
  --white: #ffffff;
  --line: #e4e0d6;
  --radius: 6px;
  --shadow: 0 24px 60px rgba(23, 38, 63, 0.10);
  /* Fontes do sistema (self-contained). Etapa de tipografia trocará por Spectral + Inter, fontes oficiais do guia. */
  --font-head: "Spectral", "Playfair Display", Georgia, "Times New Roman", serif;
  --font-body: "Inter", "Jost", "Segoe UI", Roboto, system-ui, -apple-system, sans-serif;
}

* { box-sizing: border-box; margin: 0; padding: 0; }

html { scroll-behavior: smooth; }

html, body { overflow-x: hidden; }   /* trava qualquer estouro horizontal (barra branca) */

body {
  font-family: var(--font-body);
  color: var(--text);
  background: var(--white);
  line-height: 1.7;
  font-size: 16px;
  -webkit-font-smoothing: antialiased;
}

img { max-width: 100%; display: block; }
a { text-decoration: none; color: inherit; }
ul { list-style: none; }

.container {
  width: min(1200px, 92%);
  margin-inline: auto;
}

/* Título de seção só para leitores de tela / SEO (mantém a hierarquia h1→h2→h3 sem mudar o visual) */
.sr-only {
  position: absolute;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* ===================== BUTTONS ===================== */
.btn {
  display: inline-block;
  font-family: var(--font-body);
  font-weight: 500;
  font-size: 15px;
  letter-spacing: .3px;
  padding: 14px 30px;
  border: none;
  border-radius: 0;
  cursor: pointer;
  transition: background .25s, transform .2s;
}
.btn--primary { background: var(--gold-dark); color: #fff; }   /* AA: branco s/ dourado-escuro ~5:1 */
.btn--primary:hover { background: #6f521c; transform: translateY(-2px); }
.btn--outline { background: transparent; border: 1px solid #fff; color: #fff; }
.btn--outline:hover { background: #fff; color: var(--ink); transform: translateY(-2px); }
.btn--lg { padding: 16px 38px; font-size: 16px; }

/* ===================== SECTION HELPERS ===================== */
.section__tag {
  display: block;
  width: 56px;
  height: 3px;
  background: var(--gold);
  border-radius: 0;
  margin-bottom: 22px;
  font-size: 0;   /* esconde o traço textual, vira linha sólida */
  line-height: 0;
}
.section__tag--center { margin-left: auto; margin-right: auto; }

/* Reveal ao rolar (fade-up). Só anima quem não pediu menos movimento. */
@media (prefers-reduced-motion: no-preference) {
  .reveal { opacity: 0; transform: translateY(24px); transition: opacity 1s cubic-bezier(.22,.61,.36,1), transform 1s cubic-bezier(.22,.61,.36,1); }
  .reveal.is-visible { opacity: 1; transform: none; }
}
.section__title {
  font-family: var(--font-head);
  font-weight: 600;
  font-size: 22px;                    /* mesmo tamanho das seções de "O escritório" */
  color: var(--heading);
  line-height: 1.2;
}
.section__title--center { text-align: center; }
.section__lead {
  font-family: var(--font-head);
  color: var(--gold);
  font-size: 20px;
  margin-top: 16px;
}

/* ===================== HERO / HEADER ===================== */
.hero {
  position: relative;
  background:
    linear-gradient(90deg, rgba(20,35,60,.55), rgba(20,35,60,.15) 55%, rgba(20,35,60,0) 80%),
    #14233c url("../img/header-bg.jpg") center / cover no-repeat;
  color: #fff;
  padding-bottom: 80px; /* faixa escura abaixo do botão */
  overflow: hidden;
}
.hero__overlay {
  position: absolute; inset: 0;
  pointer-events: none;
}

/* nav */
.nav {
  position: relative;
  z-index: 40;                 /* acima do conteúdo do hero, para o menu mobile sobrepor */
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 28px 0;
  border-bottom: 1px solid rgba(176, 135, 47, .45); /* linha fina dourada */
}
.brand { display: flex; align-items: center; gap: 10px; }
.brand__mark { color: var(--gold); font-size: 26px; }
.brand__name { font-family: var(--font-head); font-size: 24px; font-weight: 600; color: #fff; }
.brand__logo { height: 68px; width: auto; display: block; }
.brand__logo--footer { height: 46px; }
.nav__links { display: flex; gap: 34px; }
.nav__links a { font-size: 16px; color: #e9e4db; transition: color .2s; }
.nav__links a:hover, .nav__links a.is-active { color: var(--gold-on-dark); }   /* menu desktop: marinho */
.nav__cta { padding: 13px 28px; }
.nav__links--wa { display: none; }         /* item de WhatsApp só no menu mobile */
.nav__toggle {
  display: none;
  flex-direction: column; justify-content: center; align-items: center; gap: 5px;
  width: 44px; height: 44px; padding: 0;
  background: none; border: none; cursor: pointer;
}
.nav__toggle span { display: block; width: 24px; height: 2px; background: #fff; transition: transform .3s, opacity .3s; }
.nav.is-open .nav__toggle span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.nav.is-open .nav__toggle span:nth-child(2) { opacity: 0; }
.nav.is-open .nav__toggle span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* hero content */
.hero__content {
  position: relative;
  z-index: 2;
  text-align: left;
  padding: 56px 0 60px; /* mais respiro acima do kicker e abaixo do botão */
}
.hero__eyebrow {
  display: inline-block;
  color: var(--gold-on-dark);
  letter-spacing: .3px;
  font-size: 14px;
  margin-bottom: 24px;
  transition: color .2s;
}
.hero__eyebrow:hover { color: #fff; }
.hero__eyebrow span { margin-left: 6px; }
.hero__title {
  font-family: var(--font-head);
  font-weight: 600;
  font-size: clamp(38px, 6vw, 66px);
  line-height: 1.12;
  color: #fff;
  max-width: 820px;
}
.hero__title mark,
.subhero__title mark {
  display: inline-block;
  line-height: 0.9;
  padding: 0.06em 10px 0.04em;   /* caixa dourada mais justa ao texto */
  background: var(--gold-dark);   /* mesmo dourado do botão (bloco sólido) → branco ~5:1 */
  color: #fff;
}
.hero__text {
  margin: 26px 0 36px;
  max-width: 560px;                   /* ~68 caracteres/linha (era ~87) */
  color: var(--text-on-dark);
  font-size: 16px;
}

/* feature strip — atravessa a borda do hero */
.features-wrap {
  position: relative;
  z-index: 3;
  margin-top: -40px;                             /* só uma fresta sobre o hero, indicando o módulo abaixo */
}
.features__nav, .features__dots, .stats__nav, .stats__dots,
.practice__nav, .practice__dots, .cases__mnav, .cases__dots,
.testi__mnav, .testi__dots { display: none; }   /* só no mobile (carrossel) */
.stats-wrap, .practice-carousel, .cases-carousel, .testimonials-carousel { position: relative; }
.features {
  position: relative;
  z-index: 3;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  background: #fff;
  border-radius: 0;                              /* bordas vivas */
  box-shadow: 0 18px 40px rgba(23, 38, 63, .12); /* leve sombreado */
}
.feature {
  padding: 40px 34px;
  text-align: center;
  position: relative;
}
/* divisor vertical curto e centralizado (não ocupa toda a altura) */
.feature:not(:last-child)::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 0;
  transform: translateY(-50%);
  width: 1px;
  height: 56%;
  background: var(--line);
}
.feature__icon {
  display: inline-flex;
  align-items: center; justify-content: center;
  margin-bottom: 20px;
}
.feature__icon img { width: 56px; height: 56px; display: block; }
.feature h2 {
  font-family: var(--font-head);
  font-size: 19px;
  color: var(--heading);
  margin-bottom: 12px;
  font-weight: 600;
}
.feature p { font-size: 14px; color: var(--text); }

/* ===================== ABOUT ===================== */
.about {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 70px;
  align-items: center;
  padding: 56px 0 36px;
}
.about__kicker {
  color: var(--gold-on-light);
  font-size: 14px;
  letter-spacing: .3px;
  margin-bottom: 14px;
}
.subhero .about__kicker { color: var(--gold-on-dark); }   /* sub-herói é marinho */
.about__desc { margin: 22px 0 30px; max-width: 480px; }
.stats {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 36px 36px;
  max-width: 500px;
}
.stat { display: block; }              /* ícone em cima, número+legenda embaixo */
.stat__icon {
  display: block;
  line-height: 1;
  margin-bottom: 14px;
}
.stat__icon img { width: 46px; height: 46px; display: block; }
.stat > div { display: block; }
.stat strong {
  display: block;
  font-family: var(--font-head);
  font-size: 22px;                    /* padronizado com os títulos de seção */
  color: var(--heading);
  line-height: 1.1;
  white-space: nowrap;                 /* número sempre em uma linha */
  margin-bottom: 6px;
}
.stat p { font-size: 14px; color: var(--text); }

/* about media */
.about__media { position: relative; min-height: 620px; }
.about__dots {
  position: absolute; top: 0; left: 0;   /* topo-esquerda, alinhado com a imagem menor */
  width: 242px; height: 220px;           /* 11 × 10 tiles de 22px → simétrico, sem cortes */
  background-image: radial-gradient(var(--gold) 2.2px, transparent 2.2px);
  background-size: 22px 22px;
  opacity: .6;
}
.about__img {
  position: absolute;
  border-radius: 0;
  background-size: cover;
  background-position: center;
  box-shadow: var(--shadow);
}
.about__img--top {
  top: 88px; right: 0;             /* começa mais abaixo → deixa o topo do grid livre (vão ")") */
  width: 68%; height: 380px;
  background-color: #17263f;       /* fallback caso a foto falte */
  background-image:
    linear-gradient(rgba(23,38,63,.12), rgba(23,38,63,.12)),
    url("../img/recepcao2.jpg?v=1");
  background-position: center 34%; /* enquadra a placa e a bancada de recepção */
}
.about__img--bottom {
  bottom: 0; left: 0;             /* alinhado à esquerda com o grid; topo abaixo dele (vão "L") */
  width: 52%; height: 300px;
  background-color: #17263f;      /* fallback caso a foto falte */
  background-image:
    linear-gradient(rgba(23,38,63,.12), rgba(23,38,63,.12)),
    url("../img/about-menor.jpg");
  border: 8px solid #fff;
}

/* ===================== SOBRE — composição (imagens à esquerda, texto à direita) ===================== */
.sabout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  align-items: center;
  padding: 52px 0 36px;
}
.sabout__media { position: relative; min-height: 500px; }
.sabout__dots {
  position: absolute; top: 0; right: 0;      /* bolinhas à direita das fotos */
  width: 220px; height: 200px;
  background-image: radial-gradient(var(--gold) 2.2px, transparent 2.2px);
  background-size: 22px 22px;
  opacity: .6;
  z-index: 0;
}
.sabout__img {
  position: absolute;
  box-sizing: border-box;
  background-size: cover;
  background-color: #17263f;
  box-shadow: var(--shadow);
}
.sabout__img--main {                          /* sala de reuniões — quadrada, topo-esquerda */
  top: 40px; left: 0;
  width: 66%; aspect-ratio: 1 / 1;
  background-image:
    linear-gradient(rgba(23,38,63,.06), rgba(23,38,63,.06)),
    url("../img/sobre/sala-reuniao.jpg");
  background-size: 140%;                       /* leve zoom */
  background-position: 55% center;             /* tira o excesso de parede à esquerda */
  z-index: 1;
}
.sabout__img--sub {                           /* fundadora — quadrada, centralizada nela, borda como na home */
  bottom: 0; right: 0;
  width: 52%; aspect-ratio: 1 / 1;
  background-image:
    linear-gradient(rgba(23,38,63,.06), rgba(23,38,63,.06)),
    url("../img/sobre/recepcao.jpg?v=3");
  background-size: 128%;                       /* leve zoom para centralizar na fundadora */
  background-position: 30% 68%;                /* sobe a fundadora no quadro (menos parede acima) */
  border: 8px solid #fff;
  z-index: 2;
}
.sabout__text h2 {
  font-family: var(--font-head);
  color: var(--heading);
  font-size: 22px;
  font-weight: 600;
  margin: 30px 0 10px;
}
.sabout__text h2:first-child { margin-top: 0; }
.sabout__text h2::before {                    /* fio fino em ouro, como nos demais títulos */
  content: "";
  display: block;
  width: 48px; height: 3px;
  background: var(--gold);
  margin-bottom: 14px;
}
.sabout__text p { color: var(--text); font-size: 15px; line-height: 1.75; max-width: 520px; }
.sabout__text .btn { margin-top: 30px; }

@media (max-width: 900px) {
  .sabout { grid-template-columns: 1fr; gap: 44px; padding: 48px 0 56px; }
}
@media (max-width: 640px) {
  .sabout { padding: 20px 0 12px; }
  .sabout__media { min-height: 360px; }
  .sabout__dots { width: 150px; height: 130px; }
  .sabout__img--main { width: 72%; top: 24px; }
  .sabout__img--sub { width: 58%; }
}

/* ===================== SOBRE — Nossa História + timeline ===================== */
.shist {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  align-items: start;
  padding: 16px 0 40px;
}
.shist__intro .section__tag { margin-bottom: 18px; }
.shist__title {
  font-family: var(--font-head);
  color: var(--heading);
  font-weight: 600;
  font-size: 22px;                             /* padronizado com "Quem somos" */
  line-height: 1.2;
  margin-bottom: 16px;
}
.shist__intro p { color: var(--text); font-size: 15px; line-height: 1.78; max-width: 480px; }

.timeline { list-style: none; margin: 0; padding: 0; }
.timeline__item { position: relative; padding: 0 0 30px 28px; }
.timeline__item:last-child { padding-bottom: 0; }
.timeline__item::before {                    /* marcador redondo em ouro */
  content: ""; position: absolute; left: 0; top: 5px;
  width: 11px; height: 11px; border-radius: 50%;
  background: var(--gold);
}
.timeline__item::after {                     /* fio vertical até o próximo marcador */
  content: ""; position: absolute; left: 5px; top: 18px; bottom: -5px;
  width: 1px; background: rgba(176,135,47,.35);
}
.timeline__item:last-child::after { display: none; }
.timeline__year {
  font-family: var(--font-head);
  color: var(--heading);
  font-weight: 600;
  font-size: 18px;
  margin-bottom: 6px;
}
.timeline__text { color: var(--text); font-size: 14px; line-height: 1.72; }

@media (max-width: 900px) {
  .shist { grid-template-columns: 1fr; gap: 40px; padding: 16px 0 60px; }
}
@media (max-width: 640px) {
  .shist { padding: 4px 0 12px; }
}

/* ===================== SOBRE — Nossos Princípios (banda de 4, estilo diferenciais) ===================== */
.principles-section { padding: 8px 0 72px; }
.principles-head { max-width: 640px; margin-bottom: 40px; }
.principles-head .section__tag { margin-bottom: 20px; }
.principles-head .section__title { font-size: 22px; line-height: 1.2; }   /* padronizado com "Quem somos" */
.principles {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  background: #fff;
  box-shadow: 0 18px 40px rgba(23, 38, 63, .12);
}
.principle { position: relative; padding: 40px 32px; text-align: center; }
.principle:not(:last-child)::after {
  content: ""; position: absolute; right: 0; top: 30px; bottom: 30px;
  width: 1px; background: var(--line);
}
.principle__icon { display: flex; justify-content: center; margin-bottom: 16px; }   /* centraliza o ícone */
.principle__icon img { width: 58px; height: 58px; }
.principle h3 { font-family: var(--font-head); color: var(--heading); font-size: 22px; font-weight: 600; margin-bottom: 12px; }
.principle p { font-size: 14px; color: var(--text); line-height: 1.7; }
.principles__nav, .principles__dots { display: none; }   /* só no mobile (carrossel) */
.principles-carousel { position: relative; }

@media (max-width: 900px) {
  .principles-section { padding: 0 0 60px; }
  .principles { grid-template-columns: 1fr 1fr; }
  .principle::after { display: none; }
  .principle { border-top: 1px solid var(--line); }
  .principle:nth-child(1), .principle:nth-child(2) { border-top: none; }
  .principle:nth-child(odd) { border-right: 1px solid var(--line); }
}
@media (max-width: 640px) {
  .principles-section { padding: 4px 0 28px; }
  .principles-carousel { padding-bottom: 28px; }
  .principles {
    display: flex;
    grid-template-columns: none;
    background: transparent;
    box-shadow: none;
    gap: 16px;
    padding: 12px 0 30px;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  .principles::-webkit-scrollbar { display: none; }
  .principle {
    flex: 0 0 100%;
    scroll-snap-align: center;
    background: #fff;
    box-shadow: 0 18px 40px rgba(23, 38, 63, .12);
    border: none;
    padding: 32px 26px;
  }
  .principle::after { display: none; }

  .principles__nav {
    display: flex; align-items: center; justify-content: center;
    position: absolute; top: 0; bottom: 28px; margin-block: auto;
    width: 40px; height: 40px; border-radius: 50%;
    background: var(--gold-dark); color: #fff; border: none;
    font-size: 18px; cursor: pointer; z-index: 6;
    box-shadow: 0 6px 16px rgba(11, 20, 35, .30);
    transition: opacity .2s;
  }
  .principles__nav:disabled { opacity: 0; pointer-events: none; }
  .principles__nav--prev { left: 2px; }
  .principles__nav--next { right: 2px; }

  .principles__dots {
    display: flex; justify-content: center; gap: 8px;
    position: absolute; left: 0; right: 0; bottom: 6px;
  }
  .principles__dot {
    width: 8px; height: 8px; border-radius: 50%;
    background: rgba(23, 38, 63, .22); border: none; padding: 0; cursor: pointer;
  }
  .principles__dot.is-active { background: var(--gold); }
}

/* ===================== PRACTICE ===================== */
.practice { background: var(--cream); padding: 34px 0 52px; }
.practice__head { max-width: 640px; margin-bottom: 30px; }
.practice__head .section__tag { margin-bottom: 20px; }
.practice__sub {
  margin-top: 16px;
  color: var(--text);
  font-size: 16px;
  max-width: 540px;
}
/* Subtítulo de grupo dentro das áreas ("Para a sua empresa" / "Para você e sua família") */
.practice__group-title {
  font-family: var(--font-head);
  font-weight: 600;
  font-size: 22px;                    /* padronizado com os títulos de seção */
  color: var(--heading);
  text-align: left;
  margin: 6px 0 30px;
  padding-bottom: 16px;
  position: relative;
}
.practice__group-title::after {
  content: "";
  position: absolute; left: 0; bottom: 0;
  width: 56px; height: 3px; background: var(--gold);
}
.practice__group-title--second { margin-top: 56px; }

/* Grades das áreas: flex centralizado — a última fileira (parcial) fica no meio.
   --3 = 3 por linha (grupo empresa: 3+2)   --4 = 4 por linha (grupo família: 4+3) */
.practice__grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;   /* fileira final (parcial) alinhada à esquerda */
  gap: 26px;
}
.practice__grid--3 > .practice-card {
  flex: 0 0 calc((100% - 2 * 26px) / 3);
  max-width: calc((100% - 2 * 26px) / 3);
}
.practice__grid--4 > .practice-card {
  flex: 0 0 calc((100% - 3 * 26px) / 4);
  max-width: calc((100% - 3 * 26px) / 4);
}
.practice-card {
  display: flex;
  flex-direction: column;
  text-decoration: none;
  color: var(--text);
  background: #fff;
  padding: 22px 28px 24px;
  border-radius: 0;
  box-shadow: 0 18px 40px rgba(23, 38, 63, .12); /* leve sombreado, igual aos diferenciais */
  transition: transform .25s, box-shadow .25s;
}
.practice-card:hover { transform: translateY(-6px); box-shadow: 0 24px 54px rgba(23, 38, 63, .16); }
.practice-card__icon {
  display: block;
  text-align: center;
  font-size: 34px;
  color: var(--gold);
  margin-bottom: 10px;
}
.practice-card__icon img { height: 60px; width: 60px; display: inline-block; }
.practice-card h3 {
  font-family: var(--font-head);
  font-size: 20px;
  color: var(--heading);
  margin-bottom: 12px;
  font-weight: 600;
}
.practice-card p { font-size: 14px; margin-bottom: 0; }

/* ===================== CASES ===================== */
.cases { padding: 34px 0 44px; }
.cases__head {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  margin-bottom: 50px;
}
.cases__sub { margin-top: 16px; max-width: 560px; }   /* ~68 caracteres/linha (casos + depoimentos) */
.cases__nav { display: flex; gap: 12px; }
.round-btn {
  width: 46px; height: 46px;
  border-radius: 50%;
  border: 1px solid var(--line);
  background: #fff;
  color: var(--heading);
  font-size: 18px;
  cursor: pointer;
  transition: background .2s, color .2s;
}
.round-btn--active, .round-btn:hover { background: var(--gold-dark); color: #fff; border-color: var(--gold-dark); }
.round-btn:disabled { opacity: .35; cursor: default; background: #fff; color: var(--heading); border-color: var(--line); }

.cases__viewport {
  overflow-x: clip;          /* corta os cards extras só na horizontal */
  overflow-y: visible;       /* deixa a caixa branca projetar para baixo */
  overflow-clip-margin: 36px;/* mostra o transbordo horizontal da caixa do último card visível */
}
.cases__grid {
  display: flex;
  align-items: flex-start;
  gap: 44px;
  padding-bottom: 110px;     /* espaço para a metade da caixa que projeta abaixo */
  transition: transform .45s ease;
  will-change: transform;
}
.case-card {
  position: relative;
  flex: 0 0 calc((100% - 88px) / 3);   /* 3 cards visíveis (gap 44 × 2) */
  background: transparent;
  box-shadow: none;
}
.case-card__img {
  width: 78%;            /* imagem menor, alinhada à esquerda */
  aspect-ratio: 1 / 1;   /* mantém quadrada */
  border-radius: 0;
  background-size: cover;
  background-position: center;
}
.case-card__img--1 { background-image: url("../img/casos/caso1-hora-extra.avif?v=3"); }
.case-card__img--2 { background-image: url("../img/casos/caso2-itbi.avif?v=1"); }
.case-card__img--3 { background-image: url("../img/casos/caso3-isencao-ir.avif?v=1"); }
.case-card__img--4 { background-image: url("../img/casos/caso4-reintegracao.avif?v=1"); }
.case-card__img--5 { background-image: url("../img/casos/caso5-pensao-morte.avif?v=1"); }
.case-card__body {
  position: absolute;
  top: 100%;                    /* base = rodapé da imagem */
  transform: translateY(-50%);  /* sobe metade da própria altura → imagem cruza no meio do card */
  left: 30px;
  right: -34px;    /* transpassa a imagem à direita */
  background: #fff;
  padding: 26px 28px 30px;
  border-radius: 0;
  box-shadow: 0 18px 40px rgba(23, 38, 63, .12); /* mesma sombra das áreas de atuação */
}
.case-card__body h3 {
  font-family: var(--font-head);
  font-size: 22px;
  color: var(--heading);
  margin-bottom: 12px;
  font-weight: 600;
}
.case-card__body p { font-size: 14px; }

/* ===================== FAQ ===================== */
.faq { background: var(--cream); padding: 100px 0; }
.accordion { max-width: 900px; margin: 50px auto 0; }
.acc-item {
  background: #fff;
  border-radius: 0;
  margin-bottom: 16px;
  border: 1px solid var(--line);
  overflow: hidden;
}
.acc-item summary {
  list-style: none;
  cursor: pointer;
  padding: 22px 26px;
  font-family: var(--font-head);
  font-size: 18px;
  color: var(--heading);
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.acc-item summary::-webkit-details-marker { display: none; }
.acc-item summary::after {
  content: "+";
  color: var(--gold);
  font-size: 24px;
  font-family: var(--font-body);
}
.acc-item[open] summary::after { content: "\2013"; }
.acc-item[open] summary { color: var(--gold); }
.acc-item__body { padding: 0 26px 26px; }
.acc-item__body p { font-size: 14px; margin-bottom: 14px; }

/* ===================== TESTIMONIALS ===================== */
.testimonials { padding: 28px 0 52px; }
.testimonials__head {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  margin-bottom: 50px;
}
.testimonials__viewport { overflow: hidden; }
.testimonials__grid {
  display: flex;
  align-items: stretch;
  gap: 30px;
  transition: transform .45s ease;
  will-change: transform;
}
.quote-card {
  flex: 0 0 calc((100% - 60px) / 3);   /* 3 depoimentos visíveis (gap 30 × 2) */
  display: flex;
  flex-direction: column;
  background: var(--cream);
  padding: 36px 30px;
  border-radius: 0;
}
.quote-card__stars { color: var(--gold); letter-spacing: 2px; font-size: 15px; margin-bottom: 14px; }
.quote-card__text { font-size: 15px; color: var(--text); margin-bottom: 26px; }
.quote-card__author { margin-top: auto; }  /* ancora nome + tempo na base do box */
.avatar {
  width: 48px; height: 48px; border-radius: 50%;
  background: linear-gradient(135deg, var(--gold), var(--gold-dark));
  background-size: cover;
  background-position: center;
  flex-shrink: 0;
}
.quote-card__author strong { display: block; color: var(--heading); font-family: var(--font-head); }
.quote-card__author span { font-size: 13px; color: var(--gold-on-light); }

/* ===================== CTA ===================== */
.cta {
  position: relative;
  background:
    radial-gradient(circle at 20% 30%, rgba(176,135,47,.10), transparent 45%),
    radial-gradient(circle at 85% 80%, rgba(176,135,47,.08), transparent 45%),
    linear-gradient(135deg, #17263f, #0f1b30);   /* marinho padrão + brilhos suaves → kicker ~5:1 */
  color: #fff;
  padding: 44px 0 52px;
}
.cta__head { max-width: 1000px; margin: 0 auto 40px; }
.cta__head .section__tag { margin-bottom: 18px; }
.cta__kicker {
  color: var(--gold-on-dark);
  font-size: 14px;
  letter-spacing: .3px;
  margin-bottom: 12px;
}
.cta__title {
  font-family: var(--font-head);
  font-weight: 600;
  font-size: 22px;                    /* igual às demais seções */
  margin-bottom: 12px;
}
.cta__sub {
  color: var(--text-on-dark);
  font-size: 16px;
  max-width: 560px;
  margin: 0;
}
.cta__panel {
  background: #fff;
  color: var(--text);
  border-radius: 0;
  padding: 46px;
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: 50px;
  max-width: 1000px;
  margin: 0 auto;
  box-shadow: var(--shadow);
}
.cta__form { display: grid; gap: 14px; }
.cta__form input, .cta__form textarea, .cta__form select {
  font-family: var(--font-body);
  font-size: 15px;
  padding: 14px 16px;
  border: 1px solid var(--line);
  border-radius: 0;
  background: var(--cream);
  color: var(--heading);
  resize: vertical;
  width: 100%;
}
.cta__form select { appearance: none; cursor: pointer;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%2317263F' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 16px center; padding-right: 40px;
}
.cta__form input::placeholder, .cta__form textarea::placeholder { color: #8b93a0; }
.cta__form input:focus, .cta__form textarea:focus, .cta__form select:focus { outline: 1px solid var(--gold); }
.cta__form .btn { justify-self: start; margin-top: 6px; }
.cta__consent { font-size: 12.5px; line-height: 1.5; color: #6b7280; margin-top: 4px; }
.cta__consent a { color: var(--gold-on-light); text-decoration: underline; }
.cta__success {
  align-self: center;
  font-size: 16px; line-height: 1.6; color: var(--heading);
  padding: 22px 24px; border-left: 3px solid var(--gold); background: var(--cream);
}
.cta__info { display: grid; gap: 26px; align-content: start; }
.cta__info li { display: flex; gap: 16px; align-items: flex-start; }
.cta__info-icon {
  display: inline-flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.cta__info-icon img { width: 46px; height: 46px; }
.cta__info strong { color: var(--heading); font-family: var(--font-head); display: block; margin-bottom: 2px; }
.cta__info p { font-size: 14px; }
.cta__info a { color: inherit; }
.cta__info a:hover { color: var(--gold); }

/* ===================== FOOTER ===================== */
.footer { background: var(--ink); color: rgba(255, 255, 255, .72); padding: 52px 0 0; }
.footer__grid {
  display: grid;
  grid-template-columns: 1.5fr 1.6fr 0.9fr 1.1fr;
  gap: 40px;
  padding-bottom: 60px;
}
.brand--light .brand__name { color: #fff; }
.footer__col > p { font-size: 14px; margin-top: 18px; }
.footer__col h3 {
  color: #fff;
  font-family: var(--font-head);
  font-size: 18px;
  font-weight: 600;
  position: relative;
  padding-bottom: 12px;
  margin-bottom: 22px;
}
.footer__col h3::after {           /* fio fino em ouro, ecoando a assinatura/timbrado */
  content: "";
  position: absolute;
  left: 0; bottom: 0;
  width: 34px; height: 2px;
  background: var(--gold);
}
.footer__col ul li { margin-bottom: 12px; }
.footer__col ul a { font-size: 14px; transition: color .2s; }
.footer__col ul a:hover { color: var(--gold); }
.footer__col > p + p { margin-top: 8px; }
.footer__col a { color: inherit; }

.footer__oab { font-size: 12.5px; color: rgba(255, 255, 255, .58); line-height: 1.55; }
.footer__areas { display: grid; grid-template-columns: 1fr 1fr; gap: 0 30px; }
.footer__social { display: flex; gap: 14px; margin-top: 22px; }
.footer__social a {
  color: var(--gold);
  width: 38px; height: 38px;
  display: inline-flex; align-items: center; justify-content: center;
  border: 1px solid rgba(176,135,47,.4);
  border-radius: 50%;
  transition: background .2s, color .2s, border-color .2s;
}
.footer__social a:hover { background: var(--gold); color: #fff; border-color: var(--gold); }

.footer__bar {
  border-top: 1px solid rgba(255,255,255,.08);
  padding: 22px 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  text-align: center;
  font-size: 13px;
  width: min(1200px, 92%);
}
.footer__bar a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
.footer__bar a:hover { color: var(--gold); }
.footer__legal { font-size: 12px; color: rgba(255, 255, 255, .58); max-width: 640px; }

/* ===================== BANNER DE COOKIES (LGPD) ===================== */
.cookie-banner {
  position: fixed;
  left: 50%; bottom: 20px;
  transform: translateX(-50%);
  width: min(1100px, 94%);
  background: var(--ink);
  color: #e8e4db;
  border: 1px solid rgba(176,135,47,.35);
  border-radius: 0;
  padding: 18px 22px;
  display: flex; align-items: center; gap: 22px;
  box-shadow: 0 20px 50px rgba(0,0,0,.35);
  z-index: 1000;
}
.cookie-banner[hidden] { display: none; }
.cookie-banner__text { font-size: 13.5px; line-height: 1.55; margin: 0; }
.cookie-banner__text a { color: var(--gold-on-dark); text-decoration: underline; }
.cookie-banner__actions { display: flex; align-items: center; gap: 14px; flex-shrink: 0; }
.cookie-banner__decline {
  background: none; border: none; color: #b7b1a6; cursor: pointer;
  font-size: 13px; text-decoration: underline;
}
.cookie-banner__decline:hover { color: #fff; }
@media (max-width: 640px) {
  .cookie-banner { flex-direction: column; align-items: flex-start; gap: 14px; }
}

/* ===================== PÁGINA DE TEXTO LEGAL ===================== */
.legal { padding: 64px 0 90px; }
.legal__wrap { max-width: 780px; }
.legal__updated { font-size: 13px; color: var(--gold-on-light); margin-bottom: 40px; }
.legal h2 {
  font-family: var(--font-head);
  color: var(--heading);
  font-size: 22px;
  margin: 40px 0 14px;
}
.legal h2:first-of-type { margin-top: 0; }
.legal p, .legal li { font-size: 15px; line-height: 1.7; color: var(--text); }
.legal p { margin-bottom: 14px; }
.legal ul { margin: 0 0 14px; padding-left: 22px; }
.legal li { margin-bottom: 8px; }
.legal a { color: var(--gold-on-light); text-decoration: underline; }
.legal .legal__note {
  margin-top: 40px; padding: 18px 20px;
  background: var(--cream); border-left: 3px solid var(--gold);
  font-size: 14px;
}

/* ===================== EQUIPE ===================== */
.team { padding: 8px 0 34px; }
.team__head { max-width: 620px; margin-bottom: 46px; }
.team__head .section__tag { margin-bottom: 20px; }
.team__sub {
  margin-top: 16px;
  color: var(--text);
  font-size: 16px;
  max-width: 520px;
}

/* destaque: fundadora + 2 consultores intercalados (wireframe) */
.team-featured {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
  margin-bottom: 50px;
  align-items: start;
}

/* fundadora: foto grande + texto ao lado + bolinhas no canto inf-dir da foto */
.tf-founder {
  position: relative;
  display: grid;
  grid-template-columns: 1.3fr 1fr;
  gap: 22px;
}
.tf-photo.tf-photo--founder {
  position: relative;
  z-index: 2;                        /* por cima → as bolinhas tramam por baixo */
  height: 460px;
  background-color: #17263f;
  background-image:
    linear-gradient(rgba(23,38,63,.06), rgba(23,38,63,.06)),
    url("../img/equipe/fundadora.jpg?v=1");
  background-size: cover;
  background-position: center 15%;   /* favorece o rosto (parte superior) */
}
.tf-photo.tf-s1-photo {
  background-image:
    linear-gradient(rgba(23,38,63,.06), rgba(23,38,63,.06)),
    url("../img/equipe/consultor1.jpg?v=2");
  background-size: cover;
  background-position: center 8%;
}
.tf-photo.tf-s2-photo {
  background-image:
    linear-gradient(rgba(23,38,63,.06), rgba(23,38,63,.06)),
    url("../img/equipe/consultor2.jpg?v=2");
  background-size: cover;
  background-position: center 8%;
}
/* coluna do texto + bolinhas preenchendo o espaço abaixo do texto */
.tf-founder__side { display: flex; flex-direction: column; }
.tf-dots {
  position: absolute;
  left: 34%;                        /* trama sob a foto */
  bottom: -34px;                    /* transborda abaixo da foto */
  width: 242px;                     /* 11 colunas × 22 (14 − 3 da direita) */
  height: 308px;                    /* 14 fileiras × 22 */
  z-index: 1;                       /* atrás da foto */
  background-image: radial-gradient(var(--gold) 2.2px, transparent 2.2px);
  background-size: 22px 22px;
  opacity: .6;
}

/* consultores: fotos sobrepostas (superior por cima), nomes alinhados ao topo da foto */
.tf-seniors { position: relative; height: 460px; }
.tf-seniors .tf-photo { position: absolute; height: 300px; }  /* mais altas → aparecem melhor */
.tf-s1-photo { top: 0;     left: 0;  width: 54%; z-index: 2; border: 6px solid #fff; } /* superior, por cima */
.tf-s2-photo { top: 160px; right: 0; width: 54%; z-index: 1; }
.tf-s1-text  { position: absolute; top: 0;     right: 0; width: 42%; } /* alinhado ao topo da foto 1 */
.tf-s2-text  { position: absolute; bottom: 0; left: 0;  width: 42%; text-align: right; } /* alinhado por baixo com a foto do Jorge */

/* fotos */
.tf-photo {
  border-radius: 0;
  background-color: #17263f;
  background-image:
    radial-gradient(circle at 50% 35%, rgba(176,135,47,.18), transparent 60%),
    linear-gradient(160deg, #223a58, #14243f);
}

/* blocos de texto (nome + papel + descrição) */
.tf-text strong {
  display: block;
  font-family: var(--font-head);
  font-size: 19px;
  font-weight: 600;
  color: var(--heading);
  line-height: 1.2;
}
.tf-role {
  display: block;
  margin-top: 3px;
  font-size: 12px;
  letter-spacing: .5px;
  text-transform: uppercase;
  color: var(--gold-on-light);   /* legível sobre o fundo branco da equipe (home) ~5:1 */
}
.tf-desc {
  margin-top: 12px;
  background: transparent;
  font-size: 13px;
  line-height: 1.55;
  color: var(--text);
}
.tf-desc a { color: var(--ink); text-decoration: none; word-break: break-all; }
.tf-desc a:hover { text-decoration: underline; }

/* advogados: fileira de 5 (legenda sobre a foto) */
.team-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 22px;
}
.team-grid .member:nth-child(1) .member__photo { background-image: linear-gradient(rgba(23,38,63,.06),rgba(23,38,63,.06)), url("../img/equipe/adv1.jpg?v=6"); background-size: cover; background-position: center; }
.team-grid .member:nth-child(2) .member__photo { background-image: linear-gradient(rgba(23,38,63,.06),rgba(23,38,63,.06)), url("../img/equipe/adv2.jpg?v=6"); background-size: cover; background-position: center; }
.team-grid .member:nth-child(3) .member__photo { background-image: linear-gradient(rgba(23,38,63,.06),rgba(23,38,63,.06)), url("../img/equipe/adv3.jpg?v=6"); background-size: cover; background-position: center; }
.team-grid .member:nth-child(4) .member__photo { background-image: linear-gradient(rgba(23,38,63,.06),rgba(23,38,63,.06)), url("../img/equipe/adv4.jpg?v=6"); background-size: cover; background-position: center; }
.team-grid .member:nth-child(5) .member__photo { background-image: linear-gradient(rgba(23,38,63,.06),rgba(23,38,63,.06)), url("../img/equipe/adv5.jpg?v=7"); background-size: cover; background-position: center; }
.member { margin: 0; }
.member__photo {
  position: relative;
  overflow: hidden;
  border-radius: 0;
  height: 320px;
  background-color: #17263f;
  background-image:
    radial-gradient(circle at 50% 35%, rgba(176,135,47,.18), transparent 60%),
    linear-gradient(160deg, #223a58, #14243f);
}
.team-grid .tf-text { padding-top: 14px; }
.team-grid .tf-text strong { min-height: 2.4em; } /* 2 linhas → e-mails alinhados */
.member__cap {
  position: absolute;
  left: 0; right: 0; bottom: 0;
  padding: 16px 18px;
  background: linear-gradient(transparent, rgba(18,28,48,.92));
  color: #fff;
}
.member__cap strong {
  display: block;
  font-family: var(--font-head);
  font-size: 17px;
  font-weight: 600;
  line-height: 1.2;
}
.member__cap span { font-size: 13px; color: var(--gold); }

/* ===================== PÁGINA MÍDIA ===================== */
/* sub-hero (banner interno) */
.hero--sub { padding-bottom: 0; }
.subhero {
  position: relative;
  z-index: 2;
  padding: 46px 0 66px;
}
.subhero .section__tag { margin-bottom: 20px; }
.subhero__title {
  font-family: var(--font-head);
  font-weight: 600;
  font-size: clamp(38px, 6vw, 66px);           /* mesma altura do título da home */
  line-height: 1.12;
  color: #fff;
}
.subhero__text {
  margin-top: 16px;
  max-width: 620px;
  color: var(--text-on-dark);
  font-size: 16px;
  text-wrap: balance;   /* equilibra as linhas e evita palavra órfã (ex.: "decisão") */
}
.subhero__text--wide { max-width: 680px; }   /* "O escritório": cabe a 2ª frase inteira após o <br> */
.subhero__text--oneline { max-width: none; }  /* "A equipe": frase em uma linha no desktop (quebra só em telas estreitas) */

/* grid de artigos */
.posts { padding: 80px 0 90px; }
.posts__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 34px;
}
.post-card {
  display: flex;
  flex-direction: column;
  background: #fff;
  border-radius: 0;
  overflow: hidden;
  box-shadow: 0 14px 40px rgba(23, 38, 63, .06);
  transition: transform .25s, box-shadow .25s;
}
.post-card:hover { transform: translateY(-6px); box-shadow: 0 22px 50px rgba(23, 38, 63, .12); }
.post-card__thumb {
  position: relative;
  display: block;
  height: 190px;
  background-image:
    radial-gradient(circle at 35% 30%, rgba(176,135,47,.22), transparent 60%),
    linear-gradient(135deg, #223a58, #14243f);
}
.post-card:nth-child(3n+2) .post-card__thumb { background-image: radial-gradient(circle at 65% 35%, rgba(176,135,47,.20), transparent 60%), linear-gradient(135deg, #1d3151, #17263f); }
.post-card:nth-child(3n) .post-card__thumb { background-image: radial-gradient(circle at 50% 70%, rgba(176,135,47,.24), transparent 60%), linear-gradient(135deg, #24395a, #12203a); }
.post-card__tag {
  position: absolute;
  left: 16px; bottom: 16px;
  background: var(--gold);
  color: #fff;
  font-size: 12px;
  letter-spacing: .5px;
  text-transform: uppercase;
  padding: 5px 12px;
  border-radius: 0;
}
.post-card__body {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: 24px 24px 28px;
}
.post-card__body h2 {
  font-family: var(--font-head);
  font-size: 20px;
  font-weight: 600;
  line-height: 1.3;
  margin-bottom: 12px;
}
.post-card__body h2 a { color: var(--heading); transition: color .2s; }
.post-card__body h2 a:hover { color: var(--gold); }
.post-card__body p { font-size: 14px; margin-bottom: 18px; flex: 1; }
.post-card__link { color: var(--gold-on-light); font-weight: 500; font-size: 14px; margin-top: auto; }
.post-card__link:hover { color: var(--gold-dark); }
/* cards tipográficos (sem foto) */
.post-card__meta { display: flex; align-items: baseline; gap: 10px; margin-bottom: 12px; }
.post-card__cat { font-size: 12px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--gold-on-light); }
.post-card__date { font-size: 12.5px; color: var(--text); }

/* ===================== PÁGINA DE ARTIGO ===================== */
.subhero__title--sm { font-size: clamp(28px, 4vw, 40px); max-width: 860px; }
.subhero__meta { margin-top: 14px; color: var(--text-on-dark); font-size: 14px; }
.article { padding: 56px 0 84px; }
.article__wrap { max-width: 760px; }
.article__back { display: inline-block; margin-bottom: 30px; color: var(--gold-on-light); text-decoration: none; font-size: 14px; font-weight: 500; }
.article__back:hover { text-decoration: underline; }
.article__body p { font-size: 16px; line-height: 1.78; color: var(--text); margin-bottom: 18px; }
.article__body h2 { font-family: var(--font-head); font-weight: 600; font-size: 23px; color: var(--heading); margin: 36px 0 12px; }
.article__body ul { margin: 0 0 18px; padding-left: 22px; }
.article__body li { font-size: 16px; line-height: 1.78; color: var(--text); margin-bottom: 8px; }
.article__body a { color: var(--gold-on-light); text-decoration: underline; }
.article__body strong { color: var(--heading); }
.article__note { margin-top: 42px; padding: 18px 22px; background: var(--cream); border-left: 3px solid var(--gold); font-size: 13.5px; line-height: 1.6; color: var(--text); }
.article__cta { margin-top: 34px; }

/* faixa CTA */
.cta-band {
  position: relative;
  text-align: center;
  color: #fff;
  padding: 76px 0;
  background:
    radial-gradient(circle at 20% 30%, rgba(176,135,47,.12), transparent 45%),
    linear-gradient(135deg, #1b2c49, #12203a);
}
.cta-band .section__tag { margin-bottom: 18px; }
.cta-band__title {
  font-family: var(--font-head);
  font-weight: 600;
  font-size: clamp(28px, 3.5vw, 38px);
}
.cta-band__text { color: #cfc9bf; margin: 14px 0 30px; }

/* ===================== RESPONSIVE ===================== */
/* laptops: encolhe nav para caber logo largo + 4 links + botão */
@media (max-width: 1120px) {
  .brand__logo { height: 54px; }
  .nav__links { gap: 22px; }
  .nav__links a { font-size: 15px; }
  .nav__cta { padding: 10px 18px; }
}
/* telas médias/mobile: menu vira hambúrguer com dropdown */
@media (max-width: 860px) {
  .nav__toggle { display: flex; }
  .brand__logo { height: 50px; }
  .nav__cta { display: none; }               /* WhatsApp vai para dentro do menu */
  .nav__links {
    display: flex; flex-direction: column; gap: 0;
    position: absolute; top: 100%; left: 0; right: 0;
    background: var(--cream);           /* mesmo off-white do módulo de Áreas de atuação */
    border-bottom: 3px solid var(--gold);
    box-shadow: 0 22px 42px rgba(11, 20, 35, .30);
    max-height: 0; overflow: hidden;
    transition: max-height .35s ease;
    z-index: 30;
  }
  .nav.is-open .nav__links { max-height: 80vh; }
  .nav__links li { width: 100%; }
  .nav__links li + li a { border-top: 1px solid var(--line); }
  .nav__links a { display: block; padding: 15px 24px; font-size: 17px; color: var(--heading); }
  .nav__links a:hover, .nav__links a.is-active { color: var(--gold-on-light); }   /* menu mobile: fundo creme */
  .nav__links--wa { display: block; }
  .nav__links--wa a { color: var(--gold-on-light); font-weight: 600; }
}
@media (max-width: 992px) {
  .features { grid-template-columns: repeat(2, 1fr); }
  .feature:nth-child(2) { border-right: none; }
  .about, .cta__panel { grid-template-columns: 1fr; }
  .practice__grid--3 > .practice-card,
  .practice__grid--4 > .practice-card {
    flex: 0 0 calc((100% - 26px) / 2);
    max-width: calc((100% - 26px) / 2);
  }
  .cases__grid, .testimonials__grid { grid-template-columns: 1fr; }
  .footer__grid { grid-template-columns: repeat(2, 1fr); }
  .about { padding-top: 70px; }
  .posts__grid { grid-template-columns: repeat(2, 1fr); }
  .team-grid { grid-template-columns: repeat(3, 1fr); }
}
/* equipe: empilha em telas menores */
@media (max-width: 900px) {
  .team-featured { grid-template-columns: 1fr; gap: 34px; }
  .tf-founder { grid-template-columns: 1fr; }
  .tf-photo--founder { height: 340px; }
  .tf-founder__side { display: block; }
  .tf-dots { display: none; }
  .tf-seniors { position: static; height: auto; display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
  .tf-seniors .tf-photo, .tf-s1-text, .tf-s2-text { position: static; width: auto; }
  .tf-s1-photo, .tf-s2-photo { border: none; }
  .tf-seniors .tf-photo { height: 240px; }
}
@media (max-width: 640px) {
  .features { grid-template-columns: 1fr; }
  .posts__grid { grid-template-columns: 1fr; }
  .team-grid { grid-template-columns: repeat(2, 1fr); }
  .feature { border-right: none; border-bottom: 1px solid var(--line); }
  .practice__grid { grid-template-columns: 1fr; }
  .footer__grid { grid-template-columns: 1fr; }
  .cases__head, .testimonials__head { flex-direction: column; gap: 24px; align-items: flex-start; }
}

/* ===== Carrosséis: 1 card por vez no mobile ===== */
@media (max-width: 760px) {
  .case-card { flex-basis: 86%; }
  .quote-card { flex-basis: 88%; }
  .cases__grid, .testimonials__grid { gap: 18px; }
  .cases__viewport { overflow-clip-margin: 16px; }  /* evita estouro horizontal no mobile */
  .case-card__img { width: 100%; }              /* imagem cheia no card estreito */
  .case-card__body { left: 16px; right: -12px; }
  /* revela o carimbo (metade direita da imagem) no mobile */
  .hero { background-position: center, 70% center; }
}

/* ===== Polimento de espaçamentos no mobile ===== */
@media (max-width: 640px) {
  .container { width: 88%; }
  .hero { padding-bottom: 32px; }              /* vão abaixo do botão = vão acima (36px) */
  .hero__content { padding: 36px 0 44px; }
  .subhero { padding: 32px 0 44px; }
  .about { padding: 40px 0 10px; gap: 20px; }   /* aproxima o carrossel da imagem abaixo */
  .about__desc { margin-bottom: 14px; }         /* menos espaço acima do carrossel */
  .team__head { margin-bottom: 22px; }          /* aproxima a foto da fundadora do texto acima */
  .em-user, .em-domain, .em-tld { display: block; }   /* e-mail quebrado em linhas no mobile */
  .practice { padding: 26px 0 40px; }
  .cases { padding: 24px 0 6px; }
  .testimonials { padding: 6px 0 44px; }
  .cta { padding: 32px 0 44px; }
  .cta__panel { padding: 26px 20px; gap: 28px; }
  .cta__head { margin-bottom: 28px; }
  /* bloco de contato: e-mail/endereço quebram e há respiro à direita */
  .cta__info { min-width: 0; padding-right: 14px; }
  .cta__info li, .cta__info li > div { min-width: 0; }
  .cta__info p, .cta__info a { overflow-wrap: anywhere; }
  .footer { padding-top: 44px; }
  .footer__grid { gap: 30px; }
}

/* ===== Diferenciais: carrossel horizontal no mobile ===== */
@media (max-width: 640px) {
  .features-wrap { padding-bottom: 34px; }          /* espaço para os dots */
  .features {
    display: flex;
    grid-template-columns: none;
    background: transparent;
    box-shadow: none;
    gap: 16px;
    padding: 12px 0 30px;                 /* respiro p/ a sombra do card não ser cortada */
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  .features::-webkit-scrollbar { display: none; }
  .feature {
    flex: 0 0 100%;
    scroll-snap-align: center;
    background: #fff;
    box-shadow: 0 18px 40px rgba(23, 38, 63, .12);
    border: none;
  }
  .feature:not(:last-child)::after { display: none; }   /* remove divisor vertical */

  .features__nav {
    display: flex; align-items: center; justify-content: center;
    position: absolute; top: 0; bottom: 34px; margin-block: auto;   /* centraliza na altura do card */
    width: 40px; height: 40px; border-radius: 50%;
    background: var(--gold-dark); color: #fff; border: none;
    font-size: 18px; cursor: pointer; z-index: 6;
    box-shadow: 0 6px 16px rgba(11, 20, 35, .30);
    transition: opacity .2s;
  }
  .features__nav:disabled { opacity: 0; pointer-events: none; }
  .features__nav--prev { left: 2px; }
  .features__nav--next { right: 2px; }

  .features__dots {
    display: flex; justify-content: center; gap: 8px;
    position: absolute; left: 0; right: 0; bottom: 8px;
  }
  .features__dot {
    width: 8px; height: 8px; border-radius: 50%;
    background: rgba(23, 38, 63, .22); border: none; padding: 0; cursor: pointer;
  }
  .features__dot.is-active { background: var(--gold); }
}

/* ===== Números (stats): carrossel horizontal no mobile ===== */
@media (max-width: 640px) {
  .about__text, .stats-wrap { min-width: 0; }   /* impede o item do grid de crescer com o scroller */
  .stats-wrap { position: relative; padding-bottom: 26px; }
  .stats {
    display: flex;
    grid-template-columns: none;
    max-width: none;
    width: 100%;
    gap: 16px;
    padding: 6px 0 20px;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  .stats::-webkit-scrollbar { display: none; }
  .stat {
    flex: 0 0 100%;
    scroll-snap-align: center;
    background: transparent;
    box-shadow: none;                 /* sem sombra no carrossel de números */
    padding: 20px 24px;
    text-align: center;
  }
  .stat__icon { display: flex; justify-content: center; }

  .stats__nav {
    display: flex; align-items: center; justify-content: center;
    position: absolute; top: 0; bottom: 26px; margin-block: auto;
    width: 40px; height: 40px; border-radius: 50%;
    background: var(--gold-dark); color: #fff; border: none;
    font-size: 18px; cursor: pointer; z-index: 6;
    box-shadow: 0 6px 16px rgba(11, 20, 35, .30);
    transition: opacity .2s;
  }
  .stats__nav:disabled { opacity: 0; pointer-events: none; }
  .stats__nav--prev { left: 2px; }
  .stats__nav--next { right: 2px; }

  .stats__dots {
    display: flex; justify-content: center; gap: 8px;
    position: absolute; left: 0; right: 0; bottom: 8px;
  }
  .stats__dot {
    width: 8px; height: 8px; border-radius: 50%;
    background: rgba(23, 38, 63, .22); border: none; padding: 0; cursor: pointer;
  }
  .stats__dot.is-active { background: var(--gold); }
}

/* ===== Áreas de atuação: carrossel horizontal no mobile (mantém a sombra) ===== */
@media (max-width: 640px) {
  .practice-carousel { padding-bottom: 34px; }
  .practice__group-title { font-size: 22px; margin: 2px 0 16px; padding-bottom: 12px; }
  .practice__group-title--second { margin-top: 30px; }
  .practice__grid {
    display: flex;
    flex-wrap: nowrap;                 /* volta a ser trilho de rolagem (não empilha) */
    grid-template-columns: none;
    grid-auto-rows: auto;
    gap: 16px;
    padding: 12px 0 30px;             /* respiro p/ a sombra do card não ser cortada */
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  .practice__grid::-webkit-scrollbar { display: none; }
  .practice-card,
  .practice__grid--3 > .practice-card,
  .practice__grid--4 > .practice-card {
    flex: 0 0 100%; max-width: 100%; scroll-snap-align: center;
    box-shadow: none;                  /* mobile: cards sem sombra nesses dois carrosséis */
  }

  .practice__nav {
    display: flex; align-items: center; justify-content: center;
    position: absolute; top: 0; bottom: 34px; margin-block: auto;
    width: 40px; height: 40px; border-radius: 50%;
    background: var(--gold-dark); color: #fff; border: none;
    font-size: 18px; cursor: pointer; z-index: 6;
    box-shadow: 0 6px 16px rgba(11, 20, 35, .30);
    transition: opacity .2s;
  }
  .practice__nav:disabled { opacity: 0; pointer-events: none; }
  .practice__nav--prev { left: 2px; }
  .practice__nav--next { right: 2px; }

  .practice__dots {
    display: flex; justify-content: center; gap: 7px;
    position: absolute; left: 0; right: 0; bottom: 8px;
  }
  .practice__dot {
    width: 8px; height: 8px; border-radius: 50%;
    background: rgba(23, 38, 63, .22); border: none; padding: 0; cursor: pointer;
  }
  .practice__dot.is-active { background: var(--gold); }
}

/* ===== Casos: carrossel 1 card por tela no mobile ===== */
@media (max-width: 640px) {
  .cases__head .cases__nav { display: none; }      /* esconde as setas do cabeçalho (só cases) */
  .cases__head { margin-bottom: 16px; }            /* menos espaço acima do card */
  .cases-carousel { padding-bottom: 28px; }        /* faixa maior → dots centrados no vão */
  .cases__viewport { overflow: visible; }
  .cases__grid {
    gap: 16px;
    align-items: stretch;                          /* cards de igual altura */
    padding: 6px 0 10px;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    transform: none !important;                    /* neutraliza o transform do carrossel de desktop */
  }
  .cases__grid::-webkit-scrollbar { display: none; }
  .case-card {
    flex: 0 0 100%;
    scroll-snap-align: center;
    display: flex;
    flex-direction: column;
  }
  .case-card__img { width: 100%; aspect-ratio: 4 / 3; flex: 0 0 auto; }
  .case-card__body {
    flex: 1;                                        /* preenche o card → sem vão abaixo */
    position: static;
    transform: none;
    inset: auto;
    margin: -34px 14px 0;                          /* caixa branca sobre o rodapé da imagem */
    background: #fff;
    box-shadow: 0 18px 40px rgba(23, 38, 63, .12);
    padding: 12px 22px 18px;
  }

  .cases__mnav {
    display: flex; align-items: center; justify-content: center;
    position: absolute; top: 0; bottom: 28px; margin-block: auto;
    width: 40px; height: 40px; border-radius: 50%;
    background: var(--gold-dark); color: #fff; border: none;
    font-size: 18px; cursor: pointer; z-index: 6;
    box-shadow: 0 6px 16px rgba(11, 20, 35, .30);
    transition: opacity .2s;
  }
  .cases__mnav:disabled { opacity: 0; pointer-events: none; }
  .cases__mnav--prev { left: 2px; }
  .cases__mnav--next { right: 2px; }

  .cases__dots {
    display: flex; justify-content: center; gap: 8px;
    position: absolute; left: 0; right: 0; bottom: 13px;
  }
  .cases__dot {
    width: 8px; height: 8px; border-radius: 50%;
    background: rgba(23, 38, 63, .22); border: none; padding: 0; cursor: pointer;
  }
  .cases__dot.is-active { background: var(--gold); }
}

/* ===== Depoimentos: carrossel 1 card por tela no mobile ===== */
@media (max-width: 640px) {
  .testimonials__head .cases__nav { display: none; }   /* esconde setas do cabeçalho (só depoimentos) */
  .testimonials__head { margin-bottom: 16px; }         /* menos espaço acima do primeiro card */
  .testimonials-carousel { padding-bottom: 34px; }
  .testimonials__viewport { overflow: visible; }
  .testimonials__grid {
    gap: 16px;
    padding: 4px 0 8px;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    transform: none !important;                  /* neutraliza o transform do carrossel de desktop */
  }
  .testimonials__grid::-webkit-scrollbar { display: none; }
  .quote-card { flex: 0 0 100%; scroll-snap-align: center; }

  .testi__mnav {
    display: flex; align-items: center; justify-content: center;
    position: absolute; top: 0; bottom: 34px; margin-block: auto;
    width: 40px; height: 40px; border-radius: 50%;
    background: var(--gold-dark); color: #fff; border: none;
    font-size: 18px; cursor: pointer; z-index: 6;
    box-shadow: 0 6px 16px rgba(11, 20, 35, .30);
    transition: opacity .2s;
  }
  .testi__mnav:disabled { opacity: 0; pointer-events: none; }
  .testi__mnav--prev { left: 2px; }
  .testi__mnav--next { right: 2px; }

  .testi__dots {
    display: flex; justify-content: center; gap: 8px;
    position: absolute; left: 0; right: 0; bottom: 8px;
  }
  .testi__dot {
    width: 8px; height: 8px; border-radius: 50%;
    background: rgba(23, 38, 63, .22); border: none; padding: 0; cursor: pointer;
  }
  .testi__dot.is-active { background: var(--gold); }
}

/* ===================== PÁGINA "A EQUIPE" ===================== */
.team2 { padding: 40px 0 76px; }

.team2__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);   /* fotos e cards mais largos */
  gap: 46px 30px;
  align-items: stretch;              /* cards da mesma linha com a mesma altura */
}
.tmember { display: flex; flex-direction: column; }   /* estica até a altura da linha */
.tmember__photo {
  width: 100%;
  height: 360px;
  flex: 0 0 360px;
  background-color: #17263f;
  background-size: cover;
  background-position: center top;
}
.tmember__card {
  width: 88%;
  margin: -64px auto 0;
  position: relative;
  z-index: 2;
  flex: 1 1 auto;                    /* preenche a altura → ícone no fundo do card */
  background: var(--cream);
  padding: 26px 26px 24px;
  box-shadow: 0 18px 40px rgba(23, 38, 63, .12);
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.tmember__name {
  font-family: var(--font-head);
  font-weight: 600;
  font-size: 19px;
  line-height: 1.25;
  color: var(--heading);
  text-align: center;
}
.tmember__role {
  text-align: center;
  color: var(--gold-on-light);   /* dourado legível sobre o card creme (~5:1) */
  font-weight: 600;
  font-size: 11.5px;
  letter-spacing: .06em;
  text-transform: uppercase;        /* cargos em maiúsculo (padrão da página) */
}
.tmember__email {
  display: block;
  text-align: center;
  font-size: 13px;
  color: var(--ink);
  text-decoration: none;
  overflow-wrap: anywhere;
}
.tmember__email:hover { color: var(--gold); text-decoration: underline; }
.tmember__bio {
  margin-top: 6px;
  font-size: 13px;
  line-height: 1.68;
  color: var(--text);
  text-align: left;
}
.tmember__social {
  margin-top: auto;                 /* ícone "in" fixado na base, alinhado entre os cards */
  display: flex;
  justify-content: center;
  padding-top: 14px;
}
.tmember__social a {
  display: inline-flex;
  color: var(--heading);
  transition: color .2s, transform .2s;
}
.tmember__social a:hover { color: var(--gold); transform: translateY(-2px); }

@media (max-width: 1040px) {
  .team2__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
  .team2 { padding: 26px 0 48px; }
  .team2__grid { grid-template-columns: 1fr; gap: 34px; max-width: 420px; margin-inline: auto; }
  .tmember__photo { height: 380px; flex-basis: 380px; }
}
