/* =========================================================================
   Zampier Advogados e Associados, folha de estilo principal
   Paleta e tipografia derivadas do Manual de Identidade Visual da marca.
   ========================================================================= */

/* --- 1. Tokens -------------------------------------------------------- */

:root {
	/* Azul profundo da marca (#0B2239) */
	--azul-900: #06141f;
	--azul-850: #08192b;
	--azul-800: #0b2239;
	--azul-700: #112d4a;
	--azul-600: #173a5d;
	--azul-500: #1f4b75;
	--azul-400: #3a6590;

	/* Dourado da marca (#C9A96B) */
	--ouro-100: #f1e6cc;
	--ouro-300: #ddc596;
	--ouro-500: #c9a96b;
	--ouro-600: #b08f52;
	--ouro-700: #8c703d;

	--areia: #f8f6ef;
	--areia-esc: #a7a7a7;
	--grafite: #2b2b2b;
	--branco: #ffffff;
	--texto: #e4e8ee;
	--texto-fraco: #a9b4c2;

	--fonte-titulo: 'Playfair Display', Georgia, 'Times New Roman', serif;
	--fonte-texto: 'Inter', 'Segoe UI', system-ui, -apple-system, sans-serif;
	--fonte-italico: 'Playfair Display', Georgia, serif;

	--container: 1240px;
	--gutter: 24px;

	--esp-xs: 8px;
	--esp-sm: 16px;
	--esp-md: 28px;
	--esp-lg: 48px;
	--esp-xl: 80px;
	--esp-2xl: 120px;

	--raio: 2px;
	--raio-md: 4px;
	--sombra: 0 18px 50px rgba(0, 0, 0, 0.38);
	--sombra-sm: 0 6px 22px rgba(0, 0, 0, 0.26);
	--transicao: 320ms cubic-bezier(0.22, 0.61, 0.36, 1);

	--header-h: 92px;
	--header-h-scroll: 68px;
}

/* --- 2. Reset --------------------------------------------------------- */

*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
	-webkit-text-size-adjust: 100%;
}

body {
	margin: 0;
	background: var(--azul-900);
	color: var(--texto);
	font-family: var(--fonte-texto);
	font-size: 17px;
	line-height: 1.7;
	font-weight: 300;
	letter-spacing: 0.01em;
	overflow-x: hidden;
	-webkit-font-smoothing: antialiased;
}

img {
	max-width: 100%;
	height: auto;
	display: block;
}

a {
	color: var(--ouro-500);
	text-decoration: none;
	transition: color var(--transicao);
}

a:hover {
	color: var(--ouro-100);
}

button {
	font: inherit;
	cursor: pointer;
}

h1, h2, h3, h4, h5 {
	font-family: var(--fonte-titulo);
	font-weight: 500;
	line-height: 1.18;
	letter-spacing: 0.005em;
	color: var(--branco);
	margin: 0 0 var(--esp-sm);
}

h1 { font-size: clamp(1.95rem, 4.4vw, 3.15rem); }
h2 { font-size: clamp(1.55rem, 2.9vw, 2.2rem); }
h3 { font-size: clamp(1.2rem, 2vw, 1.5rem); }
h4 { font-size: 1.1rem; }

p { margin: 0 0 var(--esp-sm); }

ul, ol { margin: 0 0 var(--esp-sm); padding-left: 1.2em; }

:focus-visible {
	outline: 2px solid var(--ouro-500);
	outline-offset: 3px;
}

.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.skip-link {
	position: absolute;
	left: -9999px;
	top: 0;
	z-index: 100000;
	background: var(--ouro-500);
	color: var(--azul-900);
	padding: 12px 20px;
	font-weight: 500;
}

.skip-link:focus {
	left: 12px;
	top: 12px;
}

/* --- 3. Layout -------------------------------------------------------- */

.container {
	width: 100%;
	max-width: var(--container);
	margin-inline: auto;
	padding-inline: var(--gutter);
}

.container--estreito {
	max-width: 820px;
}

.secao {
	padding-block: var(--esp-2xl);
	position: relative;
}

.secao--compacta { padding-block: var(--esp-xl); }

/* Duas seções de mesmo fundo em sequência não precisam do respiro dobrado. */
.secao--escura + .secao--escura,
.secao--media + .secao--media,
.secao--clara + .secao--clara { padding-top: 0; }
.secao--escura   { background: var(--azul-900); }
.secao--media    { background: var(--azul-850); }
.secao--clara    { background: var(--azul-800); }

.secao__cabecalho {
	max-width: 720px;
	margin-bottom: var(--esp-lg);
}

.secao__cabecalho--centro {
	margin-inline: auto;
	text-align: center;
}

.sobretitulo {
	display: block;
	font-family: var(--fonte-titulo);
	font-size: 0.78rem;
	font-weight: 400;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--areia-esc);
	margin-bottom: var(--esp-sm);
}

/* O marcador é o brasão real da marca, o mesmo arquivo do topo e do rodapé.
   Nada de símbolo desenhado por aproximação. */
.sobretitulo--linha {
	display: flex;
	align-items: center;
	gap: 11px;
}

.sobretitulo--linha::before {
	content: '';
	width: 28px;
	height: 1px;
	flex: none;
	background: var(--ouro-500);
}

.secao__cabecalho--centro .sobretitulo--linha {
	justify-content: center;
}

.lead {
	font-size: 1.12rem;
	color: var(--texto-fraco);
	max-width: 62ch;
}

.destaque-serif {
	font-family: var(--fonte-italico);
	font-style: italic;
	font-weight: 500;
	font-size: 1.12em;
	line-height: 0.9;
	color: var(--ouro-500);
}

/* --- 4. Botões -------------------------------------------------------- */

.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	padding: 15px 32px;
	font-family: var(--fonte-texto);
	font-size: 0.82rem;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	border: 1px solid transparent;
	border-radius: var(--raio);
	cursor: pointer;
	transition: all var(--transicao);
	text-align: center;
}

.btn__wa { width: 18px; height: 18px; flex-shrink: 0; fill: currentColor; }
.btn--header .btn__wa { width: 16px; height: 16px; }

.btn--primario {
	background: linear-gradient(135deg, var(--ouro-500), var(--ouro-300));
	color: var(--azul-900);
	border-color: var(--ouro-500);
}

.btn--primario:hover {
	background: linear-gradient(135deg, var(--ouro-100), var(--ouro-500));
	color: var(--azul-900);
	transform: translateY(-2px);
	box-shadow: 0 12px 30px rgba(201, 169, 107, 0.22);
}

.btn--vazado {
	background: transparent;
	color: var(--ouro-500);
	border-color: rgba(201, 169, 107, 0.5);
}

.btn--vazado:hover {
	border-color: var(--ouro-500);
	background: rgba(201, 169, 107, 0.08);
	color: var(--ouro-100);
}

.btn--claro {
	background: var(--branco);
	color: var(--azul-800);
}

.btn--claro:hover {
	background: var(--areia);
	color: var(--azul-900);
}

.btn--bloco { width: 100%; }

.link-seta {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	font-size: 0.8rem;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--ouro-500);
}

.link-seta::after {
	content: '';
	width: 22px;
	height: 1px;
	background: currentColor;
	transition: width var(--transicao);
}

.link-seta:hover::after { width: 34px; }

/* --- 5. Header -------------------------------------------------------- */

.header {
	position: fixed;
	inset-block-start: 0;
	inset-inline: 0;
	top: 0;
	left: 0;
	right: 0;
	z-index: 900;
	height: var(--header-h);
	display: flex;
	align-items: center;
	background: transparent;
	border-bottom: 1px solid rgba(255, 255, 255, 0.06);
	transition: background var(--transicao), height var(--transicao), box-shadow var(--transicao);
}

/* Sem backdrop-filter aqui: ele criaria um containing block e o menu mobile,
   que é position: fixed, passaria a se posicionar dentro do header. */
body:not(.is-home) .header,
.header.is-scrolled {
	background: rgba(6, 20, 31, 0.97);
}

