/*
Theme Name:   Água Pura Child
Theme URI:    https://aguapurajoinville.com.br
Description:  Tema filho do Astra para a loja Água Pura Joinville. A home é renderizada por front-page.php, com hero e soluções por perfil lendo campos personalizados e a grade puxando produtos reais do WooCommerce. Sem construtor de página e sem sobrescrever templates do WooCommerce.
Author:       Água Pura Joinville
Template:     astra
Version:      0.17.54
License:      GNU General Public License v2 or later
Text Domain:  agua-pura
*/

/* =========================================================================
   1. Tokens — espelham o DESIGN.md
   ========================================================================= */

:root {
	--azul-agua-pura:   #0068A0;
	--azul-profundo:    #04405F;
	--verde-limao:      #A0D040;
	--verde-folha:      #5E8C36;

	--fundo-claro:      #F4F8FA;
	--borda:            #E1E9EE;
	--texto-secundario: #5B7280;
	--texto-principal:  #16303F;

	--sobre-limao:      #14331A;

	/* Estados: 8% mais escuro que a cor de origem. */
	--azul-hover:       #006093;
	--limao-hover:      #93BF3B;

	--fonte: 'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;

	--raio:      8px;
	--raio-card: 12px;
	--espaco-xs:  8px;
	--espaco-sm: 16px;
	--espaco-md: 24px;
	--espaco-lg: 48px;
	--espaco-xl: 80px;

	--largura-conteudo: 1200px;
}

/* =========================================================================
   2. Base do documento

   O header.php e o footer.php são deste tema, então não há markup do Astra
   para neutralizar: a home simplesmente não abre .ast-container, e as demais
   telas abrem. Por isso não há !important aqui.
   ========================================================================= */

body {
	margin: 0;
	font-family: var(--fonte);
	color: var(--texto-principal);
	background: #FFFFFF;
}

#content.site-content {
	background: #FFFFFF;
}

/* Só existe fora da home: o header.php não abre container na página inicial,
   porque as seções de lá são full-bleed e trazem o próprio .ap-container. */
#content > .ast-container {
	max-width: var(--largura-conteudo);
	margin: 0 auto;
	padding: var(--espaco-lg) var(--espaco-md);
}

/* Na home o hero precisa começar colado no cabeçalho e ir de ponta a ponta.
   O Astra aplica margem e padding próprios ao wrapper de conteúdo
   (#content / #primary) — era daí que vinha a faixa branca no topo e nas
   laterais, e não da regra acima, que nem chega a casar na home.
   Sem !important: este arquivo é enfileirado por último (prioridade 999) e
   .home #primary.ap-home tem especificidade maior que o #primary do Astra. */
.home #content,
.home #content > #primary,
.home #primary.ap-home {
	margin: 0;
	padding: 0;
	max-width: none;
	border: 0;
	background: #FFFFFF;
}

.home #primary.ap-home > .ap-hero-bloco:first-child { margin-top: 0; }

.skip-link {
	position: absolute;
	left: -9999px;
}

.skip-link:focus {
	left: var(--espaco-sm);
	top: var(--espaco-sm);
	z-index: 999;
	width: auto;
	height: auto;
	clip: auto;
	padding: 12px 20px;
	background: #FFFFFF;
	border-radius: var(--raio);
	box-shadow: 0 6px 18px rgba(4, 64, 95, 0.25);
	color: var(--azul-agua-pura);
	font-weight: 600;
	text-decoration: none;
}

.screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	border: 0;
	padding: 0;
	margin: -1px;
}

.ap-home {
	font-family: var(--fonte);
	color: var(--texto-principal);
	-webkit-font-smoothing: antialiased;
}

.ap-home *,
.ap-home *::before,
.ap-home *::after {
	box-sizing: border-box;
}

/* =========================================================================
   3. Estrutura de seção
   ========================================================================= */

.ap-container {
	max-width: var(--largura-conteudo);
	margin: 0 auto;
	padding: 0 var(--espaco-md);
}

.ap-secao {
	padding: var(--espaco-xl) 0;
}

.ap-secao--branca { background: #FFFFFF; }

.ap-secao--clara {
	background: var(--fundo-claro);
	border-top: 1px solid var(--borda);
	border-bottom: 1px solid var(--borda);
}

.ap-secao__cabecalho {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: var(--espaco-sm);
	margin-bottom: var(--espaco-md);
}

.ap-secao__titulo {
	margin: 0 0 var(--espaco-xs);
	font-size: 24px;
	font-weight: 600;
	line-height: 1.3;
	color: var(--azul-profundo);
}

.ap-secao__titulo--solo { margin-bottom: var(--espaco-md); }

.ap-secao__linha {
	margin: 0;
	font-size: 14px;
	color: var(--texto-secundario);
}

.ap-aviso {
	padding: var(--espaco-md);
	background: #FFFFFF;
	border: 1px dashed var(--borda);
	border-radius: var(--raio-card);
	color: var(--texto-secundario);
}

.ap-icone { flex-shrink: 0; }

/* =========================================================================
   4. Sistema de botões

   Verde limão: UMA ação por tela — o botão principal do hero.
   Azul sólido: ações que se repetem, incluindo os botões da grade.
   Contornado: ações secundárias.
   Verde folha nunca vira botão; é só estado e indicador positivo.

   O componente vale no site inteiro: a home, as páginas internas e as
   telas do WooCommerce usam a mesma classe `.ap-btn`. O acabamento
   exclusivo da home fica na seção 19.
   ========================================================================= */

.ap-btn,
.woocommerce ul.products li.product .button {
	display: inline-block;
	border: 1px solid transparent;
	border-radius: var(--raio);
	padding: 14px 26px;
	font-family: var(--fonte);
	font-size: 16px;
	font-weight: 500;
	line-height: 1.2;
	text-align: center;
	text-decoration: none;
	cursor: pointer;
	box-shadow: 0 1px 2px rgba(4, 64, 95, 0.10);
	transition: background-color 200ms ease, border-color 200ms ease,
	            color 200ms ease, box-shadow 200ms ease, transform 200ms ease;
}

.ap-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	max-width: 100%;
}

.ap-btn:hover,
.woocommerce ul.products li.product .button:hover {
	transform: translateY(-1px);
	box-shadow: 0 6px 14px rgba(4, 64, 95, 0.20);
}

.ap-btn:active,
.woocommerce ul.products li.product .button:active {
	transform: translateY(0);
	box-shadow: none;
}

.ap-btn--lima {
	background: var(--verde-limao);
	color: var(--sobre-limao);
	font-weight: 600;
	padding: 15px 30px;
}

.ap-btn--lima:hover,
.ap-btn--lima:focus {
	background: var(--limao-hover);
	color: var(--sobre-limao);
}

.ap-btn--azul,
.woocommerce ul.products li.product .button {
	background: var(--azul-agua-pura);
	color: #FFFFFF;
}

.ap-btn--azul:hover,
.ap-btn--azul:focus,
.woocommerce ul.products li.product .button:hover,
.woocommerce ul.products li.product .button:focus {
	background: var(--azul-hover);
	color: #FFFFFF;
}

.ap-btn--contorno {
	background: #EAF4FA;
	border: 1px solid var(--azul-agua-pura);
	color: var(--azul-agua-pura);
	box-shadow: none;
	padding: 12px 22px;
	font-size: 15px;
}

.ap-btn--contorno:hover,
.ap-btn--contorno:focus {
	background: #EAF1F6;
	color: var(--azul-agua-pura);
}

.ap-btn--contorno-branco {
	background: #FFFFFF;
	border: 1px solid #FFFFFF;
	color: var(--azul-profundo);
	box-shadow: none;
}

.ap-btn--contorno-branco:hover,
.ap-btn--contorno-branco:focus {
	background: #EAF4FA;
	border-color: #FFFFFF;
	color: var(--azul-profundo);
	box-shadow: none;
}

/* =========================================================================
   5. Foco visível
   ========================================================================= */

.ap-home a:focus-visible,
.ap-home button:focus-visible,
.woocommerce ul.products li.product a:focus-visible {
	outline: 2px solid var(--azul-agua-pura);
	outline-offset: 2px;
	border-radius: 4px;
}

/* Sobre fundo escuro o anel precisa ser branco para continuar visível. */
.ap-escuro a:focus-visible,
.ap-escuro button:focus-visible {
	outline-color: #FFFFFF;
}

/* =========================================================================
   6. Banner principal
   ========================================================================= */

.ap-hero-bloco {
	position: relative;
	background: #FFFFFF;
}

.ap-hero {
	position: relative;
	background: #FFFFFF;
	border-bottom: 0;
	overflow: hidden;
}

.ap-hero::before {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg,
		rgba(255, 255, 255, 0.99) 0%,
		rgba(255, 255, 255, 0.96) 31%,
		rgba(255, 255, 255, 0.72) 44%,
		rgba(255, 255, 255, 0.08) 64%,
		rgba(255, 255, 255, 0) 78%);
	pointer-events: none;
	z-index: 1;
}

.ap-hero__textura {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	display: none;
	opacity: 0;
	pointer-events: none;
	z-index: 0;
}

/* Fundo panorâmico independente: a água pode ser trocada sem fundir ou
   deformar os produtos cadastrados no ACF. */
.ap-hero__agua {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	display: block;
	object-fit: cover;
	object-position: center;
	opacity: 0.96;
	filter: saturate(0.9) contrast(1.02);
	pointer-events: none;
	z-index: 0;
}

/* A nova fotografia da água já cria o contraste necessário. */
.ap-hero__halo {
	display: none;
}

/* Selo comemorativo vetorial: mantém contornos e textos nítidos em qualquer
   resolução, inclusive nas telas de alta densidade dos celulares. */
.ap-hero__selo {
	position: absolute;
	top: 10px;
	left: 8px;
	width: 132px;
	height: 132px;
	display: block;
	overflow: visible;
	filter: drop-shadow(0 14px 20px rgba(3, 51, 74, 0.24));
	z-index: 8;
}

.ap-hero__selo text { font-family: var(--fonte); }

.ap-hero__interno {
	position: relative;
	z-index: 2;
	width: 100%;
	max-width: var(--largura-conteudo);
	margin: 0 auto;
	min-height: 620px;
	padding: var(--espaco-lg) var(--espaco-md) 110px;
	display: grid;
	grid-template-columns: minmax(0, 42%) minmax(0, 58%);
	align-items: center;
	column-gap: 0;
}

.ap-hero__texto {
	width: 100%;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--espaco-md);
}

.ap-hero__interno--sem-foto { grid-template-columns: minmax(0, 1fr); }
.ap-hero__interno--sem-foto .ap-hero__texto { grid-column: 1 / -1; }

.ap-hero__eyebrow {
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 2.6px;
	text-transform: uppercase;
	color: var(--azul-agua-pura);
}

.ap-home .ap-hero__titulo {
	margin: 0;
	font-size: 52px;
	font-weight: 600;
	line-height: 1.14;
	letter-spacing: -0.5px;
	color: var(--azul-profundo);
	text-wrap: balance;
	max-width: 15ch;
}

.ap-hero__subtitulo {
	margin: 0;
	font-size: 18px;
	line-height: 1.6;
	/* 0.88 mantém o contraste acima de 4.5:1 no ponto mais claro do degradê. */
	color: var(--texto-secundario);
	max-width: min(480px, 100%);
}

.ap-hero__preco {
	margin: 0;
	display: flex;
	align-items: baseline;
	gap: var(--espaco-xs);
}

.ap-hero__preco-rotulo { font-size: 15px; color: var(--texto-secundario); }

.ap-hero__preco-valor {
	font-size: 32px;
	font-weight: 600;
	color: var(--azul-profundo);
	font-variant-numeric: tabular-nums;
}

.ap-hero__acoes {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--espaco-sm);
	margin-top: 0;
}

.ap-hero__nota {
	margin-top: 0;
	font-size: 14px;
	line-height: 1.6;
	color: var(--texto-secundario);
}

.ap-hero .ap-btn--lima { box-shadow: 0 10px 24px rgba(115, 157, 35, 0.2); }

.ap-hero .ap-btn--contorno-branco {
	background: #EAF4FA;
	border-color: var(--azul-agua-pura);
	color: var(--azul-agua-pura);
}

.ap-hero .ap-btn--contorno-branco:hover,
.ap-hero .ap-btn--contorno-branco:focus {
	background: #EAF6FA;
	border-color: var(--azul-profundo);
	color: var(--azul-profundo);
}

/* Palco dos produtos: três equipamentos e a dupla de refis compartilham uma
   única base visual, como em uma fotografia de catálogo. */
.ap-hero__media {
	position: relative;
	justify-self: end;
	width: min(100%, 680px);
	height: clamp(430px, 36vw, 500px);
	isolation: isolate;
}

/* Contraste localizado: uma sombra difusa azul-marinho separa o purificador
   branco do fundo, sem parecer um círculo ou um elemento gráfico rígido. */
.ap-hero__media::before {
	content: '';
	position: absolute;
	inset: 10% 0 12% 22%;
	border-radius: 48% 52% 46% 54%;
	background: radial-gradient(ellipse at 61% 50%,
		rgba(2, 22, 30, 0.36) 0%,
		rgba(3, 44, 59, 0.22) 38%,
		rgba(5, 76, 97, 0.1) 58%,
		rgba(5, 76, 97, 0) 74%);
	filter: blur(10px);
	transform: scale(0.98);
	pointer-events: none;
	z-index: 0;
}

.ap-hero__sombra {
	position: absolute;
	left: 51%;
	transform: translateX(-50%);
	bottom: 34px;
	width: 96%;
	height: clamp(24px, 2.8vw, 40px);
	border-radius: 50%;
	background: radial-gradient(ellipse at center,
		rgba(4, 64, 95, 0.3) 0%,
		rgba(4, 64, 95, 0.13) 46%,
		rgba(4, 64, 95, 0) 74%);
	z-index: 1;
}

.ap-home .ap-hero__foto {
	position: absolute;
	right: 12%;
	bottom: 40px;
	display: block;
	height: clamp(300px, 27vw, 405px);
	width: auto;
	max-width: 62%;
	object-fit: contain;
	filter:
		drop-shadow(0 22px 28px rgba(1, 28, 43, 0.24))
		drop-shadow(0 1px 2px rgba(4, 76, 112, 0.46));
	z-index: 4;
}

.ap-home .ap-hero__produto-industrial {
	position: absolute;
	left: 0;
	bottom: 42px;
	display: block;
	height: clamp(220px, 20vw, 280px);
	width: auto;
	max-width: 28%;
	object-fit: contain;
	filter: drop-shadow(0 16px 22px rgba(1, 28, 43, 0.16));
	z-index: 2;
}

.ap-home .ap-hero__produto-secundario {
	position: absolute;
	left: 18%;
	bottom: 42px;
	display: block;
	height: clamp(240px, 21vw, 320px);
	width: auto;
	max-width: 34%;
	object-fit: contain;
	filter: drop-shadow(0 18px 24px rgba(1, 28, 43, 0.2));
	z-index: 3;
}

.ap-home .ap-hero__refis {
	position: absolute;
	right: 0;
	bottom: 43px;
	display: block;
	height: clamp(150px, 15vw, 205px);
	width: auto;
	max-width: 18%;
	object-fit: contain;
	filter: drop-shadow(0 14px 18px rgba(1, 28, 43, 0.14));
	z-index: 5;
}

.ap-hero__onda {
	position: absolute;
	left: 0;
	bottom: 0;
	width: 100%;
	height: 44px;
	display: block;
}

/* ------------------------------------------- card de confiança flutuante */

/* Sem padding embaixo: o respiro até a próxima seção é dado pelo padding-top
   dela (80px, na escala do DESIGN.md). Somar os dois abria um vão de 160px. */
.ap-confianca-wrap {
	position: relative;
	/* O card sobrepõe o hero: precisa ficar acima da camada branca usada
	   para proteger a leitura do texto no lado esquerdo do banner. */
	z-index: 4;
	max-width: var(--largura-conteudo);
	margin: -70px auto 0;
	padding: 0 var(--espaco-md);
}

