/**
 * Astraz Aesthetic Theme — camada de composicao.
 *
 * Ordem: estrutura, header, botoes, hero, secoes, cards, modal, rodape.
 * Os tokens vivem em style.css e nao sao redeclarados aqui.
 *
 * @package Astraz_Aesthetic
 */

/* -------------------------------------------------------------------------
 * 1. Estrutura e utilitarios de layout
 * ---------------------------------------------------------------------- */

.astraz-container {
	width: min( 100% - 2.5rem, var( --astraz-largura-conteudo ) );
	margin-inline: auto;
}

.astraz-container--estreito {
	width: min( 100% - 2.5rem, 880px );
}

.astraz-secao {
	padding-block: var( --astraz-espaco-3xl );
	position: relative;
}

.astraz-secao--compacta {
	padding-block: var( --astraz-espaco-2xl );
}

.astraz-secao--veu {
	background-color: var( --astraz-offwhite-2 );
}

.astraz-secao--escura {
	background-color: var( --astraz-nude-escuro );
	color: var( --astraz-terracota-suave );
}

.astraz-secao--escura h2,
.astraz-secao--escura h3,
.astraz-secao--escura .astraz-titulo-secao__titulo {
	color: var( --astraz-offwhite );
}

.astraz-grade {
	display: grid;
	gap: var( --astraz-espaco-md );
}

@media ( min-width: 700px ) {

	.astraz-grade--2 {
		grid-template-columns: repeat( 2, 1fr );
	}

	.astraz-grade--3 {
		grid-template-columns: repeat( 2, 1fr );
	}

	.astraz-grade--4 {
		grid-template-columns: repeat( 2, 1fr );
	}
}

@media ( min-width: 1000px ) {

	.astraz-grade--3 {
		grid-template-columns: repeat( 3, 1fr );
	}

	.astraz-grade--4 {
		grid-template-columns: repeat( 4, 1fr );
		gap: var( --astraz-espaco-lg ) var( --astraz-espaco-md );
	}
}

/* Titulo de secao — sobrelinha dourada cria ancoragem de leitura. */

.astraz-titulo-secao {
	max-width: 60ch;
	margin-bottom: var( --astraz-espaco-lg );
}

.astraz-titulo-secao--centro {
	margin-inline: auto;
	text-align: center;
}

.astraz-sobrelinha {
	display: inline-flex;
	align-items: center;
	gap: var( --astraz-espaco-2xs );
	margin-bottom: var( --astraz-espaco-xs );
	font-size: 0.72rem;
	font-weight: 500;
	letter-spacing: var( --astraz-tracking-largo );
	text-transform: uppercase;
	color: var( --astraz-dourado-escuro );
}

.astraz-sobrelinha::before {
	content: "";
	width: 2.25rem;
	height: 1px;
	background-color: var( --astraz-dourado );
}

.astraz-titulo-secao--centro .astraz-sobrelinha::before {
	display: none;
}

.astraz-secao--escura .astraz-sobrelinha {
	color: var( --astraz-dourado );
}

.astraz-titulo-secao__titulo {
	margin-bottom: var( --astraz-espaco-xs );
}

.astraz-titulo-secao__apoio {
	color: var( --astraz-grafite-70 );
	font-size: var( --astraz-passo-1 );
	max-width: 58ch;
}

.astraz-titulo-secao--centro .astraz-titulo-secao__apoio {
	margin-inline: auto;
}

.astraz-secao--escura .astraz-titulo-secao__apoio {
	color: var( --astraz-terracota-suave );
}

/* -------------------------------------------------------------------------
 * 2. Botoes — a ilha de atencao dourada concentra a conversao primaria
 * ---------------------------------------------------------------------- */

.astraz-botao {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var( --astraz-espaco-2xs );
	padding: 0.95rem 1.9rem;
	border: 1px solid transparent;
	border-radius: var( --astraz-raio );
	font-size: 0.78rem;
	font-weight: 500;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	text-decoration: none;
	line-height: 1.2;
	cursor: pointer;
	transition: transform var( --astraz-transicao ), box-shadow var( --astraz-transicao ),
		background-color var( --astraz-transicao ), color var( --astraz-transicao ),
		border-color var( --astraz-transicao );
}

.astraz-botao svg {
	width: 1.05em;
	height: 1.05em;
	flex-shrink: 0;
}

.astraz-botao--primario {
	background-color: var( --astraz-dourado );
	border-color: var( --astraz-dourado );
	color: var( --astraz-nude-escuro );
	box-shadow: 0 2px 10px rgba( 212, 178, 111, 0.24 );
}

.astraz-botao--primario:hover,
.astraz-botao--primario:focus-visible {
	background-color: var( --astraz-dourado-claro );
	border-color: var( --astraz-dourado-claro );
	color: var( --astraz-nude-escuro );
	transform: translateY( -2px );
	box-shadow: var( --astraz-sombra-dourada );
}

.astraz-botao--secundario {
	background-color: transparent;
	border-color: var( --astraz-nude-escuro );
	color: var( --astraz-nude-escuro );
}

.astraz-botao--secundario:hover,
.astraz-botao--secundario:focus-visible {
	background-color: var( --astraz-nude-escuro );
	color: var( --astraz-offwhite );
	transform: translateY( -2px );
}

.astraz-botao--claro {
	background-color: transparent;
	border-color: var( --astraz-terracota );
	color: var( --astraz-offwhite );
}

.astraz-botao--claro:hover,
.astraz-botao--claro:focus-visible {
	background-color: var( --astraz-offwhite );
	color: var( --astraz-nude-escuro );
	border-color: var( --astraz-offwhite );
	transform: translateY( -2px );
}

.astraz-botao--bloco {
	width: 100%;
}

.astraz-botao--miudo {
	padding: 0.7rem 1.35rem;
	font-size: 0.7rem;
}

.astraz-link-texto {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	font-size: 0.76rem;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	text-decoration: none;
	color: var( --astraz-dourado-escuro );
}

.astraz-link-texto svg {
	width: 1em;
	height: 1em;
	transition: transform var( --astraz-transicao );
}

.astraz-link-texto:hover svg,
.astraz-link-texto:focus-visible svg {
	transform: translateX( 4px );
}

.astraz-acoes {
	display: flex;
	flex-wrap: wrap;
	gap: var( --astraz-espaco-sm );
}

/* -------------------------------------------------------------------------
 * 3. Header sticky inteligente (shrink effect)
 * ---------------------------------------------------------------------- */

.astraz-header {
	position: sticky;
	top: 0;
	z-index: var( --astraz-z-header );
	background-color: rgba( 250, 248, 245, 0.92 );
	backdrop-filter: saturate( 180% ) blur( 14px );
	border-bottom: 1px solid transparent;
	transition: box-shadow var( --astraz-transicao ), border-color var( --astraz-transicao ),
		background-color var( --astraz-transicao );
}

.astraz-header__barra {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var( --astraz-espaco-md );
	padding-block: 1.55rem;
	transition: padding var( --astraz-transicao );
}

.astraz-header.esta-reduzido {
	border-bottom-color: var( --astraz-linha );
	box-shadow: var( --astraz-sombra-sutil );
}

.astraz-header.esta-reduzido .astraz-header__barra {
	padding-block: 0.85rem;
}

.astraz-header.esta-reduzido .astraz-marca__simbolo {
	transform: scale( 0.86 );
}

/* Marca vetorial — canto superior esquerdo do Z-Pattern. */

.astraz-marca {
	display: inline-flex;
	align-items: center;
	gap: 0.7rem;
	text-decoration: none;
	flex-shrink: 0;
}

.astraz-marca__simbolo {
	width: 2.6rem;
	height: 2.6rem;
	color: var( --astraz-dourado );
	transition: transform var( --astraz-transicao );
	transform-origin: left center;
}

.astraz-marca__texto {
	display: flex;
	flex-direction: column;
	line-height: 1.05;
}

.astraz-marca__nome {
	font-family: var( --astraz-fonte-display );
	font-size: 1.32rem;
	letter-spacing: 0.06em;
	color: var( --astraz-nude-escuro );
}

