/*
 * Amaral & Carvalho — estilos do tema (layout V2 do Figma).
 *
 * O que fica aqui é o que o Elementor não expressa sozinho: efeitos (brilho dos botões e
 * linhas douradas), setas, sobretítulos com traço, cabeçalho/menus, FAQ, tabelas e listas
 * dos artigos, formulários e a listagem do blog. Cores, tipografia e espaçamentos de cada
 * bloco continuam editáveis no próprio Elementor.
 *
 * Sumário
 *  1. Tokens            8. Tabelas, listas e índice (artigos)
 *  2. Base              9. FAQ (acordeão)
 *  3. Sobretítulo      10. Formulários (Contact Form 7)
 *  4. Botões e links   11. Blog (listagem e cartões)
 *  5. Linhas douradas  12. Utilidades
 *  6. Heróis           13. Responsivo
 *  7. Cabeçalho/rodapé 14. Movimento reduzido
 */

/* ============================================================== 1. Tokens */
:root {
	--ac-navy-deep: #071426;
	--ac-navy: #0B1D3A;
	--ac-gold: #C6A664;
	--ac-gold-hover: #EEC267;
	--ac-gold-dark: #AD8D4B;
	--ac-gold-deep: #8B6831;
	--ac-gold-light: #E4D4AC;
	--ac-paper: #F5F0E6;
	--ac-paper-deep: #ECE1CB;
	--ac-ink: #071426;
	--ac-font-display: "DM Sans", system-ui, sans-serif;
	--ac-font-body: "Poppins", system-ui, sans-serif;
	/* Curva "Slow" do Figma (mola massa 1, rigidez 80, amortecimento 20). */
	--ac-ease-slow: cubic-bezier(.24, .75, 0, 1);
	--ac-ease-out: cubic-bezier(0, 0, .58, 1);
	--ac-header-offset: 0px;
}

/* ============================================================== 2. Base */
html {
	-webkit-text-size-adjust: 100%;
	scroll-behavior: smooth;
}

body.ac-site {
	margin: 0;
	background: var(--ac-paper);
	color: var(--ac-ink);
	font-family: var(--ac-font-body);
	font-weight: 300;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	/* O Figma usa "Optical size: Auto" na DM Sans (opsz = tamanho da fonte). */
	font-optical-sizing: auto;
}

.ac-site-content {
	display: block;
}

/* Negrito dentro de títulos = peso 500 (padrão do layout: "Você não está <b>exagerando.</b>") */
.elementor-heading-title strong,
.elementor-heading-title b {
	font-weight: 500;
}

.elementor-widget-text-editor strong,
.elementor-widget-text-editor b {
	font-weight: 500;
}

.elementor .elementor-widget-text-editor > :last-child,
.elementor .elementor-widget-text-editor p:last-child {
	margin-bottom: 0 !important;
}

.elementor-widget-text-editor p {
	margin-top: 0;
}

/* Links sem estilo próprio herdam a cor do texto (o tema base usa rosa #c36).
 * :where() zera a especificidade: qualquer regra de componente continua valendo. */
:where(body.ac-site) a {
	color: inherit;
}

.elementor a {
	text-decoration: none;
	transition: color .3s var(--ac-ease-out), opacity .3s var(--ac-ease-out);
}

.ac-form__consent a {
	text-decoration: underline;
	text-underline-offset: 2px;
}

.ac-form__consent a:hover {
	color: var(--ac-gold-light);
}

.elementor-widget-text-editor a {
	color: inherit;
	text-decoration: underline;
	text-decoration-color: rgba(198, 166, 100, .8);
	text-underline-offset: 3px;
}

.elementor-widget-text-editor a:hover {
	color: var(--ac-gold-deep);
}

img {
	max-width: 100%;
	height: auto;
}

.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute !important;
	width: 1px;
	word-wrap: normal !important;
}

.skip-link:focus {
	clip: auto;
	clip-path: none;
	height: auto;
	width: auto;
	left: 16px;
	top: 16px;
	z-index: 100000;
	padding: 12px 20px;
	background: var(--ac-paper);
	color: var(--ac-ink);
	font: 500 14px var(--ac-font-display);
}

:focus-visible {
	outline: 2px solid var(--ac-gold);
	outline-offset: 3px;
}

/* ============================================================== 3. Sobretítulo (eyebrow)
 * Widget Título com a classe "ac-eyebrow": traço de 40×1px + 16px + texto em caixa alta.
 * Cor do traço: dourado. Com "ac-eyebrow--traco-texto", o traço usa a cor do texto.
 */
.ac-eyebrow .elementor-heading-title {
	display: flex;
	align-items: center;
	gap: 16px;
}

.ac-eyebrow .elementor-heading-title::before {
	content: "";
	flex: none;
	width: 40px;
	height: 1px;
	background: var(--ac-eyebrow-line, var(--ac-gold));
}

.ac-eyebrow--traco-texto .elementor-heading-title::before {
	background: currentColor;
}

.ac-eyebrow--sem-traco .elementor-heading-title::before {
	display: none;
}

/* ============================================================== 4. Botões e links
 * Widget Botão com as classes:
 *   ac-btn ac-btn--ouro     dourado, com brilho que atravessa em loop (Figma: 1,67 s "Slow")
 *   ac-btn ac-btn--navy     azul-marinho, mesmo brilho
 *   ac-btn ac-btn--contorno contorno claro
 *   ac-link                 texto com seta e sublinhado dourado animado
 * A seta "→" é adicionada pelo CSS (não precisa digitar).
 */
.ac-btn .elementor-button,
.ac-link .elementor-button {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	isolation: isolate;
	overflow: hidden;
	border-radius: 0;
	transition: background-color .3s var(--ac-ease-out), color .3s var(--ac-ease-out), border-color .3s var(--ac-ease-out);
}

.ac-btn .elementor-button-content-wrapper,
.ac-link .elementor-button-content-wrapper {
	display: inline-flex;
	align-items: center;
	gap: var(--ac-btn-gap, 8px);
}

.ac-btn .elementor-button-content-wrapper::after,
.ac-link .elementor-button-content-wrapper::after,
.ac-arrow::after {
	content: "→";
	flex: none;
	font-family: var(--ac-font-display);
	font-weight: 300;
	font-size: 16px;
	line-height: 21px;
	letter-spacing: 0;
	text-transform: none;
	color: var(--ac-arrow-color, currentColor);
}

.ac-sem-seta .elementor-button-content-wrapper::after {
	content: none;
}

