/* =========================================================================
   Direito Familiar Internacional
   Sistema visual do site. Um único arquivo, na ordem: tokens, base,
   utilitários, cabeçalho, home, blog, rodapé, LGPD, responsivo.

   O gesto que organiza a página é a averbação de margem: toda seção tem um
   rótulo na coluna da esquerda, separado do conteúdo por um filete. É o modo
   como um livro de registro anota o que aconteceu ao lado do que foi lavrado,
   e é o vocabulário de quem passou treze anos como Tabeliã e Registradora.
   ========================================================================= */

/* ---------------------------------------------------------------- tokens */
:root {
	--vinho:        #6B2233;
	--vinho-escuro: #4A1724;
	--vinho-claro:  #8A3247;
	--dourado:      #C0A062;
	--dourado-fraco:#E4D7BC;
	--preto:        #121212;
	--grafite:      #3A3A3C;
	--cinza:        #818285;
	--cinza-claro:  #D1D2D4;
	--linha:        #E6E3DF;
	--off-white:    #F7F5F3;
	--branco:       #FFFFFF;

	--serif: "Spectral", Georgia, "Times New Roman", serif;
	--sans:  "Archivo", system-ui, -apple-system, "Segoe UI", Arial, sans-serif;

	--wrap:     1180px;
	--rail:     130px;
	--rail-gap: 44px;
	--header-h: 88px;

	--e: cubic-bezier(0.22, 0.61, 0.36, 1);
}

/* ------------------------------------------------------------------ base */
*,
*::before,
*::after { box-sizing: border-box; }

html {
	-webkit-text-size-adjust: 100%;
	scroll-behavior: smooth;
	scroll-padding-top: calc(var(--header-h) + 16px);
}

body {
	margin: 0;
	background: var(--branco);
	color: var(--grafite);
	font-family: var(--sans);
	font-size: 1.0625rem;
	line-height: 1.75;
	-webkit-font-smoothing: antialiased;
	overflow-x: hidden;
}

img,
svg { max-width: 100%; height: auto; display: block; }

a { color: var(--vinho); text-decoration-thickness: 1px; text-underline-offset: 3px; }
a:hover { color: var(--vinho-escuro); }

h1, h2, h3, h4 {
	font-family: var(--serif);
	font-weight: 400;
	color: var(--preto);
	margin: 0;
	line-height: 1.14;
	letter-spacing: -0.012em;
}

p { margin: 0 0 1.25em; }
p:last-child { margin-bottom: 0; }

ul { margin: 0; padding: 0; list-style: none; }

button { font: inherit; cursor: pointer; }

:focus-visible {
	outline: 2px solid var(--vinho);
	outline-offset: 3px;
}

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	overflow: hidden; clip: rect(1px, 1px, 1px, 1px);
	white-space: nowrap;
}

.skip-link {
	position: absolute;
	left: -9999px;
	top: 0;
	z-index: 100000;
	background: var(--vinho);
	color: #fff;
	padding: 12px 20px;
	text-decoration: none;
}
.skip-link:focus { left: 8px; top: 8px; color: #fff; }

/* ------------------------------------------------------------ utilitários */
.wrap {
	width: 100%;
	max-width: var(--wrap);
	margin-inline: auto;
	padding-inline: 24px;
}

.sep { color: var(--cinza-claro); margin-inline: 0.5em; }

.eyebrow,
.kicker,
.rail,
.dado__rotulo,
.site-footer__rotulo,
.credenciais__titulo {
	font-family: var(--sans);
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--cinza);
	margin: 0;
}

.prose p { max-width: 68ch; }

/* A averbação de margem. */
.rail {
	grid-column: 1;
	align-self: stretch;
	border-right: 1px solid var(--linha);
	padding-right: var(--rail-gap);
	padding-top: 0.6em;
	text-align: right;
	color: var(--vinho);
}
.rail__mark {
	display: block;
	width: 26px;
	height: 1px;
	background: var(--dourado);
	margin: 0 0 12px auto;
}

.link-arrow {
	display: inline-block;
	font-family: var(--sans);
	font-size: 0.9375rem;
	font-weight: 500;
	letter-spacing: 0.02em;
	color: var(--vinho);
	text-decoration: none;
	border-bottom: 1px solid var(--dourado);
	padding-bottom: 3px;
	transition: border-color 0.3s var(--e), color 0.3s var(--e);
}
.link-arrow::after { content: " \2192"; }
.link-arrow:hover { color: var(--vinho-escuro); border-bottom-color: var(--vinho); }