.astraz-marca__assinatura {
	font-size: 0.56rem;
	letter-spacing: var( --astraz-tracking-largo );
	text-transform: uppercase;
	color: var( --astraz-grafite-45 );
}

/* Navegacao minimalista — canto superior direito. */

.astraz-nav__lista {
	display: flex;
	align-items: center;
	gap: var( --astraz-espaco-md );
	margin: 0;
	padding: 0;
	list-style: none;
}

.astraz-nav__lista a {
	position: relative;
	display: inline-block;
	padding-block: 0.35rem;
	font-size: 0.76rem;
	font-weight: 400;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	text-decoration: none;
	color: var( --astraz-grafite-70 );
}

.astraz-nav__lista a::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 0;
	height: 1px;
	background-color: var( --astraz-dourado );
	transition: width var( --astraz-transicao );
}

.astraz-nav__lista a:hover::after,
.astraz-nav__lista a:focus-visible::after,
.astraz-nav__lista .current-menu-item > a::after,
.astraz-nav__lista .current_page_item > a::after {
	width: 100%;
}

.astraz-nav__lista .current-menu-item > a,
.astraz-nav__lista .current_page_item > a {
	color: var( --astraz-nude-escuro );
}

.astraz-header__acoes {
	display: flex;
	align-items: center;
	gap: var( --astraz-espaco-sm );
}

.astraz-header__telefone {
	display: none;
	align-items: center;
	gap: 0.4rem;
	font-size: 0.78rem;
	letter-spacing: 0.06em;
	text-decoration: none;
	color: var( --astraz-grafite-70 );
}

.astraz-header__telefone svg {
	width: 1rem;
	height: 1rem;
	color: var( --astraz-dourado-escuro );
}

@media ( min-width: 1180px ) {

	.astraz-header__telefone {
		display: inline-flex;
	}
}

/* Menu mobile em painel lateral. */

.astraz-menu-gatilho {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.75rem;
	height: 2.75rem;
	padding: 0;
	background-color: transparent;
	border: 1px solid var( --astraz-linha );
	border-radius: var( --astraz-raio );
	color: var( --astraz-nude-escuro );
}

.astraz-menu-gatilho svg {
	width: 1.15rem;
	height: 1.15rem;
}

.astraz-menu-gatilho__fechar {
	display: none;
}

.astraz-menu-gatilho[ aria-expanded="true" ] .astraz-menu-gatilho__abrir {
	display: none;
}

.astraz-menu-gatilho[ aria-expanded="true" ] .astraz-menu-gatilho__fechar {
	display: block;
}

.astraz-drawer {
	position: fixed;
	inset: 0 0 0 auto;
	width: min( 88vw, 380px );
	z-index: var( --astraz-z-drawer );
	display: flex;
	flex-direction: column;
	gap: var( --astraz-espaco-md );
	padding: 6rem var( --astraz-espaco-md ) var( --astraz-espaco-md );
	background-color: var( --astraz-nude-escuro );
	transform: translateX( 100% );
	transition: transform var( --astraz-transicao );
	overflow-y: auto;
}

.astraz-drawer.esta-aberto {
	transform: translateX( 0 );
}

.astraz-drawer__lista {
	display: flex;
	flex-direction: column;
	gap: var( --astraz-espaco-sm );
	margin: 0;
	padding: 0;
	list-style: none;
}

.astraz-drawer__lista a {
	display: block;
	padding-block: 0.4rem;
	font-family: var( --astraz-fonte-display );
	font-size: 1.5rem;
	text-decoration: none;
	color: var( --astraz-offwhite );
	border-bottom: 1px solid var( --astraz-linha-clara );
}

.astraz-drawer__lista a:hover,
.astraz-drawer__lista a:focus-visible {
	color: var( --astraz-dourado );
}

.astraz-drawer__rodape {
	margin-top: auto;
	color: var( --astraz-terracota-suave );
	font-size: 0.85rem;
}

.astraz-cortina {
	position: fixed;
	inset: 0;
	z-index: 940;
	background-color: rgba( 31, 31, 31, 0.55 );
	opacity: 0;
	visibility: hidden;
	transition: opacity var( --astraz-transicao ), visibility var( --astraz-transicao );
}

.astraz-cortina.esta-visivel {
	opacity: 1;
	visibility: visible;
}

@media ( min-width: 1024px ) {

	.astraz-menu-gatilho,
	.astraz-drawer {
		display: none;
	}
}

@media ( max-width: 1023px ) {

	.astraz-nav--principal {
		display: none;
	}

	.astraz-header__acoes .astraz-botao--primario {
		display: none;
	}
}

/* -------------------------------------------------------------------------
 * 4. Hero — ancoragem em Z-Pattern
 * ---------------------------------------------------------------------- */

.astraz-hero {
	position: relative;
	display: flex;
	align-items: flex-end;
	min-height: min( 92vh, 880px );
	padding-block: var( --astraz-espaco-2xl ) var( --astraz-espaco-xl );
	overflow: hidden;
	background-color: var( --astraz-nude-escuro );
	isolation: isolate;
}

.astraz-hero__midia {
	position: absolute;
	inset: 0;
	z-index: -2;
}

.astraz-hero__midia img,
.astraz-hero__midia video {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 28%;
}

.astraz-hero__vinheta {
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient( 172deg, rgba( 45, 30, 30, 0.72 ) 0%, rgba( 45, 30, 30, 0.42 ) 42%, rgba( 45, 30, 30, 0.88 ) 100% );
}

.astraz-hero__conteudo {
	display: grid;
	gap: var( --astraz-espaco-lg );
	align-items: end;
}

@media ( min-width: 1024px ) {

	.astraz-hero__conteudo {
		grid-template-columns: minmax( 0, 1.35fr ) minmax( 0, 0.85fr );
		gap: var( --astraz-espaco-xl );
	}
}

.astraz-hero__titulo {
	color: var( --astraz-offwhite );
	margin-bottom: var( --astraz-espaco-md );
	max-width: 16ch;
}

.astraz-hero__titulo em {
	font-style: italic;
	color: var( --astraz-dourado );
}

.astraz-hero__subtitulo {
	color: var( --astraz-terracota-suave );
	font-size: var( --astraz-passo-1 );
	max-width: 46ch;
	margin-bottom: var( --astraz-espaco-lg );
}

.astraz-hero__selo {
	display: inline-flex;
	align-items: center;
	gap: 0.55rem;
	margin-bottom: var( --astraz-espaco-md );
	padding: 0.45rem 1rem;
	border: 1px solid var( --astraz-linha-clara );
	border-radius: 100px;
	background-color: rgba( 250, 248, 245, 0.06 );
	font-size: 0.68rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var( --astraz-dourado-claro );
}

.astraz-hero__selo svg {
	width: 0.9rem;
	height: 0.9rem;
}

/* Bloco inferior direito do Z: conversao primaria + prova rapida. */

.astraz-hero__painel {
	padding: var( --astraz-espaco-md );
	border: 1px solid var( --astraz-linha-clara );
	border-radius: var( --astraz-raio-card );
	background-color: rgba( 45, 30, 30, 0.55 );
	backdrop-filter: blur( 10px );
}

.astraz-hero__painel-titulo {
	font-size: 0.7rem;
	letter-spacing: var( --astraz-tracking-largo );
	text-transform: uppercase;
	color: var( --astraz-dourado );
	margin-bottom: var( --astraz-espaco-xs );
}

.astraz-hero__painel-lista {
	margin: 0 0 var( --astraz-espaco-md );
	padding: 0;
	list-style: none;
	display: grid;
	gap: 0.55rem;
	color: var( --astraz-terracota-suave );
	font-size: 0.92rem;
}

.astraz-hero__painel-lista li {
	display: flex;
	align-items: flex-start;
	gap: 0.6rem;
}

.astraz-hero__painel-lista svg {
	width: 1rem;
	height: 1rem;
	margin-top: 0.35rem;
	flex-shrink: 0;
	color: var( --astraz-dourado );
}

