/* Carneiro Neto Advocacia, folha de estilos do site (V6, 31/10/2026)
   Design da proposta "Homepage Redesign" (conceito 01): azul-marinho, dourado e creme; Lora nos títulos,
   Poppins no texto. Logótipo bordado ao fundo do hero, com opacidade, fotografias de Portugal e de Espanha
   sem texto por cima (V6.1), etapas 01 a 04 em dourado, áreas com ícones de traço, texturas de
   papel, veludo e mármore nos fundos, banda azul-marinho de título nas páginas interiores. */

@font-face { font-family: "Lora"; src: url("../fonts/lora-400.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "Lora"; src: url("../fonts/lora-500.woff2") format("woff2"); font-weight: 500; font-style: normal; font-display: swap; }
@font-face { font-family: "Lora"; src: url("../fonts/lora-400-italico.woff2") format("woff2"); font-weight: 400; font-style: italic; font-display: swap; }
@font-face { font-family: "Poppins"; src: url("../fonts/poppins-300.woff2") format("woff2"); font-weight: 300; font-style: normal; font-display: swap; }
@font-face { font-family: "Poppins"; src: url("../fonts/poppins-400.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "Poppins"; src: url("../fonts/poppins-500.woff2") format("woff2"); font-weight: 500; font-style: normal; font-display: swap; }
@font-face { font-family: "Poppins"; src: url("../fonts/poppins-600.woff2") format("woff2"); font-weight: 600; font-style: normal; font-display: swap; }

:root {
  --marinho: #031026;        /* azul-marinho profundo da proposta */
  --marinho-2: #0A1C3A;      /* superfícies sobre o marinho */
  --marinho-3: #06142E;      /* cartões sobre o marinho */
  --tinta: #1A2233;
  --grafite: #5C6475;
  --ouro: #C6AA69;           /* dourado sobre o marinho */
  --ouro-2: #BA9952;         /* réguas, filetes e números das etapas */
  --ouro-3: #A98031;         /* títulos em itálico sobre fundo claro */
  --ouro-texto: #7E5D1E;     /* texto pequeno dourado sobre fundo claro (contraste 5,6:1) */
  --creme: #F1EADB;
  --creme-2: #EFE5D1;
  --linha: #E6DCC7;
  --papel: #FAF7F1;
  --branco: #FFFFFF;
  --nevoa: #C9CFDB;          /* texto sobre o marinho */
  --nevoa-2: #9AA3B5;        /* texto secundário sobre o marinho */
  --linha-escura: rgba(198, 170, 105, 0.26);
  --linha-escura-2: rgba(198, 170, 105, 0.12);
  --serif: "Lora", Georgia, "Times New Roman", serif;
  --sans: "Poppins", "Helvetica Neue", Arial, sans-serif;
  --caixa: 1180px;
  --margem: clamp(20px, 4vw, 40px);
  --cab: 76px;
  --raio: 4px;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: 96px; }
body {
  margin: 0;
  background: var(--papel);
  color: var(--tinta);
  font-family: var(--sans);
  font-size: 1rem;
  line-height: 1.75;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}
img, video { display: block; max-width: 100%; height: auto; }
a { color: var(--ouro-texto); text-decoration-thickness: 1px; text-underline-offset: 0.2em; }
a:hover { color: var(--tinta); }
:focus-visible { outline: 2px solid var(--ouro-3); outline-offset: 3px; border-radius: 2px; }
.escuro :focus-visible, .cabecalho :focus-visible, .rodape :focus-visible, .hero :focus-visible, .banda :focus-visible { outline-color: var(--ouro); }
h1, h2, h3, h4 { font-family: var(--serif); font-weight: 400; line-height: 1.16; letter-spacing: -0.01em; margin: 0; text-wrap: balance; color: var(--tinta); }
h1 em, h2 em, h3 em { font-style: italic; color: var(--ouro-3); }
p { margin: 0 0 1em; }
b, strong { font-weight: 600; }
button { font: inherit; }
.salto { position: absolute; left: -9999px; top: 0; background: var(--ouro); color: var(--marinho); padding: 10px 16px; font-family: var(--sans); z-index: 100; }
.salto:focus { left: 12px; top: 12px; }
.caixa { max-width: var(--caixa); margin: 0 auto; padding: 0 var(--margem); }
.vh { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* Rótulo em maiúsculas espaçadas, dourado (os "O ESCRITÓRIO", "ÁREAS DE ATUAÇÃO" da proposta) */
.rotulo { font-family: var(--sans); font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.24em; text-transform: uppercase; color: var(--ouro-texto); margin: 0 0 16px; line-height: 1.5; }
.escuro .rotulo, .hero .rotulo, .banda .rotulo { color: var(--ouro); }

/* Superfícies escuras */
.escuro { background: var(--marinho); color: var(--nevoa); }
.escuro h1, .escuro h2, .escuro h3 { color: var(--branco); }
.escuro h1 em, .escuro h2 em, .escuro h3 em { color: var(--ouro); }
.escuro a { color: var(--ouro); }
.escuro a:hover { color: var(--branco); }
/* Texturas da proposta (papel creme, veludo e mármore azul-marinho) */
.sec-papel { background: var(--creme) url("../img/fundos/papel.webp") center / cover no-repeat; }
.sec-veludo { background: var(--marinho) url("../img/fundos/veludo.webp") center / cover no-repeat; }
.sec-marmore { background: linear-gradient(rgba(3, 16, 38, 0.84), rgba(3, 16, 38, 0.9)), url("../img/fundos/marmore.webp") center / cover no-repeat var(--marinho); }

/* Cabeçalho e menu */
.cabecalho { position: sticky; top: 0; z-index: 50; background: var(--marinho); color: var(--nevoa); border-bottom: 1px solid var(--linha-escura); }
.cab-linha { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: var(--cab); }
.marca { display: inline-flex; align-items: center; flex: none; line-height: 0; }
.marca img { height: 44px; width: auto; }
.nav { display: flex; align-items: center; gap: 8px; font-family: var(--sans); font-size: 0.8125rem; font-weight: 500; }
.nav-lista { display: flex; align-items: center; gap: 2px; list-style: none; margin: 0; padding: 0; }
.nav-lista > li > a { display: inline-flex; align-items: center; gap: 7px; color: var(--nevoa); text-decoration: none; padding: 10px 11px; border-radius: var(--raio); cursor: pointer; white-space: nowrap; }
@media (min-width: 1121px) and (max-width: 1260px) {
  .marca img { height: 38px; }
  .nav { font-size: 0.78rem; }
  .nav-lista > li > a { padding: 10px 8px; }
  .nav-cta { padding: 10px 12px; }
}
.nav-lista > li > a:hover { color: var(--branco); }
.nav-lista > li > a[aria-current="page"], .nav-sub-btn.ativo { color: var(--ouro); }
.chev { width: 11px; height: 11px; flex: none; transition: transform .2s; }
.nav-sub-btn[aria-expanded="true"] .chev { transform: rotate(180deg); }
.nav-sub-btn[aria-expanded="true"] { color: var(--branco); }
.nav-cta { margin-left: 12px; border: 1px solid var(--ouro); color: var(--ouro); padding: 11px 18px; border-radius: 2px; text-decoration: none; white-space: nowrap; font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; }
.nav-cta:hover, .nav-cta[aria-current="page"] { background: var(--ouro); color: var(--marinho); }
/* Botão do menu do celular: três traços dourados que viram um X */
.menu-btn { display: none; position: relative; width: 44px; height: 44px; padding: 0; background: none; border: 0; border-radius: var(--raio); cursor: pointer; color: var(--ouro); }
.menu-icone { position: absolute; inset: 0; display: block; }
.menu-icone i { position: absolute; left: 10px; right: 10px; height: 1.5px; background: currentColor; border-radius: 1px; transition: transform .25s, opacity .2s, top .25s; }
.menu-icone i:nth-child(1) { top: 14px; }
.menu-icone i:nth-child(2) { top: 21px; }
.menu-icone i:nth-child(3) { top: 28px; }
.menu-btn[aria-expanded="true"] .menu-icone i:nth-child(1) { top: 21px; transform: rotate(45deg); }
.menu-btn[aria-expanded="true"] .menu-icone i:nth-child(2) { opacity: 0; }
.menu-btn[aria-expanded="true"] .menu-icone i:nth-child(3) { top: 21px; transform: rotate(-45deg); }
.nav .sub { display: none; position: absolute; top: 100%; left: 0; right: 0; background: var(--marinho); border-top: 1px solid var(--linha-escura); border-bottom: 1px solid var(--ouro-2); }
.nav .sub.aberto { display: block; }
.sub-grelha { max-width: var(--caixa); margin: 0 auto; padding: 36px var(--margem) 44px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)) minmax(0, 0.85fr); gap: clamp(32px, 4vw, 64px); }
.sub-pais { font-family: var(--serif); font-size: 1.625rem; font-weight: 400; color: var(--branco); margin: 0; padding-bottom: 14px; border-bottom: 1px solid var(--linha-escura); }
.sub ul { list-style: none; margin: 0; padding: 0; }
.sub ul a { display: flex; align-items: center; gap: 12px; padding: 10px 0; color: var(--nevoa); text-decoration: none; font-size: 0.9375rem; font-weight: 400; line-height: 1.4; border-bottom: 1px solid var(--linha-escura-2); }
.sub ul a .ico { width: 22px; height: 22px; flex: none; color: var(--ouro); }
.sub ul a:hover, .sub ul a[aria-current="page"] { color: var(--ouro); }
.sub-nota { padding-top: 4px; }
.sub-nota p { font-size: 0.9375rem; font-weight: 400; line-height: 1.65; color: var(--nevoa-2); margin: 0 0 18px; }
.sub-ligacoes { display: flex; flex-direction: column; gap: 12px; }
.sub-ligacoes a { font-size: 0.875rem; font-weight: 600; color: var(--branco); text-decoration: underline; text-decoration-color: var(--ouro); text-underline-offset: 0.35em; }
.sub-ligacoes a:hover { color: var(--ouro); }
.cab-sair { font-family: var(--sans); font-size: 0.875rem; font-weight: 500; color: var(--nevoa); text-decoration: underline; text-decoration-color: var(--ouro); text-underline-offset: 0.35em; }
.cab-sair:hover { color: var(--ouro); }

/* Botões: dourado cheio com texto azul-marinho, e contorno dourado com texto branco */
.botoes { display: flex; flex-wrap: wrap; gap: 14px; }
.btn { display: inline-flex; align-items: center; justify-content: center; min-height: 50px; padding: 13px 26px; border-radius: 2px; font-family: var(--sans); font-size: 0.75rem; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; text-decoration: none; line-height: 1.3; text-align: center; border: 1px solid transparent; cursor: pointer; transition: background .15s, color .15s, border-color .15s; }
.btn-ouro, .escuro .btn-ouro { background: linear-gradient(90deg, #B08736, #D2B877); color: var(--marinho); border-color: transparent; }
.btn-ouro:hover, .escuro .btn-ouro:hover { background: var(--ouro); color: var(--marinho); }
.btn-contorno, .escuro .btn-contorno { background: transparent; border-color: rgba(198, 170, 105, 0.75); color: var(--branco); }
.btn-contorno:hover, .escuro .btn-contorno:hover { border-color: var(--ouro); color: var(--ouro); }
.btn-tinta { background: var(--marinho); color: var(--branco); }
.btn-tinta:hover { background: var(--marinho-2); color: var(--ouro); }

/* Secções */
.sec { padding: clamp(64px, 8vw, 104px) 0; }
.sec-creme { background: var(--creme); }
.sec-branco { background: var(--branco); }
.sec-titulo { font-size: clamp(2rem, 3.4vw, 2.625rem); max-width: 22ch; }
.sec-intro { font-size: 0.9375rem; color: var(--grafite); max-width: 36em; margin: 0; line-height: 1.75; }
.escuro .sec-intro { color: var(--nevoa-2); }
/* Cabeçalho de secção da proposta: título, introdução e ligação alinhados na mesma linha */
.sec-cab { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr) auto; align-items: end; gap: 24px clamp(32px, 4vw, 64px); margin-bottom: clamp(36px, 4vw, 52px); }
.sec-cab .sec-intro { padding-bottom: 4px; }
.sec-cab .ligacao-forte { justify-self: end; margin-bottom: 8px; }
.ligacao-forte { display: inline-flex; align-items: center; gap: 10px; font-family: var(--sans); font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--ouro-texto); text-decoration: none; padding-bottom: 6px; border-bottom: 1px solid var(--ouro-2); white-space: nowrap; }
.ligacao-forte .seta { width: 15px; height: 10px; flex: none; transition: transform .2s; }
.ligacao-forte:hover { color: var(--tinta); }
.ligacao-forte:hover .seta { transform: translateX(3px); }
.escuro .ligacao-forte, .hero .ligacao-forte { color: var(--ouro); border-bottom-color: var(--ouro-2); }
.escuro .ligacao-forte:hover { color: var(--branco); }
.relacionados { display: flex; flex-wrap: wrap; gap: 14px 32px; margin-top: 8px; }

/* Hero da página inicial: o logótipo bordado literalmente atrás da copy, com opacidade (conceito 01) */
.hero { position: relative; background: var(--marinho); color: var(--nevoa); overflow: hidden; isolation: isolate; }
.hero-bordado { position: absolute; top: 0; left: 0; bottom: 0; width: 100%; margin: 0; z-index: 0; }
.hero-bordado picture, .hero-bordado img { width: 100%; height: 100%; }
.hero-bordado img { object-fit: cover; object-position: 50% 50%; opacity: 0.42; -webkit-mask-image: radial-gradient(ellipse 50% 80% at 50% 50%, #000 32%, transparent 80%); mask-image: radial-gradient(ellipse 50% 80% at 50% 50%, #000 32%, transparent 80%); }
.hero-moldura { display: grid; grid-template-columns: minmax(0, 52fr) minmax(0, 48fr); min-height: min(78vh, 700px); padding-top: clamp(56px, 7vw, 96px); padding-bottom: clamp(48px, 6vw, 80px); align-content: center; }
.hero-texto { position: relative; z-index: 1; max-width: 34rem; grid-column: 1; }
.hero .cred { position: relative; z-index: 1; grid-column: 1; }
.hero h1 { font-size: clamp(2.5rem, 4.3vw, 3.75rem); line-height: 1.08; letter-spacing: -0.02em; color: var(--branco); max-width: 13em; text-shadow: 0 2px 24px rgba(3, 16, 38, 0.6); }
.hero h1 em { color: var(--ouro); }
.hero-lead { font-size: clamp(1rem, 1.3vw, 1.125rem); font-weight: 300; color: var(--nevoa); max-width: 30em; margin: 26px 0 32px; line-height: 1.65; text-shadow: 0 1px 14px rgba(3, 16, 38, 0.7); }
.hero .rotulo { margin-bottom: 20px; }

/* Inscrições profissionais (Portugal, Espanha, Brasil) */
.cred { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 44px 0 0; padding-top: 22px; border-top: 1px solid var(--linha-escura); font-family: var(--sans); max-width: 40rem; }
.cred > div { padding: 0 16px 0 0; }
.cred > div + div { padding-left: 18px; border-left: 1px solid var(--linha-escura); }
.cred dt { color: var(--ouro); font-weight: 600; font-size: 0.625rem; letter-spacing: 0.24em; text-transform: uppercase; margin-bottom: 8px; }
.cred dd { margin: 0; color: var(--nevoa); font-size: 0.75rem; line-height: 1.5; }
.cred .cred-num { color: var(--nevoa-2); margin-top: 2px; }
.cred-claro { border-top-color: var(--linha); margin: 32px 0 28px; max-width: none; }
.cred-claro > div + div { border-left-color: var(--linha); }
.cred-claro dt { color: var(--ouro-texto); }
.cred-claro dd { color: var(--tinta); }
.cred-claro .cred-num { color: var(--grafite); }

/* Página inicial: o escritório, com a placa do logótipo a sangrar à direita, e as etapas 01 a 04 */
.esc { padding-top: 0; }
.esc-topo { display: grid; grid-template-columns: minmax(0, 1fr) clamp(260px, 30vw, 440px); }
.esc-conteudo { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(28px, 5vw, 72px); align-items: start; padding: clamp(48px, 6vw, 80px) clamp(28px, 4vw, 64px) clamp(40px, 5vw, 64px) max(var(--margem), calc((100vw - var(--caixa)) / 2 + var(--margem))); }
.esc-tit .sec-titulo::after { content: ""; display: block; width: 56px; height: 2px; background: var(--ouro-2); margin-top: 24px; }
.esc-texto { max-width: 36rem; padding-top: 6px; }
.esc-texto p { color: var(--grafite); font-size: 0.9375rem; }
.esc-texto .relacionados { margin-top: 18px; }
.esc-placa { position: relative; margin: 0; min-height: 100%; }
.esc-placa picture, .esc-placa img { width: 100%; height: 100%; }
.esc-placa img { object-fit: cover; object-position: 40% 50%; }
.etapas { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; border-top: 1px solid var(--linha); }
.etapas li { padding: 30px 24px 8px 0; }
.etapas li + li { padding-left: 24px; border-left: 1px solid var(--linha); }
.etapa-num { display: block; font-family: var(--serif); font-size: 2.875rem; line-height: 1; color: var(--ouro-2); margin-bottom: 20px; font-variant-numeric: lining-nums; }
.etapas b { display: block; font-family: var(--serif); font-weight: 400; font-size: 1.25rem; line-height: 1.3; margin-bottom: 8px; }
.etapas span:not(.etapa-num) { display: block; color: var(--grafite); font-size: 0.875rem; line-height: 1.65; }

/* Áreas por país com ícones (página inicial e página das áreas) */
.paises { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(32px, 5vw, 72px); }
.pais-foto { margin: 0 0 22px; }
.pais-foto img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 3px; }
.servico-foto { margin: clamp(28px, 3.4vw, 40px) 0 clamp(8px, 1vw, 12px); }
.servico-foto img { width: 100%; aspect-ratio: 2 / 1; object-fit: cover; border-radius: 3px; }
.pais-nome { font-family: var(--sans); font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.24em; text-transform: uppercase; color: var(--ouro-texto); padding-bottom: 12px; border-bottom: 1px solid var(--ouro-2); }
.servicos-lista { list-style: none; margin: 0; padding: 0; }
.servicos-lista a { display: grid; grid-template-columns: 44px minmax(0, 1fr) auto; align-items: start; gap: 0 18px; padding: 20px 0 19px; border-bottom: 1px solid #DCCFB4; color: var(--tinta); text-decoration: none; }
.sv-ico { display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; color: var(--ouro-3); }
.sv-ico .ico { width: 34px; height: 34px; }
.sv-nome { display: block; font-family: var(--serif); font-size: 1.1875rem; line-height: 1.3; }
.sv-desc { display: block; font-family: var(--sans); font-size: 0.8125rem; line-height: 1.6; color: var(--grafite); margin-top: 4px; max-width: 32em; }
.chev-lista { display: none; width: 14px; height: 14px; color: var(--ouro-3); align-self: center; }
.servicos-lista a:hover .sv-nome { color: var(--ouro-texto); }
.servicos-lista a:hover .sv-ico { color: var(--ouro-texto); }
.hub-paises { padding: clamp(40px, 5vw, 64px) 0 clamp(40px, 5vw, 64px); }
.hub-paises .pais-nome { font-family: var(--serif); font-size: clamp(1.75rem, 3vw, 2.25rem); font-weight: 400; letter-spacing: -0.01em; text-transform: none; color: var(--tinta); padding-bottom: 14px; border-bottom: 1px solid var(--ouro-2); }
.hub-paises .servicos-lista a { border-bottom-color: var(--linha); }
.pais-destaque { margin-top: 24px; padding: 18px 20px; background: rgba(255, 255, 255, 0.6); border-left: 3px solid var(--ouro-2); border-radius: 0 var(--raio) var(--raio) 0; }
.pais-destaque p { margin: 0; }
.pais-destaque .pd-tit { font-family: var(--serif); font-size: 1.125rem; line-height: 1.35; }
.pais-destaque .pd-tit a { color: var(--tinta); text-decoration: none; }
.pais-destaque .pd-tit a:hover { color: var(--ouro-texto); text-decoration: underline; text-decoration-thickness: 1px; }
.pais-destaque .pd-meta { font-size: 0.8125rem; color: var(--grafite); margin-top: 6px; line-height: 1.6; }
.hub-paises .pais { scroll-margin-top: 108px; }

/* Equipe (retratos em fila) */
.retratos { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: clamp(12px, 2vw, 24px); }
.retratos figure { margin: 0 0 14px; }
.retratos img, .retratos .monograma { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 3px; }
.retratos a { color: var(--tinta); text-decoration: none; }
.retratos a:hover b { color: var(--ouro-texto); }
.retratos b { display: block; font-family: var(--serif); font-weight: 400; font-size: 1.0625rem; line-height: 1.3; }
.retratos span { display: block; font-size: 0.75rem; color: var(--grafite); line-height: 1.55; margin-top: 4px; }
.monograma { display: flex; align-items: center; justify-content: center; background: var(--creme); color: var(--ouro-3); font-family: var(--serif); font-size: clamp(1.75rem, 3vw, 2.25rem); }

/* Depoimentos (sobre o veludo azul-marinho na página inicial; sobre papel na página própria) */
.videos { display: grid; grid-template-columns: repeat(4, minmax(0, 250px)); gap: clamp(16px, 2.4vw, 28px); margin-bottom: 56px; }
.depo-topo { display: grid; grid-template-columns: minmax(0, 0.95fr) minmax(0, 2.05fr); gap: clamp(32px, 5vw, 72px); align-items: end; margin-bottom: 48px; }
.depo-topo .videos { grid-template-columns: repeat(3, minmax(0, 1fr)); margin-bottom: 0; }
.depo-topo .sec-intro { margin-top: 20px; }
.depo-topo .relacionados { margin-top: 28px; }
.video figure { margin: 0; }
.video-quadro { position: relative; }
.video video { width: 100%; aspect-ratio: 9 / 16; object-fit: cover; background: var(--marinho); border-radius: 3px; }
.video-play { position: absolute; inset: 0; margin: auto; width: 68px; height: 68px; border-radius: 50%; border: 1px solid var(--ouro); background: rgba(3, 16, 38, 0.66); color: var(--ouro); display: flex; align-items: center; justify-content: center; cursor: pointer; transition: background .15s, transform .15s; }
.video-play:hover { background: rgba(3, 16, 38, 0.88); transform: scale(1.04); }
.video-play svg { width: 22px; height: 22px; margin-left: 4px; }
.video-quadro.a-tocar .video-play { display: none; }
.video figcaption { font-size: 0.8125rem; color: var(--grafite); margin-top: 10px; }
.escuro .video figcaption { color: var(--nevoa-2); }
.avaliacoes { columns: 3 300px; column-gap: 24px; }
.avaliacoes-home { columns: auto; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; align-items: start; }
.avaliacao { break-inside: avoid; margin: 0 0 24px; padding: 26px 26px 22px; background: var(--branco); border-radius: 3px; border-top: 2px solid var(--ouro-2); }
.avaliacoes-home .avaliacao { margin: 0; }
.avaliacao blockquote { margin: 0 0 20px; font-family: var(--serif); font-size: 1.0625rem; line-height: 1.65; color: var(--tinta); }
.avaliacao blockquote p { margin: 0; }
.avaliacao footer { display: flex; align-items: center; gap: 12px; }
.avaliacao .av { width: 40px; height: 40px; border-radius: 50%; flex: none; object-fit: cover; }
.av-inicial { width: 40px; height: 40px; border-radius: 50%; flex: none; display: inline-flex; align-items: center; justify-content: center; background: var(--creme); color: var(--ouro-texto); font-family: var(--serif); font-size: 0.95rem; }
.avaliacao .quem { line-height: 1.35; }
.avaliacao .quem b { display: block; font-size: 0.875rem; font-weight: 600; }
.avaliacao .quem span { font-size: 0.75rem; color: var(--grafite); display: inline-flex; align-items: center; gap: 6px; }
.estrelas { width: 64px; height: 12px; color: var(--ouro-2); }
.tema { display: block; font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; color: var(--ouro-texto); margin-bottom: 12px; }
.av-original { display: inline-block; margin-top: 16px; font-size: 0.75rem; font-weight: 500; color: var(--ouro-texto); text-decoration: underline; text-underline-offset: 3px; }
.av-original:hover { color: var(--tinta); }
/* Sobre o veludo: cartões translúcidos, texto claro */
.escuro .avaliacao { background: rgba(255, 255, 255, 0.05); border-top-color: var(--ouro-2); backdrop-filter: blur(2px); }
.escuro .avaliacao blockquote { color: #E8ECF3; }
.escuro .avaliacao .quem b { color: var(--branco); }
.escuro .avaliacao .quem span { color: var(--nevoa-2); }
.escuro .av-inicial { background: var(--marinho-2); color: var(--ouro); }
.escuro .tema { color: var(--ouro); }
.escuro .av-original { color: var(--ouro); }
.escuro .av-original:hover { color: var(--branco); }
dialog.captura { width: min(92vw, 680px); max-width: none; max-height: 90vh; padding: 56px 16px 16px; border: 0; border-radius: var(--raio); background: var(--branco); box-sizing: border-box; overflow: auto; }
dialog.captura::backdrop { background: rgba(3, 16, 38, 0.82); }
dialog.captura img { display: block; width: 100%; height: auto; border-radius: 2px; }
.captura-fechar { position: absolute; top: 10px; right: 12px; padding: 8px 14px; border: 1px solid var(--linha); border-radius: var(--raio); background: none; font-family: var(--sans); font-size: 0.8125rem; font-weight: 500; color: var(--tinta); cursor: pointer; }
.nota-fonte { font-size: 0.8125rem; color: var(--grafite); margin-top: 8px; }

/* Artigos */
.artigos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(20px, 2.5vw, 32px); }
.artigo-cartao { background: var(--branco); border-top: 2px solid var(--ouro-2); padding: 26px 26px 22px; display: flex; flex-direction: column; border-radius: 3px; }
.artigo-cartao h3 { font-size: 1.3125rem; margin-bottom: 12px; line-height: 1.3; }
.artigo-cartao h3 a { color: var(--tinta); text-decoration: none; }
.artigo-cartao h3 a:hover { color: var(--ouro-texto); }
.artigo-cartao p { color: var(--grafite); font-size: 0.875rem; }
.meta, .artigo-cartao .meta { font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ouro-texto); margin-top: auto; margin-bottom: 0; padding-top: 14px; }
.blog-lista .artigo-cartao { padding-bottom: 22px; }

/* Faixa de contatos */
.faixa { position: relative; overflow: hidden; padding: clamp(64px, 8vw, 104px) 0; border-top: 1px solid var(--linha-escura); }
.faixa::after { content: ""; position: absolute; left: -5%; bottom: -30%; width: min(40vw, 460px); aspect-ratio: 478 / 496; background: url("../img/marca/monograma.svg") no-repeat center / contain; opacity: 0.05; pointer-events: none; }
.faixa-grelha { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(32px, 6vw, 88px); }
.faixa h2 { font-size: clamp(2rem, 3.4vw, 2.625rem); margin-bottom: 16px; }
.faixa p { color: var(--nevoa-2); }
.faixa-botao { margin-top: 28px; }
.contatos-lista { list-style: none; padding: 0; margin: 0; }
.contatos-lista li { display: grid; grid-template-columns: 8.5rem 1fr; gap: 16px; align-items: baseline; padding: 16px 0; border-top: 1px solid var(--linha-escura); }
.contatos-lista li:last-child { border-bottom: 1px solid var(--linha-escura); }
.contatos-lista .rotulo-c { font-size: 0.625rem; font-weight: 600; letter-spacing: 0.22em; text-transform: uppercase; color: var(--ouro); }
.contatos-lista .valor { font-family: var(--serif); font-size: clamp(1.25rem, 2.2vw, 1.5rem); color: var(--branco); text-decoration: none; overflow-wrap: anywhere; }
.contatos-lista a.valor:hover { color: var(--ouro); }
.contatos-lista .extra { display: block; font-size: 0.8125rem; color: var(--nevoa-2); margin-top: 4px; }
.contatos-lista .extra a { color: var(--ouro); }
.claro .contatos-lista li, .mc-contatos li { border-color: var(--linha); }
.claro .contatos-lista .rotulo-c, .mc-contatos .rotulo-c { color: var(--ouro-texto); }
.claro .contatos-lista .valor, .mc-contatos .valor { color: var(--tinta); }
.claro .contatos-lista a.valor:hover { color: var(--ouro-texto); }
.claro .contatos-lista .extra, .mc-contatos .extra { color: var(--grafite); }
.claro .contatos-lista .extra a, .mc-contatos .extra a { color: var(--ouro-texto); }

/* Rodapé */
.rodape { background: #020B1C; color: var(--nevoa-2); font-size: 0.875rem; padding: 72px 0 40px; border-top: 1px solid var(--ouro-2); }
.rodape a { color: var(--nevoa); text-decoration: none; }
.rodape a:hover { color: var(--ouro); text-decoration: underline; }
.rod-grelha { display: grid; grid-template-columns: minmax(0, 3.4fr) repeat(4, minmax(0, 2.4fr)); gap: 32px; }
.rodape li { overflow-wrap: anywhere; }
.rod-marca img { width: 190px; height: auto; }
.rod-marca p { margin-top: 22px; max-width: 22rem; line-height: 1.7; }
.rodape h2 { font-family: var(--sans); font-size: 0.625rem; font-weight: 600; letter-spacing: 0.24em; text-transform: uppercase; color: var(--ouro); margin-bottom: 16px; }
.rodape ul { list-style: none; padding: 0; margin: 0; }
.rodape li { margin-bottom: 9px; line-height: 1.45; }
.rod-base { margin-top: 56px; padding-top: 22px; border-top: 1px solid var(--linha-escura); display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px 24px; font-size: 0.8125rem; }
.rod-assinatura { font-size: 0.625rem; font-weight: 600; letter-spacing: 0.24em; text-transform: uppercase; color: var(--ouro); }

/* Páginas interiores: banda azul-marinho de título, com as linhas do logótipo à direita */
.banda { position: relative; overflow: hidden; background: var(--marinho); color: var(--nevoa); padding: clamp(36px, 5vw, 64px) 0 clamp(40px, 5vw, 64px); border-bottom: 1px solid var(--linha-escura); }
.banda::after { content: ""; position: absolute; top: -8%; right: 0; bottom: -8%; width: min(54vw, 720px); background: url("../img/fundos/linhas.webp") right center / cover no-repeat; opacity: 0.9; pointer-events: none; -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 45%); mask-image: linear-gradient(90deg, transparent 0, #000 45%); }
.banda .caixa { position: relative; z-index: 1; }
.banda h1 { font-size: clamp(2.125rem, 4vw, 3.125rem); max-width: 20ch; line-height: 1.1; color: var(--branco); }
.banda .lead { font-size: clamp(1rem, 1.3vw, 1.125rem); font-weight: 300; color: var(--nevoa); max-width: 40em; margin: 22px 0 0; line-height: 1.65; }
.banda-artigo h1 { max-width: 24ch; }
.banda .artigo-meta { color: var(--ouro); }
.migalhas { font-size: 0.75rem; color: var(--nevoa-2); margin-bottom: 26px; }
.migalhas ol { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.migalhas li + li::before { content: "/"; margin-right: 6px; color: var(--ouro-2); }
.migalhas a { color: var(--nevoa-2); text-decoration: none; }
.migalhas a:hover { color: var(--ouro); }
.migalhas [aria-current="page"] { color: var(--nevoa); }
.duas-col { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: clamp(28px, 5vw, 80px); padding: clamp(40px, 5vw, 64px) 0; border-top: 1px solid var(--linha); }
.duas-col.sem-linha { border-top: 0; }
.duas-col h2 { font-size: clamp(1.625rem, 2.6vw, 2.0625rem); }
.texto { max-width: 42rem; overflow-wrap: break-word; }
.texto .forte { font-family: var(--serif); font-size: 1.375rem; line-height: 1.5; color: var(--tinta); }
.texto h3 { font-size: 1.3125rem; margin: 1.6em 0 0.5em; }
.texto h3:first-child { margin-top: 0; }
.texto ul, .texto ol { padding-left: 1.2em; margin: 0 0 1em; }
.texto li { margin-bottom: 0.45em; }
.texto li::marker { color: var(--ouro-2); }
.lista-servicos { list-style: none; padding: 0 !important; margin: 0; }
.lista-servicos li { padding: 16px 0; border-bottom: 1px solid var(--linha); margin: 0 !important; }
.lista-servicos li:first-child { padding-top: 0; }
.lista-servicos li:last-child { border-bottom: 0; padding-bottom: 0; }
.lista-servicos b { display: block; font-family: var(--serif); font-weight: 400; font-size: 1.1875rem; margin-bottom: 4px; }
.lista-servicos span { display: block; color: var(--grafite); }
.aviso-legal { font-size: 0.8125rem; color: var(--grafite); border-top: 1px solid var(--linha); padding-top: 16px; margin-top: 32px; line-height: 1.65; }

/* Página de cada serviço */
.servico-grelha { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 21rem); gap: clamp(40px, 6vw, 96px); align-items: start; padding: clamp(16px, 2vw, 24px) 0 clamp(56px, 7vw, 96px); }
.bloco { padding: clamp(28px, 3.4vw, 40px) 0; border-top: 1px solid var(--linha); }
.bloco:first-child { border-top: 0; }
.bloco h2 { font-size: clamp(1.5rem, 2.4vw, 1.875rem); margin-bottom: 18px; }
.bloco .texto { max-width: 44rem; }
.bloco-nota { font-size: 0.9375rem; color: var(--tinta); margin: 20px 0 0; padding: 16px 20px; background: var(--creme); border-left: 3px solid var(--ouro-2); border-radius: 0 var(--raio) var(--raio) 0; }
.servico-cta-mob { display: none; margin: 28px 0 0; }
.servico-lado { position: sticky; top: calc(var(--cab) + 24px); display: flex; flex-direction: column; gap: 32px; padding-top: clamp(28px, 3.4vw, 40px); }
.caixa-agendamento { position: relative; overflow: hidden; background: var(--marinho) url("../img/fundos/veludo.webp") center / cover; color: var(--nevoa); border-radius: 3px; padding: 30px 26px 24px; border-top: 2px solid var(--ouro-2); }
.caixa-agendamento::after { content: ""; position: absolute; right: -28px; bottom: -34px; width: 150px; aspect-ratio: 478 / 496; background: url("../img/marca/monograma.svg") no-repeat center / contain; opacity: 0.08; pointer-events: none; }
.caixa-agendamento h2 { font-size: 1.5rem; color: var(--branco); margin-bottom: 12px; }
.caixa-agendamento p { font-size: 0.9375rem; line-height: 1.65; color: var(--nevoa); position: relative; z-index: 1; }
.caixa-agendamento .btn { position: relative; z-index: 1; width: 100%; margin: 6px 0 16px; }
.caixa-agendamento .caixa-tel { font-size: 0.8125rem; margin: 0; color: var(--nevoa-2); }
.caixa-agendamento .caixa-tel a { color: var(--branco); }
.caixa-agendamento :focus-visible { outline-color: var(--ouro); }
.outros-servicos h2 { font-family: var(--sans); font-size: 0.625rem; font-weight: 600; letter-spacing: 0.24em; text-transform: uppercase; color: var(--ouro-texto); margin-bottom: 8px; }
.outros-servicos ul { list-style: none; margin: 0; padding: 0; font-size: 0.875rem; }
.outros-servicos li { border-bottom: 1px solid var(--linha); }
.outros-servicos a { display: block; padding: 10px 0; color: var(--tinta); text-decoration: none; }
.outros-servicos a:hover { color: var(--ouro-texto); }
/* Tabelas: cabeçalho azul-marinho */
.tabela { width: 100%; border-collapse: collapse; font-size: 0.875rem; }
.tabela caption { text-align: left; font-size: 0.8125rem; color: var(--grafite); caption-side: bottom; padding-top: 10px; }
.tabela th, .tabela td { text-align: left; vertical-align: top; padding: 12px 14px; border-bottom: 1px solid var(--linha); }
.tabela thead th { font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--branco); background: var(--marinho); border-bottom: 0; }
.tabela tbody th { font-weight: 600; width: 34%; }
.tabela tbody tr:nth-child(even) { background: rgba(241, 234, 219, 0.5); }
.tabela-rolo { overflow-x: auto; }
.vias { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.via { background: var(--branco); border-radius: var(--raio); padding: clamp(22px, 3vw, 30px); border-top: 2px solid var(--ouro-2); }
.via h3 { font-size: 1.4375rem; margin-bottom: 6px; }
.via .sub-via { font-size: 0.8125rem; color: var(--grafite); margin-bottom: 14px; }
.via dl { margin: 0; font-size: 0.875rem; }
.via dt { color: var(--ouro-texto); font-weight: 600; margin-top: 12px; }
.via dd { margin: 2px 0 0; }
.exemplo { background: var(--branco); border-radius: var(--raio); padding: clamp(22px, 3vw, 30px); }
.exemplo p { color: var(--grafite); }
.comparacao { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 18px 0 16px; }
.comparacao > div { display: flex; flex-direction: column; gap: 4px; padding: 20px 20px 18px; background: var(--marinho); border-radius: var(--raio); }
.comparacao .numero { font-family: var(--serif); font-size: clamp(2rem, 3.2vw, 2.625rem); line-height: 1; color: var(--ouro); margin-bottom: 12px; font-variant-numeric: lining-nums; }
.comparacao b { font-size: 0.875rem; font-weight: 600; line-height: 1.4; color: var(--branco); }
.comparacao span:not(.numero) { font-size: 0.8125rem; color: var(--nevoa-2); line-height: 1.5; }
.exemplo .nota { color: var(--tinta); margin-bottom: 0; }

/* Página do escritório */
.fig-col { margin: 28px 0 0; }
.fig-col img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 3px; }
.tabela-cred tbody th { width: auto; white-space: nowrap; }
.tabela-cred td:last-child { line-height: 1.6; }
.texto .passos-lista, .passos-lista { list-style: none; padding: 0; margin: 8px 0 28px; counter-reset: p; }
.passos-lista li { counter-increment: p; display: grid; grid-template-columns: 3rem minmax(0, 1fr); padding: 16px 0; margin: 0; border-top: 1px solid var(--linha); }
.passos-lista li:last-child { border-bottom: 1px solid var(--linha); }
.passos-lista li::before { content: counter(p, decimal-leading-zero); grid-row: span 2; font-family: var(--serif); font-size: 1.5rem; line-height: 1.2; color: var(--ouro-2); font-variant-numeric: lining-nums; }
.passos-lista b { font-weight: 600; }
.passos-lista span { color: var(--grafite); }
.jurisdicoes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(20px, 3vw, 40px); margin-top: 28px; }
.jurisdicoes h3 { font-size: 1.375rem; padding-bottom: 10px; border-bottom: 1px solid var(--ouro-2); margin-bottom: 4px; }
.jurisdicoes ul { list-style: none; padding: 0; margin: 0; font-size: 0.875rem; }
.jurisdicoes li { padding: 10px 0; border-bottom: 1px solid var(--linha); line-height: 1.5; }
.jurisdicoes a { color: var(--tinta); text-decoration: none; }
.jurisdicoes a:hover { color: var(--ouro-texto); text-decoration: underline; }
.pessoas-sec { padding: clamp(40px, 5vw, 64px) 0; border-top: 1px solid var(--linha); }
.pessoas-sec h2 { font-size: clamp(1.625rem, 2.6vw, 2.0625rem); margin-bottom: 28px; }

/* Página da equipe */
.equipe-foto { margin: clamp(40px, 5vw, 64px) 0 clamp(40px, 6vw, 72px); }
.equipe-foto img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; object-position: 50% 24%; border-radius: 3px; }
.lider { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(28px, 5vw, 72px); padding: clamp(40px, 5vw, 64px) 0; border-top: 1px solid var(--linha); align-items: start; }
.lider figure, .membro figure { margin: 0; }
.lider img, .membro img, .membro .monograma { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 3px; }
.lider h2 { font-size: clamp(2rem, 3.4vw, 2.625rem); }
.lider h2 a, .membro h2 a { color: var(--tinta); text-decoration: none; }
.lider h2 a:hover, .membro h2 a:hover { color: var(--ouro-texto); }
.lider .funcao, .membro .funcao { font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--ouro-texto); margin: 12px 0 18px; line-height: 1.6; }
.lider .resumo { font-family: var(--serif); font-size: 1.25rem; line-height: 1.55; max-width: 34em; }
.lider h3 { font-family: var(--sans); font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--grafite); margin: 28px 0 8px; }
.lista-fina { list-style: none; padding: 0; margin: 0; font-size: 0.875rem; }
.lista-fina li { padding: 9px 0; border-top: 1px solid var(--linha); }
.equipe-grelha { list-style: none; margin: 0; padding: clamp(40px, 5vw, 64px) 0 0; border-top: 1px solid var(--linha); display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(20px, 3vw, 40px); }
.membro-foto { display: block; margin-bottom: 18px; text-decoration: none; }
.membro h2 { font-size: 1.3125rem; line-height: 1.25; }
.membro .funcao { margin-bottom: 12px; }
.membro p { font-size: 0.9375rem; color: var(--grafite); line-height: 1.65; }

/* Página de cada pessoa */
.perfil { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(28px, 5vw, 80px); padding: clamp(40px, 5vw, 64px) 0 clamp(56px, 7vw, 96px); align-items: start; }
.perfil figure { margin: 0; position: sticky; top: calc(var(--cab) + 24px); }
.perfil img, .perfil .monograma { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 3px; }
.perfil .inteira img { aspect-ratio: auto; }
.perfil .bio { max-width: 40rem; }
.perfil .bio p:first-child { font-family: var(--serif); font-size: 1.25rem; line-height: 1.55; color: var(--tinta); }
.perfil h2.sub-tit { font-family: var(--sans); font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.24em; text-transform: uppercase; color: var(--ouro-texto); margin: 32px 0 8px; }
.outros ul { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 8px 24px; font-size: 0.9375rem; }
.outros a { color: var(--tinta); }

/* Artigo */
.artigo-meta { font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ouro-texto); margin-top: 22px; }
.artigo { max-width: 42rem; padding: clamp(32px, 4vw, 48px) 0 clamp(56px, 7vw, 96px); }
.artigo h2 { font-size: clamp(1.5rem, 2.4vw, 1.875rem); margin: 2em 0 0.6em; }
.artigo > h2:first-child { margin-top: 0; }
.artigo h3 { font-size: 1.25rem; margin: 1.6em 0 0.4em; }
.artigo ul, .artigo ol { padding-left: 1.25em; }
.artigo li { margin-bottom: 0.45em; }
.artigo li::marker { color: var(--ouro-2); }
.artigo table { width: 100%; border-collapse: collapse; font-size: 0.875rem; margin: 1.2em 0 1.6em; }
.artigo th, .artigo td { text-align: left; vertical-align: top; padding: 11px 14px; border-bottom: 1px solid var(--linha); }
.artigo thead th { font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--branco); background: var(--marinho); border-bottom: 0; }
.artigo .fontes ul { font-size: 0.875rem; }
.artigo h2[id] { scroll-margin-top: 104px; }
.artigo-grelha { display: grid; grid-template-columns: minmax(0, 42rem) minmax(0, 16rem); justify-content: space-between; gap: clamp(40px, 6vw, 96px); }
.indice { position: sticky; top: calc(var(--cab) + 32px); align-self: start; margin-top: clamp(32px, 4vw, 48px); padding-left: 20px; border-left: 1px solid var(--ouro-2); font-size: 0.8125rem; line-height: 1.45; }
.indice p { font-size: 0.625rem; font-weight: 600; letter-spacing: 0.24em; text-transform: uppercase; color: var(--ouro-texto); margin-bottom: 14px; }
.indice ul { list-style: none; padding: 0; margin: 0; }
.indice li { margin: 0 0 10px; }
.indice a { color: var(--grafite); text-decoration: none; }
.indice a:hover { color: var(--ouro-texto); text-decoration: underline; }
.indice a[aria-current="true"] { color: var(--tinta); font-weight: 600; }