.header.is-scrolled {
	height: var(--header-h-scroll);
	box-shadow: 0 8px 30px rgba(0, 0, 0, 0.4);
}

.header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--esp-md);
	width: 100%;
	max-width: var(--container);
	margin-inline: auto;
	padding-inline: var(--gutter);
}

.marca {
	display: flex;
	align-items: center;
	gap: 13px;
	flex: none;
}

.marca__icone {
	height: 48px;
	width: auto;
	transition: height var(--transicao);
}

.header.is-scrolled .marca__icone { height: 38px; }

.marca__texto { line-height: 1.15; }

.marca__nome {
	display: block;
	font-family: var(--fonte-titulo);
	font-size: 0.92rem;
	font-weight: 500;
	letter-spacing: 0.1em;
	color: var(--branco);
	white-space: nowrap;
}

.marca__sub {
	display: block;
	font-size: 0.6rem;
	font-weight: 400;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--ouro-500);
	white-space: nowrap;
}

/* Navegação desktop */

.nav__list,
.nav__list ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.nav__list {
	display: flex;
	align-items: center;
	gap: 30px;
}

.nav__list > li { position: relative; }

.nav__list a {
	display: inline-block;
	padding: 8px 0;
	font-size: 0.8rem;
	font-weight: 400;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--texto);
	position: relative;
}

.nav__list > li > a::after {
	content: '';
	position: absolute;
	left: 0;
	bottom: 2px;
	width: 0;
	height: 1px;
	background: var(--ouro-500);
	transition: width var(--transicao);
}

.nav__list > li > a:hover::after,
.nav__list > .current-menu-item > a::after,
.nav__list > .current_page_item > a::after,
.nav__list > .current-menu-parent > a::after {
	width: 100%;
}

.nav__list a:hover,
.nav__list .current-menu-item > a,
.nav__list .current_page_item > a {
	color: var(--ouro-100);
}

/* Submenu */

.nav__list .sub-menu {
	position: absolute;
	top: 100%;
	left: -18px;
	min-width: 250px;
	padding: 10px 0;
	background: var(--azul-800);
	border: 1px solid rgba(201, 169, 107, 0.16);
	box-shadow: var(--sombra);
	opacity: 0;
	visibility: hidden;
	transform: translateY(10px);
	transition: all var(--transicao);
}

.nav__list > li:hover > .sub-menu {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}

.nav__list .sub-menu a {
	display: block;
	padding: 10px 22px;
	text-transform: none;
	letter-spacing: 0.02em;
	font-size: 0.88rem;
	color: var(--texto);
}

.nav__list .sub-menu a:hover {
	background: rgba(201, 169, 107, 0.1);
	color: var(--ouro-100);
}

.header__acoes {
	display: flex;
	align-items: center;
	gap: 18px;
	flex: none;
}

.header__tel {
	font-size: 0.85rem;
	color: var(--texto);
	letter-spacing: 0.04em;
	white-space: nowrap;
}

.header__tel:hover { color: var(--ouro-100); }

.header .btn {
	padding: 12px 24px;
	font-size: 0.72rem;
}

/* Hambúrguer */

.hamburguer {
	display: none;
	width: 44px;
	height: 44px;
	padding: 0;
	background: none;
	border: 0;
	position: relative;
	flex: none;
}

.hamburguer span {
	position: absolute;
	left: 10px;
	width: 24px;
	height: 1.5px;
	background: var(--branco);
	transition: all var(--transicao);
}

.hamburguer span:nth-child(1) { top: 15px; }
.hamburguer span:nth-child(2) { top: 21.5px; }
.hamburguer span:nth-child(3) { top: 28px; }

.hamburguer[aria-expanded='true'] span:nth-child(1) { top: 21.5px; transform: rotate(45deg); }
.hamburguer[aria-expanded='true'] span:nth-child(2) { opacity: 0; }
.hamburguer[aria-expanded='true'] span:nth-child(3) { top: 21.5px; transform: rotate(-45deg); }

/* --- 6. Hero ---------------------------------------------------------- */

.hero {
	position: relative;
	min-height: 100svh;
	display: flex;
	align-items: center;
	padding-block: calc(var(--header-h) + var(--esp-xl)) var(--esp-xl);
	overflow: hidden;
}

.hero__midia {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 0;
}

.hero__midia img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center right;
}

.hero__midia::after {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background:
		linear-gradient(90deg, var(--azul-900) 4%, rgba(6, 20, 31, 0.88) 42%, rgba(6, 20, 31, 0.42) 78%),
		linear-gradient(0deg, var(--azul-900) 2%, transparent 40%);
}

.hero__conteudo {
	position: relative;
	z-index: 2;
	max-width: 700px;
}

.hero__titulo {
	margin-bottom: var(--esp-md);
}

.hero__texto {
	font-size: 1.15rem;
	color: var(--texto-fraco);
	max-width: 56ch;
	margin-bottom: var(--esp-lg);
}

.hero__acoes {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--esp-sm) var(--esp-md);
}

/* Faixa de números */

.numeros {
	position: relative;
	z-index: 2;
	background: rgba(11, 34, 57, 0.72);
	border: 1px solid rgba(201, 169, 107, 0.18);
	backdrop-filter: blur(6px);
	-webkit-backdrop-filter: blur(6px);
	margin-top: var(--esp-xl);
}

.numeros__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
}

.numeros__item {
	padding: var(--esp-md) var(--esp-md);
	border-right: 1px solid rgba(201, 169, 107, 0.14);
}

.numeros__item:last-child { border-right: 0; }

.numeros__valor {
	display: block;
	font-family: var(--fonte-titulo);
	font-size: clamp(1.5rem, 2.6vw, 2.05rem);
	color: var(--ouro-500);
	line-height: 1.1;
	margin-bottom: 4px;
}

.numeros__label {
	display: block;
	font-size: 0.82rem;
	color: var(--texto-fraco);
	line-height: 1.45;
}

/* --- 7. Grid de áreas ------------------------------------------------- */

/* Card que sobra na última linha ocupa o espaço vazio (o destaque conta como dois) */
.areas-grid > .area-card:nth-child(3n+1):last-child { grid-column: span 2; }
.areas-grid > .area-card:nth-child(3n):last-child { grid-column: span 3; }

.areas-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1px;
	background: rgba(201, 169, 107, 0.14);
	border: 1px solid rgba(201, 169, 107, 0.14);
}

.area-card {
	display: flex;
	flex-direction: column;
	padding: var(--esp-lg) var(--esp-md);
	background: var(--azul-850);
	transition: background var(--transicao), transform var(--transicao);
	position: relative;
	min-height: 260px;
}

.area-card:hover {
	background: var(--azul-800);
}

.area-card .icone {
	width: 34px;
	height: 34px;
	color: var(--ouro-500);
	margin-bottom: var(--esp-sm);
	flex: none;
}

.area-card__titulo {
	font-size: 1.22rem;
	margin-bottom: 10px;
	color: var(--branco);
}

.area-card__texto {
	font-size: 0.95rem;
	color: var(--texto-fraco);
	margin-bottom: var(--esp-md);
	flex: 1;
}

.area-card .link-seta { align-self: flex-start; }

/* Card da área principal: ocupa duas colunas e recebe a imagem */

.area-card--destaque {
	grid-column: span 2;
	background:
		linear-gradient(100deg, rgba(6, 20, 31, 0.94) 34%, rgba(6, 20, 31, 0.55) 100%),
		var(--azul-800);
	background-size: cover;
	background-position: center;
	border: 0;
}

.area-card--destaque .area-card__titulo {
	font-size: clamp(1.5rem, 2.6vw, 2rem);
}

.area-card--destaque .area-card__texto {
	max-width: 46ch;
	color: var(--areia-esc);
}

.area-card--destaque .icone { color: var(--ouro-300); }

.area-card__tag {
	display: inline-block;
	align-self: flex-start;
	font-size: 0.66rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--azul-900);
	background: var(--ouro-500);
	padding: 4px 12px;
	margin-bottom: var(--esp-sm);
}