/* --------------------------------------------------------------- botões */
.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	font-family: var(--sans);
	font-size: 0.9375rem;
	font-weight: 500;
	letter-spacing: 0.02em;
	line-height: 1;
	padding: 17px 30px;
	border: 1px solid transparent;
	border-radius: 0;
	text-decoration: none;
	transition: background-color 0.3s var(--e), color 0.3s var(--e), border-color 0.3s var(--e);
}
.btn--solid { background: var(--vinho); color: #fff; }
.btn--solid:hover { background: var(--vinho-escuro); color: #fff; }
.btn--ghost { background: transparent; color: var(--vinho); border-color: var(--cinza-claro); }
.btn--ghost:hover { border-color: var(--vinho); color: var(--vinho-escuro); }
.btn--bloco { width: 100%; }

/* ------------------------------------------------------------ cabeçalho */
.site-header {
	position: fixed;
	inset: 0 0 auto 0;
	z-index: 900;
	background: var(--branco);
	border-bottom: 1px solid transparent;
	transition: background-color 0.35s var(--e), border-color 0.35s var(--e), height 0.35s var(--e);
}
.site-header__inner {
	height: var(--header-h);
	display: flex;
	align-items: center;
	gap: 32px;
}
.site-header.is-scrolled { border-bottom-color: var(--linha); }

.brand {
	display: flex;
	align-items: center;
	gap: 14px;
	text-decoration: none;
	margin-right: auto;
}
.brand__mark { width: 44px; height: 44px; flex: none; }
.brand__name {
	font-family: var(--serif);
	font-size: 1.0625rem;
	font-weight: 500;
	line-height: 1.22;
	letter-spacing: -0.005em;
	color: var(--preto);
	max-width: 15ch;
}
.variante-b .brand__name {
	font-family: var(--sans);
	font-size: 0.75rem;
	font-weight: 600;
	line-height: 1.5;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	max-width: 15ch;
}

.nav { display: flex; align-items: center; gap: 36px; }
.nav__list { display: flex; align-items: center; gap: 30px; }

/* Vale para o menu cadastrado no WordPress e para o menu de emergência do
   tema. O wp_nav_menu não carrega as classes próprias, então o seletor é
   pelo elemento, não pela classe. */
.nav__list a {
	position: relative;
	display: inline-block;
	font-family: var(--sans);
	font-size: 0.9375rem;
	font-weight: 500;
	color: var(--grafite);
	text-decoration: none;
	padding-block: 6px;
	transition: color 0.3s var(--e);
}
.nav__list a::after {
	content: "";
	position: absolute;
	left: 0; right: 0; bottom: 0;
	height: 1px;
	background: var(--dourado);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.35s var(--e);
}
.nav__list a:hover { color: var(--vinho); }
.nav__list a:hover::after { transform: scaleX(1); }
.nav__cta .btn { padding: 13px 22px; }

.nav-toggle {
	display: none;
	background: none;
	border: 0;
	padding: 10px;
	margin-left: auto;
	color: var(--preto);
}
.nav-toggle__bars { display: block; width: 24px; }
.nav-toggle__bars span {
	display: block;
	height: 1.5px;
	background: currentColor;
	margin: 5px 0;
	transition: transform 0.3s var(--e), opacity 0.2s var(--e);
}

/* ------------------------------------------------------------------ topo */
.hero { position: relative; }
.hero__inner { position: relative; z-index: 2; }

.hero__title {
	font-size: clamp(2.35rem, 1.35rem + 3.5vw, 4.25rem);
	line-height: 1.06;
	letter-spacing: -0.02em;
	max-width: 17ch;
	margin-top: 22px;
}
.hero__rule {
	width: 96px;
	height: 1px;
	background: var(--dourado);
	margin: 34px 0 26px;
}
.hero__sub {
	font-size: 1.0625rem;
	line-height: 1.8;
	max-width: 54ch;
}
.hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	margin-top: 38px;
}

/* Nenhuma das duas versões abre com fotografia. O briefing da cliente pede
   "poucas fotografias, priorizando espaços em branco e tipografia elegante" e
   "destaque para o conteúdo jurídico, e não para imagens". A única fotografia
   do site está na seção Sobre. O que separa A de B é a composição. */

/* Versão A: centrada e cerimoniosa. O respiro é o assunto. */
.variante-a .hero {
	background: var(--off-white);
	border-bottom: 1px solid var(--linha);
}
.variante-a .hero__inner {
	padding: calc(var(--header-h) + 116px) 24px 124px;
	text-align: center;
}
.variante-a .hero .eyebrow { color: var(--vinho); }
.variante-a .hero__title { max-width: 19ch; margin-inline: auto; }
.variante-a .hero__rule { margin: 40px auto 32px; }
.variante-a .hero__sub { margin-inline: auto; }
.variante-a .hero__actions { justify-content: center; }

/* Versão B: assimétrica, com a habilitação profissional na coluna da direita. */
.variante-b .hero {
	background: var(--branco);
	border-bottom: 1px solid var(--linha);
}
.variante-b .hero__inner {
	display: grid;
	grid-template-columns: minmax(0, 1.35fr) minmax(0, 0.65fr);
	column-gap: clamp(40px, 6vw, 96px);
	align-items: end;
	padding: calc(var(--header-h) + 104px) 24px 108px;
}
.variante-b .hero .eyebrow { color: var(--vinho); }
.variante-b .hero__title { max-width: 16ch; }
.variante-b .hero__sub { color: var(--grafite); }

.hero__registro {
	border-top: 1px solid var(--cinza-claro);
	padding-top: 22px;
}
.hero__registro .dado__rotulo { color: var(--vinho); margin-bottom: 14px; }
.hero__registro li {
	font-size: 0.875rem;
	line-height: 1.5;
	color: var(--grafite);
	padding: 11px 0;
	border-bottom: 1px solid var(--linha);
}
.hero__registro li:last-child { border-bottom: 0; }

/* --------------------------------------------------------------- seções */
.section { padding-block: clamp(72px, 9vw, 128px); }
.section--sobre { background: var(--branco); }
.section--areas { background: var(--off-white); }
.section--essencia { background: var(--branco); }
.section--blog { background: var(--off-white); }
.section--assoc { background: var(--branco); padding-block: clamp(56px, 6vw, 84px); }
.section--contato { background: var(--branco); border-top: 1px solid var(--linha); }

.section__head {
	display: grid;
	grid-template-columns: var(--rail) 1fr;
	align-items: start;
	margin-bottom: 56px;
}
.section__head > :not(.rail) { grid-column: 2; }
.section__title {
	font-size: clamp(1.85rem, 1.3rem + 1.9vw, 2.85rem);
	max-width: 20ch;
}
.section__title--pequeno { font-size: clamp(1.35rem, 1.1rem + 0.7vw, 1.75rem); }
.section__sub {
	margin-top: 18px;
	max-width: 58ch;
	color: var(--cinza);
}
.kicker { margin-bottom: 14px; color: var(--vinho); }
.section__acao { margin-top: 48px; padding-left: calc(var(--rail) + var(--rail-gap)); }

/* ---------------------------------------------------------------- sobre */
.sobre__grid {
	display: grid;
	grid-template-columns: var(--rail) minmax(0, 1.55fr) minmax(0, 1fr);
	column-gap: var(--rail-gap);
	align-items: start;
}
.sobre__bio { grid-column: 2; }
.sobre__aside { grid-column: 3; }
.sobre__bio p { margin-bottom: 1.4em; }
.sobre__link { margin-top: 30px; }

.sobre__figure { margin: 0 0 32px; }
.sobre__figure img { width: 100%; }

.credenciais { border-top: 1px solid var(--linha); padding-top: 26px; }
.credenciais__titulo { color: var(--vinho); margin-bottom: 18px; }
.credenciais__lista li {
	position: relative;
	font-size: 0.9375rem;
	line-height: 1.6;
	padding: 12px 0 12px 24px;
	border-bottom: 1px solid var(--linha);
}
.credenciais__lista li:last-child { border-bottom: 0; }
.credenciais__lista li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 1.45em;
	width: 12px;
	height: 1px;
	background: var(--dourado);
}