.astraz-hero__rolagem {
	display: none;
	position: absolute;
	right: max( 1.25rem, calc( ( 100vw - var( --astraz-largura-conteudo ) ) / 2 ) );
	bottom: var( --astraz-espaco-md );
	writing-mode: vertical-rl;
	font-size: 0.62rem;
	letter-spacing: var( --astraz-tracking-largo );
	text-transform: uppercase;
	color: var( --astraz-terracota );
	text-decoration: none;
}

@media ( min-width: 1400px ) {

	.astraz-hero__rolagem {
		display: block;
	}
}

/* -------------------------------------------------------------------------
 * 5. Pilares de autoridade — Lei da Regiao Comum
 * ---------------------------------------------------------------------- */

.astraz-pilar {
	padding: var( --astraz-espaco-md );
	background-color: var( --astraz-branco );
	border: var( --astraz-borda-card );
	border-radius: var( --astraz-raio-card );
	border-top: 2px solid var( --astraz-dourado );
	transition: transform var( --astraz-transicao ), box-shadow var( --astraz-transicao );
}

.astraz-pilar:hover {
	transform: translateY( -4px );
	box-shadow: var( --astraz-sombra-card );
}

.astraz-pilar__icone {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 3rem;
	height: 3rem;
	margin-bottom: var( --astraz-espaco-sm );
	border-radius: 50%;
	background-color: var( --astraz-terracota-veu );
	color: var( --astraz-nude-escuro );
}

.astraz-pilar__icone svg {
	width: 1.4rem;
	height: 1.4rem;
}

.astraz-pilar__titulo {
	font-size: var( --astraz-passo-1 );
	margin-bottom: 0.4rem;
}

.astraz-pilar__texto {
	margin: 0;
	color: var( --astraz-grafite-70 );
	font-size: 0.94rem;
}

/* Faixa de indicadores numericos. */

.astraz-indicadores {
	display: grid;
	gap: var( --astraz-espaco-md );
	padding-top: var( --astraz-espaco-lg );
	margin-top: var( --astraz-espaco-lg );
	border-top: 1px solid var( --astraz-linha );
	grid-template-columns: repeat( 2, 1fr );
	text-align: center;
}

@media ( min-width: 860px ) {

	.astraz-indicadores {
		grid-template-columns: repeat( 4, 1fr );
	}
}

.astraz-indicador__numero {
	display: block;
	font-family: var( --astraz-fonte-display );
	font-size: var( --astraz-passo-3 );
	color: var( --astraz-dourado-escuro );
	line-height: 1;
}

.astraz-indicador__rotulo {
	display: block;
	margin-top: 0.35rem;
	font-size: 0.7rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var( --astraz-grafite-45 );
}

/* -------------------------------------------------------------------------
 * 6. Comparador Antes & Depois responsavel
 * ---------------------------------------------------------------------- */

.astraz-comparador {
	position: relative;
	overflow: hidden;
	border-radius: var( --astraz-raio-card );
	background-color: var( --astraz-offwhite-2 );
	touch-action: pan-y;
	user-select: none;
	aspect-ratio: 4 / 3;
}

.astraz-comparador__camada {
	position: absolute;
	inset: 0;
}

.astraz-comparador__camada img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	pointer-events: none;
}

.astraz-comparador__camada--depois {
	clip-path: inset( 0 0 0 var( --astraz-corte, 50% ) );
}

