/* =============================================================
   A9 Sites — tema "advocacia"
   Editorial sóbrio: papel, hairlines, serif, navy + dourado.
   Mobile-first. Alinhamento por grade explícita (sem auto-placement).
   ============================================================= */

:root {
  --gold: #B08D42;          /* sobrescrito pelo <style> inline (color_primary) */
  --navy: #10233F;          /* sobrescrito pelo <style> inline (color_dark)    */
  --paper: #F8F6F1;
  --white: #FFFDF9;
  --ink: #1D2739;
  --mut: #5A6478;
  --line: #DED7C8;
  --line-soft: #EAE4D7;
  --line-dark: rgba(248, 246, 241, .16);
  --dim: #C3CBDA;
  /* dourado escurecido para TEXTO/ícones sobre papel (AA);
     o --gold puro fica para filetes, molduras e fundo navy. */
  --gold-ink: #8A6C2C;
  --gold-ink: color-mix(in srgb, var(--gold) 72%, #221A0D);
  --serif: 'Libre Caslon Text', Georgia, 'Times New Roman', serif;
  --sans: 'Source Sans 3', 'Segoe UI', system-ui, sans-serif;
  --pad: clamp(1.25rem, 5vw, 2.75rem);
  --sec: clamp(4.25rem, 9vw, 7.5rem);
}

* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; animation: none !important; }
}

body {
  font-family: var(--sans);
  font-size: 1.0625rem;
  line-height: 1.68;
  color: var(--ink);
  background: var(--paper);
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}

img { max-width: 100%; display: block; }
a { color: inherit; }
ul, ol { list-style: none; }
svg { flex: none; }
::selection { background: var(--navy); color: var(--paper); }

h1, h2, h3, .serif { font-family: var(--serif); font-weight: 400; color: var(--navy); }
h1 { font-size: clamp(2.4rem, 5.6vw, 4.05rem); line-height: 1.07; letter-spacing: -.015em; }
h2 { font-size: clamp(1.8rem, 3.4vw, 2.7rem); line-height: 1.16; letter-spacing: -.01em; }
h3 { font-size: 1.3rem; line-height: 1.32; }

.wrap { width: min(1160px, 100% - var(--pad) * 2); margin-inline: auto; }
.section { padding: var(--sec) 0; }
.bg-white { background: var(--white); }
.edge-t { border-top: 1px solid var(--line); }
.edge-b { border-bottom: 1px solid var(--line); }

/* Kicker com filete dourado — marcador de seção usado em todo o site. */
.kicker {
  display: flex;
  align-items: center;
  gap: .85rem;
  font: 600 .7rem/1.4 var(--sans);
  letter-spacing: .24em;
  text-transform: uppercase;
  color: var(--gold-ink);
  margin-bottom: 1.15rem;
}
.kicker::before { content: ""; width: 2.1rem; height: 1px; background: currentColor; flex: none; }
/* sobre navy o dourado puro já passa AA — e brilha mais */
.page-head .kicker, .method .kicker { color: var(--gold); }

/* Filete com "&" central — divisor editorial da marca. */
.amp-rule {
  display: flex;
  align-items: center;
  gap: 1.4rem;
  color: var(--line);
}
.amp-rule::before, .amp-rule::after { content: ""; flex: 1; height: 1px; background: currentColor; }
.amp-rule span {
  font: italic 400 1.65rem/1 var(--serif);
  color: var(--gold);
  transform: translateY(-.06em);
}

:focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; }

/* ---------- Botões -------------------------------------------- */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .6rem;
  padding: 1rem 1.8rem;
  font: 600 .74rem/1 var(--sans);
  letter-spacing: .17em;
  text-transform: uppercase;
  text-decoration: none;
  border: 1px solid var(--navy);
  background: none;
  cursor: pointer;
  transition: background .25s ease, color .25s ease, border-color .25s ease;
}
.btn-solid { background: var(--navy); color: var(--paper); }
.btn-solid:hover { background: var(--gold); border-color: var(--gold); color: var(--navy); }
.btn-line { color: var(--navy); }
.btn-line:hover { border-color: var(--gold-ink); color: var(--gold-ink); }
.btn-line.inv { border-color: rgba(248, 246, 241, .38); color: var(--paper); }
.btn-line.inv:hover { border-color: var(--gold); color: var(--gold); }
.btn svg { transition: transform .25s ease; }
.btn:hover svg { transform: translateX(3px); }