/* 404 */
.erro { padding-top: clamp(80px, 12vw, 160px); padding-bottom: clamp(80px, 12vw, 160px); }

/* Agendamento de consulta: uma pergunta por tela */
.pag-agendamento { background: var(--papel); }
.marcacao { max-width: 46rem; margin: 0 auto; padding: 0 var(--margem) clamp(56px, 8vw, 96px); min-height: calc(100vh - var(--cab)); }
.mc-progresso { position: sticky; top: var(--cab); z-index: 5; background: var(--papel); padding: 18px 0 10px; }
.mc-barra { height: 3px; background: var(--linha); border-radius: 2px; overflow: hidden; }
.mc-barra span { display: block; height: 100%; width: 0; background: linear-gradient(90deg, #B08736, #D2B877); transition: width .35s ease; }
.mc-conta { font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--ouro-texto); margin: 10px 0 0; }
.mc-palco { padding-top: clamp(32px, 7vh, 72px); }
.mc-entra { animation: mcEntra .32s ease-out both; }
@keyframes mcEntra { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
.mc-titulo { font-size: clamp(2.375rem, 5vw, 3.375rem); line-height: 1.06; margin-bottom: 22px; }
.mc-titulo::after { content: ""; display: block; width: 56px; height: 2px; background: var(--ouro-2); margin-top: 22px; }
.mc-lead { font-size: clamp(1.0625rem, 1.6vw, 1.1875rem); color: var(--grafite); max-width: 34em; }
.mc-fatos { list-style: none; padding: 0; margin: 28px 0 32px; font-size: 0.9375rem; border-top: 1px solid var(--linha); }
.mc-fatos li { padding: 12px 0; border-bottom: 1px solid var(--linha); }
.mc-servico-pre { font-size: 0.9375rem; color: var(--ouro-texto); font-weight: 600; }
.mc-comecar { min-width: 12rem; }
.mc-alternativa { font-size: 0.8125rem; color: var(--grafite); margin-top: 24px; }
.mc-aviso { font-size: 0.9375rem; }
.mc-pergunta { font-size: clamp(1.75rem, 3.6vw, 2.375rem); line-height: 1.18; margin-bottom: 14px; outline: none; }
.mc-pergunta label { cursor: text; }
.mc-ajuda { font-size: 0.9375rem; color: var(--grafite); margin: 0 0 24px; max-width: 36em; }
.mc-input { width: 100%; font-family: var(--serif); font-size: clamp(1.375rem, 2.6vw, 1.75rem); color: var(--tinta); background: transparent; border: 0; border-bottom: 2px solid var(--linha); border-radius: 0; padding: 12px 0 10px; margin: 18px 0 8px; outline: none; transition: border-color .15s; }
.mc-input:focus { border-bottom-color: var(--ouro-2); }
.mc-input::placeholder { color: #A3A8B2; }
.mc-tel { display: grid; grid-template-columns: auto auto minmax(0, 1fr); gap: 0 14px; align-items: end; margin-top: 8px; }
.mc-select { font-family: var(--sans); font-size: 0.9375rem; color: var(--tinta); background: var(--branco); border: 1px solid var(--linha); border-radius: var(--raio); padding: 12px 34px 12px 12px; margin: 18px 0 8px; appearance: none; -webkit-appearance: none; background-image: linear-gradient(45deg, transparent 50%, var(--ouro-3) 50%), linear-gradient(135deg, var(--ouro-3) 50%, transparent 50%); background-position: calc(100% - 17px) 52%, calc(100% - 12px) 52%; background-size: 5px 5px; background-repeat: no-repeat; }
.mc-codigo { width: 5.5rem; }
.mc-codigo[hidden] { display: none; }
.mc-erro { font-size: 0.9375rem; color: #9A2F1F; margin: 10px 0 0; }
.mc-privacidade { font-size: 0.8125rem; color: var(--grafite); margin: 18px 0 0; }
.mc-grupos { display: flex; flex-direction: column; gap: 22px; }
.mc-grupo-nome { font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--ouro-texto); margin: 0 0 10px; }
.mc-opcoes { display: flex; flex-direction: column; gap: 10px; }
.mc-opcao { display: flex; align-items: center; gap: 14px; width: 100%; min-height: 58px; padding: 14px 18px; text-align: left; background: var(--branco); color: var(--tinta); border: 1px solid var(--linha); border-radius: var(--raio); cursor: pointer; font-family: var(--sans); font-size: 1rem; line-height: 1.4; transition: border-color .12s, background .12s; }
.mc-opcao:hover { border-color: var(--ouro-2); }
.mc-opcao.sel { border-color: var(--ouro-3); background: var(--creme); }
.mc-marca { flex: none; width: 20px; height: 20px; border-radius: 50%; border: 1.5px solid #B9AE98; position: relative; }
.mc-opcao.sel .mc-marca { border-color: var(--ouro-3); }
.mc-opcao.sel .mc-marca::after { content: ""; position: absolute; inset: 4px; border-radius: 50%; background: var(--ouro-3); }
.mc-op-texto small { display: block; font-size: 0.8125rem; color: var(--grafite); margin-top: 3px; }
.mc-nav { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 32px; }
.mc-voltar { background: none; border: 0; padding: 10px 0; font-family: var(--sans); font-size: 0.875rem; color: var(--grafite); text-decoration: underline; text-underline-offset: 0.35em; cursor: pointer; }
.mc-voltar:hover { color: var(--tinta); }
.mc-nav .btn { margin-left: auto; min-width: 9.5rem; }
.mc-resultado { padding-bottom: 8px; }
.mc-res-ola { font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--ouro-texto); margin-bottom: 12px; }
.mc-res-titulo { font-size: clamp(1.875rem, 3.8vw, 2.5rem); line-height: 1.16; margin-bottom: 18px; outline: none; }
.mc-res-texto { font-size: 1.0625rem; color: var(--tinta); }
.mc-alerta { border-left: 3px solid var(--ouro-3); background: var(--creme); padding: 16px 18px; margin: 20px 0; border-radius: 0 var(--raio) var(--raio) 0; }
.mc-alerta h2 { font-family: var(--sans); font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; margin-bottom: 8px; color: var(--ouro-texto); }
.mc-alerta p { font-size: 0.9375rem; margin: 0 0 6px; }
.mc-notas p { color: var(--grafite); }
.mc-res-grelha { margin-top: 12px; }
.mc-bloco { padding: 22px 0; border-top: 1px solid var(--linha); }
.mc-bloco h2 { font-size: 1.25rem; margin-bottom: 10px; }
.mc-bloco ul { margin: 0; padding-left: 1.2em; }
.mc-bloco li { margin-bottom: 0.4em; }
.mc-bloco li::marker { color: var(--ouro-2); }
.mc-proximo { background: var(--marinho) url("../img/fundos/veludo.webp") center / cover; color: var(--nevoa); border-radius: 3px; padding: 26px 26px 28px; margin: 18px 0 8px; border-top: 2px solid var(--ouro-2); }
.mc-proximo h2 { color: var(--branco); font-size: 1.5rem; margin-bottom: 10px; }
.mc-proximo p { color: var(--nevoa); }
.mc-proximo :focus-visible { outline-color: var(--ouro); }
.mc-resumo { margin: 16px 0 18px; }
.mc-resumo-rotulo { font-size: 0.6875rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--ouro) !important; margin: 0 0 8px; }
.mc-resumo-texto { white-space: pre-wrap; overflow-wrap: anywhere; font-family: var(--sans); font-size: 0.875rem; line-height: 1.6; color: var(--nevoa); background: rgba(255, 255, 255, 0.06); border: 1px solid var(--linha-escura); border-radius: 3px; padding: 14px 16px; margin: 0 0 12px; }
.mc-proximo .mc-copiar { width: auto; margin-bottom: 14px; }
.mc-copiar.mc-copiado { border-color: var(--ouro); color: var(--ouro); }
.mc-proximo .mc-copiar + .btn { display: inline-flex; }
.mc-sem-condicoes .mc-res-texto + .mc-res-texto { margin-top: 0.9em; }
.mc-guia { display: grid; grid-template-columns: 120px minmax(0, 1fr); column-gap: 26px; align-items: center; margin-top: 26px; overflow: hidden; }
.mc-guia-capa { grid-row: span 2; align-self: center; }
.mc-guia-capa img { display: block; width: 120px; height: auto; filter: drop-shadow(0 14px 20px rgba(0, 0, 0, 0.5)); }
.mc-guia-texto p { font-size: 0.9375rem; margin: 0; }
.mc-guia-btn { justify-self: start; margin-top: 18px; }
.mc-fim { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 28px; font-size: 0.875rem; margin-top: 20px; }
.mc-fim a { color: var(--tinta); text-underline-offset: 0.35em; }
.mc-refazer { background: none; border: 0; padding: 0; color: var(--grafite); text-decoration: underline; text-underline-offset: 0.35em; cursor: pointer; font-family: var(--sans); font-size: 0.875rem; }
html:not(.js) .mc-js-so { display: none; }

/* Celular e tablet */
@media (max-width: 1120px) {
  :root { --cab: 68px; }
  .marca img { height: 38px; }
  .menu-btn { display: inline-flex; margin-right: -8px; }
  .nav { display: none; position: fixed; left: 0; right: 0; bottom: 0; top: var(--cab); z-index: 49; background: var(--marinho); flex-direction: column; align-items: stretch; gap: 0; padding: 4px var(--margem) 32px; overflow-y: auto; overscroll-behavior: contain; border-top: 1px solid var(--linha-escura); font-size: 1rem; }
  .nav.aberta { display: flex; }
  .nav-lista { flex-direction: column; align-items: stretch; gap: 0; }
  .nav-lista > li > a { display: flex; justify-content: space-between; width: 100%; padding: 17px 0; font-size: 1.0625rem; font-family: var(--serif); font-weight: 400; border-radius: 0; border-bottom: 1px solid var(--linha-escura); }
  .chev { width: 14px; height: 14px; }
  .nav .sub { position: static; border: 0; background: none; }
  .sub-grelha { grid-template-columns: 1fr; padding: 6px 0 22px 0; gap: 22px; }
  .sub-pais { font-family: var(--sans); font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.24em; text-transform: uppercase; color: var(--ouro); padding-bottom: 8px; }
  .sub ul a { padding: 12px 0; font-size: 1rem; }
  .sub-nota p { font-size: 0.9375rem; }
  .nav-cta { margin: 26px 0 0; display: flex; justify-content: center; padding: 16px; border-radius: 2px; background: linear-gradient(90deg, #B08736, #D2B877); color: var(--marinho); border: 0; font-size: 0.75rem; }
  /* Só o html: com o body também em overflow hidden, o body passa a ser o contentor de rolagem,
     o cabeçalho deixa de ficar preso ao topo e o painel abre fora da tela depois de rolar a página. */
  html.menu-aberto { overflow: hidden; }
  html.menu-aberto .cabecalho { position: fixed; top: 0; left: 0; right: 0; }
  html:not(.js) .nav { display: flex; position: static; border-top: 0; padding-bottom: 16px; }
  html:not(.js) .menu-btn { display: none; }
  html:not(.js) .cabecalho { position: relative; }
  html:not(.js) .cab-linha { flex-wrap: wrap; }
  .artigo-grelha { grid-template-columns: minmax(0, 1fr); }
  .indice { display: none; }
  .equipe-grelha { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .retratos { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .rod-grelha { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .rod-grelha > div:first-child { grid-column: 1 / -1; }
  .servico-grelha { grid-template-columns: minmax(0, 1fr) minmax(0, 18rem); gap: 40px; }
  .etapas { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .etapas li:nth-child(3) { padding-left: 0; border-left: 0; }
  .etapas li:nth-child(n+3) { border-top: 1px solid var(--linha); }
  .esc-topo { grid-template-columns: minmax(0, 1fr) clamp(200px, 24vw, 300px); }
  .esc-conteudo { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .sec-cab { grid-template-columns: minmax(0, 1fr) auto; }
  .sec-cab .sec-intro { grid-column: 1 / -1; margin-top: -8px; }
}
@media (max-width: 900px) {
  /* Hero do celular, como na proposta: a fotografia no topo, o texto a entrar sobre ela, botões a toda a largura */
  /* Hero do celular: o logótipo bordado atrás do texto, a toda a largura, e o selo centrado no fim */
  .hero-bordado { width: 100%; }
  .hero-bordado img { opacity: 0.46; object-position: 50% 44%; -webkit-mask-image: radial-gradient(ellipse 82% 68% at 50% 48%, #000 40%, transparent 84%); mask-image: radial-gradient(ellipse 82% 68% at 50% 48%, #000 40%, transparent 84%); }
  .hero-moldura { grid-template-columns: 1fr; min-height: 0; padding-top: 44px; padding-bottom: 32px; gap: 0; }
  .hero-texto { max-width: none; }
  .hero h1 { font-size: clamp(2.125rem, 8.2vw, 3rem); }
  .hero-lead { margin: 20px 0 26px; }
  .botoes .btn { flex: 1 1 100%; }
  .cred { grid-template-columns: repeat(3, minmax(0, 1fr)); max-width: none; margin-top: 32px; padding-top: 18px; text-align: center; }
  .cred > div { padding: 0 6px; }
  .cred > div + div { padding-left: 6px; border-left: 1px solid var(--linha-escura); }
  .cred dt { margin-bottom: 4px; }
  .cred dd:not(.cred-num), .cred .cred-tipo { display: none; }
  .cred .cred-num { color: var(--nevoa-2); font-size: 0.6875rem; }
  /* O escritório: a placa passa a cartão com a frase manuscrita, depois do texto */
  .esc-topo { grid-template-columns: minmax(0, 1fr); }
  .esc-conteudo { padding: clamp(48px, 7vw, 72px) var(--margem) 8px; }
  .esc-placa { margin: 20px var(--margem) clamp(40px, 6vw, 56px); min-height: 0; aspect-ratio: 4 / 3; overflow: hidden; border-radius: 3px; }
  .esc-placa img { object-position: 50% 50%; }
  .grelha-sec, .faixa-grelha, .duas-col, .vias, .lider, .perfil, .jurisdicoes, .paises, .depo-topo { grid-template-columns: minmax(0, 1fr); }
  .paises { gap: 40px; }
  .sec-cab { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .sec-cab .ligacao-forte { justify-self: start; margin-bottom: 0; }
  .sec-cab .sec-intro { margin-top: 0; }
  /* Lista de serviços como na proposta: ícone, nome e seta */
  .servicos-lista a { grid-template-columns: 36px minmax(0, 1fr) auto; gap: 0 14px; padding: 15px 0 14px; align-items: center; }
  .sv-ico { width: 36px; height: 36px; }
  .sv-ico .ico { width: 28px; height: 28px; }
  .sv-nome { font-size: 1.0625rem; }
  .sv-desc { display: none; }
  .chev-lista { display: block; }
  .hub-paises .sv-desc { display: block; }
  .hub-paises .servicos-lista a { align-items: start; }
  .hub-paises .chev-lista { display: none; }
  .pais-foto img, .servico-foto img { aspect-ratio: 16 / 10; }
  .perfil figure { position: static; max-width: 420px; }
  .lider figure { max-width: 420px; }
  .artigos, .avaliacoes-home { grid-template-columns: minmax(0, 1fr); }
  .avaliacoes-home .avaliacao:nth-child(n+4) { display: none; }
  .rod-grelha { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .videos { grid-template-columns: repeat(4, minmax(220px, 1fr)); overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 8px; }
  .depo-topo .videos { grid-template-columns: repeat(3, minmax(220px, 1fr)); overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 8px; }
  .video { scroll-snap-align: start; }
  .servico-grelha { grid-template-columns: minmax(0, 1fr); }
  .servico-lado { position: static; }
  .servico-cta-mob { display: block; }
  .servico-lado .caixa-agendamento { display: none; }
  .servico-lado { padding-top: 8px; }
  .banda::after { width: 70vw; opacity: 0.6; }
}
@media (max-width: 560px) {
  .contatos-lista li { grid-template-columns: 1fr; gap: 4px; }
  .rod-grelha { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 28px 20px; }
  .marca img { height: 34px; }
  .cred-claro { grid-template-columns: 1fr; text-align: left; }
  .cred-claro > div { padding: 12px 0; }
  .cred-claro > div + div { padding-left: 0; border-left: 0; border-top: 1px solid var(--linha); }
  .cred-claro dd:not(.cred-num) { display: block; }
  .comparacao { grid-template-columns: 1fr; }
  /* Etapas no celular: o número à esquerda, o texto à direita, uma linha por etapa */
  .etapas { grid-template-columns: 1fr; }
  .etapas li, .etapas li + li { display: grid; grid-template-columns: 3.5rem minmax(0, 1fr); column-gap: 6px; padding: 18px 0 14px; border-left: 0; }
  .etapas li + li { border-top: 1px solid var(--linha); }
  .etapa-num { grid-row: span 2; font-size: 2rem; line-height: 1.1; margin-bottom: 0; }
  .etapas b { font-size: 1.125rem; margin-bottom: 4px; }
  .cred-claro .cred-tipo { display: inline; }
  .equipe-grelha { grid-template-columns: 1fr; }
  .retratos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .equipe-foto img { aspect-ratio: 4 / 3; }
  .tabela-cred thead { display: none; }
  .tabela-cred tr { display: block; padding: 12px 0; border-bottom: 1px solid var(--linha); }
  .tabela-cred th, .tabela-cred td { display: block; border: 0; padding: 2px 0; }
  .tabela-cred tbody th { color: var(--ouro-texto); }
  .tabela-cred tbody tr:nth-child(even) { background: none; }
  .mc-tel { grid-template-columns: 1fr; }
  .mc-select { width: 100%; margin-bottom: 0; }
  .mc-codigo { width: 100%; }
  .mc-nav .btn { min-width: 0; flex: 1 1 auto; margin-left: 16px; }
  .mc-proximo .btn { width: 100%; }
  .mc-guia { grid-template-columns: 76px minmax(0, 1fr); column-gap: 16px; align-items: start; }
  .mc-guia-capa { grid-row: auto; }
  .mc-guia-capa img { width: 76px; }
  .mc-guia-texto h2 { font-size: 1.25rem; }
  .mc-guia-btn { grid-column: 1 / -1; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
@media print {
  .cabecalho, .faixa, .rodape, .videos, .servico-lado { display: none; }
  body { background: #fff; }
}