.astraz-comparador__etiqueta {
	position: absolute;
	bottom: var( --astraz-espaco-sm );
	padding: 0.3rem 0.85rem;
	border-radius: 100px;
	background-color: rgba( 45, 30, 30, 0.78 );
	color: var( --astraz-offwhite );
	font-size: 0.62rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.astraz-comparador__etiqueta--antes {
	left: var( --astraz-espaco-sm );
}

.astraz-comparador__etiqueta--depois {
	right: var( --astraz-espaco-sm );
}

.astraz-comparador__controle {
	position: absolute;
	inset-block: 0;
	left: var( --astraz-corte, 50% );
	width: 2px;
	margin: 0;
	padding: 0;
	border: 0;
	background-color: var( --astraz-dourado );
	transform: translateX( -50% );
	cursor: ew-resize;
	appearance: none;
}

.astraz-comparador__alca {
	position: absolute;
	top: 50%;
	left: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 3rem;
	height: 3rem;
	transform: translate( -50%, -50% );
	border-radius: 50%;
	background-color: var( --astraz-dourado );
	color: var( --astraz-nude-escuro );
	box-shadow: var( --astraz-sombra-dourada );
	pointer-events: none;
}

.astraz-comparador__alca svg {
	width: 1.2rem;
	height: 1.2rem;
}

.astraz-comparador__faixa {
	position: absolute;
	inset-inline: 0;
	top: 0;
	padding: 0.5rem var( --astraz-espaco-sm );
	background: linear-gradient( to bottom, rgba( 45, 30, 30, 0.62 ), transparent );
	color: var( --astraz-offwhite );
	font-size: 0.66rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.astraz-aviso-etico {
	display: flex;
	gap: var( --astraz-espaco-xs );
	margin-top: var( --astraz-espaco-md );
	padding: var( --astraz-espaco-sm );
	border-left: 2px solid var( --astraz-terracota );
	background-color: var( --astraz-terracota-veu );
	font-size: 0.84rem;
	color: var( --astraz-grafite-70 );
	line-height: 1.6;
}

.astraz-aviso-etico p {
	margin: 0;
	max-width: none;
}

.astraz-aviso-etico svg {
	width: 1.15rem;
	height: 1.15rem;
	flex-shrink: 0;
	margin-top: 0.18rem;
	color: var( --astraz-nude-escuro );
}

.astraz-secao--escura .astraz-aviso-etico {
	background-color: rgba( 250, 248, 245, 0.06 );
	color: var( --astraz-terracota-suave );
}

.astraz-secao--escura .astraz-aviso-etico svg {
	color: var( --astraz-dourado );
}

/* -------------------------------------------------------------------------
 * 7. Depoimentos de experiencia
 * ---------------------------------------------------------------------- */

.astraz-depoimento {
	display: flex;
	flex-direction: column;
	gap: var( --astraz-espaco-sm );
	height: 100%;
	padding: var( --astraz-espaco-md );
	background-color: var( --astraz-branco );
	border: var( --astraz-borda-card );
	border-radius: var( --astraz-raio-card );
}

.astraz-secao--escura .astraz-depoimento {
	background-color: rgba( 250, 248, 245, 0.05 );
	border-color: var( --astraz-linha-clara );
	color: var( --astraz-terracota-suave );
}

.astraz-depoimento__aspas {
	width: 2rem;
	height: 2rem;
	color: var( --astraz-dourado );
}

.astraz-depoimento__texto {
	margin: 0;
	font-family: var( --astraz-fonte-display );
	font-size: var( --astraz-passo-1 );
	line-height: 1.55;
	color: var( --astraz-nude-escuro );
	max-width: none;
}

.astraz-secao--escura .astraz-depoimento__texto {
	color: var( --astraz-offwhite );
}

.astraz-depoimento__rodape {
	display: flex;
	align-items: center;
	gap: var( --astraz-espaco-xs );
	margin-top: auto;
	padding-top: var( --astraz-espaco-sm );
	border-top: 1px solid var( --astraz-linha );
}

.astraz-secao--escura .astraz-depoimento__rodape {
	border-top-color: var( --astraz-linha-clara );
}

.astraz-depoimento__inicial {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.6rem;
	height: 2.6rem;
	border-radius: 50%;
	background-color: var( --astraz-terracota-veu );
	color: var( --astraz-nude-escuro );
	font-family: var( --astraz-fonte-display );
	font-size: 1.1rem;
}

.astraz-depoimento__autor {
	font-size: 0.9rem;
	font-weight: 500;
	color: var( --astraz-nude-escuro );
}

.astraz-secao--escura .astraz-depoimento__autor {
	color: var( --astraz-offwhite );
}

.astraz-depoimento__meta {
	display: block;
	font-size: 0.74rem;
	letter-spacing: 0.08em;
	color: var( --astraz-grafite-45 );
}

.astraz-secao--escura .astraz-depoimento__meta {
	color: var( --astraz-terracota );
}

.astraz-estrelas {
	display: inline-flex;
	gap: 0.15rem;
	color: var( --astraz-dourado );
}

.astraz-estrelas svg {
	width: 0.85rem;
	height: 0.85rem;
}

/* -------------------------------------------------------------------------
 * 8. Banner de conversao final
 * ---------------------------------------------------------------------- */

.astraz-cta-final {
	position: relative;
	background-color: var( --astraz-nude-escuro );
	color: var( --astraz-terracota-suave );
	overflow: hidden;
}

.astraz-cta-final::after {
	content: "";
	position: absolute;
	top: -30%;
	right: -10%;
	width: 46rem;
	height: 46rem;
	border-radius: 50%;
	background: radial-gradient( circle, rgba( 212, 178, 111, 0.16 ) 0%, transparent 62% );
	pointer-events: none;
}

.astraz-cta-final__grade {
	position: relative;
	display: grid;
	gap: var( --astraz-espaco-lg );
	align-items: center;
}

@media ( min-width: 900px ) {

	.astraz-cta-final__grade {
		grid-template-columns: minmax( 0, 1.2fr ) minmax( 0, 0.8fr );
	}
}

.astraz-cta-final__titulo {
	color: var( --astraz-offwhite );
	max-width: 20ch;
}

.astraz-cta-final__texto {
	color: var( --astraz-terracota-suave );
	font-size: var( --astraz-passo-1 );
}

.astraz-cta-final__lista {
	margin: 0 0 var( --astraz-espaco-md );
	padding: 0;
	list-style: none;
	display: grid;
	gap: 0.6rem;
	font-size: 0.92rem;
}

.astraz-cta-final__lista li {
	display: flex;
	gap: 0.6rem;
	align-items: flex-start;
}

.astraz-cta-final__lista svg {
	width: 1rem;
	height: 1rem;
	margin-top: 0.35rem;
	flex-shrink: 0;
	color: var( --astraz-dourado );
}

/* -------------------------------------------------------------------------
 * 9. Catalogo de protocolos — filtro AJAX, cards e divulgacao progressiva
 * ---------------------------------------------------------------------- */

.astraz-filtro {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin-bottom: var( --astraz-espaco-lg );
	padding-bottom: var( --astraz-espaco-sm );
	border-bottom: 1px solid var( --astraz-linha );
}

.astraz-filtro__aba {
	position: relative;
	padding: 0.7rem 1.25rem;
	background-color: transparent;
	border: 1px solid var( --astraz-linha );
	border-radius: 100px;
	font-size: 0.74rem;
	font-weight: 500;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var( --astraz-grafite-70 );
	transition: background-color var( --astraz-transicao ), color var( --astraz-transicao ),
		border-color var( --astraz-transicao );
}

.astraz-filtro__aba:hover {
	border-color: var( --astraz-terracota );
	color: var( --astraz-nude-escuro );
}

.astraz-filtro__aba[ aria-selected="true" ] {
	background-color: var( --astraz-nude-escuro );
	border-color: var( --astraz-nude-escuro );
	color: var( --astraz-dourado-claro );
}

.astraz-catalogo {
	position: relative;
	min-height: 18rem;
	transition: opacity var( --astraz-transicao );
}

.astraz-catalogo.esta-carregando {
	opacity: 0.35;
	pointer-events: none;
}

.astraz-catalogo__vazio {
	grid-column: 1 / -1;
	padding: var( --astraz-espaco-lg );
	text-align: center;
	border: 1px dashed var( --astraz-linha );
	border-radius: var( --astraz-raio-card );
	color: var( --astraz-grafite-45 );
}

.astraz-carregando {
	position: absolute;
	top: 4rem;
	left: 50%;
	width: 2.2rem;
	height: 2.2rem;
	margin-left: -1.1rem;
	border: 2px solid var( --astraz-linha );
	border-top-color: var( --astraz-dourado );
	border-radius: 50%;
	animation: astraz-girar 720ms linear infinite;
	opacity: 0;
	pointer-events: none;
}

.astraz-catalogo.esta-carregando .astraz-carregando {
	opacity: 1;
}

@keyframes astraz-girar {

	to {
		transform: rotate( 360deg );
	}
}

/* Card de protocolo — apenas titulo, indicacao e duracao. */

.astraz-card {
	display: flex;
	flex-direction: column;
	height: 100%;
	overflow: hidden;
	background-color: var( --astraz-branco );
	border: var( --astraz-borda-card );
	border-radius: var( --astraz-raio-card );
	transition: transform var( --astraz-transicao ), box-shadow var( --astraz-transicao ),
		border-color var( --astraz-transicao );
}

.astraz-card:hover,
.astraz-card:focus-within {
	transform: translateY( -5px );
	border-color: var( --astraz-terracota );
	box-shadow: var( --astraz-sombra-card );
}

.astraz-card__midia {
	position: relative;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background-color: var( --astraz-offwhite-2 );
}

.astraz-card__midia img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform var( --astraz-transicao-lenta );
}

.astraz-card:hover .astraz-card__midia img {
	transform: scale( 1.05 );
}

.astraz-card__tag {
	position: absolute;
	top: var( --astraz-espaco-xs );
	left: var( --astraz-espaco-xs );
	padding: 0.28rem 0.75rem;
	border-radius: 100px;
	background-color: rgba( 250, 248, 245, 0.94 );
	color: var( --astraz-nude-escuro );
	font-size: 0.6rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.astraz-card__corpo {
	display: flex;
	flex-direction: column;
	flex: 1;
	gap: 0.6rem;
	padding: var( --astraz-espaco-md );
}

.astraz-card__titulo {
	margin: 0;
	font-size: var( --astraz-passo-1 );
}

.astraz-card__indicacao {
	margin: 0;
	color: var( --astraz-grafite-70 );
	font-size: 0.92rem;
	max-width: none;
}

.astraz-card__meta {
	display: flex;
	flex-wrap: wrap;
	gap: var( --astraz-espaco-sm );
	margin-top: 0.2rem;
	padding-top: 0.85rem;
	border-top: 1px solid var( --astraz-linha );
	font-size: 0.76rem;
	color: var( --astraz-grafite-45 );
}

.astraz-card__meta span {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
}

.astraz-card__meta svg {
	width: 0.95rem;
	height: 0.95rem;
	color: var( --astraz-dourado-escuro );
}

.astraz-card__acao {
	margin-top: auto;
	padding-top: var( --astraz-espaco-sm );
}

/* -------------------------------------------------------------------------
 * 10. Modal AJAX de detalhes do protocolo
 * ---------------------------------------------------------------------- */

.astraz-modal {
	position: fixed;
	inset: 0;
	z-index: var( --astraz-z-modal );
	display: flex;
	align-items: center;
	justify-content: center;
	padding: var( --astraz-espaco-sm );
	background-color: rgba( 31, 31, 31, 0.62 );
	backdrop-filter: blur( 4px );
	opacity: 0;
	visibility: hidden;
	transition: opacity var( --astraz-transicao ), visibility var( --astraz-transicao );
}

.astraz-modal.esta-aberto {
	opacity: 1;
	visibility: visible;
}

.astraz-modal__caixa {
	position: relative;
	width: min( 100%, 940px );
	max-height: 88vh;
	overflow-y: auto;
	background-color: var( --astraz-offwhite );
	border-radius: var( --astraz-raio-card );
	box-shadow: 0 30px 80px rgba( 45, 30, 30, 0.28 );
	transform: translateY( 18px );
	transition: transform var( --astraz-transicao );
}

.astraz-modal.esta-aberto .astraz-modal__caixa {
	transform: translateY( 0 );
}

.astraz-modal__fechar {
	position: absolute;
	top: var( --astraz-espaco-xs );
	right: var( --astraz-espaco-xs );
	z-index: 2;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.5rem;
	height: 2.5rem;
	padding: 0;
	background-color: var( --astraz-offwhite );
	border: 1px solid var( --astraz-linha );
	border-radius: 50%;
	color: var( --astraz-nude-escuro );
}

.astraz-modal__fechar:hover {
	background-color: var( --astraz-nude-escuro );
	color: var( --astraz-offwhite );
}

.astraz-modal__fechar svg {
	width: 1rem;
	height: 1rem;
}

.astraz-modal__conteudo {
	padding: var( --astraz-espaco-lg ) var( --astraz-espaco-md ) var( --astraz-espaco-md );
}

@media ( min-width: 760px ) {

	.astraz-modal__conteudo {
		padding: var( --astraz-espaco-lg );
	}
}

.astraz-protocolo__cabecalho {
	display: grid;
	gap: var( --astraz-espaco-md );
	margin-bottom: var( --astraz-espaco-md );
}

@media ( min-width: 760px ) {

	.astraz-protocolo__cabecalho {
		grid-template-columns: minmax( 0, 0.9fr ) minmax( 0, 1.1fr );
		align-items: start;
	}
}

.astraz-protocolo__figura img {
	width: 100%;
	border-radius: var( --astraz-raio-card );
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

.astraz-protocolo__ficha {
	display: grid;
	gap: 0.75rem;
	margin: var( --astraz-espaco-sm ) 0;
	padding: var( --astraz-espaco-sm );
	background-color: var( --astraz-branco );
	border: var( --astraz-borda-card );
	border-radius: var( --astraz-raio-card );
}

.astraz-protocolo__ficha-item {
	display: flex;
	justify-content: space-between;
	gap: var( --astraz-espaco-sm );
	font-size: 0.88rem;
}

.astraz-protocolo__ficha-rotulo {
	color: var( --astraz-grafite-45 );
	letter-spacing: 0.08em;
	text-transform: uppercase;
	font-size: 0.68rem;
	padding-top: 0.2rem;
}

.astraz-protocolo__ficha-valor {
	text-align: right;
	font-weight: 500;
	color: var( --astraz-nude-escuro );
}

.astraz-protocolo__colunas {
	display: grid;
	gap: var( --astraz-espaco-md );
	margin-top: var( --astraz-espaco-md );
	padding-top: var( --astraz-espaco-md );
	border-top: 1px solid var( --astraz-linha );
}

@media ( min-width: 760px ) {

	.astraz-protocolo__colunas {
		grid-template-columns: repeat( 2, 1fr );
	}
}

.astraz-protocolo__bloco h4 {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	font-family: var( --astraz-fonte-texto );
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var( --astraz-dourado-escuro );
}

.astraz-protocolo__bloco h4 svg {
	width: 1rem;
	height: 1rem;
}

.astraz-protocolo__bloco ul {
	margin: 0;
	padding-left: 1.05rem;
	color: var( --astraz-grafite-70 );
	font-size: 0.92rem;
}

.astraz-protocolo__bloco li {
	margin-bottom: 0.35rem;
}

.astraz-protocolo__investimento {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var( --astraz-espaco-sm );
	margin-top: var( --astraz-espaco-md );
	padding: var( --astraz-espaco-md );
	background-color: var( --astraz-nude-escuro );
	border-radius: var( --astraz-raio-card );
	color: var( --astraz-terracota-suave );
}

.astraz-protocolo__investimento-rotulo {
	display: block;
	font-size: 0.66rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var( --astraz-dourado );
}

.astraz-protocolo__investimento-valor {
	display: block;
	font-family: var( --astraz-fonte-display );
	font-size: var( --astraz-passo-2 );
	color: var( --astraz-offwhite );
}

.astraz-protocolo__investimento-nota {
	display: block;
	font-size: 0.8rem;
	max-width: 34ch;
}

/* -------------------------------------------------------------------------
 * 11. Linha do tempo do atendimento
 * ---------------------------------------------------------------------- */

.astraz-jornada {
	display: grid;
	gap: var( --astraz-espaco-md );
	counter-reset: astraz-etapa;
}

@media ( min-width: 900px ) {

	.astraz-jornada {
		grid-template-columns: repeat( 4, 1fr );
		gap: var( --astraz-espaco-sm );
	}
}

.astraz-etapa {
	position: relative;
	padding-top: var( --astraz-espaco-md );
	border-top: 1px solid var( --astraz-linha );
	counter-increment: astraz-etapa;
}

.astraz-secao--escura .astraz-etapa {
	border-top-color: var( --astraz-linha-clara );
}

.astraz-etapa::before {
	content: "0" counter( astraz-etapa );
	position: absolute;
	top: -0.85rem;
	left: 0;
	padding-right: 0.6rem;
	background-color: var( --astraz-offwhite );
	font-family: var( --astraz-fonte-display );
	font-size: 1.05rem;
	color: var( --astraz-dourado-escuro );
}

.astraz-secao--veu .astraz-etapa::before {
	background-color: var( --astraz-offwhite-2 );
}

.astraz-secao--escura .astraz-etapa::before {
	background-color: var( --astraz-nude-escuro );
	color: var( --astraz-dourado );
}

.astraz-etapa__titulo {
	font-size: var( --astraz-passo-1 );
	margin-bottom: 0.35rem;
}

.astraz-etapa__texto {
	margin: 0;
	font-size: 0.92rem;
	color: var( --astraz-grafite-70 );
	max-width: none;
}

.astraz-secao--escura .astraz-etapa__texto {
	color: var( --astraz-terracota-suave );
}

.astraz-etapa__duracao {
	display: inline-block;
	margin-top: var( --astraz-espaco-xs );
	font-size: 0.68rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var( --astraz-grafite-45 );
}

/* -------------------------------------------------------------------------
 * 12. Corpo medico e ambientes
 * ---------------------------------------------------------------------- */

.astraz-especialista {
	display: flex;
	flex-direction: column;
	height: 100%;
	overflow: hidden;
	background-color: var( --astraz-branco );
	border: var( --astraz-borda-card );
	border-radius: var( --astraz-raio-card );
}

.astraz-especialista__retrato {
	position: relative;
	aspect-ratio: 3 / 4;
	overflow: hidden;
	background-color: var( --astraz-offwhite-2 );
}

.astraz-especialista__retrato img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	filter: saturate( 0.94 );
	transition: transform var( --astraz-transicao-lenta );
}

.astraz-especialista:hover .astraz-especialista__retrato img {
	transform: scale( 1.04 );
}

.astraz-especialista__corpo {
	display: flex;
	flex-direction: column;
	flex: 1;
	padding: var( --astraz-espaco-md );
}

.astraz-especialista__nome {
	margin-bottom: 0.15rem;
	font-size: var( --astraz-passo-2 );
}

.astraz-especialista__cargo {
	display: block;
	margin-bottom: var( --astraz-espaco-xs );
	font-size: 0.72rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var( --astraz-dourado-escuro );
}

.astraz-especialista__registro {
	display: inline-flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin-bottom: var( --astraz-espaco-sm );
	font-size: 0.74rem;
	color: var( --astraz-grafite-45 );
}

.astraz-especialista__registro span {
	padding: 0.18rem 0.6rem;
	border: 1px solid var( --astraz-linha );
	border-radius: 100px;
}

.astraz-especialista__bio {
	margin: 0 0 var( --astraz-espaco-sm );
	font-size: 0.94rem;
	color: var( --astraz-grafite-70 );
	max-width: none;
}

.astraz-especialista__formacao {
	margin: auto 0 0;
	padding: var( --astraz-espaco-xs ) 0 0;
	border-top: 1px solid var( --astraz-linha );
	list-style: none;
	font-size: 0.86rem;
	color: var( --astraz-grafite-70 );
}

.astraz-especialista__formacao li {
	display: flex;
	gap: 0.5rem;
	align-items: flex-start;
	margin-top: 0.45rem;
}

.astraz-especialista__formacao svg {
	width: 0.95rem;
	height: 0.95rem;
	margin-top: 0.32rem;
	flex-shrink: 0;
	color: var( --astraz-dourado-escuro );
}

/* Galeria de ambientes em mosaico. */

.astraz-galeria {
	display: grid;
	gap: var( --astraz-espaco-xs );
	grid-template-columns: repeat( 2, 1fr );
}

@media ( min-width: 900px ) {

	.astraz-galeria {
		grid-template-columns: repeat( 4, 1fr );
		grid-auto-rows: 12rem;
	}

	.astraz-galeria__item--destaque {
		grid-column: span 2;
		grid-row: span 2;
	}
}

.astraz-galeria__item {
	position: relative;
	overflow: hidden;
	border-radius: var( --astraz-raio-card );
	background-color: var( --astraz-offwhite-2 );
	aspect-ratio: 1;
}

@media ( min-width: 900px ) {

	.astraz-galeria__item {
		aspect-ratio: auto;
	}
}

.astraz-galeria__item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform var( --astraz-transicao-lenta );
}

.astraz-galeria__item:hover img {
	transform: scale( 1.06 );
}

.astraz-galeria__legenda {
	position: absolute;
	inset-inline: 0;
	bottom: 0;
	padding: var( --astraz-espaco-sm );
	background: linear-gradient( to top, rgba( 45, 30, 30, 0.82 ), transparent );
	color: var( --astraz-offwhite );
	font-size: 0.78rem;
	letter-spacing: 0.06em;
}

/* -------------------------------------------------------------------------
 * 13. Cabecalho interno de pagina e conteudo juridico
 * ---------------------------------------------------------------------- */

.astraz-capa {
	position: relative;
	padding-block: var( --astraz-espaco-2xl ) var( --astraz-espaco-xl );
	background-color: var( --astraz-nude-escuro );
	color: var( --astraz-terracota-suave );
	overflow: hidden;
}

.astraz-capa::after {
	content: "";
	position: absolute;
	inset: 0;
	background: radial-gradient( 120% 80% at 82% 12%, rgba( 212, 178, 111, 0.18 ), transparent 58% );
	pointer-events: none;
}

.astraz-capa__conteudo {
	position: relative;
	max-width: 62ch;
}

.astraz-capa__titulo {
	color: var( --astraz-offwhite );
	font-size: var( --astraz-passo-4 );
	margin-bottom: var( --astraz-espaco-xs );
}

.astraz-capa__apoio {
	font-size: var( --astraz-passo-1 );
	margin: 0;
}

.astraz-migalhas {
	position: relative;
	margin-bottom: var( --astraz-espaco-sm );
	font-size: 0.7rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var( --astraz-terracota );
}

.astraz-migalhas a {
	color: var( --astraz-terracota );
	text-decoration: none;
}

.astraz-migalhas a:hover {
	color: var( --astraz-dourado );
}

.astraz-migalhas__separador {
	margin-inline: 0.5rem;
	color: var( --astraz-dourado-escuro );
}

/* Documentos juridicos com indice lateral. */

.astraz-juridico {
	display: grid;
	gap: var( --astraz-espaco-lg );
	align-items: start;
}

@media ( min-width: 960px ) {

	.astraz-juridico {
		grid-template-columns: 17rem minmax( 0, 1fr );
		gap: var( --astraz-espaco-xl );
	}
}

.astraz-indice {
	padding: var( --astraz-espaco-md );
	background-color: var( --astraz-branco );
	border: var( --astraz-borda-card );
	border-radius: var( --astraz-raio-card );
}

@media ( min-width: 960px ) {

	.astraz-indice {
		position: sticky;
		top: 7.5rem;
	}
}

.astraz-indice__titulo {
	margin-bottom: var( --astraz-espaco-xs );
	font-size: 0.7rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var( --astraz-dourado-escuro );
	font-family: var( --astraz-fonte-texto );
	font-weight: 600;
}

.astraz-indice__lista {
	margin: 0;
	padding: 0;
	list-style: none;
	display: grid;
	gap: 0.4rem;
}

.astraz-indice__lista a {
	display: block;
	padding: 0.3rem 0;
	font-size: 0.88rem;
	text-decoration: none;
	color: var( --astraz-grafite-70 );
	border-left: 2px solid transparent;
	padding-left: 0.7rem;
	transition: border-color var( --astraz-transicao ), color var( --astraz-transicao );
}

.astraz-indice__lista a:hover,
.astraz-indice__lista a:focus-visible {
	border-left-color: var( --astraz-dourado );
	color: var( --astraz-nude-escuro );
}

.astraz-artigo {
	max-width: 72ch;
}

.astraz-artigo h2 {
	margin-top: var( --astraz-espaco-lg );
	font-size: var( --astraz-passo-2 );
	padding-bottom: var( --astraz-espaco-2xs );
	border-bottom: 1px solid var( --astraz-linha );
}

.astraz-artigo h2:first-child {
	margin-top: 0;
}

.astraz-artigo h3 {
	margin-top: var( --astraz-espaco-md );
	font-size: var( --astraz-passo-1 );
}

.astraz-artigo p,
.astraz-artigo li {
	color: var( --astraz-grafite-70 );
}

.astraz-artigo li {
	margin-bottom: 0.5rem;
}

.astraz-artigo strong {
	color: var( --astraz-nude-escuro );
	font-weight: 600;
}

.astraz-nota {
	margin-block: var( --astraz-espaco-md );
	padding: var( --astraz-espaco-md );
	background-color: var( --astraz-terracota-veu );
	border-radius: var( --astraz-raio-card );
	border-left: 2px solid var( --astraz-dourado );
}

.astraz-nota p:last-child {
	margin-bottom: 0;
}

.astraz-atualizacao {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	margin-bottom: var( --astraz-espaco-md );
	font-size: 0.76rem;
	letter-spacing: 0.08em;
	color: var( --astraz-grafite-45 );
}

.astraz-atualizacao svg {
	width: 1rem;
	height: 1rem;
	color: var( --astraz-dourado-escuro );
}

/* Perguntas frequentes com divulgacao progressiva nativa. */

.astraz-faq {
	display: grid;
	gap: 0.6rem;
}

.astraz-faq__item {
	background-color: var( --astraz-branco );
	border: var( --astraz-borda-card );
	border-radius: var( --astraz-raio-card );
	overflow: hidden;
}

.astraz-faq__item[ open ] {
	border-color: var( --astraz-terracota );
}

.astraz-faq__gatilho {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var( --astraz-espaco-sm );
	padding: var( --astraz-espaco-sm ) var( --astraz-espaco-md );
	font-size: 1rem;
	font-weight: 500;
	color: var( --astraz-nude-escuro );
	cursor: pointer;
	list-style: none;
}

.astraz-faq__gatilho::-webkit-details-marker {
	display: none;
}

.astraz-faq__gatilho svg {
	width: 1rem;
	height: 1rem;
	flex-shrink: 0;
	color: var( --astraz-dourado-escuro );
	transition: transform var( --astraz-transicao );
}

.astraz-faq__item[ open ] .astraz-faq__gatilho svg {
	transform: rotate( 45deg );
}

.astraz-faq__resposta {
	padding: 0 var( --astraz-espaco-md ) var( --astraz-espaco-md );
	color: var( --astraz-grafite-70 );
	font-size: 0.94rem;
}

.astraz-faq__resposta p:last-child {
	margin-bottom: 0;
}

/* -------------------------------------------------------------------------
 * 14. Rodape global em 4 colunas
 * ---------------------------------------------------------------------- */

.astraz-rodape {
	background-color: var( --astraz-nude-escuro );
	color: var( --astraz-terracota-suave );
	padding-top: var( --astraz-espaco-2xl );
}

.astraz-rodape__grade {
	display: grid;
	gap: var( --astraz-espaco-lg );
	padding-bottom: var( --astraz-espaco-lg );
}

@media ( min-width: 720px ) {

	.astraz-rodape__grade {
		grid-template-columns: repeat( 2, 1fr );
	}
}

@media ( min-width: 1100px ) {

	.astraz-rodape__grade {
		grid-template-columns: 1.5fr 1fr 1.2fr 1.1fr;
		gap: var( --astraz-espaco-xl );
	}
}

.astraz-rodape__titulo {
	margin-bottom: var( --astraz-espaco-sm );
	font-family: var( --astraz-fonte-texto );
	font-size: 0.7rem;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var( --astraz-dourado );
}

.astraz-rodape__marca .astraz-marca__nome {
	color: var( --astraz-offwhite );
}

.astraz-rodape__marca .astraz-marca__assinatura {
	color: var( --astraz-terracota );
}

.astraz-rodape__manifesto {
	margin-block: var( --astraz-espaco-sm );
	font-size: 0.92rem;
	max-width: 38ch;
	color: var( --astraz-terracota-suave );
}

.astraz-rodape__registro {
	font-size: 0.78rem;
	letter-spacing: 0.06em;
	color: var( --astraz-terracota );
}

.astraz-rodape__lista {
	margin: 0;
	padding: 0;
	list-style: none;
	display: grid;
	gap: 0.55rem;
}

.astraz-rodape__lista a {
	font-size: 0.9rem;
	text-decoration: none;
	color: var( --astraz-terracota-suave );
	transition: color var( --astraz-transicao ), padding-left var( --astraz-transicao );
}

.astraz-rodape__lista a:hover,
.astraz-rodape__lista a:focus-visible {
	color: var( --astraz-dourado );
	padding-left: 0.3rem;
}

.astraz-contato__item {
	display: flex;
	gap: 0.65rem;
	align-items: flex-start;
	margin-bottom: var( --astraz-espaco-sm );
	font-size: 0.9rem;
}

.astraz-contato__item svg {
	width: 1.05rem;
	height: 1.05rem;
	margin-top: 0.3rem;
	flex-shrink: 0;
	color: var( --astraz-dourado );
}

.astraz-contato__item a {
	color: var( --astraz-terracota-suave );
	text-decoration: none;
}

.astraz-contato__item a:hover {
	color: var( --astraz-dourado );
}

.astraz-selos {
	display: grid;
	gap: 0.6rem;
	margin-bottom: var( --astraz-espaco-md );
}

.astraz-selo {
	display: flex;
	align-items: center;
	gap: 0.65rem;
	padding: 0.6rem 0.85rem;
	border: 1px solid var( --astraz-linha-clara );
	border-radius: var( --astraz-raio );
	font-size: 0.76rem;
	line-height: 1.35;
	color: var( --astraz-terracota-suave );
}

.astraz-selo svg {
	width: 1.3rem;
	height: 1.3rem;
	flex-shrink: 0;
	color: var( --astraz-dourado );
}

.astraz-selo strong {
	display: block;
	color: var( --astraz-offwhite );
	font-weight: 500;
	letter-spacing: 0.04em;
}

.astraz-rodape__social {
	display: flex;
	gap: 0.5rem;
	margin-top: var( --astraz-espaco-sm );
}

.astraz-rodape__social a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.4rem;
	height: 2.4rem;
	border: 1px solid var( --astraz-linha-clara );
	border-radius: 50%;
	color: var( --astraz-terracota-suave );
	transition: background-color var( --astraz-transicao ), color var( --astraz-transicao ),
		border-color var( --astraz-transicao );
}