/* ---------- Header -------------------------------------------- */
.site-head {
  position: sticky;
  top: 0;
  z-index: 60;
  background: var(--paper);
  border-bottom: 1px solid var(--line);
}
.site-head::before { content: ""; display: block; height: 3px; background: var(--gold); }
.head-in {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  padding: .85rem 0;
}
.brand { text-decoration: none; display: flex; flex-direction: column; line-height: 1.15; }
.brand img { max-height: 46px; width: auto; }
.brand-name { font-family: var(--serif); font-size: 1.22rem; color: var(--navy); white-space: nowrap; }
.brand-sub {
  font: 600 .56rem/1.5 var(--sans);
  letter-spacing: .38em;
  text-transform: uppercase;
  color: var(--gold-ink);
}
.head-side { display: flex; align-items: center; gap: 1.1rem; }
.head-tel {
  display: none;
  align-items: center;
  gap: .5rem;
  text-decoration: none;
  font: 600 .82rem/1 var(--sans);
  letter-spacing: .03em;
  color: var(--navy);
}
.head-tel svg { color: var(--gold-ink); }
.head-tel:hover { color: var(--gold-ink); }
.head-cta { display: none; }

/* menu mobile (overlay navy) */
.nav {
  position: fixed;
  inset: 0;
  z-index: 80;
  background: var(--navy);
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: .3rem;
  padding: 2.4rem var(--pad);
  opacity: 0;
  visibility: hidden;
  transition: opacity .3s ease, visibility .3s ease;
}
body.nav-open .nav { opacity: 1; visibility: visible; }
body.nav-open { overflow: hidden; }
.nav > a {
  font-family: var(--serif);
  font-size: 1.85rem;
  color: var(--paper);
  text-decoration: none;
  padding: .6rem 0;
  border-bottom: 1px solid var(--line-dark);
}
.nav > a.on { color: var(--gold); }
.nav-foot { margin-top: 2.2rem; font-size: .9rem; color: var(--dim); display: grid; gap: .45rem; }
.nav-foot a { color: var(--paper); text-decoration: none; }

.nav-toggle {
  position: relative;
  z-index: 90;
  width: 44px;
  height: 44px;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 7px;
  background: none;
  border: 1px solid var(--line);
  cursor: pointer;
}
.nav-toggle span { width: 20px; height: 1.5px; background: var(--navy); transition: transform .3s ease, background .3s ease; }
body.nav-open .nav-toggle { border-color: var(--line-dark); }
body.nav-open .nav-toggle span { background: var(--paper); }
body.nav-open .nav-toggle span:first-child { transform: translateY(4.25px) rotate(45deg); }
body.nav-open .nav-toggle span:last-child { transform: translateY(-4.25px) rotate(-45deg); }

/* ---------- Hero ---------------------------------------------- */
.hero { padding: clamp(3.25rem, 7vw, 5.75rem) 0 clamp(3rem, 6vw, 5rem); }
.hero-in { display: grid; gap: clamp(2.75rem, 6vw, 3.5rem); align-items: center; }
.hero-copy h1 { max-width: 16ch; }
.hero-sub {
  margin-top: 1.5rem;
  max-width: 50ch;
  font-size: clamp(1.05rem, 1.5vw, 1.16rem);
  color: var(--mut);
}
.hero-actions { display: flex; flex-wrap: wrap; gap: .85rem; margin-top: 2.2rem; }
.hero-meta {
  margin-top: clamp(2.2rem, 4.5vw, 3rem);
  padding-top: 1.5rem;
  border-top: 1px solid var(--line);
  display: grid;
  gap: .75rem;
}
.hero-meta li { display: grid; grid-template-columns: 1.1rem 1fr; gap: .7rem; font-size: .92rem; color: var(--mut); }
.hero-meta svg { color: var(--gold-ink); transform: translateY(4px); }