/* Brilho (duas formas desfocadas, giradas 20,12°), idêntico ao componente do Figma. */
.ac-btn--ouro .elementor-button::before,
.ac-btn--ouro .elementor-button::after,
.ac-btn--navy .elementor-button::before,
.ac-btn--navy .elementor-button::after,
.ac-shine::before,
.ac-shine::after {
	content: "";
	position: absolute;
	z-index: -1;
	pointer-events: none;
	transform: rotate(20.12deg);
	filter: blur(7.95px);
	animation: ac-btn-shine 1.667s var(--ac-ease-slow) infinite;
	transition: opacity .3s var(--ac-ease-out);
}

.ac-btn--ouro .elementor-button::before,
.ac-btn--navy .elementor-button::before,
.ac-shine::before {
	--ac-shine-start: -48.33px;
	--ac-shine-end: calc(100% + 13.43px);
	left: -48.33px;
	top: -19.07px;
	width: 40.92px;
	height: 104.72px;
	background: #FFD681;
}

.ac-btn--ouro .elementor-button::after,
.ac-btn--navy .elementor-button::after,
.ac-shine::after {
	--ac-shine-start: -22.08px;
	--ac-shine-end: calc(100% + 27.92px);
	left: -22.08px;
	top: -19.72px;
	width: 12px;
	height: 87px;
	background: #FFF6E4;
}

.ac-btn--navy .elementor-button::before {
	background: #3C558D;
	width: 34px;
	height: 87px;
	left: -45.92px;
	top: -19.72px;
	--ac-shine-start: -45.92px;
}

@keyframes ac-btn-shine {
	from {
		left: var(--ac-shine-start);
	}
	to {
		left: var(--ac-shine-end);
	}
}

.ac-btn--ouro .elementor-button:hover::before,
.ac-btn--ouro .elementor-button:hover::after,
.ac-btn--navy .elementor-button:hover::before,
.ac-btn--navy .elementor-button:hover::after,
.ac-btn--ouro .elementor-button:focus-visible::before,
.ac-btn--ouro .elementor-button:focus-visible::after {
	opacity: 0;
}

.ac-btn--ouro {
	--ac-arrow-color: var(--ac-navy-deep);
}

.ac-btn--contorno {
	--ac-btn-gap: 14px;
}

.ac-btn--contorno .elementor-button:hover {
	background-color: rgba(245, 240, 230, .08);
}

/* Link de texto (Figma "Link": texto + seta, 8px, sublinhado de 1px com brilho em loop de 2,08 s). */
.ac-link {
	--ac-btn-gap: 12px;
	--ac-link-line: 1px;
}

.ac-link .elementor-button {
	padding: 0 0 calc(8px + var(--ac-link-line)) 0;
	background: none;
	overflow: visible;
}

.ac-link .elementor-button::after,
.ac-textlink::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: var(--ac-link-line, 1px);
	background:
		linear-gradient(90deg, #C7A764 0%, #C9A865 6.2%, #CDAC68 12.5%, #D5B46F 18.8%, #E0BF7A 25%, #EBCB89 31.2%, #F5D698 37.5%, #FADEA5 43.8%, #FCE1AA 50%, #FBDFA7 56.2%, #F6D99C 62.5%, #EECE8C 68.8%, #E2C17D 75%, #D7B671 81.2%, #CEAD69 87.5%, #C9A966 93.8%, #C7A764 100%) -44px 0 / 64px 100% no-repeat,
		var(--ac-gold);
	animation: ac-line-shine 2.084s var(--ac-ease-slow) infinite;
}

.ac-link--linha-2 {
	--ac-link-line: 2px;
}

.ac-link--claro .elementor-button::after {
	background: var(--ac-paper);
	animation: none;
}

@keyframes ac-line-shine {
	from {
		background-position: -44px 0, 0 0;
	}
	to {
		background-position: calc(100% + 64px) 0, 0 0;
	}
}

.ac-link .elementor-button:hover {
	opacity: .75;
}

/* Versão HTML do link (usada pelo tema, ex.: cartões do blog). */
.ac-textlink {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 12px;
	padding-bottom: 9px;
	font: 500 13px/1.3 var(--ac-font-display);
	letter-spacing: 1.56px;
	text-transform: uppercase;
	color: var(--ac-ink);
	text-decoration: none;
}

.ac-textlink::before {
	content: "→";
	order: 2;
	font: 300 16px/21px var(--ac-font-display);
	letter-spacing: 0;
}

.ac-textlink:hover {
	opacity: .75;
}

/* ============================================================== 5. Linhas douradas entre seções
 * Container de seção com "ac-linha-topo" ou "ac-linha-base": barra dourada de 5px com brilho
 * que atravessa em loop (Figma: 4,17 s "Slow"). --ac-linha-offset ajusta a posição.
 */
.ac-linha-topo,
.ac-linha-base {
	position: relative;
}

.ac-linha-topo::after,
.ac-linha-base::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	height: var(--ac-linha-altura, 5px);
	z-index: 3;
	pointer-events: none;
	background:
		linear-gradient(90deg, #C7A764 0%, #CBAA67 3.7%, #D5B26C 7.3%, #E4BF73 11%, #F2CB7A 14.6%, #FBD27F 18.3%, #FED581 22%, #FFD783 25.6%, #FFD989 29.3%, #FFDE99 32.9%, #FFE6B2 36.6%, #FFEECC 40.2%, #FFF3DC 43.9%, #FFF5E2 47.6%, #FFF6E4 51.2%, #FFF5E2 54.9%, #FFF3DA 58.5%, #FFEDC7 62.2%, #FFE4AD 65.9%, #FEDC95 69.5%, #FDD686 73.2%, #FCD380 76.8%, #F8D07E 80.5%, #F2CB7A 84.1%, #E6C174 87.8%, #D9B66E 91.5%, #CEAC68 95.1%, #C8A865 98.8%, #C7A764 100%) -104px 0 / 164px 100% no-repeat,
		var(--ac-gold);
	animation: ac-rule-shine 4.167s var(--ac-ease-slow) infinite;
}

.ac-linha-topo::after {
	top: var(--ac-linha-offset, 0px);
}

.ac-linha-base::after {
	bottom: var(--ac-linha-offset, 0px);
}

/* Linha desenhada logo abaixo da seção (sobre o início da seção seguinte). */
.ac-linha-fora {
	--ac-linha-offset: -5px;
}

/* Linha de 3px (a do herói fica parcialmente coberta pela seção seguinte no Figma). */
.ac-linha-3 {
	--ac-linha-altura: 3px;
}

/* Na página inicial, a seção "Próximo passo" termina com a linha dourada. */
body.ac-is-home .ac-proximo-passo {
	position: relative;
}