/* ---------------------------------------------------------------- áreas */
.areas__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1px;
	background: var(--linha);
	border: 1px solid var(--linha);
}
.area { background: var(--branco); padding: clamp(30px, 3.6vw, 52px); }
.area__titulo { font-size: clamp(1.3rem, 1.1rem + 0.6vw, 1.6rem); }
.area__titulo::after {
	content: "";
	display: block;
	width: 34px;
	height: 1px;
	background: var(--dourado);
	margin: 20px 0 22px;
}
.area__desc { color: var(--grafite); margin-bottom: 28px; }
.area__servicos { columns: 1; }
.area__servicos li {
	position: relative;
	font-size: 0.9375rem;
	line-height: 1.55;
	padding: 9px 0 9px 22px;
	color: var(--grafite);
}
.area__servicos li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 1.35em;
	width: 11px;
	height: 1px;
	background: var(--cinza-claro);
}

.nota {
	margin-top: 40px;
	margin-left: calc(var(--rail) + var(--rail-gap));
	border-left: 2px solid var(--dourado);
	padding: 6px 0 6px 26px;
	max-width: 62ch;
}
.nota__titulo {
	font-family: var(--sans);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--vinho);
	margin-bottom: 8px;
}
.nota__texto { font-size: 0.9375rem; color: var(--grafite); margin: 0; }