.hero-side { padding-top: 1.15rem; padding-right: 1.15rem; }
.hero-figure { position: relative; margin: 0; }
.hero-figure::before {
  content: "";
  position: absolute;
  inset: -1.15rem -1.15rem 1.15rem 1.15rem;
  border: 1px solid var(--gold);
}
.hero-figure img { position: relative; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.hero-badge {
  position: relative;
  z-index: 2;
  margin: -3.4rem 0 0 0;
  background: var(--navy);
  color: var(--paper);
  padding: 1.1rem 1.25rem;
  display: grid;
  grid-template-columns: 1.1rem 1fr;
  gap: .75rem;
  max-width: 21rem;
  font: 600 .68rem/1.6 var(--sans);
  letter-spacing: .13em;
  text-transform: uppercase;
}
.hero-badge svg { color: var(--gold); transform: translateY(3px); }

/* ---------- Faixa de números (navy) --------------------------- */
.stats { background: var(--navy); }
.stats-in { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--line-dark); }
.stat { background: var(--navy); padding: 1.9rem 1.25rem 2rem; }
.stat::before { content: ""; display: block; width: 1.75rem; height: 2px; background: var(--gold); margin-bottom: 1rem; }
.stat strong { display: block; font: 400 clamp(2rem, 3.6vw, 2.9rem)/1.05 var(--serif); color: var(--paper); }
.stat span {
  display: block;
  margin-top: .5rem;
  font: 600 .66rem/1.5 var(--sans);
  letter-spacing: .19em;
  text-transform: uppercase;
  color: var(--dim);
}

/* ---------- O escritório -------------------------------------- */
.about-in { display: grid; gap: clamp(2.6rem, 5vw, 3rem); align-items: center; }
.about-media { position: relative; margin: 0 1.1rem 1.1rem 0; }
.about-media::before {
  content: "";
  position: absolute;
  inset: 1.1rem -1.1rem -1.1rem 1.1rem;
  border: 1px solid var(--gold);
}
.about-media img { position: relative; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.about-media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(165deg, rgba(16, 35, 63, .1) 40%, rgba(16, 35, 63, .68));
}
.about-media figcaption {
  position: absolute;
  z-index: 2;
  left: 1.3rem;
  right: 1.3rem;
  bottom: 1.15rem;
  padding-left: .85rem;
  border-left: 2px solid var(--gold);
  font: 600 .68rem/1.55 var(--sans);
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--paper);
}
.about-text h2 { max-width: 20ch; }
.about-text > p { margin-top: 1.15rem; color: var(--mut); max-width: 54ch; }
.perks { margin-top: 1.9rem; border-top: 1px solid var(--line); display: grid; }
.perks li {
  display: grid;
  grid-template-columns: 1.1rem 1fr;
  gap: .85rem;
  padding: .9rem 0;
  border-bottom: 1px solid var(--line);
  font-size: .96rem;
}
.perks svg { color: var(--gold-ink); transform: translateY(5px); }

/* ---------- Cabeçalho de seção -------------------------------- */
.sec-head {
  display: grid;
  gap: 1.4rem;
  margin-bottom: clamp(2rem, 4vw, 2.8rem);
}
.sec-head h2 { max-width: 22ch; }
.sec-head .sec-lead { margin-top: 1rem; max-width: 52ch; color: var(--mut); font-size: 1.02rem; }
.sec-link {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  justify-self: start;
  font: 600 .72rem/1 var(--sans);
  letter-spacing: .17em;
  text-transform: uppercase;
  color: var(--navy);
  text-decoration: none;
  padding-bottom: .5rem;
  border-bottom: 1px solid var(--gold);
}
.sec-link:hover { color: var(--gold-ink); }
.sec-link svg, .ad-link svg, .area-go svg { transition: transform .25s ease; }
.sec-link:hover svg, .ad-link:hover svg { transform: translateX(4px); }

/* ---------- Áreas numeradas (home) ---------------------------- */
/* Grade 100% explícita: cada filho tem sua área nomeada, de modo que
   nenhum item é empurrado para uma coluna vizinha por auto-placement. */