body.ac-is-home .ac-proximo-passo::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 5px;
	z-index: 3;
	pointer-events: none;
	background:
		linear-gradient(90deg, #C7A764 0%, #CBAA67 3.7%, #D5B26C 7.3%, #E4BF73 11%, #F2CB7A 14.6%, #FBD27F 18.3%, #FED581 22%, #FFD783 25.6%, #FFD989 29.3%, #FFDE99 32.9%, #FFE6B2 36.6%, #FFEECC 40.2%, #FFF3DC 43.9%, #FFF5E2 47.6%, #FFF6E4 51.2%, #FFF5E2 54.9%, #FFF3DA 58.5%, #FFEDC7 62.2%, #FFE4AD 65.9%, #FEDC95 69.5%, #FDD686 73.2%, #FCD380 76.8%, #F8D07E 80.5%, #F2CB7A 84.1%, #E6C174 87.8%, #D9B66E 91.5%, #CEAC68 95.1%, #C8A865 98.8%, #C7A764 100%) -104px 0 / 164px 100% no-repeat,
		var(--ac-gold);
	animation: ac-rule-shine 4.167s var(--ac-ease-slow) infinite;
}

@keyframes ac-rule-shine {
	from {
		background-position: -104px 0, 0 0;
	}
	to {
		background-position: calc(100% + 129px) 0, 0 0;
	}
}

/* ============================================================== 6. Heróis
 * O Elementor controla a foto e a cor de fundo; os degradês de várias paradas ficam aqui.
 */
.ac-hero {
	position: relative;
}

/* O degradê usa o ::before (o mesmo pseudo-elemento da "sobreposição" do Elementor);
 * o ::after fica livre para a linha dourada. */
.e-con.ac-hero::before {
	content: "" !important;
	position: absolute;
	inset: 0;
	width: auto;
	height: auto;
	z-index: 0;
	opacity: 1;
	pointer-events: none;
	background: var(--ac-hero-overlay, none);
}

.ac-hero > .e-con-inner,
.ac-hero > .elementor-element {
	position: relative;
	z-index: 1;
}

/* Página inicial: degradê vertical por cima do horizontal. */
.ac-hero--home {
	--ac-hero-overlay:
		linear-gradient(180deg, rgba(7, 20, 38, .55) 0%, rgba(7, 20, 38, 0) 30%, rgba(7, 20, 38, 0) 70%, rgba(7, 20, 38, .85) 100%),
		linear-gradient(90deg, rgba(7, 20, 38, .94) 0%, rgba(7, 20, 38, .7) 55%, rgba(7, 20, 38, .25) 100%);
}

/* Páginas internas (artigos, conteúdo, contato): escurece da esquerda para a direita. */
.ac-hero--interna {
	--ac-hero-overlay: linear-gradient(90deg, rgba(7, 20, 38, .96) 0%, rgba(7, 20, 38, .82) 60%, rgba(7, 20, 38, .55) 100%);
}

.ac-hero--sem-overlay {
	--ac-hero-overlay: none;
}

/* Breadcrumb do herói ("Início  /  Vício construtivo"). */
.ac-breadcrumb {
	font: 400 13px/1.3 var(--ac-font-display);
	letter-spacing: .26px;
	color: rgba(245, 240, 230, .6);
}

.ac-breadcrumb a {
	color: inherit;
	text-decoration: none;
}

.ac-breadcrumb a:hover {
	color: var(--ac-paper);
}

.ac-breadcrumb__sep {
	margin: 0 .5em;
}

/* ============================================================== 7. Cabeçalho, menus e rodapé */
.ac-site-header {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	z-index: 100;
}

body.admin-bar .ac-site-header {
	top: 32px;
}

@media (max-width: 782px) {
	body.admin-bar .ac-site-header {
		top: 46px;
	}
}

/* Página inicial: o cabeçalho fica fixo no topo durante a rolagem, como no protótipo do Figma
 * ("Fixed"); o degradê com desfoque passa por cima do conteúdo. Nas demais páginas ele rola junto. */
body.ac-is-home .ac-site-header {
	position: fixed;
}

/* No editor do Elementor ele volta a rolar com a página, para não cobrir o que se edita. */
body.elementor-editor-active .ac-site-header {
	position: absolute;
}

/* Com o cabeçalho fixo, os links internos (ex.: "Áreas de atuação") param abaixo dele. No desktop
 * o respiro de 160px no topo das seções já basta; no tablet e no celular ele é menor. */
@media (max-width: 1024px) {
	body.ac-is-home .e-con[id] {
		scroll-margin-top: 64px;
	}
}

/* Sombra de leitura sobre a foto (retângulos com degradê + desfoque do Figma). */
.ac-header {
	position: relative;
}

.ac-header::before,
.ac-header::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: -7px;
	z-index: 0;
	pointer-events: none;
}

.ac-header > .e-con-inner,
.ac-header > .elementor-element {
	position: relative;
	z-index: 1;
}