/* --- 8. Bloco alternado texto + imagem -------------------------------- */

.alternado {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--esp-xl);
	align-items: center;
}

.alternado--invertido .alternado__midia { order: 2; }

.alternado__midia {
	position: relative;
}

.alternado__midia img {
	width: 100%;
	border: 1px solid rgba(201, 169, 107, 0.2);
}

.alternado__midia::before,
.alternado__midia::after {
	content: '';
	position: absolute;
	width: 74px;
	height: 74px;
	pointer-events: none;
}

.alternado__midia::before {
	top: -14px;
	left: -14px;
	border-top: 1px solid var(--ouro-500);
	border-left: 1px solid var(--ouro-500);
}

.alternado__midia::after {
	right: -14px;
	bottom: -14px;
	border-bottom: 1px solid var(--ouro-500);
	border-right: 1px solid var(--ouro-500);
}

.alternado__midia img {
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

.lista-numerada {
	list-style: none;
	padding: 0;
	margin: var(--esp-md) 0 0;
	counter-reset: passo;
}

.lista-numerada li {
	counter-increment: passo;
	position: relative;
	padding-left: 54px;
	margin-bottom: var(--esp-md);
}

.lista-numerada li::before {
	content: '0' counter(passo);
	position: absolute;
	left: 0;
	top: 2px;
	font-family: var(--fonte-titulo);
	font-size: 1.05rem;
	color: var(--ouro-500);
}

.lista-numerada strong {
	display: block;
	font-family: var(--fonte-titulo);
	font-weight: 500;
	font-size: 1.05rem;
	color: var(--branco);
	margin-bottom: 4px;
}

.lista-numerada span {
	font-size: 0.95rem;
	color: var(--texto-fraco);
}

/* Lista com marcador dourado */

.lista-check {
	list-style: none;
	padding: 0;
	margin: 0;
}

.lista-check li {
	position: relative;
	padding-left: 28px;
	margin-bottom: 12px;
	font-size: 0.98rem;
	color: var(--texto-fraco);
}

.lista-check li::before {
	content: '';
	position: absolute;
	left: 0;
	top: 11px;
	width: 12px;
	height: 1px;
	background: var(--ouro-500);
}

/* --- 9. Diferenciais numerados ---------------------------------------- */

.diferenciais {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: var(--esp-lg) var(--esp-md);
}

.diferencial__num {
	display: block;
	font-family: var(--fonte-titulo);
	font-size: 1.05rem;
	color: var(--ouro-500);
	margin-bottom: 14px;
	padding-bottom: 14px;
	border-bottom: 1px solid rgba(201, 169, 107, 0.22);
}

.diferencial h3 {
	font-size: 1.1rem;
	margin-bottom: 8px;
}

.diferencial p {
	font-size: 0.93rem;
	color: var(--texto-fraco);
	margin: 0;
}

/* --- 10. Passo a passo ------------------------------------------------ */

.passos {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: var(--esp-md);
	counter-reset: etapa;
}

.passo {
	counter-increment: etapa;
	padding: var(--esp-md);
	border: 1px solid rgba(201, 169, 107, 0.16);
	background: var(--azul-850);
	position: relative;
}

.passo::before {
	content: counter(etapa, decimal-leading-zero);
	font-family: var(--fonte-titulo);
	font-size: 2.2rem;
	color: rgba(201, 169, 107, 0.28);
	line-height: 1;
	display: block;
	margin-bottom: var(--esp-sm);
}

.passo h3 { font-size: 1.05rem; margin-bottom: 8px; }

.passo p { font-size: 0.92rem; color: var(--texto-fraco); margin: 0; }

/* --- 11. Faixa de captura --------------------------------------------- */

.captura {
	position: relative;
	overflow: hidden;
	background: var(--azul-800);
}

.captura__fundo {
	position: absolute;
	top: 0; left: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: 0.45;
	z-index: 0;
}

.captura::after {
	content: '';
	position: absolute;
	top: 0; left: 0;
	width: 100%;
	height: 100%;
	background: linear-gradient(90deg, rgba(6, 20, 31, 0.95), rgba(6, 20, 31, 0.62));
	z-index: 1;
}

.captura .container {
	position: relative;
	z-index: 2;
}

.captura__grid {
	display: grid;
	grid-template-columns: 1.1fr 1fr;
	gap: var(--esp-xl);
	align-items: center;
}

/* --- 12. Formulários -------------------------------------------------- */

.form {
	display: grid;
	gap: var(--esp-sm);
}

.form__linha {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--esp-sm);
}

.form label {
	display: block;
	font-size: 0.76rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--texto-fraco);
	margin-bottom: 7px;
}

.form input[type='text'],
.form input[type='email'],
.form input[type='tel'],
.form select,
.form textarea {
	width: 100%;
	padding: 14px 16px;
	font-family: var(--fonte-texto);
	font-size: 1rem;
	color: var(--branco);
	background: rgba(255, 255, 255, 0.04);
	border: 1px solid rgba(201, 169, 107, 0.24);
	border-radius: var(--raio);
	transition: border-color var(--transicao), background var(--transicao);
	appearance: none;
}

.form textarea {
	min-height: 130px;
	resize: vertical;
}

.form select {
	background-image: linear-gradient(45deg, transparent 50%, var(--ouro-500) 50%), linear-gradient(135deg, var(--ouro-500) 50%, transparent 50%);
	background-position: calc(100% - 20px) 22px, calc(100% - 14px) 22px;
	background-size: 6px 6px, 6px 6px;
	background-repeat: no-repeat;
}

.form select option {
	background: var(--azul-800);
	color: var(--branco);
}

.form input:focus,
.form select:focus,
.form textarea:focus {
	outline: none;
	border-color: var(--ouro-500);
	background: rgba(255, 255, 255, 0.07);
}

.form input::placeholder,
.form textarea::placeholder { color: rgba(169, 180, 194, 0.6); }

.form .form__consent {
	display: flex;
	align-items: flex-start;
	gap: 11px;
	font-size: 0.84rem;
	color: var(--texto-fraco);
	text-transform: none;
	letter-spacing: 0;
	line-height: 1.5;
	margin: 4px 0 0;
}

.form .form__consent input {
	margin: 4px 0 0;
	accent-color: var(--ouro-500);
	flex: none;
	width: 16px;
	height: 16px;
}

.form__aviso {
	display: none;
	padding: 14px 18px;
	font-size: 0.92rem;
	border-radius: var(--raio);
}

.form__aviso.is-ok {
	display: block;
	background: rgba(42, 143, 145, 0.16);
	border: 1px solid var(--azul-400);
	color: var(--branco);
}

.form__aviso.is-erro {
	display: block;
	background: rgba(190, 74, 60, 0.14);
	border: 1px solid #be4a3c;
	color: #f0c4bd;
}

.btn[aria-busy='true'] {
	opacity: 0.62;
	pointer-events: none;
}

/* --- 13. Cards de artigo ---------------------------------------------- */

.artigos-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--esp-md);
}

.artigo-card {
	display: flex;
	flex-direction: column;
	background: var(--azul-850);
	border: 1px solid rgba(201, 169, 107, 0.14);
	transition: border-color var(--transicao), transform var(--transicao);
	height: 100%;
}

.artigo-card:hover {
	border-color: rgba(201, 169, 107, 0.42);
	transform: translateY(-3px);
}

.artigo-card__midia {
	aspect-ratio: 16 / 10;
	overflow: hidden;
	background: var(--azul-800);
}

.artigo-card__midia img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 700ms ease;
}

.artigo-card:hover .artigo-card__midia img { transform: scale(1.05); }

.artigo-card__corpo {
	padding: var(--esp-md);
	display: flex;
	flex-direction: column;
	flex: 1;
}

.artigo-card__meta {
	font-size: 0.7rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--ouro-500);
	margin-bottom: 12px;
}

.artigo-card__titulo {
	font-size: 1.13rem;
	line-height: 1.32;
	margin-bottom: 10px;
}

