/*
Theme Name: Abazze Técnica
Theme URI: https://abazzetecnica.com.br
Description: Tema do site da Abazze Técnica. Tema filho do Twenty Twenty-Five. Cores e tipografia da marca definidos em theme.json. Manutenção: ver o manual de operação do site.
Author: Abazze Tecnica
Template: twentytwentyfive
Version: 3.0.2
Requires at least: 6.7
Tested up to: 7.1
Requires PHP: 7.4
Text Domain: abazze
*/

/* ---------------------------------------------------------
   Abazze — ajustes pontuais
   Mantenha este arquivo curto. Cada regra com o motivo.
   --------------------------------------------------------- */

/* Slot de foto ainda nao preenchido: mostra um marcador visivel
   em vez de imagem quebrada, para ninguem publicar sem foto. */
.abazze-slot-foto img:not([src]),
.abazze-slot-foto img[src=""] {
	display: block;
	width: 100%;
	min-height: 420px;
	background: #F5E9D7;
	border: 2px dashed #C7A97E;
	border-radius: 24px;
}
/* Reforco: alguns navegadores nao dao caixa a uma imagem sem endereco.
   Neste caso o proprio quadro recebe o marcador tracejado. */
.abazze-slot-foto:not(:has(img)) ,
.abazze-slot-foto:not(:has(img[src])) {
	display: block;
	min-height: 420px;
	background: #F5E9D7;
	border: 2px dashed #C7A97E;
	border-radius: 24px;
	padding: 1rem;
}
.abazze-slot-foto figcaption {
	font-size: 0.875rem;
	color: #8B6F47;
	text-align: center;
}

/* Area de toque minima de 56px em botao no celular.
   Motivo: publico acessa em celular, muitas vezes com pressa. */
@media (max-width: 781px) {
	.wp-element-button,
	.wp-block-button__link {
		min-height: 56px;
		display: flex;
		align-items: center;
		justify-content: center;
		width: 100%;
	}
}

/* Botao flutuante de WhatsApp. */
.abazze-whats-flutuante {
	position: fixed;
	right: 20px;
	bottom: 20px;
	z-index: 999;
	width: 64px;
	height: 64px;
	border-radius: 50%;
	background: #22A45D;
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 8px 24px rgba(34,164,93,.45);
}
.abazze-whats-flutuante svg { width: 32px; height: 32px; }