.ac-header--home::before {
	height: 210px;
	background: linear-gradient(0deg, rgba(7, 21, 39, 0) 0%, rgba(0, 0, 0, .336) 38.46%);
	-webkit-backdrop-filter: blur(1.75px);
	backdrop-filter: blur(1.75px);
	-webkit-mask-image: linear-gradient(0deg, transparent 0%, #000 38.46%);
	mask-image: linear-gradient(0deg, transparent 0%, #000 38.46%);
}

.ac-header--home::after {
	height: 210px;
	background: linear-gradient(0deg, rgba(7, 21, 39, 0) 8.81%, rgba(0, 0, 0, .432) 60.95%);
}

.ac-header--interna::before {
	height: 260px;
	background: linear-gradient(0.57deg, rgba(7, 21, 39, 0) 33.98%, rgba(7, 21, 39, .8) 70.49%);
	-webkit-backdrop-filter: blur(1.75px);
	backdrop-filter: blur(1.75px);
	-webkit-mask-image: linear-gradient(0.57deg, transparent 33.98%, #000 70.49%);
	mask-image: linear-gradient(0.57deg, transparent 33.98%, #000 70.49%);
}

.ac-header--interna::after {
	height: 210px;
	background: linear-gradient(0.71deg, rgba(7, 21, 39, 0) 34.08%, rgba(7, 21, 39, .8) 69.58%);
}

/* Menu principal: DM Sans 400 14px, espaço de 44px. */
.ac-nav__list {
	display: flex;
	align-items: center;
	gap: 44px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ac-nav__list a {
	display: block;
	font: 400 14px/18px var(--ac-font-display);
	letter-spacing: .28px;
	color: var(--ac-paper);
	text-decoration: none;
	white-space: nowrap;
}

.ac-nav__list a:hover {
	color: var(--ac-gold-light);
}

/* Barra dourada de artigos — páginas internas (Figma "Menu de artigos", 1200×49). */
.ac-catbar__list {
	display: flex;
	align-items: stretch;
	height: 49px;
	margin: 0;
	padding: 0;
	list-style: none;
	background: var(--ac-gold);
	border: 1px solid var(--ac-paper);
	box-sizing: border-box;
}

.ac-catbar__list li {
	display: flex;
	flex: 1 1 auto;
}

.ac-catbar__list a {
	display: flex;
	flex: 1;
	align-items: center;
	justify-content: center;
	padding: 0 7px;
	font: 500 11px/14px var(--ac-font-display);
	letter-spacing: 1.54px;
	text-transform: uppercase;
	white-space: nowrap;
	color: var(--ac-paper);
	text-decoration: none;
	transition: background-color .3s var(--ac-ease-out);
}

.ac-catbar__list a:hover {
	background: rgba(11, 29, 58, .7);
}

/* Barra dourada da página inicial (Figma "Frame 28", 1289×30, células com contorno). */
.ac-catbar--home .ac-catbar__list {
	height: 30px;
	border: 0;
	background: linear-gradient(88.23deg, #B18848 -16.45%, #C6A664 113.94%);
}

.ac-catbar--home .ac-catbar__list a {
	padding: 0 5px;
	font-size: 10px;
	line-height: 13px;
	letter-spacing: 1.4px;
	box-shadow: inset 0 0 0 1px #C9A772;
}

.ac-catbar--home .ac-catbar__list a:hover {
	background: rgba(139, 104, 49, .2);
}

/* Botão ☰ e painel (celular/tablet). */
.ac-burger-wrap {
	display: none;
}

/* No desktop, o widget do ☰ também sai da linha do cabeçalho: vazio, ele ainda ocupava um
 * lugar na distribuição e o botão "Fale com a equipe" deixava de alinhar com a faixa dourada. */
@media (min-width: 1025px) {
	.ac-header .elementor-widget:has(.ac-burger-wrap) {
		display: none;
	}
}

/* Seletor reforçado: o kit do Elementor estiliza todos os <button> como botão dourado. */
body .ac-burger.ac-burger {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	min-height: 0;
	padding: 0;
	border: 1px solid rgba(245, 240, 230, .6);
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	color: var(--ac-paper);
	cursor: pointer;
}

body .ac-burger.ac-burger:hover,
body .ac-burger.ac-burger:focus {
	background: rgba(245, 240, 230, .08);
	color: var(--ac-paper);
}

.ac-burger__bars,
.ac-burger__bars::before,
.ac-burger__bars::after {
	display: block;
	width: 20px;
	height: 1px;
	background: currentColor;
	transition: transform .3s var(--ac-ease-out), opacity .3s var(--ac-ease-out);
}

.ac-burger__bars {
	position: relative;
}

.ac-burger__bars::before,
.ac-burger__bars::after {
	content: "";
	position: absolute;
	left: 0;
}

.ac-burger__bars::before {
	top: -6px;
}

.ac-burger__bars::after {
	top: 6px;
}

.ac-burger[aria-expanded="true"] .ac-burger__bars {
	background: transparent;
}

.ac-burger[aria-expanded="true"] .ac-burger__bars::before {
	transform: translateY(6px) rotate(45deg);
}

.ac-burger[aria-expanded="true"] .ac-burger__bars::after {
	transform: translateY(-6px) rotate(-45deg);
}

.ac-mobile-menu {
	position: fixed;
	inset: 0;
	z-index: 99;
	overflow-y: auto;
	background: var(--ac-navy-deep);
	padding: 112px 24px 40px;
}

.ac-mobile-menu[hidden] {
	display: none;
}

.ac-menu-open,
.ac-menu-open body {
	overflow: hidden;
}

.ac-menu-open .ac-burger {
	position: relative;
	z-index: 101;
}

.ac-mobile-menu__main,
.ac-mobile-menu__cats {
	margin: 0;
	padding: 0;
	list-style: none;
}

.ac-mobile-menu__main a {
	display: block;
	padding: 14px 0;
	border-top: 1px solid rgba(245, 240, 230, .14);
	font: 300 26px/1.2 var(--ac-font-display);
	color: var(--ac-paper);
	text-decoration: none;
}

.ac-mobile-menu__label {
	margin: 36px 0 12px;
	font: 500 12px var(--ac-font-display);
	letter-spacing: 2.64px;
	text-transform: uppercase;
	color: var(--ac-gold-light);
}

.ac-mobile-menu__cats {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 8px;
}

.ac-mobile-menu__cats a {
	display: block;
	padding: 12px 10px;
	background: rgba(198, 166, 100, .14);
	border: 1px solid rgba(198, 166, 100, .45);
	font: 500 11px/1.3 var(--ac-font-display);
	letter-spacing: 1.32px;
	text-transform: uppercase;
	color: var(--ac-paper);
	text-decoration: none;
}

.ac-mobile-menu__cta {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-top: 32px;
	padding: 18px 26px;
	background: var(--ac-gold);
	font: 500 14px/1.2 var(--ac-font-display);
	letter-spacing: 1.26px;
	text-transform: uppercase;
	color: #000;
	text-decoration: none;
}

.ac-mobile-menu__cta::after {
	content: "→";
	font: 300 16px/21px var(--ac-font-display);
	color: var(--ac-navy-deep);
}

/* Navegação do rodapé. */
.ac-footer-nav__list {
	display: flex;
	flex-direction: column;
	gap: 14px;
	margin: 0;
	padding: 0;
	list-style: none;
}

/* A fonte fica no <li>: com ela só no link, a linha herdaria a altura do texto do corpo (30,6px). */
.ac-footer-nav__list li {
	font: 300 15px/1.5 var(--ac-font-display);
}

.ac-footer-nav__list a {
	font: inherit;
	color: var(--ac-paper);
	text-decoration: none;
}

/* Endereço e contatos do rodapé: no Figma cada linha tem largura automática (não quebra). */
@media (min-width: 1025px) {
	.ac-rodape-lista p {
		white-space: nowrap;
	}
}

.ac-footer-nav__list a:hover {
	color: var(--ac-gold-light);
}

/* Links dentro de textos do rodapé/contatos (e-mail, telefone). */
.elementor .ac-link-herda a {
	color: inherit;
	text-decoration: none;
}

.elementor .ac-link-herda a:hover {
	color: var(--ac-gold-light);
}

.ac-menu-missing,
.ac-template-missing,
.ac-form-missing {
	padding: 8px 12px;
	border: 1px dashed currentColor;
	font: 400 13px var(--ac-font-display);
	opacity: .8;
}

/* Trecho que não pode quebrar de linha (ex.: CEP com hífen). */
.ac-sem-quebra {
	white-space: nowrap;
}

/* E-mails longos (advocaciaadrianaamaral@gmail.com) quebram em vez de vazar da tela em
 * celulares estreitos (320px). Só quebram quando não cabem. */
a[href^="mailto:"] {
	overflow-wrap: anywhere;
}

/* Espaçador do Elementor: altura garantida mesmo se o CSS do widget não for carregado
 * (o tema já o carrega para os modelos; ver inc/templates.php). A regra do Elementor, quando
 * presente, é mais específica e prevalece. */
.e-con > .elementor-widget-spacer .elementor-spacer-inner,
.e-con-inner > .elementor-widget-spacer .elementor-spacer-inner {
	height: var(--spacer-size);
}

/* 404 sem o modelo do Elementor (conteúdo ainda não importado). */
.ac-404 {
	max-width: 1200px;
	margin: 0 auto;
	padding: 240px 20px 120px;
}

.ac-404 h1 {
	margin: 0 0 24px;
	font: 200 56px/1.1 var(--ac-font-display);
	color: var(--ac-ink);
}

/* Coluna lateral fixa ao rolar (artigos). */
@media (min-width: 1025px) {
	.ac-sticky {
		position: sticky;
		top: 24px;
		align-self: flex-start;
	}
}

/* Cartões clicáveis (container com link). */
.ac-card-link {
	transition: border-color .3s var(--ac-ease-out), background-color .3s var(--ac-ease-out);
}

.ac-card-link:hover {
	border-color: rgba(7, 20, 38, .4) !important;
	background-color: rgba(236, 225, 203, .35);
}

.ac-item-link {
	transition: opacity .3s var(--ac-ease-out);
}

.ac-item-link:hover {
	opacity: .72;
}

/* ============================================================== 8. Textos dos artigos
 * Widget Editor de Texto com a classe "ac-prosa". Dentro dele:
 *   <p>                    parágrafos (28px entre eles)
 *   <ul class="ac-lista">  lista com traço dourado
 *   <ol class="ac-passos"> itens numerados 01, 02… (título em <strong> + descrição)
 *   <ol class="ac-indice"> índice "Nesta página" com links para as seções (#secao-1…)
 *   <table class="ac-tabela"> tabelas
 */
/* Espaço entre parágrafos: controle "Espaçamento de parágrafos" do Elementor (28px nos artigos). */

/* Lista com traço (Figma "Lista": traço 16×1 a 14px do topo, 20px até o texto, 14px entre itens). */
.ac-lista,
.ac-prosa ul {
	margin: 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.ac-lista li,
.ac-prosa ul li {
	position: relative;
	padding-left: 36px;
	font-family: var(--ac-font-body);
	font-weight: 300;
	font-size: 17px;
	line-height: 1.8;
	color: rgba(7, 20, 38, .8);
}

.ac-lista li::before,
.ac-prosa ul li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 14px;
	width: 16px;
	height: 1px;
	background: var(--ac-gold);
}

/* Itens numerados (Figma "Lista numerada"). */
.ac-passos {
	margin: 0;
	padding: 0;
	list-style: none;
	counter-reset: ac-passo;
}

.ac-passos li {
	counter-increment: ac-passo;
	display: grid;
	grid-template-columns: 48px 1fr;
	column-gap: 32px;
	padding: 24px 0;
	border-top: 1px solid rgba(7, 20, 38, .14);
	font-family: var(--ac-font-body);
	font-weight: 300;
	font-size: 16px;
	line-height: 1.75;
	color: rgba(7, 20, 38, .72);
}

.ac-passos li::before {
	content: counter(ac-passo, decimal-leading-zero);
	grid-row: 1 / span 2;
	font: 200 32px/42px var(--ac-font-display);
	letter-spacing: -.32px;
	color: var(--ac-gold);
	margin-top: 1px;
}

.ac-passos li strong {
	display: block;
	grid-column: 2;
	margin: 6px 0 8px;
	font: 400 19px/25px var(--ac-font-display);
	color: var(--ac-ink);
}

.ac-passos li > span,
.ac-passos li > br + * {
	grid-column: 2;
}

.ac-passos li br {
	display: none;
}

/* Índice "Nesta página". */
.ac-indice {
	margin: 0;
	padding: 0;
	list-style: none;
	counter-reset: ac-indice;
}

.ac-indice li {
	counter-increment: ac-indice;
	border-top: 1px solid rgba(7, 20, 38, .12);
}

.ac-indice a {
	display: flex;
	align-items: center;
	gap: 24px;
	padding: 14px 0;
	font: 400 16px/21px var(--ac-font-display);
	color: var(--ac-ink);
	text-decoration: none;
}

.ac-indice a::before {
	content: counter(ac-indice, decimal-leading-zero);
	flex: none;
	min-width: 14px;
	font: 400 12px/16px var(--ac-font-display);
	letter-spacing: 1.2px;
	color: var(--ac-gold);
}

.ac-indice a::after {
	content: "↓";
	margin-left: auto;
	font: 300 14px/18px var(--ac-font-display);
	color: var(--ac-gold);
}

.ac-indice a:hover {
	color: var(--ac-gold-deep);
}

/* Tabelas (Figma "Tabela"). */
.ac-tabela,
.ac-prosa table {
	width: 100%;
	margin: 0;
	border-collapse: collapse;
	border: 0;
	table-layout: fixed;
}

.ac-tabela th,
.ac-prosa table th {
	padding: 14px 24px 14px 0;
	border: 0;
	border-bottom: 1px solid rgba(7, 20, 38, .9);
	background: none;
	text-align: left;
	vertical-align: top;
	font: 500 11px/1.3 var(--ac-font-display);
	letter-spacing: 1.76px;
	text-transform: uppercase;
	color: rgba(7, 20, 38, .7);
}

.ac-tabela td,
.ac-prosa table td {
	padding: 18px 24px 18px 0;
	border: 0;
	border-bottom: 1px solid rgba(7, 20, 38, .12);
	background: none;
	vertical-align: top;
	font: 300 15px/1.6 var(--ac-font-body);
	color: rgba(7, 20, 38, .78);
}

.ac-tabela th:last-child,
.ac-tabela td:last-child,
.ac-prosa table th:last-child,
.ac-prosa table td:last-child {
	padding-right: 0;
}

.ac-tabela td:first-child,
.ac-prosa table td:first-child {
	font: 400 15px/1.6 var(--ac-font-display);
	color: var(--ac-ink);
}

.ac-prosa table tbody tr:nth-child(odd) > td,
.ac-prosa table tbody tr:nth-child(even) > td,
.ac-prosa table tbody tr:hover > td {
	background: none;
}

/* ============================================================== 9. FAQ (widget Acordeão)
 * Classes: "ac-faq" (estilo dos artigos) ou "ac-faq ac-faq--numerado" (página inicial/contato).
 * O "+" e o "–" são desenhados pelo CSS (fonte DM Sans 200), sem ícones.
 */
.ac-faq .elementor-accordion {
	counter-reset: ac-faq;
}

/* Artigos: linha embaixo de cada item. */
.ac-faq .elementor-accordion .elementor-accordion-item {
	counter-increment: ac-faq;
	border: 0;
	border-bottom: var(--ac-faq-borda, 1px solid rgba(7, 20, 38, .14));
}

.ac-faq .elementor-accordion .elementor-accordion-item + .elementor-accordion-item {
	border-top: 0;
}

/* Numerado (página inicial/contato): linha em cima de cada item e embaixo do último.
 * last-of-type: o Elementor coloca o JSON-LD do FAQ (<script>) depois do último item. */
.ac-faq--numerado .elementor-accordion .elementor-accordion-item,
.ac-faq--numerado .elementor-accordion .elementor-accordion-item + .elementor-accordion-item {
	border-top: var(--ac-faq-borda, 1px solid rgba(7, 20, 38, .14));
	border-bottom: 0;
}

.ac-faq--numerado .elementor-accordion .elementor-accordion-item:last-of-type {
	border-bottom: var(--ac-faq-borda, 1px solid rgba(7, 20, 38, .14));
}

.ac-faq .elementor-accordion .elementor-tab-title {
	position: relative;
	display: flex;
	align-items: center;
	gap: 24px;
	padding: var(--ac-faq-pad, 26px) 0;
	border: 0;
	cursor: pointer;
}

.ac-faq .elementor-accordion-icon {
	display: none !important;
}

.ac-faq .elementor-accordion .elementor-tab-title::after {
	content: "+";
	flex: none;
	margin-left: auto;
	font: 200 var(--ac-faq-sinal, 26px)/1.302 var(--ac-font-display); /* altura "auto" do Figma */
	color: var(--ac-ink);
}

.ac-faq .elementor-accordion .elementor-tab-title.elementor-active::after {
	content: "–";
}

.ac-faq .elementor-accordion .elementor-accordion-title {
	flex: 1;
	color: inherit;
}

.ac-faq .elementor-accordion .elementor-tab-title.elementor-active {
	padding-bottom: var(--ac-faq-gap, 16px);
}

.ac-faq .elementor-accordion .elementor-tab-content {
	padding: 0 0 var(--ac-faq-pad, 26px);
	border: 0;
}

/* Medidas por variante (classes geradas junto com o widget). */
.ac-faq-pad-26 { --ac-faq-pad: 26px; }
.ac-faq-pad-30 { --ac-faq-pad: 30px; }
.ac-faq-pad-32 { --ac-faq-pad: 32px; }
.ac-faq-gap-16 { --ac-faq-gap: 16px; }
.ac-faq-gap-18 { --ac-faq-gap: 18px; }
.ac-faq-gap-20 { --ac-faq-gap: 20px; }
.ac-faq-sinal-26 { --ac-faq-sinal: 26px; }
.ac-faq-sinal-28 { --ac-faq-sinal: 28px; }
.ac-faq-borda-solida { --ac-faq-borda: 1px solid var(--ac-navy-deep); }

.ac-faq .elementor-accordion .elementor-tab-content p {
	margin: 0;
}

.ac-faq .elementor-accordion .elementor-tab-content p + p {
	margin-top: 16px;
}

/* Variante numerada (01, 02…): número dourado de 13px, 32px até a pergunta. */
.ac-faq--numerado .elementor-accordion .elementor-tab-title {
	gap: 32px;
}

.ac-faq--numerado .elementor-accordion .elementor-tab-title::before {
	content: counter(ac-faq, decimal-leading-zero);
	flex: none;
	min-width: 20px;
	font: 400 13px/17px var(--ac-font-display);
	letter-spacing: 1.3px;
	color: var(--ac-gold);
}

.ac-faq--numerado .elementor-accordion .elementor-tab-content {
	padding-left: 52px;
	padding-right: 60px;
}

/* ============================================================== 10. Formulários (Contact Form 7) */
.ac-cf7 {
	--ac-campo-cor: rgba(245, 240, 230, .45);
}

.ac-cf7 form {
	margin: 0;
}

.ac-form {
	display: flex;
	flex-direction: column;
	gap: 28px;
}

.ac-form__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 32px;
}

.ac-cf7--contato .ac-form {
	gap: 32px;
}

.ac-field {
	display: flex;
	flex-direction: column;
	gap: 12px;
	padding-bottom: 12px;
	border-bottom: 1px solid rgba(245, 240, 230, .25);
	margin: 0;
}

.ac-cf7--contato .ac-field {
	padding-bottom: 14px;
}

.ac-field__label {
	font: 500 11px/14px var(--ac-font-display);
	letter-spacing: 1.98px;
	text-transform: uppercase;
	color: rgba(228, 212, 172, .9);
}

.ac-field .wpcf7-form-control-wrap {
	display: block;
}

.ac-field input,
.ac-field textarea,
.ac-field select {
	display: block; /* inline-block deixaria um vão de linha de base sob a área de texto */
	width: 100%;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	outline: 0;
	font: 300 14px/21px var(--ac-font-body);
	color: var(--ac-paper);
	-webkit-appearance: none;
	appearance: none;
}

.ac-cf7--contato .ac-field input,
.ac-cf7--contato .ac-field textarea,
.ac-cf7--contato .ac-field select {
	font-size: 15px;
	line-height: 23px;
}

.ac-field input::placeholder,
.ac-field textarea::placeholder {
	color: var(--ac-campo-cor);
	opacity: 1;
}

/* Altura da área de texto = placeholder + espaço do Figma (lateral 94px, contato 91px). */
.ac-field textarea {
	height: 94px;
	min-height: 94px;
	resize: none;
}

.ac-cf7--contato .ac-field textarea {
	height: 91px;
	min-height: 91px;
}

.ac-field select {
	cursor: pointer;
	color: var(--ac-campo-cor);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='6' viewBox='0 0 8 6'%3E%3Cpath fill='%23F5F0E6' fill-opacity='.45' d='M0 0h8L4 6z'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 2px center;
	padding-right: 16px;
}

.ac-field select:has(option:checked:not([value=""])) {
	color: var(--ac-paper);
}

.ac-field select option {
	color: var(--ac-ink);
	background: #fff;
}

.ac-field:focus-within {
	border-bottom-color: var(--ac-gold);
}

.ac-form__actions {
	display: flex;
	align-items: center;
	gap: 24px;
}

.ac-cf7--lateral .ac-form__actions {
	flex-direction: column;
	align-items: stretch;
	gap: 28px;
	padding-top: 8px;
}

.ac-form__consent {
	margin: 0;
	font: 300 12px/1.6 var(--ac-font-body);
	color: rgba(245, 240, 230, .5);
}

.ac-cf7--lateral .ac-form__consent {
	font-size: 11px;
}

/* Botão de envio dourado (mesmo visual de "ac-btn--ouro").
 * Markup: <span class="ac-submit" data-texto="Enviar mensagem"><span class="ac-shine"></span>[submit "Enviar mensagem"]</span>
 * O <input> fica transparente por cima (área clicável inteira); texto e seta vêm do CSS. */
.ac-submit {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	isolation: isolate;
	overflow: hidden;
	box-sizing: border-box;
	min-width: 296px;
	height: 61px;
	padding: 15px 26px;
	background: var(--ac-gold);
	transition: background-color .3s var(--ac-ease-out);
}

.ac-submit::before {
	content: attr(data-texto);
	font: 500 14px/17px var(--ac-font-display);
	letter-spacing: 1.26px;
	text-transform: uppercase;
	color: #000;
	pointer-events: none;
}

.ac-submit::after {
	content: "→";
	font: 300 16px/21px var(--ac-font-display);
	color: var(--ac-navy-deep);
	pointer-events: none;
}

.ac-cf7--lateral .ac-submit {
	width: 100%;
	min-width: 0;
}

.ac-submit:hover {
	background: var(--ac-gold-hover);
}

.ac-submit:hover .ac-shine {
	opacity: 0;
}

.ac-shine {
	position: absolute;
	inset: 0;
	overflow: hidden;
	pointer-events: none;
	transition: opacity .3s var(--ac-ease-out);
}

.ac-submit .wpcf7-form-control-wrap {
	position: static;
}

/* Seletor reforçado: o kit do Elementor aplica o estilo de botão a todo input[type=submit]. */
body .ac-submit input[type="submit"].wpcf7-submit,
body .ac-submit input[type="submit"] {
	position: absolute;
	inset: 0;
	z-index: 2;
	width: 100%;
	height: 100%;
	min-height: 0;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent !important;
	box-shadow: none;
	color: transparent !important;
	font-size: 14px;
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
}

.ac-submit input[type="submit"]:focus-visible {
	outline: 2px solid var(--ac-navy-deep);
	outline-offset: -4px;
}

.ac-submit .wpcf7-spinner {
	position: absolute;
	z-index: 3;
	right: 8px;
	top: 50%;
	margin: -12px 0 0;
}

.ac-cf7 .wpcf7-not-valid-tip {
	margin-top: 6px;
	font: 400 12px var(--ac-font-display);
	color: #FFB4A8;
}

.ac-cf7 .wpcf7-response-output {
	margin: 20px 0 0 !important;
	padding: 12px 16px !important;
	border: 1px solid rgba(245, 240, 230, .35) !important;
	font: 300 14px/1.5 var(--ac-font-body);
	color: var(--ac-paper);
}

.ac-cf7 form.sent .wpcf7-response-output {
	border-color: var(--ac-gold) !important;
}

/* ============================================================== 11. Blog */
.ac-articles {
	display: flex;
	flex-direction: column;
	gap: 72px;
}

.ac-filters {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}

.ac-filter {
	display: inline-flex;
	align-items: center;
	padding: 12px 22px;
	border: 1px solid rgba(7, 20, 38, .25);
	font: 500 12px/16px var(--ac-font-display);
	letter-spacing: 1.44px;
	text-transform: uppercase;
	color: var(--ac-ink);
	text-decoration: none;
	transition: background-color .3s var(--ac-ease-out), color .3s var(--ac-ease-out), border-color .3s var(--ac-ease-out);
}

.ac-filter:hover {
	border-color: var(--ac-ink);
}

.ac-filter.is-active {
	border-color: var(--ac-navy-deep);
	background: var(--ac-navy-deep);
	color: var(--ac-paper);
}

.ac-featured {
	display: flex;
	align-items: center;
	gap: 64px;
}

.ac-featured__media {
	flex: none;
	display: block;
	width: 700px;
	max-width: calc(700 / 1200 * 100%); /* 700 de 1200px, como no Figma, e proporcional em telas menores */
	aspect-ratio: 700 / 480;
	overflow: hidden;
}

.ac-featured__media img,
.ac-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .6s var(--ac-ease-slow);
}

.ac-featured:hover .ac-featured__media img,
.ac-card:hover .ac-card__media img {
	transform: scale(1.03);
}

.ac-featured__body {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 24px;
}

.ac-eyebrow-text {
	display: inline-flex;
	align-items: center;
	gap: 16px;
	margin: 0;
	font: 500 12px/16px var(--ac-font-display);
	letter-spacing: 2.64px;
	text-transform: uppercase;
	color: var(--ac-gold);
}

.ac-eyebrow-text::before {
	content: "";
	width: 40px;
	height: 1px;
	background: var(--ac-gold);
}

.ac-featured__title {
	margin: 0;
	font: 300 40px/1.18 var(--ac-font-display);
	letter-spacing: -.4px;
	color: var(--ac-ink);
}

.ac-featured__title a,
.ac-card__title a {
	color: inherit;
	text-decoration: none;
}

.ac-featured__excerpt {
	margin: 0;
	font: 300 17px/1.8 var(--ac-font-body);
	color: rgba(7, 20, 38, .72);
}

.ac-articles__divider {
	width: 100%;
	height: 1px;
	margin: 0;
	border: 0;
	background: rgba(7, 20, 38, .14);
}

.ac-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	column-gap: 40px;
	row-gap: 72px;
}

.ac-card {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 20px;
}

.ac-card__media {
	display: block;
	width: 100%;
	aspect-ratio: 373 / 260;
	overflow: hidden;
	background: var(--ac-paper-deep);
}

.ac-card__cat {
	margin: 0;
	font: 500 11px/14px var(--ac-font-display);
	letter-spacing: 1.98px;
	text-transform: uppercase;
	color: var(--ac-gold-deep);
}

.ac-card__title {
	margin: 0;
	font: 300 24px/1.3 var(--ac-font-display);
	letter-spacing: -.12px;
	color: var(--ac-ink);
}

.ac-card__excerpt {
	margin: 0;
	font: 300 15px/1.75 var(--ac-font-body);
	color: rgba(7, 20, 38, .66);
}

.ac-pagination {
	display: flex;
	align-items: center;
	gap: 12px;
}

.ac-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 37px;
	height: 37px;
	padding: 10px 16px;
	box-sizing: border-box;
	border: 1px solid rgba(7, 20, 38, .25);
	font: 500 13px/17px var(--ac-font-display);
	color: var(--ac-ink);
	text-decoration: none;
}

.ac-pagination .page-numbers.current {
	border-color: var(--ac-navy-deep);
	background: var(--ac-navy-deep);
	color: var(--ac-paper);
}

.ac-pagination a.page-numbers:hover {
	border-color: var(--ac-ink);
}

/* ============================================================== 12. Utilidades */
.ac-w200 { font-weight: 200; }
.ac-w300 { font-weight: 300; }
.ac-w400 { font-weight: 400; }
.ac-w500 { font-weight: 500; }

.ac-img-cobrir img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ac-placeholder {
	background: #C4C4C4;
}

/* Âncoras das seções dos artigos não ficam escondidas atrás de nada ao rolar. */
[id^="secao-"] {
	scroll-margin-top: 24px;
}

/* ============================================================== 13. Responsivo
 * Tablet ≤ 1024px e celular ≤ 767px (pontos de quebra do Elementor).
 * Os tamanhos de fonte e espaçamentos por dispositivo ficam no Elementor; aqui ficam
 * os ajustes dos componentes do tema.
 */
@media (max-width: 1024px) {
	.ac-nav,
	.ac-catbar,
	.ac-nav-wrap,
	.ac-catbar-wrap,
	.ac-header-cta {
		display: none !important;
	}

	.ac-burger-wrap {
		display: block;
	}

	.ac-header--home::before,
	.ac-header--home::after,
	.ac-header--interna::before,
	.ac-header--interna::after {
		height: 140px;
	}

	.ac-featured {
		flex-direction: column;
		align-items: flex-start;
		gap: 32px;
	}

	.ac-featured__media {
		width: 100%;
		max-width: none;
	}

	.ac-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		column-gap: 28px;
		row-gap: 56px;
	}

	.ac-faq--numerado .elementor-accordion .elementor-tab-content {
		padding-right: 0;
	}
}

@media (max-width: 767px) {
	.ac-articles {
		gap: 48px;
	}

	.ac-grid {
		grid-template-columns: 1fr;
		row-gap: 48px;
	}

	.ac-featured__title {
		font-size: 30px;
	}

	.ac-form__grid {
		grid-template-columns: 1fr;
		gap: 28px;
	}

	.ac-form__actions {
		flex-direction: column;
		align-items: stretch;
	}

	.ac-submit {
		width: 100%;
		min-width: 0;
	}

	.ac-passos li {
		grid-template-columns: 40px 1fr;
		column-gap: 18px;
	}

	.ac-passos li::before {
		font-size: 26px;
	}

	.ac-faq--numerado .elementor-accordion .elementor-tab-title {
		gap: 16px;
	}

	.ac-faq--numerado .elementor-accordion .elementor-tab-content {
		padding-left: 36px;
	}

	/* Tabelas viram blocos empilhados no celular. */
	.ac-prosa table,
	.ac-prosa thead,
	.ac-prosa tbody,
	.ac-prosa tr,
	.ac-prosa th,
	.ac-prosa td {
		display: block;
		width: 100%;
	}

	.ac-prosa table thead {
		display: none;
	}

	.ac-prosa table tr {
		padding: 16px 0;
		border-bottom: 1px solid rgba(7, 20, 38, .12);
	}

	.ac-prosa table td {
		padding: 0 0 6px;
		border: 0;
	}

	.ac-prosa table td[data-label]::before {
		content: attr(data-label);
		display: block;
		margin-bottom: 2px;
		font: 500 10px/1.4 var(--ac-font-display);
		letter-spacing: 1.6px;
		text-transform: uppercase;
		color: rgba(7, 20, 38, .55);
	}

	.ac-mobile-menu {
		padding-top: 96px;
	}
}

/* ============================================================== 14. Movimento reduzido */
@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	.ac-btn .elementor-button::before,
	.ac-btn .elementor-button::after,
	.ac-link .elementor-button::after,
	.ac-textlink::after,
	.ac-linha-topo::after,
	.ac-linha-base::after,
	.ac-shine::before,
	.ac-shine::after {
		animation: none !important;
	}
}