.artigo-card__titulo a { color: var(--branco); }
.artigo-card__titulo a:hover { color: var(--ouro-100); }

.artigo-card__resumo {
	font-size: 0.93rem;
	color: var(--texto-fraco);
	margin-bottom: var(--esp-sm);
	flex: 1;
}

/* --- 14. FAQ ---------------------------------------------------------- */

.faq { max-width: 860px; margin-inline: auto; }

.faq__item {
	border-bottom: 1px solid rgba(201, 169, 107, 0.18);
}

.faq__botao {
	width: 100%;
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: var(--esp-sm);
	padding: var(--esp-md) 0;
	background: none;
	border: 0;
	text-align: left;
	font-family: var(--fonte-titulo);
	font-size: 1.08rem;
	font-weight: 500;
	color: var(--branco);
	transition: color var(--transicao);
}

.faq__botao:hover { color: var(--ouro-100); }

.faq__sinal {
	position: relative;
	width: 16px;
	height: 16px;
	flex: none;
	margin-top: 6px;
}

.faq__sinal::before,
.faq__sinal::after {
	content: '';
	position: absolute;
	background: var(--ouro-500);
	transition: transform var(--transicao);
}

.faq__sinal::before { top: 7.5px; left: 0; width: 16px; height: 1px; }
.faq__sinal::after  { left: 7.5px; top: 0; width: 1px; height: 16px; }

.faq__botao[aria-expanded='true'] .faq__sinal::after { transform: rotate(90deg); opacity: 0; }

.faq__resposta {
	max-height: 0;
	overflow: hidden;
	transition: max-height 420ms ease;
}

.faq__resposta > div {
	padding-bottom: var(--esp-md);
	color: var(--texto-fraco);
	font-size: 0.98rem;
	max-width: 72ch;
}

/* --- 15. Perfil do advogado ------------------------------------------- */

.perfil {
	display: grid;
	grid-template-columns: 320px 1fr;
	gap: var(--esp-xl);
	align-items: start;
}

.perfil__selo {
	border: 1px solid rgba(201, 169, 107, 0.28);
	background: linear-gradient(160deg, var(--azul-700), var(--azul-900));
	padding: var(--esp-lg) var(--esp-md);
	text-align: center;
}

.perfil__selo img {
	height: 130px;
	width: auto;
	margin: 0 auto var(--esp-md);
}

.perfil__selo strong {
	display: block;
	font-family: var(--fonte-titulo);
	font-size: 1.05rem;
	letter-spacing: 0.06em;
	color: var(--branco);
	margin-bottom: 6px;
}

.perfil__selo span {
	display: block;
	font-size: 0.78rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--ouro-500);
}

.perfil__foto {
	width: 100%;
	border: 1px solid rgba(201, 169, 107, 0.28);
}

/* --- 16. Contato ------------------------------------------------------ */

.contato-grid {
	display: grid;
	grid-template-columns: 1fr 1.1fr;
	gap: var(--esp-xl);
	align-items: start;
}

.contato-dados {
	list-style: none;
	padding: 0;
	margin: var(--esp-md) 0 0;
}

.contato-dados li {
	display: flex;
	gap: 16px;
	padding: 18px 0;
	border-bottom: 1px solid rgba(201, 169, 107, 0.14);
}

.contato-dados .icone {
	width: 20px;
	height: 20px;
	color: var(--ouro-500);
	flex: none;
	margin-top: 4px;
}

.contato-dados strong {
	display: block;
	font-size: 0.72rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--texto-fraco);
	font-weight: 500;
	margin-bottom: 3px;
}

.contato-dados a,
.contato-dados span:not(.icone) {
	color: var(--branco);
	font-size: 1rem;
}

.contato-dados a:hover { color: var(--ouro-100); }

.mapa {
	margin-top: var(--esp-lg);
	border: 1px solid rgba(201, 169, 107, 0.2);
	line-height: 0;
}

.mapa iframe {
	width: 100%;
	height: 340px;
	border: 0;
	filter: grayscale(0.5) saturate(0.7) brightness(0.82);
}

/* --- 17. Conteúdo editorial ------------------------------------------- */

.conteudo {
	font-size: 1.05rem;
	color: var(--texto);
}

.conteudo > * + * { margin-top: var(--esp-sm); }

.conteudo h2 { font-size: 1.7rem; margin-top: var(--esp-lg); }
.conteudo h3 { font-size: 1.3rem; margin-top: var(--esp-md); }

.conteudo a { text-decoration: underline; text-underline-offset: 3px; }

.conteudo ul, .conteudo ol { padding-left: 1.3em; color: var(--texto-fraco); }
.conteudo li { margin-bottom: 8px; }

.conteudo blockquote {
	margin: var(--esp-md) 0;
	padding: var(--esp-sm) var(--esp-md);
	border-left: 2px solid var(--ouro-500);
	background: rgba(201, 169, 107, 0.06);
	font-style: italic;
	color: var(--areia);
}

.conteudo img { margin-block: var(--esp-md); }

.conteudo table {
	width: 100%;
	border-collapse: collapse;
	margin-block: var(--esp-md);
	font-size: 0.95rem;
}

.conteudo th, .conteudo td {
	padding: 12px 14px;
	border: 1px solid rgba(201, 169, 107, 0.18);
	text-align: left;
}

.conteudo th { background: rgba(201, 169, 107, 0.1); color: var(--branco); }

/* --- 18. Página de topo interna --------------------------------------- */

.topo-interno {
	padding-block: calc(var(--header-h) + var(--esp-xl)) var(--esp-lg);
	background: linear-gradient(160deg, var(--azul-800), var(--azul-900));
	border-bottom: 1px solid rgba(201, 169, 107, 0.14);
	position: relative;
	overflow: hidden;
}

.topo-interno__marca {
	position: absolute;
	right: -40px;
	top: 50%;
	transform: translateY(-50%);
	height: 320px;
	opacity: 0.06;
	pointer-events: none;
}

.topo-interno h1 { margin-bottom: 0; }

.topo-interno .lead { margin-top: var(--esp-sm); }

.breadcrumb {
	padding-block: 14px;
	background: var(--azul-900);
	border-bottom: 1px solid rgba(201, 169, 107, 0.1);
	font-size: 0.8rem;
	color: var(--texto-fraco);
}

.breadcrumb .container {
	display: flex;
	flex-wrap: wrap;
	gap: 9px;
	align-items: center;
}

.breadcrumb a { color: var(--texto-fraco); }
.breadcrumb a:hover { color: var(--ouro-500); }
.breadcrumb span[aria-hidden] { color: rgba(201, 169, 107, 0.45); }

/* --- 19. Sidebar de áreas (página interna) ---------------------------- */

.com-lateral {
	display: grid;
	grid-template-columns: 1fr 320px;
	gap: var(--esp-xl);
	align-items: start;
}

.lateral {
	position: sticky;
	top: calc(var(--header-h-scroll) + 24px);
}

.lateral__bloco {
	border: 1px solid rgba(201, 169, 107, 0.2);
	background: var(--azul-850);
	padding: var(--esp-md);
	margin-bottom: var(--esp-md);
}

.lateral__titulo {
	font-size: 0.74rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--ouro-500);
	font-family: var(--fonte-texto);
	font-weight: 500;
	margin-bottom: var(--esp-sm);
	padding-bottom: var(--esp-xs);
	border-bottom: 1px solid rgba(201, 169, 107, 0.18);
}

.lateral__lista {
	list-style: none;
	padding: 0;
	margin: 0;
}

.lateral__lista li { border-bottom: 1px solid rgba(255, 255, 255, 0.05); }
.lateral__lista li:last-child { border-bottom: 0; }

.lateral__lista a {
	display: block;
	padding: 11px 0;
	font-size: 0.94rem;
	color: var(--texto);
}

.lateral__lista a:hover { color: var(--ouro-500); padding-left: 6px; }
.lateral__lista .is-atual a { color: var(--ouro-500); }

/* --- 20. Rodapé ------------------------------------------------------- */