.area-list { border-top: 1px solid var(--line); }
.area-row { border-bottom: 1px solid var(--line); }
.area-row > a {
  display: grid;
  grid-template-columns: 2.9rem minmax(0, 1fr) 1.6rem;
  grid-template-areas:
    "num  name go"
    "gap  desc desc";
  column-gap: 1rem;
  row-gap: .45rem;
  padding: 1.4rem .35rem;
  text-decoration: none;
  transition: background .25s ease, padding-left .25s ease;
}
.area-row > a:hover { background: var(--white); }
.area-num { grid-area: num; font: italic 400 1.02rem/1.5 var(--serif); color: var(--gold-ink); }
.area-name {
  grid-area: name;
  font-family: var(--serif);
  font-size: 1.28rem;
  line-height: 1.35;
  color: var(--navy);
  transition: color .25s ease;
}
.area-row > a:hover .area-name { color: var(--gold-ink); }
.area-desc { grid-area: desc; font-size: .95rem; line-height: 1.6; color: var(--mut); max-width: 54ch; }
.area-go { grid-area: go; justify-self: end; align-self: start; color: var(--navy); }
.area-go svg { display: block; transform: translateY(4px); }
.area-row > a:hover .area-go svg { transform: translate(5px, 4px); }

/* ---------- Compromissos (credibilidade) ---------------------- */
.trust-grid { display: grid; gap: 2.4rem; }
.trust-item { border-top: 2px solid var(--gold); padding-top: 1.5rem; }
.trust-ico {
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  border: 1px solid var(--line);
  color: var(--gold-ink);
  background: var(--paper);
  margin-bottom: 1.1rem;
}
.bg-white .trust-ico { background: var(--white); }
.trust-item h3 { font-size: 1.24rem; }
.trust-item p { margin-top: .6rem; font-size: .96rem; color: var(--mut); max-width: 40ch; }

/* ---------- Citação ------------------------------------------- */
.quote { position: relative; overflow: hidden; background: var(--navy); padding: clamp(4.25rem, 9vw, 7rem) 0; }
.quote > .wrap { position: relative; z-index: 2; }
/* marca d'água: a transparência entra na própria cor (e não via
   opacity) para não depender da ordem de composição. */
.quote-amp {
  display: none;
  position: absolute;
  right: 3rem;
  bottom: 2rem;
  font: italic 400 clamp(9rem, 18vw, 15rem)/.86 var(--serif);
  color: #26323F;
  color: color-mix(in srgb, var(--gold) 15%, var(--navy));
  pointer-events: none;
  user-select: none;
}
.quote-in { position: relative; max-width: 54rem; }
.quote-mark { display: block; font: italic 400 6.5rem/0.6 var(--serif); color: var(--gold); height: .45em; }
.quote blockquote p {
  font: italic 400 clamp(1.4rem, 3vw, 2.1rem)/1.42 var(--serif);
  color: #F4F0E5;
  max-width: 28ch;
}
.quote blockquote footer { margin-top: 2rem; padding-left: 1.1rem; border-left: 2px solid var(--gold); }
.quote blockquote footer strong { display: block; font: 400 1.05rem/1.4 var(--serif); color: var(--paper); }
.quote blockquote footer span {
  font: 600 .66rem/1.7 var(--sans);
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--gold);
}

/* ---------- Sócios -------------------------------------------- */
.partners-grid { display: grid; gap: 2.2rem; }
.partner {
  display: grid;
  grid-template-columns: 74px minmax(0, 1fr);
  gap: 1.3rem;
  align-items: start;
  padding: 1.8rem 0 0;
  border-top: 1px solid var(--line);
}
.monogram {
  width: 74px;
  height: 74px;
  display: grid;
  place-items: center;
  border: 1px solid var(--gold);
  font: 400 1.5rem/1 var(--serif);
  color: var(--navy);
  background: var(--white);
}
.bg-white .monogram { background: var(--paper); }
.partner h3 { font-size: 1.42rem; }
.partner-role {
  margin-top: .3rem;
  font: 600 .66rem/1.7 var(--sans);
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--gold-ink);
}
.partner-oab { margin-top: .1rem; font-size: .82rem; color: var(--mut); }
.partner-bio { margin-top: .85rem; font-size: .96rem; color: var(--mut); max-width: 44ch; }