/* Texto que não quebra linha (ex.: números grandes "R$ 50 mi+", que no Figma passam da coluna). */
.ac-nowrap .elementor-heading-title {
	white-space: nowrap;
}

@media (max-width: 767px) {
	.ac-nowrap .elementor-heading-title {
		white-space: normal;
	}
}

/* Títulos com tag <p>/<div> não herdam as margens de parágrafo do tema base. */
.elementor-widget-heading .elementor-heading-title {
	margin: 0;
}

/* Botões e links: sem o "vão" da linha de base abaixo do elemento inline. */
.elementor-widget-button {
	line-height: 0;
}

.elementor-widget-button .elementor-button {
	vertical-align: top;
}

/* Imagens/ícones: sem o vão da linha de base (altura exata da imagem). */
.elementor-widget-image {
	line-height: 0;
}

.elementor-widget-image img {
	vertical-align: top;
}

/* O escritório: herói sem foto, só os degradês sobre o azul-marinho. */
.ac-hero--escritorio {
	--ac-hero-overlay:
		linear-gradient(180deg, rgba(7, 20, 38, .6) 0%, rgba(7, 20, 38, 0) 35%, rgba(7, 20, 38, .1) 70%, rgba(7, 20, 38, .85) 100%),
		linear-gradient(90deg, rgba(7, 20, 38, .94) 0%, rgba(7, 20, 38, .72) 55%, rgba(7, 20, 38, .35) 100%);
}

/* Política de Privacidade (texto corrido com subtítulos). */
.ac-politica h2 {
	margin: 44px 0 16px;
	font: 300 28px/1.2 var(--ac-font-display);
	letter-spacing: -.28px;
	color: var(--ac-ink);
}

.ac-politica a {
	color: var(--ac-gold-deep);
}
