/* ==========================================================
   TAVARES & MORAIS — folha de estilos
   Paleta e tipografia conforme Manual de Identidade Visual
   ========================================================== */

:root{
  --graphite:#1C2321;
  --graphite-esc:#171d1b;
  --gold:#B89756;
  --gold-claro:#D8C29A;
  --navy:#0A192F;
  --burgundy:#4A1521;
  --cream:#F6F4EF;
  --muted:#69706d;
  --linha:#e7e4dd;
  --erro:#a13a2e;
  --ok:#2f6b4f;
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0; color:var(--graphite); background:#fff;
  font-family:Inter,-apple-system,BlinkMacSystemFont,Arial,sans-serif;
}
a{ color:inherit; text-decoration:none; }
img{ display:block; max-width:100%; height:auto; }
::selection{ background:var(--gold); color:#151916; }
:focus-visible{ outline:2px solid var(--gold); outline-offset:3px; }

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

/* ---------------- NAV ---------------- */
.nav{
  height:78px; display:flex; align-items:center; justify-content:space-between;
  padding:0 4%; background:rgba(255,255,255,.97);
  border-bottom:1px solid #e8e6e0; position:sticky; top:0; z-index:30;
}
.nav-brand{ display:flex; align-items:center; gap:12px; }
.nav-brand img{ height:44px; width:auto; }
.brand-text strong{
  display:block; font-family:"Cormorant Garamond",Georgia,serif;
  font-size:21px; letter-spacing:.08em; font-weight:700;
}
.brand-text span{ display:block; font-size:9px; letter-spacing:.20em; color:#777; margin-top:-2px; }
.menu{
  display:flex; gap:26px; align-items:center;
  font-size:12px; font-weight:600; letter-spacing:.08em; text-transform:uppercase;
}
.menu a{ transition:color .2s; }
.menu a:hover{ color:var(--gold); }
/* Área do cliente: discreta ao lado do contato, para não competir com ele. */
.nav-area{ padding:11px 14px; color:var(--gold); }
.nav-area:hover{ color:var(--gold-claro); text-decoration:underline; }

.nav-cta{ border:1px solid var(--gold); padding:11px 16px; }
.nav-cta:hover{ background:var(--gold); color:#151916; }
.menu-btn{ display:none; background:none; border:0; padding:8px; cursor:pointer; color:var(--graphite); }
.menu-mobile{ display:none; }
.menu-mobile.aberto{
  display:flex; flex-direction:column; gap:2px;
  position:fixed; inset:78px 0 auto 0; background:#fff; z-index:29;
  border-bottom:1px solid var(--linha); padding:14px 6%;
  box-shadow:0 14px 30px rgba(0,0,0,.08);
}
.menu-mobile a{ padding:13px 0; font-size:14px; border-bottom:1px solid #f0eee9; }

/* ---------------- TIPOGRAFIA ---------------- */
h1,h2,h3{ font-family:"Cormorant Garamond",Georgia,serif; font-weight:600; }
.kicker{
  color:var(--gold); letter-spacing:.28em; font-size:12px;
  font-weight:700; text-transform:uppercase;
}
.eyebrow{
  color:var(--burgundy); font-size:11px; font-weight:700;
  letter-spacing:.22em; text-transform:uppercase;
}
.section{ padding:95px 0; }
.section.creme{ background:var(--cream); }
.section.claro{ background:#fff; }
.section.escuro{ background:var(--graphite); color:#fff; }
.section.escuro .eyebrow{ color:var(--gold); }
.section-head{ text-align:center; max-width:760px; margin:0 auto 52px; }
.section-head h2{ font-size:clamp(34px,4.4vw,50px); margin:10px 0 12px; line-height:1.1; }
.section-head p{ color:var(--muted); line-height:1.8; margin:0; }
.section.escuro .section-head p{ color:#b9c0bc; }

/* ---------------- BOTÕES ---------------- */
.btn{
  padding:15px 23px; border:1px solid var(--gold); font-size:12px;
  text-transform:uppercase; letter-spacing:.12em; font-weight:700;
  display:inline-block; cursor:pointer;
  transition:background .25s,color .25s,border-color .25s;
}
.btn.gold{ background:var(--gold); color:#151916; }
.btn.gold:hover{ background:var(--gold-claro); border-color:var(--gold-claro); }
.btn.dark{ color:#fff; }
.btn.dark:hover{ background:var(--gold); border-color:var(--gold); color:#151916; }
.btn.light{ color:var(--graphite); border-color:#cfc9b9; }
.btn.light:hover{ background:var(--graphite); border-color:var(--graphite); color:var(--gold-claro); }

/* ---------------- SUBMENU DE ÁREAS ---------------- */
.tem-sub{ position:relative; display:inline-flex; align-items:center; }
.tem-sub > a{ display:inline-flex; align-items:center; gap:6px; }
.seta{
  width:0; height:0; display:inline-block;
  border-left:3.5px solid transparent; border-right:3.5px solid transparent;
  border-top:4px solid currentColor; opacity:.55; transition:transform .2s, opacity .2s;
}
.tem-sub:hover .seta{ transform:rotate(180deg); opacity:1; }

.submenu{
  position:absolute; top:100%; left:50%; transform:translateX(-50%) translateY(6px);
  min-width:290px; background:#fff; border:1px solid var(--linha);
  box-shadow:0 18px 46px rgba(28,35,33,.13);
  padding:8px; display:flex; flex-direction:column;
  opacity:0; visibility:hidden; pointer-events:none;
  transition:opacity .2s ease, transform .2s ease, visibility .2s;
  z-index:40;
}
/* ponte invisível para o mouse não perder o menu no caminho */
.tem-sub:before{
  content:""; position:absolute; top:100%; left:0; right:0; height:14px;
}
.tem-sub:hover .submenu,
.tem-sub:focus-within .submenu{
  opacity:1; visibility:visible; pointer-events:auto;
  transform:translateX(-50%) translateY(0);
}
.submenu a{
  padding:11px 14px; text-transform:none; letter-spacing:0; font-weight:400;
  display:flex; flex-direction:column; gap:2px; transition:background .18s;
  border-left:2px solid transparent;
}
.submenu a:hover{ background:var(--cream); border-left-color:var(--gold); color:var(--graphite); }
.submenu a b{ font-size:14px; font-weight:600; color:var(--graphite); }
.submenu a em{ font-size:11px; font-style:normal; color:var(--muted); letter-spacing:.04em; }
.submenu-todas{
  border-top:1px solid var(--linha); margin-top:6px; padding-top:12px !important;
  font-size:11px !important; font-weight:700 !important;
  letter-spacing:.12em !important; text-transform:uppercase !important;
  color:var(--gold) !important;
}
.submenu-todas:hover{ background:transparent !important; border-left-color:transparent !important; }
.menu-mobile .sub-mob{
  padding-left:18px; font-size:13px; color:var(--muted);
  border-left:2px solid var(--linha);
}

/* logo do parceiro */
.condape-box img{ max-width:104px; max-height:62px; object-fit:contain; }

/* ---------------- HERO ---------------- */
.hero{
  min-height:640px; display:grid; grid-template-columns:1.08fr .92fr; align-items:center;
  background:
    radial-gradient(circle at 80% 30%,rgba(184,151,86,.18),transparent 28%),
    linear-gradient(135deg,#171d1b 0%,#1c2321 55%,#101715 100%);
  color:#fff; position:relative; overflow:hidden;
}
.hero:before{
  content:""; position:absolute; inset:0; opacity:.11; pointer-events:none;
  background-image:
    linear-gradient(30deg,transparent 49%,#d8d0bd 50%,transparent 51%),
    linear-gradient(150deg,transparent 49%,#d8d0bd 50%,transparent 51%);
  background-size:170px 100px;
}
.hero-copy{ position:relative; z-index:2; padding:80px 0; }
.hero h1{ font-size:clamp(42px,5.6vw,72px); line-height:.98; margin:18px 0; }
.hero h1 em{ color:var(--gold); font-style:normal; }
.hero p{ max-width:590px; color:#d5d9d6; line-height:1.8; font-size:16px; }
.buttons{ display:flex; gap:14px; margin-top:32px; flex-wrap:wrap; }
.hero-logo{ align-items:center; position:relative; z-index:2; display:flex; justify-content:center; padding:40px 0; }
.logo-card{
  width:min(430px,86%); padding:26px 30px;
  border:1px solid rgba(184,151,86,.55);
  background:linear-gradient(145deg,rgba(255,255,255,.05),rgba(0,0,0,.16));
  box-shadow:0 25px 80px rgba(0,0,0,.35);
}

/* hero de landing page — sem card de logo */
.lp-hero{ padding:120px 0 100px; text-align:center; }
.lp-hero .container{ max-width:840px; }
.lp-hero h1{ font-size:clamp(38px,5vw,62px); line-height:1.04; margin:18px 0; }
.lp-hero p{ color:#d5d9d6; line-height:1.8; font-size:17px; margin:0 auto; max-width:620px; }
.lp-hero .buttons{ justify-content:center; }

/* ---------------- ÁREAS ---------------- */
.services{ display:grid; gap:18px; }
.services.col-2{ grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); }
.services.col-3{ grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); }
.services.col-4{ grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); }
.services.col-5{ grid-template-columns:repeat(auto-fit,minmax(205px,1fr)); }
/* o card inteiro é clicável: muita gente clica no cartão, não no link */
.service{
  background:#fff; border:1px solid var(--linha); padding:32px 24px 28px;
  position:relative; display:flex; flex-direction:column;
  transition:transform .25s,border-color .25s,box-shadow .25s;
  color:inherit; text-decoration:none; cursor:pointer;
}
a.service:focus-visible{ outline:2px solid var(--gold); outline-offset:3px; }

/* [S-03] ÁREAS SÓ COM ÍCONE E TÍTULO.
   Sem borda e sem fundo: com uma palavra por card, a moldura pesa mais
   que o conteúdo e a página vira uma grade de caixas vazias. O ícone
   fica maior, porque passa a ser ele quem distingue um do outro, e o
   card inteiro continua clicável. */
.services.enxuto .service{
  background:transparent; border:0; padding:22px 12px;
  align-items:center; text-align:center;
}
.services.enxuto .service:hover{ transform:translateY(-3px); box-shadow:none; }
/* [S-08, 1.29.3-teste] Um pouco maiores, a pedido do Felipe (22/09/2026):
   a caixa do ícone de 72 para 88 px, a letra de 25 para 32 px e o título
   de 16 para 18 px — só aqui, no modo "Só ícone e título" (a página
   inicial); os blocos com descrição continuam como eram. */
.services.enxuto .icon{ width:88px; height:88px; margin-bottom:16px; font-size:32px; }
.services.enxuto .icon img{ width:100%; height:100%; object-fit:contain; }
.services.enxuto h3{ margin:0; font-size:18px; line-height:1.35; }
.service:hover{ transform:translateY(-5px); border-color:var(--gold); box-shadow:0 16px 40px rgba(28,35,33,.09); }
.icon{
  width:54px; height:54px; border:1px solid var(--gold); color:var(--gold);
  display:grid; place-items:center; flex:none;
  font-family:"Cormorant Garamond",Georgia,serif; font-size:25px; margin-bottom:22px;
}
/* ícone em imagem no lugar da letra */
.icon.icon-img{
  border-color:transparent; width:62px; height:62px;
  padding:0; background:transparent;
}
.icon.icon-img img{
  width:100%; height:100%; object-fit:contain;
  transition:transform .35s ease;
}
.service:hover .icon.icon-img img{ transform:scale(1.06); }

.service.com-foto{ padding-top:0; }
.service-foto{
  margin:0 -24px 22px; height:130px; overflow:hidden;
  border-bottom:1px solid var(--linha); background:var(--graphite);
}
.service-foto img{ width:100%; height:100%; object-fit:cover; }
.service.com-foto:hover .service-foto img{ transform:scale(1.04); }
.service-foto img{ transition:transform .5s ease; }

/* quando o hero tem foto, o padrão gráfico sai de cena */
.hero.com-foto:before{ opacity:.05; }

.service .publico{
  font-size:9.5px; letter-spacing:.18em; text-transform:uppercase;
  color:var(--gold); font-weight:700; margin-bottom:6px;
}
.service h3{ font-size:26px; margin:0 0 12px; }
.service p{ color:var(--muted); font-size:13px; line-height:1.75; margin:0; }
.service .num{ position:absolute; right:18px; top:18px; color:#d9d3c6; font-size:11px; letter-spacing:.15em; }
.service.clicavel{ text-decoration:none; color:inherit; display:flex; }
.service.clicavel:focus-visible{ outline:2px solid var(--gold); outline-offset:3px; }
.service .mais{
  margin-top:auto; padding-top:20px; font-size:10.5px; font-weight:700; letter-spacing:.14em;
  text-transform:uppercase; color:var(--gold); display:inline-flex; gap:7px; transition:gap .25s;
  align-self:flex-start;
}
.service:hover .mais{ gap:13px; }
.service .mais{ cursor:pointer; }

/* ---------------- ESCRITÓRIO ---------------- */
.split{ display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:center; }
.split h2{ font-size:clamp(36px,4.6vw,56px); line-height:1.1; margin:10px 0 0; }
.quote{
  border-left:2px solid var(--gold); padding:8px 0 8px 28px; margin-top:22px;
  font-family:"Cormorant Garamond",Georgia,serif; font-size:clamp(21px,2.3vw,28px);
  line-height:1.35; font-style:italic; color:#2a3230;
}
.split-texto{ line-height:1.9; color:#606865; margin:0; }
.pillars{ display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-top:28px; }
.pillar{ padding:22px; background:#f0eee8; }
.pillar strong{
  display:block; font-family:"Cormorant Garamond",Georgia,serif;
  font-size:22px; margin-bottom:6px; font-weight:600;
}
.pillar span{ font-size:12px; color:#6b716e; line-height:1.6; }

/* ---------------- BLOG ---------------- */
.posts{ display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:26px; }
.post{
  background:#fff; border:1px solid var(--linha); padding:30px 26px 26px;
  display:flex; flex-direction:column; transition:border-color .25s,box-shadow .25s;
}
.post:hover{ border-color:var(--gold); box-shadow:0 16px 40px rgba(28,35,33,.08); }
.post .meta{
  display:flex; gap:12px; font-size:10px; font-weight:700;
  letter-spacing:.18em; text-transform:uppercase; color:var(--gold);
}
.post .meta .data{ color:#b3aea2; }
.post h3{ font-size:24px; margin:14px 0 10px; line-height:1.25; }
.post p{ color:var(--muted); font-size:13px; line-height:1.75; margin:0; flex:1; }
.post .ler{
  margin-top:20px; font-size:10.5px; font-weight:700; letter-spacing:.14em;
  text-transform:uppercase; display:inline-flex; gap:7px; transition:gap .25s,color .25s;
}
.post:hover .ler{ gap:13px; color:var(--gold); }
.posts-mais{ text-align:center; margin-top:46px; }

/* ---------------- PARCERIA ---------------- */
.partnership{
  background:#111715; color:#fff; padding:76px 0;
  border-top:1px solid rgba(184,151,86,.18); border-bottom:1px solid rgba(184,151,86,.18);
}
.partnership-grid{ display:grid; grid-template-columns:1.45fr .75fr; gap:70px; align-items:center; }
.partnership .eyebrow{ color:var(--gold); }
.partnership h2{ color:#fff; font-size:clamp(29px,3.5vw,41px); margin:9px 0 14px; line-height:1.15; }
.partnership p{ color:#aeb7b2; max-width:780px; line-height:1.8; margin:0 0 12px; }
.partnership strong{ color:var(--gold-claro); }
.partnership-note{ font-size:13px; color:#7f8984; }
.partnership .btn{ margin-top:17px; color:#fff; border-color:#737b77; }
.partnership .btn:hover{ border-color:var(--gold); color:var(--gold); background:transparent; }
.partnership-mark{ display:flex; align-items:center; justify-content:center; gap:12px; }
.tm-box,.condape-box{
  border:1px solid rgba(184,151,86,.55); min-width:125px; min-height:125px;
  display:flex; flex-direction:column; justify-content:center; align-items:center;
  text-align:center; padding:12px;
}
.tm-box img{ width:70px; }
.condape-box{ color:#ddd6c9; font:600 18px Inter,Arial,sans-serif; letter-spacing:.13em; }
.condape-box span{ margin-top:7px; color:#8f9893; font-size:8px; letter-spacing:.18em; }
.connector{ color:var(--gold); font:400 28px "Cormorant Garamond",Georgia,serif; }

/* ---------------- LP: TEXTO / TÓPICOS / DESTAQUE / FAQ ---------------- */
.lp-texto .container{ max-width:760px; }
.lp-texto p{ font-size:17px; line-height:1.85; color:#3d4744; margin:0; }

.topicos{ display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:1px; background:var(--linha); border:1px solid var(--linha); }
.topico{ background:#fff; padding:28px 26px; }
.topico strong{
  display:block; font-family:"Cormorant Garamond",Georgia,serif;
  font-size:21px; font-weight:600; margin-bottom:9px;
}
.topico span{ color:var(--muted); font-size:13.5px; line-height:1.75; }

.destaque .container{ max-width:820px; text-align:center; }
.destaque h2{ font-size:clamp(28px,3.4vw,40px); margin:0 0 16px; }
.destaque p{ color:#c8cfcb; line-height:1.85; font-size:16px; margin:0; }
.destaque:before{
  content:""; display:block; width:44px; height:1px; background:var(--gold); margin:0 auto 26px;
}

.faq{ max-width:820px; margin:0 auto; }
.faq-item{ border-bottom:1px solid var(--linha); }
.faq-item summary{
  cursor:pointer; padding:22px 40px 22px 0; position:relative; list-style:none;
  font-family:"Cormorant Garamond",Georgia,serif; font-size:21px; font-weight:600; line-height:1.35;
}
.faq-item summary::-webkit-details-marker{ display:none; }
.faq-item summary:after{
  content:"+"; position:absolute; right:6px; top:50%; transform:translateY(-50%);
  color:var(--gold); font-size:24px; font-family:Inter,Arial,sans-serif; font-weight:300;
}
.faq-item[open] summary:after{ content:"−"; }
.faq-item p{ margin:0 0 24px; color:var(--muted); line-height:1.85; font-size:14.5px; padding-right:40px; }

/* ---------------- CONTATO ---------------- */
.contact{ background:var(--graphite); color:#fff; padding:90px 0; position:relative; overflow:hidden; }
/* A marca d'água do bloco de contato. Dizia "T&M" — a sigla do OUTRO
   escritório, escrita direto aqui, onde ninguém tinha como trocar pelo
   painel. */
.contact:after{
  content:"CC"; position:absolute; right:-40px; bottom:-110px;
  font:700 330px/1 "Cormorant Garamond",Georgia,serif; color:rgba(184,151,86,.05); pointer-events:none;
}
.contact .eyebrow{ color:var(--gold); }
.contact h2{ color:#fff; font-size:clamp(32px,4vw,48px); margin:10px 0 16px; line-height:1.12; }
.contact-main{ align-items:start; display:grid; grid-template-columns:1fr .95fr; gap:60px; position:relative; z-index:2; }
.contact-copy p{ color:#cbd0cc; max-width:620px; line-height:1.8; margin:0 0 25px; }
.contact-buttons{ display:flex; gap:12px; flex-wrap:wrap; margin-bottom:30px; }
.contact-buttons .btn.dark{ border-color:#69716d; }

/* formulário */
.form-grid{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.form-campo{ display:flex; flex-direction:column; gap:6px; }
.form-campo.full{ grid-column:1/-1; }
.form-campo .obrig{ color:#a13a2e; }
.form-campo .opcional{ color:var(--muted); font-weight:400; text-transform:none; letter-spacing:0; font-size:11px; }
.form-campo .campo-dica{ display:block; font-size:11.5px; color:var(--muted); margin-top:5px; }
.form-campo label{
  font-size:10px; letter-spacing:.16em; text-transform:uppercase;
  color:var(--gold); font-weight:700;
}
.form-campo input,.form-campo select,.form-campo textarea{
  background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.16);
  color:#fff; padding:13px 14px; font:400 14px Inter,Arial,sans-serif; border-radius:0;
}
.form-campo textarea{ min-height:110px; resize:vertical; }
.form-campo input:focus,.form-campo select:focus,.form-campo textarea:focus{
  border-color:var(--gold); outline:none;
}
.form-campo select option{ background:var(--graphite); color:#fff; }
.form-lgpd{ font-size:11.5px; color:#8b938f; line-height:1.6; margin:14px 0 0; }
.form-lgpd a{ color:var(--gold-claro); text-decoration:underline; }
.form-msg{ margin-top:14px; font-size:13.5px; display:none; padding:12px 14px; }
.form-msg.ok{ display:block; background:rgba(47,107,79,.18); border:1px solid var(--ok); color:#bfe3cf; }
.form-msg.erro{ display:block; background:rgba(161,58,46,.18); border:1px solid var(--erro); color:#f0c3bd; }
.hp{ position:absolute; left:-9999px; opacity:0; height:0; }

/* card de contato lateral */
.contact-info{ background:var(--graphite-esc); border:1px solid rgba(184,151,86,.35); padding:18px; }
.map-real{ height:210px; overflow:hidden; background:#202824; }
.map-real iframe{
  width:100%; height:100%; border:0; display:block;
  filter:grayscale(.35) contrast(1.05) brightness(.92);
}
.map-placeholder{
  height:200px; position:relative; overflow:hidden;
  display:flex; align-items:center; justify-content:center;
  background:
    linear-gradient(25deg,transparent 48%,rgba(184,151,86,.12) 49%,transparent 50%),
    linear-gradient(155deg,transparent 48%,rgba(184,151,86,.12) 49%,transparent 50%),
    #202824;
  background-size:90px 70px;
}
.map-placeholder:before,.map-placeholder:after{
  content:""; position:absolute; width:150%; height:1px; background:rgba(255,255,255,.08);
}
.map-placeholder:before{ transform:rotate(-15deg); }
.map-placeholder:after{ transform:rotate(15deg); }
.map-content{ position:relative; z-index:2; display:flex; align-items:center; gap:12px; }
.map-content strong{ display:block; color:#fff; font-family:"Cormorant Garamond",Georgia,serif; font-size:25px; }
.map-content span{ display:block; color:#89928d; font-size:11px; margin-top:4px; }
.map-pin{ color:var(--gold); font-size:42px; line-height:1; }
.address{ padding:23px 4px 10px; display:flex; flex-direction:column; gap:5px; }
.address-label{
  color:var(--gold); font-size:10px; text-transform:uppercase;
  letter-spacing:.18em; font-weight:700; margin-bottom:4px;
}
.address strong{ color:#fff; font-size:14px; }
.address span{ color:#929b96; font-size:12px; }
.contact-details{
  border-top:1px solid rgba(255,255,255,.08); margin-top:15px; padding-top:18px;
  display:grid; grid-template-columns:1fr 1fr; gap:18px;
}
.contact-details div{ display:flex; flex-direction:column; gap:5px; }
.contact-details small{ color:var(--gold); font-size:9px; text-transform:uppercase; letter-spacing:.14em; font-weight:700; }
.contact-details strong{ color:#d0d5d2; font-size:12px; font-weight:500; }
.contact-details a:hover{ color:var(--gold-claro); }
.map-link{
  display:inline-block; margin:20px 4px 2px; color:var(--gold-claro);
  font-size:11px; text-transform:uppercase; letter-spacing:.12em; font-weight:700;
}
.map-link:hover{ color:#fff; }

/* ---------------- RODAPÉ ---------------- */
footer{ background:#111614; color:#929a96; padding:44px 0 26px; font-size:12px; }

.footer-top{
  display:grid; grid-template-columns:1.5fr 1fr 1fr; gap:40px;
  padding-bottom:30px; border-bottom:1px solid rgba(255,255,255,.08);
}
.footer-top h5{
  color:var(--gold); font-size:10px; letter-spacing:.2em; text-transform:uppercase;
  margin:0 0 14px; font-weight:700;
}
.footer-top ul{ list-style:none; margin:0; padding:0; display:grid; gap:9px; }
.footer-top li a:hover{ color:var(--gold-claro); }
.footer-brand{ display:flex; align-items:center; gap:12px; margin-bottom:16px; }
.footer-brand img{ height:46px; width:auto; }
.footer-brand strong{
  font-family:"Cormorant Garamond",Georgia,serif; font-size:19px;
  letter-spacing:.08em; color:#e6e2d8; display:block;
}
.footer-brand span{ font-size:8.5px; letter-spacing:.2em; color:#7d857f; display:block; }
.footer-oab{ line-height:1.8; margin:0; max-width:42ch; }
.footer-resp{ margin:8px 0 0; color:#767e7a; line-height:1.7; }
.footer-in{
  display:flex; justify-content:space-between; gap:20px; padding-top:22px;
  font-size:11px; letter-spacing:.06em; flex-wrap:wrap;
}
.footer-in a{ text-decoration:underline; text-underline-offset:3px; }

/* ---------------- WHATSAPP FLUTUANTE ---------------- */
.whatsapp-float{
  position:fixed; right:22px; bottom:22px; width:56px; height:56px; border-radius:50%;
  background:#25D366; color:#fff; display:grid; place-items:center; z-index:50;
  box-shadow:0 10px 30px rgba(0,0,0,.25); transition:transform .2s;
}
.whatsapp-float:hover{ transform:scale(1.07); }
.whatsapp-float svg{ width:28px; height:28px; }

/* ---------------- VOLTAR AO TOPO ---------------- */
/* fica acima do WhatsApp, na mesma coluna */
.ir-topo{
  position:fixed; right:22px; bottom:88px; z-index:49;
  width:46px; height:46px; border-radius:50%;
  background:var(--graphite); color:var(--gold-claro);
  /* [S-02] UM ANEL CLARO POR FORA, PARA NÃO SUMIR NO ESCURO.
     O botão é quase preto (#1C2321) com a seta dourada. Sobre um bloco
     de fundo escuro ele encostava na mesma cor e desaparecia: sobrava a
     seta flutuando no meio da tela, sem nada em volta.
     A saída não é trocar a cor — clarear resolveria o fundo escuro e
     quebraria o claro. É um anel claro por fora, que separa o botão do
     que estiver atrás nos dois casos. A borda dourada fica, porque é
     ela que dá o acabamento; o anel vem depois dela, mais largo. */
  border:1px solid rgba(184,151,86,.45);
  display:grid; place-items:center; cursor:pointer;
  box-shadow:0 0 0 2px rgba(255,255,255,.75), 0 8px 24px rgba(0,0,0,.35);
  opacity:0; visibility:hidden; transform:translateY(10px);
  transition:opacity .25s ease, transform .25s ease, visibility .25s, background .2s;
}
.ir-topo.visivel{ opacity:1; visibility:visible; transform:translateY(0); }
.ir-topo:hover{ background:var(--gold); color:#151916; border-color:var(--gold); }
.ir-topo svg{ width:19px; height:19px; }

/* quando o banner de cookies aparece, sobe os dois botões */
body.com-cookies .ir-topo{ bottom:172px; }
body.com-cookies .whatsapp-float{ bottom:106px; }

@media(max-width:560px){
  .ir-topo{ right:18px; bottom:82px; width:42px; height:42px; }
  .whatsapp-float{ right:18px; bottom:18px; }
  body.com-cookies .ir-topo,
  body.com-cookies .whatsapp-float{ bottom:auto; }
  body.com-cookies .ir-topo{ bottom:250px; }
  body.com-cookies .whatsapp-float{ bottom:190px; }
}

/* ---------------- COOKIES ---------------- */
.cookies{
  position:fixed; left:16px; right:16px; bottom:16px; z-index:60;
  background:var(--graphite); color:#e6e2d8; border:1px solid rgba(184,151,86,.4);
  padding:20px 22px; display:none; gap:20px; align-items:center;
  box-shadow:0 20px 50px rgba(0,0,0,.3); max-width:900px; margin:auto;
}
.cookies.mostrar{ display:flex; }
.cookies p{ margin:0; font-size:13px; line-height:1.65; flex:1; }
.cookies p a{ color:var(--gold-claro); text-decoration:underline; }
.cookies-acoes{ display:flex; gap:10px; flex:none; }
.cookies .btn{ padding:11px 18px; font-size:11px; }

/* ---------------- BLOG ---------------- */
.blog-filtros{ display:flex; gap:10px; flex-wrap:wrap; margin-bottom:38px; }
.filtro{
  border:1px solid var(--linha); background:#fff; color:var(--muted);
  padding:9px 18px; font:600 11.5px Inter,Arial,sans-serif;
  letter-spacing:.1em; text-transform:uppercase; cursor:pointer; transition:all .22s;
}
.filtro:hover{ border-color:var(--gold); color:var(--graphite); }
.filtro.ativo{ background:var(--graphite); border-color:var(--graphite); color:var(--gold-claro); }
.post-wrap.escondido{ display:none; }
.blog-vazio{ text-align:center; color:var(--muted); padding:70px 20px; }

.post-foto{ display:block; margin:-30px -26px 20px; height:180px; overflow:hidden; background:var(--graphite); }
.post-foto img{ width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.post:hover .post-foto img{ transform:scale(1.04); }
.post h3 a:hover{ color:#8A7040; }

.post-pagina{ background:#fff; }
.post-capa{
  background:linear-gradient(135deg,#171d1b 0%,#1c2321 55%,#101715 100%);
  color:#fff; padding:110px 0 70px; position:relative; overflow:hidden;
}
.post-capa:before{
  content:""; position:absolute; inset:0; opacity:.1; pointer-events:none;
  background-image:
    linear-gradient(30deg,transparent 49%,#d8d0bd 50%,transparent 51%),
    linear-gradient(150deg,transparent 49%,#d8d0bd 50%,transparent 51%);
  background-size:170px 100px;
}
.post-capa .container{ position:relative; z-index:2; max-width:820px; }
.post-voltar{
  display:inline-block; font-size:11.5px; letter-spacing:.14em; text-transform:uppercase;
  color:#9aa39e; font-weight:600; margin-bottom:26px; transition:color .2s;
}
.post-voltar:hover{ color:var(--gold-claro); }
.post-cat{
  color:var(--gold); font-size:11px; font-weight:700;
  letter-spacing:.22em; text-transform:uppercase; margin:0 0 14px;
}
.post-capa h1{ font-size:clamp(31px,4.4vw,50px); line-height:1.13; margin:0 0 20px; font-weight:600; }
.post-meta{ color:#8f9893; font-size:13px; margin:0; }

.post-imagem{ background:linear-gradient(180deg,#101715 0%,#101715 50%,#fff 50%,#fff 100%); }
.post-imagem .container{ max-width:880px; }
.post-imagem img{ width:100%; max-height:420px; object-fit:cover; }

.post-corpo{ padding:64px 0 80px; }
.post-corpo .container{ max-width:720px; }
.post-resumo{
  font-family:"Cormorant Garamond",Georgia,serif; font-size:22px; line-height:1.55;
  color:#3a4441; font-style:italic; margin:0 0 36px;
  padding-left:24px; border-left:2px solid var(--gold);
}
.post-corpo p{ font-size:16.5px; line-height:1.88; color:#33403c; margin:0 0 22px; }
.post-corpo h2{ font-size:clamp(25px,3vw,33px); margin:46px 0 16px; line-height:1.2; color:var(--graphite); }
.post-corpo h3{ font-size:22px; margin:34px 0 12px; line-height:1.25; }
.post-corpo ul{ margin:0 0 24px; padding-left:22px; }
.post-corpo li{ font-size:16px; line-height:1.85; color:#33403c; margin-bottom:9px; }
.post-corpo a{ color:#8A7040; text-decoration:underline; text-underline-offset:3px; }
.post-corpo a:hover{ color:var(--graphite); }
.post-corpo blockquote{
  margin:34px 0; padding:4px 0 4px 26px; border-left:2px solid var(--gold);
  font-family:"Cormorant Garamond",Georgia,serif; font-style:italic;
  font-size:23px; line-height:1.45; color:#2a3230;
}
.post-corpo figure{ margin:36px 0; }
.post-corpo figure img{ width:100%; }
.post-corpo figcaption{ font-size:12.5px; color:var(--muted); margin-top:10px; text-align:center; line-height:1.6; }
.video-quadro{ position:relative; padding-top:56.25%; background:var(--graphite); }
.video-quadro iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; }
.post-destaque{
  background:var(--cream); border-left:3px solid var(--gold);
  padding:22px 26px; margin:34px 0; font-size:15.5px; line-height:1.8; color:#3a4441;
}
.post-destaque strong{ color:var(--graphite); }
.post-aviso{ margin-top:52px; padding-top:24px; border-top:1px solid var(--linha); }
.post-aviso p{ font-size:13.5px; color:var(--muted); line-height:1.75; margin:0; }

/* ---------------- LP: CHAMADA INTERMEDIÁRIA ---------------- */
.lp-cta{ padding:0; }
.lp-cta .container{ max-width:1000px; }
.lp-cta__caixa{
  display:grid; grid-template-columns:1.5fr auto; gap:36px; align-items:center;
  border:1px solid rgba(184,151,86,.4); padding:36px 40px;
  background:linear-gradient(120deg, rgba(28,35,33,.06), rgba(184,151,86,.07));
  margin:clamp(48px,7vw,80px) 0;
}
.lp-cta.escuro .lp-cta__caixa{
  background:linear-gradient(120deg, rgba(255,255,255,.05), rgba(184,151,86,.09));
}
.lp-cta__caixa h2{
  font-size:clamp(22px,2.6vw,30px); line-height:1.2; margin:0 0 10px;
}
.lp-cta__caixa p{ margin:0; color:var(--muted); font-size:14.5px; line-height:1.7; max-width:52ch; }
.lp-cta.escuro .lp-cta__caixa p{ color:#c2c9c5; }
.lp-cta__acoes{ display:flex; flex-direction:column; gap:10px; }
.lp-cta__acoes .btn{ text-align:center; white-space:nowrap; }

@media(max-width:760px){
  .lp-cta__caixa{ grid-template-columns:1fr; gap:24px; padding:28px 24px; }
  .lp-cta__acoes{ flex-direction:row; flex-wrap:wrap; }
  .lp-cta__acoes .btn{ flex:1; }
}


/* ================= MENU EXPANDIDO ================= */
.mega{
  position:absolute; top:100%; left:50%; transform:translateX(-50%) translateY(10px);
  width:min(760px,92vw); background:#fff; border:1px solid var(--linha);
  box-shadow:0 22px 60px rgba(28,35,33,.16);
  display:grid; grid-template-columns:1.6fr 1fr; gap:0;
  opacity:0; visibility:hidden; transition:.22s ease; z-index:60;
}
.tem-sub:hover .mega,
.tem-sub:focus-within .mega{
  opacity:1; visibility:visible; transform:translateX(-50%) translateY(0);
}
/* faixa invisível que evita o menu fechar ao mover o cursor até ele */
.tem-sub .mega::before{
  content:""; position:absolute; top:-14px; left:0; right:0; height:14px;
}

.mega-areas{
  display:grid; grid-template-columns:1fr 1fr; gap:2px; padding:18px;
}
.mega-areas a{
  display:flex; gap:12px; align-items:center; padding:12px 14px;
  border-radius:4px; text-decoration:none; color:var(--texto);
  transition:background .18s;
}
.mega-areas a:hover{ background:var(--papel); }
.mega-ic{
  width:38px; height:38px; flex:none; display:grid; place-items:center;
  border-radius:6px; background:rgba(184,151,86,.1);
}
.mega-ic img{ width:26px; height:26px; object-fit:contain; }
.mega-ic-letra{
  font-family:"Cormorant Garamond",serif; font-size:19px; color:var(--gold);
}
.mega-txt{ min-width:0; }
.mega-txt b{
  display:block; font-size:13.5px; font-weight:600; line-height:1.35;
}
.mega-txt em{
  display:block; font-style:normal; font-size:11.5px; color:var(--muted);
  margin-top:2px;
}

.mega-lado{
  background:var(--papel); padding:24px 22px; border-left:1px solid var(--linha);
  display:flex; flex-direction:column; gap:10px; justify-content:center;
}
.mega-lado h6{
  font-family:"Cormorant Garamond",serif; font-size:18px; font-weight:600;
}
.mega-lado p{ font-size:12.5px; line-height:1.65; color:var(--muted); }
.mega-lado .btn{ margin-top:6px; text-align:center; }
.mega-todas{
  font-size:11.5px; letter-spacing:.08em; text-transform:uppercase;
  color:var(--gold); font-weight:600; text-decoration:none; margin-top:4px;
}
.mega-todas:hover{ text-decoration:underline; }

@media(max-width:900px){
  .mega{
    position:static; transform:none; width:100%; opacity:1; visibility:visible;
    grid-template-columns:1fr; box-shadow:none; border:0; display:none;
  }
  .tem-sub:hover .mega{ display:grid; transform:none; }
  .mega-areas{ grid-template-columns:1fr; padding:8px 0; }
  .mega-lado{ display:none; }
}

/* ================= REDES SOCIAIS ================= */
.redes-rodape{ display:flex; gap:10px; margin-top:20px; }
.redes-rodape a{
  width:36px; height:36px; border:1px solid rgba(255,255,255,.18);
  border-radius:50%; display:grid; place-items:center; color:#9aa39e;
  transition:color .2s,border-color .2s,background .2s;
}
.redes-rodape a:hover{
  color:var(--gold-claro); border-color:rgba(184,151,86,.55);
  background:rgba(184,151,86,.1);
}
.redes-rodape svg{ width:17px; height:17px; }

.redes-menu{ display:flex; gap:6px; margin-left:14px; }
.redes-menu a{
  width:32px; height:32px; display:grid; place-items:center;
  color:var(--muted); transition:color .2s;
}
.redes-menu a:hover{ color:var(--gold); }
.redes-menu svg{ width:16px; height:16px; }
@media(max-width:1100px){ .redes-menu{ display:none; } }

/* ================= NÚMEROS DO ESCRITÓRIO ================= */
.numeros-grade{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr));
  gap:clamp(24px,4vw,48px); margin-top:clamp(28px,4vw,44px);
}
.numero{ text-align:center; }
.numero .valor{
  font-family:"Cormorant Garamond",serif; font-size:clamp(40px,6vw,62px);
  font-weight:600; line-height:1; color:var(--gold); display:inline-block;
}
.numero .sufixo{
  font-family:"Cormorant Garamond",serif; font-size:clamp(24px,3.4vw,34px);
  color:var(--gold); margin-left:2px;
}
.numero p{
  font-size:13px; color:var(--muted); margin-top:10px; line-height:1.5;
  letter-spacing:.02em;
}
.escuro .numero p{ color:#b6bdb9; }
.numeros-nota{
  text-align:center; font-size:12.5px; color:var(--muted);
  margin-top:clamp(24px,3vw,34px); font-style:italic;
}

/* ================= EQUIPE ================= */
.equipe-grade{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr));
  gap:28px; margin-top:clamp(28px,4vw,44px);
}
.pessoa{
  background:#fff; border:1px solid var(--linha); padding:0 0 28px;
  text-align:center; transition:border-color .25s,transform .25s;
}
.pessoa:hover{ border-color:rgba(184,151,86,.55); transform:translateY(-3px); }
.escuro .pessoa{ background:rgba(255,255,255,.04); border-color:rgba(255,255,255,.12); }
.pessoa-foto{
  width:100%; aspect-ratio:1; overflow:hidden; background:var(--papel);
  display:grid; place-items:center; margin-bottom:22px;
}
.pessoa-foto img{ width:100%; height:100%; object-fit:cover; }
.pessoa-inicial{
  font-family:"Cormorant Garamond",serif; font-size:64px; color:var(--gold); opacity:.5;
}
.pessoa h3{
  font-family:"Cormorant Garamond",serif; font-size:21px; font-weight:600;
  padding:0 22px;
}
.pessoa .cargo{
  font-size:11px; letter-spacing:.16em; text-transform:uppercase;
  color:var(--gold); margin-top:6px; padding:0 22px;
}
.pessoa .oab{ font-size:12px; color:var(--muted); margin-top:5px; padding:0 22px; }
.pessoa .bio{
  font-size:13.5px; line-height:1.7; color:var(--muted);
  margin-top:14px; padding:0 22px;
}
.pessoa .areas-pessoa{
  font-size:12px; color:var(--muted); margin-top:12px; padding:0 22px;
  border-top:1px solid var(--linha); padding-top:14px; margin-left:22px;
  margin-right:22px; padding-left:0; padding-right:0;
}

/* ================= AVALIAÇÕES ================= */
.avaliacoes-grade{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:20px; margin-top:clamp(28px,4vw,44px);
}
.avaliacao{
  background:#fff; border:1px solid var(--linha); padding:26px 24px;
  display:flex; flex-direction:column; margin:0;
}
.escuro .avaliacao{ background:rgba(255,255,255,.04); border-color:rgba(255,255,255,.12); }
.avaliacao .estrelas{ color:var(--gold); letter-spacing:3px; font-size:15px; }
.avaliacao blockquote{
  font-size:14.5px; line-height:1.75; margin:16px 0 auto; color:var(--texto);
}
.escuro .avaliacao blockquote{ color:#dfe3e0; }
.avaliacao figcaption{
  margin-top:20px; padding-top:16px; border-top:1px solid var(--linha);
  font-size:13px;
}
.avaliacao figcaption strong{ display:block; font-weight:600; }
.avaliacao figcaption span{ color:var(--muted); font-size:12px; }
.avaliacoes-rodape{ text-align:center; margin-top:clamp(26px,3.5vw,38px); }

/* ================= SEGMENTOS ================= */
.segmentos-grade{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
  gap:18px; margin-top:clamp(28px,4vw,44px);
}
.segmento{
  background:#fff; border:1px solid var(--linha); padding:28px 22px;
  text-align:center; display:flex; flex-direction:column; align-items:center;
  justify-content:center; gap:12px; min-height:140px;
  transition:border-color .25s;
}
.segmento:hover{ border-color:rgba(184,151,86,.55); }
.escuro .segmento{ background:rgba(255,255,255,.04); border-color:rgba(255,255,255,.12); }
.segmento img{ max-width:130px; max-height:56px; object-fit:contain; }
.segmento-nome{
  font-family:"Cormorant Garamond",serif; font-size:19px; font-weight:600;
}
.segmento p{ font-size:12.5px; line-height:1.6; color:var(--muted); }

/* ================= PÁGINAS DE TEXTO ================= */
.doc{ padding:70px 0 90px; }
.doc .container{ max-width:760px; }
.doc h1{ font-size:clamp(32px,4vw,46px); margin:0 0 8px; }
.doc .atualizado{ color:var(--muted); font-size:13px; margin:0 0 40px; }
.doc h2{ font-size:26px; margin:38px 0 12px; }
.doc p,.doc li{ line-height:1.85; color:#3d4744; font-size:15px; }
.doc ul{ padding-left:20px; }

/* ---------------- RESPONSIVO ---------------- */
@media(max-width:900px){
  .menu{ display:none; }
  .menu-btn{ display:block; }
  .hero{ grid-template-columns:1fr; padding:30px 0 60px; }
  .hero-copy{ padding:50px 0 6px; }
  .split,.contact-main,.partnership-grid,.footer-top{ grid-template-columns:1fr; gap:42px; }
  .partnership-mark{ justify-content:flex-start; }
  .section{ padding:66px 0; }
  .lp-hero{ padding:80px 0 66px; }
}
@media(max-width:560px){
  .services,.pillars,.contact-details,.form-grid,.topicos{ grid-template-columns:1fr; }
  .logo-card{ width:100%; }
  .footer-in{ flex-direction:column; }
  .partnership-mark{ justify-content:center; }
  .cookies{ flex-direction:column; align-items:stretch; }
  .cookies-acoes .btn{ flex:1; text-align:center; }
  .contact:after{ font-size:200px; }
}
@media(prefers-reduced-motion:reduce){
  *{ transition-duration:.01ms !important; animation-duration:.01ms !important; }
  html{ scroll-behavior:auto; }
}
