/* Estilo global compartilhado por todas as páginas (carregado via carregar_estilos_dinamicos()). */

:root {
	--primary: #254453;
	--branco: #f6f6f6;
	--cinza: #595451;
	--cinza-claro: #F6F6F6;
	--verde: #2D6E78;
}

/* Envolvido em @layer base pelo mesmo motivo do style.css raiz: sem isso,
   um h2 com classe de cor do Tailwind (ex: text-white) nunca venceria
   este bare-tag selector, que fica fora de qualquer @layer. */
@layer base {
	h2 {
		color: var(--verde);
	}
}

iframe {
	width: 100%;
}

input {
	border-radius: 0;
	border: 1px solid white;
	padding: 12px;
}

/* Menu mobile do header (template-parts do header.php + assets/js/app.js).
   Fica sempre no DOM (para permitir a transição) e é animado via classe
   .is-open aplicada por JS, em vez de alternar display. */
.menu-mobile {
	visibility: hidden;
	opacity: 0;
	transform: translateX(100%);
	transition: transform 0.35s ease, opacity 0.35s ease, visibility 0.35s ease;
}

.menu-mobile.is-open {
	visibility: visible;
	opacity: 1;
	transform: translateX(0);
}

/* Trava o scroll da página com o menu mobile aberto. */
body.menu-open {
	overflow: hidden;
}

.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	width: 100%;
	padding: 12px 24px;
	font-size: 16px;
	font-weight: 600;
	color: var(--verde);
	border-radius: 8px;
	background-color: #fff;
	transition: opacity 0.3s ease-in-out;
	text-align: center ;
	&:hover {
		opacity: 0.8;
		color: #225158;
	}
	&.transparent {
		background-color: transparent;
		border: 1px solid #FBFAF8;
		color: #FFF;
		transition: opacity 0.3s ease-in-out;
		&:hover {
			opacity: 0.8;
		}
	}
	&.cta-black {
		color: var(--primary);
		&::before {
			content: "";
			flex-shrink: 0;
			width: 25px;
			height: 25px;
			background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjUiIGhlaWdodD0iMjUiIHZpZXdCb3g9IjAgMCAyNSAyNSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTcuOTA1NzYgMTYuNDM0M0wxNS40OTkzIDExLjM2OThMMTQuMzM3NyAxNy4xODRMMTUuODEwNCAxNy40NzI4TDE3LjQ3MjkgOS4xNTE5OUw5LjE1MjA2IDcuNDg5NTNMOC44NTkwNSA4Ljk1NjA4TDE0LjY2NyAxMC4xMjE5TDcuMDczNDYgMTUuMTg2NEw3LjkwNTc2IDE2LjQzNDNaIiBmaWxsPSIjMjU0NDUzIi8+Cjwvc3ZnPgo=");
			background-repeat: no-repeat;
			background-size: 25px 25px;
		}
	}
	&.cta-verde {
		&::before {
			content: "";
			flex-shrink: 0;
			width: 25px;
			height: 25px;
			background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjUiIGhlaWdodD0iMjUiIHZpZXdCb3g9IjAgMCAyNSAyNSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTcuOTA1NzYgMTYuNDM0NEwxNS40OTkzIDExLjM2OTlMMTQuMzM3NyAxNy4xODRMMTUuODEwNCAxNy40NzI5TDE3LjQ3MjkgOS4xNTIwNUw5LjE1MjA2IDcuNDg5NTlMOC44NTkwNSA4Ljk1NjE0TDE0LjY2NyAxMC4xMjE5TDcuMDczNDYgMTUuMTg2NUw3LjkwNTc2IDE2LjQzNDRaIiBmaWxsPSIjMkQ2RTc4Ii8+Cjwvc3ZnPgo=");
			background-repeat: no-repeat;
			background-size: 25px 25px;
		}
	}
	&.cta-white {
		color: #fff;
		background-color: #2D6E78;
		&::before {
			content: "";
			flex-shrink: 0;
			width: 25px;
			height: 25px;
			background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjUiIGhlaWdodD0iMjUiIHZpZXdCb3g9IjAgMCAyNSAyNSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTcuOTA1NzYgMTYuNDM0M0wxNS40OTkzIDExLjM2OThMMTQuMzM3NyAxNy4xODRMMTUuODEwNCAxNy40NzI4TDE3LjQ3MjkgOS4xNTE5OUw5LjE1MjA2IDcuNDg5NTNMOC44NTkwNSA4Ljk1NjA4TDE0LjY2NyAxMC4xMjE5TDcuMDczNDYgMTUuMTg2NEw3LjkwNTc2IDE2LjQzNDNaIiBmaWxsPSIjRkZGRkZGIi8+Cjwvc3ZnPgo=");
			background-repeat: no-repeat;
			background-size: 25px 25px;
		}
		&:hover {
			opacity: 0.8;
			color: #fff;
		}
	}
	@media (min-width: 992px) {
		width: fit-content;
	}
}