.footer {
	background: var(--azul-900);
	border-top: 1px solid rgba(201, 169, 107, 0.16);
	padding-block: var(--esp-xl) 0;
}

.footer__grid {
	display: grid;
	grid-template-columns: 1.5fr 1fr 1fr 1.3fr;
	gap: var(--esp-lg);
	padding-bottom: var(--esp-xl);
}

.footer__marca img { height: 92px; width: auto; margin-bottom: var(--esp-sm); }

.footer__sobre {
	font-size: 0.92rem;
	color: var(--texto-fraco);
	max-width: 34ch;
}

.footer__titulo {
	font-family: var(--fonte-texto);
	font-size: 0.74rem;
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--ouro-500);
	margin-bottom: var(--esp-sm);
}

.footer ul {
	list-style: none;
	padding: 0;
	margin: 0;
}

.footer li { margin-bottom: 11px; }

.footer li a,
.footer address {
	font-size: 0.93rem;
	color: var(--texto-fraco);
	font-style: normal;
	line-height: 1.65;
}

.footer li a:hover { color: var(--ouro-100); }

.footer__redes {
	display: flex;
	gap: 12px;
	margin-top: var(--esp-md);
}

.footer__redes a {
	display: grid;
	place-items: center;
	width: 40px;
	height: 40px;
	border: 1px solid rgba(201, 169, 107, 0.28);
	color: var(--ouro-500);
	transition: all var(--transicao);
}

.footer__redes a:hover {
	background: var(--ouro-500);
	color: var(--azul-900);
}

.footer__redes svg { width: 18px; height: 18px; }

.footer__base {
	border-top: 1px solid rgba(255, 255, 255, 0.07);
	padding-block: var(--esp-md);
	display: flex;
	flex-wrap: wrap;
	gap: var(--esp-sm) var(--esp-md);
	align-items: center;
	justify-content: space-between;
	font-size: 0.8rem;
	color: rgba(169, 180, 194, 0.75);
}

.footer__base a { color: rgba(169, 180, 194, 0.75); }

@media (min-width: 901px) {
	body.zap-right .footer__base { padding-right: 230px; }
	body.zap-left .footer__base { padding-left: 230px; }
}
.footer__base a:hover { color: var(--ouro-500); }

.footer__oab {
	font-size: 0.78rem;
	line-height: 1.6;
	color: rgba(169, 180, 194, 0.6);
	max-width: 100%;
	padding-bottom: var(--esp-md);
}

/* --- 21. WhatsApp flutuante ------------------------------------------- */

.zap {
	position: fixed;
	bottom: 24px;
	z-index: 940;
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 12px 20px 12px 14px;
	background: #1f8f5f;
	color: #fff;
	border-radius: 60px;
	box-shadow: 0 14px 34px rgba(0, 0, 0, 0.42);
	font-size: 0.88rem;
	font-weight: 400;
	transition: transform var(--transicao), background var(--transicao);
}

.zap--right { right: 24px; }
.zap--left  { left: 24px; }

.zap:hover {
	background: #23a56d;
	color: #fff;
	transform: translateY(-3px);
}

.zap svg { width: 24px; height: 24px; flex: none; fill: currentColor; }

.zap__label { white-space: nowrap; }

/* --- 22. Reveal ------------------------------------------------------- */

.reveal {
	opacity: 0;
	transform: translateY(26px);
	transition: opacity 800ms ease, transform 800ms cubic-bezier(0.22, 0.61, 0.36, 1);
}

.reveal.is-visivel {
	opacity: 1;
	transform: none;
}

.reveal:nth-child(2) { transition-delay: 90ms; }
.reveal:nth-child(3) { transition-delay: 180ms; }
.reveal:nth-child(4) { transition-delay: 270ms; }

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.reveal { opacity: 1; transform: none; transition: none; }
	* { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
}

/* --- 23. Paginação e busca -------------------------------------------- */

.pagination {
	margin-top: var(--esp-xl);
	display: flex;
	justify-content: center;
}

.nav-links {
	display: flex;
	gap: 8px;
	align-items: center;
	flex-wrap: wrap;
}

.page-numbers {
	display: grid;
	place-items: center;
	min-width: 42px;
	height: 42px;
	padding-inline: 12px;
	border: 1px solid rgba(201, 169, 107, 0.22);
	color: var(--texto);
	font-size: 0.9rem;
}

.page-numbers:hover,
.page-numbers.current {
	background: var(--ouro-500);
	border-color: var(--ouro-500);
	color: var(--azul-900);
}

.busca-form {
	display: flex;
	gap: 10px;
	max-width: 460px;
}

.busca-form input[type='search'] {
	flex: 1;
	padding: 13px 16px;
	background: rgba(255, 255, 255, 0.04);
	border: 1px solid rgba(201, 169, 107, 0.24);
	color: var(--branco);
	font-family: var(--fonte-texto);
	font-size: 1rem;
	border-radius: var(--raio);
}

.busca-form input[type='search']:focus {
	outline: none;
	border-color: var(--ouro-500);
}

/* --- 24. Banner LGPD --------------------------------------------------- */

.lgpd {
	position: fixed;
	bottom: 16px;
	z-index: 99999;
	width: min(380px, calc(100vw - 104px));
	padding: 10px 12px;
	background: rgba(6, 20, 31, 0.95);
	border: 1px solid rgba(201, 169, 107, 0.22);
	border-radius: 10px;
	box-shadow: 0 10px 30px rgba(0, 0, 0, 0.4);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	opacity: 0;
	transform: translateY(12px);
	pointer-events: none;
	transition: opacity 350ms ease, transform 350ms ease;
}

.lgpd.is-visivel { opacity: 1; transform: none; pointer-events: auto; }
.lgpd--left  { left: 16px; }
.lgpd--right { right: 16px; }

.lgpd__linha {
	display: flex;
	align-items: center;
	gap: 10px;
}

.lgpd__texto {
	flex: 1;
	margin: 0;
	font-size: 0.76rem;
	line-height: 1.45;
	color: var(--texto-fraco);
}

.lgpd__texto a { color: var(--ouro-500); }

.lgpd__link {
	background: none;
	border: 0;
	padding: 4px;
	color: var(--texto-fraco);
	font-size: 0.74rem;
	text-decoration: underline;
	text-underline-offset: 3px;
	white-space: nowrap;
	cursor: pointer;
}

.lgpd__link:hover { color: var(--ouro-500); }

.lgpd__ok {
	background: var(--ouro-500);
	border: 0;
	border-radius: 6px;
	padding: 6px 12px;
	color: #06141f;
	font-size: 0.74rem;
	font-weight: 600;
	white-space: nowrap;
	cursor: pointer;
}

.lgpd__ok:hover { filter: brightness(1.12); }

.lgpd__detalhes {
	display: none;
	margin-top: 10px;
	padding-top: 4px;
	border-top: 1px solid rgba(201, 169, 107, 0.16);
}

.lgpd__detalhes.is-aberto { display: grid; }
.lgpd__salvar { justify-self: end; margin-top: 8px; }