/* ---------- Cabeçalho de página interna ----------------------- */
.page-head { position: relative; overflow: hidden; background: var(--navy); padding: clamp(3.75rem, 7.5vw, 6rem) 0; }
.page-head-in { position: relative; z-index: 2; }
.page-head h1 { color: var(--paper); font-size: clamp(2.05rem, 4.6vw, 3.2rem); max-width: 19ch; }
.page-lead { margin-top: 1.3rem; max-width: 58ch; color: var(--dim); font-size: 1.05rem; }
.page-amp {
  display: none;
  position: absolute;
  right: 2.5rem;
  bottom: 1.25rem;
  font: italic 400 clamp(6.5rem, 13vw, 11rem)/.86 var(--serif);
  color: #2A3748;
  color: color-mix(in srgb, var(--gold) 18%, var(--navy));
  pointer-events: none;
  user-select: none;
}

/* ---------- Áreas em detalhe (atuacao.php) -------------------- */
.area-item {
  display: grid;
  gap: 1.2rem;
  grid-template-areas: "head" "body" "act";
  padding: 2.3rem 0;
  border-top: 1px solid var(--line);
  scroll-margin-top: 6rem;
}
.area-item:last-of-type { border-bottom: 1px solid var(--line); }
.ad-head { grid-area: head; display: flex; align-items: center; gap: 1rem; }
.ad-body { grid-area: body; }
.ad-act { grid-area: act; }
.ad-head .area-num { font-size: 1.1rem; }
.ad-icon {
  width: 48px;
  height: 48px;
  display: grid;
  place-items: center;
  border: 1px solid var(--line);
  color: var(--gold-ink);
  background: var(--white);
}
.ad-body h2 { font-size: 1.5rem; }
.ad-body > p { margin-top: .7rem; color: var(--mut); max-width: 58ch; }
.ad-link {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  font: 600 .7rem/1 var(--sans);
  letter-spacing: .17em;
  text-transform: uppercase;
  color: var(--navy);
  text-decoration: none;
  border-bottom: 1px solid var(--gold);
  padding-bottom: .4rem;
}
.ad-link:hover { color: var(--gold-ink); }
.areas-note {
  margin-top: 2.6rem;
  padding-left: 1.2rem;
  border-left: 2px solid var(--gold);
  font-style: italic;
  font-family: var(--serif);
  color: var(--mut);
  max-width: 56ch;
}

/* ---------- Método (navy) ------------------------------------- */
.method { background: var(--navy); }
.method .kicker { color: var(--gold); }
.method h2 { color: var(--paper); max-width: 21ch; }
.method .sec-lead { color: var(--dim); }
.method-grid { display: grid; gap: 2.2rem; }
.method-step { border-top: 2px solid var(--gold); padding-top: 1.4rem; }
.method-step .area-num { font-size: 1.05rem; color: var(--gold); }
.method-step h3 { color: var(--paper); margin-top: .5rem; font-size: 1.26rem; }
.method-step p { margin-top: .6rem; color: var(--dim); font-size: .96rem; }

/* ---------- Galeria ------------------------------------------- */
.shots { display: grid; gap: 2rem; }
.shot { position: relative; }
.shot img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.shot figcaption {
  margin-top: .9rem;
  padding-left: .9rem;
  border-left: 2px solid var(--gold);
  font: 600 .68rem/1.55 var(--sans);
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--mut);
}