/* Ícones de redes sociais (social-links.php), reutilizados no header e no footer.
   Os SVGs em assets/img/ já têm fill="white" — servem direto no variant
   "outline" (fundo escuro: header, footer). O variant "solid" preenche o
   círculo com a cor primária, para usar sobre fundo claro (menu mobile). */
.social-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.5rem;
	height: 2.5rem;
	flex-shrink: 0;
	border-radius: 9999px;
	border: 1px solid rgba(255, 255, 255, 0.4);
	transition: background-color 0.2s ease, border-color 0.2s ease;
}

.social-icon:hover {
	background-color: rgba(255, 255, 255, 0.12);
	border-color: rgba(255, 255, 255, 0.8);
}

.social-icon--solid {
	border-color: transparent;
	background-color: var(--primary);
}

.social-icon--solid:hover {
	background-color: color-mix(in srgb, var(--primary) 85%, black);
}

.footer-cert-badge {
	height: 2.75rem;
	width: auto;
	object-fit: contain;
}

/* Paginação (bullets) do Swiper — padrão global para todos os sliders do tema.
   Sobrescreve assets/libs/swiper/swiper-bundle.min.css, que enfileira antes deste arquivo. */
.swiper-pagination {
	position: relative;
	margin-top: 32px;
}

.swiper-pagination-bullet {
	width: 20px;
	height: 6px;
	border-radius: 80px;
	background: #D9D9D9;
	opacity: 1;
}

.swiper-pagination-bullet-active {
	background: #2D6E78;
}

/* Setas de navegação (prev/next) do Swiper — padrão global para todos os sliders do tema.
   Posicionadas a partir do .container (ou de um wrapper com a mesma largura dele):
   left/right: 0 encosta na borda do container, e o translateX empurra 24px para fora. */
.swiper-nav {
	position: absolute;
	top: 50%;
	z-index: 10;
	display: none;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	border-radius: 9999px;
	background-color: #fff;
	background-repeat: no-repeat;
	background-position: center;
	border: 1px solid var(--primary);
	cursor: pointer;
}

@media (min-width: 992px) {
	.swiper-nav {
		display: flex;
	}
}