/* -------------------------------------------------------------- essência */
.essencia__intro { padding-left: calc(var(--rail) + var(--rail-gap)); }
.essencia__intro p { font-size: 1.125rem; line-height: 1.8; }

.destaque {
	margin: 48px 0 0 calc(var(--rail) + var(--rail-gap));
	padding-left: 28px;
	border-left: 2px solid var(--dourado);
	max-width: 46ch;
}
.destaque p {
	font-family: var(--serif);
	font-size: clamp(1.25rem, 1.05rem + 0.7vw, 1.6rem);
	font-style: italic;
	line-height: 1.44;
	color: var(--preto);
}

.pilares__titulo {
	margin: 84px 0 0 calc(var(--rail) + var(--rail-gap));
	font-size: 1.5rem;
}
.pilares {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	column-gap: 56px;
	margin-top: 34px;
	margin-left: calc(var(--rail) + var(--rail-gap));
}
.pilar { padding: 30px 0; border-top: 1px solid var(--linha); }
.pilar__titulo {
	font-family: var(--sans);
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--vinho);
	margin-bottom: 14px;
}
.pilar__texto { font-size: 0.9375rem; line-height: 1.7; margin: 0; }

/* ----------------------------------------------------------------- blog */
.posts { display: grid; gap: 1px; }
.posts--a {
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 32px;
	background: none;
}
/* A cliente não tem banco de imagens e recusa foto genérica de justiça. O
   cartão funciona sem miniatura: o filete vinho no topo faz o papel de marca. */
.posts--a .post-card {
	background: var(--branco);
	border: 1px solid var(--linha);
	border-top: 2px solid var(--vinho);
}
.posts--a .post-card__media { display: block; overflow: hidden; }
.posts--a .post-card__media img {
	width: 100%;
	aspect-ratio: 16 / 10;
	object-fit: cover;
	transition: transform 0.6s var(--e);
}
.posts--a .post-card:hover .post-card__media img { transform: scale(1.04); }
.posts--a .post-card__body { padding: 28px 26px 32px; }

.posts--b { border-top: 1px solid var(--linha); }
.posts--b .post-card {
	border-bottom: 1px solid var(--linha);
	padding: 30px 0;
}
.posts--b .post-card__body {
	display: grid;
	grid-template-columns: var(--rail) 1fr;
	column-gap: var(--rail-gap);
	align-items: baseline;
}
.posts--b .post-card__meta {
	grid-column: 1;
	text-align: right;
	margin: 0;
	letter-spacing: 0.1em;
	line-height: 1.7;
}
/* Na coluna estreita da margem, data e tempo de leitura empilham. */
.posts--b .post-card__meta time,
.posts--b .post-card__meta span:not(.sep) { display: block; }
.posts--b .post-card__meta .sep { display: none; }
.posts--b .post-card__titulo,
.posts--b .post-card__resumo { grid-column: 2; }

.post-card__categoria {
	margin: 0 0 10px;
	font-family: var(--sans);
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}
.post-card__categoria a {
	color: var(--vinho);
	text-decoration: none;
	border-bottom: 1px solid var(--dourado);
	padding-bottom: 2px;
}
.post-card__categoria a:hover { border-bottom-color: var(--vinho); }

.post-card__meta {
	font-family: var(--sans);
	font-size: 0.6875rem;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--cinza);
	margin-bottom: 14px;
}
.post-card__titulo { font-size: 1.3rem; line-height: 1.28; }
.post-card__titulo a {
	color: var(--preto);
	text-decoration: none;
	background-image: linear-gradient(var(--dourado), var(--dourado));
	background-size: 0 1px;
	background-position: 0 100%;
	background-repeat: no-repeat;
	transition: background-size 0.4s var(--e), color 0.3s var(--e);
}
.post-card__titulo a:hover { color: var(--vinho); background-size: 100% 1px; }
.post-card__resumo {
	margin: 14px 0 0;
	font-size: 0.9375rem;
	line-height: 1.7;
	color: var(--cinza);
}

/* ----------------------------------------------------- faixa institucional */
.faixa {
	position: relative;
	background: var(--preto);
	color: rgba(255, 255, 255, 0.78);
	padding-block: clamp(76px, 8vw, 116px);
	overflow: hidden;
}
.faixa__inner { position: relative; text-align: center; }
.faixa__titulo {
	color: #fff;
	font-size: clamp(1.6rem, 1.2rem + 1.5vw, 2.35rem);
	max-width: 24ch;
	margin-inline: auto;
}
.faixa__titulo::after {
	content: "";
	display: block;
	width: 60px;
	height: 1px;
	background: var(--dourado);
	margin: 30px auto;
}
.faixa__texto { max-width: 68ch; margin-inline: auto; }