.ap-confianca {
	position: relative;
	overflow: hidden;
	background: linear-gradient(135deg, rgba(255, 255, 255, 0.99), rgba(246, 251, 253, 0.98));
	border: 1px solid var(--borda);
	border-radius: 18px;
	box-shadow: 0 20px 50px rgba(4, 64, 95, 0.16);
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.ap-confianca::before {
	content: '';
	position: absolute;
	inset: 0 0 auto;
	height: 4px;
	background: linear-gradient(90deg, var(--azul-profundo), var(--azul-agua-pura), #28ACD8);
}

.ap-confianca__item {
	position: relative;
	display: flex;
	align-items: flex-start;
	gap: 16px;
	min-height: 126px;
	padding: 25px 24px 22px;
	color: var(--texto-principal);
	transition: background-color 200ms ease, transform 200ms ease;
}

.ap-confianca__item + .ap-confianca__item { border-left: 1px solid var(--borda); }
.ap-confianca__item:hover {
	background: rgba(232, 245, 251, 0.62);
	transform: translateY(-1px);
}

.ap-confianca__icone {
	flex: 0 0 52px;
	height: 52px;
	display: grid;
	place-items: center;
	background: linear-gradient(145deg, #F0F8FC, #E3F1F8);
	border: 1px solid rgba(0, 104, 160, 0.10);
	border-radius: 50%;
	box-shadow: inset 0 1px 0 #FFFFFF;
}

.ap-confianca__texto { min-width: 0; }

.ap-confianca__texto strong,
.ap-confianca__texto small { display: block; }

.ap-confianca__texto strong {
	margin-bottom: 6px;
	font-size: 15px;
	font-weight: 600;
	line-height: 1.3;
	color: var(--azul-profundo);
}

.ap-confianca__texto small {
	font-size: 12px;
	line-height: 1.5;
	color: var(--texto-secundario);
}

/* =========================================================================
   7. Categorias
   ========================================================================= */

.ap-categorias-secao {
	position: relative;
	overflow: hidden;
	background: #FFFFFF;
}

.ap-categorias-secao::before {
	content: '';
	position: absolute;
	right: -170px;
	top: 30px;
	width: 390px;
	height: 390px;
	border: 1px solid rgba(0, 104, 160, 0.06);
	border-radius: 50%;
	pointer-events: none;
}

.ap-categorias-secao .ap-container { position: relative; }

.ap-categorias__cabecalho {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: var(--espaco-lg);
	margin-bottom: 32px;
}

.ap-categorias__introducao { max-width: 680px; }

.ap-categorias__eyebrow {
	display: block;
	margin-bottom: 10px;
	font-size: 12px;
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: 0.16em;
	color: var(--azul-agua-pura);
}

.ap-categorias__titulo {
	margin: 0 0 12px;
	font-size: clamp(28px, 2.5vw, 36px);
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: -0.025em;
	color: var(--azul-profundo);
}

.ap-categorias__subtitulo {
	margin: 0;
	font-size: 16px;
	line-height: 1.65;
	color: var(--texto-secundario);
}

.ap-categorias__cta { flex: 0 0 auto; }

.ap-categorias {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: var(--espaco-md);
}

.ap-categoria {
	position: relative;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	min-height: 196px;
	padding: 26px;
	background: #FFFFFF;
	border: 1px solid var(--borda);
	border-radius: var(--raio-card);
	box-shadow: 0 10px 30px rgba(4, 64, 95, 0.07);
	text-decoration: none;
}

.ap-categoria::before {
	content: '';
	position: absolute;
	inset: 0 0 auto;
	height: 4px;
	background: linear-gradient(90deg, var(--azul-agua-pura), #27A8D5);
}

.ap-categoria__icone {
	display: grid;
	place-items: center;
	width: 56px;
	height: 56px;
	flex-shrink: 0;
	margin-bottom: 20px;
	background: rgba(0, 104, 160, 0.08);
	border-radius: 14px;
}

.ap-categoria__texto { display: flex; flex-direction: column; gap: 7px; }

.ap-categoria__nome {
	font-size: 18px;
	font-weight: 600;
	line-height: 1.35;
	color: var(--texto-principal);
}

.ap-categoria__desc { font-size: 13px; line-height: 1.55; color: var(--texto-secundario); }

/* =========================================================================
   8. Grade de produtos — classes reais do WooCommerce

   O shortcode [products] devolve o loop padrão. Nenhum template é
   sobrescrito: só o CSS abaixo. O Astra embrulha título e preço em
   .astra-shop-summary-wrap, e as regras funcionam com ou sem esse wrapper.
   ========================================================================= */

.ap-produtos-secao {
	position: relative;
	overflow: hidden;
	background:
		radial-gradient(circle at 92% 8%, rgba(0, 104, 160, 0.08), transparent 25%),
		linear-gradient(180deg, #F4F8FA 0%, #FFFFFF 100%);
}

.ap-produtos-secao::before {
	content: '';
	position: absolute;
	left: -160px;
	bottom: -220px;
	width: 440px;
	height: 440px;
	border: 1px solid rgba(0, 104, 160, 0.07);
	border-radius: 50%;
	pointer-events: none;
}

.ap-produtos-secao .ap-container { position: relative; }

.ap-produtos__cabecalho {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: var(--espaco-lg);
	margin-bottom: 32px;
}

.ap-produtos__introducao { max-width: 720px; }

.ap-produtos__eyebrow {
	display: block;
	margin-bottom: 10px;
	font-size: 12px;
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: 0.16em;
	color: var(--azul-agua-pura);
}

.ap-produtos__titulo {
	margin: 0 0 12px;
	font-size: clamp(28px, 2.5vw, 36px);
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: -0.025em;
	color: var(--azul-profundo);
}

.ap-produtos__subtitulo {
	max-width: 640px;
	margin: 0;
	font-size: 16px;
	line-height: 1.65;
	color: var(--texto-secundario);
}

.ap-produtos__atalhos {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 18px;
}

.ap-produtos__atalhos a {
	min-height: 34px;
	display: inline-flex;
	align-items: center;
	padding: 7px 12px;
	font-size: 12px;
	font-weight: 600;
	line-height: 1.3;
	color: var(--azul-profundo);
	background: rgba(255, 255, 255, 0.85);
	border: 1px solid var(--borda);
	border-radius: 999px;
	text-decoration: none;
	transition: color 200ms ease, border-color 200ms ease, background-color 200ms ease;
}

.ap-produtos__atalhos a:hover {
	color: var(--azul-agua-pura);
	background: #FFFFFF;
	border-color: rgba(0, 104, 160, 0.28);
}

.ap-produtos__cta { flex: 0 0 auto; }

.ap-produtos__grade > .woocommerce { width: 100%; }

.ap-home .woocommerce ul.products {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(250px, 270px));
	justify-content: center;
	gap: var(--espaco-md);
	margin: 0;
	padding: 0;
	list-style: none;
}

.ap-home .woocommerce ul.products::before,
.ap-home .woocommerce ul.products::after { content: none; }

/* Neutraliza o layout em float do woocommerce-layout.css. */
.ap-home .woocommerce ul.products li.product {
	float: none;
	width: auto;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	position: relative;
	background: #FFFFFF;
	border: 1px solid var(--borda);
	border-radius: var(--raio-card);
	overflow: hidden;
	text-align: left;
	box-shadow: 0 4px 14px rgba(4, 64, 95, 0.07);
	transition: transform 200ms ease, box-shadow 200ms ease, border-color 200ms ease;
}

.ap-home .woocommerce ul.products li.product::before {
	content: '';
	position: absolute;
	inset: 0 0 auto;
	z-index: 3;
	height: 4px;
	background: linear-gradient(90deg, var(--azul-agua-pura), #27A8D5);
}

.ap-home .woocommerce ul.products li.product:hover {
	transform: translateY(-2px);
	border-color: rgba(0, 104, 160, 0.25);
	box-shadow: 0 14px 30px rgba(4, 64, 95, 0.14);
}

.ap-home .woocommerce ul.products li.product > a {
	display: flex;
	flex-direction: column;
	text-decoration: none;
	color: inherit;
}

.ap-home .woocommerce ul.products li.product img {
	display: block;
	width: 100%;
	height: 230px;
	object-fit: contain;
	margin: 0;
	padding: 22px;
	background: linear-gradient(180deg, #FFFFFF 0%, #F8FBFC 100%);
	border-bottom: 1px solid var(--borda);
	transition: transform 200ms ease;
}

.ap-home .woocommerce ul.products li.product:hover img { transform: scale(1.03); }

/* O Astra cria um wrapper próprio para a miniatura. Ele vira o recorte do
   zoom e o pequeno botão circular duplicado é removido: o card já tem CTA. */
.ap-home .woocommerce ul.products li.product .astra-shop-thumbnail-wrap {
	position: relative;
	overflow: hidden;
	background: linear-gradient(180deg, #FFFFFF 0%, #F8FBFC 100%);
	order: 1;
}

.ap-home .woocommerce ul.products li.product .ast-on-card-button { display: none; }

/* O Astra põe categoria, título, preço e botão no mesmo wrapper. Ele cresce
   até a base do card para o CTA poder ficar alinhado em toda a linha. */
.ap-home .woocommerce ul.products li.product .astra-shop-summary-wrap {
	display: flex;
	flex-direction: column;
	flex-grow: 1;
	width: 100%;
	padding: 22px;
	margin: 0;
	order: 2;
}

.ap-home .woocommerce ul.products li.product .astra-shop-summary-wrap a:not(.button),
.ap-home .woocommerce ul.products li.product .woocommerce-loop-product__link {
	color: inherit;
	text-decoration: none;
}

/* Categoria gerada pelo Astra. */
.ap-home .woocommerce ul.products li.product .ast-woo-product-category {
	display: inline-flex;
	align-self: flex-start;
	margin: 0 0 10px;
	padding: 5px 9px;
	font-size: 11px;
	font-weight: 600;
	line-height: 1.35;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: var(--azul-profundo);
	background: rgba(0, 104, 160, 0.07);
	border-radius: 999px;
	opacity: 1;
}

.ap-home .woocommerce ul.products li.product .woocommerce-loop-product__title {
	padding-left: 20px;
	padding-right: 20px;
}

.ap-home .woocommerce ul.products li.product .astra-shop-summary-wrap .woocommerce-loop-product__title,
.ap-home .woocommerce ul.products li.product .astra-shop-summary-wrap .price {
	padding-left: 0;
	padding-right: 0;
}

.ap-home .woocommerce ul.products li.product .woocommerce-loop-product__title {
	margin: 0;
	padding-top: 0;
	/* Reserva duas linhas para que todos os cards fiquem da mesma altura. */
	min-height: calc(2 * 1.4em);
	font-size: 17px;
	font-weight: 600;
	line-height: 1.35;
	color: var(--texto-principal);
	transition: color 200ms ease;
}

.ap-home .woocommerce ul.products li.product:hover .woocommerce-loop-product__title {
	color: var(--azul-agua-pura);
}

.ap-home .woocommerce ul.products li.product .price {
	margin: 0;
	padding-top: var(--espaco-sm);
	font-size: 24px;
	font-weight: 600;
	color: var(--texto-principal);
	font-variant-numeric: tabular-nums;
}

.ap-home .woocommerce ul.products li.product .price del {
	font-size: 14px;
	font-weight: 400;
	color: var(--texto-secundario);
	opacity: 1;
}

.ap-home .woocommerce ul.products li.product .price ins {
	text-decoration: none;
	color: var(--texto-principal);
}

.ap-home .woocommerce ul.products li.product .star-rating {
	margin: var(--espaco-xs) 0 0;
	font-size: 13px;
}

/* Variações reais do produto variável. São indicadores de disponibilidade,
   não controles falsos: a escolha continua na página do produto. */
.ap-home .woocommerce ul.products li.product .ap-card-variacoes {
	order: 2;
	display: grid;
	gap: 8px;
	margin: 14px 0 0;
	padding: 12px 0 0;
	border-top: 1px solid var(--borda);
}

.ap-card-variacao {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px;
	min-height: 24px;
}

.ap-card-variacao__rotulo {
	min-width: 62px;
	font-size: 11px;
	font-weight: 600;
	line-height: 1.3;
	color: var(--texto-secundario);
}

.ap-card-cores,
.ap-card-voltagens {
	display: inline-flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 7px;
}

.ap-card-cor {
	position: relative;
	width: 21px;
	height: 21px;
	flex: 0 0 21px;
	border: 2px solid #FFFFFF;
	border-radius: 50%;
	background: var(--ap-cor, #CBD5E1);
	box-shadow: 0 0 0 1px rgba(4, 64, 95, 0.24), 0 2px 5px rgba(4, 64, 95, 0.12);
}

.ap-card-cor--metalica {
	background: linear-gradient(135deg, #7F8A91 0%, #F4F7F8 46%, #AEB8BF 72%, #E5EAED 100%);
}

.ap-card-voltagem {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 24px;
	padding: 4px 8px;
	border: 1px solid rgba(0, 104, 160, 0.2);
	border-radius: 999px;
	background: rgba(0, 104, 160, 0.06);
	font-size: 10px;
	font-weight: 700;
	line-height: 1;
	color: var(--azul-profundo);
	font-variant-numeric: tabular-nums;
}

.ap-home .woocommerce ul.products li.product .ap-card-variacoes + .ap-card-pagamento {
	margin-top: 12px;
}

/* Condições de pagamento: agrupadas visualmente, logo abaixo do preço. */
.ap-home .woocommerce ul.products li.product .ap-card-pagamento {
	order: 3;
	margin: 18px 0 var(--espaco-md);
	padding: 0 14px;
	background: #F7FAFC;
	border: 1px solid var(--borda);
	border-radius: var(--raio);
}

.ap-home .woocommerce ul.products li.product .ap-card-parcela,
.ap-home .woocommerce ul.products li.product .ap-card-pix {
	display: flex;
	align-items: center;
	gap: 9px;
	margin: 0;
	padding: 10px 0;
	font-size: 13px;
	line-height: 1.45;
	font-variant-numeric: tabular-nums;
}

.ap-home .woocommerce ul.products li.product .ap-card-parcela {
	color: var(--texto-secundario);
	border-bottom: 1px solid var(--borda);
}

.ap-home .woocommerce ul.products li.product .ap-card-pix {
	color: var(--verde-folha);
	font-weight: 600;
	margin-top: 0;
}

.ap-card-pagamento__icone {
	flex: 0 0 24px;
	height: 24px;
	display: grid;
	place-items: center;
	color: var(--azul-agua-pura);
	background: rgba(0, 104, 160, 0.08);
	border-radius: 6px;
}

.ap-card-pix .ap-card-pagamento__icone {
	color: var(--verde-folha);
	background: rgba(94, 140, 54, 0.10);
}

.ap-home .woocommerce ul.products li.product .ap-card-parcela .amount,
.ap-home .woocommerce ul.products li.product .ap-card-pix .amount {
	font-size: inherit;
	font-weight: inherit;
	color: inherit;
}

/* Botão: largura do card, travado na base.
   O seletor cobre a.button e .button porque produto esgotado ou variável sai
   só com 'button' (sem add_to_cart_button), e perderia o estilo. */
.ap-home .woocommerce ul.products li.product a.button,
.ap-home .woocommerce ul.products li.product .button {
	order: 4;
	display: block;
	width: 100%;
	margin: 0;
	margin-top: auto;
	min-height: 48px;
	padding: 14px 16px;
	border-radius: var(--raio);
	background: var(--azul-agua-pura);
	color: #FFFFFF;
	font-size: 15px;
	font-weight: 600;
	line-height: 1.3;
	text-align: center;
	white-space: nowrap;
}

.ap-home .woocommerce ul.products li.product a.button:hover,
.ap-home .woocommerce ul.products li.product a.button:focus {
	background: var(--azul-hover);
	color: #FFFFFF;
}

/* "Ver carrinho", que o WooCommerce injeta depois do add-to-cart por ajax. */
.ap-home .woocommerce ul.products li.product a.added_to_cart {
	display: block;
	margin: var(--espaco-xs) 0 0;
	font-size: 13px;
	text-align: center;
	color: var(--azul-agua-pura);
}

/* Selo de disponibilidade — elemento do tema, não do WooCommerce. */
.ap-home .woocommerce ul.products li.product .ap-selo-estoque {
	position: absolute;
	top: 14px;
	left: 14px;
	z-index: 2;
	padding: 5px 11px;
	border-radius: 999px;
	background: #EAF3E1;
	border: 1px solid #C8DDB7;
	color: #355C18;
	font-size: 11px;
	font-weight: 600;
	line-height: 1.4;
}

.ap-home .woocommerce ul.products li.product .ap-selo-estoque--fora {
	background: var(--texto-secundario);
}

/* Selo de promoção do WooCommerce: vai para a direita, para não colidir
   com o selo de disponibilidade. */
.ap-home .woocommerce ul.products li.product .onsale {
	position: absolute;
	top: 12px;
	left: auto;
	right: 12px;
	z-index: 2;
	margin: 0;
	min-height: 0;
	min-width: 0;
	padding: 4px 10px;
	line-height: 1.4;
	background: var(--azul-profundo);
	color: #FFFFFF;
	border-radius: var(--raio);
	font-size: 11px;
	font-weight: 600;
}

/* =========================================================================
   9. Soluções por perfil
   ========================================================================= */

.ap-solucoes__cabecalho {
	max-width: 790px;
	margin: 0 0 36px;
}

.ap-solucoes__eyebrow {
	display: block;
	margin-bottom: 10px;
	font-size: 12px;
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--azul-agua-pura);
}

.ap-home .ap-solucoes__titulo {
	max-width: 740px;
	margin: 0 0 12px;
	font-size: clamp(30px, 2.7vw, 40px);
	font-weight: 600;
	line-height: 1.16;
	letter-spacing: -0.03em;
	color: var(--azul-profundo);
}

.ap-solucoes__subtitulo {
	max-width: 700px;
	margin: 0;
	font-size: 16px;
	line-height: 1.65;
	color: var(--texto-secundario);
}

.ap-solucoes-grade {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--espaco-md);
	padding-bottom: var(--espaco-xs);
}

.ap-solucao-card {
	position: relative;
	min-width: 0;
	display: flex;
	flex-direction: column;
	overflow: hidden;
	background: #FFFFFF;
	border: 1px solid var(--borda);
	border-radius: var(--raio-card);
	box-shadow: 0 16px 38px rgba(4, 64, 95, 0.10);
	transition: transform 240ms ease, box-shadow 240ms ease, border-color 240ms ease;
}

.ap-solucao-card__media {
	position: relative;
	flex-shrink: 0;
	height: 236px;
	display: grid;
	place-items: center;
	overflow: hidden;
	background:
		radial-gradient(circle at 50% 48%, rgba(255,255,255,.98) 0 30%, rgba(226,243,250,.82) 60%, transparent 76%),
		linear-gradient(145deg, #F5FBFD 0%, #E7F4F9 100%);
}

.ap-solucao-card--manutencao {
	background: linear-gradient(150deg, #0875A9 0%, #043F60 100%);
	border-color: transparent;
}

.ap-solucao-card--manutencao .ap-solucao-card__media {
	background:
		radial-gradient(circle at 50% 54%, rgba(255,255,255,.18) 0 20%, transparent 64%),
		linear-gradient(145deg, #0C7EB4 0%, #064C70 100%);
}

.ap-solucao-card--empresarial .ap-solucao-card__media {
	background:
		radial-gradient(circle at 50% 50%, #FFFFFF 0 25%, rgba(239,247,250,.94) 57%, transparent 76%),
		linear-gradient(145deg, #F8FBFC 0%, #E4EEF2 100%);
}

.ap-solucao-card__icone {
	position: absolute;
	top: 18px;
	left: 18px;
	z-index: 2;
	width: 44px;
	height: 44px;
	display: grid;
	place-items: center;
	color: var(--azul-agua-pura);
	background: rgba(255,255,255,.92);
	border: 1px solid rgba(0,104,160,.12);
	border-radius: 12px;
	box-shadow: 0 8px 22px rgba(4,64,95,.10);
}

.ap-solucao-card__icone .ap-icone { stroke: currentColor; }

.ap-home .ap-solucao-card__imagem {
	/* Limites explícitos evitam que o tamanho original expanda a linha do grid. */
	position: absolute;
	inset: 20px;
	display: block;
	width: calc(100% - 40px);
	height: calc(100% - 40px);
	max-width: none;
	max-height: none;
	object-fit: contain;
	object-position: center;
	filter: drop-shadow(0 15px 16px rgba(3,45,67,.20));
	transition: transform 260ms ease, filter 260ms ease;
}

.ap-solucao-card__conteudo {
	flex: 1;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 13px;
	padding: 28px;
}

.ap-solucao-card__eyebrow {
	min-height: 34px;
	display: flex;
	align-items: center;
	font-size: 11px;
	font-weight: 700;
	line-height: 1.45;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--azul-agua-pura);
}

.ap-solucao-card--manutencao .ap-solucao-card__eyebrow { color: #BDEFFF; }

.ap-home .ap-solucao-card__titulo {
	margin: 0;
	font-size: clamp(23px, 1.75vw, 28px);
	font-weight: 650;
	line-height: 1.18;
	letter-spacing: -.025em;
	color: var(--texto-principal);
}

.ap-solucao-card__apoio {
	margin: 0;
	font-size: 15px;
	line-height: 1.6;
	color: var(--texto-secundario);
}

.ap-solucao-card--manutencao .ap-solucao-card__titulo { color: #FFFFFF; }
.ap-solucao-card--manutencao .ap-solucao-card__apoio { color: rgba(255,255,255,.84); }

.ap-solucao-card__tags {
	display: flex;
	flex-wrap: wrap;
	gap: 7px;
	margin-top: 2px;
}

.ap-solucao-card__tags span {
	display: inline-flex;
	align-items: center;
	min-height: 28px;
	padding: 5px 10px;
	font-size: 12px;
	font-weight: 600;
	line-height: 1.35;
	color: #07587E;
	background: #EDF7FB;
	border: 1px solid #D7EAF2;
	border-radius: 999px;
}

.ap-solucao-card--manutencao .ap-solucao-card__tags span {
	color: #FFFFFF;
	background: rgba(255,255,255,.10);
	border-color: rgba(255,255,255,.18);
}

.ap-solucao-card__botao {
	width: 100%;
	margin-top: auto;
	padding-top: 8px;
}

.ap-solucao-card__botao .ap-btn { width: 100%; }

@media (hover: hover) {
	.ap-solucao-card:hover {
		transform: translateY(-5px);
		border-color: rgba(0,104,160,.25);
		box-shadow: 0 22px 46px rgba(4,64,95,.16);
	}

	.ap-solucao-card:hover .ap-solucao-card__imagem {
		transform: scale(1.035);
		filter: drop-shadow(0 19px 19px rgba(3,45,67,.24));
	}

}

/* =========================================================================
   10. Serviços
   ========================================================================= */

.ap-servicos-secao {
	position: relative;
	overflow: hidden;
	background:
		radial-gradient(circle at 92% 4%, rgba(0, 104, 160, 0.09), transparent 24%),
		linear-gradient(180deg, #F4F8FA 0%, #FFFFFF 100%);
}

.ap-servicos-secao::before {
	content: '';
	position: absolute;
	left: -150px;
	bottom: -210px;
	width: 430px;
	height: 430px;
	border: 1px solid rgba(0, 104, 160, 0.07);
	border-radius: 50%;
	pointer-events: none;
}

.ap-servicos-secao .ap-container { position: relative; }

.ap-servicos__cabecalho {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: var(--espaco-lg);
	margin-bottom: 32px;
}

.ap-servicos__introducao { max-width: 720px; }

.ap-servicos__eyebrow {
	display: block;
	margin-bottom: 10px;
	font-size: 12px;
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: 0.16em;
	color: var(--azul-agua-pura);
}

.ap-servicos__titulo {
	margin: 0 0 12px;
	font-size: clamp(28px, 2.5vw, 36px);
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: -0.025em;
	color: var(--azul-profundo);
}

.ap-servicos__subtitulo {
	max-width: 650px;
	margin: 0;
	font-size: 16px;
	line-height: 1.65;
	color: var(--texto-secundario);
}

.ap-servicos__cta { flex: 0 0 auto; }

.ap-servicos {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: var(--espaco-md);
}

.ap-servico {
	position: relative;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	min-height: 300px;
	padding: 26px;
	background: #FFFFFF;
	border: 1px solid var(--borda);
	border-radius: var(--raio-card);
	box-shadow: 0 12px 34px rgba(4, 64, 95, 0.08);
}

.ap-servico::before {
	content: '';
	position: absolute;
	inset: 0 0 auto;
	height: 4px;
	background: linear-gradient(90deg, var(--azul-agua-pura), #27A8D5);
}

.ap-servico__topo {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--espaco-sm);
	margin-bottom: 22px;
}

.ap-servico__icone {
	width: 52px;
	height: 52px;
	display: grid;
	place-items: center;
	color: var(--azul-agua-pura);
	background: rgba(0, 104, 160, 0.09);
	border-radius: 14px;
}

.ap-servico__numero {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.12em;
	color: #A8BBC6;
}

.ap-servico__destaque {
	align-self: flex-start;
	margin-bottom: 12px;
	padding: 6px 10px;
	font-size: 11px;
	font-weight: 600;
	line-height: 1.3;
	color: var(--verde-folha);
	background: rgba(94, 140, 54, 0.09);
	border: 1px solid rgba(94, 140, 54, 0.14);
	border-radius: 999px;
}

.ap-home .ap-servico__titulo {
	margin: 0 0 10px;
	font-size: 19px;
	font-weight: 600;
	line-height: 1.35;
	color: var(--texto-principal);
}

.ap-servico__texto {
	margin: 0;
	font-size: 14px;
	line-height: 1.65;
	color: var(--texto-secundario);
}

.ap-servicos__garantias {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	margin-top: var(--espaco-md);
	background: rgba(255, 255, 255, 0.80);
	border: 1px solid var(--borda);
	border-radius: var(--raio-card);
	box-shadow: 0 8px 24px rgba(4, 64, 95, 0.06);
}

.ap-servicos__garantias span {
	min-height: 64px;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	padding: 14px var(--espaco-sm);
	font-size: 13px;
	font-weight: 600;
	text-align: center;
	color: var(--texto-principal);
}

.ap-servicos__garantias span + span { border-left: 1px solid var(--borda); }
.ap-servicos__garantias .ap-icone { flex: 0 0 auto; }

/* =========================================================================
   11. Principais clientes
   ========================================================================= */

.ap-clientes-secao { overflow: hidden; }

.ap-clientes__cabecalho {
	max-width: 680px;
	margin: 0 auto var(--espaco-lg);
	text-align: center;
}

.ap-clientes__eyebrow {
	display: block;
	margin-bottom: var(--espaco-xs);
	font-size: 13px;
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: 1.8px;
	text-transform: uppercase;
	color: var(--azul-agua-pura);
}

.ap-clientes__titulo {
	margin: 0 0 var(--espaco-xs);
	font-size: 32px;
	font-weight: 600;
	line-height: 1.25;
	color: var(--azul-profundo);
}

.ap-clientes__linha {
	margin: 0;
	font-size: 16px;
	line-height: 1.6;
	color: var(--texto-secundario);
}

.ap-clientes__viewport {
	overflow: hidden;
	-webkit-mask-image: linear-gradient(90deg, transparent 0, #000 32px, #000 calc(100% - 32px), transparent 100%);
	mask-image: linear-gradient(90deg, transparent 0, #000 32px, #000 calc(100% - 32px), transparent 100%);
}

.ap-clientes__trilho {
	display: flex;
	width: max-content;
	animation: ap-clientes-deslizar 32s linear infinite;
	will-change: transform;
}

.ap-clientes {
	display: flex;
	flex: 0 0 auto;
	flex-wrap: nowrap;
	gap: var(--espaco-md);
	margin: 0;
	padding: 0 var(--espaco-md) 0 0;
	list-style: none;
}

.ap-cliente {
	flex: 0 0 210px;
	max-width: none;
	height: 168px;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: var(--espaco-md);
	overflow: hidden;
	background: var(--fundo-claro);
	border: 1px solid var(--borda);
	border-radius: var(--raio-card);
}

/* Os arquivos têm canvas transparente quadrado. A imagem passa levemente da
   largura útil do bloco para o desenho do logotipo — que ocupa só o centro do
   PNG — ficar visualmente equilibrado sem recortar nem distorcer. */
.ap-cliente img {
	display: block;
	width: min(280px, 120%);
	height: auto;
	max-width: none;
	object-fit: contain;
}

@keyframes ap-clientes-deslizar {
	from { transform: translateX(0); }
	/* O template tem cinco cópias; uma volta corresponde a 20% da pista. */
	to { transform: translateX(-20%); }
}

/* -------------------------------------------------------------------------
   Modo com JavaScript.

   A classe é posta pelo próprio script, então sem JS tudo acima continua
   valendo e a faixa segue como marquee — o comportamento não regride.

   Com JS o viewport vira container de rolagem nativo: toque, trackpad e
   teclado passam a funcionar sem código. A animação sai de cena porque quem
   move passa a ser a posição de rolagem.
   ------------------------------------------------------------------------- */

/* Prefixadas com .ap-clientes-secao de propósito.

   Sem isso a especificidade fica em (0,1,0), igual à de .ap-clientes__viewport,
   e QUALQUER media query mais abaixo no arquivo vence por ordem. Era o que
   acontecia no mobile: o bloco de 544px reaplicava a máscara em gradiente,
   justamente a que foi removida por custo de GPU. Com o prefixo vai a (0,2,0)
   e o modo JS passa a vencer independente de posição. */
.ap-clientes-secao .ap-clientes__viewport--js {
	overflow-x: auto;
	overflow-y: hidden;
	cursor: grab;
	scrollbar-width: none;
	-ms-overflow-style: none;
	/* O navegador mantém apenas a rolagem vertical da página. O arraste
	   horizontal é controlado pelo script e nunca alcança a borda do trilho. */
	touch-action: pan-y pinch-zoom;
	-webkit-overflow-scrolling: auto;
	/* "none", não "contain": contain só impede a rolagem de contaminar a
	   página, mas deixa o próprio elemento fazer o efeito elástico — e é esse
	   elástico que expõe o fundo branco ao puxar além da ponta. */
	overscroll-behavior-x: none;
	-webkit-mask-image: none;
	mask-image: none;
	/* Rolagem por quadro é feita no JS; deixar o navegador suavizar por cima
	   brigaria com ela e engasgaria no celular. */
	scroll-behavior: auto;
}

/* O gesto só é liberado depois que as 35 ocorrências (sete arquivos únicos)
   foram decodificadas. Assim o celular nunca chega a uma cópia ainda vazia. */
.ap-clientes-secao:not(.ap-clientes-secao--pronta) .ap-clientes__viewport--js {
	pointer-events: none;
}

.ap-clientes-secao .ap-clientes__viewport--js::-webkit-scrollbar { display: none; }

.ap-clientes-secao .ap-clientes__viewport--js .ap-clientes__trilho {
	animation: none;
	will-change: auto;
}

.ap-clientes-secao .ap-clientes__viewport--js.esta-arrastando {
	cursor: grabbing;
	user-select: none;
}

.ap-clientes-secao .ap-clientes__viewport--js.esta-arrastando img { pointer-events: none; }

.ap-clientes-secao .ap-clientes__viewport--js:focus-visible {
	outline: 2px solid var(--azul-agua-pura);
	outline-offset: 4px;
	border-radius: var(--raio);
}

/* -------------------------------------------------------------------------
   Celular: componente independente com Embla Carousel.

   O desktop acima não muda. No mobile os sete clientes são slides diretos;
   Embla faz o loop reposicionando slides por transform, portanto não existe
   uma borda de scroll capaz de revelar uma faixa branca.
   ------------------------------------------------------------------------- */
.ap-clientes-mobile { display: none; }

@media (max-width: 767px) {
	.ap-clientes-desktop { display: none; }

	.ap-clientes-mobile { display: block; }

	.ap-clientes-mobile__viewport {
		overflow-x: auto;
		overflow-y: hidden;
		overscroll-behavior-x: contain;
		scrollbar-width: none;
		-ms-overflow-style: none;
	}

	.ap-clientes-mobile__viewport::-webkit-scrollbar { display: none; }

	.ap-clientes-mobile--pronto .ap-clientes-mobile__viewport {
		overflow: hidden;
	}

	.ap-clientes-mobile__trilho {
		display: flex;
		gap: 12px;
		margin: 0;
		padding: 0;
		list-style: none;
		touch-action: pan-y pinch-zoom;
	}

	/* will-change só enquanto o dedo está na tela.
	   Deixá-lo permanente mantém a camada promovida o tempo todo, consumindo
	   memória de GPU sem necessidade — a própria documentação do Chrome
	   desaconselha. Aqui ele é ligado no pointerDown e desligado no settle. */
	.ap-clientes-mobile--arrastando .ap-clientes-mobile__trilho {
		will-change: transform;
	}

	.ap-clientes-mobile .ap-clientes-mobile__slide {
		flex: 0 0 74%;
		min-width: 0;
		height: 144px;
		padding: var(--espaco-sm);
	}

	.ap-clientes-mobile .ap-clientes-mobile__slide img {
		width: min(250px, 125%);
		height: auto;
		max-width: none;
		object-fit: contain;
	}

}

/* =========================================================================
   12. Depoimentos
   ========================================================================= */

.ap-depoimentos-secao {
	position: relative;
	overflow: hidden;
	background:
		radial-gradient(circle at 8% 12%, rgba(0, 104, 160, 0.09), transparent 28%),
		linear-gradient(180deg, #F4F8FA 0%, #FFFFFF 100%);
}

.ap-depoimentos-secao::before {
	content: '';
	position: absolute;
	right: -120px;
	top: -140px;
	width: 360px;
	height: 360px;
	border: 1px solid rgba(0, 104, 160, 0.09);
	border-radius: 50%;
	pointer-events: none;
}

.ap-depoimentos-secao .ap-container { position: relative; }

.ap-depoimentos__cabecalho {
	display: block;
	margin-bottom: 32px;
}

.ap-depoimentos__introducao { max-width: 760px; }

.ap-depoimentos__eyebrow {
	display: block;
	margin-bottom: 10px;
	font-size: 12px;
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: 0.16em;
	color: var(--azul-agua-pura);
}

.ap-depoimentos__titulo {
	margin: 0 0 12px;
	font-size: clamp(28px, 2.5vw, 36px);
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: -0.025em;
	color: var(--azul-profundo);
}

.ap-depoimentos__subtitulo {
	max-width: 620px;
	margin: 0;
	font-size: 16px;
	line-height: 1.65;
	color: var(--texto-secundario);
}

.ap-depoimentos {
	min-width: 0;
}

.ap-depoimentos__viewport {
	overflow: hidden;
	cursor: grab;
	touch-action: pan-y pinch-zoom;
}

.ap-depoimentos__viewport:active { cursor: grabbing; }

.ap-depoimentos__trilho {
	display: flex;
	align-items: stretch;
	gap: var(--espaco-md);
	backface-visibility: hidden;
}

.ap-depoimento {
	position: relative;
	flex: 0 0 calc((100% - (2 * var(--espaco-md))) / 3);
	min-width: 0;
	overflow: hidden;
	margin: 0;
	min-height: 342px;
	padding: 28px;
	display: flex;
	flex-direction: column;
	gap: 20px;
	background: #FFFFFF;
	border: 1px solid var(--borda);
	border-radius: var(--raio-card);
	box-shadow: 0 12px 34px rgba(4, 64, 95, 0.08);
	transition: transform 200ms ease, box-shadow 200ms ease, border-color 200ms ease;
}

.ap-depoimento::before {
	content: '';
	position: absolute;
	inset: 0 0 auto;
	height: 4px;
	background: linear-gradient(90deg, var(--azul-agua-pura), #27A8D5);
}

.ap-depoimento:hover {
	transform: translateY(-2px);
	border-color: rgba(0, 104, 160, 0.25);
	box-shadow: 0 18px 42px rgba(4, 64, 95, 0.13);
}

.ap-depoimento__topo {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--espaco-sm);
}

.ap-depoimento__destaque {
	display: inline-flex;
	align-items: center;
	min-height: 32px;
	padding: 6px 11px;
	font-size: 12px;
	font-weight: 600;
	line-height: 1.25;
	color: var(--azul-profundo);
	background: rgba(0, 104, 160, 0.08);
	border-radius: 999px;
}

.ap-depoimento__estrelas {
	flex: 0 0 auto;
	font-size: 17px;
	line-height: 1;
	letter-spacing: 1px;
	color: #F4B400;
}

.ap-home .ap-depoimento__texto {
	flex: 1;
	margin: 0;
	padding: 0;
	border: 0;
	font-size: 16px;
	font-style: normal;
	line-height: 1.7;
	color: var(--texto-principal);
	quotes: none;
}

.ap-depoimento__autor {
	display: block;
	align-items: center;
	gap: var(--espaco-sm);
	margin-top: 0;
	padding-top: 18px;
	border-top: 1px solid var(--borda);
}

.ap-depoimento__identidade { min-width: 0; }

.ap-depoimento__nome {
	display: block;
	margin-bottom: 3px;
	font-size: 14px;
	font-weight: 600;
	color: var(--texto-principal);
}

.ap-depoimento__origem {
	display: block;
	font-size: 12px;
	color: var(--texto-secundario);
}

/* =========================================================================
   13. Cabeçalho (header.php)
   ========================================================================= */

.ap-cabecalho { position: relative; z-index: 20; background: #FFFFFF; }

.ap-barra-topo__interno,
.ap-cabecalho__interno,
.ap-menu-barra__interno,
.ap-rodape__interno,
.ap-rodape__barra-interno {
	max-width: var(--largura-conteudo);
	margin: 0 auto;
	padding: 0 var(--espaco-md);
}

/* --------------------------------------------------------- barra superior */

.ap-barra-topo {
	background: var(--azul-profundo);
	color: #FFFFFF;
	font-size: 13px;
}

.ap-barra-topo__interno {
	min-height: 38px;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--espaco-xs);
}

.ap-barra-topo__fone {
	display: inline-flex;
	align-items: center;
	gap: var(--espaco-xs);
	color: #FFFFFF;
	text-decoration: none;
	transition: color 200ms ease;
}

.ap-barra-topo__fone:hover { color: #D7E4EC; }
.ap-barra-topo__fone svg { color: var(--verde-limao); }
.ap-barra-topo__entrega { color: #D7E4EC; }

/* --------------------------------------------------------- barra principal */

.ap-cabecalho__principal { background: #FFFFFF; border-bottom: 1px solid var(--borda); }

.ap-cabecalho__interno {
	min-height: 112px;
	display: flex;
	align-items: center;
	gap: var(--espaco-lg);
}

.ap-marca { flex-shrink: 0; }

.ap-marca img,
.ap-cabecalho .custom-logo-link img {
	display: block;
	height: 78px;
	width: auto;
	max-width: none;
}

/* Busca: cobre o form de produtos do WooCommerce e o get_search_form padrão. */
.ap-busca { flex-grow: 1; min-width: 0; }

.ap-busca form {
	display: flex;
	align-items: stretch;
	height: 46px;
	border: 1px solid var(--borda);
	border-radius: var(--raio);
	overflow: hidden;
	background: #FFFFFF;
	margin: 0;
}

.ap-busca label { margin: 0; }

.ap-busca input[type="search"],
.ap-busca .search-field {
	flex-grow: 1;
	min-width: 0;
	border: 0;
	outline: none;
	padding: 0 var(--espaco-sm);
	background: transparent;
	font-family: var(--fonte);
	font-size: 15px;
	color: var(--texto-principal);
	box-shadow: none;
}

.ap-busca button,
.ap-busca input[type="submit"],
.ap-busca .search-submit {
	flex-shrink: 0;
	border: 0;
	border-radius: 0;
	background: var(--azul-agua-pura);
	color: #FFFFFF;
	padding: 0 22px;
	font-family: var(--fonte);
	font-size: 15px;
	font-weight: 500;
	cursor: pointer;
	transition: background-color 200ms ease;
}

.ap-busca button:hover,
.ap-busca .search-submit:hover { background: var(--azul-hover); }

.ap-busca input:focus-visible,
.ap-busca button:focus-visible {
	outline: 2px solid var(--azul-agua-pura);
	outline-offset: -2px;
}

/* ---------------------------------------------------------------- ações */

.ap-cabecalho__acoes {
	display: flex;
	align-items: center;
	gap: var(--espaco-md);
	flex-shrink: 0;
}

.ap-acao {
	display: flex;
	align-items: center;
	gap: 10px;
	min-height: 44px;
	text-decoration: none;
	color: var(--texto-principal);
	transition: color 200ms ease;
}

.ap-acao svg { color: var(--azul-agua-pura); }
.ap-acao:hover { color: var(--azul-agua-pura); }

.ap-acao__texto { display: flex; flex-direction: column; line-height: 1.25; }
.ap-acao__texto small { font-size: 12px; color: var(--texto-secundario); }

.ap-acao__texto strong {
	font-size: 14px;
	font-weight: 600;
	color: var(--texto-principal);
}

.ap-acao__texto strong .amount { font-size: 14px; font-weight: 600; }

.ap-acao__icone { position: relative; display: block; }

.ap-acao__contador {
	position: absolute;
	top: -6px;
	right: -8px;
	min-width: 18px;
	height: 18px;
	padding: 0 5px;
	border-radius: 9px;
	background: var(--verde-folha);
	color: #FFFFFF;
	font-size: 11px;
	font-weight: 600;
	line-height: 18px;
	text-align: center;
}

/* Hambúrguer: só aparece no mobile. O toggle é um checkbox, sem JS. */
.ap-menu-botao {
	display: none;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	margin-right: -10px;
	cursor: pointer;
	color: var(--azul-agua-pura);
}

/* Escondido por CSS, não por [hidden]: assim continua focável pelo teclado,
   e o anel de foco é desenhado no rótulo (o hambúrguer). */
.ap-menu-toggle {
	position: absolute;
	width: 1px;
	height: 1px;
	opacity: 0;
	pointer-events: none;
}

.ap-menu-toggle:focus-visible ~ .ap-cabecalho__principal .ap-menu-botao {
	outline: 2px solid var(--azul-agua-pura);
	outline-offset: 2px;
	border-radius: var(--raio);
}

/* ------------------------------------------------------------ barra do menu */

.ap-menu-barra { background: var(--azul-agua-pura); }

.ap-menu-barra__interno {
	min-height: 52px;
	display: flex;
	align-items: center;
	gap: var(--espaco-md);
}

.ap-menu__lista {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: calc(var(--espaco-md) + var(--espaco-xs));
	margin: 0;
	padding: 0;
	list-style: none;
}

.ap-menu__lista li { margin: 0; }

.ap-menu__lista a {
	position: relative;
	display: block;
	padding: 14px 0 12px;
	color: #FFFFFF;
	text-decoration: none;
	font-size: 15px;
	font-weight: 500;
}

.ap-menu__lista a::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 10px;
	height: 2px;
	width: 100%;
	background: #FFFFFF;
	transform: scaleX(0);
	transform-origin: left center;
	transition: transform 150ms ease;
}

.ap-menu__lista a:hover::after,
.ap-menu__lista a:focus-visible::after { transform: scaleX(1); }

.ap-menu__lista .current-menu-item > a::after { transform: scaleX(1); }

.ap-menu-selo {
	margin-left: auto;
	display: flex;
	align-items: center;
	gap: var(--espaco-xs);
	color: #D7E4EC;
	font-size: 13px;
	white-space: nowrap;
}

.ap-menu-selo svg { color: var(--verde-limao); }

/* =========================================================================
   14. Rodapé (footer.php)
   ========================================================================= */

.ap-rodape {
	position: relative;
	overflow: hidden;
	background:
		radial-gradient(circle at 90% 5%, rgba(39, 168, 213, 0.12), transparent 24%),
		linear-gradient(135deg, #032F46 0%, var(--azul-profundo) 52%, #064F72 100%);
	color: #FFFFFF;
	font-family: var(--fonte);
}

.ap-rodape *,
.ap-rodape *::before,
.ap-rodape *::after { box-sizing: border-box; }

.ap-rodape::before {
	content: '';
	position: absolute;
	left: -130px;
	bottom: -180px;
	width: 420px;
	height: 420px;
	border: 1px solid rgba(255, 255, 255, 0.06);
	border-radius: 50%;
	pointer-events: none;
}

.ap-rodape__cta-wrap {
	position: relative;
	z-index: 1;
	max-width: var(--largura-conteudo);
	margin: 0 auto;
	padding: var(--espaco-lg) var(--espaco-md) 0;
}

.ap-rodape__cta {
	display: grid;
	grid-template-columns: 56px minmax(0, 1fr) auto;
	align-items: center;
	gap: 20px;
	padding: 24px 28px;
	background: linear-gradient(120deg, var(--azul-agua-pura), #087BAF);
	border: 1px solid rgba(255, 255, 255, 0.18);
	border-radius: 16px;
	box-shadow: 0 16px 40px rgba(0, 21, 33, 0.24);
}

.ap-rodape__cta-icone {
	width: 56px;
	height: 56px;
	display: grid;
	place-items: center;
	color: #FFFFFF;
	background: rgba(255, 255, 255, 0.12);
	border: 1px solid rgba(255, 255, 255, 0.20);
	border-radius: 50%;
}

.ap-rodape__eyebrow {
	display: block;
	margin-bottom: 4px;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.14em;
	color: rgba(255, 255, 255, 0.72);
}

.ap-rodape__cta h2 {
	margin: 0 0 4px;
	font-size: clamp(20px, 2vw, 26px);
	font-weight: 600;
	line-height: 1.25;
	color: #FFFFFF;
}

.ap-rodape__cta p {
	margin: 0;
	font-size: 14px;
	line-height: 1.5;
	color: rgba(255, 255, 255, 0.78);
}

.ap-rodape .ap-rodape__cta-link {
	min-height: 48px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	padding: 12px 18px;
	font-size: 14px;
	font-weight: 600;
	color: var(--azul-profundo);
	background: #FFFFFF;
	border: 1px solid #FFFFFF;
	border-radius: var(--raio);
	box-shadow: 0 8px 20px rgba(0, 31, 48, 0.16);
	transition: transform 200ms ease, background-color 200ms ease, box-shadow 200ms ease;
}

.ap-rodape .ap-rodape__cta-link:hover {
	color: var(--azul-profundo);
	background: #F4F8FA;
	transform: translateY(-2px);
	box-shadow: 0 12px 26px rgba(0, 31, 48, 0.22);
}

.ap-rodape .ap-rodape__cta-link:active { transform: translateY(0); }

.ap-rodape__interno {
	position: relative;
	z-index: 1;
	padding-top: var(--espaco-lg);
	padding-bottom: var(--espaco-lg);
	display: grid;
	grid-template-columns: 1.4fr 0.8fr 0.9fr 1.5fr;
	gap: var(--espaco-lg);
}

.ap-rodape__logo {
	display: inline-flex;
	background: #FFFFFF;
	border-radius: 14px;
	padding: 12px 16px;
	margin-bottom: 18px;
	box-shadow: 0 10px 24px rgba(0, 20, 31, 0.18);
}

.ap-rodape__logo img {
	display: block;
	height: clamp(78px, 6vw, 92px);
	width: auto;
}

.ap-rodape__marca-nome {
	display: block;
	margin-bottom: 10px;
	font-size: 16px;
	font-weight: 600;
	color: #FFFFFF;
}

.ap-rodape__marca p {
	margin: 0;
	font-size: 14px;
	line-height: 1.7;
	color: #B9D0DE;
	max-width: 320px;
}

.ap-rodape__diferenciais {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 18px;
}

.ap-rodape__diferenciais span {
	padding: 6px 9px;
	font-size: 11px;
	font-weight: 600;
	color: #D9EAF3;
	background: rgba(255, 255, 255, 0.07);
	border: 1px solid rgba(255, 255, 255, 0.10);
	border-radius: 999px;
}

.ap-rodape__titulo {
	position: relative;
	margin: 10px 0 22px;
	padding-bottom: 12px;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: #FFFFFF;
}

.ap-rodape__titulo::after {
	content: '';
	position: absolute;
	left: 0;
	bottom: 0;
	width: 28px;
	height: 2px;
	background: #27A8D5;
	border-radius: 2px;
}

.ap-rodape__lista { margin: 0; padding: 0; list-style: none; }
.ap-rodape__lista li { margin: 0 0 14px; }

.ap-rodape a {
	color: #B9D0DE;
	font-size: 14px;
	text-decoration: none;
	transition: color 200ms ease, transform 200ms ease, border-color 200ms ease, background-color 200ms ease;
}

.ap-rodape a:hover { color: #FFFFFF; }

.ap-rodape__lista a { display: inline-flex; align-items: center; }
.ap-rodape__lista a:hover { transform: translateX(3px); }

.ap-rodape__contato-lista {
	display: flex;
	flex-direction: column;
	gap: var(--espaco-sm);
	margin: 0;
	padding: 0;
	list-style: none;
}

.ap-rodape__contato-lista li {
	display: grid;
	grid-template-columns: 36px minmax(0, 1fr);
	align-items: start;
	gap: 11px;
	font-size: 13px;
	line-height: 1.55;
	color: #B9D0DE;
}

.ap-rodape__contato-icone {
	width: 36px;
	height: 36px;
	display: grid;
	place-items: center;
	color: #69C5E7;
	background: rgba(255, 255, 255, 0.06);
	border: 1px solid rgba(255, 255, 255, 0.09);
	border-radius: 9px;
}

.ap-rodape__contato-lista small {
	display: block;
	margin-bottom: 2px;
	font-size: 11px;
	font-weight: 600;
	line-height: 1.3;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: #7FA9BD;
}

.ap-rodape__contato .ap-rodape__fone {
	display: block;
	font-size: 14px;
	font-weight: 400;
	line-height: 1.55;
	color: #B9D0DE;
}

.ap-rodape__contato-secundario {
	display: block;
	margin-top: 0;
	font-size: 14px;
	font-weight: 400;
	line-height: 1.55;
}

.ap-rodape__redes { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px; }

.ap-rodape__redes a {
	min-height: 36px;
	display: inline-flex;
	align-items: center;
	gap: 7px;
	padding: 7px 10px;
	font-size: 12px;
	color: #D7E4EC;
	background: rgba(255, 255, 255, 0.05);
	border: 1px solid rgba(255, 255, 255, 0.09);
	border-radius: 8px;
}

.ap-rodape__redes a:hover { background: rgba(255, 255, 255, 0.10); border-color: rgba(255, 255, 255, 0.18); }

.ap-rodape__rede-icone {
	display: grid;
	place-items: center;
	flex: 0 0 18px;
	width: 18px;
	height: 18px;
	color: #69C5E7;
}

.ap-rodape__rede-icone svg {
	display: block;
	width: 17px;
	height: 17px;
}

.ap-rodape__barra {
	position: relative;
	z-index: 1;
	background: rgba(0, 20, 31, 0.18);
	border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.ap-rodape__barra-interno {
	min-height: 68px;
	padding-top: var(--espaco-sm);
	padding-bottom: var(--espaco-sm);
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--espaco-md);
}

.ap-rodape__legal { font-size: 12px; color: #8FB2C4; }

.ap-rodape__pagamento { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.ap-rodape__pagamento-rotulo { font-size: 13px; color: #8FB2C4; margin-right: 4px; }

.ap-chip,
.ap-pagamento-logo {
	border: 1px solid rgba(255, 255, 255, 0.12);
	border-radius: 6px;
	min-width: 48px;
	height: 32px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 5px 8px;
	font-size: 12px;
	font-weight: 700;
	color: #D7E4EC;
	background: rgba(255, 255, 255, 0.04);
}

.ap-pagamento-logo--visa {
	font-size: 13px;
	font-style: italic;
	letter-spacing: -0.04em;
	color: #17357C;
	background: #FFFFFF;
}

.ap-pagamento-logo--mastercard {
	font-size: 9px;
	color: #FFFFFF;
	background: linear-gradient(90deg, #E52629 0 34%, #F49B1A 34% 66%, #151B36 66%);
}

.ap-pagamento-logo--elo {
	font-size: 13px;
	text-transform: lowercase;
	color: #FFFFFF;
	background: #111820;
}

.ap-pagamento-logo--hipercard {
	font-size: 9px;
	font-style: italic;
	color: #FFFFFF;
	background: #C92132;
}

.ap-pagamento-logo--pix {
	color: #008F7A;
	background: #FFFFFF;
}

.woocommerce div.product .ap-produto-pix {
	display: block;
	margin-top: 8px;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.5;
	color: #4C7322;
}

.woocommerce div.product .ap-produto-pix .amount {
	font-size: inherit;
	color: inherit;
}

/* =========================================================================
   15. Responsivo — a partir dos breakpoints do artboard mobile (390 px)
   ========================================================================= */

/* -------------------------------------------------------------------------
   Notebook: 922 a 1200 px.

   Faixa em que o container já encolheu mas o layout ainda é de duas colunas.
   Sem este degrau, as medidas desenhadas para 1440 px eram aplicadas numa
   largura bem menor.
   ------------------------------------------------------------------------- */

@media (max-width: 1200px) {

	.ap-secao { padding: var(--espaco-lg) 0; }
	.ap-rodape__interno { grid-template-columns: 1.25fr 0.75fr 0.8fr 1.4fr; gap: 32px; }

	.ap-hero__interno {
		min-height: 540px;
		padding: var(--espaco-lg) var(--espaco-md) 96px;
		gap: var(--espaco-md);
	}

	.ap-home .ap-hero__titulo { font-size: 40px; }
	.ap-hero__subtitulo { font-size: 17px; }
	.ap-hero__preco-valor { font-size: 28px; }
	.ap-hero__media { width: min(100%, 540px); height: 440px; }
	.ap-hero__agua { object-position: 54% center; }

	.ap-confianca__item { min-height: 132px; padding: 22px 18px 20px; gap: 13px; }
	.ap-confianca__icone { flex-basis: 48px; height: 48px; }
	.ap-confianca__texto strong { font-size: 14px; }

	.ap-marca img,
	.ap-cabecalho .custom-logo-link img { height: 70px; }
	.ap-solucao-card__media { height: 220px; }
	.ap-solucao-card__conteudo { padding: 24px; }
	.ap-home .ap-solucao-card__titulo { font-size: 23px; }
	.ap-solucao-card__apoio { font-size: 14px; }
}

/* -------------------------------------------------------------------------
   Soluções por perfil em 1024 px e abaixo.

   A altura mínima de 320 px foi desenhada para a metade de 588 px. Com a
   metade em ~476 px o texto passa a ocupar mais linhas, então a altura passa
   a ser automática — as duas metades continuam iguais porque são itens de
   grid e esticam juntas.
   ------------------------------------------------------------------------- */

@media (max-width: 1024px) {

	.ap-solucoes-grade { gap: var(--espaco-sm); }
	.ap-solucao-card__conteudo { padding: 22px; }
	.ap-solucao-card__eyebrow { min-height: 48px; }

	.ap-cliente { flex-basis: 216px; }

	/* Em notebook, quatro cards deixavam preço e condições de pagamento
	   estreitos demais. Três colunas preservam a leitura e o alvo do CTA. */
	.ap-home .woocommerce ul.products {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		justify-content: stretch;
	}
}

@media (max-width: 921px) {

	.ap-secao { padding: var(--espaco-lg) 0; }

	.ap-container { padding: 0 var(--espaco-sm); }
	.ap-cliente { flex-basis: 200px; }

	/* --- cabeçalho --- */

	.ap-barra-topo__interno,
	.ap-cabecalho__interno,
	.ap-menu-barra__interno,
	.ap-rodape__interno,
	.ap-rodape__barra-interno { padding: 0 var(--espaco-sm); }

	.ap-cabecalho__interno {
		min-height: 68px;
		flex-wrap: wrap;
		gap: var(--espaco-sm);
	}

	.ap-marca { order: 1; }
	.ap-cabecalho__acoes { order: 2; margin-left: auto; gap: var(--espaco-xs); }
	.ap-busca { order: 3; flex-basis: 100%; padding-bottom: 14px; }

	/* Logo à esquerda, na mesma linha dos ícones, no maior tamanho que a
	   linha comporta com folga.

	   A conta: 343px de largura interna a 375px, menos 138px dos ícones e
	   16px de intervalo, deixam 189px. A 68px de altura a logo dá 109px de
	   largura — sobra espaço, o alvo de toque dos ícones continua em 44px e
	   o cabeçalho sobe só 18px. O arquivo tem 1920x1200, então o aumento não
	   custa nitidez. */
	.ap-marca img,
	.ap-cabecalho .custom-logo-link img { height: 68px; }

	/* O texto ao lado dos ícones não cabe; ficam só os ícones, com 44px de alvo. */
	.ap-acao__texto { display: none; }
	.ap-acao { width: 44px; height: 44px; justify-content: center; }

	.ap-menu-botao { display: flex; }

	/* Menu recolhido: abre pelo checkbox do hambúrguer, sem JavaScript. */
	.ap-menu-barra { display: none; }
	.ap-menu-toggle:checked ~ .ap-menu-barra { display: block; }

	.ap-menu-barra__interno {
		flex-direction: column;
		align-items: stretch;
		gap: 0;
		padding-top: var(--espaco-xs);
		padding-bottom: var(--espaco-xs);
	}

	.ap-menu__lista { flex-direction: column; align-items: stretch; gap: 0; }

	.ap-menu__lista a {
		min-height: 44px;
		display: flex;
		align-items: center;
		padding: 10px 0;
		border-bottom: 1px solid rgba(255, 255, 255, 0.18);
	}

	.ap-menu__lista a::after { content: none; }

	.ap-menu-selo { margin: var(--espaco-xs) 0; white-space: normal; }

	/* --- rodapé --- */

	.ap-rodape__interno { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--espaco-md); }
	.ap-rodape__cta { grid-template-columns: 52px minmax(0, 1fr); }
	.ap-rodape__cta-link { grid-column: 1 / -1; width: 100%; }

	.ap-hero__interno {
		min-height: 0;
		padding: var(--espaco-lg) var(--espaco-sm) 90px;
		grid-template-columns: minmax(0, 1fr);
		justify-content: stretch;
		align-items: flex-start;
		gap: var(--espaco-md);
	}

	.ap-hero__texto { width: 100%; }

	.ap-home .ap-hero__titulo { font-size: 34px; max-width: none; }
	.ap-hero__subtitulo { font-size: 16px; }

	.ap-hero__media {
		width: min(520px, 100%);
		height: 340px;
		justify-self: center;
	}

	.ap-hero__selo {
		top: 4px;
		left: 6px;
		width: 100px;
		height: 100px;
	}

	.ap-home .ap-hero__foto {
		right: 13%;
		bottom: 32px;
		height: 270px;
		max-width: 60%;
	}

	.ap-home .ap-hero__produto-industrial {
		left: 0;
		bottom: 34px;
		height: 190px;
		max-width: 27%;
	}

	.ap-home .ap-hero__produto-secundario {
		left: 18%;
		bottom: 34px;
		height: 205px;
		max-width: 33%;
	}

	.ap-home .ap-hero__refis {
		right: 0;
		bottom: 34px;
		height: 142px;
		max-width: 18%;
	}

	.ap-hero::before {
		background: linear-gradient(180deg,
			rgba(255, 255, 255, 0.99) 0%,
			rgba(255, 255, 255, 0.98) 43%,
			rgba(255, 255, 255, 0.72) 58%,
			rgba(255, 255, 255, 0.08) 82%);
	}

	.ap-hero__agua {
		object-position: 69% center;
		opacity: 0.7;
	}

	.ap-hero__sombra {
		left: 51%;
		bottom: 25px;
		height: 24px;
	}

	.ap-hero__halo { display: none; }

	.ap-confianca-wrap { margin-top: -44px; }
	.ap-confianca { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ap-confianca__item { padding: var(--espaco-sm); font-size: 14px; }
	.ap-confianca__item:nth-child(odd) { border-left: 0; }
	.ap-confianca__item:nth-child(n+3) { border-top: 1px solid var(--borda); }

	.ap-categorias,
	.ap-servicos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ap-categorias__cabecalho { align-items: stretch; flex-direction: column; gap: var(--espaco-md); }
	.ap-categorias__cta { align-self: flex-start; }
	.ap-servicos__cabecalho { align-items: stretch; flex-direction: column; gap: var(--espaco-md); }
	.ap-servicos__cta { align-self: flex-start; }

	.ap-home .woocommerce ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.ap-produtos__cabecalho { align-items: stretch; flex-direction: column; gap: var(--espaco-md); }
	.ap-produtos__cta { align-self: flex-start; }

	.ap-solucoes-grade { grid-template-columns: minmax(0, 1fr); }
	.ap-solucao-card {
		display: grid;
		grid-template-columns: minmax(250px, 38%) minmax(0, 1fr);
	}
	.ap-solucao-card__media { height: auto; min-height: 330px; }
	.ap-solucao-card__conteudo { padding: 30px; }
	.ap-solucao-card__eyebrow { min-height: 0; }
	.ap-home .ap-solucao-card__titulo { font-size: 27px; }

	.ap-depoimento { flex-basis: calc((100% - var(--espaco-md)) / 2); }
	.ap-depoimento { min-height: 0; }
}

@media (max-width: 544px) {
	.ap-hero {
		background: linear-gradient(180deg, #F3FAFD 0%, #FFFFFF 52%, #EEF8FC 100%);
	}

	.ap-barra-topo__interno { justify-content: center; text-align: center; font-size: 12px; }
	.ap-rodape__cta-wrap { padding: var(--espaco-md) var(--espaco-sm) 0; }
	.ap-rodape__cta { grid-template-columns: minmax(0, 1fr); padding: var(--espaco-md); text-align: left; }
	.ap-rodape__cta-icone { width: 48px; height: 48px; }
	.ap-rodape__interno {
		grid-template-columns: minmax(0, 1fr);
		padding-top: 40px;
		padding-bottom: var(--espaco-lg);
	}
	.ap-rodape__logo { padding: 10px 14px; }
	.ap-rodape__logo img { height: 76px; }

	.ap-rodape__barra-interno {
		min-height: 0;
		padding-top: var(--espaco-md);
		padding-bottom: var(--espaco-md);
		flex-direction: column;
		align-items: flex-start;
		gap: var(--espaco-md);
	}

	.ap-rodape__legal {
		width: 100%;
		line-height: 1.6;
	}

	.ap-rodape__pagamento {
		width: 100%;
		gap: var(--espaco-xs);
	}

	.ap-rodape__pagamento-rotulo {
		flex-basis: 100%;
		margin: 0 0 var(--espaco-xs);
	}

	/* O controle fixo do Astra sobrepunha a barra legal e os selos de
	   pagamento. No celular o gesto de rolagem torna esse atalho dispensável. */
	#ast-scroll-top,
	.ast-scroll-to-top-right { display: none; }

	.ap-secao__cabecalho { flex-direction: column; align-items: stretch; }
	.ap-secao__cabecalho .ap-btn { width: 100%; }
	.ap-categorias-secao { padding: var(--espaco-lg) 0; }
	.ap-categorias__cabecalho { margin-bottom: var(--espaco-md); }
	.ap-categorias__titulo { font-size: 28px; }
	.ap-categorias__cta { width: 100%; }
	.ap-produtos-secao { padding: var(--espaco-lg) 0; }
	.ap-produtos__cabecalho { margin-bottom: var(--espaco-md); }
	.ap-produtos__titulo { font-size: 28px; }
	.ap-produtos__cta { width: 100%; }
	.ap-solucoes__cabecalho { margin-bottom: var(--espaco-md); }
	.ap-home .ap-solucoes__titulo { font-size: 28px; }
	.ap-solucoes__subtitulo { font-size: 15px; line-height: 1.6; }
	.ap-servicos-secao { padding: var(--espaco-lg) 0; }
	.ap-servicos__cabecalho { margin-bottom: var(--espaco-md); }
	.ap-servicos__titulo { font-size: 28px; }
	.ap-servicos__cta { width: 100%; }
	.ap-servicos { grid-template-columns: minmax(0, 1fr); }
	.ap-servico { min-height: 0; padding: var(--espaco-md); }
	.ap-servicos__garantias { grid-template-columns: minmax(0, 1fr); }
	.ap-servicos__garantias span { justify-content: flex-start; min-height: 56px; text-align: left; }
	.ap-servicos__garantias span + span { border-left: 0; border-top: 1px solid var(--borda); }
	.ap-depoimentos-secao { padding: var(--espaco-lg) 0; }
	.ap-depoimentos__cabecalho { margin-bottom: var(--espaco-md); }
	.ap-depoimentos__titulo { font-size: 28px; }
	.ap-depoimento {
		flex-basis: min(88%, 340px);
		min-height: 300px;
		padding: var(--espaco-md);
		gap: var(--espaco-sm);
	}
	.ap-depoimentos__trilho { gap: var(--espaco-sm); }
	.ap-depoimento__estrelas { font-size: 15px; letter-spacing: 0.5px; }
	.ap-depoimento__autor { grid-template-columns: minmax(0, 1fr) auto; }

	.ap-clientes__cabecalho { margin-bottom: var(--espaco-md); }
	.ap-clientes__titulo { font-size: 28px; }
	.ap-clientes__linha { font-size: 14px; }
	.ap-clientes__viewport {
		-webkit-mask-image: linear-gradient(90deg, transparent 0, #000 12px, #000 calc(100% - 12px), transparent 100%);
		mask-image: linear-gradient(90deg, transparent 0, #000 12px, #000 calc(100% - 12px), transparent 100%);
	}
	.ap-clientes-mobile__trilho { gap: var(--espaco-sm); }
	.ap-clientes-mobile .ap-clientes-mobile__slide {
		flex: 0 0 calc(50% - 8px);
	}
	.ap-clientes { gap: var(--espaco-sm); padding-right: var(--espaco-sm); }
	.ap-cliente {
		flex-basis: 166px;
		height: 132px;
		padding: var(--espaco-sm);
	}
	.ap-cliente img { width: min(220px, 140%); }

	.ap-home .ap-hero__titulo { font-size: 28px; }
	.ap-hero__acoes { width: 100%; flex-direction: column; align-items: stretch; }
	.ap-hero__acoes .ap-btn { width: 100%; }

	.ap-hero__interno {
		gap: 16px;
		padding: 36px var(--espaco-sm) 92px;
	}

	.ap-hero__texto { gap: 18px; }

	/* No celular, a textura aquática começa já na área de leitura. As bolhas
	   são discretas para preencher o vazio sem competir com o título. */
	.ap-hero::after {
		content: '';
		position: absolute;
		top: 0;
		right: 0;
		width: 100%;
		height: 430px;
		background:
			radial-gradient(circle at 87% 12%, rgba(0, 119, 181, 0.24) 0 4px, transparent 5px),
			radial-gradient(circle at 70% 22%, rgba(0, 167, 222, 0.2) 0 6px, transparent 7px),
			radial-gradient(circle at 94% 34%, rgba(0, 119, 181, 0.17) 0 9px, transparent 10px),
			radial-gradient(circle at 80% 48%, rgba(0, 167, 222, 0.16) 0 3px, transparent 4px),
			radial-gradient(circle at 56% 38%, rgba(0, 119, 181, 0.12) 0 4px, transparent 5px),
			radial-gradient(circle at 97% 58%, rgba(0, 167, 222, 0.12) 0 5px, transparent 6px),
			radial-gradient(ellipse at 108% 5%, rgba(153, 220, 243, 0.38), rgba(255, 255, 255, 0) 62%);
		pointer-events: none;
		z-index: 1;
	}

	.ap-hero::before {
		background: linear-gradient(180deg,
			rgba(255, 255, 255, 0.88) 0%,
			rgba(255, 255, 255, 0.8) 30%,
			rgba(255, 255, 255, 0.38) 48%,
			rgba(255, 255, 255, 0.08) 66%,
			rgba(255, 255, 255, 0) 78%);
	}

	.ap-hero__media { width: 100%; height: 260px; }
	.ap-hero__selo {
		top: -12px;
		left: 0;
		width: 84px;
		height: 84px;
		filter: drop-shadow(0 9px 14px rgba(3, 51, 74, 0.2));
	}
	.ap-hero__media::before {
		inset: 1% 1% 8% 12%;
		background: radial-gradient(ellipse at 60% 54%,
			rgba(2, 22, 30, 0.34) 0%,
			rgba(3, 44, 59, 0.2) 40%,
			rgba(5, 76, 97, 0.07) 59%,
			rgba(5, 76, 97, 0) 76%);
		filter: blur(8px);
	}
	.ap-home .ap-hero__foto {
		right: 17%;
		bottom: 29px;
		height: clamp(172px, 45vw, 200px);
		max-width: 56%;
	}
	.ap-home .ap-hero__produto-industrial {
		left: 2%;
		bottom: 31px;
		height: clamp(124px, 33vw, 146px);
		max-width: 25%;
	}
	.ap-home .ap-hero__produto-secundario {
		left: 21%;
		bottom: 31px;
		height: clamp(130px, 34vw, 152px);
		max-width: 31%;
	}
	.ap-home .ap-hero__refis {
		right: 4%;
		bottom: 31px;
		height: clamp(92px, 24vw, 108px);
		max-width: 17%;
	}
	.ap-hero__agua {
		inset: auto auto 44px 50%;
		width: 155%;
		height: 390px;
		object-fit: cover;
		object-position: 72% center;
		opacity: 0.92;
		filter: saturate(1.12) contrast(1.04);
		transform: translateX(-50%);
	}
	.ap-hero__sombra { left: 50%; bottom: 21px; width: 92%; height: 22px; }
	.ap-hero__halo { display: none; }

	.ap-confianca { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ap-confianca__item {
		min-height: 168px;
		padding: 16px 14px;
		border-left: 0;
		flex-direction: column;
		gap: 11px;
	}
	.ap-confianca__icone { flex-basis: 44px; width: 44px; height: 44px; }
	.ap-confianca__texto strong { margin-bottom: 5px; font-size: 13px; line-height: 1.3; }
	.ap-confianca__texto small { font-size: 11px; line-height: 1.45; }
	.ap-confianca__item:nth-child(even) { border-left: 1px solid var(--borda); }
	.ap-confianca__item:nth-child(n+3) { border-top: 1px solid var(--borda); }

	.ap-categorias { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ap-categorias { gap: var(--espaco-sm); }
	.ap-categoria { min-height: 190px; padding: var(--espaco-sm); }
	.ap-categoria__icone { width: 48px; height: 48px; margin-bottom: 16px; }
	.ap-categoria__nome { font-size: 15px; }
	.ap-categoria__desc { font-size: 12px; }

	/* Duas colunas, como no artboard de 390 px, com densidade ajustada para
	   manter a hierarquia mesmo nos cards estreitos. */
	.ap-home .woocommerce ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--espaco-sm); }
	.ap-home .woocommerce ul.products li.product img { height: 148px; padding: var(--espaco-sm); }
	.ap-home .woocommerce ul.products li.product .astra-shop-summary-wrap { padding: var(--espaco-sm); }
	.ap-home .woocommerce ul.products li.product .ast-woo-product-category {
		min-height: calc(2 * 1.35em);
		font-size: 11px;
	}
	.ap-home .woocommerce ul.products li.product .woocommerce-loop-product__title {
		min-height: calc(3 * 1.35em);
		font-size: 15px;
	}
	.ap-home .woocommerce ul.products li.product .price { font-size: 19px; }
	.ap-home .woocommerce ul.products li.product .ap-card-variacoes {
		gap: 7px;
		margin-top: 10px;
		padding-top: 10px;
	}
	.ap-home .woocommerce ul.products li.product .ap-card-variacao {
		align-items: flex-start;
		gap: 5px;
	}
	.ap-home .woocommerce ul.products li.product .ap-card-variacao__rotulo {
		flex-basis: 100%;
		min-width: 0;
		font-size: 10px;
	}
	.ap-home .woocommerce ul.products li.product .ap-card-cor {
		width: 19px;
		height: 19px;
		flex-basis: 19px;
	}
	.ap-home .woocommerce ul.products li.product .ap-card-voltagem {
		min-height: 22px;
		padding: 4px 7px;
		font-size: 9px;
	}
	.ap-home .woocommerce ul.products li.product .ap-card-pagamento {
		margin: 12px 0 var(--espaco-sm);
		padding: var(--espaco-xs) 10px;
	}
	.ap-home .woocommerce ul.products li.product .ap-card-parcela,
	.ap-home .woocommerce ul.products li.product .ap-card-pix {
		font-size: 12px;
		line-height: 1.4;
	}
	.ap-home .woocommerce ul.products li.product a.button,
	.ap-home .woocommerce ul.products li.product .button {
		margin-right: 0;
		margin-bottom: 0;
		margin-left: 0;
	}
	.ap-home .woocommerce ul.products li.product .ap-selo-estoque {
		top: 10px;
		left: 10px;
		padding: 4px 8px;
		font-size: 10px;
	}

	/* Ritmo e alvos de toque consistentes nas ações menores da home e do
	   rodapé. Os chips continuam compactos visualmente, mas a área clicável
	   chega aos 44 px recomendados para o celular. */
	.ap-produtos__atalhos a {
		min-height: 44px;
		padding: 10px 14px;
	}

	.ap-rodape__lista li { margin-bottom: 0; }
	.ap-rodape__lista a { min-height: 44px; }
	.ap-rodape__redes a {
		min-height: 44px;
		padding: 10px 12px;
	}

	.ap-solucao-card { display: flex; }
	.ap-solucao-card__media { height: 218px; min-height: 0; }
	.ap-solucao-card__conteudo { padding: var(--espaco-md) 20px; gap: 12px; }
	.ap-home .ap-solucao-card__titulo { font-size: 23px; }
	.ap-solucao-card__apoio { font-size: 14px; line-height: 1.55; }
	.ap-solucao-card__botao { padding-top: 4px; }

	/* Alvo de toque mínimo de 44 px. */
	.ap-btn,
	.woocommerce ul.products li.product .button {
		min-height: 44px;
		padding-top: 13px;
		padding-bottom: 13px;
	}
}

/* -------------------------------------------------------------------------
   Trava final do hero desktop

   Fica depois de todos os breakpoints para vencer regras dinâmicas do Astra
   e versões antigas eventualmente agregadas por cache. O !important é usado
   somente nas propriedades de posicionamento que estavam sendo sobrescritas
   na instalação real.
   ------------------------------------------------------------------------- */

@media (min-width: 922px) {

	body.home .ap-home .ap-hero .ap-hero__interno {
		display: grid !important;
		width: 100% !important;
		max-width: 1200px !important;
		grid-template-columns: minmax(0, 42%) minmax(0, 58%) !important;
		column-gap: 0 !important;
		justify-content: start !important;
	}

	body.home .ap-home .ap-hero .ap-hero__texto {
		grid-column: 1 !important;
		width: 100% !important;
	}

	body.home .ap-home .ap-hero .ap-hero__media {
		grid-column: 2 !important;
		position: relative !important;
		inset: auto !important;
		transform: none !important;
		margin: 0 !important;
		width: min(100%, 680px) !important;
		height: clamp(430px, 36vw, 500px) !important;
		max-width: 100% !important;
		justify-self: end !important;
	}

	body.home .ap-home .ap-hero img.ap-hero__foto {
		position: absolute !important;
		left: auto !important;
		right: 12% !important;
		top: auto !important;
		bottom: 40px !important;
		transform: none !important;
		margin: 0 !important;
		height: clamp(300px, 27vw, 405px) !important;
		width: auto !important;
		max-width: 62% !important;
		object-fit: contain !important;
	}

	body.home .ap-home .ap-hero img.ap-hero__produto-industrial {
		position: absolute !important;
		left: 0 !important;
		right: auto !important;
		top: auto !important;
		bottom: 42px !important;
		transform: none !important;
		margin: 0 !important;
		height: clamp(220px, 20vw, 280px) !important;
		width: auto !important;
		max-width: 28% !important;
		object-fit: contain !important;
	}

	body.home .ap-home .ap-hero img.ap-hero__produto-secundario {
		position: absolute !important;
		left: 18% !important;
		right: auto !important;
		top: auto !important;
		bottom: 42px !important;
		transform: none !important;
		margin: 0 !important;
		height: clamp(240px, 21vw, 320px) !important;
		width: auto !important;
		max-width: 34% !important;
		object-fit: contain !important;
	}

	body.home .ap-home .ap-hero img.ap-hero__refis {
		position: absolute !important;
		left: auto !important;
		right: 0 !important;
		top: auto !important;
		bottom: 43px !important;
		transform: none !important;
		margin: 0 !important;
		height: clamp(150px, 15vw, 205px) !important;
		width: auto !important;
		max-width: 18% !important;
		object-fit: contain !important;
	}
}

/* Telas grandes: o hero cresce de forma fluida em vez de manter o palco de
   1200 px perdido no centro. Os limites preservam proporção em ultrawide. */
@media (min-width: 1441px) {
	body.home .ap-home .ap-hero .ap-hero__interno {
		max-width: clamp(1280px, 82vw, 1680px) !important;
		min-height: clamp(640px, 37vw, 720px) !important;
		grid-template-columns: minmax(0, 40%) minmax(0, 60%) !important;
		padding-right: clamp(32px, 3vw, 56px) !important;
		padding-left: clamp(32px, 3vw, 56px) !important;
	}

	body.home .ap-home .ap-hero .ap-hero__titulo {
		font-size: clamp(52px, 3.1vw, 64px);
	}

	body.home .ap-home .ap-hero .ap-hero__media {
		width: min(100%, clamp(720px, 43vw, 920px)) !important;
		height: clamp(500px, 31vw, 620px) !important;
	}

	body.home .ap-home .ap-hero img.ap-hero__foto {
		right: 12% !important;
		bottom: 52px !important;
		height: clamp(405px, 24vw, 520px) !important;
	}

	body.home .ap-home .ap-hero img.ap-hero__produto-industrial {
		bottom: 54px !important;
		height: clamp(280px, 16.5vw, 350px) !important;
	}

	body.home .ap-home .ap-hero img.ap-hero__produto-secundario {
		bottom: 54px !important;
		height: clamp(320px, 19vw, 400px) !important;
	}

	body.home .ap-home .ap-hero img.ap-hero__refis {
		bottom: 55px !important;
		height: clamp(205px, 12vw, 250px) !important;
	}

	body.home .ap-home .ap-hero .ap-hero__sombra {
		bottom: 45px;
		height: clamp(34px, 2.5vw, 48px);
	}
}

@media (prefers-reduced-motion: reduce) {
	.ap-home *,
	.ap-home *::after {
		transition-duration: 1ms !important;
		animation-duration: 1ms !important;
	}

	.ap-clientes__viewport {
		overflow-x: auto;
		-webkit-mask-image: none;
		mask-image: none;
	}

	.ap-clientes__trilho {
		animation: none !important;
		transform: none !important;
		will-change: auto;
	}

	.ap-clientes[aria-hidden="true"] { display: none; }
}

/* =========================================================================
   17. Páginas internas — continuidade visual da home

   Esta camada preserva o HTML nativo do Astra e do WooCommerce. O trabalho
   fica em hierarquia, superfícies, espaçamento e estados, sem trocar o fluxo
   de catálogo, produto, carrinho, checkout ou conta.
   ========================================================================= */

body:not(.home) #content.site-content {
	padding: 0;
	background:
		radial-gradient(circle at 92% 2%, rgba(39, 168, 213, 0.10), transparent 290px),
		linear-gradient(180deg, #F4F9FC 0, #FFFFFF 360px);
}

body:not(.home) #content > .ast-container {
	display: block;
	width: min(100%, calc(var(--largura-conteudo) + 48px));
	max-width: none;
	margin: 0 auto;
	padding: 34px 24px 80px;
}

body:not(.home) #primary {
	float: none;
	width: 100%;
	margin: 34px 0 0;
	padding: 0;
}

body:not(.home) #secondary { display: none; }

/* Cabeçalho contextual inserido pelo tema em todas as páginas internas. */
.ap-interna-topo {
	position: relative;
	isolation: isolate;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 36px;
	min-height: 205px;
	padding: 38px 42px;
	overflow: hidden;
	background:
		linear-gradient(112deg, rgba(4, 64, 95, 0.98), rgba(0, 104, 160, 0.94)),
		var(--azul-profundo);
	border: 1px solid rgba(255, 255, 255, 0.12);
	border-radius: 22px;
	box-shadow: 0 18px 44px rgba(4, 64, 95, 0.16);
	color: #FFFFFF;
}

.ap-interna-topo::before,
.ap-interna-topo::after {
	content: '';
	position: absolute;
	z-index: -1;
	border: 1px solid rgba(255, 255, 255, 0.14);
	border-radius: 50%;
}

.ap-interna-topo::before {
	width: 330px;
	height: 330px;
	right: 80px;
	top: -220px;
	box-shadow:
		80px 115px 0 -42px rgba(255, 255, 255, 0.04),
		-95px 235px 0 -85px rgba(255, 255, 255, 0.08);
}

.ap-interna-topo::after {
	width: 150px;
	height: 150px;
	right: -50px;
	bottom: -85px;
}

.ap-interna-topo__conteudo { max-width: 720px; }

.ap-interna-topo__etiqueta {
	display: block;
	margin-bottom: 10px;
	font-size: 12px;
	font-weight: 700;
	line-height: 1.35;
	letter-spacing: 0.16em;
	color: #B9E3F3;
}

.ap-interna-topo__titulo {
	display: block;
	margin: 0;
	font-size: clamp(30px, 3.2vw, 44px);
	font-weight: 600;
	line-height: 1.12;
	letter-spacing: -0.035em;
	color: #FFFFFF;
}

.ap-interna-topo__texto {
	max-width: 680px;
	margin: 15px 0 0;
	font-size: 16px;
	line-height: 1.65;
	color: #D7E8F0;
}

.ap-interna-topo__selo {
	position: relative;
	z-index: 1;
	flex: 0 0 auto;
	display: flex;
	align-items: center;
	gap: 12px;
	min-width: 265px;
	padding: 16px 18px;
	background: rgba(255, 255, 255, 0.11);
	border: 1px solid rgba(255, 255, 255, 0.22);
	border-radius: 15px;
	backdrop-filter: blur(8px);
}

.ap-interna-topo__selo-icone {
	flex: 0 0 46px;
	height: 46px;
	display: grid;
	place-items: center;
	border-radius: 13px;
	background: var(--verde-limao);
	color: var(--sobre-limao);
}

.ap-interna-topo__selo > span:last-child {
	display: flex;
	flex-direction: column;
	gap: 3px;
}

.ap-interna-topo__selo strong {
	font-size: 14px;
	font-weight: 600;
	line-height: 1.35;
	color: #FFFFFF;
}

.ap-interna-topo__selo small {
	font-size: 12px;
	line-height: 1.4;
	color: #B9D4E1;
}

/* Títulos que agora são apresentados no cabeçalho contextual. */
.page:not(.home) .entry-header > .entry-title,
.single-post .entry-header > .entry-title,
.woocommerce-page:not(.single-product) .entry-header,
.woocommerce-shop .woocommerce-products-header__title,
.post-type-archive-product .woocommerce-products-header__title,
.tax-product_cat .woocommerce-products-header__title,
.tax-product_tag .woocommerce-products-header__title,
.search-results .page-title,
.error404 .page-title { display: none; }

body:not(.home) .woocommerce-breadcrumb {
	margin: 0 0 20px;
	padding: 0;
	font-size: 13px;
	line-height: 1.5;
	color: var(--texto-secundario);
}

body:not(.home) .woocommerce-breadcrumb a {
	color: var(--azul-agua-pura);
	text-decoration: none;
}

/* Conteúdo editorial: Sobre, Contato, Serviços, posts e páginas comuns. */
.page:not(.home):not(.woocommerce-page) #primary .site-main > article,
.single-post #primary .site-main > article {
	padding: clamp(24px, 4vw, 52px);
	background: #FFFFFF;
	border: 1px solid var(--borda);
	border-radius: 18px;
	box-shadow: 0 12px 34px rgba(4, 64, 95, 0.08);
}

body:not(.home) .entry-content {
	font-size: 16px;
	line-height: 1.75;
	color: var(--texto-principal);
}

body:not(.home) .entry-content > :first-child { margin-top: 0; }
body:not(.home) .entry-content > :last-child { margin-bottom: 0; }

body:not(.home) .entry-content h2,
body:not(.home) .entry-content h3,
body:not(.home) .entry-content h4 {
	margin-top: 1.65em;
	margin-bottom: 0.65em;
	font-weight: 600;
	line-height: 1.3;
	color: var(--azul-profundo);
}

body:not(.home) .entry-content h2 { font-size: clamp(24px, 2.4vw, 32px); }
body:not(.home) .entry-content h3 { font-size: 21px; }
body:not(.home) .entry-content h4 { font-size: 18px; }

body:not(.home) .entry-content a:not(.button) { color: var(--azul-agua-pura); }

body:not(.home) .entry-content blockquote {
	margin: 28px 0;
	padding: 22px 24px;
	background: var(--fundo-claro);
	border: 0;
	border-left: 4px solid var(--azul-agua-pura);
	border-radius: 0 12px 12px 0;
	color: var(--texto-principal);
}

body:not(.home) .entry-content img {
	border-radius: 14px;
}

/* Campos e botões compartilhados pelas páginas internas. */
body:not(.home) input[type='text'],
body:not(.home) input[type='email'],
body:not(.home) input[type='tel'],
body:not(.home) input[type='password'],
body:not(.home) input[type='search'],
body:not(.home) input[type='number'],
body:not(.home) select,
body:not(.home) textarea {
	box-sizing: border-box;
	min-height: 46px;
	padding: 11px 14px;
	background: #FFFFFF;
	border: 1px solid #CAD9E2;
	border-radius: var(--raio);
	font: 400 15px/1.45 var(--fonte);
	color: var(--texto-principal);
	box-shadow: none;
	transition: border-color 180ms ease, box-shadow 180ms ease;
}

body:not(.home) textarea { min-height: 132px; }

body:not(.home) input:focus,
body:not(.home) select:focus,
body:not(.home) textarea:focus {
	border-color: var(--azul-agua-pura);
	box-shadow: 0 0 0 3px rgba(0, 104, 160, 0.12);
	outline: none;
}

body:not(.home) .entry-content .button,
body:not(.home) .entry-content button,
body:not(.home) .entry-content input[type='submit'],
body:not(.home) .woocommerce .button,
body:not(.home) .woocommerce button.button,
body:not(.home) .woocommerce input.button {
	min-height: 46px;
	padding: 12px 22px;
	background: var(--azul-agua-pura);
	border: 1px solid transparent;
	border-radius: var(--raio);
	font-family: var(--fonte);
	font-size: 15px;
	font-weight: 600;
	line-height: 1.35;
	color: #FFFFFF;
	box-shadow: 0 5px 14px rgba(4, 64, 95, 0.13);
	transition: transform 180ms ease, background-color 180ms ease, box-shadow 180ms ease;
}

body:not(.home) .entry-content .button:hover,
body:not(.home) .entry-content button:hover,
body:not(.home) .entry-content input[type='submit']:hover,
body:not(.home) .woocommerce .button:hover,
body:not(.home) .woocommerce button.button:hover,
body:not(.home) .woocommerce input.button:hover {
	background: var(--azul-hover);
	color: #FFFFFF;
	transform: translateY(-1px);
	box-shadow: 0 9px 20px rgba(4, 64, 95, 0.18);
}

/* -------------------------------------------------------------------------
   Catálogo, categorias e produtos relacionados
   ---------------------------------------------------------------------- */

body:not(.home).woocommerce .woocommerce-result-count {
	margin: 0 0 24px;
	padding-top: 12px;
	font-size: 14px;
	color: var(--texto-secundario);
}

body:not(.home).woocommerce .woocommerce-ordering { margin: 0 0 24px; }

body:not(.home).woocommerce .woocommerce-products-header .term-description {
	margin: 0 0 24px;
	padding: 18px 20px;
	background: #FFFFFF;
	border: 1px solid var(--borda);
	border-left: 4px solid var(--azul-agua-pura);
	border-radius: 0 11px 11px 0;
	font-size: 15px;
	line-height: 1.65;
	color: var(--texto-secundario);
}

body:not(.home).woocommerce .woocommerce-ordering select {
	min-width: 220px;
	background-color: #FFFFFF;
}

body:not(.home).woocommerce ul.products {
	clear: both;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 24px;
	margin: 0;
	padding: 0;
	list-style: none;
}

body:not(.home).woocommerce ul.products::before,
body:not(.home).woocommerce ul.products::after { content: none; }

body:not(.home).woocommerce ul.products li.product {
	float: none;
	display: flex;
	flex-direction: column;
	position: relative;
	width: auto;
	min-width: 0;
	margin: 0;
	padding: 0;
	overflow: hidden;
	background: #FFFFFF;
	border: 1px solid var(--borda);
	border-radius: 14px;
	box-shadow: 0 7px 22px rgba(4, 64, 95, 0.08);
	transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease;
}

body:not(.home).woocommerce ul.products li.product::before {
	content: '';
	position: absolute;
	inset: 0 0 auto;
	z-index: 4;
	height: 4px;
	background: linear-gradient(90deg, var(--azul-agua-pura), #27A8D5);
}

body:not(.home).woocommerce ul.products li.product:hover {
	transform: translateY(-3px);
	border-color: rgba(0, 104, 160, 0.25);
	box-shadow: 0 16px 34px rgba(4, 64, 95, 0.14);
}

body:not(.home).woocommerce ul.products li.product .astra-shop-thumbnail-wrap {
	position: relative;
	overflow: hidden;
	background: linear-gradient(180deg, #FFFFFF, #F6FAFC);
}

body:not(.home).woocommerce ul.products li.product .ast-on-card-button { display: none; }

body:not(.home).woocommerce ul.products li.product img {
	display: block;
	width: 100%;
	height: 245px;
	margin: 0;
	padding: 22px;
	object-fit: contain;
	background: linear-gradient(180deg, #FFFFFF, #F7FAFC);
	border-bottom: 1px solid var(--borda);
	transition: transform 180ms ease;
}

body:not(.home).woocommerce ul.products li.product:hover img { transform: scale(1.025); }

body:not(.home).woocommerce ul.products li.product .astra-shop-summary-wrap {
	display: flex;
	flex: 1;
	flex-direction: column;
	width: 100%;
	margin: 0;
	padding: 20px;
}

body:not(.home).woocommerce ul.products li.product .ast-woo-product-category {
	display: inline-flex;
	align-self: flex-start;
	margin: 0 0 10px;
	padding: 5px 9px;
	background: rgba(0, 104, 160, 0.07);
	border-radius: 999px;
	font-size: 11px;
	font-weight: 600;
	line-height: 1.35;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: var(--azul-profundo);
	opacity: 1;
}

body:not(.home).woocommerce ul.products li.product .woocommerce-loop-product__title {
	min-height: calc(2 * 1.4em);
	margin: 0;
	padding: 0;
	font-size: 17px;
	font-weight: 600;
	line-height: 1.4;
	color: var(--texto-principal);
}

body:not(.home).woocommerce ul.products li.product .price {
	margin: 0;
	padding-top: 15px;
	font-size: 22px;
	font-weight: 600;
	color: var(--texto-principal);
	font-variant-numeric: tabular-nums;
}

body:not(.home).woocommerce ul.products li.product .price del {
	font-size: 13px;
	font-weight: 400;
	color: var(--texto-secundario);
	opacity: 1;
}

body:not(.home).woocommerce ul.products li.product .price ins {
	text-decoration: none;
	color: inherit;
}

body:not(.home).woocommerce ul.products li.product .ap-card-variacoes {
	display: grid;
	gap: 8px;
	margin-top: 13px;
	padding-top: 12px;
	border-top: 1px solid var(--borda);
}

body:not(.home).woocommerce ul.products li.product .ap-card-pagamento {
	margin: 13px 0 18px;
	padding: 0 12px;
	background: #F7FAFC;
	border: 1px solid var(--borda);
	border-radius: var(--raio);
}

body:not(.home).woocommerce ul.products li.product .ap-card-parcela,
body:not(.home).woocommerce ul.products li.product .ap-card-pix {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0;
	padding: 9px 0;
	font-size: 12px;
	line-height: 1.45;
}

body:not(.home).woocommerce ul.products li.product .ap-card-parcela {
	border-bottom: 1px solid var(--borda);
	color: var(--texto-secundario);
}

body:not(.home).woocommerce ul.products li.product .ap-card-pix {
	font-weight: 600;
	color: var(--verde-folha);
}

body:not(.home).woocommerce ul.products li.product .ap-card-parcela .amount,
body:not(.home).woocommerce ul.products li.product .ap-card-pix .amount {
	font-size: inherit;
	font-weight: inherit;
	color: inherit;
}

body:not(.home).woocommerce ul.products li.product a.button,
body:not(.home).woocommerce ul.products li.product .button {
	display: block;
	width: 100%;
	min-height: 48px;
	margin: auto 0 0;
	padding: 13px 14px;
	text-align: center;
	white-space: nowrap;
}

body:not(.home).woocommerce ul.products li.product .ap-selo-estoque {
	position: absolute;
	top: 14px;
	left: 14px;
	z-index: 3;
	padding: 5px 10px;
	background: #EAF3E1;
	border: 1px solid #C8DDB7;
	border-radius: 999px;
	font-size: 11px;
	font-weight: 600;
	line-height: 1.4;
	color: #355C18;
}

body:not(.home).woocommerce ul.products li.product .ap-selo-estoque--fora {
	background: #EEF2F4;
	border-color: #D7E0E5;
	color: var(--texto-secundario);
}

body:not(.home).woocommerce ul.products li.product .onsale {
	position: absolute;
	top: 12px;
	right: 12px;
	left: auto;
	z-index: 3;
	min-width: 0;
	min-height: 0;
	margin: 0;
	padding: 5px 10px;
	background: var(--azul-profundo);
	border-radius: 999px;
	font-size: 11px;
	font-weight: 600;
	line-height: 1.4;
	color: #FFFFFF;
}

.woocommerce nav.woocommerce-pagination { margin-top: 34px; }

.woocommerce nav.woocommerce-pagination ul {
	display: inline-flex;
	gap: 7px;
	padding: 0;
	border: 0;
}

.woocommerce nav.woocommerce-pagination ul li { border: 0; }

.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
	display: grid;
	place-items: center;
	min-width: 42px;
	height: 42px;
	padding: 0 10px;
	background: #FFFFFF;
	border: 1px solid var(--borda);
	border-radius: 9px;
	color: var(--azul-profundo);
}

.woocommerce nav.woocommerce-pagination ul li span.current,
.woocommerce nav.woocommerce-pagination ul li a:hover {
	background: var(--azul-agua-pura);
	border-color: var(--azul-agua-pura);
	color: #FFFFFF;
}

/* -------------------------------------------------------------------------
   Página individual do produto
   ---------------------------------------------------------------------- */

body.single-product #primary { margin-top: 26px; }

body.single-product div.product.type-product {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 0.95fr);
	gap: 42px 52px;
	align-items: start;
}

/* A galeria e o resumo precisam preencher a coluna do grid acima.

   Duas regras do Astra disputam a largura destes dois elementos, e ambas
   percentuais — dentro do grid a porcentagem resolve contra a coluna, então
   cada um saía com metade da largura: foto minúscula e título quebrando em
   quatro linhas.

     woocommerce-layout-grid.min.css   .woocommerce #content div.product
                                       div.images                  width: 48%
     <style> dinâmico do Astra         .woocommerce #content
                                       .ast-woocommerce-container
                                       div.product div.images      width: 50%

   A segunda é a que vencia: um ID e quatro classes. Um seletor só de classes
   nunca a alcança, por mais específico que pareça. Os seletores abaixo somam
   um ID e cinco classes e passam na frente sem !important. As formas mais
   curtas ficam como rede de segurança caso `.images` ou `.entry-summary`
   deixem de ser emitidas pelo WooCommerce. */
body.single-product div.product > .woocommerce-product-gallery,
body.single-product div.product > .summary,
body.single-product #content div.product.type-product > .woocommerce-product-gallery,
body.single-product #content div.product.type-product > .summary,
body.single-product #content div.product.type-product > .woocommerce-product-gallery.images,
body.single-product #content div.product.type-product > .summary.entry-summary {
	float: none;
	width: 100%;
	margin: 0;
}

body.single-product .woocommerce-product-gallery {
	padding: 24px;
	background: linear-gradient(180deg, #FFFFFF, #F7FAFC);
	border: 1px solid var(--borda);
	border-radius: 18px;
	box-shadow: 0 12px 32px rgba(4, 64, 95, 0.08);
}

body.single-product .woocommerce-product-gallery img {
	width: 100%;
	max-height: 560px;
	object-fit: contain;
	border-radius: 10px;
}

body.single-product .flex-control-thumbs {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 9px;
	margin-top: 14px;
}

body.single-product .flex-control-thumbs li {
	float: none;
	width: auto;
	padding: 5px;
	background: #FFFFFF;
	border: 1px solid var(--borda);
	border-radius: 8px;
}

body.single-product div.product .summary {
	padding: 4px 0;
}

body.single-product div.product .product_title {
	margin: 0 0 14px;
	font-size: clamp(30px, 3vw, 42px);
	font-weight: 600;
	line-height: 1.15;
	letter-spacing: -0.035em;
	color: var(--azul-profundo);
}

body.single-product div.product .woocommerce-product-rating {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 16px;
	font-size: 14px;
}

body.single-product div.product .price {
	margin: 0 0 20px;
	font-size: clamp(28px, 3vw, 38px);
	font-weight: 600;
	line-height: 1.2;
	color: var(--texto-principal);
	font-variant-numeric: tabular-nums;
}

body.single-product div.product .price del {
	font-size: 16px;
	font-weight: 400;
	color: var(--texto-secundario);
	opacity: 1;
}

body.single-product div.product .price ins { text-decoration: none; }

body.single-product .woocommerce-product-details__short-description {
	margin-bottom: 22px;
	font-size: 16px;
	line-height: 1.7;
	color: var(--texto-secundario);
}

body.single-product div.product form.cart {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	gap: 12px;
	margin: 22px 0;
	padding: 22px;
	background: var(--fundo-claro);
	border: 1px solid var(--borda);
	border-radius: 14px;
}

body.single-product div.product form.cart .variations {
	width: 100%;
	margin: 0;
	border: 0;
}

body.single-product div.product form.cart .variations th,
body.single-product div.product form.cart .variations td {
	padding: 7px 0;
	border: 0;
	vertical-align: middle;
}

body.single-product div.product form.cart .variations th {
	width: 92px;
	font-size: 14px;
	font-weight: 600;
	text-align: left;
	color: var(--texto-principal);
}

body.single-product div.product form.cart .variations select {
	min-width: 210px;
	margin: 0 9px 0 0;
}

body.single-product .reset_variations {
	font-size: 13px;
	color: var(--azul-agua-pura);
}

body.single-product .single_variation_wrap { width: 100%; }

body.single-product .woocommerce-variation-add-to-cart {
	display: flex;
	align-items: center;
	gap: 12px;
}

body.single-product .quantity .qty {
	width: 82px;
	min-height: 48px;
	text-align: center;
}

body.single-product div.product form.cart .single_add_to_cart_button {
	flex: 1;
	min-height: 50px;
	background: var(--verde-limao);
	color: var(--sobre-limao);
	box-shadow: 0 8px 20px rgba(93, 140, 54, 0.18);
}

body.single-product div.product form.cart .single_add_to_cart_button:hover {
	background: var(--limao-hover);
	color: var(--sobre-limao);
}

body.single-product .product_meta {
	display: grid;
	gap: 6px;
	padding-top: 18px;
	border-top: 1px solid var(--borda);
	font-size: 13px;
	line-height: 1.5;
	color: var(--texto-secundario);
}

body.single-product div.product > .woocommerce-tabs,
body.single-product div.product > .related,
body.single-product div.product > .upsells {
	grid-column: 1 / -1;
	width: 100%;
}

body.single-product .woocommerce-tabs {
	margin-top: 18px;
	padding: 30px;
	background: #FFFFFF;
	border: 1px solid var(--borda);
	border-radius: 16px;
}

body.single-product .woocommerce-tabs ul.tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0 0 24px;
	padding: 0 0 14px;
	border-bottom: 1px solid var(--borda);
}

body.single-product .woocommerce-tabs ul.tabs::before { border: 0; }

body.single-product .woocommerce-tabs ul.tabs li {
	margin: 0;
	padding: 0;
	background: transparent;
	border: 0;
	border-radius: 0;
}

body.single-product .woocommerce-tabs ul.tabs li::before,
body.single-product .woocommerce-tabs ul.tabs li::after { content: none; }

body.single-product .woocommerce-tabs ul.tabs li a {
	display: block;
	padding: 9px 13px;
	border-radius: 8px;
	font-size: 14px;
	font-weight: 600;
	color: var(--texto-secundario);
}

body.single-product .woocommerce-tabs ul.tabs li.active a {
	background: rgba(0, 104, 160, 0.09);
	color: var(--azul-profundo);
}

body.single-product .woocommerce-tabs .panel h2,
body.single-product .related > h2,
body.single-product .upsells > h2 {
	margin: 0 0 20px;
	font-size: 24px;
	font-weight: 600;
	color: var(--azul-profundo);
}

body.single-product .related,
body.single-product .upsells { margin-top: 18px; }

/* -------------------------------------------------------------------------
   Avisos, tabelas, carrinho e checkout
   ---------------------------------------------------------------------- */

.woocommerce-error,
.woocommerce-info,
.woocommerce-message {
	margin: 0 0 22px;
	padding: 17px 20px 17px 52px;
	background: #FFFFFF;
	border: 1px solid var(--borda);
	border-top: 3px solid var(--azul-agua-pura);
	border-radius: 11px;
	box-shadow: 0 7px 20px rgba(4, 64, 95, 0.06);
	font-size: 14px;
	line-height: 1.55;
	color: var(--texto-principal);
}

.woocommerce-error { border-top-color: #B84040; }
.woocommerce-message { border-top-color: var(--verde-folha); }

.woocommerce table.shop_table {
	width: 100%;
	margin: 0 0 26px;
	overflow: hidden;
	background: #FFFFFF;
	border: 1px solid var(--borda);
	border-collapse: separate;
	border-spacing: 0;
	border-radius: 14px;
	box-shadow: 0 9px 26px rgba(4, 64, 95, 0.07);
}

.woocommerce table.shop_table th {
	padding: 15px 17px;
	background: #F5F9FB;
	border: 0;
	border-bottom: 1px solid var(--borda);
	font-size: 12px;
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: 0.06em;
	text-align: left;
	text-transform: uppercase;
	color: var(--texto-secundario);
}

.woocommerce table.shop_table td {
	padding: 16px 17px;
	border: 0;
	border-bottom: 1px solid var(--borda);
	font-size: 15px;
	line-height: 1.5;
	color: var(--texto-principal);
	vertical-align: middle;
}

.woocommerce table.shop_table tr:last-child td { border-bottom: 0; }

.woocommerce .amount {
	font-weight: 600;
	font-variant-numeric: tabular-nums;
}

.woocommerce-cart-form { margin-bottom: 34px; }

.woocommerce-cart .product-thumbnail { width: 96px; }

.woocommerce-cart .product-thumbnail img {
	width: 72px;
	height: 72px;
	padding: 5px;
	object-fit: contain;
	background: #F7FAFC;
	border: 1px solid var(--borda);
	border-radius: 9px;
}

.woocommerce-cart .product-name a {
	font-weight: 600;
	color: var(--texto-principal);
}

.woocommerce-cart .product-remove a.remove {
	display: grid;
	place-items: center;
	width: 30px;
	height: 30px;
	background: #F3F6F8;
	border-radius: 50%;
	font-size: 18px;
	color: var(--texto-secundario);
}

.woocommerce-cart .product-remove a.remove:hover {
	background: #F9E8E8;
	color: #A83232;
}

.woocommerce-cart .quantity .qty { width: 78px; text-align: center; }

.woocommerce-cart table.cart td.actions {
	padding: 18px;
	background: #F7FAFC;
}

.woocommerce-cart table.cart td.actions .coupon {
	display: flex;
	align-items: center;
	gap: 9px;
}

.woocommerce-cart table.cart td.actions .coupon .input-text {
	width: 220px;
	margin: 0;
}

.woocommerce-cart .cart-collaterals {
	display: flex;
	justify-content: flex-end;
}

.woocommerce-cart .cart_totals {
	width: min(100%, 460px);
	padding: 26px;
	background: #F5F9FB;
	border: 1px solid var(--borda);
	border-radius: 16px;
}

.woocommerce-cart .cart_totals h2 {
	margin: 0 0 17px;
	font-size: 22px;
	font-weight: 600;
	color: var(--azul-profundo);
}

.woocommerce-cart .cart_totals table.shop_table {
	margin: 0;
	background: transparent;
	border: 0;
	box-shadow: none;
}

.woocommerce-cart .cart_totals table.shop_table th,
.woocommerce-cart .cart_totals table.shop_table td {
	padding: 13px 0;
	background: transparent;
	border-bottom: 1px solid var(--borda);
	text-transform: none;
	letter-spacing: 0;
}

.woocommerce-cart .cart_totals table.shop_table td { text-align: right; }

.woocommerce-cart .wc-proceed-to-checkout { padding: 22px 0 0; }

.woocommerce-cart .wc-proceed-to-checkout a.checkout-button,
.woocommerce-checkout #place_order {
	display: block;
	width: 100%;
	min-height: 52px;
	margin: 0;
	padding: 15px 22px;
	background: var(--verde-limao);
	font-size: 16px;
	color: var(--sobre-limao);
}

.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover,
.woocommerce-checkout #place_order:hover {
	background: var(--limao-hover);
	color: var(--sobre-limao);
}

.woocommerce form .form-row {
	margin: 0 0 16px;
	padding: 0;
}

.woocommerce form .form-row label {
	margin-bottom: 6px;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.4;
	color: var(--texto-principal);
}

.woocommerce form .form-row .required { color: #B03030; }

.woocommerce-checkout form.checkout.woocommerce-checkout {
	display: grid;
	grid-template-columns: minmax(0, 1.08fr) minmax(390px, 0.92fr);
	grid-template-rows: auto minmax(0, 1fr);
	gap: 14px 36px;
	align-items: start;
	width: 100%;
	max-width: none;
}

.woocommerce-checkout form.checkout.woocommerce-checkout > #customer_details.col2-set {
	grid-column: 1;
	grid-row: 1 / span 2;
	float: none;
	display: block;
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 26px;
	background: #FFFFFF;
	border: 1px solid var(--borda);
	border-radius: 16px;
	box-shadow: 0 10px 28px rgba(4, 64, 95, 0.07);
}

.woocommerce-checkout form.checkout.woocommerce-checkout > #customer_details.col2-set > .col-1,
.woocommerce-checkout form.checkout.woocommerce-checkout > #customer_details.col2-set > .col-2 {
	float: none;
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 0;
}

.woocommerce-checkout form.checkout.woocommerce-checkout > #customer_details.col2-set > .col-2 {
	margin-top: 24px;
}

.woocommerce-checkout form.checkout.woocommerce-checkout #customer_details .woocommerce-billing-fields__field-wrapper,
.woocommerce-checkout form.checkout.woocommerce-checkout #customer_details .woocommerce-shipping-fields__field-wrapper,
.woocommerce-checkout form.checkout.woocommerce-checkout #customer_details .woocommerce-additional-fields__field-wrapper {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0 16px;
	width: 100%;
}

.woocommerce-checkout form.checkout.woocommerce-checkout #customer_details .form-row {
	float: none;
	width: 100%;
	max-width: none;
	min-width: 0;
}

.woocommerce-checkout form.checkout.woocommerce-checkout #customer_details .form-row-wide,
.woocommerce-checkout form.checkout.woocommerce-checkout #customer_details .notes,
.woocommerce-checkout form.checkout.woocommerce-checkout #customer_details .create-account {
	grid-column: 1 / -1;
}

.woocommerce-checkout form.checkout.woocommerce-checkout #customer_details .woocommerce-input-wrapper,
.woocommerce-checkout form.checkout.woocommerce-checkout #customer_details .select2-container {
	display: block;
	width: 100%;
	max-width: 100%;
}

.woocommerce-checkout form.checkout.woocommerce-checkout #customer_details input.input-text,
.woocommerce-checkout form.checkout.woocommerce-checkout #customer_details select,
.woocommerce-checkout form.checkout.woocommerce-checkout #customer_details textarea,
.woocommerce-checkout form.checkout.woocommerce-checkout #customer_details .select2-selection {
	width: 100%;
	max-width: 100%;
}

.woocommerce-checkout form.checkout.woocommerce-checkout #customer_details .select2-selection--single {
	height: 46px;
	border: 1px solid #CAD9E2;
	border-radius: var(--raio);
}

.woocommerce-checkout form.checkout.woocommerce-checkout #customer_details .select2-selection--single .select2-selection__rendered {
	padding: 8px 38px 8px 14px;
	line-height: 28px;
	color: var(--texto-principal);
}

.woocommerce-checkout form.checkout.woocommerce-checkout #customer_details .select2-selection--single .select2-selection__arrow {
	top: 9px;
	right: 9px;
}

.woocommerce-checkout form.checkout.woocommerce-checkout > #order_review_heading,
.woocommerce-checkout form.checkout.woocommerce-checkout > #order_review {
	float: none;
	width: 100%;
	max-width: none;
}

.woocommerce-checkout form.checkout.woocommerce-checkout > #order_review_heading {
	grid-column: 2;
	grid-row: 1;
	margin: 0;
	padding: 0 0 2px;
	background: transparent;
	border: 0;
	box-shadow: none;
	font-size: 22px;
	font-weight: 600;
	line-height: 1.35;
	color: var(--azul-profundo);
}

.woocommerce-checkout form.checkout.woocommerce-checkout > #order_review {
	grid-column: 2;
	grid-row: 2;
	clear: none;
	margin: 0;
	padding: 26px;
	background: #F5F9FB;
	border: 1px solid var(--borda);
	border-radius: 16px;
	box-shadow: 0 10px 28px rgba(4, 64, 95, 0.07);
}

.woocommerce-checkout .woocommerce-billing-fields > h3,
.woocommerce-checkout .woocommerce-additional-fields > h3,
.woocommerce-checkout .woocommerce-shipping-fields h3 {
	margin: 0 0 20px;
	font-size: 22px;
	font-weight: 600;
	color: var(--azul-profundo);
}

.woocommerce-checkout #payment {
	margin-top: 20px;
	background: transparent;
	border-radius: 0;
}

.woocommerce-checkout #payment ul.payment_methods {
	padding: 0 0 18px;
	border-bottom: 1px solid var(--borda);
}

.woocommerce-checkout #payment ul.payment_methods li {
	margin-bottom: 9px;
	padding: 14px;
	background: #FFFFFF;
	border: 1px solid var(--borda);
	border-radius: 10px;
}

.woocommerce-checkout #payment div.payment_box {
	margin: 10px 0 0;
	background: var(--fundo-claro);
	font-size: 13px;
	line-height: 1.55;
}

.woocommerce-checkout #payment div.payment_box::before {
	border-bottom-color: var(--fundo-claro);
}

.woocommerce-checkout #payment div.form-row { padding: 18px 0 0; }

.woocommerce-checkout form.checkout_coupon {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 10px;
	margin: 0 0 26px;
	padding: 18px;
	background: #FFFFFF;
	border: 1px solid var(--borda);
	border-radius: 12px;
}

.woocommerce-checkout form.checkout_coupon .form-row {
	float: none;
	width: 100%;
	margin: 0;
}

.woocommerce-checkout form.checkout_coupon .input-text,
.woocommerce-checkout form.checkout_coupon .button { width: 100%; }

/* Blocos modernos de carrinho e checkout recebem a mesma superfície. */
.wc-block-cart,
.wc-block-checkout {
	font-family: var(--fonte);
	color: var(--texto-principal);
}

.wc-block-cart__main,
.wc-block-cart__sidebar,
.wc-block-checkout__main,
.wc-block-checkout__sidebar {
	padding: 22px;
	background: #FFFFFF;
	border: 1px solid var(--borda);
	border-radius: 15px;
	box-shadow: 0 9px 26px rgba(4, 64, 95, 0.06);
}

.wc-block-components-button:not(.is-link) {
	min-height: 50px;
	background: var(--azul-agua-pura);
	border-radius: var(--raio);
	font-weight: 600;
	color: #FFFFFF;
}

.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button {
	background: var(--verde-limao);
	color: var(--sobre-limao);
}

/* -------------------------------------------------------------------------
   Minha conta, busca e estados vazios
   ---------------------------------------------------------------------- */

.woocommerce-account .woocommerce {
	display: grid;
	grid-template-columns: 235px minmax(0, 1fr);
	gap: 28px;
	align-items: start;
}

.woocommerce-account .woocommerce::before,
.woocommerce-account .woocommerce::after { content: none; }

.woocommerce-account .woocommerce-MyAccount-navigation {
	float: none;
	width: 100%;
	padding: 10px;
	background: #FFFFFF;
	border: 1px solid var(--borda);
	border-radius: 14px;
	box-shadow: 0 8px 24px rgba(4, 64, 95, 0.06);
}

.woocommerce-account .woocommerce-MyAccount-navigation ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.woocommerce-account .woocommerce-MyAccount-navigation li { margin: 0; }

.woocommerce-account .woocommerce-MyAccount-navigation a {
	display: block;
	padding: 12px 13px;
	border-radius: 8px;
	font-size: 14px;
	font-weight: 600;
	color: var(--texto-secundario);
}

.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a,
.woocommerce-account .woocommerce-MyAccount-navigation a:hover {
	background: rgba(0, 104, 160, 0.08);
	color: var(--azul-profundo);
}

.woocommerce-account .woocommerce-MyAccount-content {
	float: none;
	width: 100%;
	min-height: 260px;
	padding: 28px;
	background: #FFFFFF;
	border: 1px solid var(--borda);
	border-radius: 14px;
	box-shadow: 0 8px 24px rgba(4, 64, 95, 0.06);
}

.woocommerce-account:not(.logged-in) .woocommerce {
	grid-template-columns: minmax(0, 1fr);
}

.woocommerce-account:not(.logged-in) .woocommerce form.login,
.woocommerce-account:not(.logged-in) .woocommerce form.register {
	max-width: 560px;
	margin: 0 auto;
	padding: 28px;
	background: #FFFFFF;
	border: 1px solid var(--borda);
	border-radius: 14px;
	box-shadow: 0 8px 24px rgba(4, 64, 95, 0.06);
}

.search-results #primary .site-main,
.error404 #primary .site-main {
	display: grid;
	gap: 18px;
}

.search-results #primary .site-main > article,
.error404 .ast-404-layout-1,
.no-results.not-found {
	padding: 28px;
	background: #FFFFFF;
	border: 1px solid var(--borda);
	border-radius: 14px;
	box-shadow: 0 8px 24px rgba(4, 64, 95, 0.06);
}

.search-results .entry-title {
	margin: 0 0 10px;
	font-size: 21px;
	font-weight: 600;
	color: var(--azul-profundo);
}

.search-results .entry-meta {
	margin-bottom: 12px;
	font-size: 13px;
	color: var(--texto-secundario);
}

.error404 .page-sub-title,
.no-results .page-content {
	font-size: 16px;
	line-height: 1.65;
	color: var(--texto-secundario);
}

@media (max-width: 1100px) {
	body:not(.home).woocommerce ul.products {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	body.single-product div.product.type-product { gap: 34px; }
}

@media (max-width: 921px) {
	body:not(.home) #content > .ast-container { padding: 26px 20px 64px; }

	.ap-interna-topo {
		min-height: 185px;
		padding: 30px;
		border-radius: 18px;
	}

	.ap-interna-topo__selo { min-width: 235px; }

	body:not(.home).woocommerce ul.products {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	body.single-product div.product.type-product {
		grid-template-columns: minmax(0, 1fr);
		gap: 28px;
	}

	.woocommerce-checkout form.checkout.woocommerce-checkout {
		grid-template-columns: minmax(0, 1fr);
		grid-template-rows: auto;
		gap: 20px;
	}

	.woocommerce-checkout form.checkout.woocommerce-checkout > #customer_details.col2-set,
	.woocommerce-checkout form.checkout.woocommerce-checkout > #order_review_heading,
	.woocommerce-checkout form.checkout.woocommerce-checkout > #order_review {
		grid-column: 1;
		grid-row: auto;
	}

	.woocommerce-account .woocommerce {
		grid-template-columns: minmax(0, 1fr);
	}

	.woocommerce-account .woocommerce-MyAccount-navigation ul {
		display: flex;
		overflow-x: auto;
		scrollbar-width: thin;
	}

	.woocommerce-account .woocommerce-MyAccount-navigation li { flex: 0 0 auto; }
}

@media (max-width: 680px) {
	body:not(.home) #content > .ast-container { padding: 18px 14px 52px; }
	body:not(.home) #primary { margin-top: 22px; }

	.ap-interna-topo {
		display: block;
		min-height: 0;
		padding: 25px 22px;
		border-radius: 15px;
	}

	.ap-interna-topo__titulo { font-size: clamp(27px, 9vw, 35px); }
	.ap-interna-topo__texto { margin-top: 12px; font-size: 15px; }

	.ap-interna-topo__selo {
		min-width: 0;
		margin-top: 21px;
		padding: 12px;
	}

	.ap-interna-topo__selo-icone { flex-basis: 40px; height: 40px; }

	.page:not(.home):not(.woocommerce-page) #primary .site-main > article,
	.single-post #primary .site-main > article { padding: 22px 18px; }

	body:not(.home).woocommerce .woocommerce-result-count,
	body:not(.home).woocommerce .woocommerce-ordering {
		float: none;
		width: 100%;
	}

	body:not(.home).woocommerce .woocommerce-ordering select { width: 100%; }

	body:not(.home).woocommerce ul.products {
		grid-template-columns: minmax(0, 1fr);
		gap: 18px;
	}

	body:not(.home).woocommerce ul.products li.product img { height: 260px; }

	body.single-product .woocommerce-product-gallery { padding: 15px; }
	body.single-product div.product .product_title { font-size: 30px; }

	body.single-product div.product form.cart {
		display: grid;
		grid-template-columns: minmax(0, 1fr);
		padding: 17px;
	}

	body.single-product div.product form.cart .variations select { width: 100%; min-width: 0; }
	body.single-product .woocommerce-variation-add-to-cart { align-items: stretch; flex-wrap: wrap; }
	body.single-product .woocommerce-variation-add-to-cart .single_add_to_cart_button { min-width: 190px; }
	body.single-product .woocommerce-tabs { padding: 20px 17px; }

	.woocommerce table.shop_table_responsive tr,
	.woocommerce-page table.shop_table_responsive tr { padding: 12px; }

	.woocommerce-cart table.cart thead { display: none; }

	.woocommerce-cart table.cart tr.cart_item {
		display: grid;
		grid-template-columns: 72px minmax(0, 1fr);
		gap: 9px 14px;
		padding: 16px;
		border-bottom: 1px solid var(--borda);
	}

	.woocommerce-cart table.cart tr.cart_item td {
		padding: 0;
		border: 0;
		text-align: left;
	}

	.woocommerce-cart table.cart .product-thumbnail {
		display: block;
		grid-row: span 4;
	}

	.woocommerce-cart table.cart .product-remove { grid-column: 2; }

	.woocommerce-cart table.cart td[data-title]::before {
		float: none;
		font-size: 12px;
		color: var(--texto-secundario);
	}

	.woocommerce-cart table.cart td.actions .coupon {
		float: none;
		flex-direction: column;
		align-items: stretch;
		width: 100%;
	}

	.woocommerce-cart table.cart td.actions .coupon .input-text,
	.woocommerce-cart table.cart td.actions .button { width: 100%; }

	.woocommerce-cart .cart_totals { padding: 20px 17px; }

	.woocommerce-checkout form.checkout > .col2-set,
	.woocommerce-checkout #order_review,
	.woocommerce-account .woocommerce-MyAccount-content { padding: 20px 17px; }

	.woocommerce-checkout form.checkout.woocommerce-checkout #customer_details .woocommerce-billing-fields__field-wrapper,
	.woocommerce-checkout form.checkout.woocommerce-checkout #customer_details .woocommerce-shipping-fields__field-wrapper,
	.woocommerce-checkout form.checkout.woocommerce-checkout #customer_details .woocommerce-additional-fields__field-wrapper {
		grid-template-columns: minmax(0, 1fr);
		gap: 0;
	}

	.woocommerce-checkout form.checkout.woocommerce-checkout #customer_details .form-row {
		grid-column: 1;
	}

	.woocommerce-checkout form.checkout_coupon {
		grid-template-columns: minmax(0, 1fr);
	}

	.wc-block-cart__main,
	.wc-block-cart__sidebar,
	.wc-block-checkout__main,
	.wc-block-checkout__sidebar { padding: 16px; }
}

/* =========================================================================
   18. Páginas Sobre e Contato
   ========================================================================= */

.ap-pagina {
	display: grid;
	gap: 34px;
	font-family: var(--fonte);
	color: var(--texto-principal);
}

.ap-pagina *,
.ap-pagina *::before,
.ap-pagina *::after { box-sizing: border-box; }

.ap-pagina h2,
.ap-pagina h3,
.ap-pagina p,
.ap-pagina dl,
.ap-pagina dd,
.ap-pagina ol { margin-top: 0; }

.ap-pagina h2 {
	margin-bottom: 14px;
	font-size: clamp(27px, 3vw, 40px);
	font-weight: 600;
	line-height: 1.18;
	letter-spacing: -0.035em;
	color: var(--azul-profundo);
}

.ap-pagina h3 {
	margin-bottom: 8px;
	font-size: 18px;
	font-weight: 600;
	line-height: 1.35;
	color: var(--texto-principal);
}

.ap-pagina p {
	margin-bottom: 0;
	font-size: 16px;
	line-height: 1.68;
	color: var(--texto-secundario);
}

.ap-pagina__etiqueta {
	display: block;
	margin-bottom: 10px;
	font-size: 12px;
	font-weight: 700;
	line-height: 1.35;
	letter-spacing: 0.16em;
	color: var(--azul-agua-pura);
}

.ap-pagina__cabecalho {
	max-width: 760px;
	margin-bottom: 24px;
}

.ap-pagina__cabecalho h2 { margin-bottom: 10px; }

.ap-pagina__icone {
	display: grid;
	place-items: center;
	flex: 0 0 50px;
	width: 50px;
	height: 50px;
	background: rgba(0, 104, 160, 0.08);
	border: 1px solid rgba(0, 104, 160, 0.08);
	border-radius: 13px;
	color: var(--azul-agua-pura);
}

.ap-pagina__conteudo-editor {
	padding: clamp(24px, 4vw, 46px);
	background: #FFFFFF;
	border: 1px solid var(--borda);
	border-radius: 18px;
	box-shadow: 0 10px 28px rgba(4, 64, 95, 0.07);
}

/* ------------------------------------------------------------------ Sobre */

.ap-sobre-intro {
	display: grid;
	grid-template-columns: minmax(0, 1.02fr) minmax(420px, 0.98fr);
	gap: 34px;
	align-items: stretch;
}

.ap-sobre-intro__texto {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: clamp(28px, 4vw, 52px);
	background: #FFFFFF;
	border: 1px solid var(--borda);
	border-radius: 18px;
	box-shadow: 0 10px 30px rgba(4, 64, 95, 0.07);
}

.ap-sobre-intro__texto p + p { margin-top: 14px; }

.ap-sobre-intro__acoes,
.ap-contato-abertura__acoes {
	display: flex;
	flex-wrap: wrap;
	gap: 11px;
	margin-top: 26px;
}

.ap-sobre-sede {
	min-width: 0;
	align-self: center;
	overflow: hidden;
	background: var(--azul-profundo);
	border-radius: 18px;
	box-shadow: 0 16px 38px rgba(4, 64, 95, 0.17);
	color: #FFFFFF;
}

.ap-sobre-page .ap-sobre-foto {
	min-width: 0;
	margin: 0;
	overflow: hidden;
}

.ap-sobre-foto img {
	display: block;
	width: 100%;
	max-width: 100%;
	height: auto;
}

.ap-sobre-foto figcaption {
	padding: 16px 22px;
	font-size: 14px;
	line-height: 1.5;
}

.ap-sobre-foto--fachada figcaption {
	padding-bottom: 0;
	font-weight: 700;
	color: #FFFFFF;
}

.ap-sobre-foto--recepcao {
	background: #FFFFFF;
	border: 1px solid var(--borda);
	border-radius: 12px;
}

.ap-sobre-foto--recepcao img {
	aspect-ratio: 4 / 5;
	object-fit: cover;
	object-position: center 65%;
}

.ap-sobre-foto--recepcao figcaption {
	color: var(--texto-secundario);
}

.ap-sobre-sede .ap-sobre-numeros {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1px;
	margin: 16px 22px 22px;
	overflow: hidden;
	background: rgba(255, 255, 255, 0.16);
	border: 1px solid rgba(255, 255, 255, 0.16);
	border-radius: 12px;
}

.ap-sobre-numeros > div {
	padding: 15px 13px;
	background: rgba(4, 64, 95, 0.42);
}

.ap-sobre-numeros dt {
	margin: 0 0 3px;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.35;
	color: #FFFFFF;
}

.ap-sobre-numeros dd {
	margin: 0;
	font-size: 13px;
	line-height: 1.4;
	color: #B9D4E1;
}

.ap-sobre-pilares,
.ap-contato-canais,
.ap-contato-direcionamento {
	padding: clamp(28px, 4vw, 46px);
	background: #FFFFFF;
	border: 1px solid var(--borda);
	border-radius: 18px;
	box-shadow: 0 10px 30px rgba(4, 64, 95, 0.07);
}

.ap-sobre-pilares__grade {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 16px;
}

.ap-sobre-pilar {
	padding: 22px;
	background: linear-gradient(180deg, #FFFFFF, #F7FAFC);
	border: 1px solid var(--borda);
	border-radius: 14px;
}

.ap-sobre-pilar .ap-pagina__icone { margin-bottom: 18px; }

.ap-sobre-pilar p { font-size: 14px; line-height: 1.6; }

.ap-sobre-jornada {
	display: grid;
	grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
	gap: 42px;
	align-items: center;
	padding: clamp(30px, 4vw, 48px);
	background: var(--fundo-claro);
	border: 1px solid var(--borda);
	border-radius: 18px;
}

.ap-sobre-jornada__conteudo {
	display: grid;
	gap: 28px;
	min-width: 0;
}

.ap-sobre-etapas {
	display: grid;
	gap: 0;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ap-sobre-etapas li {
	display: grid;
	grid-template-columns: 46px minmax(0, 1fr);
	gap: 16px;
	padding: 0 0 22px;
}

.ap-sobre-etapas li:last-child { padding-bottom: 0; }

.ap-sobre-etapas li > span {
	display: grid;
	place-items: center;
	width: 42px;
	height: 42px;
	background: var(--azul-agua-pura);
	border-radius: 50%;
	font-size: 12px;
	font-weight: 700;
	color: #FFFFFF;
}

.ap-sobre-etapas strong {
	display: block;
	margin-bottom: 5px;
	font-size: 16px;
	font-weight: 600;
	color: var(--texto-principal);
}

.ap-sobre-etapas p { font-size: 14px; line-height: 1.6; }

.ap-pagina-cta {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 30px;
	padding: clamp(30px, 4vw, 46px);
	background:
		radial-gradient(circle at 90% 0, rgba(39, 168, 213, 0.22), transparent 30%),
		var(--azul-profundo);
	border-radius: 18px;
	color: #FFFFFF;
}

.ap-pagina-cta .ap-pagina__etiqueta { color: #9EDBF0; }

.ap-pagina-cta h2 {
	max-width: 720px;
	margin: 0;
	font-size: clamp(25px, 2.8vw, 36px);
	color: #FFFFFF;
}

.ap-pagina-cta__acoes {
	flex: 0 0 auto;
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-end;
	gap: 10px;
}

/* ---------------------------------------------------------------- Contato */

.ap-contato-abertura {
	display: grid;
	grid-template-columns: minmax(0, 1.2fr) minmax(360px, 0.8fr);
	gap: 24px;
}

.ap-contato-abertura__texto {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: clamp(28px, 4vw, 48px);
	background: #FFFFFF;
	border: 1px solid var(--borda);
	border-radius: 18px;
	box-shadow: 0 10px 30px rgba(4, 64, 95, 0.07);
}

.ap-contato-abertura__texto p { max-width: 700px; }

.ap-contato-destaque {
	display: flex;
	align-items: flex-start;
	gap: 17px;
	padding: clamp(26px, 3vw, 38px);
	background:
		radial-gradient(circle at 100% 0, rgba(39, 168, 213, 0.30), transparent 37%),
		linear-gradient(145deg, #04405F, #0068A0);
	border-radius: 18px;
	box-shadow: 0 14px 34px rgba(4, 64, 95, 0.16);
	color: #FFFFFF;
}

.ap-contato-destaque__icone {
	flex: 0 0 58px;
	height: 58px;
	display: grid;
	place-items: center;
	background: var(--verde-limao);
	border-radius: 15px;
	color: var(--sobre-limao);
}

.ap-contato-destaque small,
.ap-contato-canal small,
.ap-contato-infos__lista small {
	display: block;
	margin-bottom: 7px;
	font-size: 11px;
	font-weight: 700;
	line-height: 1.35;
	letter-spacing: 0.10em;
	color: inherit;
	opacity: 0.72;
}

.ap-contato-destaque a {
	display: inline-block;
	margin-bottom: 9px;
	font-size: clamp(22px, 2.2vw, 30px);
	font-weight: 600;
	line-height: 1.2;
	color: #FFFFFF;
}

.ap-contato-destaque p { font-size: 14px; color: #CFE3ED; }

.ap-contato-canais__grade {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
}

.ap-contato-canal {
	display: flex;
	align-items: flex-start;
	gap: 16px;
	min-width: 0;
	padding: 21px;
	background: linear-gradient(180deg, #FFFFFF, #F7FAFC);
	border: 1px solid var(--borda);
	border-radius: 14px;
}

.ap-contato-canal > div {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	min-width: 0;
}

.ap-contato-canal small { color: var(--azul-agua-pura); opacity: 1; }

.ap-contato-canal a:not(.ap-contato-canal__acao) {
	max-width: 100%;
	font-size: 17px;
	font-weight: 600;
	line-height: 1.45;
	color: var(--texto-principal);
	overflow-wrap: anywhere;
}

.ap-contato-canal p,
.ap-contato-canal address {
	margin: 4px 0 0;
	font-size: 14px;
	font-style: normal;
	line-height: 1.55;
	color: var(--texto-secundario);
}

.ap-contato-canal__acao {
	display: inline-flex;
	margin-top: 8px;
	font-size: 13px;
	font-weight: 600;
	color: var(--azul-agua-pura);
}

.ap-contato-infos {
	display: grid;
	grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
	gap: 34px;
	align-items: center;
	padding: clamp(30px, 4vw, 48px);
	background: var(--fundo-claro);
	border: 1px solid var(--borda);
	border-radius: 18px;
}

.ap-contato-infos__principal .ap-btn { margin-top: 22px; }

.ap-contato-infos__lista {
	display: grid;
	gap: 12px;
}

.ap-contato-infos__lista > div {
	display: flex;
	align-items: flex-start;
	gap: 15px;
	padding: 18px;
	background: #FFFFFF;
	border: 1px solid var(--borda);
	border-radius: 13px;
}

.ap-contato-infos__lista small { color: var(--azul-agua-pura); opacity: 1; }

.ap-contato-infos__lista strong {
	display: block;
	font-size: 15px;
	font-weight: 600;
	line-height: 1.45;
	color: var(--texto-principal);
}

.ap-contato-infos__lista p { margin-top: 3px; font-size: 13px; }

.ap-contato-direcionamento__grade {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 14px;
}

.ap-contato-direcionamento__grade > div {
	position: relative;
	padding: 20px 20px 20px 24px;
	background: #F7FAFC;
	border: 1px solid var(--borda);
	border-radius: 13px;
}

.ap-contato-direcionamento__grade > div::before {
	content: '';
	position: absolute;
	left: 0;
	top: 18px;
	bottom: 18px;
	width: 4px;
	background: var(--azul-agua-pura);
	border-radius: 0 4px 4px 0;
}

.ap-contato-direcionamento__grade strong {
	display: block;
	margin-bottom: 6px;
	font-size: 16px;
	font-weight: 600;
	color: var(--texto-principal);
}

.ap-contato-direcionamento__grade p { font-size: 14px; line-height: 1.58; }

@media (max-width: 1000px) {
	.ap-sobre-intro,
	.ap-contato-abertura {
		grid-template-columns: minmax(0, 1fr);
	}

	.ap-sobre-pilares__grade { grid-template-columns: repeat(2, minmax(0, 1fr)); }

	.ap-pagina-cta {
		align-items: flex-start;
		flex-direction: column;
	}

	.ap-pagina-cta__acoes { justify-content: flex-start; }
}

@media (max-width: 760px) {
	.ap-pagina { gap: 22px; }

	.ap-sobre-jornada,
	.ap-contato-infos {
		grid-template-columns: minmax(0, 1fr);
		gap: 26px;
	}

	.ap-contato-direcionamento__grade { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 580px) {
	.ap-sobre-intro__texto,
	.ap-sobre-pilares,
	.ap-sobre-jornada,
	.ap-contato-abertura__texto,
	.ap-contato-canais,
	.ap-contato-infos,
	.ap-contato-direcionamento,
	.ap-pagina-cta,
	.ap-pagina__conteudo-editor { padding: 22px 18px; }

	.ap-sobre-intro__acoes,
	.ap-contato-abertura__acoes,
	.ap-pagina-cta__acoes { display: grid; width: 100%; }

	.ap-sobre-intro__acoes .ap-btn,
	.ap-contato-abertura__acoes .ap-btn,
	.ap-pagina-cta__acoes .ap-btn { width: 100%; }

	.ap-sobre-sede .ap-sobre-numeros { grid-template-columns: minmax(0, 1fr); }
	.ap-sobre-numeros > div { padding: 11px 13px; }

	.ap-sobre-pilares__grade,
	.ap-contato-canais__grade { grid-template-columns: minmax(0, 1fr); }

	.ap-sobre-pilar,
	.ap-contato-canal { padding: 18px; }

	.ap-contato-destaque { padding: 24px 19px; }
	.ap-contato-destaque__icone { flex-basis: 48px; height: 48px; }
	.ap-contato-destaque a { font-size: 22px; }

	.ap-contato-canal { gap: 13px; }
	.ap-contato-canal .ap-pagina__icone { flex-basis: 44px; width: 44px; height: 44px; }
}

/* =========================================================================
   19. Acabamento da home — escopo isolado das páginas internas
   ========================================================================= */

body.home .ap-busca form {
	min-height: 50px;
	background: var(--fundo-claro);
	border-color: #D5E2E9;
	transition: border-color 180ms ease, box-shadow 180ms ease;
}
body.home .ap-busca form:focus-within {
	border-color: var(--azul-agua-pura);
	box-shadow: 0 0 0 3px rgba(0, 104, 160, 0.12);
}
body.home .ap-busca input[type="search"] { font-size: 16px; }
body.home .ap-acao__contador { background: var(--azul-profundo); }

.ap-home .ap-hero__texto { gap: 20px; }
.ap-home .ap-hero__titulo { letter-spacing: -0.035em; }
.ap-home .ap-hero__eyebrow { line-height: 1.5; letter-spacing: 0.13em; }
.ap-home .ap-hero__nota { max-width: 42ch; font-size: 13px; }
.ap-home .ap-hero__selo { filter: drop-shadow(0 6px 12px rgba(3, 51, 74, 0.16)); }
.ap-home .ap-hero .ap-btn--lima { box-shadow: 0 4px 12px rgba(115, 157, 35, 0.14); }
.ap-btn { font-weight: 600; min-height: 48px; }
:is(.ap-btn, .woocommerce ul.products li.product .button):hover {
	box-shadow: 0 4px 10px rgba(4, 64, 95, 0.12);
}

.ap-home .ap-confianca {
	background: #FFFFFF;
	border-radius: var(--raio-card);
	box-shadow: 0 8px 28px rgba(4, 64, 95, 0.09);
}
.ap-home .ap-confianca::before { content: none; }
.ap-home .ap-confianca__item { align-items: center; }
.ap-home .ap-confianca__item:hover { transform: none; background: transparent; }
.ap-home .ap-confianca__texto small { font-size: 13px; }

/* Mesmo ritmo para os títulos, mantendo o H1 e os nomes de produto distintos. */
.ap-home :is(.ap-categorias__titulo, .ap-produtos__titulo, .ap-solucoes__titulo,
             .ap-servicos__titulo, .ap-clientes__titulo, .ap-depoimentos__titulo) {
	font-size: clamp(28px, 2.5vw, 36px);
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: -0.035em;
	text-wrap: balance;
}
.ap-home :is(.ap-categorias__eyebrow, .ap-produtos__eyebrow, .ap-solucoes__eyebrow,
             .ap-servicos__eyebrow, .ap-clientes__eyebrow, .ap-depoimentos__eyebrow) {
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.12em;
}
.ap-home :is(.ap-categorias__subtitulo, .ap-produtos__subtitulo, .ap-solucoes__subtitulo,
             .ap-servicos__subtitulo, .ap-depoimentos__subtitulo) { max-width: 62ch; }
.ap-home :is(.ap-categorias-secao, .ap-produtos-secao, .ap-servicos-secao,
             .ap-depoimentos-secao)::before { content: none; }
.ap-home .ap-produtos-secao { background: var(--fundo-claro); }
.ap-home .ap-servicos-secao { background: #F7FAFC; }
.ap-home .ap-depoimentos-secao { background: var(--fundo-claro); }

/* Categorias: todo o cartão é um link, com indicação visível da ação. */
.ap-home .ap-categoria {
	min-height: 220px;
	padding: 24px;
	box-shadow: none;
	transition: border-color 180ms ease, background-color 180ms ease, box-shadow 180ms ease;
}
.ap-home .ap-categoria::before { content: none; }
.ap-home .ap-categoria:hover {
	background: #F7FBFD;
	border-color: #9BC4D8;
	box-shadow: 0 6px 20px rgba(4, 64, 95, 0.07);
}
.ap-home .ap-categoria__icone {
	width: 48px;
	height: 48px;
	margin-bottom: 18px;
	border-radius: var(--raio);
}
.ap-home .ap-categoria__desc { font-size: 14px; }
.ap-home .ap-categoria__acao {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	width: 100%;
	margin-top: 22px;
	min-height: 44px;
	padding: 10px 12px;
	background: #EAF4FA;
	border: 1px solid #B7D5E5;
	border-radius: var(--raio);
	font-size: 14px;
	font-weight: 600;
	color: var(--azul-agua-pura);
}
.ap-home .ap-categoria__acao > span { font-size: 20px; line-height: 1; }
.ap-home .ap-categoria__texto { flex-grow: 1; }
.ap-home .ap-categoria:hover .ap-categoria__acao,
.ap-home .ap-categoria:focus-visible .ap-categoria__acao {
	background: var(--azul-agua-pura);
	border-color: var(--azul-agua-pura);
	color: #FFFFFF;
}

/* Vitrine com bordas alinhadas, imagem íntegra e preço como ponto de leitura. */
.ap-home .woocommerce ul.products { grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); }
.ap-home .woocommerce ul.products li.product { box-shadow: 0 2px 8px rgba(4, 64, 95, 0.04); }
.ap-home .woocommerce ul.products li.product::before { content: none; }
.ap-home .woocommerce ul.products li.product:hover { box-shadow: 0 8px 24px rgba(4, 64, 95, 0.10); }
.ap-home .woocommerce ul.products li.product .ast-woo-product-category {
	background: transparent;
	padding: 0;
	font-size: 12px;
	letter-spacing: 0.04em;
	color: var(--texto-secundario);
}
.ap-home .woocommerce ul.products li.product .price { color: var(--azul-profundo); }
.ap-home .woocommerce ul.products li.product .price del { display: block; margin-bottom: 4px; }
.ap-home .woocommerce ul.products li.product .price ins { color: inherit; }
.ap-home .woocommerce ul.products li.product .ap-card-pagamento {
	padding: 0;
	background: transparent;
	border: 0;
	border-top: 1px solid var(--borda);
	border-radius: 0;
}
.ap-home .woocommerce ul.products li.product .ap-card-parcela { border-bottom: 0; padding-bottom: 0; }
.ap-home .woocommerce ul.products li.product .ap-card-pix { color: #355C18; }
.ap-home .woocommerce ul.products li.product .button { white-space: normal; }
.ap-home .ap-produtos__atalhos a { min-height: 44px; font-size: 14px; padding: 10px 16px; }

.ap-home .ap-solucao-card { box-shadow: 0 4px 18px rgba(4, 64, 95, 0.07); }
.ap-home .ap-solucao-card__media { border-bottom: 1px solid rgba(4, 64, 95, 0.06); }
.ap-home .ap-solucao-card__icone { box-shadow: none; width: 40px; height: 40px; border-radius: 10px; }
.ap-home .ap-solucao-card__titulo { font-weight: 600; font-size: clamp(23px, 2vw, 27px); text-wrap: balance; }
.ap-home .ap-solucao-card__eyebrow { min-height: 36px; font-size: 12px; letter-spacing: 0.1em; }
.ap-home .ap-solucao-card__apoio { font-size: 16px; }
.ap-home .ap-solucao-card__tags span { font-size: 12px; }
.ap-home .ap-solucao-card__botao { padding-top: 16px; }

.ap-home .ap-servico { padding: 24px; min-height: 280px; box-shadow: none; }
.ap-home .ap-servico::before,
.ap-home .ap-depoimento::before { content: none; }
.ap-home .ap-servico__numero { color: var(--texto-secundario); }
.ap-home .ap-servico__destaque { font-size: 12px; color: #355C18; }
.ap-home .ap-servicos__garantias { background: transparent; box-shadow: none; }
.ap-home .ap-servicos__garantias span { font-size: 14px; }
.ap-home .ap-depoimento { box-shadow: none; }
.ap-home .ap-depoimento:hover { transform: none; box-shadow: none; }

body.home .ap-rodape__cta { box-shadow: none; border-radius: var(--raio-card); }
body.home .ap-rodape__eyebrow { font-size: 12px; letter-spacing: 0.1em; }
body.home .ap-rodape__lista a:focus-visible,
body.home .ap-rodape__redes a:focus-visible { outline: 2px solid #FFFFFF; outline-offset: 3px; }

@media (hover: hover) {
	.ap-home .ap-solucao-card:hover { transform: translateY(-2px); box-shadow: 0 8px 26px rgba(4, 64, 95, 0.10); }
}
@media (max-width: 1100px) {
	.ap-home .woocommerce ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 921px) {
	.ap-home .ap-solucao-card__eyebrow { min-height: 0; }
	.ap-home .ap-confianca__item { align-items: flex-start; }
}
@media (max-width: 767px) {
	.ap-home .woocommerce ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ap-home .ap-categoria { padding: 20px; }
	.ap-home .ap-servico { min-height: 0; padding: 20px; }
}
@media (max-width: 544px) {
	.ap-home .ap-secao { padding: 48px 0; }
	.ap-home :is(.ap-categorias__titulo, .ap-produtos__titulo, .ap-solucoes__titulo,
	             .ap-servicos__titulo, .ap-clientes__titulo, .ap-depoimentos__titulo) { font-size: 28px; }
	.ap-home .ap-confianca__texto strong { font-size: 14px; }
	.ap-home .ap-confianca__texto small { font-size: 12px; }
	.ap-home .ap-categoria { min-height: 230px; padding: 16px; }
	.ap-home .ap-categoria__desc { font-size: 13px; }
	.ap-home .ap-categoria__acao { margin-top: 16px; }
	.ap-home .woocommerce ul.products { gap: 12px; }
	.ap-home .woocommerce ul.products li.product .astra-shop-summary-wrap { padding: 12px; }
	.ap-home .woocommerce ul.products li.product .ast-woo-product-category { font-size: 11px; }
	.ap-home .woocommerce ul.products li.product .price { font-size: 20px; }
	.ap-home .woocommerce ul.products li.product .ap-card-pagamento__icone { display: none; }
	.ap-home .woocommerce ul.products li.product .ap-card-parcela,
	.ap-home .woocommerce ul.products li.product .ap-card-pix { font-size: 13px; }
	.ap-home .woocommerce ul.products li.product .button { padding: 12px 8px; font-size: 14px; }
	.ap-home .ap-servico__destaque { padding: 5px 8px; }
	.ap-home .ap-solucao-card__apoio { font-size: 15px; }
}
@media (max-width: 359px) {
	.ap-home .woocommerce ul.products { grid-template-columns: minmax(0, 1fr); }
	.ap-home .woocommerce ul.products li.product img { height: 220px; }
	.ap-home .woocommerce ul.products li.product .astra-shop-summary-wrap { padding: 20px; }
	.ap-home .ap-categorias,
	.ap-home .ap-servicos { grid-template-columns: minmax(0, 1fr); }
	.ap-home .ap-categoria { min-height: 0; }
}


/* Categorias da home — fundo azul e ícones — 0.17.6. */
.ap-home .ap-categorias-destaque {
  padding: 64px 0 68px;
  background: #04405F;
  color: #FFFFFF;
}
.ap-categorias-destaque__cabecalho {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 32px;
  margin-bottom: 32px;
}
.ap-categorias-destaque__introducao { max-width: 700px; }
.ap-categorias-destaque__etiqueta {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 14px;
  color: #BCE6F5;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .13em;
}
.ap-categorias-destaque__etiqueta::before {
  content: '';
  width: 26px;
  height: 3px;
  border-radius: 2px;
  background: #A0D040;
}
.ap-home .ap-categorias-destaque__titulo {
  margin: 0 0 14px;
  max-width: 23ch;
  font-size: clamp(30px, 3vw, 42px);
  font-weight: 600;
  line-height: 1.12;
  letter-spacing: -.035em;
  color: #FFFFFF;
  text-wrap: balance;
}
.ap-categorias-destaque__subtitulo {
  max-width: 62ch;
  margin: 0;
  font-size: 16px;
  line-height: 1.65;
  color: #CCE1EB;
}
.ap-categorias-destaque__ajuda {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  gap: 12px;
  min-height: 48px;
  padding: 12px 18px;
  color: #FFFFFF;
  background: #12536F;
  border: 1px solid #6592A8;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
}
.ap-categorias-destaque__ajuda:hover { background: #1B637F; color: #FFFFFF; }
.ap-categorias-destaque__grade {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 20px;
}
.ap-categorias-destaque__card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  overflow: hidden;
  background: #FFFFFF;
  color: #16303F;
  border: 1px solid #DDE8ED;
  border-radius: 12px;
  text-decoration: none;
  transition: border-color 180ms ease, box-shadow 180ms ease;
  border-top: 4px solid #A0D040;
}
.ap-categorias-destaque__card:hover {
  color: #16303F;
  border-color: #91C9E1;
  box-shadow: 0 8px 24px rgba(0, 20, 32, .18);
}
.ap-categorias-destaque__media {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex: 0 0 auto;
  gap: 12px;
  padding: 28px 24px 24px;
}
.ap-categorias-destaque__icone {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 76px;
  width: 76px;
  height: 76px;
  border-radius: 20px;
  color: #0068A0;
  background: #EAF4F8;
  border: 1px solid #D6EAF3;
}
.ap-categorias-destaque__conteudo {
  display: flex;
  flex: 1;
  flex-direction: column;
  align-items: flex-start;
  padding: 0 24px 24px;
}
.ap-home .ap-categorias-destaque__nome {
  margin: 0 0 10px;
  color: #04405F;
  font-size: 24px;
  font-weight: 600;
  line-height: 1.25;
  letter-spacing: -.02em;
}
.ap-categorias-destaque__descricao {
  display: block;
  margin: 0 0 30px;
  font-size: 14px;
  line-height: 1.6;
  color: #5B7280;
}
.ap-categorias-destaque__acao {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-top: auto;
  width: 100%;
  min-height: 46px;
  padding: 12px 13px;
  background: #0068A0;
  border: 1px solid #0068A0;
  border-radius: 8px;
  color: #FFFFFF;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.4;
}
.ap-categorias-destaque__acao svg { flex-shrink: 0; }
.ap-categorias-destaque__card:hover .ap-categorias-destaque__acao { background: #04405F; border-color: #04405F; }
.ap-categorias-destaque__card--servicos {
  background: #0A577D;
  border-color: #4B8098;
  color: #FFFFFF;
}
.ap-categorias-destaque__card--servicos .ap-categorias-destaque__icone {
  color: #FFFFFF;
  background: #08658F;
  border-color: #3C7C99;
}
.ap-categorias-destaque__card--servicos { border-top-color: #A0D040; }
.ap-categorias-destaque__selo {
  max-width: 70px;
  color: #D8F0AE;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.5;
}
.ap-home .ap-categorias-destaque__card--servicos .ap-categorias-destaque__nome { color: #FFFFFF; }
.ap-categorias-destaque__card--servicos .ap-categorias-destaque__descricao { color: #D7EBF5; }
.ap-categorias-destaque__card--servicos .ap-categorias-destaque__acao {
  background: #FFFFFF;
  border-color: #FFFFFF;
  color: #04405F;
}
.ap-categorias-destaque__card--servicos:hover .ap-categorias-destaque__acao { background: #EAF4FA; border-color: #EAF4FA; }
.ap-home .ap-categorias-destaque a:focus-visible { outline: 3px solid #A0D040; outline-offset: 5px; }
@media (max-width: 1050px) {
  .ap-categorias-destaque__grade { gap: 16px; }
  .ap-categorias-destaque__media { padding: 24px 18px; }
  .ap-categorias-destaque__conteudo { padding: 0 18px 22px; }
  .ap-home .ap-categorias-destaque__nome { font-size: 22px; }
}
@media (max-width: 850px) {
  .ap-categorias-destaque__grade { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ap-categorias-destaque__cabecalho { align-items: flex-start; flex-direction: column; gap: 24px; }
}
@media (max-width: 544px) {
  .ap-home .ap-categorias-destaque { padding: 40px 0; }
  .ap-home .ap-categorias-destaque__titulo { font-size: 32px; }
  .ap-categorias-destaque__ajuda { width: 100%; }
  .ap-categorias-destaque__grade { gap: 12px; }
  .ap-categorias-destaque__media { padding: 20px 14px; flex-wrap: wrap; align-content: flex-start; min-height: 126px; }
  .ap-categorias-destaque__icone { flex-basis: 60px; width: 60px; height: 60px; border-radius: 16px; }
  .ap-categorias-destaque__icone svg { width: 36px; height: 36px; }
  .ap-categorias-destaque__selo { max-width: none; font-size: 11px; }
  .ap-categorias-destaque__conteudo { padding: 0 14px 18px; }
  .ap-home .ap-categorias-destaque__nome { font-size: 18px; }
  .ap-categorias-destaque__descricao { font-size: 13px; }
  .ap-categorias-destaque__acao { padding: 10px; font-size: 13px; gap: 6px; }
}
@media (max-width: 359px) {
  .ap-categorias-destaque__grade { grid-template-columns: minmax(0, 1fr); }
  .ap-categorias-destaque__media { min-height: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .ap-categorias-destaque__card { transition: none; }
}

/* Transição entre benefícios, categorias e produtos — 0.17.7. */
.ap-home .ap-categorias-destaque {
  margin-top: 48px;
  padding-top: 64px;
  padding-bottom: 72px;
  border-radius: 40px;
  background: linear-gradient(165deg, #0A4C6C 0%, #04405F 55%);
}
.ap-home .ap-categorias-destaque + .ap-produtos-secao {
  border-top: 0;
  background: linear-gradient(180deg, #FFFFFF 0, #F4F8FA 160px);
}
@media (max-width: 850px) {
  .ap-home .ap-categorias-destaque {
    margin-top: 36px;
    border-radius: 28px;
    padding-top: 48px;
    padding-bottom: 56px;
  }
}
@media (max-width: 544px) {
  .ap-home .ap-categorias-destaque {
    margin-top: 28px;
    border-radius: 22px;
    padding-top: 36px;
    padding-bottom: 40px;
  }
  .ap-home .ap-categorias-destaque + .ap-produtos-secao {
    background: linear-gradient(180deg, #FFFFFF 0, #F4F8FA 100px);
  }
}


/* Fotografia e gotículas da home — 0.17.9. */
.ap-home .ap-rotina {
  padding: 72px 0 24px;
  background: #FFFFFF;
}
.ap-rotina__painel {
  display: grid;
  grid-template-columns: .8fr 1.2fr;
  border-radius: 24px;
  overflow: hidden;
  background: #EFF7FA;
}
.ap-rotina__conteudo {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  padding: 36px;
}
.ap-rotina__etiqueta {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 22px;
  color: #0068A0;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .12em;
}
.ap-rotina__etiqueta::before {
  content: '';
  width: 24px;
  height: 3px;
  background: #A0D040;
  flex-shrink: 0;
}
.ap-home .ap-rotina__titulo {
  margin: 0 0 22px;
  color: #04405F;
  font-size: clamp(30px, 3vw, 42px);
  line-height: 1.15;
  letter-spacing: -.035em;
  font-weight: 600;
  max-width: 13ch;
  text-wrap: balance;
}
.ap-rotina__texto {
  margin: 0 0 28px;
  max-width: 36ch;
  font-size: 16px;
  line-height: 1.75;
  color: #5B7280;
}
.ap-rotina__conteudo .ap-btn { gap: 14px; }
.ap-rotina__foto { margin: 0; min-width: 0; display: flex; align-items: center; }
.ap-rotina__foto img {
  display: block;
  width: 100%;
  height: auto;
  min-height: 0;
  object-fit: contain;
}
/* Gotículas fotográficas espalhadas; banner principal fora deste escopo. */
.ap-home .ap-respingos-secao { position: relative; isolation: isolate; overflow: hidden; }
.ap-respingos {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background: url('assets/home/goticulas-v3.jpg') center / cover no-repeat;
  opacity: .46;
  mix-blend-mode: multiply;
  mask-image: linear-gradient(to bottom, transparent, #000 48px, #000 calc(100% - 48px), transparent);
}
.ap-home .ap-respingos-secao > .ap-container { position: relative; z-index: 1; }
.ap-clientes-secao .ap-respingos { transform: scaleX(-1); background-position: center bottom; }
@media (max-width: 950px) {
  .ap-rotina__conteudo { padding: 36px 28px; }
  .ap-rotina__painel { grid-template-columns: 1fr; }
  .ap-rotina__foto { order: -1; }
  .ap-home .ap-rotina__titulo { max-width: 22ch; }
  .ap-rotina__texto { max-width: 58ch; }
  /* Ajusta pela largura: mantém as gotículas laterais dentro da tela. */
  .ap-respingos {
    opacity: .46;
    background-size: 100% auto;
    background-repeat: repeat-y;
    background-position: center top;
  }
}
@media (max-width: 700px) {
  .ap-home .ap-rotina { padding: 48px 0 0; }
  .ap-rotina__painel { grid-template-columns: 1fr; border-radius: 18px; }
  .ap-rotina__foto { order: -1; }
  .ap-rotina__foto img { min-height: 0; height: auto; aspect-ratio: 3 / 2; }
  .ap-rotina__conteudo { padding: 30px 24px 34px; }
  .ap-home .ap-rotina__titulo { max-width: 17ch; font-size: 32px; }
  .ap-rotina__etiqueta { font-size: 11px; margin-bottom: 16px; }

}


/* Rodapé — hierarquia, contato e navegação responsiva — 0.17.11. */
#colophon.ap-rodape { background: #03364F; }
#colophon::before { content: none; }
#colophon .ap-rodape__cta-wrap { padding-top: 48px; }
#colophon .ap-rodape__cta {
  padding: 32px;
  gap: 24px;
  background: #EDF6FA;
  border: 0;
  border-radius: 16px;
  box-shadow: none;
}
#colophon .ap-rodape__cta-icone { color: #0068A0; background: #FFFFFF; border: 1px solid #D0E5EF; border-radius: 16px; }
#colophon .ap-rodape__eyebrow { color: #0068A0; font-size: 12px; letter-spacing: .1em; margin-bottom: 8px; }
#colophon .ap-rodape__cta h2 { color: #04405F; font-size: clamp(24px, 2.5vw, 30px); letter-spacing: -.025em; margin-bottom: 8px; }
#colophon .ap-rodape__cta p { color: #506B7A; font-size: 15px; line-height: 1.6; }
#colophon .ap-rodape__cta-link { background: #A0D040; border-color: #A0D040; color: #14331A; min-height: 50px; padding: 14px 20px; box-shadow: none; }
#colophon .ap-rodape__cta-link:hover { background: #93BF3B; border-color: #93BF3B; color: #14331A; transform: none; }
#colophon .ap-rodape__interno {
  grid-template-columns: 1.35fr .75fr .8fr 1.65fr;
  gap: 32px;
  align-items: start;
  padding-top: 48px;
  padding-bottom: 48px;
}
#colophon .ap-rodape__interno > * { min-width: 0; }
#colophon .ap-rodape__logo { padding: 8px 14px; border-radius: 12px; box-shadow: none; margin-bottom: 20px; }
#colophon .ap-rodape__logo img { width: 144px; height: 90px; object-fit: contain; }
#colophon .ap-rodape__marca-nome { font-size: 18px; margin-bottom: 12px; }
#colophon .ap-rodape__marca p { line-height: 1.8; color: #C1D7E3; }
#colophon .ap-rodape__diferenciais { gap: 10px; margin-top: 22px; }
#colophon .ap-rodape__diferenciais span { font-size: 12px; background: transparent; padding: 0; border: 0; border-radius: 0; color: #DCEABF; }
#colophon .ap-rodape__diferenciais span::before { content: '✓'; margin-right: 6px; color: #A0D040; }
#colophon .ap-rodape__titulo { font-size: 15px; font-weight: 600; text-transform: none; letter-spacing: 0; margin: 4px 0 16px; padding-bottom: 14px; }
#colophon .ap-rodape__titulo::after { width: 24px; background: #A0D040; }
#colophon .ap-rodape__lista li { margin: 0; }
#colophon .ap-rodape__lista a { min-height: 44px; padding: 8px 0; line-height: 1.45; color: #C1D7E3; }
#colophon .ap-rodape__lista a:hover { color: #FFFFFF; transform: none; text-decoration: underline; text-underline-offset: 5px; }
#colophon .ap-rodape__contato { padding: 24px; background: #0A435D; border: 1px solid #285C74; border-radius: 16px; }
#colophon .ap-rodape__contato-lista { gap: 17px; }
#colophon .ap-rodape__contato-lista li { color: #D0E1E9; font-size: 14px; gap: 10px; }
#colophon .ap-rodape__contato-lista li > span:last-child { min-width: 0; overflow-wrap: anywhere; }
#colophon .ap-rodape__contato-lista small { font-size: 11px; letter-spacing: .06em; color: #ACCCDC; margin-bottom: 5px; }
#colophon .ap-rodape__contato-icone { background: transparent; border: 0; color: #A4D8EB; }
#colophon .ap-rodape__fone { font-size: 19px; font-weight: 600; color: #FFFFFF; line-height: 1.4; }
#colophon .ap-rodape__contato a { color: #E4F0F5; }
#colophon .ap-rodape__contato a:hover { color: #FFFFFF; text-decoration: underline; text-underline-offset: 3px; }
#colophon .ap-rodape__redes { padding-top: 20px; margin-top: 20px; border-top: 1px solid #35677E; gap: 8px; }
#colophon .ap-rodape__redes a { min-height: 44px; font-size: 12px; padding: 9px 10px; background: transparent; border-color: #46758B; }
#colophon .ap-rodape__barra { background: #022E44; border-color: #27566D; }
#colophon .ap-rodape__barra-interno { display: flex; flex-direction: column; align-items: stretch; gap: 20px; padding-top: 26px; padding-bottom: 26px; }
#colophon .ap-rodape__pagamento { order: -1; gap: 8px; }
#colophon .ap-rodape__pagamento-rotulo { color: #C1D7E3; font-size: 13px; margin-right: auto; }
#colophon .ap-rodape__legal { padding-top: 18px; border-top: 1px solid #214D64; color: #A6C4D3; font-size: 12px; line-height: 1.7; }
#colophon a:focus-visible { outline: 3px solid #A0D040; outline-offset: 4px; border-radius: 4px; }
@media (max-width: 1050px) {
  #colophon .ap-rodape__interno { gap: 22px; grid-template-columns: 1.2fr .75fr .85fr 1.6fr; }
  #colophon .ap-rodape__contato { padding: 20px; }
}
@media (max-width: 950px) {
  #colophon .ap-rodape__interno { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 28px 24px; }
  #colophon .ap-rodape__marca { grid-column: 1 / 3; grid-row: 1; }
  #colophon .ap-rodape__contato { grid-column: 3 / 5; grid-row: 1 / span 2; }
  #colophon .ap-rodape__interno > .ap-rodape__col:not(.ap-rodape__contato) { grid-row: 2; }
  #colophon .ap-rodape__cta { grid-template-columns: 56px minmax(0, 1fr); }
  #colophon .ap-rodape__cta-link { grid-column: 2; width: fit-content; }
}
@media (max-width: 600px) {
  #colophon .ap-rodape__cta-wrap { padding: 28px 16px 0; }
  #colophon .ap-rodape__cta { padding: 24px; grid-template-columns: minmax(0, 1fr); gap: 18px; }
  #colophon .ap-rodape__cta-icone { width: 44px; height: 44px; }
  #colophon .ap-rodape__cta-link { grid-column: 1; width: 100%; }
  #colophon .ap-rodape__interno { padding: 32px 16px; gap: 28px 20px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #colophon .ap-rodape__marca { grid-column: 1 / -1; grid-row: auto; }
  #colophon .ap-rodape__marca p { max-width: 48ch; }
  #colophon .ap-rodape__interno > .ap-rodape__col:not(.ap-rodape__contato) { grid-column: auto; }
  #colophon .ap-rodape__contato { grid-column: 1 / -1; grid-row: auto; padding: 22px; }
  #colophon .ap-rodape__barra-interno { padding: 24px 16px; }
  #colophon .ap-rodape__pagamento-rotulo { flex-basis: 100%; margin: 0 0 8px; }
  #colophon .ap-rodape__redes a { padding: 9px 12px; }
}
@media (prefers-reduced-motion: reduce) { #colophon a { transition: none; } }


/* Identidade compartilhada das seções da home — 0.17.13. */
.ap-home :is(.ap-produtos__eyebrow, .ap-solucoes__eyebrow,
  .ap-servicos__eyebrow, .ap-clientes__eyebrow, .ap-depoimentos__eyebrow) {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 14px;
  color: #0068A0;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.ap-home :is(.ap-produtos__eyebrow, .ap-solucoes__eyebrow,
  .ap-servicos__eyebrow, .ap-clientes__eyebrow, .ap-depoimentos__eyebrow)::before {
  content: '';
  display: block;
  flex: 0 0 26px;
  width: 26px;
  height: 3px;
  border-radius: 2px;
  background: #A0D040;
}
.ap-home :is(.ap-produtos__titulo, .ap-solucoes__titulo,
  .ap-servicos__titulo, .ap-clientes__titulo, .ap-depoimentos__titulo) {
  margin: 0 0 14px;
  font-size: clamp(28px, 2.5vw, 36px);
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: -.035em;
  color: #04405F;
  text-wrap: balance;
}
.ap-home :is(.ap-produtos__subtitulo, .ap-solucoes__subtitulo,
  .ap-servicos__subtitulo, .ap-clientes__linha, .ap-depoimentos__subtitulo) {
  margin-bottom: 0;
  font-size: 16px;
  line-height: 1.65;
  color: #5B7280;
}
.ap-home :is(.ap-produtos__cabecalho, .ap-solucoes__cabecalho,
  .ap-servicos__cabecalho, .ap-clientes__cabecalho, .ap-depoimentos__cabecalho) {
  margin-bottom: 32px;
}
/* Mesmos cantos e bordas, preservando a função de cada cartão. */
.ap-home :is(.ap-solucao-card, .ap-servico, .ap-depoimento, .ap-cliente),
.ap-home .woocommerce ul.products li.product {
  border-radius: 12px;
}
.ap-home :is(.ap-servico, .ap-depoimento, .ap-cliente),
.ap-home .ap-solucao-card:not(.ap-solucao-card--manutencao),
.ap-home .woocommerce ul.products li.product {
  border-color: #DDE8ED;
}
.ap-home :is(.ap-servico__icone, .ap-solucao-card__icone) { border-radius: 10px; }
@media (max-width: 700px) {
  .ap-home :is(.ap-produtos__cabecalho, .ap-solucoes__cabecalho,
    .ap-servicos__cabecalho, .ap-clientes__cabecalho, .ap-depoimentos__cabecalho) {
    margin-bottom: 24px;
  }
  .ap-home :is(.ap-produtos__titulo, .ap-solucoes__titulo,
    .ap-servicos__titulo, .ap-clientes__titulo, .ap-depoimentos__titulo) { font-size: 28px; }
}


/* Logo no centro real da tela, com laterais de mesma largura — 0.17.14. */
@media (max-width: 921px) {
  .ap-cabecalho .ap-cabecalho__interno {
    display: grid;
    grid-template-columns: 88px minmax(0, 1fr) 88px;
    align-items: center;
    column-gap: 8px;
    row-gap: 12px;
    padding: 8px 16px 0;
  }
  .ap-cabecalho .ap-marca {
    grid-column: 2;
    grid-row: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 0;
    width: 100%;
  }
  .ap-cabecalho .ap-marca :is(.ap-marca__link, .custom-logo-link) {
    display: inline-flex;
    justify-content: center;
    max-width: 100%;
  }
  .ap-cabecalho .ap-marca img,
  .ap-cabecalho .custom-logo-link img {
    display: block;
    width: 109px;
    max-width: 100%;
    height: auto;
    max-height: 68px;
    object-fit: contain;
  }
  .ap-cabecalho .ap-cabecalho__acoes { display: contents; }
  .ap-cabecalho :is(.ap-acao--conta, .ap-acao--carrinho, .ap-menu-botao) {
    grid-row: 1;
    width: 44px;
    height: 44px;
    margin: 0;
    align-self: center;
  }
  .ap-cabecalho .ap-menu-botao { grid-column: 1; justify-self: start; }
  .ap-cabecalho .ap-acao--conta { grid-column: 3; justify-self: start; }
  .ap-cabecalho .ap-acao--carrinho { grid-column: 3; justify-self: end; }
  .ap-cabecalho .ap-busca { grid-column: 1 / -1; grid-row: 2; width: 100%; min-width: 0; }
}

/* Logo do rodapé centralizada no celular — 0.17.15. */
@media (max-width: 600px) {
  #colophon .ap-rodape__logo {
    display: flex;
    width: fit-content;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
    justify-content: center;
  }
}


/* Mais presença da água e contraste no cartão de assistência — 0.17.16. */
.ap-home .ap-respingos {
  opacity: .58;
  background-size: min(100%, 980px) auto;
  background-repeat: repeat;
  background-position: center top;
}
.ap-home .ap-categorias-destaque__card--servicos {
  background: #E7F3F8;
  border-color: #C5DFEB;
  border-top-color: #A0D040;
  color: #16303F;
}
.ap-home .ap-categorias-destaque__card--servicos .ap-categorias-destaque__nome { color: #04405F; }
.ap-home .ap-categorias-destaque__card--servicos .ap-categorias-destaque__descricao { color: #476270; }
.ap-home .ap-categorias-destaque__card--servicos .ap-categorias-destaque__icone {
  background: #FFFFFF;
  border-color: #C5DFEB;
  color: #0068A0;
}
.ap-home .ap-categorias-destaque__card--servicos .ap-categorias-destaque__selo {
  color: #355C18;
}
.ap-home .ap-categorias-destaque__card--servicos .ap-categorias-destaque__acao {
  background: #0068A0;
  border-color: #0068A0;
  color: #FFFFFF;
}
.ap-home .ap-categorias-destaque__card--servicos:hover { border-color: #91C9E1; border-top-color: #A0D040; }
.ap-home .ap-categorias-destaque__card--servicos:hover .ap-categorias-destaque__acao {
  background: #04405F;
  border-color: #04405F;
  color: #FFFFFF;
}
@media (max-width: 950px) {
  .ap-home .ap-respingos { background-size: 100% auto; background-repeat: repeat-y; }
}


/* Água em todo o fundo, com respiro local para a leitura — 0.17.18. */
.ap-home .ap-respingos-secao { --ap-fundo-leitura: #FFFFFF; }
.ap-home .ap-produtos-secao,
.ap-home .ap-depoimentos-secao { --ap-fundo-leitura: var(--fundo-claro); }
.ap-home .ap-servicos-secao { --ap-fundo-leitura: #F7FAFC; }
.ap-home .ap-respingos-secao > .ap-respingos {
  inset: 0;
  opacity: .58;
}
/* A proteção acompanha cada bloco de texto, não a largura da seção. */
.ap-home .ap-respingos-secao header :is(h2, p, [class$="__eyebrow"]) {
  position: relative;
  width: fit-content;
  background: var(--ap-fundo-leitura);
  box-shadow: 0 0 14px 10px var(--ap-fundo-leitura);
  border-radius: 6px;
}
.ap-home .ap-clientes__cabecalho :is(h2, p, [class$="__eyebrow"]) {
  margin-left: auto;
  margin-right: auto;
}
.ap-home .ap-servicos__garantias {
  background: var(--ap-fundo-leitura);
  box-shadow: 0 0 14px 8px var(--ap-fundo-leitura);
}
@media (max-width: 700px) {
  .ap-home .ap-respingos-secao header :is(h2, p, [class$="__eyebrow"]) {
    box-shadow: 0 0 9px 5px var(--ap-fundo-leitura);
  }
}

/* Reflexos e ondulações discretas no azul das categorias — 0.17.19. */
.ap-home .ap-categorias-destaque {
  position: relative;
  isolation: isolate;
  overflow: clip;
  background:
    radial-gradient(ellipse at 100% 0%, #187797 0%, transparent 48%),
    radial-gradient(ellipse at 0% 100%, #0E607C 0%, transparent 42%),
    linear-gradient(165deg, #0A4C6C 0%, #04405F 65%);
}
.ap-home .ap-categorias-destaque > .ap-container {
  position: relative;
  z-index: 1;
}
.ap-home .ap-categorias-destaque::before,
.ap-home .ap-categorias-destaque::after {
  content: '';
  position: absolute;
  z-index: 0;
  pointer-events: none;
  width: 520px;
  height: 380px;
  border: 1px solid rgba(167, 226, 244, .18);
  border-radius: 50%;
  box-shadow:
    0 0 0 24px rgba(167, 226, 244, .045),
    0 0 0 25px rgba(167, 226, 244, .09),
    0 0 0 58px rgba(167, 226, 244, .025),
    0 0 0 59px rgba(167, 226, 244, .065),
    0 0 0 100px rgba(167, 226, 244, .015),
    0 0 0 101px rgba(167, 226, 244, .04);
}
.ap-home .ap-categorias-destaque::before {
  top: -270px;
  right: -160px;
  transform: rotate(-24deg);
}
.ap-home .ap-categorias-destaque::after {
  bottom: -325px;
  left: -240px;
  transform: rotate(18deg);
  opacity: .65;
}
@media (max-width: 700px) {
  .ap-home .ap-categorias-destaque {
    background:
      radial-gradient(ellipse 310px 280px at 100% 0%, #146783 0%, transparent 100%),
      linear-gradient(165deg, #0A4C6C 0%, #04405F 65%);
  }
  .ap-home .ap-categorias-destaque::before {
    top: -300px;
    right: -360px;
    opacity: .65;
  }
  .ap-home .ap-categorias-destaque::after {
    bottom: -340px;
    left: -330px;
    opacity: .45;
  }
}

/* Reflexos e ondulações no rodapé, em harmonia com as categorias — 0.17.20. */
#colophon.ap-rodape {
  position: relative;
  isolation: isolate;
  overflow: clip;
  background:
    radial-gradient(ellipse at 100% 0%, #146783 0%, transparent 48%),
    radial-gradient(ellipse at 0% 100%, #0B526C 0%, transparent 42%),
    linear-gradient(165deg, #06435E 0%, #03364F 65%);
}
#colophon.ap-rodape > div { position: relative; z-index: 1; }
#colophon.ap-rodape::before,
#colophon.ap-rodape::after {
  content: '';
  position: absolute;
  inset: auto;
  z-index: 0;
  pointer-events: none;
  width: 520px;
  height: 380px;
  border: 1px solid rgba(167, 226, 244, .18);
  border-radius: 50%;
  box-shadow:
    0 0 0 24px rgba(167, 226, 244, .045),
    0 0 0 25px rgba(167, 226, 244, .09),
    0 0 0 58px rgba(167, 226, 244, .025),
    0 0 0 59px rgba(167, 226, 244, .065),
    0 0 0 100px rgba(167, 226, 244, .015),
    0 0 0 101px rgba(167, 226, 244, .04);
}
#colophon.ap-rodape::before {
  top: -270px;
  right: -160px;
  transform: rotate(-24deg);
}
#colophon.ap-rodape::after {
  bottom: -110px;
  left: -300px;
  transform: rotate(18deg);
  opacity: .5;
}
@media (max-width: 700px) {
  #colophon.ap-rodape {
    background:
      radial-gradient(ellipse 310px 400px at 100% 0%, #125B76 0%, transparent 100%),
      linear-gradient(165deg, #06435E 0%, #03364F 65%);
  }
  #colophon.ap-rodape::before {
    top: -240px;
    right: -340px;
    opacity: .65;
  }
  #colophon.ap-rodape::after {
    bottom: 140px;
    left: -390px;
    opacity: .4;
  }
}


/* Emendas entre seções — 0.17.21.

   As seções não têm mais linha divisória (saiu o border-top/bottom de
   Produtos, Serviços e Depoimentos). Onde um fundo azul-claro encosta numa
   seção branca, o tom esmaece nas pontas em vez de mudar de uma vez — sem
   quina de cor.

   O esmaecimento precisa terminar antes do brilho da proteção de leitura
   dos títulos e da faixa de garantias dos Serviços, senão aparece uma caixa
   atrás do texto. Medido de 360px a 1440px, o aperto maior é no tablet e no
   celular, onde o espaçamento da seção encolhe; 24px cabe em todas as
   larguras e já basta para o olho não perceber a troca de tom. */
.ap-home { --ap-emenda: 24px; }

.ap-home .ap-categorias-destaque + .ap-produtos-secao {
  background: linear-gradient(180deg, #FFFFFF 0, #F4F8FA 160px,
              #F4F8FA calc(100% - var(--ap-emenda)), #FFFFFF 100%);
}

.ap-home .ap-servicos-secao {
  background: linear-gradient(180deg, #FFFFFF 0, #F7FAFC var(--ap-emenda),
              #F7FAFC calc(100% - var(--ap-emenda)), #FFFFFF 100%);
}

/* A base encosta no rodapé escuro: ali a troca de cor já é natural, só o
   topo esmaece. */
.ap-home .ap-depoimentos-secao {
  background: linear-gradient(180deg, #FFFFFF 0, #F4F8FA var(--ap-emenda));
}

@media (max-width: 544px) {
  .ap-home .ap-categorias-destaque + .ap-produtos-secao {
    background: linear-gradient(180deg, #FFFFFF 0, #F4F8FA 100px,
                #F4F8FA calc(100% - var(--ap-emenda)), #FFFFFF 100%);
  }
}

/* Banner comercial: onze purificadores e três filtros, com destaque para Viváx Defense e Top Life New Oxi. */
.ap-home .ap-hero__media--catalogo::before { display: none; }

.ap-home .ap-hero__mix-catalogo {
  display: block;
  position: absolute;
  inset: auto 0 10px;
  width: 100%;
  height: auto;
  max-width: 100%;
  max-height: calc(100% - 40px);
  object-fit: contain;
  object-position: center bottom;
  z-index: 2;
}

.ap-home .ap-hero__media--catalogo .ap-hero__selo {
  top: 0;
  right: 0;
  left: auto;
  width: 100px;
  height: 100px;
}

@media (max-width: 921px) {
  .ap-home .ap-hero__media--catalogo {
    width: min(100%, 600px);
    height: auto;
    aspect-ratio: 1.35;
    margin-inline: auto;
  }
  .ap-home .ap-hero__media--catalogo .ap-hero__selo {
    width: 82px;
    height: 82px;
  }
}

@media (max-width: 544px) {
  .ap-home .ap-hero__media--catalogo { aspect-ratio: 1.25; }
  .ap-home .ap-hero__media--catalogo .ap-hero__selo {
    width: 68px;
    height: 68px;
  }
  .ap-home .ap-hero__mix-catalogo { bottom: 0; }
}

/* Duas distribuições de bolhas, mantendo a leitura protegida — 0.17.25. */
.ap-home .ap-respingos-secao > .ap-respingos {
  background-image: url('assets/home/goticulas-v3.jpg'), url('assets/home/goticulas-v3.jpg');
  background-size: min(100%, 680px) auto, min(100%, 900px) auto;
  background-repeat: repeat;
  background-blend-mode: multiply;
  background-position:
    var(--ap-bolhas-x, 50%) var(--ap-bolhas-y, 18px),
    calc(var(--ap-bolhas-x, 50%) + 240px) calc(var(--ap-bolhas-y, 18px) + 170px);
  opacity: .60;
}

/* Atenua o centro sem esconder as bolhas entre os cartões. A proteção
   opaca dos títulos e as superfícies dos cartões continuam acima da textura. */
.ap-home .ap-respingos-secao > .ap-respingos::after {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(90deg,
    transparent 0%,
    rgba(255, 255, 255, .12) 18%,
    rgba(255, 255, 255, .30) 38%,
    rgba(255, 255, 255, .30) 62%,
    rgba(255, 255, 255, .12) 82%,
    transparent 100%);
}

.ap-home .ap-solucoes-secao > .ap-respingos {
  --ap-bolhas-x: calc(50% + 110px);
  --ap-bolhas-y: 86px;
}
.ap-home .ap-servicos-secao > .ap-respingos {
  --ap-bolhas-x: calc(50% - 80px);
  --ap-bolhas-y: 150px;
}
.ap-home .ap-clientes-secao > .ap-respingos { --ap-bolhas-y: 64px; }
.ap-home .ap-depoimentos-secao > .ap-respingos {
  --ap-bolhas-x: calc(50% + 64px);
  --ap-bolhas-y: 124px;
}
.ap-home .ap-rotina > .ap-respingos { opacity: .46; }

@media (max-width: 950px) {
  .ap-home .ap-respingos-secao > .ap-respingos {
    background-size: min(76%, 580px) auto, min(100%, 760px) auto;
    opacity: .54;
  }
  .ap-home .ap-rotina > .ap-respingos { opacity: .42; }
}

@media (max-width: 544px) {
  .ap-home .ap-respingos-secao > .ap-respingos {
    background-size: 76% auto, 100% auto;
    opacity: .50;
  }
  .ap-home .ap-rotina > .ap-respingos { opacity: .40; }
}


/* Identidade da home nas páginas internas — 0.17.31. */

/* Um endereço por linha; a quebra preferencial ocorre depois do @. */
#colophon .ap-rodape__contato a.ap-contato-email {
  display: block;
  width: fit-content;
  max-width: 100%;
  margin-top: 7px;
  font-size: 13px;
  line-height: 1.6;
  overflow-wrap: anywhere;
  word-break: normal;
}
.ap-contato-canal .ap-contato-email + .ap-contato-email { margin-top: 8px; }

body.ap-interna #content.site-content {
  position: relative;
  isolation: isolate;
  background: #F4F8FA;
}
body.ap-interna #content.site-content::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  opacity: .42;
  background-image: linear-gradient(90deg, transparent, rgb(244 248 250 / 85%) 30%, rgb(244 248 250 / 85%) 70%, transparent), url('assets/home/goticulas-v3.jpg'), url('assets/home/goticulas-v3.jpg');
  background-size: 100% 100%, 600px auto, 850px auto;
  background-position: center, left top, right 180px;
  background-repeat: no-repeat, repeat, repeat;
  background-blend-mode: normal, multiply, multiply;
}
body.ap-interna #content > .ast-container { position: relative; }
body.ap-interna .ap-interna-topo {
  background: radial-gradient(ellipse at 100% 0%, #187797, transparent 55%), linear-gradient(165deg, #0A4C6C, #04405F 65%);
  border: 1px solid #28637C;
  border-top: 3px solid #A0D040;
  border-radius: 16px;
  box-shadow: 0 12px 32px rgb(4 64 95 / 10%);
}
body.ap-interna .ap-interna-topo__selo { border-radius: 12px; }
body.ap-interna :is(.ap-pagina__etiqueta, .ap-interna-topo__etiqueta) {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: .12em;
}
body.ap-interna :is(.ap-pagina__etiqueta, .ap-interna-topo__etiqueta)::before {
  content: '';
  flex: 0 0 26px;
  width: 26px;
  height: 3px;
  border-radius: 2px;
  background: #A0D040;
}
body.ap-interna :is(.ap-pagina h2, .entry-content h2, .related > h2, .upsells > h2) {
  font-size: clamp(26px, 2.5vw, 36px);
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: -.035em;
  text-wrap: balance;
}
body.ap-interna :is(.ap-pagina__cabecalho, .ap-sobre-intro__texto, .ap-contato-abertura__texto) {
  position: relative;
  border-radius: 12px;
  background: #F4F8FA;
}
body.ap-interna :is(.ap-sobre-pilares, .ap-contato-canais, .ap-contato-direcionamento) .ap-pagina__cabecalho { background: #FFFFFF; }
body.ap-interna :is(.ap-sobre-pilares, .ap-contato-canais, .ap-contato-direcionamento,
  .ap-contato-infos, .ap-pagina__conteudo-editor, .woocommerce-product-gallery,
  .woocommerce-tabs, .cart_totals, .woocommerce-MyAccount-content,
  .woocommerce-MyAccount-navigation, .wc-block-cart__main, .wc-block-cart__sidebar,
  .wc-block-checkout__main, .wc-block-checkout__sidebar) {
  border-color: #DDE8ED;
  border-radius: 12px;
  box-shadow: 0 8px 24px rgb(4 64 95 / 5%);
}
body.ap-interna :is(.ap-sobre-pilar, .ap-contato-canal, .ap-contato-infos__lista > div) {
  border-radius: 12px;
  border-color: #DDE8ED;
  background: #FFFFFF;
}
body.ap-interna :is(.ap-pagina__icone, .ap-interna-topo__selo-icone) { border-radius: 10px; }
body.ap-interna :is(.woocommerce ul.products li.product, .ast-article-post) {
  border: 1px solid #DDE8ED;
  border-radius: 12px;
  background: #FFFFFF;
  box-shadow: 0 8px 24px rgb(4 64 95 / 5%);
}
body.ap-interna .ast-article-post { padding: clamp(20px, 3vw, 36px); margin-bottom: 24px; }
body.ap-interna .woocommerce-MyAccount-navigation li.is-active a {
  background: #EAF4DA;
  color: #14331A;
  box-shadow: inset 3px 0 #A0D040;
}
body.ap-interna #primary :is(input, select, textarea):focus-visible {
  outline: 2px solid #0068A0;
  outline-offset: 2px;
}
body.ap-interna #primary :is(a, button):focus-visible {
  outline: 3px solid #0068A0;
  outline-offset: 4px;
}
body.ap-interna .woocommerce div.product .summary {
  padding: clamp(18px, 2.5vw, 30px);
  box-sizing: border-box;
  background: #FFFFFF;
  border: 1px solid #DDE8ED;
  border-radius: 12px;
}
/* Checkout e carrinho ficam sobre fundo liso para priorizar a leitura. */
body.ap-interna:is(.woocommerce-cart, .woocommerce-checkout) #content.site-content::before { content: none; }
body.ap-interna :is(.wc-block-cart, .wc-block-checkout) { --wp--preset--color--contrast: #04405F; }

.ap-servicos-page__grade { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.ap-servicos-page__card { display: flex; flex-direction: column; align-items: flex-start; gap: 16px; padding: clamp(24px, 3vw, 36px); border: 1px solid #DDE8ED; border-top: 3px solid #A0D040; border-radius: 12px; background: #FFFFFF; }
.ap-servicos-page__card h2 { margin: 0; font-size: 26px; }
.ap-servicos-page__card .ap-btn { margin-top: auto; }
.ap-servicos-page__numero { color: #0068A0; font-size: 13px; font-weight: 600; letter-spacing: .12em; }
.ap-servicos-page__apoio { padding: clamp(24px, 4vw, 44px); background: #E7F3F8; border: 1px solid #C5DFEB; border-radius: 12px; }
.ap-servicos-page__apoio .ap-btn { margin-top: 24px; }
@media (max-width: 700px) {
  body.ap-interna #content.site-content::before { opacity: .28; background-size: 100% 100%, 460px auto, 650px auto; background-position: center, left top, right 120px; }
  body.ap-interna .ap-interna-topo { padding: 26px 22px; border-radius: 12px; }
  body.ap-interna .ap-interna-topo__selo { min-width: 0; }
  .ap-servicos-page__grade { grid-template-columns: minmax(0, 1fr); }
}

/* Política de trocas: leitura confortável, com atalhos e contato visível. */
.ap-politica { max-width: 940px; margin-inline: auto; gap: 24px; }
body:not(.home) #primary.ap-politica { margin-inline: auto; }
.ap-politica__abertura,
.ap-politica__secao,
.ap-politica__contato {
  padding: clamp(24px, 4vw, 44px);
  background: #FFFFFF;
  border: 1px solid #DDE8ED;
  border-radius: 12px;
  scroll-margin-top: 32px;
}
.ap-politica__abertura { border-top: 4px solid var(--verde-limao); }
.ap-politica__abertura .ap-btn { margin-top: 24px; }
.ap-politica__atalhos { display: flex; flex-wrap: wrap; gap: 10px; }
.ap-politica__atalhos a {
  padding: 10px 16px;
  border: 1px solid #C5DFEB;
  border-radius: 24px;
  background: #FFFFFF;
  color: var(--azul-profundo);
  font-size: 14px;
  font-weight: 600;
}
.ap-politica__atalhos a:hover { background: #E7F3F8; }
.ap-politica a:focus-visible,
#colophon .ap-rodape__politicas a:focus-visible { outline: 3px solid #0068A0; outline-offset: 4px; }
.ap-politica__numero { display: block; margin-bottom: 14px; color: #0068A0; font-size: 13px; font-weight: 600; letter-spacing: .12em; }
.ap-politica.ap-pagina h2 { font-size: clamp(23px, 3vw, 32px); }
.ap-politica.ap-pagina p + p { margin-top: 16px; }
.ap-politica.ap-pagina p,
.ap-politica li { color: #344F60; }
.ap-politica strong { color: #16303F; }
.ap-politica__contato { background: #E7F3F8; border-color: #C5DFEB; }
.ap-politica__contato ol { margin: 20px 0; padding-left: 24px; line-height: 1.7; }
.ap-politica__contato li + li { margin-top: 8px; }
.ap-politica__acoes { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 24px; margin: 24px 0; }
.ap-politica__acoes a { overflow-wrap: anywhere; }
.ap-politica__contato a:not(.ap-btn),
.ap-politica__base a { text-decoration: underline; text-underline-offset: 3px; color: #005B8D; }
.ap-politica.ap-pagina .ap-politica__base { font-size: 14px; padding: 0 8px; }
#colophon .ap-rodape__politicas a { color: #FFFFFF; text-decoration: underline; text-underline-offset: 4px; font-size: 14px; }
#colophon .ap-rodape__politicas a:hover { color: #BEE589; }
@media (max-width: 600px) {
  .ap-politica__acoes { flex-direction: column; align-items: stretch; }
  .ap-politica__acoes .ap-btn { width: 100%; text-align: center; }
  .ap-politica__atalhos a { padding: 10px 13px; font-size: 13px; }
}

/* Crédito ATZE integrado à última linha do rodapé. */
#colophon .ap-rodape__fecho {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding-top: 18px;
  border-top: 1px solid #214D64;
}
#colophon .ap-rodape__fecho .ap-rodape__legal {
  flex: 1;
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}
#colophon .ap-rodape__credito {
  display: inline-flex;
  flex-shrink: 0;
  align-items: center;
  gap: 10px;
  color: #B9D0DE;
  font-size: 12px;
  line-height: 1.5;
  white-space: nowrap;
}
#colophon .ap-rodape__credito a {
  display: inline-flex;
  align-items: center;
  min-height: 36px;
  padding: 4px 0;
  border-radius: 3px;
}
.ap-rodape__credito img {
  display: block;
  width: 94px;
  height: auto;
  opacity: .9;
  transition: opacity 160ms ease;
}
.ap-rodape__credito a:hover img { opacity: 1; }
#colophon .ap-rodape__credito a:focus-visible { outline: 2px solid #FFFFFF; outline-offset: 5px; }
@media (max-width: 600px) {
  #colophon .ap-rodape__fecho { flex-direction: column; gap: 10px; text-align: center; }
}


/* Página de produto — galeria, resumo e seleção visual de cor. */
body.single-product.ap-interna .ap-interna-topo {
  min-height: 0;
  padding: 20px 28px;
  gap: 24px;
  margin-bottom: 24px;
}
body.single-product .ap-interna-topo__etiqueta { font-size: 10px; margin-bottom: 6px; }
body.single-product .ap-interna-topo__titulo { font-size: 22px; margin: 0; letter-spacing: -.02em; }
body.single-product .ap-interna-topo__texto { margin: 6px 0 0; font-size: 13px; max-width: 620px; }
body.single-product .ap-interna-topo__selo { padding: 12px 16px; }
body.single-product #primary { margin-top: 0; }
body.single-product div.product.type-product { gap: 32px; }
body.single-product div.product .summary {
  padding: 28px;
  background: #fff;
  border: 1px solid var(--borda);
  border-radius: 18px;
  box-shadow: 0 10px 32px rgba(4,64,95,.04);
}
body.single-product div.product .product_title { font-size: clamp(26px, 2.6vw, 34px); line-height: 1.2; margin-top: 12px; }
body.single-product .summary .woocommerce-breadcrumb { font-size: 12px; line-height: 1.6; margin-bottom: 14px; }
body.single-product .summary > .single-product-category { font-size: 12px; font-weight: 600; letter-spacing: .03em; }
body.single-product div.product .summary > .price { margin-top: 20px; }
body.single-product .summary > .price .ap-produto-pix {
  display: block;
  width: fit-content;
  margin-top: 10px;
  padding: 8px 12px;
  background: #eff7e4;
  border: 1px solid #dbeac5;
  border-radius: 8px;
  color: #385922;
  font-size: 15px;
  line-height: 1.5;
}
body.single-product .woocommerce-product-details__short-description { font-size: 14px; line-height: 1.75; }
body.single-product div.product form.cart { padding: 20px; margin-bottom: 20px; background: #f5f9fb; }
body.single-product div.product form.cart .variations th { width: auto; display: block; padding: 0 0 8px; font-size: 14px; }
body.single-product div.product form.cart .variations td { display: block; padding: 0 0 14px; }
body.single-product .ap-cor-seletor [hidden] { display: none !important; }
body.single-product .ap-cor-opcoes { display: flex; flex-wrap: wrap; align-items: start; gap: 12px; }
body.single-product .ap-cor-opcao {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  min-width: 64px;
  padding: 7px 8px;
  margin: 0;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: var(--texto-secundario);
  font: inherit;
  font-size: 12px;
  line-height: 1.4;
  box-shadow: none;
  cursor: pointer;
}
body.single-product .ap-cor-opcao__circulo {
  position: relative;
  display: block;
  width: 38px;
  height: 38px;
  border: 1px solid #b9c7ce;
  border-radius: 50%;
  background: var(--ap-cor);
  box-shadow: 0 2px 4px rgba(4,64,95,.08);
}
body.single-product .ap-cor-opcao__circulo.ap-card-cor--metalica { background: linear-gradient(135deg,#e5e9ed,var(--ap-cor),#e5e9ed); }
body.single-product .ap-cor-opcao[aria-pressed="true"] { color: var(--azul-profundo); font-weight: 600; }
body.single-product .ap-cor-opcao[aria-pressed="true"] .ap-cor-opcao__circulo {
  outline: 2px solid var(--azul-agua-pura);
  outline-offset: 4px;
}
body.single-product .ap-cor-opcao:hover:not(:disabled) { background: #e8f1f6; color: var(--azul-profundo); }
body.single-product .ap-cor-opcao:focus-visible { outline: 2px solid var(--azul-agua-pura); outline-offset: 3px; }
body.single-product .ap-cor-opcao:disabled { opacity: .45; cursor: not-allowed; }
body.single-product .ap-cor-opcao:disabled .ap-cor-opcao__circulo::after {
  content: "";
  position: absolute;
  top: 50%;
  left: -3px;
  right: -3px;
  height: 2px;
  background: #7d8a91;
  transform: rotate(-45deg);
}
body.single-product div.product form.cart .single_add_to_cart_button { border-radius: 9px; font-size: 14px; }
body.single-product div.product form.cart .single_add_to_cart_button.disabled { background: #e0e8ed; color: #526976; opacity: 1; box-shadow: none; }
body.single-product .product_meta { font-size: 12px; }
body.single-product .flex-control-thumbs { grid-template-columns: repeat(auto-fit,minmax(56px,1fr)); }
body.single-product .flex-control-thumbs li img { height: 72px; object-fit: contain; opacity: .65; }
body.single-product .flex-control-thumbs li img.flex-active { opacity: 1; outline: 2px solid var(--azul-agua-pura); outline-offset: 2px; }
@media (max-width: 767px) {
  body.single-product.ap-interna .ap-interna-topo { padding: 16px 18px; gap: 14px; }
  body.single-product .ap-interna-topo__titulo { font-size: 19px; }
  body.single-product .ap-interna-topo__texto { display: none; }
  body.single-product .ap-interna-topo__selo { display: none; }
  body.single-product div.product.type-product { gap: 20px; }
  body.single-product div.product .summary { padding: 20px 18px; }
  body.single-product div.product .product_title { font-size: 25px; }
  body.single-product div.product form.cart { padding: 16px; }
  body.single-product .woocommerce-variation-add-to-cart .quantity { flex: 0 0 64px; }
  body.single-product .woocommerce-variation-add-to-cart .quantity .qty { width: 64px; }
  body.single-product .woocommerce-variation-add-to-cart .single_add_to_cart_button { min-width: 0; }
}


/* Navegação da galeria com mouse e setas nativas. */
body.single-product .woocommerce-product-gallery .flex-viewport { cursor: grab; }
body.single-product .woocommerce-product-gallery.ap-galeria-arrastando .flex-viewport { cursor: grabbing; }
body.single-product .woocommerce-product-gallery .flex-viewport img { user-select: none; -webkit-user-drag: none; }
body.single-product .woocommerce-product-gallery .flex-direction-nav {
  list-style: none;
  margin: 0;
  padding: 0;
}
body.single-product .woocommerce-product-gallery .flex-direction-nav li { list-style: none; }
body.single-product .woocommerce-product-gallery .flex-direction-nav a {
  position: absolute;
  top: 45%;
  z-index: 5;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border: 1px solid var(--borda);
  border-radius: 50%;
  background: #fff;
  color: var(--azul-profundo);
  box-shadow: 0 3px 12px rgba(4,64,95,.1);
  font-size: 0;
  text-decoration: none;
  opacity: 1;
}
body.single-product .woocommerce-product-gallery .flex-direction-nav .flex-prev { left: 12px; }
body.single-product .woocommerce-product-gallery .flex-direction-nav .flex-next { right: 12px; }
body.single-product .woocommerce-product-gallery .flex-direction-nav .flex-prev::before { content: '‹'; font: 30px/1 Arial,sans-serif; }
body.single-product .woocommerce-product-gallery .flex-direction-nav .flex-next::before { content: '›'; font: 30px/1 Arial,sans-serif; }
body.single-product .woocommerce-product-gallery .flex-direction-nav a:hover { background: #edf5f9; }
body.single-product .woocommerce-product-gallery .flex-direction-nav a:focus-visible { outline: 2px solid var(--azul-agua-pura); outline-offset: 3px; }
body.single-product .woocommerce-product-gallery .flex-direction-nav a.flex-disabled { opacity: .3; pointer-events: none; }