.astraz-rodape__social a:hover {
	background-color: var( --astraz-dourado );
	border-color: var( --astraz-dourado );
	color: var( --astraz-nude-escuro );
}

.astraz-rodape__social svg {
	width: 1.05rem;
	height: 1.05rem;
}

.astraz-rodape__base {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var( --astraz-espaco-sm );
	padding-block: var( --astraz-espaco-md );
	border-top: 1px solid var( --astraz-linha-clara );
	font-size: 0.78rem;
	color: var( --astraz-terracota );
}

.astraz-rodape__base p {
	margin: 0;
	max-width: none;
}

.astraz-rodape__juridico {
	display: flex;
	flex-wrap: wrap;
	gap: var( --astraz-espaco-sm );
}

.astraz-rodape__juridico a {
	color: var( --astraz-terracota );
	text-decoration: none;
}

.astraz-rodape__juridico a:hover {
	color: var( --astraz-dourado );
}

/* Concierge flutuante. */

.astraz-concierge {
	position: fixed;
	right: 1.1rem;
	bottom: 1.1rem;
	z-index: 880;
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
	padding: 0.85rem 1.15rem;
	border-radius: 100px;
	background-color: var( --astraz-nude-escuro );
	color: var( --astraz-offwhite );
	font-size: 0.76rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	text-decoration: none;
	box-shadow: 0 12px 32px rgba( 45, 30, 30, 0.28 );
	transition: transform var( --astraz-transicao ), background-color var( --astraz-transicao );
}