/* --------------------------------------------------------------- selos */
.selos {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: clamp(32px, 5vw, 72px);
	padding-top: 8px;
}
.selos__item img {
	height: 46px;
	width: auto;
	mix-blend-mode: multiply;
	filter: grayscale(1);
	opacity: 0.62;
	transition: filter 0.4s var(--e), opacity 0.4s var(--e);
}
.selos__item img:hover { filter: grayscale(0); opacity: 1; }
.section--assoc .section__head { margin-bottom: 36px; }
.section__head--centro { display: block; text-align: center; }
.section__head--centro .rail { display: none; }
.section__head--centro .section__title { max-width: none; }

/* -------------------------------------------------------------- contato */
.contato__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
	column-gap: clamp(48px, 6vw, 90px);
	padding-left: calc(var(--rail) + var(--rail-gap));
	align-items: start;
}

.form__linha { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 22px; }
.campo { margin-bottom: 22px; }
.campo label {
	display: block;
	font-family: var(--sans);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--cinza);
	margin-bottom: 8px;
}
.campo input,
.campo select,
.campo textarea {
	width: 100%;
	font-family: var(--sans);
	font-size: 1rem;
	color: var(--preto);
	background: var(--branco);
	border: 1px solid var(--cinza-claro);
	border-radius: 0;
	padding: 13px 15px;
	transition: border-color 0.3s var(--e), box-shadow 0.3s var(--e);
}
.campo textarea { resize: vertical; min-height: 130px; }
.campo input:focus,
.campo select:focus,
.campo textarea:focus {
	outline: none;
	border-color: var(--vinho);
	box-shadow: inset 0 -2px 0 var(--dourado);
}
.campo--check { display: flex; align-items: flex-start; gap: 12px; }
.campo--check input { width: auto; margin-top: 4px; flex: none; }
.campo--check label {
	font-family: var(--sans);
	font-size: 0.8125rem;
	font-weight: 400;
	letter-spacing: 0;
	text-transform: none;
	color: var(--cinza);
	line-height: 1.6;
	margin: 0;
}
.campo--oculto { position: absolute; left: -9999px; }

.form__aviso {
	margin: 16px 0 0;
	font-size: 0.9375rem;
	min-height: 1.5em;
}
.form__aviso.is-ok { color: var(--vinho); }
.form__aviso.is-erro { color: #A0212B; }

.contato__dados { border-top: 1px solid var(--linha); padding-top: 30px; }
.dado { margin-bottom: 34px; }
.dado:last-child { margin-bottom: 0; }
.dado__rotulo { color: var(--vinho); margin-bottom: 12px; }
.dado a { text-decoration: none; }
.dado a:hover { text-decoration: underline; }
.dado__lista li { margin-bottom: 10px; }
.dado__pais {
	display: block;
	font-family: var(--sans);
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--cinza);
}
.endereco { margin-bottom: 18px; font-size: 0.9375rem; }

/* --------------------------------------------------------------- rodapé */
.site-footer { background: var(--preto); color: rgba(255, 255, 255, 0.66); padding-top: 76px; }
.site-footer a { color: rgba(255, 255, 255, 0.82); text-decoration: none; }
.site-footer a:hover { color: var(--dourado); }
.site-footer__inner {
	display: grid;
	grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) minmax(0, 1fr);
	gap: 48px;
	padding-bottom: 60px;
}
.site-footer__placa {
	display: inline-flex;
	background: var(--branco);
	padding: 13px;
	border-bottom: 2px solid var(--dourado);
}
.site-footer__placa img { width: 54px; height: 54px; }
.site-footer__nome {
	font-family: var(--serif);
	font-size: 1.25rem;
	color: #fff;
	margin: 22px 0 8px;
}
.site-footer__tagline {
	font-size: 0.9375rem;
	line-height: 1.6;
	color: rgba(255, 255, 255, 0.62);
	max-width: 34ch;
	margin: 0 0 18px;
}
.site-footer__oab { font-size: 0.875rem; color: rgba(255, 255, 255, 0.55); margin: 0; }
.site-footer__rotulo { color: var(--dourado); margin-bottom: 16px; }
.site-footer__col p { font-size: 0.9375rem; margin-bottom: 12px; }
.site-footer__col .dado__pais { color: rgba(255, 255, 255, 0.42); }
.site-footer__base {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 12px;
	border-top: 1px solid rgba(255, 255, 255, 0.12);
	/* A folga embaixo evita que o botão flutuante cubra a Política de Privacidade. */
	padding: 26px 0 96px;
	font-size: 0.8125rem;
	color: rgba(255, 255, 255, 0.45);
}
.site-footer__base p { margin: 0; }