/* ---------- Contato ------------------------------------------- */
.contact-grid { display: grid; gap: clamp(2.8rem, 6vw, 3.5rem); align-items: start; }
.contact-info h2 { max-width: 18ch; }
.c-list { margin-top: 1.9rem; border-top: 1px solid var(--line); }
.c-list li { display: grid; grid-template-columns: 1.15rem minmax(0, 1fr); gap: 1rem; padding: 1.05rem 0; border-bottom: 1px solid var(--line); }
.c-list svg { color: var(--gold-ink); transform: translateY(6px); }
.c-label {
  display: block;
  font: 600 .63rem/1.7 var(--sans);
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--mut);
}
.c-list a, .c-list div > span:last-child { color: var(--navy); text-decoration: none; }
.c-list a:hover { color: var(--gold-ink); }
.contact-cta { margin-top: 1.9rem; display: flex; flex-wrap: wrap; gap: .85rem; }
.social { display: flex; gap: .9rem; margin-top: 1.6rem; }
.social a { color: var(--navy); display: inline-flex; padding: .55rem; border: 1px solid var(--line); }
.social a:hover { color: var(--gold-ink); border-color: var(--gold-ink); }
.map { margin-top: 2.2rem; border: 1px solid var(--line); }
.map iframe { display: block; width: 100%; height: 280px; border: 0; filter: grayscale(.92) contrast(1.05); }