.swiper-nav-prev {
	left: 0;
	transform: translateY(-50%) translateX(calc(-100% - 8px));
	background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTkiIGhlaWdodD0iMTMiIHZpZXdCb3g9IjAgMCAxOSAxMyIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTYuMzQ4NjMgMC41QzYuNTE5MTcgMC41MDE4MzQgNi42ODI0NiAwLjU3MTQ3OSA2LjgwMTc2IDAuNjkzMzU5QzYuOTIwODggMC44MTUyMTcgNi45ODYyIDAuOTc5OTc2IDYuOTg0MzggMS4xNTAzOUM2Ljk4MjQ0IDEuMzIwNjUgNi45MTM2IDEuNDgzMzYgNi43OTE5OSAxLjYwMjU0TDMuNzEyODkgNC42MTMyOEwyLjg3NSA0LjYwNDQ5QzIuNDM5NCA0LjU5OTc0IDIuMDE5NDMgNC43Njg2MyAxLjcwODAxIDUuMDczMjRDMS4zOTY2OCA1LjM3Nzg5IDEuMjE4NjkgNS43OTM5MyAxLjIxMzg3IDYuMjI5NDlDMS4yMDkwOSA2LjY2NTExIDEuMzc3OTkgNy4wODUwNCAxLjY4MjYyIDcuMzk2NDhDMS45ODcyNyA3LjcwNzg5IDIuNDAzMjUgNy44ODU4IDIuODM4ODcgNy44OTA2MkwzLjY3NTc4IDcuODk5NDFMNi42ODk0NSAxMC45Nzg1QzYuODA4NTcgMTEuMTAwNSA2Ljg3NDAyIDExLjI2NTEgNi44NzIwNyAxMS40MzU1QzYuODcwMTIgMTEuNjA2IDYuODAwNTIgMTEuNzY4NSA2LjY3ODcxIDExLjg4NzdDNi41NTY3NCAxMi4wMDY5IDYuMzkyMjMgMTIuMDczMiA2LjIyMTY4IDEyLjA3MTNDNi4wNTEyOSAxMi4wNjkzIDUuODg4NzEgMTEuOTk5NyA1Ljc2OTUzIDExLjg3NzlMMC42ODM1OTQgNi42Nzc3M0MwLjU2NDQzOSA2LjU1NTkyIDAuNDk4MTkyIDYuMzkyMDcgMC41IDYuMjIxNjhDMC41MDE3NDggNi4wNTE1NiAwLjU3MDA4OSA1Ljg4NzggMC42OTE0MDYgNS43Njg1NUwwLjY5MjM4MyA1Ljc2OTUzTDUuODkxNiAwLjY4MzU5NEM2LjAxMzQ5IDAuNTY0Mjg5IDYuMTc4MDkgMC40OTgxNzMgNi4zNDg2MyAwLjVaTTE3LjE0OTQgNS43NjI3QzE3LjMxOTggNS43NjQ2OCAxNy40ODI0IDUuODM0MjYgMTcuNjAxNiA1Ljk1NjA1QzE3LjcyMDcgNi4wNzc5MyAxNy43ODcgNi4yNDI2MyAxNy43ODUyIDYuNDEzMDlDMTcuNzgzMiA2LjU4MzM1IDE3LjcxMzUgNi43NDYxMyAxNy41OTE4IDYuODY1MjNDMTcuNDY5OSA2Ljk4NDQ1IDE3LjMwNTMgNy4wNTA3MSAxNy4xMzQ4IDcuMDQ4ODNMNC4xMDE1NiA2LjkwNDNMMy40NjU4MiA2LjI1MzkxTDQuMTE2MjEgNS42MTgxNkwxNy4xNDk0IDUuNzYyN1pNMi40MDEzNyA2LjU5NjY4TDIuNjUyMzQgNi44NTM1MkMyLjU1NzI3IDYuODIxNCAyLjQ2ODk2IDYuNzcwMzMgMi4zOTc0NiA2LjY5NzI3QzIuMzI1NjIgNi42MjM4MSAyLjI3NjA1IDYuNTMzODIgMi4yNDYwOSA2LjQzNzVMMi40MDEzNyA2LjU5NjY4Wk0yLjQwOTE4IDUuODg5NjVMMi4yNDkwMiA2LjA0NDkyQzIuMjgxMDEgNS45NDg5MSAyLjMzMzU4IDUuODYwMiAyLjQwNzIzIDUuNzg4MDlDMi40ODA3MiA1LjcxNjIgMi41NzA2MiA1LjY2NTY5IDIuNjY2OTkgNS42MzU3NEwyLjQwOTE4IDUuODg5NjVaIiBmaWxsPSIjMkQ2RTc4IiBzdHJva2U9IiMyRDZFNzgiLz4KPC9zdmc+Cg==");
}