.lgpd__categoria {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	padding: 10px 0;
	border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.lgpd__categoria strong {
	display: block;
	font-size: 0.8rem;
	color: var(--branco);
	margin-bottom: 2px;
}

.lgpd__categoria p {
	margin: 0;
	font-size: 0.74rem;
	color: var(--texto-fraco);
}

.switch {
	position: relative;
	width: 44px;
	height: 24px;
	flex: none;
	margin-top: 2px;
}

.switch input {
	position: absolute;
	opacity: 0;
	width: 100%;
	height: 100%;
	margin: 0;
	cursor: pointer;
	z-index: 2;
}

.switch__trilho {
	position: absolute;
	top: 0; left: 0;
	width: 44px;
	height: 24px;
	background: rgba(255, 255, 255, 0.14);
	border-radius: 24px;
	transition: background var(--transicao);
}

.switch__trilho::after {
	content: '';
	position: absolute;
	top: 3px;
	left: 3px;
	width: 18px;
	height: 18px;
	background: var(--texto-fraco);
	border-radius: 50%;
	transition: transform var(--transicao), background var(--transicao);
}

.switch input:checked ~ .switch__trilho { background: rgba(201, 169, 107, 0.34); }
.switch input:checked ~ .switch__trilho::after { transform: translateX(20px); background: var(--ouro-500); }
.switch input:disabled { cursor: not-allowed; }
.switch input:disabled ~ .switch__trilho { opacity: 0.55; }
.switch input:focus-visible ~ .switch__trilho { outline: 2px solid var(--ouro-500); outline-offset: 2px; }

/* --- 25. 404 ---------------------------------------------------------- */

.erro-404 {
	min-height: 68vh;
	display: grid;
	place-items: center;
	text-align: center;
	padding-block: calc(var(--header-h) + var(--esp-xl)) var(--esp-xl);
}

.erro-404__num {
	font-family: var(--fonte-titulo);
	font-size: clamp(5rem, 16vw, 11rem);
	line-height: 1;
	color: rgba(201, 169, 107, 0.22);
	margin-bottom: var(--esp-sm);
}

/* =========================================================================
   26. Responsivo
   ========================================================================= */

@media (max-width: 1100px) {
	.numeros__grid { grid-template-columns: repeat(2, 1fr); }
	.numeros__item:nth-child(2) { border-right: 0; }
	.numeros__item:nth-child(-n+2) { border-bottom: 1px solid rgba(201, 169, 107, 0.14); }

	.diferenciais { grid-template-columns: repeat(2, 1fr); }
	.passos { grid-template-columns: repeat(2, 1fr); }
	.areas-grid { grid-template-columns: repeat(2, 1fr); }
	.area-card--destaque { grid-column: span 2; }
	.areas-grid > .area-card:nth-child(n):last-child { grid-column: auto; }
	.areas-grid > .area-card:nth-child(2n):last-child { grid-column: span 2; }
	.footer__grid { grid-template-columns: repeat(2, 1fr); }
	.com-lateral { grid-template-columns: 1fr; }
	.lateral { position: static; }
	.header__tel { display: none; }
}

@media (max-width: 1024px) {
	:root {
		--esp-2xl: 84px;
		--esp-xl: 60px;
		--header-h: 76px;
		--header-h-scroll: 62px;
	}

	.hamburguer { display: block; }

	/* O painel do menu é irmão da marca dentro do header: os dois precisam
	   ficar acima dele para continuarem clicáveis com o menu aberto. */
	.marca,
	.header__acoes {
		position: relative;
		z-index: 895;
	}

	.nav {
		position: fixed;
		top: 0;
		left: 0;
		right: 0;
		bottom: 0;
		width: 100%;
		height: 100%;
		background: var(--azul-900);
		padding: calc(var(--header-h) + 24px) var(--gutter) var(--esp-xl);
		overflow-y: auto;
		opacity: 0;
		visibility: hidden;
		transform: translateY(-14px);
		transition: all var(--transicao);
		z-index: 890;
	}

	.nav.is-aberto {
		opacity: 1;
		visibility: visible;
		transform: none;
	}

	.nav__list {
		flex-direction: column;
		align-items: stretch;
		gap: 0;
	}

	.nav__list > li {
		border-bottom: 1px solid rgba(201, 169, 107, 0.14);
	}

	.nav__list a {
		display: block;
		padding: 17px 0;
		font-size: 1rem;
		letter-spacing: 0.06em;
	}

	.nav__list > li > a::after { display: none; }

	/* O hover do desktop não pode brigar com o acordeão do mobile */
	.nav__list .sub-menu {
		position: static;
		opacity: 1;
		visibility: visible;
		transform: none;
		min-width: 0;
		background: transparent;
		border: 0;
		box-shadow: none;
		padding: 0;
		max-height: 0;
		overflow: hidden;
		transition: max-height 380ms ease;
	}

	.nav__list > li:hover > .sub-menu { opacity: 1; visibility: visible; }

	.nav__list > li.is-aberto > .sub-menu { max-height: 620px; }

	.nav__list .sub-menu a {
		padding: 12px 0 12px 18px;
		font-size: 0.93rem;
		color: var(--texto-fraco);
	}

	.header__acoes .btn { display: none; }

	.hero { min-height: auto; padding-block: calc(var(--header-h) + var(--esp-xl)) var(--esp-xl); }

	.hero__midia::after {
		background:
			linear-gradient(180deg, rgba(6, 20, 31, 0.9) 0%, rgba(6, 20, 31, 0.78) 55%, var(--azul-900) 100%),
			linear-gradient(90deg, var(--azul-900) 0%, rgba(6, 20, 31, 0.5) 100%);
	}

	.alternado,
	.captura__grid,
	.contato-grid,
	.perfil {
		grid-template-columns: 1fr;
		gap: var(--esp-lg);
	}

	.alternado--invertido .alternado__midia { order: 0; }
	.alternado__midia::before,
	.alternado__midia::after { display: none; }

	.artigos-grid { grid-template-columns: repeat(2, 1fr); }

	.perfil__selo { max-width: 320px; }
}

@media (max-width: 700px) {
	body { font-size: 16px; }

	:root {
		--esp-2xl: 64px;
		--esp-xl: 48px;
		--gutter: 20px;
	}

	.marca__icone { height: 40px; }
	.marca__nome { font-size: 0.8rem; }
	.marca__sub { font-size: 0.52rem; letter-spacing: 0.12em; }

	.areas-grid { grid-template-columns: 1fr; }
	.area-card--destaque { grid-column: span 1; min-height: 320px; }
	.areas-grid > .area-card:nth-child(n):last-child { grid-column: auto; }
	.artigos-grid { grid-template-columns: 1fr; }
	.diferenciais { grid-template-columns: 1fr; gap: var(--esp-md); }
	.passos { grid-template-columns: 1fr; }
	.footer__grid { grid-template-columns: 1fr; gap: var(--esp-md); }

	.form__linha { grid-template-columns: 1fr; }

	.hero__acoes { flex-direction: column; align-items: stretch; }
	.hero__acoes .btn { width: 100%; }
	.hero__acoes .link-seta { justify-content: center; }

	.numeros__grid { grid-template-columns: repeat(2, 1fr); }
	.numeros__item { padding: var(--esp-sm) var(--esp-sm); }

	.zap__label { display: none; }
	.zap { padding: 14px; border-radius: 50%; }

	.footer__base { justify-content: flex-start; }

	.topo-interno__marca { display: none; }

}

@media (max-width: 359px) {
	.numeros__grid { grid-template-columns: 1fr; }
	.numeros__item { border-right: 0; border-bottom: 1px solid rgba(201, 169, 107, 0.14); }
	.numeros__item:last-child { border-bottom: 0; }
}

/* Link discreto (currículo Lattes) */

.link-discreto {
	margin-top: 14px;
	font-size: 0.88rem;
}

.link-discreto a {
	color: var(--texto-fraco);
	text-decoration: none;
	border-bottom: 1px solid rgba(201, 169, 107, 0.35);
	padding-bottom: 2px;
	transition: color 0.2s ease, border-color 0.2s ease;
}

.link-discreto a:hover,
.link-discreto a:focus-visible {
	color: var(--ouro-500);
	border-color: var(--ouro-500);
}

/* Aviso de direitos autorais dos artigos */
.aviso-autoral {
	display: flex;
	gap: 16px;
	align-items: flex-start;
	margin: 0 0 48px;
	padding: 20px 24px;
	border: 1px solid rgba(201, 169, 107, 0.45);
	border-left: 3px solid var(--ouro-500);
	background: rgba(201, 169, 107, 0.07);
}
.aviso-autoral .icone { flex: 0 0 26px; width: 26px; height: 26px; color: var(--ouro-500); margin-top: 2px; }
.aviso-autoral p { margin: 0; font-size: 0.95rem; line-height: 1.6; color: var(--ouro-100); }
.aviso-autoral--lista { max-width: 860px; margin-inline: auto; }

/* =========================================================================
   Zampier: camada da marca sobre a base
   Hero, header e seções claras seguem o mockup e o brandboard do cliente.
   ========================================================================= */

h1, h2, h3, h4, h5 { font-weight: 400; letter-spacing: 0; }

.sobretitulo {
	font-family: var(--fonte-texto);
	font-size: 0.72rem;
	font-weight: 500;
	letter-spacing: 0.28em;
	color: var(--ouro-500);
}

.destaque-serif { font-weight: 400; font-size: 1em; line-height: inherit; }

.filete {
	display: block;
	width: 64px;
	height: 1px;
	background: var(--ouro-500);
	margin: 0 0 var(--esp-md);
}

/* Botão de contorno dourado, igual ao "Fale conosco" do mockup */

.btn--contorno {
	background: transparent;
	color: var(--branco);
	border-color: var(--ouro-500);
	padding: 17px 30px;
	font-size: 0.74rem;
	letter-spacing: 0.24em;
	gap: 16px;
}

.btn--contorno:hover {
	background: var(--ouro-500);
	color: var(--azul-900);
}

.btn__seta { width: 18px; height: 18px; transition: transform var(--transicao); }
.btn--contorno:hover .btn__seta { transform: translateX(4px); }

/* --- Header --------------------------------------------------------------- */

.header { border-bottom-color: transparent; }

body:not(.is-home) .header,
.header.is-scrolled { background: rgba(11, 34, 57, 0.97); }

.marca__logo {
	height: 46px;
	width: auto;
	transition: height var(--transicao);
}

.header.is-scrolled .marca__logo { height: 36px; }

.nav { margin-left: auto; }

.nav__list { gap: 38px; }

.nav__list > li > a {
	font-size: 0.72rem;
	font-weight: 500;
	letter-spacing: 0.2em;
	color: var(--branco);
}

.header__acoes { gap: 22px; margin-left: 38px; }

.header__busca {
	display: inline-flex;
	width: 40px;
	height: 40px;
	align-items: center;
	justify-content: center;
	padding: 0;
	background: none;
	border: 0;
	color: var(--branco);
	transition: color var(--transicao);
}

.header__busca:hover { color: var(--ouro-500); }
.header__busca svg { width: 20px; height: 20px; }

.header__filete {
	display: block;
	width: 64px;
	height: 1px;
	background: rgba(255, 255, 255, 0.55);
}

/* Busca em sobreposição */

.busca-overlay {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 950;
	background: var(--azul-800);
	border-bottom: 1px solid rgba(201, 169, 107, 0.3);
	padding-block: 34px;
	box-shadow: var(--sombra);
}

.busca-overlay[hidden] { display: none; }

.busca-overlay .container { position: relative; }

.busca-overlay__form {
	display: flex;
	gap: 16px;
	max-width: 760px;
	padding-right: 56px;
}

.busca-overlay__form input {
	flex: 1;
	min-width: 0;
	background: transparent;
	border: 0;
	border-bottom: 1px solid rgba(201, 169, 107, 0.5);
	color: var(--branco);
	font-family: var(--fonte-titulo);
	font-size: 1.5rem;
	padding: 8px 0;
}

.busca-overlay__form input:focus { outline: none; border-bottom-color: var(--ouro-500); }

.busca-overlay__fechar {
	position: absolute;
	right: var(--gutter);
	top: 50%;
	transform: translateY(-50%);
	background: none;
	border: 0;
	color: var(--branco);
	font-size: 2rem;
	line-height: 1;
	padding: 4px 8px;
}

/* --- Hero ----------------------------------------------------------------- */

.hero { align-items: stretch; }

.hero__midia img { object-position: center; }

.hero__midia::after {
	background:
		linear-gradient(90deg, rgba(6, 20, 31, 0.78) 0%, rgba(6, 20, 31, 0.45) 45%, rgba(6, 20, 31, 0.05) 75%),
		linear-gradient(0deg, rgba(6, 20, 31, 0.7) 0%, transparent 35%),
		linear-gradient(180deg, rgba(6, 20, 31, 0.55) 0%, transparent 22%);
}

.hero__container {
	position: relative;
	z-index: 2;
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: var(--esp-lg);
	align-items: center;
	width: 100%;
}

.hero__conteudo { max-width: 640px; }

.hero__titulo {
	font-size: clamp(2.5rem, 5.2vw, 4.3rem);
	line-height: 1.1;
	font-weight: 400;
	margin-bottom: var(--esp-md);
}

.hero__texto {
	font-size: 1.12rem;
	color: rgba(255, 255, 255, 0.88);
	max-width: 46ch;
	margin-bottom: var(--esp-lg);
}

.hero__lemas {
	align-self: stretch;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	padding-block: var(--esp-sm);
	min-height: 420px;
}

.hero__lema {
	margin: 0;
	font-size: 0.72rem;
	font-weight: 400;
	line-height: 2.1;
	letter-spacing: 0.34em;
	text-transform: uppercase;
	color: rgba(248, 246, 239, 0.85);
}

.hero__lema:first-child::after {
	content: '';
	display: block;
	width: 44px;
	height: 1px;
	margin-top: 14px;
	background: var(--ouro-500);
}

/* --- Seções claras (off-white do brandboard) ------------------------------ */

.secao--offwhite {
	background: var(--areia);
	color: #4a4f57;
}

.secao--offwhite h2,
.secao--offwhite h3 { color: var(--azul-800); }

.secao--offwhite .sobretitulo { color: var(--ouro-700); }
.secao--offwhite .sobretitulo--linha::before { background: var(--ouro-600); }
.secao--offwhite .destaque-serif { color: var(--ouro-700); }
.secao--offwhite .lead { color: var(--grafite); }
.secao--offwhite .lista-check li { color: #4a4f57; }
.secao--offwhite .lista-check li::before { background: var(--ouro-600); }

.secao--offwhite .btn--contorno { color: var(--azul-800); border-color: var(--ouro-600); }
.secao--offwhite .btn--contorno:hover { background: var(--azul-800); border-color: var(--azul-800); color: var(--branco); }

.secao--offwhite .passo {
	background: var(--branco);
	border-color: rgba(11, 34, 57, 0.1);
	box-shadow: 0 10px 30px rgba(11, 34, 57, 0.06);
}

.secao--offwhite .passo p { color: #5a606a; }
.secao--offwhite .passo::before { color: var(--ouro-600); }

.secao--offwhite + .secao--offwhite { padding-top: 0; }

.alternado__acao { margin-top: 28px; }

.alternado__midia--vertical img {
	aspect-ratio: 4 / 5;
	object-fit: cover;
	width: 100%;
	max-height: 640px;
}

/* --- Áreas com fotografia --------------------------------------------------- */

.areas-grid { gap: 2px; background: transparent; border: 0; }

.areas-grid > .area-card:nth-child(n):last-child { grid-column: auto; }

.area-card {
	min-height: 300px;
	justify-content: flex-end;
	background-color: var(--azul-800);
	background-size: cover;
	background-position: center;
	overflow: hidden;
	isolation: isolate;
}

.area-card::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: -1;
	background: linear-gradient(180deg, rgba(6, 20, 31, 0.55) 0%, rgba(6, 20, 31, 0.9) 70%);
	transition: background var(--transicao);
}

.area-card:hover { background-color: var(--azul-800); }
.area-card:hover::before { background: linear-gradient(180deg, rgba(11, 34, 57, 0.4) 0%, rgba(6, 20, 31, 0.92) 70%); }

.area-card__texto { flex: none; color: rgba(228, 232, 238, 0.82); }

.area-card--destaque {
	grid-column: span 2;
	grid-row: span 2;
	background-image: none;
}

.area-card--destaque::before {
	background: linear-gradient(100deg, rgba(6, 20, 31, 0.92) 30%, rgba(6, 20, 31, 0.4) 100%);
}

/* --- Rodapé: faixa da marca --------------------------------------------- */

.footer__logo { height: 52px; width: auto; margin-bottom: var(--esp-sm); }

.footer__lema {
	font-size: 0.68rem;
	letter-spacing: 0.3em;
	text-transform: uppercase;
	color: var(--ouro-500);
	margin-bottom: var(--esp-sm);
}

@media (max-width: 1024px) {
	.header__filete { display: none; }
	.header__acoes { margin-left: 0; gap: 6px; }
	.hero__container { grid-template-columns: 1fr; }
	.hero__lemas { display: none; }
	.hero { min-height: 88svh; align-items: flex-end; }
	.hero__container { align-items: end; }

	.hero__midia::after {
		background:
			linear-gradient(180deg, rgba(6, 20, 31, 0.55) 0%, rgba(6, 20, 31, 0.25) 35%, rgba(6, 20, 31, 0.92) 78%, var(--azul-900) 100%);
	}

	.areas-grid { grid-template-columns: repeat(2, 1fr); }
	.area-card--destaque { grid-column: span 2; grid-row: auto; min-height: 340px; }
	.areas-grid > .area-card:nth-child(2n):last-child { grid-column: auto; }
}

@media (max-width: 768px) {
	.marca__logo { height: 36px; }
	.header.is-scrolled .marca__logo { height: 32px; }
	.hero__titulo { font-size: clamp(2.1rem, 9vw, 2.7rem); }
	.hero__texto { font-size: 1rem; }
	.busca-overlay__form { flex-direction: column; padding-right: 44px; }
	.busca-overlay__form input { font-size: 1.2rem; }
}

@media (max-width: 700px) {
	.areas-grid { grid-template-columns: 1fr; }
	.area-card--destaque { grid-column: auto; }
	.area-card { min-height: 260px; }
}

@media (min-width: 1025px) {
	.nav__list .sub-menu { min-width: 260px; }
	.nav__list .sub-menu a { white-space: nowrap; }
}

/* --- Cards de área: hover animado ----------------------------------------
   Gradiente não interpola com transition, então a foto vai numa camada
   própria (zoom lento) e o escurecimento varia por opacidade. */

.area-card {
	background-image: none;
	transition: transform 600ms cubic-bezier(0.22, 0.61, 0.36, 1), box-shadow 600ms cubic-bezier(0.22, 0.61, 0.36, 1);
}

.area-card::after {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: -2;
	background: var(--zp-foto) center / cover no-repeat;
	transform: scale(1.001);
	transition: transform 1200ms cubic-bezier(0.22, 0.61, 0.36, 1), filter 900ms ease;
	filter: saturate(0.85);
}

.area-card::before,
.area-card:hover::before {
	background: linear-gradient(180deg, rgba(6, 20, 31, 0.55) 0%, rgba(6, 20, 31, 0.92) 72%);
	transition: opacity 700ms ease;
}

.area-card--destaque::before,
.area-card--destaque:hover::before {
	background: linear-gradient(100deg, rgba(6, 20, 31, 0.92) 30%, rgba(6, 20, 31, 0.4) 100%);
}

.area-card:hover { box-shadow: inset 0 0 0 1px rgba(201, 169, 107, 0.45); }
.area-card:hover::after { transform: scale(1.06); filter: saturate(1); }
.area-card:hover::before { opacity: 0.82; }

.area-card .icone,
.area-card__titulo,
.area-card__texto,
.area-card .link-seta {
	transition: transform 600ms cubic-bezier(0.22, 0.61, 0.36, 1), color 400ms ease;
}

.area-card:hover .icone,
.area-card:hover .area-card__titulo,
.area-card:hover .area-card__texto,
.area-card:hover .link-seta { transform: translateY(-6px); }

.area-card:hover .icone { color: var(--ouro-300); }
.area-card:hover .link-seta::after { width: 34px; }

@media (prefers-reduced-motion: reduce) {
	.area-card::after,
	.area-card::before,
	.area-card .icone,
	.area-card__titulo,
	.area-card__texto,
	.area-card .link-seta { transition: none; }
}

/* =========================================================================
   Landing page: Advogado Imobiliário em Curitiba
   ========================================================================= */

.btn--header { padding: 12px 22px; font-size: 0.68rem; }
.header__acoes--lp { margin-left: auto; }

.lp-hero {
	position: relative;
	padding-block: calc(var(--header-h) + var(--esp-xl)) var(--esp-xl);
	overflow: hidden;
}

.lp-hero__midia {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 0;
}

.lp-hero__midia img { width: 100%; height: 100%; object-fit: cover; }

.lp-hero__midia::after {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: radial-gradient(ellipse at center, rgba(6, 20, 31, 0.9) 0%, rgba(6, 20, 31, 0.78) 70%, rgba(6, 20, 31, 0.7) 100%);
}

.lp-hero__grid {
	position: relative;
	z-index: 2;
	display: grid;
	grid-template-columns: 1fr;
}

.lp-hero__texto { max-width: 820px; margin-inline: auto; text-align: center; }
.lp-hero .sobretitulo--linha { justify-content: center; }
.lp-hero .filete { margin-inline: auto; }
.lp-hero .lead { margin-inline: auto; }
.lp-hero .lista-check { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 32px; margin-top: var(--esp-md); }
.lp-hero .lista-check li { margin-bottom: 0; }

.lp-hero h1 {
	font-size: clamp(2.3rem, 4.6vw, 3.8rem);
	line-height: 1.1;
	margin-bottom: var(--esp-md);
}

.lp-hero .lead { color: rgba(255, 255, 255, 0.86); max-width: 52ch; }
.lp-hero .lista-check li { color: rgba(228, 232, 238, 0.86); }
.lp-hero__acoes { margin-top: var(--esp-md); }

.lp-situacoes {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 20px;
}

.lp-situacao {
	display: flex;
	flex-direction: column;
	color: inherit;
	text-decoration: none;
	background: var(--branco);
	border: 1px solid rgba(11, 34, 57, 0.08);
	padding: var(--esp-md);
	box-shadow: 0 10px 30px rgba(11, 34, 57, 0.05);
	transition: transform 500ms cubic-bezier(0.22, 0.61, 0.36, 1), box-shadow 500ms ease, border-color 500ms ease;
}

.lp-situacao:hover {
	transform: translateY(-4px);
	border-color: rgba(176, 143, 82, 0.45);
	box-shadow: 0 18px 40px rgba(11, 34, 57, 0.1);
}

.lp-situacao .icone { width: 32px; height: 32px; color: var(--ouro-600); margin-bottom: var(--esp-sm); }
.lp-situacao h3 { font-size: 1.12rem; margin-bottom: 8px; }
.lp-situacao p { font-size: 0.92rem; color: #5a606a; margin: 0; }
.lp-situacao__cta {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-top: auto;
	padding-top: var(--esp-sm);
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--ouro-600);
}
.lp-situacao__cta .btn__wa { width: 16px; height: 16px; }
.lp-situacao:focus-visible { outline: 2px solid var(--ouro-600); outline-offset: 3px; }

.lp-acao { margin: var(--esp-lg) 0 0; text-align: center; }

.lp-endereco { font-size: 0.88rem; color: var(--ouro-300); margin-top: var(--esp-md); }

.lp-cidades {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 12px;
}

.lp-cidades li {
	padding: 10px 20px;
	border: 1px solid rgba(201, 169, 107, 0.35);
	font-size: 0.8rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--areia);
}

.lp-final { max-width: 760px; margin-inline: auto; text-align: center; position: relative; z-index: 2; }
.lp-final .lead { margin-bottom: var(--esp-lg); }

.footer__lp { text-align: center; margin-bottom: var(--esp-lg); }
.footer__lp .footer__logo { margin-inline: auto; }
.footer__lp p { font-size: 0.88rem; color: var(--texto-fraco); margin: 0; }

@media (max-width: 1024px) {
	.lp-situacoes { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 700px) {
	.lp-situacoes { grid-template-columns: 1fr; }
	.btn--header { padding: 10px 14px; font-size: 0.62rem; letter-spacing: 0.14em; }
}

@media (max-width: 1024px) {
	.header__acoes--lp .btn { display: inline-flex; }
}

@media (max-width: 700px) {
	.so-desktop { display: none; }
	.header__acoes--lp { flex: none; }
}