.astraz-concierge:hover,
.astraz-concierge:focus-visible {
	transform: translateY( -3px );
	background-color: var( --astraz-dourado );
	color: var( --astraz-nude-escuro );
}

.astraz-concierge svg {
	width: 1.2rem;
	height: 1.2rem;
	color: var( --astraz-dourado );
}

.astraz-concierge:hover svg,
.astraz-concierge:focus-visible svg {
	color: var( --astraz-nude-escuro );
}

.astraz-concierge__rotulo {
	display: none;
}

@media ( min-width: 620px ) {

	.astraz-concierge__rotulo {
		display: inline;
	}
}

/* -------------------------------------------------------------------------
 * 15. Formularios e campos nativos
 * ---------------------------------------------------------------------- */

.astraz-campo {
	display: grid;
	gap: 0.35rem;
	margin-bottom: var( --astraz-espaco-sm );
}

.astraz-campo__rotulo {
	font-size: 0.72rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var( --astraz-grafite-45 );
}

.astraz-campo input[ type="text" ],
.astraz-campo input[ type="email" ],
.astraz-campo input[ type="tel" ],
.astraz-campo input[ type="date" ],
.astraz-campo input[ type="search" ],
.astraz-campo select,
.astraz-campo textarea {
	width: 100%;
	padding: 0.85rem 1rem;
	background-color: var( --astraz-branco );
	border: 1px solid var( --astraz-linha );
	border-radius: var( --astraz-raio );
	color: var( --astraz-grafite );
	font: inherit;
	transition: border-color var( --astraz-transicao ), box-shadow var( --astraz-transicao );
}