/* ------------------------------------------------------ botão flutuante */
.wa-float { position: fixed; right: 22px; bottom: 22px; z-index: 950; }
.wa-float__botao {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	background: var(--vinho);
	color: #fff;
	border: 0;
	border-radius: 999px;
	padding: 14px 22px 14px 18px;
	box-shadow: 0 10px 30px rgba(18, 18, 18, 0.22);
	font-size: 0.9375rem;
	font-weight: 500;
	transition: background-color 0.3s var(--e), transform 0.3s var(--e);
}
.wa-float__botao:hover { background: var(--vinho-escuro); transform: translateY(-2px); }
.wa-float__opcoes {
	position: absolute;
	right: 0;
	bottom: calc(100% + 12px);
	width: 246px;
	background: var(--branco);
	border: 1px solid var(--linha);
	box-shadow: 0 18px 44px rgba(18, 18, 18, 0.16);
}
.wa-float__opcao {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 15px 18px;
	text-decoration: none;
	border-bottom: 1px solid var(--linha);
	transition: background-color 0.25s var(--e);
}
.wa-float__opcao:last-child { border-bottom: 0; }
.wa-float__opcao:hover { background: var(--off-white); }
.wa-float__sigla {
	font-family: var(--sans);
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	color: var(--vinho);
	border: 1px solid var(--dourado);
	padding: 5px 7px;
	flex: none;
}
.wa-float__texto { font-size: 0.875rem; color: var(--grafite); line-height: 1.35; }
.wa-float__texto strong { display: block; color: var(--preto); font-weight: 600; }