.form-card {
  background: var(--white);
  border: 1px solid var(--line);
  border-top: 3px solid var(--gold);
  padding: clamp(1.5rem, 4vw, 2.4rem);
}
.bg-white .form-card { background: var(--paper); }
.form-card h2 { font-size: clamp(1.5rem, 2.4vw, 1.85rem); }
.form-note { margin-top: .7rem; font-size: .94rem; color: var(--mut); max-width: 44ch; }
.card-form { margin-top: .6rem; }
.card-form label {
  display: block;
  margin-top: 1.6rem;
  font: 600 .66rem/1.7 var(--sans);
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--mut);
}
.card-form input:not(.hp),
.card-form textarea {
  width: 100%;
  margin-top: .25rem;
  padding: .65rem 0;
  font: 400 1.02rem/1.5 var(--sans);
  color: var(--ink);
  background: transparent;
  border: 0;
  border-bottom: 1px solid var(--line);
  border-radius: 0;
  transition: border-color .25s ease;
}
.card-form input::placeholder, .card-form textarea::placeholder { color: #98a0b0; }
.card-form input:not(.hp):focus,
.card-form textarea:focus { outline: none; border-bottom-color: var(--gold); }
.card-form textarea { resize: vertical; min-height: 120px; }
.card-form button { margin-top: 2.1rem; width: 100%; }
.form-privacy { margin-top: 1.1rem; font-size: .84rem; color: var(--mut); display: grid; grid-template-columns: .9rem 1fr; gap: .55rem; }
.form-privacy svg { color: var(--gold-ink); transform: translateY(4px); }
.hp { position: absolute; left: -9999px; height: 1px; width: 1px; opacity: 0; }

.form-ok {
  display: grid;
  grid-template-columns: 1.25rem 1fr;
  gap: .9rem;
  border: 1px solid var(--gold);
  background: var(--paper);
  padding: 1.1rem 1.2rem;
  margin-bottom: 1.6rem;
}
.bg-white .form-ok { background: var(--white); }
.form-ok svg { color: var(--gold-ink); transform: translateY(4px); }
.form-ok strong { font-family: var(--serif); font-weight: 400; color: var(--navy); }
.form-ok p { font-size: .92rem; color: var(--mut); }

/* ---------- Rodapé -------------------------------------------- */
.footer { background: var(--navy); color: var(--dim); }
.foot-grid { display: grid; gap: 2.4rem; padding: clamp(3rem, 6vw, 4.5rem) 0 2.6rem; }
.foot-brand .brand-name { color: var(--paper); font-size: 1.35rem; display: block; }
.foot-brand .brand-sub { display: block; margin-top: .15rem; color: var(--gold); }
.foot-brand > p { margin-top: 1rem; font-size: .93rem; max-width: 32ch; }
.foot-oab { font-size: .82rem; color: rgba(248, 246, 241, .5); }
.foot-col h3 {
  font: 600 .66rem/1.7 var(--sans);
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 1.1rem;
}
.foot-col li { padding: .3rem 0; font-size: .95rem; }
.foot-col a { color: var(--paper); text-decoration: none; }
.foot-col a:hover { color: var(--gold); }
.foot-social { display: flex; gap: .9rem; margin-top: 1.2rem; }
.foot-social a { display: inline-flex; padding: .5rem; border: 1px solid var(--line-dark); color: var(--paper); }
.foot-social a:hover { color: var(--gold); border-color: var(--gold); }
.foot-base {
  border-top: 1px solid var(--line-dark);
  padding: 1.4rem 0 5.5rem;
  display: flex;
  flex-wrap: wrap;
  gap: .6rem 2rem;
  justify-content: space-between;
  font-size: .85rem;
}
.foot-base a { color: var(--paper); }
.foot-base a:hover { color: var(--gold); }

/* ---------- Animações de entrada ------------------------------ */
body.anim .reveal { opacity: 0; transform: translateY(16px); transition: opacity .7s ease, transform .7s ease; }
body.anim .reveal.in { opacity: 1; transform: none; }

/* =============================================================
   Breakpoints
   ============================================================= */
@media (min-width: 620px) {
  .stats-in { grid-template-columns: repeat(4, 1fr); }
  .stat { padding: 2.1rem 1.4rem 2.2rem; }
  .card-form button { width: auto; min-width: 15rem; }
}

@media (min-width: 820px) {
  .head-tel { display: inline-flex; }
  .page-amp, .quote-amp { display: block; }
  .trust-grid { grid-template-columns: repeat(3, 1fr); gap: 2.6rem; }
  .method-grid { grid-template-columns: repeat(3, 1fr); gap: 2.6rem; }
  .partners-grid { grid-template-columns: 1fr 1fr; gap: 2.2rem 3rem; }
  .shots { grid-template-columns: 1fr 1fr; gap: 2.4rem; }
  .area-item {
    grid-template-columns: 8.5rem minmax(0, 1fr) auto;
    grid-template-areas: "head body act";
    align-items: start;
    gap: 2.2rem;
    padding: 2.6rem 0;
  }
  .ad-head { flex-direction: column; align-items: flex-start; gap: 1.1rem; }
  .ad-act { justify-self: end; align-self: center; }
  .sec-head { grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 1.4rem 2.5rem; }
  .sec-link { justify-self: end; }
}

@media (min-width: 1000px) {
  .nav {
    position: static;
    inset: auto;
    background: none;
    flex-direction: row;
    align-items: center;
    gap: 2.2rem;
    padding: 0;
    opacity: 1;
    visibility: visible;
  }
  .nav > a {
    font: 600 .76rem/1 var(--sans);
    letter-spacing: .16em;
    text-transform: uppercase;
    color: var(--ink);
    border-bottom: 0;
    padding: .4rem 0;
    position: relative;
  }
  .nav > a::after {
    content: "";
    position: absolute;
    left: 0; right: 100%; bottom: -2px;
    height: 1px;
    background: var(--gold);
    transition: right .3s ease;
  }
  .nav > a:hover::after, .nav > a.on::after { right: 0; }
  .nav > a.on { color: var(--gold-ink); }
  .nav-foot { display: none; }
  .nav-toggle { display: none; }
  .head-cta { display: inline-flex; }

  .hero-in { grid-template-columns: minmax(0, 1.12fr) minmax(0, .88fr); gap: clamp(3rem, 5vw, 4.5rem); }
  .about-in { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: clamp(3rem, 5vw, 4.5rem); }
  .contact-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(3rem, 5vw, 4.5rem); }
  .foot-grid { grid-template-columns: 2.1fr 1.1fr 1.1fr; gap: 3rem; }
  .quote-in { padding-left: 5.5rem; }
  .quote-mark { position: absolute; left: 0; top: .12em; height: auto; }

  .area-row > a {
    grid-template-columns: 4.25rem minmax(0, .85fr) minmax(0, 1.3fr) 2rem;
    grid-template-areas: "num name desc go";
    column-gap: 2rem;
    align-items: baseline;
    padding: 1.7rem .6rem;
  }
  .area-desc { max-width: none; }
  .area-go { align-self: center; }
  .area-go svg { transform: none; }
  .area-row > a:hover .area-go svg { transform: translateX(5px); }
}