.astraz-campo input:focus,
.astraz-campo select:focus,
.astraz-campo textarea:focus {
	outline: none;
	border-color: var( --astraz-dourado );
	box-shadow: 0 0 0 3px rgba( 212, 178, 111, 0.22 );
}

.astraz-campo textarea {
	min-height: 8rem;
	resize: vertical;
}

.astraz-consentimento {
	display: flex;
	gap: 0.6rem;
	align-items: flex-start;
	margin-block: var( --astraz-espaco-sm );
	font-size: 0.82rem;
	color: var( --astraz-grafite-70 );
}

.astraz-consentimento input {
	margin-top: 0.3rem;
	accent-color: var( --astraz-dourado-escuro );
}

.astraz-formulario__retorno {
	margin-top: var( --astraz-espaco-sm );
	padding: var( --astraz-espaco-sm );
	border-radius: var( --astraz-raio );
	font-size: 0.88rem;
	display: none;
}

.astraz-formulario__retorno.esta-visivel {
	display: block;
}

.astraz-formulario__retorno--sucesso {
	background-color: rgba( 122, 152, 122, 0.14 );
	border-left: 2px solid #6f8f6f;
	color: #3d5a3d;
}

.astraz-formulario__retorno--erro {
	background-color: rgba( 176, 86, 74, 0.12 );
	border-left: 2px solid #b0564a;
	color: #8d3a30;
}

/* -------------------------------------------------------------------------
 * 16. Revelacao progressiva no scroll
 * ---------------------------------------------------------------------- */

.astraz-revelar {
	opacity: 0;
	transform: translateY( 22px );
	transition: opacity var( --astraz-transicao-lenta ), transform var( --astraz-transicao-lenta );
	will-change: opacity, transform;
}

.astraz-revelar.esta-visivel {
	opacity: 1;
	transform: none;
}

@media ( prefers-reduced-motion: reduce ) {

	.astraz-revelar {
		opacity: 1;
		transform: none;
	}
}

/* -------------------------------------------------------------------------
 * 17. Compatibilidade com o nucleo do WordPress
 * ---------------------------------------------------------------------- */

.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;
}

.alignwide {
	width: min( 100% + 8rem, 96vw );
	margin-inline: auto;
}

.alignfull {
	width: 100vw;
	max-width: 100vw;
	margin-left: calc( 50% - 50vw );
}

.alignleft {
	float: left;
	margin: 0.35rem var( --astraz-espaco-md ) var( --astraz-espaco-sm ) 0;
}

.alignright {
	float: right;
	margin: 0.35rem 0 var( --astraz-espaco-sm ) var( --astraz-espaco-md );
}

.aligncenter {
	margin-inline: auto;
}