/* ------------------------------------------------------------ aviso LGPD */
.lgpd {
	position: fixed;
	left: 0; right: 0; bottom: 0;
	z-index: 99999;
	background: var(--preto);
	color: rgba(255, 255, 255, 0.78);
	border-top: 1px solid var(--dourado);
	padding: 22px 0;
	transform: translateY(110%);
	transition: transform 0.45s var(--e);
}
.lgpd.is-visivel { transform: translateY(0); }
.lgpd__inner { display: flex; flex-wrap: wrap; align-items: center; gap: 20px 32px; }
.lgpd__texto { font-size: 0.875rem; line-height: 1.6; margin: 0; flex: 1 1 340px; }
.lgpd__texto a { color: var(--dourado); }
.lgpd__acoes { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.lgpd .btn { padding: 12px 22px; font-size: 0.875rem; }
.lgpd .btn--solid { background: var(--dourado); color: var(--preto); }
.lgpd .btn--solid:hover { background: #fff; color: var(--preto); }
.lgpd .btn--ghost { color: rgba(255, 255, 255, 0.85); border-color: rgba(255, 255, 255, 0.35); }
.lgpd .btn--ghost:hover { border-color: #fff; color: #fff; }
.lgpd__link {
	background: none;
	border: 0;
	color: rgba(255, 255, 255, 0.7);
	font-size: 0.875rem;
	text-decoration: underline;
	padding: 8px 4px;
}
.lgpd__link:hover { color: #fff; }

.lgpd__categorias {
	width: 100%;
	border-top: 1px solid rgba(255, 255, 255, 0.14);
	margin-top: 6px;
	padding-top: 18px;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 22px;
}
.lgpd__cat { font-size: 0.8125rem; line-height: 1.55; }
.lgpd__cat label { display: flex; align-items: center; gap: 9px; color: #fff; font-weight: 500; margin-bottom: 5px; }
.lgpd__cat p { margin: 0; color: rgba(255, 255, 255, 0.6); }

.lgpd-reabrir {
	position: fixed;
	left: 18px; bottom: 18px;
	z-index: 940;
	background: var(--branco);
	border: 1px solid var(--linha);
	color: var(--cinza);
	font-size: 0.75rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	padding: 9px 14px;
	box-shadow: 0 6px 18px rgba(18, 18, 18, 0.08);
}
.lgpd-reabrir:hover { color: var(--vinho); border-color: var(--vinho); }

/* ------------------------------------------------- páginas internas e blog */
.pagina-topo {
	background: var(--off-white);
	border-bottom: 1px solid var(--linha);
	padding: calc(var(--header-h) + 72px) 0 60px;
}
.pagina-topo .section__head { margin-bottom: 0; }

.migalhas {
	font-family: var(--sans);
	font-size: 0.75rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--cinza);
	margin-bottom: 18px;
}
.migalhas a { color: var(--cinza); text-decoration: none; }
.migalhas a:hover { color: var(--vinho); }
.migalhas span { margin-inline: 8px; color: var(--cinza-claro); }

.artigo__titulo { max-width: 24ch; }
.artigo__meta {
	margin: 20px 0 0;
	font-family: var(--sans);
	font-size: 0.8125rem;
	color: var(--cinza);
}
.artigo__capa { margin: 52px auto 0; }
.artigo__capa img { width: 100%; }

.section--lista, .section--pagina { padding-block: clamp(56px, 7vw, 96px); }

.artigo__corpo {
	max-width: 70ch;
	margin-left: calc(var(--rail) + var(--rail-gap));
	padding-top: 8px;
}
.artigo__corpo p,
.artigo__corpo li { font-size: 1.0625rem; line-height: 1.8; }
.artigo__corpo h2 {
	font-size: clamp(1.4rem, 1.2rem + 0.8vw, 1.85rem);
	margin: 2.2em 0 0.7em;
}
.artigo__corpo h3 {
	font-size: 1.25rem;
	margin: 1.9em 0 0.6em;
}
.artigo__corpo h2::after {
	content: "";
	display: block;
	width: 28px;
	height: 1px;
	background: var(--dourado);
	margin-top: 16px;
}
.artigo__corpo ul, .artigo__corpo ol { margin: 0 0 1.4em; padding-left: 0; }
.artigo__corpo ul li { position: relative; padding: 6px 0 6px 24px; list-style: none; }
.artigo__corpo ul li::before {
	content: "";
	position: absolute;
	left: 0; top: 1.05em;
	width: 12px; height: 1px;
	background: var(--dourado);
}
.artigo__corpo ol { padding-left: 22px; }
.artigo__corpo ol li { list-style: decimal; padding: 6px 0; }
.artigo__corpo blockquote {
	margin: 2em 0;
	padding-left: 26px;
	border-left: 2px solid var(--dourado);
	font-family: var(--serif);
	font-style: italic;
	font-size: 1.2rem;
	line-height: 1.5;
	color: var(--preto);
}
.artigo__corpo img { margin: 2em 0; }
.artigo__corpo a { color: var(--vinho); }

.artigo__rodape {
	display: grid;
	grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr);
	gap: 44px;
	max-width: 70ch;
	margin-left: calc(var(--rail) + var(--rail-gap));
	margin-top: 64px;
	padding-top: 34px;
	border-top: 1px solid var(--linha);
}
.artigo__autora { font-family: var(--serif); font-size: 1.125rem; color: var(--preto); margin-bottom: 10px; }
.artigo__bio { font-size: 0.875rem; color: var(--cinza); line-height: 1.65; }
.compartilhar li { margin-bottom: 9px; }
.compartilhar a { font-size: 0.9375rem; text-decoration: none; border-bottom: 1px solid var(--linha); }
.compartilhar a:hover { border-bottom-color: var(--dourado); }

.vazio { color: var(--cinza); font-size: 1.0625rem; }
.erro-acoes { display: flex; flex-wrap: wrap; gap: 14px; }

.busca-form { margin-bottom: 44px; max-width: 480px; }
.busca-form input[type="search"] {
	width: 100%;
	border: 1px solid var(--cinza-claro);
	border-radius: 0;
	padding: 13px 15px;
	font-family: var(--sans);
	font-size: 1rem;
}
.busca-form input[type="submit"] { display: none; }

.pagination, .navigation.pagination { margin-top: 56px; }
.nav-links {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	align-items: center;
	font-family: var(--sans);
	font-size: 0.9375rem;
}
.nav-links .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 42px;
	height: 42px;
	padding: 0 12px;
	border: 1px solid var(--linha);
	color: var(--grafite);
	text-decoration: none;
	transition: border-color 0.3s var(--e), color 0.3s var(--e);
}
.nav-links .page-numbers:hover { border-color: var(--vinho); color: var(--vinho); }
.nav-links .page-numbers.current { background: var(--vinho); border-color: var(--vinho); color: #fff; }
.screen-reader-text + .nav-links { margin-top: 0; }

/* --------------------------------------------------------------- reveal */
.reveal {
	opacity: 0;
	transform: translateY(20px);
	transition: opacity 0.7s var(--e), transform 0.7s var(--e);
}
.reveal.is-visivel { opacity: 1; transform: none; }

/* ------------------------------------------------------------ responsivo */
@media (max-width: 1024px) {
	:root { --rail: 104px; --rail-gap: 30px; }
	.posts--a { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.contato__grid { grid-template-columns: 1fr; row-gap: 52px; }
	.site-footer__inner { grid-template-columns: 1fr 1fr; }
	.site-footer__marca { grid-column: 1 / -1; }
}

@media (max-width: 900px) {
	:root { --header-h: 72px; }

	.nav-toggle { display: block; }

	.nav {
		position: fixed;
		inset: 0;
		flex-direction: column;
		align-items: flex-start;
		justify-content: center;
		gap: 0;
		background: var(--branco);
		padding: 88px 28px 40px;
		transform: translateX(100%);
		transition: transform 0.4s var(--e);
		overflow-y: auto;
	}
	.nav.is-aberto { transform: translateX(0); }
	.nav__list { flex-direction: column; align-items: flex-start; gap: 0; width: 100%; }
	.nav__list > li { width: 100%; border-bottom: 1px solid var(--linha); }
	.nav__list a { display: block; padding: 18px 0; font-size: 1.125rem; }
	.nav__list a::after { display: none; }
	.nav__cta { margin-top: 28px; width: 100%; }
	.nav__cta .btn { width: 100%; padding: 16px 22px; }

	/* No menu aberto o cabeçalho é sempre claro, mesmo sobre o topo escuro. */
	body.nav-aberto .site-header { background: var(--branco); }
	body.nav-aberto .brand__name,
	body.nav-aberto .nav-toggle { color: var(--preto) !important; }
	body.nav-aberto .brand__mark { filter: none !important; }
	body.nav-aberto .nav__list > li > a { color: var(--grafite) !important; }
	body.nav-aberto { overflow: hidden; }

	.nav-toggle[aria-expanded="true"] .nav-toggle__bars span:nth-child(1) { transform: translateY(6.5px) rotate(45deg); }
	.nav-toggle[aria-expanded="true"] .nav-toggle__bars span:nth-child(2) { opacity: 0; }
	.nav-toggle[aria-expanded="true"] .nav-toggle__bars span:nth-child(3) { transform: translateY(-6.5px) rotate(-45deg); }

	/* A margem de averbação vira rótulo acima do título. */
	.section__head,
	.sobre__grid,
	.posts--b .post-card__body { grid-template-columns: 1fr; }
	.section__head > :not(.rail),
	.sobre__bio,
	.sobre__aside,
	.posts--b .post-card__titulo,
	.posts--b .post-card__resumo { grid-column: 1; }
	.rail {
		border-right: 0;
		border-left: 1px solid var(--linha);
		padding: 0 0 0 14px;
		text-align: left;
		margin-bottom: 20px;
	}
	.rail__mark { margin: 0 0 8px 0; }
	.posts--b .post-card__meta { text-align: left; }

	.sobre__aside { margin-top: 48px; }
	.section__acao,
	.essencia__intro,
	.destaque,
	.pilares,
	.pilares__titulo,
	.nota,
	.contato__grid { padding-left: 0; margin-left: 0; }
	.destaque { margin-top: 36px; }
	.pilares__titulo { margin-top: 60px; }

	.areas__grid { grid-template-columns: 1fr; }
	.pilares { grid-template-columns: 1fr; column-gap: 0; }
	.artigo__corpo, .artigo__rodape { margin-left: 0; }
	.artigo__rodape { grid-template-columns: 1fr; gap: 32px; }
	.pagina-topo { padding: calc(var(--header-h) + 48px) 0 44px; }
	.lgpd__categorias { grid-template-columns: 1fr; gap: 14px; }
	.variante-a .hero__inner { padding: calc(var(--header-h) + 68px) 24px 76px; text-align: left; }
	.variante-a .hero__title { margin-inline: 0; }
	.variante-a .hero__rule { margin: 32px 0 26px; }
	.variante-a .hero__sub { margin-inline: 0; }
	.variante-a .hero__actions { justify-content: flex-start; }
	.variante-b .hero__inner { grid-template-columns: 1fr; padding: calc(var(--header-h) + 68px) 24px 76px; }
	.hero__registro { margin-top: 44px; }
}

@media (max-width: 640px) {
	.posts--a { grid-template-columns: 1fr; }
	.form__linha { grid-template-columns: 1fr; }
	.site-footer__inner { grid-template-columns: 1fr; gap: 36px; }
	.hero__actions .btn { width: 100%; }
	.wa-float__label { display: none; }
	.wa-float__botao { padding: 15px; border-radius: 50%; }
	.wa-float { right: 16px; bottom: 16px; }
	.lgpd-reabrir { left: 12px; bottom: 12px; }
	.selos__item img { height: 38px; }
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after {
		animation-duration: 0.01ms !important;
		transition-duration: 0.01ms !important;
	}
	.reveal { opacity: 1; transform: none; }
}