.swiper-nav-next {
	right: 0;
	transform: translateY(-50%) translateX(calc(100% + 8px));
	background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTkiIGhlaWdodD0iMTMiIHZpZXdCb3g9IjAgMCAxOSAxMyIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTksMCkgc2NhbGUoLTEsMSkiPgo8cGF0aCBkPSJNNi4zNDg2MyAwLjVDNi41MTkxNyAwLjUwMTgzNCA2LjY4MjQ2IDAuNTcxNDc5IDYuODAxNzYgMC42OTMzNTlDNi45MjA4OCAwLjgxNTIxNyA2Ljk4NjIgMC45Nzk5NzYgNi45ODQzOCAxLjE1MDM5QzYuOTgyNDQgMS4zMjA2NSA2LjkxMzYgMS40ODMzNiA2Ljc5MTk5IDEuNjAyNTRMMy43MTI4OSA0LjYxMzI4TDIuODc1IDQuNjA0NDlDMi40Mzk0IDQuNTk5NzQgMi4wMTk0MyA0Ljc2ODYzIDEuNzA4MDEgNS4wNzMyNEMxLjM5NjY4IDUuMzc3ODkgMS4yMTg2OSA1Ljc5MzkzIDEuMjEzODcgNi4yMjk0OUMxLjIwOTA5IDYuNjY1MTEgMS4zNzc5OSA3LjA4NTA0IDEuNjgyNjIgNy4zOTY0OEMxLjk4NzI3IDcuNzA3ODkgMi40MDMyNSA3Ljg4NTggMi44Mzg4NyA3Ljg5MDYyTDMuNjc1NzggNy44OTk0MUw2LjY4OTQ1IDEwLjk3ODVDNi44MDg1NyAxMS4xMDA1IDYuODc0MDIgMTEuMjY1MSA2Ljg3MjA3IDExLjQzNTVDNi44NzAxMiAxMS42MDYgNi44MDA1MiAxMS43Njg1IDYuNjc4NzEgMTEuODg3N0M2LjU1Njc0IDEyLjAwNjkgNi4zOTIyMyAxMi4wNzMyIDYuMjIxNjggMTIuMDcxM0M2LjA1MTI5IDEyLjA2OTMgNS44ODg3MSAxMS45OTk3IDUuNzY5NTMgMTEuODc3OUwwLjY4MzU5NCA2LjY3NzczQzAuNTY0NDM5IDYuNTU1OTIgMC40OTgxOTIgNi4zOTIwNyAwLjUgNi4yMjE2OEMwLjUwMTc0OCA2LjA1MTU2IDAuNTcwMDg5IDUuODg3OCAwLjY5MTQwNiA1Ljc2ODU1TDAuNjkyMzgzIDUuNzY5NTNMNS44OTE2IDAuNjgzNTk0QzYuMDEzNDkgMC41NjQyODkgNi4xNzgwOSAwLjQ5ODE3MyA2LjM0ODYzIDAuNVpNMTcuMTQ5NCA1Ljc2MjdDMTcuMzE5OCA1Ljc2NDY4IDE3LjQ4MjQgNS44MzQyNiAxNy42MDE2IDUuOTU2MDVDMTcuNzIwNyA2LjA3NzkzIDE3Ljc4NyA2LjI0MjYzIDE3Ljc4NTIgNi40MTMwOUMxNy43ODMyIDYuNTgzMzUgMTcuNzEzNSA2Ljc0NjEzIDE3LjU5MTggNi44NjUyM0MxNy40Njk5IDYuOTg0NDUgMTcuMzA1MyA3LjA1MDcxIDE3LjEzNDggNy4wNDg4M0w0LjEwMTU2IDYuOTA0M0wzLjQ2NTgyIDYuMjUzOTFMNC4xMTYyMSA1LjYxODE2TDE3LjE0OTQgNS43NjI3Wk0yLjQwMTM3IDYuNTk2NjhMMi42NTIzNCA2Ljg1MzUyQzIuNTU3MjcgNi44MjE0IDIuNDY4OTYgNi43NzAzMyAyLjM5NzQ2IDYuNjk3MjdDMi4zMjU2MiA2LjYyMzgxIDIuMjc2MDUgNi41MzM4MiAyLjI0NjA5IDYuNDM3NUwyLjQwMTM3IDYuNTk2NjhaTTIuNDA5MTggNS44ODk2NUwyLjI0OTAyIDYuMDQ0OTJDMi4yODEwMSA1Ljk0ODkxIDIuMzMzNTggNS44NjAyIDIuNDA3MjMgNS43ODgwOUMyLjQ4MDcyIDUuNzE2MiAyLjU3MDYyIDUuNjY1NjkgMi42NjY5OSA1LjYzNTc0TDIuNDA5MTggNS44ODk2NVoiIGZpbGw9IiMyRDZFNzgiIHN0cm9rZT0iIzJENkU3OCIvPgo8L2c+Cjwvc3ZnPgo=");
}