.wp-caption-text,
.wp-element-caption {
	margin-top: var( --astraz-espaco-2xs );
	font-size: 0.78rem;
	color: var( --astraz-grafite-45 );
	text-align: center;
}

blockquote {
	margin: var( --astraz-espaco-md ) 0;
	padding-left: var( --astraz-espaco-md );
	border-left: 2px solid var( --astraz-dourado );
	font-family: var( --astraz-fonte-display );
	font-size: var( --astraz-passo-2 );
	color: var( --astraz-nude-escuro );
}

table {
	width: 100%;
	border-collapse: collapse;
	margin-block: var( --astraz-espaco-md );
	font-size: 0.9rem;
}

th,
td {
	padding: 0.75rem;
	border-bottom: 1px solid var( --astraz-linha );
	text-align: left;
}

th {
	font-size: 0.7rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var( --astraz-grafite-45 );
}

.astraz-paginacao {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
	margin-top: var( --astraz-espaco-lg );
}

.astraz-paginacao .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.5rem;
	height: 2.5rem;
	padding-inline: 0.5rem;
	border: 1px solid var( --astraz-linha );
	border-radius: var( --astraz-raio );
	text-decoration: none;
	font-size: 0.85rem;
	color: var( --astraz-grafite-70 );
}

.astraz-paginacao .page-numbers.current,
.astraz-paginacao .page-numbers:hover {
	background-color: var( --astraz-nude-escuro );
	border-color: var( --astraz-nude-escuro );
	color: var( --astraz-dourado-claro );
}

.astraz-404 {
	text-align: center;
	padding-block: var( --astraz-espaco-3xl );
}

.astraz-404__codigo {
	font-family: var( --astraz-fonte-display );
	font-size: clamp( 5rem, 16vw, 11rem );
	line-height: 0.9;
	color: var( --astraz-terracota-suave );
}

.astraz-404 p {
	margin-inline: auto;
}

.astraz-lista-conteudo {
	display: grid;
	gap: var( --astraz-espaco-md );
}

.astraz-print-apenas {
	display: none;
}

@media print {

	.astraz-header,
	.astraz-rodape,
	.astraz-concierge,
	.astraz-modal,
	.astraz-drawer,
	.astraz-cortina {
		display: none !important;
	}

	body {
		background-color: #fff;
	}

	.astraz-print-apenas {
		display: block;
	}
}

/* -------------------------------------------------------------------------
 * 18. Estados vazios e blocos auxiliares
 * ---------------------------------------------------------------------- */

.astraz-card__placeholder {
	position: absolute;
	inset: 0;
	background:
		radial-gradient( 120% 80% at 30% 20%, rgba( 195, 155, 139, 0.28 ), transparent 60% ),
		linear-gradient( 160deg, var( --astraz-offwhite-2 ), var( --astraz-terracota-veu ) );
}

.astraz-widget {
	margin-bottom: var( --astraz-espaco-md );
	padding: var( --astraz-espaco-md );
	background-color: var( --astraz-branco );
	border: var( --astraz-borda-card );
	border-radius: var( --astraz-raio-card );
}

.astraz-widget__titulo {
	margin-bottom: var( --astraz-espaco-xs );
	font-size: 0.72rem;
	font-family: var( --astraz-fonte-texto );
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var( --astraz-dourado-escuro );
}

.astraz-protocolo__resumo {
	color: var( --astraz-grafite-70 );
	font-size: 0.96rem;
}

.astraz-protocolo__resumo p:last-child {
	margin-bottom: 0;
}

.astraz-indice__lista a[ aria-current="true" ] {
	border-left-color: var( --astraz-dourado );
	color: var( --astraz-nude-escuro );
	font-weight: 500;
}

@media ( min-width: 760px ) {

	.astraz-protocolo__cabecalho--sem-figura {
		grid-template-columns: minmax( 0, 1fr );
	}
}

/* -------------------------------------------------------------------------
 * 19. Reserva de horario VIP (independe da loja estar ativa)
 * ---------------------------------------------------------------------- */


.astraz-reserva {
	display: grid;
	gap: var( --astraz-espaco-md );
	padding: var( --astraz-espaco-md );
	background-color: var( --astraz-branco );
	border: var( --astraz-borda-card );
	border-top: 2px solid var( --astraz-dourado );
	border-radius: var( --astraz-raio-card );
}

.astraz-reserva__campos {
	display: grid;
	gap: var( --astraz-espaco-sm );
}

@media ( min-width: 700px ) {

	.astraz-reserva__campos {
		grid-template-columns: repeat( 2, 1fr );
	}
}

.astraz-horarios {
	display: flex;
	flex-wrap: wrap;
	gap: 0.45rem;
}

.astraz-horario {
	padding: 0.6rem 1rem;
	background-color: var( --astraz-offwhite );
	border: 1px solid var( --astraz-linha );
	border-radius: 100px;
	font-size: 0.82rem;
	color: var( --astraz-grafite-70 );
	transition: background-color var( --astraz-transicao ), color var( --astraz-transicao ),
		border-color var( --astraz-transicao );
}

.astraz-horario[ aria-pressed="true" ] {
	background-color: var( --astraz-nude-escuro );
	border-color: var( --astraz-nude-escuro );
	color: var( --astraz-dourado-claro );
}

.astraz-horario:disabled {
	opacity: 0.38;
	cursor: not-allowed;
	text-decoration: line-through;
}

.astraz-calendario {
	display: grid;
	gap: 0.35rem;
	grid-template-columns: repeat( 7, 1fr );
	max-width: 26rem;
}

.astraz-calendario__cabecalho {
	grid-column: 1 / -1;
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: var( --astraz-espaco-2xs );
}

.astraz-calendario__mes {
	font-family: var( --astraz-fonte-display );
	font-size: 1.15rem;
	color: var( --astraz-nude-escuro );
	text-transform: capitalize;
}

.astraz-calendario__navegar {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.1rem;
	height: 2.1rem;
	padding: 0;
	background-color: transparent;
	border: 1px solid var( --astraz-linha );
	border-radius: 50%;
	color: var( --astraz-nude-escuro );
}

.astraz-calendario__navegar svg {
	width: 0.85rem;
	height: 0.85rem;
}

.astraz-calendario__navegar:disabled {
	opacity: 0.35;
	cursor: not-allowed;
}

.astraz-calendario__dia-semana {
	font-size: 0.62rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	text-align: center;
	color: var( --astraz-grafite-45 );
	padding-bottom: 0.2rem;
}

.astraz-calendario__dia {
	aspect-ratio: 1;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background-color: transparent;
	border: 1px solid transparent;
	border-radius: 50%;
	font-size: 0.86rem;
	color: var( --astraz-grafite-70 );
	transition: background-color var( --astraz-transicao ), color var( --astraz-transicao );
}

.astraz-calendario__dia:hover:not( :disabled ) {
	border-color: var( --astraz-terracota );
}

.astraz-calendario__dia[ aria-pressed="true" ] {
	background-color: var( --astraz-dourado );
	border-color: var( --astraz-dourado );
	color: var( --astraz-nude-escuro );
	font-weight: 600;
}

.astraz-calendario__dia:disabled {
	opacity: 0.28;
	cursor: not-allowed;
}

.astraz-calendario__dia--vazio {
	pointer-events: none;
	border: 0;
}

.astraz-botao:disabled,
.astraz-botao[ aria-disabled="true" ] {
	opacity: 0.42;
	cursor: not-allowed;
	transform: none;
	box-shadow: none;
	filter: grayscale( 0.35 );
}

.astraz-especialista__retrato:empty,
.astraz-galeria__item:not( :has( img ) ) {
	background:
		radial-gradient( 120% 80% at 30% 20%, rgba( 195, 155, 139, 0.28 ), transparent 60% ),
		linear-gradient( 160deg, var( --astraz-offwhite-2 ), var( --astraz-terracota-veu ) );
}

/* Reserva espaco para o concierge flutuante nao cobrir o copyright. */

.astraz-rodape__base {
	padding-bottom: 5rem;
}

@media ( min-width: 1100px ) {

	.astraz-rodape__base {
		padding-right: 12rem;
	}
}