/* Slot de video ainda nao preenchido. */
.abazze-slot-video:not(:has(video)) {
	min-height: 320px;
	background: #1B3253;
	border: 2px dashed #46618A;
	border-radius: 16px;
	display: flex;
	align-items: flex-end;
	justify-content: center;
	padding-bottom: 1rem;
}
.abazze-slot-video figcaption { color: #8FA6C4; font-size: 0.875rem; text-align: center; }

/* Cabecalho do site. Impresso por inc/cabecalho.php.
   Motivo: as partes de template nao carregavam neste site. */
.abazze-cabecalho {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem;
	padding: 1rem clamp(1.25rem, 4vw, 3rem);
	background: #FFFFFF;
	border-bottom: 2px solid var(--wp--preset--color--borda, #DCE5EF);
}
.abazze-cabecalho__logo img {
	display: block;
	width: 210px;
	height: auto;
}
.abazze-cabecalho__menu ul {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 1.5rem;
	margin: 0;
	padding: 0;
	list-style: none;
}
.abazze-cabecalho__menu a {
	font-family: var(--wp--preset--font-family--corpo, inherit);
	font-size: 1.0625rem;
	font-weight: 600;
	color: var(--wp--preset--color--texto, #17273D);
	text-decoration: none;
}
.abazze-cabecalho__menu a:hover,
.abazze-cabecalho__menu a:focus {
	color: var(--wp--preset--color--azul, #0054A6);
	text-decoration: underline;
}
.abazze-cabecalho__zap {
	display: inline-block;
	padding: 0.9rem 1.5rem;
	background: var(--wp--preset--color--whatsapp, #22A45D);
	color: #FFFFFF;
	font-size: 1.0625rem;
	font-weight: 600;
	border-radius: 10px;
	text-decoration: none;
}
.abazze-cabecalho__zap:hover,
.abazze-cabecalho__zap:focus {
	background: #1B8B4E;
	color: #FFFFFF;
}
/* A linha do logotipo com o botao de menu. No computador ela some como
   estrutura: o logotipo volta a ser um item do cabecalho em linha. */
.abazze-cabecalho__topo {
	display: contents;
}
.abazze-cabecalho__botao { display: none; }

/* CELULAR: logotipo e botao "Menu" em uma linha so; o menu abre por toque.
   O botao verde do WhatsApp sai do topo, porque o botao flutuante do canto
   inferior ja cumpre esse papel e ocupava meia tela aqui. */
@media (max-width: 781px) {
	.abazze-cabecalho {
		flex-wrap: wrap;
		gap: 0;
		padding: 0.65rem 1.1rem;
	}
	.abazze-cabecalho__topo {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 1rem;
		width: 100%;
	}
	.abazze-cabecalho__logo img { width: 150px; }
	.abazze-cabecalho__botao {
		display: inline-flex;
		align-items: center;
		gap: 0.5rem;
		padding: 0.55rem 0.9rem;
		border: 2px solid var(--wp--preset--color--borda, #DCE5EF);
		border-radius: 10px;
		background: #fff;
		color: var(--wp--preset--color--texto, #17273D);
		font-family: var(--wp--preset--font-family--corpo, inherit);
		font-size: 1rem;
		font-weight: 700;
		cursor: pointer;
	}
	.abazze-cabecalho__tracos,
	.abazze-cabecalho__tracos::before,
	.abazze-cabecalho__tracos::after {
		display: block;
		width: 20px;
		height: 2px;
		background: currentColor;
		border-radius: 2px;
	}
	.abazze-cabecalho__tracos {
		position: relative;
	}
	.abazze-cabecalho__tracos::before,
	.abazze-cabecalho__tracos::after {
		content: "";
		position: absolute;
		left: 0;
	}
	.abazze-cabecalho__tracos::before { top: -6px; }
	.abazze-cabecalho__tracos::after  { top: 6px; }

	.abazze-cabecalho__menu {
		display: none;
		width: 100%;
	}
	.abazze-cabecalho__menu.esta-aberto {
		display: block;
	}
	.abazze-cabecalho__menu ul {
		flex-direction: column;
		align-items: stretch;
		gap: 0;
		padding: 0.4rem 0 0.2rem;
	}
	.abazze-cabecalho__menu li + li {
		border-top: 1px solid var(--wp--preset--color--borda, #DCE5EF);
	}
	.abazze-cabecalho__menu a {
		display: block;
		padding: 0.85rem 0.2rem;
		font-size: 1.0625rem;
	}
	.abazze-cabecalho__zap { display: none; }
}


/* Selo do topo: acompanha a largura do texto, em vez de ocupar a linha toda. */
.abazze-selo {
	display: inline-block;
	background: #E8F1E9;
	color: #1E6B3E;
	border-radius: 999px;
	padding: 0.6rem 1rem;
}
/* Texto de instrucao dentro de um espaco de foto ainda vazio. */
.abazze-slot-foto > p {
	margin: 0;
	padding: 2rem 1rem;
	font-size: 0.9375rem;
	color: #8B6F47;
}

/* Fotos dos ambientes na secao "Estrutura da escola".
   As fotos sao verticais e mostram muito piso; o recorte 4:3 com foco na parte
   superior aproveita o que interessa (equipamentos, bancadas) e iguala a altura
   das duas colunas. Ao trocar por fotos horizontais, este recorte continua valido. */
.abazze-estrutura .wp-block-image img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	object-position: center 30%;
}
@media (max-width: 781px) {
	.abazze-estrutura .wp-block-image img {
		aspect-ratio: 3 / 2;
	}
}

/* ============================================================
   SUAVIZACAO VISUAL — set/2026
   Motivo: a equipe avaliou o site como "duro". As bordas de 2px em
   volta de cada cartao criavam uma grade rigida. Aqui elas dao lugar
   a fundo claro com sombra leve, e o espacamento entre linhas aumenta.
   PARA VOLTAR AO VISUAL ANTERIOR: apague este bloco inteiro.
   ============================================================ */

/* Cartoes: fundo suave e sombra leve, sem borda dura. */
.wp-block-group.has-border-color.has-branco-background-color {
	border-color: transparent !important;
	border-width: 0 !important;
	box-shadow: 0 2px 5px rgba(23, 39, 61, 0.05), 0 10px 26px rgba(23, 39, 61, 0.06);
	border-radius: 18px !important;
}

/* Texto mais respirado. Publico le no celular, muitas vezes com pressa. */
body {
	line-height: 1.68;
}
p {
	line-height: 1.68;
}
h1, h2, h3 {
	line-height: 1.22;
}

/* Botoes: cantos mais macios e area de toque maior. */
.wp-element-button,
.wp-block-button__link {
	border-radius: 14px !important;
	padding-top: 1rem;
	padding-bottom: 1rem;
	transition: transform 0.12s ease, box-shadow 0.12s ease;
}
.wp-element-button:hover,
.wp-block-button__link:hover {
	transform: translateY(-1px);
	box-shadow: 0 6px 16px rgba(23, 39, 61, 0.14);
}

/* Tabelas: sem grade fechada, apenas linhas horizontais discretas. */
.wp-block-table table {
	border-collapse: separate;
	border-spacing: 0;
}
.wp-block-table th {
	border: 0;
	padding: 0.9rem 1rem;
}
.wp-block-table td {
	border: 0;
	border-bottom: 1px solid #EFE7DA;
	padding: 0.9rem 1rem;
}
.wp-block-table.is-style-stripes tbody tr:nth-child(odd) td {
	background: #FFFBF5;
}
.wp-block-table figcaption {
	line-height: 1.6;
}

/* Fotos dos ambientes: canto mais macio, igual aos cartoes. */
.abazze-estrutura .wp-block-image img {
	border-radius: 18px !important;
	box-shadow: 0 2px 5px rgba(23, 39, 61, 0.05), 0 10px 26px rgba(23, 39, 61, 0.06);
}

/* Cabecalho: sombra leve no lugar da linha divisoria. */
.abazze-cabecalho {
	border-bottom: 0;
	box-shadow: 0 1px 0 rgba(23, 39, 61, 0.06), 0 6px 18px rgba(23, 39, 61, 0.05);
}

/* Bloco institucional escuro: um pouco menos pesado. */
.abazze-slot-video {
	border-radius: 18px;
}

/* Caixa de destaque das turmas abertas: mantem o realce da marca sem
   a borda fechada que a suavizacao removeu dos demais cartoes. */
.abazze-destaque.wp-block-group {
	background: #FBFDEE !important;
	border-left: 5px solid var(--wp--preset--color--limao, #D5E041) !important;
	box-shadow: none;
	border-radius: 14px !important;
}

/* ============================================================
   CARTAO DE VAGA — numero grande a esquerda, texto recuado.
   Quando o anuncio informa quantas vagas sao, o numero aparece.
   Quando nao informa, aparece o municipio, para a coluna nao
   ficar vazia e para nao sugerir um numero que nao existe.
   ============================================================ */
.abazze-vaga {
	display: grid;
	grid-template-columns: 118px 1fr;
	gap: 1.5rem;
	align-items: start;
	box-shadow: 0 2px 5px rgba(23, 39, 61, 0.05), 0 10px 26px rgba(23, 39, 61, 0.06);
}
.abazze-vaga--concurso {
	box-shadow: none;
	border-left: 5px solid var(--wp--preset--color--limao, #D5E041);
}
.abazze-vaga__numero {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: center;
	padding-right: 1.25rem;
	border-right: 1px solid #EFE7DA;
	min-height: 74px;
}
.abazze-vaga__valor {
	font-family: var(--wp--preset--font-family--titulo, inherit);
	font-size: clamp(2.4rem, 5vw, 3.1rem);
	font-weight: 800;
	line-height: 1;
	color: var(--wp--preset--color--azul, #0054A6);
}
.abazze-vaga__unidade {
	font-size: 0.9375rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--wp--preset--color--texto-apoio, #3C5170);
	margin-top: 0.2rem;
}
.abazze-vaga__cidade {
	font-family: var(--wp--preset--font-family--titulo, inherit);
	font-size: 1.25rem;
	font-weight: 800;
	line-height: 1.15;
	color: var(--wp--preset--color--azul, #0054A6);
}
.abazze-vaga__texto > * {
	margin: 0 0 0.4rem;
}
.abazze-vaga__texto > *:last-child {
	margin-bottom: 0;
}
.abazze-vaga__cargo {
	font-size: 1.1875rem;
	line-height: 1.3;
}
.abazze-vaga__detalhe {
	font-size: 1.0625rem;
	color: var(--wp--preset--color--texto-apoio, #3C5170);
}
.abazze-vaga__prazo {
	font-size: 1.0625rem;
	font-weight: 700;
	color: var(--wp--preset--color--azul, #0054A6);
}
.abazze-vaga__onde {
	font-size: 0.9375rem;
	color: var(--wp--preset--color--texto-apoio, #3C5170);
}
/* No celular o numero vai para cima, sem a linha divisoria vertical. */
@media (max-width: 600px) {
	.abazze-vaga {
		grid-template-columns: 1fr;
		gap: 0.6rem;
	}
	.abazze-vaga__numero {
		flex-direction: row;
		align-items: baseline;
		gap: 0.5rem;
		min-height: 0;
		padding-right: 0;
		padding-bottom: 0.6rem;
		border-right: 0;
		border-bottom: 1px solid #EFE7DA;
		width: 100%;
	}
	.abazze-vaga__valor {
		font-size: 2.2rem;
	}
}

/* O grupo do cartao usa layout "constrained" do WordPress, que centraliza os
   filhos e criava um vao grande entre a divisoria e o texto. Aqui os dois
   blocos do cartao voltam a ocupar a coluna inteira da grade. */
.abazze-vaga > .abazze-vaga__numero,
.abazze-vaga > .abazze-vaga__texto {
	max-width: none !important;
	width: auto !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
}

/* TESTE DE LEGIBILIDADE — peso do corpo de texto.
   A fonte vinha em 300 (variacao fina). Em 18 a 21px sobre fundo creme, letra
   fina parece lavada mesmo com contraste alto (o texto atual tem 7,7:1).
   400 e o peso normal: mesma cor, leitura mais firme.
   PARA VOLTAR AO ANTERIOR: apague este bloco. */
body,
p,
li,
td,
th,
figcaption,
.abazze-vaga__detalhe,
.abazze-cabecalho__menu a {
	font-weight: 400;
}

/* ============================================================
   FAIXA PERMANENTE DE MATRICULAS ABERTAS
   Fica acima do cabecalho, em todas as paginas. O conteudo vem da
   tabela de turnos: se nenhum turno estiver aberto, a faixa nao
   e impressa. Verde-limao da marca com texto escuro, para ter
   contraste alto e nao competir com o azul dos botoes.
   ============================================================ */
.abazze-faixa {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 0.35rem 1rem;
	padding: 0.7rem clamp(1rem, 4vw, 3rem);
	background: var(--wp--preset--color--limao, #D5E041);
	color: var(--wp--preset--color--texto, #17273D);
	text-align: center;
}
.abazze-faixa__texto {
	margin: 0;
	font-family: var(--wp--preset--font-family--corpo, inherit);
	font-size: 1.0625rem;
	line-height: 1.4;
}
.abazze-faixa__texto strong {
	font-weight: 800;
}
.abazze-faixa__link {
	font-size: 1rem;
	font-weight: 700;
	color: var(--wp--preset--color--texto, #17273D);
	text-decoration: underline;
	text-underline-offset: 3px;
	white-space: nowrap;
}
.abazze-faixa__link:hover,
.abazze-faixa__link:focus {
	text-decoration: none;
	background: rgba(23, 39, 61, 0.08);
	border-radius: 6px;
	padding: 0.1rem 0.45rem;
	margin: -0.1rem -0.45rem;
}

/* O cabecalho acompanha a rolagem, para o menu e o botao de WhatsApp
   ficarem sempre ao alcance. A faixa sai de cena depois de ser lida. */
.abazze-cabecalho {
	position: sticky;
	top: 0;
	z-index: 90;
}
.admin-bar .abazze-cabecalho {
	top: 32px;
}
@media (max-width: 782px) {
	.admin-bar .abazze-cabecalho {
		top: 46px;
	}
	.abazze-faixa {
		padding: 0.6rem 1rem;
	}
	.abazze-faixa__texto,
	.abazze-faixa__link {
		font-size: 0.9375rem;
	}
}

/* ------------------------------------------------------------------
   BOTOES FLUTUANTES (agendar visita + WhatsApp)
   Impressos por functions.php. Ficam empilhados no canto inferior
   direito, em todas as paginas. No celular o botao de visita fica
   menor para nao cobrir o conteudo.
   ------------------------------------------------------------------ */
.abazze-flutuantes {
	position: fixed;
	right: 20px;
	bottom: 20px;
	z-index: 999;
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 10px;
}
.abazze-flutuantes .abazze-whats-flutuante { position: static; right: auto; bottom: auto; }
.abazze-flutuantes__visita {
	background: var(--wp--preset--color--azul, #17273D);
	color: #fff;
	text-decoration: none;
	font-weight: 600;
	font-size: 0.9375rem;
	line-height: 1.2;
	padding: 0.85rem 1.15rem;
	border-radius: 999px;
	box-shadow: 0 8px 24px rgba(23,39,61,.35);
}
.abazze-flutuantes__visita:hover,
.abazze-flutuantes__visita:focus { background: #22385A; color: #fff; }
@media (max-width: 600px) {
	.abazze-flutuantes__visita { font-size: 0.875rem; padding: 0.7rem 1rem; }
}

/* ------------------------------------------------------------------
   CAIXAS COLORIDAS: TEXTO OCUPANDO A LARGURA DA CAIXA
   O WordPress centraliza o conteudo dentro de qualquer caixa e limita
   a largura, o que deixava uma faixa vazia antes do texto. Aqui o
   texto passa a comecar na borda interna da caixa. O que estiver
   deliberadamente centralizado (chamadas e faixas) nao e afetado.
   PARA VOLTAR AO ANTERIOR: apague este bloco.
   ------------------------------------------------------------------ */
main .wp-block-group.has-background > *:not(.has-text-align-center):not(.wp-block-group) {
	max-width: none;
	margin-left: 0;
	margin-right: 0;
}
main .wp-block-group.has-background > .wp-block-buttons:not(.is-content-justification-center) {
	max-width: none;
	margin-left: 0;
}

/* ------------------------------------------------------------------
   CABECALHO EM UMA LINHA
   Com a entrada de "Apoio financeiro" o menu passou a ter oito itens
   e o botao verde caia para uma terceira linha. Aqui o menu ganha
   espaco no meio e o texto fica um pouco menor em telas medias.
   ------------------------------------------------------------------ */
@media (min-width: 782px) {
	.abazze-cabecalho { gap: 1rem; flex-wrap: nowrap; }
	.abazze-cabecalho__logo img { width: 160px; }
	.abazze-cabecalho__menu { flex: 1 1 auto; }
	.abazze-cabecalho__menu ul { justify-content: center; gap: 0.5rem 0.85rem; }
	.abazze-cabecalho__menu a { font-size: 0.875rem; white-space: nowrap; }
	.abazze-cabecalho__zap { flex: 0 0 auto; font-size: 0.9375rem; padding: 0.8rem 1.1rem; white-space: nowrap; }
}
@media (min-width: 1500px) {
	.abazze-cabecalho__menu a { font-size: 1rem; }
	.abazze-cabecalho__menu ul { gap: 0.6rem 1.35rem; }
}

/* ------------------------------------------------------------------
   CARTOES DOS CURSOS LIVRES
   Montados por patterns/cursos-livres.php a partir de
   inc/cursos-livres.php. Enquanto um curso nao tem foto, o cartao
   mostra a faixa colorida da area.
   ------------------------------------------------------------------ */
.abazze-livres {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(300px, 100%), 1fr));
	gap: 1.5rem;
	margin-top: 2rem;
}
.abazze-livre {
	display: flex;
	flex-direction: column;
	background: #FFFFFF;
	border-radius: 14px;
	overflow: hidden;
	box-shadow: 0 2px 5px rgba(23,39,61,.05), 0 10px 26px rgba(23,39,61,.06);
}
.abazze-livre__foto {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 9;
	object-fit: cover;
}
.abazze-livre__area {
	margin: 0;
	padding: 0.7rem 1.25rem;
	color: #FFFFFF;
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}
.abazze-livre__corpo {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	padding: 1.25rem 1.4rem 1.4rem;
}
.abazze-livre__nome {
	margin: 0 0 0.6rem;
	font-size: 1.25rem;
	line-height: 1.25;
	color: var(--wp--preset--color--texto, #17273D);
}
.abazze-livre__descricao {
	margin: 0 0 0.9rem;
	font-size: 1rem;
	line-height: 1.6;
	color: var(--wp--preset--color--texto-apoio, #3C5170);
}
.abazze-livre__publico {
	margin: 0 0 0.9rem;
	font-size: 0.9375rem;
	line-height: 1.5;
	color: var(--wp--preset--color--texto-apoio, #3C5170);
}
.abazze-livre__valor {
	margin: auto 0 1rem;
	font-size: 1.375rem;
	font-weight: 700;
	color: var(--wp--preset--color--texto, #17273D);
}
.abazze-livre__valor span {
	font-size: 0.9375rem;
	font-weight: 500;
	color: var(--wp--preset--color--texto-apoio, #3C5170);
}
.abazze-livre__link {
	align-self: flex-start;
	min-height: 48px;
	display: inline-flex;
	align-items: center;
	padding: 0 1.1rem;
	background: var(--wp--preset--color--whatsapp, #22A45D);
	color: #FFFFFF;
	font-size: 0.9375rem;
	font-weight: 600;
	border-radius: 12px;
	text-decoration: none;
}
.abazze-livre__link:hover,
.abazze-livre__link:focus { background: #1B8B4E; color: #FFFFFF; }

/* ------------------------------------------------------------------
   MAPA DO GOOGLE NA PAGINA DE CONTATO
   ------------------------------------------------------------------ */
.abazze-mapa {
	margin-top: 1rem;
	border-radius: 14px;
	overflow: hidden;
	box-shadow: 0 2px 5px rgba(23,39,61,.05), 0 10px 26px rgba(23,39,61,.06);
	line-height: 0;
}
.abazze-mapa iframe { display: block; width: 100%; border: 0; }
@media (max-width: 600px) {
	.abazze-mapa iframe { height: 300px; }
}

/* ------------------------------------------------------------------
   CARTOES DE VALOR POR TURNO (pagina do Tecnico em Enfermagem)
   Montados por patterns/curso-valores.php a partir de inc/precos.php.
   O turno sem turma em oferta aparece esmaecido, com botao de lista
   de espera em vez de botao de matricula.
   ------------------------------------------------------------------ */
.abazze-turnos {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(260px, 100%), 1fr));
	gap: 1.25rem;
	margin-top: 2rem;
}
.abazze-turno {
	display: flex;
	flex-direction: column;
	background: #FFFFFF;
	border-radius: 16px;
	padding: 1.4rem 1.5rem 1.5rem;
	box-shadow: 0 2px 5px rgba(23,39,61,.05), 0 10px 26px rgba(23,39,61,.06);
}
.abazze-turno--fechado { background: #F6F5F2; }
.abazze-turno__selo {
	display: inline-block;
	align-self: flex-start;
	margin: 0 0 0.9rem;
	padding: 0.3rem 0.7rem;
	background: var(--wp--preset--color--lima, #D5E041);
	color: #17273D;
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	border-radius: 999px;
}
.abazze-turno--fechado .abazze-turno__selo { background: #E2DFD8; color: #55606F; }
.abazze-turno__nome {
	margin: 0 0 0.25rem;
	font-size: 1.5rem;
	line-height: 1.2;
	color: var(--wp--preset--color--texto, #17273D);
}
.abazze-turno__dias {
	margin: 0 0 1.1rem;
	font-size: 0.9375rem;
	line-height: 1.5;
	color: var(--wp--preset--color--texto-apoio, #3C5170);
}
.abazze-turno__valor {
	margin: 0 0 0.4rem;
	font-size: 2.25rem;
	font-weight: 700;
	line-height: 1.05;
	color: var(--wp--preset--color--azul, #0054A6);
}
.abazze-turno__valor span {
	display: block;
	margin-top: 0.35rem;
	font-size: 0.875rem;
	font-weight: 500;
	line-height: 1.4;
	color: var(--wp--preset--color--texto-apoio, #3C5170);
}
.abazze-turno__cheio {
	margin: 0 0 1.2rem;
	font-size: 0.9375rem;
	color: var(--wp--preset--color--texto-apoio, #3C5170);
}
.abazze-turno__link {
	margin-top: auto;
	min-height: 52px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0 1rem;
	background: var(--wp--preset--color--whatsapp, #22A45D);
	color: #FFFFFF;
	font-size: 1rem;
	font-weight: 600;
	text-align: center;
	border-radius: 12px;
	text-decoration: none;
}
.abazze-turno__link:hover,
.abazze-turno__link:focus { background: #1B8B4E; color: #FFFFFF; }
.abazze-turno__link--fechado {
	background: transparent;
	color: var(--wp--preset--color--azul, #0054A6);
	border: 2px solid #C9D2DE;
}
.abazze-turno__link--fechado:hover,
.abazze-turno__link--fechado:focus { background: #EDF1F6; color: var(--wp--preset--color--azul, #0054A6); }

/* ------------------------------------------------------------------
   GRADE CURRICULAR EM BLOCOS
   Montada por patterns/curso-grade.php a partir de inc/grade.php.
   ------------------------------------------------------------------ */
.abazze-grade {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(440px, 100%), 1fr));
	gap: 1.25rem;
	margin-top: 2rem;
}
.abazze-bloco {
	background: #FFFFFF;
	border-radius: 16px;
	padding: 1.4rem 1.5rem;
	box-shadow: 0 2px 5px rgba(23,39,61,.05), 0 10px 26px rgba(23,39,61,.06);
}
.abazze-bloco__topo {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 1rem;
	padding-bottom: 0.9rem;
	margin-bottom: 0.9rem;
	border: 0;
	border-bottom-width: 3px;
	border-bottom-style: solid;
}
.abazze-bloco__titulo {
	margin: 0 0 0.3rem;
	font-size: 1.1875rem;
	line-height: 1.25;
	color: var(--wp--preset--color--texto, #17273D);
}
.abazze-bloco__resumo {
	margin: 0;
	font-size: 0.9375rem;
	line-height: 1.5;
	color: var(--wp--preset--color--texto-apoio, #3C5170);
}
.abazze-bloco__horas {
	flex: 0 0 auto;
	margin: 0;
	font-size: 1.5rem;
	font-weight: 700;
	line-height: 1;
}
.abazze-bloco__lista { margin: 0; padding: 0; list-style: none; }
.abazze-bloco__lista li {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 0.75rem;
	padding: 0.5rem 0;
	font-size: 1rem;
	line-height: 1.45;
	border-top: 1px solid #EEEAE2;
}
.abazze-bloco__lista li:first-child { border-top: 0; }
.abazze-bloco__lista span { color: var(--wp--preset--color--texto, #17273D); }
.abazze-bloco__lista strong { flex: 0 0 auto; color: var(--wp--preset--color--texto-apoio, #3C5170); }
.abazze-grade__total {
	grid-column: 1 / -1;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	margin: 0;
	padding: 1.1rem 1.5rem;
	background: var(--wp--preset--color--azul, #0054A6);
	color: #FFFFFF;
	border-radius: 16px;
}
.abazze-grade__total span { font-size: 1.0625rem; font-weight: 600; }
.abazze-grade__total strong { font-size: 1.75rem; }

/* ------------------------------------------------------------------
   LINKS DO RODAPE
   O rodape tem fundo azul-escuro e os links vinham no azul da marca,
   que ficava ilegivel. Aqui eles usam um azul bem claro, com
   contraste alto, e ganham sublinhado ao passar o mouse.
   ------------------------------------------------------------------ */
.wp-block-group.has-texto-background-color a,
footer.wp-block-group a {
	color: #DCE6F4;
	text-decoration: none;
}
.wp-block-group.has-texto-background-color a:hover,
.wp-block-group.has-texto-background-color a:focus,
footer.wp-block-group a:hover,
footer.wp-block-group a:focus {
	color: var(--wp--preset--color--lima, #D5E041);
	text-decoration: underline;
}

/* ------------------------------------------------------------------
   AVISOS SOBRE CONCURSOS (pagina de vagas)
   Montados por patterns/vagas.php a partir de inc/vagas.php.
   ------------------------------------------------------------------ */
.abazze-avisos {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(320px, 100%), 1fr));
	gap: 1.25rem;
	margin-top: 1.5rem;
}
.abazze-aviso {
	background: #FFFFFF;
	border-radius: 16px;
	padding: 1.3rem 1.5rem;
	border-left: 5px solid var(--wp--preset--color--limao, #D5E041);
	box-shadow: 0 2px 5px rgba(23,39,61,.05), 0 10px 26px rgba(23,39,61,.06);
}
.abazze-aviso__titulo {
	margin: 0 0 0.6rem;
	font-size: 1.125rem;
	line-height: 1.3;
	color: var(--wp--preset--color--texto, #17273D);
}
.abazze-aviso__texto {
	margin: 0 0 0.75rem;
	font-size: 1rem;
	line-height: 1.6;
	color: var(--wp--preset--color--texto-apoio, #3C5170);
}
.abazze-aviso__onde {
	margin: 0;
	font-size: 0.875rem;
	color: var(--wp--preset--color--texto-apoio, #3C5170);
}

/* Foto de abertura da pagina inicial. Para trocar, mude o nome do arquivo
   na chamada de abazze_foto() em patterns/hero-home.php. */
.abazze-hero-foto { margin: 0; }
.abazze-hero-foto img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	object-position: center top; /* alinhado ao topo: mostra o rosto da professora ao fundo */
	border-radius: 18px;
	box-shadow: 0 2px 5px rgba(23,39,61,.05), 0 14px 34px rgba(23,39,61,.10);
}

/* Foto da turma e fotos de aula pratica. */
.abazze-turma { margin: 2rem 0 0; }
.abazze-turma img {
	display: block; width: 100%;
	aspect-ratio: 16 / 9; object-fit: cover; object-position: center 40%;
	border-radius: 18px;
	box-shadow: 0 2px 5px rgba(23,39,61,.05), 0 14px 34px rgba(23,39,61,.10);
}
.abazze-turma figcaption {
	margin-top: 0.75rem; font-size: 0.9375rem;
	color: var(--wp--preset--color--texto-apoio, #3C5170);
}
.abazze-pratica {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(300px, 100%), 1fr));
	gap: 1.25rem;
	margin-top: 2rem;
}
.abazze-pratica figure { margin: 0; }
.abazze-pratica img {
	display: block; width: 100%;
	aspect-ratio: 4 / 3; object-fit: cover; object-position: center 30%;
	border-radius: 16px;
	box-shadow: 0 2px 5px rgba(23,39,61,.05), 0 10px 26px rgba(23,39,61,.06);
}

/* Foto vertical dentro de seção escura (seção A instituição). */
.abazze-foto-vertical { margin: 0; }
.abazze-foto-vertical img {
	display: block; width: 100%;
	aspect-ratio: 3 / 4; object-fit: cover; object-position: center 30%;
	border-radius: 16px;
}
.abazze-foto-vertical figcaption {
	margin-top: 0.7rem; font-size: 0.875rem; color: #AEBBCC;
}

/* ------------------------------------------------------------------
   PAGINA APOIO FINANCEIRO
   O texto acompanha a margem do titulo da pagina; as linhas de leitura
   ficam limitadas para nao ficarem longas demais, e a tabela ocupa a
   largura toda. OS VALORES vem de inc/precos.php.
   ------------------------------------------------------------------ */
.abazze-apoio > p,
.abazze-apoio > ul,
.abazze-apoio > ol {
	max-width: 780px;
	/* alinha a esquerda do texto com a do titulo da pagina, sem centralizar */
	margin-left: max(0px, calc((100% - 1240px) / 2)) !important;
	margin-right: auto !important;
}

.abazze-tabela-caixa {
	margin: 2rem 0 0;
	background: #FFFFFF;
	border-radius: 16px;
	overflow: hidden;
	box-shadow: 0 2px 5px rgba(23,39,61,.05), 0 10px 26px rgba(23,39,61,.06);
	overflow-x: auto;
}
.abazze-tabela {
	width: 100%;
	border-collapse: collapse;
	font-size: 1.0625rem;
}
.abazze-tabela thead th {
	background: var(--wp--preset--color--azul, #0054A6);
	color: #FFFFFF;
	font-size: 0.875rem;
	font-weight: 700;
	letter-spacing: 0.02em;
	text-align: left;
	padding: 0.9rem 1.1rem;
	white-space: nowrap;
}
.abazze-tabela tbody th,
.abazze-tabela tbody td {
	padding: 1rem 1.1rem;
	border-top: 1px solid #EEEAE2;
	text-align: left;
	vertical-align: middle;
	color: var(--wp--preset--color--texto, #17273D);
	font-weight: 400;
}
.abazze-tabela--num { text-align: right !important; white-space: nowrap; font-variant-numeric: tabular-nums; }
.abazze-tabela--destaque { background: #FBFDEE; }
.abazze-tabela thead th.abazze-tabela--destaque { background: #14497F; }
.abazze-tabela--destaque strong { font-size: 1.1875rem; color: var(--wp--preset--color--azul, #0054A6); }
.abazze-tabela__turno { display: block; font-weight: 700; }
.abazze-tabela__selo {
	display: block; margin-top: 0.15rem;
	font-size: 0.8125rem; color: var(--wp--preset--color--texto-apoio, #3C5170);
}
.abazze-tabela tbody tr.abazze-tabela--fechado th,
.abazze-tabela tbody tr.abazze-tabela--fechado td { color: #6C7889; }
.abazze-tabela tbody tr.abazze-tabela--fechado .abazze-tabela--destaque strong { color: #6C7889; font-weight: 600; }
.abazze-tabela tbody tr.abazze-tabela--rodape th,
.abazze-tabela tbody tr.abazze-tabela--rodape td {
	background: #F6F4EF; border-top: 2px solid #E4DFD5;
}
.abazze-tabela tbody tr.abazze-tabela--rodape th { font-weight: 700; }
@media (max-width: 600px) {
	.abazze-tabela { font-size: 1rem; }
	.abazze-tabela thead th, .abazze-tabela tbody th, .abazze-tabela tbody td { padding: 0.8rem 0.85rem; }
}

/* Canais de atendimento na pagina de contato. Dados vem de abazze_info(). */
.abazze-canais { display: grid; gap: 1rem; margin-top: 1.25rem; }
.abazze-canal {
	background: #FFFFFF; border-radius: 14px; padding: 1.2rem 1.4rem;
	box-shadow: 0 2px 5px rgba(23,39,61,.05), 0 10px 26px rgba(23,39,61,.06);
}
.abazze-canal__nome { margin: 0 0 0.45rem; font-weight: 700; font-size: 1.0625rem; color: var(--wp--preset--color--texto, #17273D); }
.abazze-canal__dado { margin: 0 0 0.9rem; font-size: 1rem; line-height: 1.65; color: var(--wp--preset--color--texto-apoio, #3C5170); }
.abazze-canal__link {
	display: inline-flex; align-items: center; min-height: 48px; padding: 0 1.1rem;
	background: var(--wp--preset--color--whatsapp, #22A45D); color: #FFFFFF;
	font-weight: 600; border-radius: 12px; text-decoration: none;
}
.abazze-canal__link:hover, .abazze-canal__link:focus { background: #1B8B4E; color: #FFFFFF; }
.abazze-canal__link--claro { background: var(--wp--preset--color--azul, #0054A6); }
.abazze-canal__link--claro:hover, .abazze-canal__link--claro:focus { background: #22385A; }

/* ------------------------------------------------------------------
   FICHA DAS ESPECIALIZACOES EM CARTOES
   Montada por inc/especializacoes.php. Os valores vem de inc/precos.php.
   ------------------------------------------------------------------ */
.abazze-fichas {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(230px, 100%), 1fr));
	gap: 1rem;
	margin-top: 2rem;
}
.abazze-ficha {
	background: #FFFFFF;
	border-radius: 14px;
	padding: 1.1rem 1.25rem;
	box-shadow: 0 2px 5px rgba(23,39,61,.05), 0 10px 26px rgba(23,39,61,.06);
}
.abazze-ficha__rotulo {
	margin: 0 0 0.35rem;
	font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase;
	color: var(--wp--preset--color--texto-apoio, #3C5170);
}
.abazze-ficha__valor {
	margin: 0 0 0.3rem;
	font-size: 1.5rem; font-weight: 700; line-height: 1.15;
	color: var(--wp--preset--color--azul, #0054A6);
}
.abazze-ficha__nota {
	margin: 0;
	font-size: 0.875rem; line-height: 1.5;
	color: var(--wp--preset--color--texto-apoio, #3C5170);
}
.abazze-ficha-requisito {
	margin-top: 1rem;
	padding: 1rem 1.25rem;
	background: #FBFDEE;
	border-left: 5px solid var(--wp--preset--color--limao, #D5E041);
	border-radius: 12px;
	font-size: 1.0625rem;
	color: var(--wp--preset--color--texto, #17273D);
}

/* ------------------------------------------------------------------
   EQUIPE (pagina A escola). Cartoes com foto redonda ou iniciais.
   ------------------------------------------------------------------ */
.abazze-equipe {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(300px, 100%), 1fr));
	gap: 1.25rem;
	margin-top: 2rem;
}
.abazze-pessoa {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	background: #FFFFFF;
	border-radius: 16px;
	padding: 1.6rem 1.5rem;
	box-shadow: 0 2px 5px rgba(23,39,61,.05), 0 10px 26px rgba(23,39,61,.06);
}
.abazze-pessoa__foto,
.abazze-pessoa__iniciais {
	width: 120px; height: 120px;
	border-radius: 50%;
	margin: 0 0 1rem;
	object-fit: cover;
	object-position: center 22%;
}
.abazze-pessoa__iniciais {
	display: flex; align-items: center; justify-content: center;
	background: var(--wp--preset--color--creme, #F6F1E7);
	color: var(--wp--preset--color--azul, #0054A6);
	font-size: 2.25rem; font-weight: 700;
}
.abazze-pessoa__nome { margin: 0 0 0.25rem; font-size: 1.1875rem; line-height: 1.25; color: var(--wp--preset--color--texto, #17273D); }
.abazze-pessoa__funcao { margin: 0 0 0.7rem; font-size: 0.9375rem; font-weight: 700; color: var(--wp--preset--color--azul, #0054A6); }
.abazze-pessoa__bio { margin: 0; font-size: 1rem; line-height: 1.6; color: var(--wp--preset--color--texto-apoio, #3C5170); }

/* Documentos da matricula nas especializacoes. Lista em inc/especializacoes.php. */
.abazze-documentos {
	margin-top: 2rem;
	background: #FFFFFF;
	border-radius: 16px;
	padding: 1.5rem 1.75rem;
	box-shadow: 0 2px 5px rgba(23,39,61,.05), 0 10px 26px rgba(23,39,61,.06);
}
.abazze-documentos__titulo { margin: 0 0 1rem; font-size: 1.375rem; color: var(--wp--preset--color--texto, #17273D); }
.abazze-documentos__lista { margin: 0; padding: 0; list-style: none; }
.abazze-documentos__lista li {
	position: relative;
	padding: 0.5rem 0 0.5rem 1.75rem;
	font-size: 1.0625rem; line-height: 1.6;
	border-top: 1px solid #EEEAE2;
	color: var(--wp--preset--color--texto, #17273D);
}
.abazze-documentos__lista li:first-child { border-top: 0; }
.abazze-documentos__lista li::before {
	content: ""; position: absolute; left: 0; top: 1.05rem;
	width: 10px; height: 10px; border-radius: 3px;
	background: var(--wp--preset--color--limao, #D5E041);
}
.abazze-documentos__nota {
	margin: 1rem 0 0; padding-top: 1rem; border-top: 2px solid #EEEAE2;
	font-size: 1rem; line-height: 1.6;
	color: var(--wp--preset--color--texto-apoio, #3C5170);
}

/* Compromissos da escola (docentes e suporte ao aluno), na secao de equipe. */
.abazze-compromissos {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(340px, 100%), 1fr));
	gap: 1.25rem;
	margin-top: 2rem;
}
.abazze-compromisso {
	background: #FFFFFF;
	border-radius: 16px;
	padding: 1.5rem 1.6rem;
	border-left: 5px solid var(--wp--preset--color--limao, #D5E041);
	box-shadow: 0 2px 5px rgba(23,39,61,.05), 0 10px 26px rgba(23,39,61,.06);
}
.abazze-compromisso__titulo {
	margin: 0 0 0.6rem;
	font-size: 1.25rem; line-height: 1.25;
	color: var(--wp--preset--color--texto, #17273D);
}
.abazze-compromisso__texto {
	margin: 0;
	font-size: 1.0625rem; line-height: 1.65;
	color: var(--wp--preset--color--texto-apoio, #3C5170);
}

/* Grade curricular sem carga horaria por disciplina.
   Set/2026: a direcao decidiu publicar apenas a carga total do curso.
   As horas de cada disciplina continuam registradas em inc/grade.php e
   inc/especializacoes.php (para os totais), mas nao aparecem na pagina. */
.abazze-bloco__lista--simples li {
	justify-content: flex-start;
}
.abazze-bloco__lista--simples li span {
	padding-right: 0;
}

/* Destaque do curso gratuito de Cuidador de Idoso, na pagina de cursos livres.
   Fica fora da grade paga: e uma turma gratuita, sem valor e sem carga
   horaria publicada. O link da lista de espera vem de abazze_cuidador(). */
.abazze-gratuito {
	scroll-margin-top: 6rem;
	margin-top: 2.5rem;
	padding: 2rem 2.25rem;
	border-radius: 16px;
	border: 2px solid #1E5133;
	background: #F2F8F3;
}
.abazze-gratuito__selo {
	display: inline-block;
	margin: 0 0 0.75rem;
	padding: 0.3rem 0.85rem;
	border-radius: 999px;
	background: #1E5133;
	color: #fff;
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}
.abazze-gratuito__titulo {
	margin: 0 0 0.75rem;
	font-size: 1.5rem;
	line-height: 1.25;
}
.abazze-gratuito__texto {
	margin: 0 0 0.85rem;
	max-width: 62ch;
	font-size: 1.0625rem;
	line-height: 1.6;
}
.abazze-gratuito__botao {
	display: inline-block;
	margin-top: 0.4rem;
	padding: 0.85rem 1.6rem;
	border-radius: 12px;
	background: #1E5133;
	color: #fff;
	font-weight: 700;
	text-decoration: none;
}
.abazze-gratuito__botao:hover,
.abazze-gratuito__botao:focus {
	background: #17402A;
	color: #fff;
}
@media (max-width: 600px) {
	.abazze-gratuito { padding: 1.5rem 1.25rem; }
}

/* Foto na coluna lateral da pagina A escola (recepcao da unidade). */
.abazze-foto-lateral {
	display: block;
	width: 100%;
	height: auto;
	margin-bottom: 1.25rem;
	border-radius: 14px;
}

/* Campos de atuacao do tecnico em enfermagem (pagina do Tecnico). */
.abazze-campos {
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(auto-fit, minmax(min(260px, 100%), 1fr));
	margin-top: 1.5rem;
}
.abazze-campo {
	padding: 1.25rem 1.35rem;
	border-radius: 12px;
	border-left: 4px solid #0054A6;
	background: #fff;
}
.abazze-campo__nome {
	margin: 0 0 0.4rem;
	font-size: 1.0625rem;
	line-height: 1.3;
}
.abazze-campo__texto {
	margin: 0;
	font-size: 0.9875rem;
	line-height: 1.5;
	color: #4A5568;
}

/* Metodologia da escola (pagina do Tecnico). */
.abazze-metodo {
	display: grid;
	gap: 1.5rem 2rem;
	grid-template-columns: repeat(auto-fit, minmax(min(320px, 100%), 1fr));
	margin-top: 2rem;
}
.abazze-metodo__item {
	padding-top: 1.1rem;
	border-top: 3px solid #E2E8F0;
}
.abazze-metodo__numero {
	margin: 0 0 0.5rem;
	font-size: 0.875rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	color: #0054A6;
}
.abazze-metodo__titulo {
	margin: 0 0 0.5rem;
	font-size: 1.1875rem;
	line-height: 1.3;
}
.abazze-metodo__texto {
	margin: 0;
	font-size: 1.0625rem;
	line-height: 1.6;
	color: #4A5568;
}

/* Icone de cada campo de atuacao (SVG inline, herda a cor daqui). */
.abazze-campo__icone {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	margin-bottom: 0.85rem;
	border-radius: 10px;
	background: #E8F0FA;
	color: #0054A6;
}
.abazze-campo__icone svg {
	width: 24px;
	height: 24px;
}

/* Foto do curso gratuito de Cuidador de Idoso, ao lado do texto.
   Empilha abaixo de 780px. */
.abazze-gratuito {
	display: grid;
	gap: 1.75rem;
	grid-template-columns: minmax(0, 38%) minmax(0, 1fr);
	align-items: center;
}
.abazze-gratuito__foto {
	display: block;
	width: 100%;
	height: 100%;
	max-height: 320px;
	object-fit: cover;
	border-radius: 12px;
}
.abazze-gratuito__texto-bloco > :first-child {
	margin-top: 0;
}
@media (max-width: 780px) {
	.abazze-gratuito {
		grid-template-columns: 1fr;
		gap: 1.25rem;
	}
	.abazze-gratuito__foto { max-height: 220px; }
}

/* Fundo creme aplicado por classe, e nao pelo atributo backgroundColor do
   bloco: assim a secao compartilha o mesmo container de layout das demais
   e o conteudo alinha na mesma coluna do restante da pagina. */
.abazze-secao-creme {
	background-color: var(--wp--preset--color--creme, #F4F8FC);
}

/* Foto de abertura das paginas de especializacao, entre o texto e a ficha. */
.abazze-esp-foto {
	display: block;
	width: 100%;
	max-height: 520px;
	object-fit: cover;
	object-position: center 60%;
	margin: 2rem 0 0;
	border-radius: 16px;
}

/* Enfermagem do Trabalho: enquadrar pelo topo, para o capacete de EPI
   aparecer inteiro. */
.abazze-esp-foto--topo {
	object-position: center 18%;
}

/* Alerta de concurso na home. O conteudo vem de inc/alerta.php e a faixa
   desaparece sozinha depois da data limite. */
.abazze-alerta {
	background: #FBFDF0;
	border-top: 4px solid #D5E041;
	border-bottom: 1px solid #F0DFC0;
}
.abazze-alerta__interno {
	display: grid;
	gap: 1.5rem 2.5rem;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	max-width: 1240px;
	margin: 0 auto;
	padding: 1.75rem 2rem;
}
.abazze-alerta__selo {
	display: inline-block;
	margin: 0 0 0.6rem;
	padding: 0.25rem 0.75rem;
	border-radius: 999px;
	background: #0054A6;
	color: #fff;
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}
.abazze-alerta__titulo {
	margin: 0 0 0.5rem;
	font-size: 1.375rem;
	line-height: 1.25;
	color: #17273D;
}
.abazze-alerta__linha {
	margin: 0 0 0.5rem;
	max-width: 62ch;
	font-size: 1.0625rem;
	line-height: 1.5;
	color: #4A5568;
}
.abazze-alerta__prazo {
	margin: 0;
	font-size: 1.0625rem;
	font-weight: 700;
	color: #003C77;
}
.abazze-alerta__acoes {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
}
.abazze-alerta__botao {
	display: inline-block;
	padding: 0.8rem 1.4rem;
	border-radius: 12px;
	background: #0054A6;
	color: #fff;
	font-weight: 700;
	text-decoration: none;
	white-space: nowrap;
}
.abazze-alerta__botao:hover,
.abazze-alerta__botao:focus {
	background: #003C77;
	color: #fff;
}
.abazze-alerta__botao--vazado {
	background: transparent;
	border: 2px solid #0054A6;
	color: #003C77;
}
.abazze-alerta__botao--vazado:hover,
.abazze-alerta__botao--vazado:focus {
	background: #EDF3FA;
	color: #003C77;
}
@media (max-width: 900px) {
	.abazze-alerta__interno {
		grid-template-columns: 1fr;
		padding: 1.5rem 1.25rem;
	}
	.abazze-alerta__botao { white-space: normal; }
}

/* Painel de concursos de enfermagem. */
.abazze-concursos__atualizado {
	margin: 1.5rem 0 0;
	padding: 0.85rem 1.15rem;
	border-radius: 10px;
	background: #EEF3F9;
	font-size: 1rem;
	color: #35435C;
}
.abazze-concursos {
	display: grid;
	gap: 1.25rem;
	grid-template-columns: repeat(auto-fit, minmax(min(400px, 100%), 1fr));
	margin-top: 1.75rem;
}
.abazze-concurso {
	display: flex;
	flex-direction: column;
	padding: 1.5rem 1.6rem;
	border: 1px solid #DCE3EC;
	border-top: 4px solid #0054A6;
	border-radius: 14px;
	background: #fff;
}
.abazze-concurso__uf {
	display: inline-block;
	margin: 0 0 0.5rem;
	padding: 0.2rem 0.6rem;
	border-radius: 6px;
	background: #0054A6;
	color: #fff;
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.06em;
}
.abazze-concurso__orgao {
	margin: 0;
	font-size: 1.1875rem;
	line-height: 1.3;
}
.abazze-concurso__urgente {
	margin: 0.6rem 0 0;
	font-size: 0.9375rem;
	font-weight: 700;
	color: #A32B2B;
}
.abazze-concurso__dados {
	margin: 1.1rem 0 1.35rem;
	display: grid;
	gap: 0.55rem;
}
.abazze-concurso__dados div {
	display: grid;
	grid-template-columns: 9.5rem 1fr;
	gap: 0.75rem;
	font-size: 1rem;
	line-height: 1.45;
}
.abazze-concurso__dados dt {
	margin: 0;
	color: #5A6879;
}
.abazze-concurso__dados dd {
	margin: 0;
	color: #1F2C40;
}
.abazze-concurso__link {
	margin-top: auto;
	align-self: flex-start;
	padding: 0.7rem 1.2rem;
	border-radius: 10px;
	background: #0054A6;
	color: #fff;
	font-weight: 700;
	text-decoration: none;
}
.abazze-concurso__link:hover,
.abazze-concurso__link:focus {
	background: #003F7D;
	color: #fff;
}
.abazze-concursos__vazio {
	margin-top: 1.5rem;
	padding: 1.5rem 1.6rem;
	border: 1px dashed #C3CEDC;
	border-radius: 12px;
	color: #4A5568;
}
@media (max-width: 520px) {
	.abazze-concurso__dados div { grid-template-columns: 1fr; gap: 0.15rem; }
}

/* Vitrine do Abazze Online. */
.abazze-online {
	display: grid;
	gap: 1.25rem;
	grid-template-columns: repeat(auto-fit, minmax(min(380px, 100%), 1fr));
	margin-top: 1.75rem;
}
.abazze-produto {
	display: flex;
	flex-direction: column;
	padding: 1.6rem 1.7rem;
	border: 1px solid #DCE3EC;
	border-top: 4px solid #0054A6;
	border-radius: 14px;
	background: #fff;
}
.abazze-produto--breve {
	border-top-color: #9AA9BC;
	background: #F7F9FC;
}
.abazze-produto__selo {
	display: inline-block;
	align-self: flex-start;
	margin: 0 0 0.7rem;
	padding: 0.22rem 0.7rem;
	border-radius: 999px;
	background: #5A6879;
	color: #fff;
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}
.abazze-produto__nome {
	margin: 0 0 0.6rem;
	font-size: 1.25rem;
	line-height: 1.3;
}
.abazze-produto__texto {
	margin: 0 0 0.9rem;
	font-size: 1.0625rem;
	line-height: 1.55;
	color: #3C4A5E;
}
.abazze-produto__linha {
	margin: 0 0 0.5rem;
	font-size: 0.9875rem;
	line-height: 1.5;
	color: #5A6879;
}
.abazze-produto__botao {
	margin-top: auto;
	align-self: flex-start;
	padding: 0.8rem 1.4rem;
	border-radius: 12px;
	background: #0054A6;
	color: #fff;
	font-weight: 700;
	text-decoration: none;
}
.abazze-produto__botao:hover,
.abazze-produto__botao:focus { background: #003F7D; color: #fff; }
.abazze-produto__botao--vazado {
	background: transparent;
	border: 2px solid #5A6879;
	color: #35435C;
}
.abazze-produto__botao--vazado:hover,
.abazze-produto__botao--vazado:focus { background: #E7ECF3; color: #35435C; }

/* Passos do "Como funciona". */
.abazze-passos {
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(auto-fit, minmax(min(280px, 100%), 1fr));
	margin: 1.5rem 0 0;
	padding: 0;
	list-style: none;
	counter-reset: passo;
}
.abazze-passos li {
	position: relative;
	padding: 1.2rem 1.3rem 1.2rem 3.4rem;
	border-radius: 12px;
	background: #EEF3F9;
	font-size: 1.0625rem;
	line-height: 1.5;
	color: #35435C;
}
.abazze-passos li::before {
	counter-increment: passo;
	content: counter(passo);
	position: absolute;
	left: 1.2rem;
	top: 1.15rem;
	display: grid;
	place-items: center;
	width: 1.7rem;
	height: 1.7rem;
	border-radius: 50%;
	background: #0054A6;
	color: #fff;
	font-size: 0.9rem;
	font-weight: 700;
}

/* Capa do produto no cartao do Abazze Online. */
.abazze-produto__capa {
	display: block;
	width: 100%;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	margin: -0.4rem 0 1.1rem;
	border-radius: 10px;
	background: #F2F5F9;
}

/* Pop-up do concurso na home (computador) e faixa no rodape (celular).
   Conteudo em abazze_popup(), em inc/alerta.php. Quem fecha nao ve de novo. */
.abazze-popup[hidden],
.abazze-faixa-movel[hidden] { display: none !important; }
.abazze-popup {
	position: fixed;
	inset: 0;
	z-index: 9999;
	display: grid;
	place-items: center;
	padding: 1.5rem;
}
.abazze-popup__fundo {
	position: absolute;
	inset: 0;
	background: rgba(9, 22, 38, 0.62);
}
.abazze-popup__caixa {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1.12fr) minmax(0, 0.88fr);
	width: min(840px, 100%);
	overflow: hidden;
	border-radius: 18px;
	background: #17273D;
	box-shadow: 0 28px 70px rgba(9, 22, 38, 0.45);
	animation: abazze-popup-entra 0.28s ease-out;
}
@keyframes abazze-popup-entra {
	from { opacity: 0; transform: translateY(14px); }
	to   { opacity: 1; transform: translateY(0); }
}
@media (prefers-reduced-motion: reduce) {
	.abazze-popup__caixa { animation: none; }
}
.abazze-popup__lado {
	padding: 2.4rem 2.2rem 2.1rem;
}
.abazze-popup__foto {
	position: relative;
	min-height: 100%;
}
.abazze-popup__foto img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center top;
}
/* Emenda suave entre a foto e o painel azul. */
.abazze-popup__foto::before {
	content: "";
	position: absolute;
	inset: 0 auto 0 0;
	width: 70px;
	background: linear-gradient(to right, #17273D, rgba(23, 39, 61, 0.55) 45%, rgba(23, 39, 61, 0));
}
.abazze-popup__x {
	position: absolute;
	top: 0.7rem;
	right: 0.7rem;
	z-index: 2;
	width: 2.2rem;
	height: 2.2rem;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: rgba(9, 22, 38, 0.55);
	color: #fff;
	font-size: 1.5rem;
	line-height: 1;
	cursor: pointer;
}
.abazze-popup__x:hover,
.abazze-popup__x:focus { background: #09161F; color: #D5E041; }
.abazze-popup__selo {
	display: block;
	margin: 0 0 0.85rem;
	color: #D5E041;
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}
.abazze-popup__titulo {
	margin: 0 0 0.8rem;
	font-size: 1.9rem;
	line-height: 1.15;
	letter-spacing: -0.01em;
	color: #fff;
}
.abazze-popup__texto {
	margin: 0 0 0.9rem;
	font-size: 1rem;
	line-height: 1.55;
	color: rgba(255, 255, 255, 0.84);
}
.abazze-popup__prazo {
	display: inline-block;
	margin: 0 0 1.3rem;
	padding: 0.4rem 0.85rem;
	border-radius: 999px;
	background: rgba(213, 224, 65, 0.16);
	font-size: 0.9375rem;
	font-weight: 700;
	color: #D5E041;
}
.abazze-popup__botao {
	display: block;
	padding: 0.95rem 1.3rem;
	border-radius: 12px;
	background: #D5E041;
	color: #17273D;
	font-weight: 700;
	text-align: center;
	text-decoration: none;
	transition: background 0.15s ease;
}
.abazze-popup__botao:hover,
.abazze-popup__botao:focus { background: #E4EE6A; color: #17273D; }
.abazze-popup__link {
	display: block;
	margin-top: 1rem;
	font-size: 0.9375rem;
	text-align: center;
	color: rgba(255, 255, 255, 0.82);
}
.abazze-popup__link:hover,
.abazze-popup__link:focus { color: #D5E041; }
/* Caixa estreita: o painel de texto ocupa tudo e a foto sai. */
@media (max-width: 760px) {
	.abazze-popup__caixa { grid-template-columns: 1fr; }
	.abazze-popup__foto { display: none; }
}

.abazze-faixa-movel {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 9998;
	display: grid;
	gap: 0.6rem;
	padding: 1rem 1.1rem 1.1rem;
	background: #EDF3FA;
	border-top: 3px solid #0054A6;
	box-shadow: 0 -8px 24px rgba(23, 39, 61, 0.14);
}
.abazze-faixa-movel__x {
	position: absolute;
	top: 0.3rem;
	right: 0.6rem;
	padding: 0.1rem 0.4rem;
	border: 0;
	background: transparent;
	color: #35435C;
	font-size: 1.5rem;
	line-height: 1;
	cursor: pointer;
}
.abazze-faixa-movel__texto {
	margin: 0;
	padding-right: 1.6rem;
	font-size: 0.9875rem;
	line-height: 1.45;
	color: #35435C;
}
.abazze-faixa-movel__botao {
	display: block;
	padding: 0.8rem 1.2rem;
	border-radius: 10px;
	background: #D5E041;
	color: #17273D;
	font-weight: 700;
	text-align: center;
	text-decoration: none;
}
/* No computador nao existe faixa; no celular nao existe pop-up. */
@media (min-width: 901px) {
	.abazze-faixa-movel { display: none !important; }
}
@media (max-width: 900px) {
	.abazze-popup { display: none !important; }
}

/* Acoes do cartao de concurso: edital oficial e guia gratuito. */
.abazze-concurso__acoes {
	display: flex;
	flex-wrap: wrap;
	gap: 0.7rem;
	margin-top: auto;
}
.abazze-concurso__link { margin-top: 0; }
.abazze-concurso__guia {
	align-self: flex-start;
	padding: 0.7rem 1.2rem;
	border-radius: 10px;
	border: 2px solid #0054A6;
	color: #003C77;
	font-weight: 700;
	text-decoration: none;
}
.abazze-concurso__guia:hover,
.abazze-concurso__guia:focus { background: #EDF3FA; color: #003C77; }

/* Dois botoes no pop-up, um por cargo. */
.abazze-popup__botoes {
	display: grid;
	gap: 0.7rem;
	grid-template-columns: 1fr 1fr;
}
@media (max-width: 480px) {
	.abazze-popup__botoes { grid-template-columns: 1fr; }
}

/* ============================================================
   DEPOIMENTOS DE ALUNOS
   Cartoes alimentados por inc/depoimentos.php. Aparecem na home
   e na pagina do Tecnico. So entram os autorizados.
   ============================================================ */
.abazze-depoimentos {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(280px, 100%), 1fr));
	gap: 1.25rem;
	margin-top: 2rem;
}
.abazze-depoimento {
	display: flex;
	flex-direction: column;
	gap: 1rem;
	margin: 0;
	padding: 1.6rem 1.5rem 1.4rem;
	border-radius: 16px;
	background: #fff;
	box-shadow: 0 2px 5px rgba(23, 39, 61, 0.05), 0 10px 26px rgba(23, 39, 61, 0.06);
}
.abazze-depoimento__texto {
	margin: 0;
	padding: 0;
	border: 0;
	font-size: 1.0625rem;
	line-height: 1.6;
	color: var(--wp--preset--color--texto, #17273D);
}
/* As aspas de abertura, em verde-limao, marcam que a voz e' do aluno. */
.abazze-depoimento__texto::before {
	content: "\201C";
	display: block;
	margin-bottom: -0.6rem;
	color: #C2CE2A;
	font-size: 2.6rem;
	line-height: 1;
}
.abazze-depoimento__quem {
	display: grid;
	gap: 0.15rem;
	margin-top: auto;
	padding-top: 0.9rem;
	border-top: 1px solid var(--wp--preset--color--borda, #DCE5EF);
}
.abazze-depoimento__nome {
	font-weight: 700;
	color: var(--wp--preset--color--texto, #17273D);
}
.abazze-depoimento__curso {
	font-size: 0.9375rem;
	color: var(--wp--preset--color--texto-apoio, #3C5170);
}
.abazze-depoimento__fonte {
	font-size: 0.8125rem;
	color: #5A6879;
}
