/* ==========================================================================
   Colégio Tiradentes — estilos do tema
   Medidas de referência: frames 88:* do Figma (largura 1920 px).
   ========================================================================== */

:root {
	--ct-azul: #005799;
	--ct-azul-medio: #0073ea;
	--ct-azul-vivo: #0098ff;
	--ct-azul-profundo: #002878;
	--ct-amarelo: #ffc236;
	--ct-laranja: #ff9901;
	--ct-azul-claro: #e6f3ff;
	--ct-texto: #4a5568;
	--ct-texto-cinza: #777;
	--ct-titulo-escuro: #333;
	--ct-borda: #d1d9e6;
	--ct-campo: #f7f8fc;
	--ct-whats: #25d366;
	/* MADE TOMMY é a fonte do Figma (arquivos em assets/fonts); Outfit fica como reserva. */
	--ct-f-titulo: "MADE TOMMY", "Outfit", system-ui, sans-serif;
	--ct-f-texto: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
	--ct-f-botao: "Poppins", var(--ct-f-texto);
	--ct-f-aspas: "Merriweather", Georgia, serif;
	--ct-gutter: 24px;
}

/* Base -------------------------------------------------------------------- */
*,
*::before,
*::after { box-sizing: border-box; }

html { overflow-x: clip; -webkit-text-size-adjust: 100%; }
html.ct-sem-rolagem { overflow: hidden; }

body {
	margin: 0;
	background: #fff;
	color: var(--ct-titulo-escuro);
	font-family: var(--ct-f-texto);
	font-size: 16px;
	line-height: 1.5;
	-webkit-font-smoothing: antialiased;
	overflow-x: clip;
}

img,
svg { max-width: 100%; height: auto; }
img { display: block; }

a { color: inherit; }
h1, h2, h3, h4, p, figure, blockquote, ul { margin: 0; }
button, input, select, textarea { font: inherit; color: inherit; }

:focus-visible { outline: 3px solid var(--ct-amarelo); outline-offset: 2px; border-radius: 4px; }

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0, 0, 0, 0);
	white-space: nowrap; border: 0;
}
.skip-link:focus {
	position: fixed !important; z-index: 1000; top: 8px; left: 8px;
	width: auto; height: auto; clip: auto; margin: 0;
	padding: 12px 18px; background: #fff; color: var(--ct-azul);
	font-weight: 700; border-radius: 8px; box-shadow: 0 4px 16px rgba(0, 0, 0, .2);
}

.ct-main:focus { outline: none; }

.ct-container {
	width: 100%;
	max-width: 1180px;
	margin-inline: auto;
	padding-inline: var(--ct-gutter);
}
.ct-container--estreito { max-width: calc(1110px + 2 * var(--ct-gutter)); }
.ct-container--texto { max-width: calc(760px + 2 * var(--ct-gutter)); }

mark.has-inline-color { background: transparent; }
.has-amarelo-color { color: var(--ct-amarelo) !important; }
.has-azul-color { color: var(--ct-azul) !important; }
.has-azul-medio-color { color: var(--ct-azul-medio) !important; }
.has-branco-color { color: #fff !important; }

/* Botões ------------------------------------------------------------------ */
.ct-btn,
.wp-block-button .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 49px;
	padding: 7px 24px;
	border: 1px solid transparent;
	border-radius: 10px;
	font-family: var(--ct-f-botao);
	font-weight: 700;
	font-size: 18px;
	line-height: 1.2;
	text-decoration: none;
	text-align: center;
	cursor: pointer;
	transition: background-color .2s, color .2s, border-color .2s, transform .2s, box-shadow .2s;
}
.ct-btn:hover,
.wp-block-button .wp-block-button__link:hover { transform: translateY(-1px); }

.ct-btn--solido { background: var(--ct-azul); color: #fff; }
.ct-btn--solido:hover { background: var(--ct-azul-profundo); }
.ct-btn--contorno { background: #fff; color: var(--ct-azul); border-color: var(--ct-azul); }
.ct-btn--contorno:hover { background: var(--ct-azul-claro); }
.ct-btn--contorno-claro { background: #fff; color: var(--ct-azul-vivo); border-color: var(--ct-azul-vivo); }
.ct-btn--contorno-claro:hover { background: var(--ct-azul-claro); }
.ct-btn--grande { min-height: 54px; padding: 13px 28px; font-family: var(--ct-f-titulo); font-size: 16px; }
.ct-btn--azul-quadrado { min-height: 52px; padding: 14px 26px; border-radius: 8px; background: var(--ct-azul); color: #fff; font-family: var(--ct-f-texto); font-size: 15px; }
.ct-btn--azul-quadrado:hover { background: var(--ct-azul-profundo); }

/* Botões de bloco (core/button) com classes do tema */
.wp-block-buttons { display: flex; flex-wrap: wrap; gap: 16px; }
.wp-block-button.ct-botao-solido .wp-block-button__link {
	min-height: 54px; min-width: 213px; padding: 13px 28px;
	background: var(--ct-azul); color: #fff;
	font-family: var(--ct-f-titulo); font-size: 16px;
}
.wp-block-button.ct-botao-solido .wp-block-button__link:hover { background: var(--ct-azul-profundo); }
.wp-block-button.ct-botao-amarelo .wp-block-button__link {
	min-height: 54px; min-width: 213px; padding: 13px 24px;
	background: var(--ct-amarelo); color: var(--ct-azul);
	font-family: var(--ct-f-titulo); font-size: 16px;
}
.wp-block-button.ct-botao-amarelo .wp-block-button__link:hover { background: #ffd36e; }
.wp-block-button.ct-botao-whats .wp-block-button__link::after {
	content: ""; width: 24px; height: 24px; flex: none;
	background: url("../img/ico-whatsapp-azul.svg") center / contain no-repeat;
}

/* Cabeçalho --------------------------------------------------------------- */
.ct-topbar { background: var(--ct-azul); padding: 9px 0; }
.ct-topbar__inner { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 30px; }
.ct-topbar__links { display: flex; flex-wrap: wrap; gap: 4px 22px; list-style: none; padding: 0; }
.ct-topbar__links a,
.ct-topbar__links span { color: #fff; font-family: var(--ct-f-titulo); font-size: 12px; line-height: 20px; text-decoration: none; }
.ct-topbar__links a:hover { text-decoration: underline; }

.ct-social { display: flex; gap: 5px; list-style: none; padding: 0; }
.ct-social__link { position: relative; display: block; width: 30px; height: 30px; border-radius: 50%; transition: transform .2s; }
.ct-social__link:hover { transform: scale(1.08); }
.ct-social__link img { width: 30px; height: 30px; }
.ct-social__glyph { position: absolute; left: 7.5px; top: 7.5px; width: 15px !important; height: 15px !important; }

.ct-header { position: relative; z-index: 50; }
.ct-menu { display: flex; justify-content: center; padding: 0 var(--ct-gutter); background: #fff; }
.ct-cabecalho-azul .ct-menu { background: var(--ct-azul); }
.ct-cabecalho-faixa .ct-menu { padding-bottom: 60px; }

.ct-menu__card {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 80px;
	width: min(1414px, 100%);
	height: 106px;
	padding: 16px 24px;
	background: #fff;
	border-radius: 24px;
	box-shadow: 0 4px 10px rgba(0, 0, 0, .07);
}
.ct-menu__logo { flex: none; display: block; width: 196px; }
.ct-menu__logo img { width: 196px; height: 62px; object-fit: contain; }
.ct-menu__painel { display: flex; align-items: center; gap: 80px; }

.ct-nav__lista { display: flex; align-items: center; gap: 33px; list-style: none; padding: 0; }
.ct-nav__lista > li > a {
	display: flex;
	align-items: center;
	height: 25.39px;
	padding: 0 18px;
	border-bottom: 3px solid transparent;
	color: #000;
	font-family: var(--ct-f-titulo);
	font-weight: 500;
	font-size: 16px;
	line-height: 22.4px;
	text-decoration: none;
	white-space: nowrap;
	transition: color .2s, border-color .2s;
}
.ct-nav__lista > li > a:hover { color: var(--ct-azul); border-bottom-color: rgba(255, 194, 54, .5); }
.ct-nav__lista > li.current-menu-item > a,
.ct-nav__lista > li.current-menu-ancestor > a,
.ct-nav__lista > li.current-page-ancestor > a,
.ct-nav__lista > li.current_page_parent > a {
	color: var(--ct-azul);
	font-weight: 700;
	border-bottom-color: var(--ct-amarelo);
}
.ct-nav__lista .sub-menu { display: none; }

.ct-menu__acoes { display: flex; align-items: center; gap: 16px; }
.ct-menu__acoes .ct-btn { width: 165px; }

.ct-menu__toggle {
	display: none;
	width: 48px; height: 48px;
	margin-left: auto;
	padding: 0;
	border: 0; border-radius: 10px;
	background: var(--ct-azul-claro);
	cursor: pointer;
}
.ct-menu__toggle-barras,
.ct-menu__toggle-barras::before,
.ct-menu__toggle-barras::after {
	display: block; width: 22px; height: 2.5px; margin: 0 auto;
	background: var(--ct-azul); border-radius: 2px;
	transition: transform .2s, opacity .2s;
}
.ct-menu__toggle-barras { position: relative; }
.ct-menu__toggle-barras::before,
.ct-menu__toggle-barras::after { content: ""; position: absolute; left: 0; }
.ct-menu__toggle-barras::before { top: -7px; }
.ct-menu__toggle-barras::after { top: 7px; }
.ct-menu-aberto .ct-menu__toggle-barras { background: transparent; }
.ct-menu-aberto .ct-menu__toggle-barras::before { transform: translateY(7px) rotate(45deg); }
.ct-menu-aberto .ct-menu__toggle-barras::after { transform: translateY(-7px) rotate(-45deg); }

@media (max-width: 1400px) {
	.ct-menu__card,
	.ct-menu__painel { gap: 40px; }
	.ct-nav__lista { gap: 12px; }
}

@media (max-width: 1260px) {
	.ct-menu__card,
	.ct-menu__painel { gap: 24px; }
	.ct-nav__lista { gap: 0; }
	.ct-nav__lista > li > a { padding: 0 12px; }
	.ct-menu__acoes { gap: 10px; }
	.ct-menu__acoes .ct-btn { width: 136px; padding-inline: 12px; }
}

@media (max-width: 1100px) {
	.ct-menu__card { height: 80px; gap: 16px; justify-content: space-between; border-radius: 18px; padding: 10px 16px; }
	.ct-menu__logo,
	.ct-menu__logo img { width: 150px; height: auto; }
	.ct-menu__toggle { display: block; }
	.ct-menu__painel {
		position: absolute;
		top: calc(100% + 8px);
		left: 0; right: 0;
		display: none;
		flex-direction: column;
		align-items: stretch;
		gap: 20px;
		padding: 20px;
		background: #fff;
		border-radius: 18px;
		box-shadow: 0 16px 40px rgba(0, 20, 60, .18);
	}
	.ct-menu-aberto .ct-menu__painel { display: flex; }
	.ct-nav__lista { flex-direction: column; align-items: stretch; gap: 4px; }
	.ct-nav__lista > li > a { height: auto; padding: 12px 8px; border-bottom-width: 0; border-left: 3px solid transparent; font-size: 18px; }
	.ct-nav__lista > li.current-menu-item > a,
	.ct-nav__lista > li.current-page-ancestor > a,
	.ct-nav__lista > li.current_page_parent > a { border-left-color: var(--ct-amarelo); }
	.ct-menu__acoes { flex-wrap: wrap; }
	.ct-menu__acoes .ct-btn { flex: 1 1 140px; width: auto; }
}

/* Seções e títulos compartilhados --------------------------------------- */
.ct-secao { padding: 64px 0; }

.ct-titulo-secao {
	color: var(--ct-azul);
	font-family: var(--ct-f-titulo);
	font-weight: 900;
	font-size: clamp(28px, 2.4vw + 10px, 36px);
	line-height: 1.2;
}
.ct-titulo-secao--azul-medio { color: var(--ct-azul-medio); font-weight: 800; padding: 10px 0 14px; }

.ct-titulo-caixa {
	color: var(--ct-azul);
	font-family: var(--ct-f-titulo);
	font-weight: 800;
	font-size: clamp(24px, 1.6vw + 10px, 30px);
	line-height: 1.3;
}

.ct-caixa-azul { background: var(--ct-azul-claro); border-radius: 28px; padding: 44px; }
.ct-caixa-azul__topo { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 24px; }

.ct-icone-circulo,
.ct-icone figure,
figure.ct-icone {
	display: grid;
	place-items: center;
	width: 46px;
	height: 46px;
	border-radius: 23px;
	background: var(--ct-azul-claro);
	font-size: 20px;
	line-height: 1;
}
figure.ct-icone img { width: 30px; height: 30px; object-fit: contain; }
figure.ct-icone--logo { width: 47px; height: 46px; border-radius: 0; background: none; }
figure.ct-icone--logo img { width: 47px; height: 45px; }

.ct-etiqueta {
	display: inline-flex;
	align-items: center;
	height: 26px;
	padding: 0 10px;
	border-radius: 999px;
	background: var(--ct-azul-claro);
	color: var(--ct-azul-vivo);
	font-family: var(--ct-f-texto);
	font-weight: 700;
	font-size: 10px;
	letter-spacing: .5px;
	text-decoration: none;
	text-transform: capitalize;
}

/* Hero interno (O Colégio, Ensino, Contato) ------------------------------- */
.ct-page-hero {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	min-height: 274px;
	padding: 27px var(--ct-gutter) 0;
	text-align: center;
}
.ct-page-hero__titulo,
.ct-page-hero h1 {
	max-width: 1466px;
	color: var(--ct-azul);
	font-family: var(--ct-f-titulo);
	font-weight: 900;
	font-size: clamp(30px, 2.6vw + 12px, 44px);
	line-height: 1.15;
}
.ct-page-hero__texto,
.ct-page-hero p {
	max-width: 1404px;
	padding: 18px 0 32px;
	color: var(--ct-azul);
	font-family: var(--ct-f-titulo);
	font-weight: 500;
	font-size: clamp(16px, .5vw + 13px, 18px);
	line-height: 1.51;
}
@media (max-width: 1000px) { .ct-page-hero p br { display: none; } }
.ct-page-hero--simples { min-height: 200px; padding-bottom: 24px; }
.ct-page-hero__acao { padding: 0 0 48px !important; }

/* Home — hero ------------------------------------------------------------- */
.ct-hero-home {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	min-height: 574px;
	padding: 106px var(--ct-gutter) 96px max(var(--ct-gutter), calc(50% - 492px));
	background: var(--ct-azul);
}
.ct-hero-home::before {
	content: "";
	position: absolute;
	z-index: -2;
	left: calc(50% - 396px);
	top: -193px;
	width: 1930px;
	height: 1323px;
	background: var(--ct-hero-bg, none) center / cover no-repeat;
	opacity: .06;
	pointer-events: none;
}
.ct-hero-home > * { position: relative; max-width: 597px; }
.ct-hero-home__logo img { width: 351px; height: auto; }
.ct-hero-home :is(h1, h2) {
	margin-top: 34px;
	color: #fff;
	font-family: var(--ct-f-titulo);
	font-weight: 500;
	font-size: clamp(32px, 2vw + 10px, 44px);
	line-height: 1.15;
}
.ct-hero-home__texto {
	max-width: 500px;
	margin-top: 22px;
	color: rgba(255, 255, 255, .82);
	font-family: var(--ct-f-titulo);
	font-size: 16px;
	line-height: 1.7;
}
.ct-hero-home > .ct-hero-home__foto {
	position: absolute;
	z-index: -1;
	left: calc(50% - 134px);
	bottom: 0;
	width: 824px;
	max-width: none;
	height: 565px;
}
.ct-hero-home__foto img { width: 100%; height: 100%; object-fit: cover; object-position: center bottom; }

@media (max-width: 1200px) {
	.ct-hero-home { padding-left: max(var(--ct-gutter), 5vw); }
	.ct-hero-home > * { max-width: 46%; }
	.ct-hero-home > .ct-hero-home__foto { left: auto; right: -40px; width: 62vw; height: auto; aspect-ratio: 824 / 565; max-width: none; }
	.ct-hero-home::before { left: 20vw; }
}
@media (max-width: 800px) {
	.ct-hero-home { min-height: 0; padding: 48px var(--ct-gutter) 0; text-align: left; }
	.ct-hero-home > * { max-width: none; }
	.ct-hero-home__logo img { width: 240px; }
	.ct-hero-home > .ct-hero-home__foto { position: relative; right: auto; z-index: 0; width: calc(100% + 2 * var(--ct-gutter)); max-width: none; margin: 24px calc(-1 * var(--ct-gutter)) 0; }
	.ct-hero-home::before { left: 0; top: 0; width: 100%; height: 100%; }
}

/* Home — slider do hero (Figma 206:2390: variantes “Padrão” e “Variante 2”) */
.ct-hero-slider { position: relative; display: grid; overflow: hidden; background: var(--ct-azul); }
.ct-hero-slider > .ct-hero-home { grid-area: 1 / 1; min-width: 0; transition: opacity .8s ease, visibility .8s; }
.ct-hero-slider > .ct-hero-home:not(:first-child),
.ct-hero-slider.is-iniciado > .ct-hero-home { opacity: 0; visibility: hidden; }
.ct-hero-slider.is-iniciado > .ct-hero-home.is-ativo { opacity: 1; visibility: visible; }
.ct-hero-controles { position: absolute; z-index: 2; left: 50%; bottom: 16px; display: flex; align-items: center; gap: 10px; transform: translateX(-50%); }
.ct-hero-controles .ct-carrossel__ponto { background: rgba(255, 255, 255, .45); }
.ct-hero-controles .ct-carrossel__ponto.is-ativo { background: var(--ct-amarelo); }
.ct-hero-pausa { display: grid; place-items: center; width: 28px; height: 28px; padding: 0; border: 0; border-radius: 50%; background: rgba(0, 40, 120, .55); color: #fff; font-size: 11px; line-height: 1; cursor: pointer; }
@media (min-width: 1201px) {
	.ct-hero-home--invertido { padding-left: calc(50% + 34px); }
	.ct-hero-home--invertido::before { left: calc(50% - 1165px); top: -447px; width: 1498px; height: 1498px; opacity: .11; }
	.ct-hero-home--invertido > .ct-hero-home__foto { left: calc(50% - 813px); top: -119px; bottom: auto; width: 923px; height: 923px; }
	.ct-hero-home--invertido .ct-hero-home__foto img { object-position: center; }
}
@media (min-width: 801px) and (max-width: 1200px) {
	.ct-hero-home--invertido { padding-left: 52%; }
	.ct-hero-home--invertido > * { max-width: none; }
	.ct-hero-home--invertido::before { left: -20vw; opacity: .11; }
	.ct-hero-home--invertido > .ct-hero-home__foto { left: -6vw; right: auto; bottom: -12vw; width: 58vw; height: 58vw; aspect-ratio: 1; }
}
@media (max-width: 800px) {
	.ct-hero-home { display: flex; flex-direction: column; }
	.ct-hero-home > .ct-hero-home__foto { margin-top: auto; padding-top: 24px; }
	.ct-hero-home--invertido > .ct-hero-home__foto { aspect-ratio: 923 / 693; }
	.ct-hero-home--invertido .ct-hero-home__foto img { object-position: center top; }
}

/* Home — indicadores ------------------------------------------------------ */
.ct-stats { padding: 56px 0; background: #fff; }
.ct-stats__grade {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	max-width: 1180px;
	margin: 0 auto;
	padding: 0 var(--ct-gutter);
}
.ct-stat { padding: 0 32px; border-right: 1px solid var(--ct-borda); }
.ct-stat:first-child { padding-left: 0; }
.ct-stat:last-child { border-right: 0; }
.ct-stat__numero {
	color: var(--ct-azul);
	font-family: var(--ct-f-titulo);
	font-weight: 900;
	font-size: 80px;
	line-height: 52px;
	letter-spacing: 6px;
	white-space: nowrap;
}
.ct-stat__numero:has(sub) { letter-spacing: -4px; }
.ct-stat__numero sub { vertical-align: baseline; font-size: 36px; line-height: 0; letter-spacing: 0; }
.ct-stat__rotulo {
	padding-top: 18px;
	color: var(--ct-azul);
	font-family: var(--ct-f-titulo);
	font-weight: 700;
	font-size: 16px;
	line-height: 25.6px;
}
.ct-stat__texto {
	padding-top: 6px;
	color: var(--ct-texto);
	font-family: var(--ct-f-titulo);
	font-weight: 500;
	font-size: 13.5px;
	line-height: 21.6px;
}
@media (max-width: 900px) {
	.ct-stats__grade { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 36px; }
	.ct-stat:nth-child(2n) { border-right: 0; }
	.ct-stat:nth-child(2n + 1) { padding-left: 0; }
	.ct-stat__numero { font-size: 64px; letter-spacing: 3px; }
}
@media (max-width: 480px) {
	.ct-stat { padding: 0 14px; }
	.ct-stat__numero { font-size: 48px; line-height: 44px; letter-spacing: 1px; }
	.ct-stat__numero sub { font-size: 26px; }
}

/* Home — diferenciais ----------------------------------------------------- */
.ct-diferenciais { padding: 64px var(--ct-gutter) 0; text-align: center; }
.ct-diferenciais > h2 {
	color: var(--ct-azul);
	font-family: var(--ct-f-titulo);
	font-weight: 900;
	font-size: clamp(26px, 2.2vw + 10px, 36px);
	line-height: 1.22;
}
.ct-diferenciais__grade {
	display: grid;
	grid-template-columns: repeat(4, 228px);
	justify-content: center;
	gap: 27px;
	margin-top: 56px;
}
.ct-diferencial {
	display: flex;
	flex-direction: column;
	align-items: center;
	min-height: 310px;
	padding: 28px 26px;
	background: #fff;
	border: 1px solid var(--ct-borda);
	border-radius: 18px;
	text-align: center;
}
.ct-diferencial h3 {
	margin-top: 16px;
	color: var(--ct-azul);
	font-family: var(--ct-f-texto);
	font-weight: 700;
	font-size: 15px;
	line-height: 1.1;
	min-height: 24px;
	display: flex; align-items: center;
}
.ct-diferencial p {
	margin-top: 20px;
	color: var(--ct-texto);
	font-size: 13px;
	line-height: 20.8px;
}
@media (max-width: 1060px) {
	.ct-diferenciais__grade { grid-template-columns: repeat(2, minmax(0, 300px)); }
}
@media (max-width: 560px) {
	.ct-diferenciais__grade { grid-template-columns: minmax(0, 1fr); }
	.ct-diferencial { min-height: 0; }
}

/* Home — etapas ----------------------------------------------------------- */
.ct-etapas-home { padding: 84px var(--ct-gutter) 0; }
.ct-etapas-home__topo {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 16px 24px;
	max-width: 1068px;
	margin: 0 auto;
}
.ct-etapas-home__topo h2 {
	color: var(--ct-azul);
	font-family: var(--ct-f-titulo);
	font-weight: 800;
	font-size: clamp(24px, 1.6vw + 10px, 30px);
	line-height: 1.3;
}
.ct-etapas-home__topo .wp-block-button__link { min-width: 255px; }

.ct-etapas-cards {
	display: grid;
	grid-template-columns: repeat(5, 215px);
	justify-content: center;
	gap: 13.75px;
	margin: 38px auto 0;
	padding: 0;
	list-style: none;
}
.ct-etapa-card__link {
	position: relative;
	display: block;
	height: 270px;
	overflow: hidden;
	border-radius: 14px;
	background: var(--ct-azul-profundo);
	color: #fff;
	text-decoration: none;
}
.ct-etapa-card__imagem { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.ct-etapa-card--ensino-fundamental .ct-etapa-card__imagem { object-position: 50% 73.5%; }
.ct-etapa-card--ensino-medio .ct-etapa-card__imagem { object-position: 73.6% 50%; }
.ct-etapa-card--sistema-de-tempo-integral .ct-etapa-card__imagem { object-position: 59.6% 50%; }
.ct-etapa-card__link::after {
	content: "";
	position: absolute;
	inset: 27px 0 0;
	background: linear-gradient(180deg, rgba(0, 40, 120, 0) 30%, #002878 78.8%);
}
.ct-etapa-card__link:hover .ct-etapa-card__imagem { transform: scale(1.04); }
.ct-etapa-card__texto { position: absolute; z-index: 1; left: 17px; right: 17px; bottom: 22px; display: flex; flex-direction: column; gap: 9px; }
.ct-etapa-card__rotulo {
	color: var(--ct-amarelo);
	font-family: var(--ct-f-titulo);
	font-weight: 700;
	font-size: 10.5px;
	line-height: 16.8px;
	letter-spacing: 1px;
	text-transform: uppercase;
}
.ct-etapa-card__resumo {
	color: rgba(255, 255, 255, .8);
	font-family: var(--ct-f-titulo);
	font-weight: 500;
	font-size: 12px;
	line-height: 18px;
}
@media (max-width: 1180px) {
	.ct-etapas-cards { grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); max-width: 1068px; }
}
@media (max-width: 420px) {
	.ct-etapas-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
	.ct-etapa-card__link { height: 230px; }
}

/* Depoimentos --------------------------------------------------------------- */
.ct-depoimentos .ct-caixa-azul { padding: 44px; }
.ct-depoimentos__titulo {
	color: var(--ct-azul);
	font-family: var(--ct-f-texto);
	font-weight: 800;
	font-size: clamp(24px, 1.6vw + 10px, 30px);
	line-height: 1.3;
}
.ct-depoimentos__grade {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 32px 20px;
	margin-top: 32px;
	padding: 0;
	list-style: none;
}
.ct-depoimento {
	display: flex;
	flex-direction: column;
	padding: 26px;
	background: #fff;
	border-radius: 18px;
	box-shadow: 0 4px 9px rgba(0, 20, 60, .06);
}
/* Aspas retas via CSS: o wptexturize converteria " em “ no HTML do bloco. */
.ct-depoimento__aspas { display: block; height: 31px; color: var(--ct-azul-vivo); font-family: var(--ct-f-aspas); font-weight: 400; font-style: normal; font-size: 38px; line-height: 30.4px; }
.ct-depoimento__aspas::before { content: "\0022"; }
.ct-depoimento__texto { margin: 0; padding-top: 10px; color: var(--ct-texto); font-style: italic; font-size: 13px; line-height: 21.45px; }
.ct-depoimento__texto p { margin: 0; }
.ct-depoimento__autor { display: flex; align-items: center; gap: 10px; padding-top: 18px; }
/* Figma: imagem 38×57 recortada em círculo de 38px, alinhada ao topo. */
.ct-depoimento__foto { flex: none; display: block; width: 38px; height: 38px; overflow: hidden; border-radius: 50%; }
.ct-depoimento__avatar { display: block; width: 38px; height: 57px; max-width: none; object-fit: cover; }
.ct-depoimento__autor > span { display: flex; flex-direction: column; }
.ct-depoimento__nome { color: var(--ct-azul-medio); font-weight: 700; font-size: 12.5px; line-height: 20px; }
.ct-depoimento__descricao { color: var(--ct-texto); font-size: 11px; line-height: 17.6px; }
@media (max-width: 900px) {
	.ct-depoimentos__grade { grid-template-columns: minmax(0, 1fr); gap: 20px; }
	.ct-caixa-azul,
	.ct-depoimentos .ct-caixa-azul { padding: 28px 20px; }
}

/* Notícias — Home ------------------------------------------------------------ */
.ct-noticias-home__topo { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 16px; }
.ct-noticias-home__topo .ct-titulo-secao { padding: 10px 0 14px; }
.ct-noticias-home__topo .ct-btn { min-width: 213px; }
.ct-noticias-home__grade { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; margin-top: 28px; }

.ct-news--card .ct-news__link {
	display: flex;
	flex-direction: column;
	height: 100%;
	overflow: hidden;
	border: 1px solid var(--ct-borda);
	border-radius: 14px;
	background: #fff;
	text-decoration: none;
	transition: box-shadow .2s, transform .2s;
}
.ct-news--card .ct-news__link:hover { box-shadow: 0 10px 24px rgba(0, 20, 60, .12); transform: translateY(-2px); }
.ct-news--card .ct-news__imagem { display: block; height: 224px; background: var(--ct-azul-claro); }
.ct-news--card .ct-news__imagem img { width: 100%; height: 100%; object-fit: cover; }
.ct-news--card .ct-news__texto { display: block; padding: 18px; }
.ct-news--card .ct-news__titulo { color: var(--ct-azul-medio); font-weight: 700; font-size: 14.5px; line-height: 20.3px; }
@media (max-width: 900px) {
	.ct-noticias-home__grade { grid-template-columns: minmax(0, 1fr); }
	.ct-news--card .ct-news__imagem { height: auto; aspect-ratio: 16 / 9; }
}

/* Notícias — mosaico (Novidades) ------------------------------------------- */
.ct-noticias-lista { padding-top: 89px; }
.ct-mosaico {
	display: grid;
	grid-template-columns: 351fr 348fr 351fr;
	gap: 30px;
	margin-top: 0;
}
.ct-mosaico > :nth-child(4n + 1) { grid-column: 1 / span 2; }
.ct-mosaico > :nth-child(4n + 2) { grid-column: 3; }
.ct-mosaico > :nth-child(4n + 3) { grid-column: 1; }
.ct-mosaico > :nth-child(4n + 4) { grid-column: 2 / span 2; }
@media (min-width: 801px) { .ct-mosaico > :nth-child(4n + 3) .ct-news__imagem img { object-position: left center; } }
.ct-news--mosaico .ct-news__link {
	position: relative;
	display: block;
	height: 359px;
	overflow: hidden;
	border-radius: 5px;
	color: #fff;
	text-decoration: none;
	box-shadow: 0 19px 17.5px rgba(0, 0, 0, .5);
}
.ct-news--mosaico .ct-news__imagem { position: absolute; inset: 0; background: var(--ct-azul-profundo); }
.ct-news--mosaico .ct-news__imagem img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.ct-news--mosaico .ct-news__imagem::after { content: ""; position: absolute; inset: 0; background: rgba(0, 0, 0, .5); transition: background .2s; }
.ct-news--mosaico .ct-news__link:hover img { transform: scale(1.04); }
.ct-news--mosaico .ct-news__link:hover .ct-news__imagem::after { background: rgba(0, 0, 0, .4); }
.ct-news--mosaico .ct-news__texto {
	position: absolute;
	left: 0; right: 0; bottom: 34px;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 14px;
	padding: 18px 18px 18px 24px;
}
.ct-news--mosaico .ct-news__titulo {
	display: -webkit-box;
	overflow: hidden;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	font-family: var(--ct-f-titulo); font-weight: 700; font-size: 18px; line-height: 20.3px;
}
/* Figma: o bloco de texto parte de uma posição fixa (221px nos cards estreitos, 225px nos largos) */
@media (min-width: 801px) {
	.ct-news--mosaico .ct-news__texto { top: 221px; bottom: auto; }
	.ct-mosaico > :nth-child(4n + 1) .ct-news__texto,
	.ct-mosaico > :nth-child(4n + 4) .ct-news__texto { top: 225px; }
}
@media (max-width: 800px) {
	.ct-mosaico { grid-template-columns: minmax(0, 1fr); gap: 20px; }
	.ct-mosaico > * { grid-column: auto !important; }
	.ct-news--mosaico .ct-news__link { height: 280px; }
}

.ct-paginacao { margin-top: 40px; }
.ct-paginacao .nav-links { display: flex; flex-wrap: wrap; gap: 8px; }
.ct-paginacao .page-numbers {
	display: grid; place-items: center;
	min-width: 40px; height: 40px; padding: 0 12px;
	border-radius: 999px;
	background: rgba(0, 152, 255, .12);
	color: var(--ct-azul);
	font-weight: 700;
	text-decoration: none;
}
.ct-paginacao .page-numbers.current { background: var(--ct-azul-vivo); color: #fff; }
.ct-vazio { margin-top: 24px; color: var(--ct-texto); }

/* Galeria (bloco core/gallery com a classe ct-galeria) */
.ct-galeria-secao { padding: 89px var(--ct-gutter) 64px; }
.ct-galeria-secao > * { max-width: 1110px; margin-inline: auto; }
.ct-galeria-secao > h2 { color: var(--ct-azul-medio); font-family: var(--ct-f-titulo); font-weight: 800; font-size: clamp(28px, 2.4vw + 10px, 36px); line-height: 1.2; padding: 10px 0 14px; }
.wp-block-gallery.ct-galeria {
	display: grid !important;
	grid-template-columns: 351fr 348fr 351fr;
	gap: 30px !important;
	margin-top: 0;
}
.wp-block-gallery.ct-galeria > .wp-block-image { width: auto !important; margin: 0 !important; height: 359px; overflow: hidden; border-radius: 5px; box-shadow: 0 19px 17.5px rgba(0, 0, 0, .5); }
.wp-block-gallery.ct-galeria > .wp-block-image img { width: 100% !important; height: 100% !important; object-fit: cover; }
.wp-block-gallery.ct-galeria > :nth-child(4n + 1) { grid-column: 1 / span 2; }
.wp-block-gallery.ct-galeria > :nth-child(4n + 2) { grid-column: 3; }
.wp-block-gallery.ct-galeria > :nth-child(4n + 3) { grid-column: 1; }
.wp-block-gallery.ct-galeria > :nth-child(4n + 4) { grid-column: 2 / span 2; }
.wp-block-gallery.ct-galeria > :nth-child(4n + 4) img { object-position: 50% 10%; }
/* Carrossel (main.js marca a galeria com ct-galeria--paginada): as 4 fotos de cada página ocupam as
   mesmas células da grade e a página nova surge em dissolve sobre a anterior (protótipo 88:6799 → 88:6819 → 88:6840) */
.wp-block-gallery.ct-galeria--paginada > :nth-child(4n + 1),
.wp-block-gallery.ct-galeria--paginada > :nth-child(4n + 2) { grid-row: 1; }
.wp-block-gallery.ct-galeria--paginada > :nth-child(4n + 3),
.wp-block-gallery.ct-galeria--paginada > :nth-child(4n + 4) { grid-row: 2; }
.wp-block-gallery.ct-galeria--paginada > .wp-block-image:not(.is-ativa):not(.is-anterior) { visibility: hidden; opacity: 0 !important; transition: none !important; pointer-events: none; }
.wp-block-gallery.ct-galeria--paginada > .is-anterior { z-index: 1; visibility: visible; opacity: 1 !important; transition: none !important; }
.wp-block-gallery.ct-galeria--paginada > .is-ativa { z-index: 2; }
.wp-block-gallery.ct-galeria--paginada > .is-ativa.is-entrando { transition: opacity 1.5s cubic-bezier(.2, .6, .3, 1) 0ms !important; }
/* Paginação: 30px abaixo das fotos, 56px de altura total e ponto ativo em azul vivo (Figma 88:6815) */
.wp-block-gallery.ct-galeria + .ct-carrossel__pontos { margin-top: 30px; min-height: 56px; }
.wp-block-gallery.ct-galeria + .ct-carrossel__pontos .ct-carrossel__ponto.is-ativo { background: var(--ct-azul-vivo); }
@media (max-width: 800px) {
	.wp-block-gallery.ct-galeria { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px !important; }
	/* Coluna sempre explícita: com grid-column:auto e grid-row fixo (carrossel) as fotos de cada página
	   escapavam para colunas implícitas e ficavam com ~12px de largura. */
	.wp-block-gallery.ct-galeria > * { height: 180px !important; }
	.wp-block-gallery.ct-galeria > :nth-child(4n + 2) { grid-column: 1 !important; }
	.wp-block-gallery.ct-galeria > :nth-child(4n + 3) { grid-column: 2 !important; }
	.wp-block-gallery.ct-galeria > :nth-child(4n + 1),
	.wp-block-gallery.ct-galeria > :nth-child(4n + 4) { grid-column: 1 / -1 !important; height: 220px !important; }
	.wp-block-gallery.ct-galeria--paginada > :nth-child(4n + 1) { grid-row: 1; }
	.wp-block-gallery.ct-galeria--paginada > :nth-child(4n + 2),
	.wp-block-gallery.ct-galeria--paginada > :nth-child(4n + 3) { grid-row: 2; }
	.wp-block-gallery.ct-galeria--paginada > :nth-child(4n + 4) { grid-row: 3; }
}

/* Formulário ---------------------------------------------------------------- */
.ct-form-secao {
	position: relative;
	isolation: isolate;
	overflow-x: clip;
	padding: 56px var(--ct-gutter) 64px;
	scroll-margin-top: 24px;
}
.ct-form-secao::before,
.ct-form-secao::after {
	content: "";
	position: absolute;
	z-index: -1;
	width: 227px;
	height: 262px;
	background: url("../img/escudo-contorno.svg") center / contain no-repeat;
	pointer-events: none;
}
.ct-form-secao::before { left: calc(50% - 412px); top: 307px; }
.ct-form-secao::after { left: calc(50% + 170px); top: 84px; }
.ct-form-cartao {
	width: min(487.8px, 100%);
	margin: 0 auto;
	padding: 34px 32px;
	background: #fff;
	border-radius: 20px;
	box-shadow: 0 30px 35px rgba(0, 20, 60, .35);
}
.ct-form__titulo { padding-bottom: 18px; color: var(--ct-titulo-escuro); font-family: var(--ct-f-titulo); font-weight: 800; font-size: 24px; line-height: 30.4px; }
@media (min-width: 561px) { .ct-form__titulo { white-space: nowrap; } }
.ct-form__campo { display: flex; flex-direction: column; padding-top: 20px; }
.ct-form__campo:first-of-type { padding-top: 26px; }
.ct-form__campo label {
	padding-bottom: 8px;
	color: var(--ct-texto);
	font-family: var(--ct-f-titulo);
	font-weight: 700;
	font-size: 11.5px;
	line-height: 18.4px;
	letter-spacing: .6px;
	text-transform: uppercase;
}
.ct-form__campo input,
.ct-form__campo select {
	width: 100%;
	height: 45px;
	padding: 0 16px;
	background: var(--ct-campo);
	border: 1px solid var(--ct-borda);
	border-radius: 9px;
	color: var(--ct-titulo-escuro);
	font-family: var(--ct-f-texto);
	font-size: 14.5px;
	transition: border-color .2s, box-shadow .2s;
}
.ct-form__campo input::placeholder { color: #757575; opacity: 1; }
.ct-form__campo input:focus,
.ct-form__campo select:focus { outline: none; border-color: var(--ct-azul-vivo); box-shadow: 0 0 0 3px rgba(0, 152, 255, .2); }
.ct-form__campo [aria-invalid="true"] { border-color: #c62828; }
.ct-form__campo--select { padding-bottom: 20px; }
.ct-form__campo select {
	height: 44px;
	appearance: none;
	padding-right: 40px;
	background: var(--ct-campo) url("../img/ico-chevron.png") right 18px center / 12px 8px no-repeat;
	cursor: pointer;
}
.ct-form__erro { min-height: 0; color: #c62828; font-size: 12px; line-height: 1.4; }
.ct-form__erro:not(:empty) { padding-top: 6px; }
.ct-form__privacidade {
	padding: 11px 0;
	color: var(--ct-texto);
	font-family: var(--ct-f-titulo);
	font-size: 11.5px;
	line-height: 18.4px;
	letter-spacing: .6px;
	text-transform: uppercase;
}
.ct-form__privacidade a { color: var(--ct-azul-medio); }
.ct-form__enviar {
	width: 100%;
	height: 52px;
	margin-top: 14px;
	border: 0;
	border-radius: 10px;
	background: var(--ct-amarelo);
	color: var(--ct-azul-medio);
	font-family: var(--ct-f-titulo);
	font-weight: 700;
	font-size: 16px;
	cursor: pointer;
	transition: background-color .2s;
}
.ct-form__enviar:hover { background: #ffd36e; }
.ct-form__enviar[disabled] { opacity: .7; cursor: progress; }
.ct-form__status { font-size: 14px; line-height: 1.4; }
.ct-form__status:not(:empty) { padding-top: 12px; }
.ct-form__status.is-ok { color: #1b7f3a; font-weight: 600; }
.ct-form__status.is-erro { color: #c62828; }
.ct-form__armadilha { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
@media (max-width: 860px) {
	.ct-form-secao::before,
	.ct-form-secao::after { display: none; }
	.ct-form-cartao { padding: 28px 20px; box-shadow: 0 18px 30px rgba(0, 20, 60, .22); }
	.ct-form__titulo { font-size: 21px; line-height: 1.3; }
}

/* Chamada “Venha conhecer” ----------------------------------------------------- */
.ct-cta { padding: 64px var(--ct-gutter); }
.ct-cta__caixa {
	position: relative;
	isolation: isolate;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	max-width: 1222px;
	min-height: 349px;
	margin: 0 auto;
	padding: 48px var(--ct-gutter);
	overflow: hidden;
	border-radius: 36px;
	background: rgba(0, 87, 153, .92);
	text-align: center;
}
.ct-cta__caixa::before,
.ct-cta__caixa::after { content: ""; position: absolute; z-index: -1; background: center / contain no-repeat; pointer-events: none; }
.ct-cta__caixa::before { left: calc(50% - 280px); top: -92px; width: 502px; height: 579px; background-image: url("../img/cta-escudo-grande.svg"); }
.ct-cta__caixa::after { left: calc(50% - 214px); top: -17px; width: 370px; height: 429px; background-image: url("../img/cta-escudo-pequeno.svg"); }
.ct-cta__caixa h2 { color: #fff; font-family: var(--ct-f-titulo); font-weight: 900; font-size: clamp(26px, 2.2vw + 10px, 36px); line-height: 1.2; }
.ct-cta__caixa p { max-width: 560px; padding-top: 14px; color: rgba(255, 255, 255, .8); font-size: 15px; line-height: 25.5px; }
.ct-cta__caixa .wp-block-buttons { justify-content: center; padding-top: 30px; }
@media (max-width: 600px) { .ct-cta__caixa { border-radius: 24px; } }

/* O Colégio — história ---------------------------------------------------------- */
.ct-historia {
	display: grid;
	grid-template-columns: minmax(0, 547px) minmax(0, 431px);
	column-gap: 127px;
	justify-content: center;
	max-width: 1132px;
	margin: 0 auto;
	padding: 14px var(--ct-gutter) 64px;
}
.ct-historia h2 { color: var(--ct-azul); font-family: var(--ct-f-titulo); font-weight: 900; font-size: 32px; line-height: 38.4px; }
.ct-historia__texto { grid-column: 1; }
.ct-historia__texto p { color: var(--ct-texto-cinza); font-family: var(--ct-f-titulo); font-weight: 500; font-size: 16px; line-height: 19.5px; text-align: justify; hyphens: auto; }
.ct-historia__texto h2 + p { margin-top: 40px; }
.ct-historia__texto p + p { margin-top: 19.5px; }
.ct-historia > .ct-historia__imagem { grid-column: 2; grid-row: 1; margin-top: 94px; height: 294px; overflow: hidden; }
.ct-historia__imagem img { width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 900px) {
	.ct-historia { grid-template-columns: minmax(0, 1fr); row-gap: 28px; }
	.ct-historia > .ct-historia__imagem { grid-column: 1; grid-row: auto; margin-top: 0; height: auto; aspect-ratio: 431 / 294; }
}

/* O Colégio — missão, visão e valores ------------------------------------------- */
.ct-mvv { display: grid; grid-template-columns: repeat(2, minmax(0, 436px)); justify-content: center; gap: 80px 37px; padding: 44px var(--ct-gutter) 0; }
.ct-mvv__cartao { padding: 28px 26px; background: #fff; border: 1px solid var(--ct-borda); border-radius: 18px; min-height: 207px; }
.ct-mvv__cartao--largo { grid-column: 1 / -1; min-height: 253px; }
.ct-mvv__topo { display: flex; align-items: center; gap: 14px; }
.ct-mvv__topo h3 { color: var(--ct-azul); font-family: var(--ct-f-titulo); font-weight: 700; font-size: 15px; line-height: 24px; }
.ct-mvv__cartao p { color: var(--ct-texto); font-family: var(--ct-f-titulo); font-weight: 500; font-size: 13px; line-height: 20.8px; }
.ct-mvv__topo + p { padding-top: 20px; }
.ct-mvv__valores { display: grid; grid-template-columns: 403fr 432fr; gap: 22px; padding-top: 20px; }
.ct-mvv__valores strong { font-weight: 900; }
@media (max-width: 900px) {
	.ct-mvv { grid-template-columns: minmax(0, 1fr); gap: 20px; }
	.ct-mvv__valores { grid-template-columns: minmax(0, 1fr); gap: 0; }
	.ct-mvv__cartao,
	.ct-mvv__cartao--largo { min-height: 0; }
}

/* O Colégio — Nosso Mestre ------------------------------------------------------ */
.ct-mestre { padding: 64px var(--ct-gutter) 0; }
.ct-mestre__caixa {
	display: grid;
	grid-template-columns: 386px minmax(0, 560px);
	align-items: start;
	gap: 10px 62px;
	max-width: 1129px;
	min-height: 558px;
	margin: 0 auto;
	padding: 64px 36px 62px 84px;
	border-radius: 28px;
	background: var(--ct-azul-claro);
}
.ct-mestre__texto { max-width: 386px; }
.ct-mestre__texto h2 { color: #444; font-family: var(--ct-f-titulo); font-weight: 900; font-size: 32px; line-height: 38.4px; }
.ct-mestre__texto p { color: var(--ct-texto-cinza); font-family: var(--ct-f-titulo); font-size: 15px; line-height: 19.5px; text-align: justify; hyphens: none; }
.ct-mestre__texto h2 + p { margin-top: 41px; }
.ct-mestre__texto p + p { margin-top: 21px; }
.ct-mestre__imagem { height: 420px; overflow: hidden; border-radius: 24px; }
.ct-mestre__imagem img { width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 1000px) {
	.ct-mestre__caixa { grid-template-columns: minmax(0, 1fr); padding: 32px 24px; gap: 28px; min-height: 0; }
	.ct-mestre__texto { max-width: none; }
	.ct-mestre__imagem { height: auto; aspect-ratio: 4 / 3; }
}

/* Equipe ------------------------------------------------------------------------- */
.ct-equipe-carrossel { padding: 64px var(--ct-gutter); }
.ct-equipe-carrossel .ct-caixa-azul { max-width: 1156px; margin: 0 auto; }
.ct-carrossel { margin-top: 36px; }
.ct-carrossel__trilho {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: calc((100% - 40px) / 3);
	gap: 20px;
	padding: 0;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	list-style: none;
}
.ct-carrossel__trilho::-webkit-scrollbar { display: none; }
.ct-carrossel__trilho > li { scroll-snap-align: start; }
.ct-carrossel__pontos { display: flex; gap: 6px; padding-top: 19px; min-height: 36px; }
.ct-carrossel__ponto { width: 17px; height: 17px; padding: 0; border: 0; border-radius: 999px; background: rgba(0, 152, 255, .18); cursor: pointer; transition: width .2s, background-color .2s; }
.ct-carrossel__ponto.is-ativo { width: 34px; background: var(--ct-azul); }

.ct-membro { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 11px 0; text-align: center; }
.ct-escudo { position: relative; width: min(289.44px, 100%); aspect-ratio: 289.44 / 335.4; }
.ct-escudo__moldura { position: absolute; left: -2.76%; top: -3.18%; width: 105.63%; max-width: none; height: 106.13%; }
.ct-escudo__foto {
	position: absolute;
	inset: 0;
	-webkit-mask: url("../img/escudo-mascara.svg") center / 100% 100% no-repeat;
	mask: url("../img/escudo-mascara.svg") center / 100% 100% no-repeat;
	background: #fff;
}
.ct-escudo__foto img { width: 100%; height: 100%; object-fit: cover; object-position: center top; }
.ct-escudo__foto.is-vazia { background: linear-gradient(160deg, #f7f8fc, #e6f3ff); }
.ct-escudo__borda { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.ct-membro__nome {
	padding-top: 2px;
	color: var(--ct-amarelo);
	font-family: var(--ct-f-titulo);
	font-weight: 700;
	font-size: 14px;
	line-height: 16.8px;
	letter-spacing: 1px;
	text-transform: uppercase;
}
.ct-membro__cargo {
	max-width: 347px;
	padding-bottom: 10px;
	color: var(--ct-azul-medio);
	font-family: var(--ct-f-titulo);
	font-size: 16px;
	line-height: 18px;
	text-transform: uppercase;
}
.ct-equipe-grade {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 347px));
	justify-content: center;
	gap: 20px;
	padding: 24px var(--ct-gutter) 120px;
	list-style: none;
}
.ct-equipe-grade .ct-membro__cargo { color: var(--ct-azul); }
@media (max-width: 1440px) { .ct-equipe-grade { grid-template-columns: repeat(3, minmax(0, 347px)); } }
@media (max-width: 1000px) {
	.ct-equipe-grade { grid-template-columns: repeat(2, minmax(0, 347px)); }
	.ct-carrossel__trilho { grid-auto-columns: calc((100% - 20px) / 2); }
}
@media (max-width: 600px) {
	.ct-equipe-grade { grid-template-columns: minmax(0, 300px); }
	.ct-carrossel__trilho { grid-auto-columns: 82%; }
	.ct-membro__cargo { font-size: 14px; }
}

/* Ensino — acordeão --------------------------------------------------------------- */
.ct-acordeao { border-top: .667px solid rgba(255, 255, 255, .09); background: #fff; }
.ct-etapa { scroll-margin-top: 16px; }
.ct-etapa__faixa {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	min-height: 330px;
	background: var(--ct-azul);
	border-bottom: .667px solid rgba(255, 255, 255, .09);
}
.ct-etapa__faixa::before {
	content: "";
	position: absolute;
	z-index: -2;
	inset: 0 auto 0 var(--ct-bg-x, 30%);
	width: var(--ct-bg-l, 70%);
	background: var(--ct-etapa-bg, none) 50% var(--ct-bg-y, 50%) / var(--ct-bg-tam, cover) no-repeat;
	opacity: .5;
}
/* Enquadramento das fotos conforme Figma 178:6846 (posição e escala por etapa). */
.ct-etapa--educacao-infantil { --ct-bg-x: 34.62%; --ct-bg-l: 65.4%; --ct-bg-y: 20.4%; --ct-bg-tam: 100% auto; }
.ct-etapa--ensino-fundamental { --ct-bg-x: 24.46%; --ct-bg-l: 75.56%; --ct-bg-y: 23.2%; --ct-bg-tam: 100% auto; }
.ct-etapa--ensino-medio { --ct-bg-x: 8.88%; --ct-bg-l: 100%; --ct-bg-y: 10.9%; --ct-bg-tam: 100% auto; }
.ct-etapa--pre-vestibular { --ct-bg-x: 0%; --ct-bg-l: 100%; }
.ct-etapa--sistema-de-tempo-integral { --ct-bg-x: 29.29%; --ct-bg-l: 70.7%; --ct-bg-y: 28.4%; --ct-bg-tam: 100% auto; }
.ct-etapa__faixa::after {
	content: "";
	position: absolute;
	z-index: -1;
	inset: 0;
	background: linear-gradient(90deg, #002878 27.9%, rgba(102, 102, 102, 0) 100%);
}
.ct-etapa__faixa-inner {
	display: grid;
	grid-template-columns: minmax(0, 968px) auto;
	align-items: center;
	gap: 24px;
	min-height: 330px;
	padding: 68px var(--ct-gutter) 68px max(var(--ct-gutter), calc(50% - 649px));
}
.ct-etapa__titulo {
	color: #f4f5f9;
	font-family: var(--ct-f-titulo);
	font-weight: 500;
	font-size: clamp(30px, 3.4vw + 4px, 64px);
	line-height: 1.04;
	text-transform: uppercase;
}
.ct-etapa__titulo small { font-size: .5625em; font-weight: 500; }
.ct-etapa__botao {
	width: 165px;
	height: 49px;
	border: 0;
	border-radius: 10px;
	background: var(--ct-amarelo);
	color: var(--ct-azul);
	font-family: var(--ct-f-botao);
	font-weight: 700;
	font-size: 18px;
	cursor: pointer;
	transition: background-color .2s, transform .2s;
}
.ct-etapa__botao:hover { background: #ffd36e; transform: translateY(-1px); }

.ct-etapa__painel { padding: 37px var(--ct-gutter) 59px; background: #fff; }
/* Cartão do painel (Figma 88:4247): fundo branco com borda de 1px em degradê azul. */
.ct-etapa__cartao {
	display: grid;
	grid-template-columns: minmax(0, 893px) minmax(0, 467px);
	gap: 78px;
	max-width: 1581px;
	margin: 0 auto;
	padding: 38px 71px 38px 72px;
	border: 1px solid transparent;
	border-radius: 24px;
	background:
		linear-gradient(#fff, #fff) padding-box,
		linear-gradient(160.3deg, #002878 0%, #005799 55%, #005799 100%) border-box;
}
.ct-etapa__texto { display: flex; flex-direction: column; color: var(--ct-azul); font-family: var(--ct-f-titulo); font-weight: 500; font-size: 18px; line-height: 30px; }
.ct-etapa__texto p { margin: 0; }
.ct-etapa__texto strong { font-weight: 700; }
/* Blocos em negrito (Heading 3 do Figma): projetos, listas e rótulos. Espaço entre blocos por etapa. */
.ct-etapa__texto .ct-etapa__projetos { margin-top: 48px; font-weight: 700; line-height: 37px; }
.ct-etapa__texto .ct-etapa__lista { margin-top: 29px; font-weight: 700; }
.ct-etapa--educacao-infantil .ct-etapa__projetos { margin-top: 60px; }
.ct-etapa--ensino-medio .ct-etapa__projetos { margin-top: 28px; }
.ct-etapa--sistema-de-tempo-integral .ct-etapa__texto { line-height: 27px; font-weight: 700; }
.ct-etapa--sistema-de-tempo-integral .ct-etapa__lista { margin-top: 26px; }
.ct-etapa__texto .ct-etapa__acao { margin-top: auto; padding-top: 32px; }
/* Botão "Agendar uma visita" (Figma 165:882): 213×54, raio 10. */
.ct-etapa__acao .ct-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 213px;
	min-height: 54px;
	padding: 13px 28px;
	border-radius: 10px;
	font-family: var(--ct-f-titulo);
	font-weight: 700;
	font-size: 16px;
}
.ct-etapa__imagem { position: relative; align-self: start; height: 490px; overflow: hidden; border-radius: 14px; }
.ct-etapa__imagem > img:first-child { width: 100%; height: 100%; object-fit: cover; object-position: 50% 50%; }
/* Enquadramento das fotos conforme Figma 88:4238 (variantes expandidas). */
.ct-etapa--educacao-infantil .ct-etapa__imagem > img:first-child { object-position: 56% 0; }
.ct-etapa--ensino-fundamental .ct-etapa__imagem > img:first-child { object-position: 50% 50%; }
.ct-etapa--ensino-medio .ct-etapa__imagem > img:first-child { object-position: 56% 0; }
.ct-etapa--pre-vestibular .ct-etapa__imagem > img:first-child { object-position: 60% 0; }
.ct-etapa--sistema-de-tempo-integral .ct-etapa__imagem > img:first-child { object-position: 0 52%; }
.ct-etapa__selo { position: absolute; right: 16px; bottom: 22px; width: 36%; height: auto; }
@media (max-width: 1000px) {
	.ct-etapa__faixa,
	.ct-etapa__faixa-inner { min-height: 220px; }
	.ct-etapa__faixa-inner { grid-template-columns: minmax(0, 1fr); padding-block: 40px; justify-items: start; }
	.ct-etapa__faixa { --ct-bg-x: 0%; --ct-bg-l: 100%; --ct-bg-tam: cover; }
	.ct-etapa__cartao { grid-template-columns: minmax(0, 1fr); gap: 28px; padding: 28px 20px; }
	.ct-etapa__painel { padding-bottom: 40px; }
	.ct-etapa__texto { font-size: 16px; line-height: 26px; }
	.ct-etapa--sistema-de-tempo-integral .ct-etapa__texto { line-height: 24px; }
	.ct-etapa__texto .ct-etapa__projetos { line-height: 30px; margin-top: 32px; }
	.ct-etapa--educacao-infantil .ct-etapa__projetos,
	.ct-etapa--ensino-medio .ct-etapa__projetos { margin-top: 32px; }
	.ct-etapa__imagem { height: auto; aspect-ratio: 467 / 490; max-height: 420px; }
}

/* Ensino — iniciativas --------------------------------------------------------------- */
.ct-iniciativas { padding: 64px var(--ct-gutter); text-align: center; }
.ct-iniciativas > h2 { max-width: 360px; margin: 0 auto; color: var(--ct-azul); font-family: var(--ct-f-titulo); font-weight: 700; font-size: 32px; line-height: 38.4px; }
.ct-iniciativas__logos { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 32px 48px; max-width: 982px; margin: 102px auto 0; }
.ct-iniciativas__logos .wp-block-image { margin: 0; }
.ct-iniciativas__logos img { width: auto; height: 50px; object-fit: contain; }
.ct-iniciativas__logos .wp-block-image:nth-child(4) img { height: 129px; margin-block: -39px; }
@media (max-width: 800px) {
	.ct-iniciativas__logos { justify-content: center; margin-top: 48px; }
	.ct-iniciativas__logos img { height: 42px; }
	.ct-iniciativas__logos .wp-block-image:nth-child(4) img { height: 108px; margin-block: -33px; }
}

/* Contato — unidades ------------------------------------------------------------------ */
.ct-unidades { padding: 128px var(--ct-gutter) 64px; text-align: center; }
.ct-unidades__titulo { color: var(--ct-azul-medio); font-family: var(--ct-f-titulo); font-weight: 800; font-size: clamp(24px, 1.6vw + 10px, 30px); line-height: 1.3; }
.ct-unidades__lista { display: flex; flex-wrap: wrap; justify-content: center; gap: 36px 65px; margin-top: 66px; padding: 0; list-style: none; text-align: left; }
.ct-unidade { display: flex; flex-direction: column; width: min(520px, 100%); min-height: 510px; padding: 16.5px 22px 17px 19px; border-radius: 29px; }
.ct-unidade--amarelo { background: var(--ct-amarelo); color: var(--ct-azul-medio); }
.ct-unidade--azul { background: var(--ct-azul-medio); color: #fff; }
.ct-unidade__mapa { aspect-ratio: 479 / 387; overflow: hidden; border-radius: 24px; background: #1d2c4d; }
.ct-unidade__mapa img { width: 100%; height: 100%; object-fit: cover; object-position: center bottom; }
.ct-unidade__info { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 12px; margin-top: auto; padding: 20px 20px 2px 23px; }
.ct-unidade__nome { padding-bottom: 6px; font-family: var(--ct-f-titulo); font-weight: 700; font-size: 10.5px; line-height: 16.8px; letter-spacing: 1px; text-transform: uppercase; }
.ct-unidade__dados { font-family: var(--ct-f-titulo); font-size: 12px; line-height: 18px; }
.ct-unidade__dados a { text-decoration: none; }
.ct-unidade__dados a:hover { text-decoration: underline; }
.ct-unidade__botao {
	display: inline-flex;
	justify-content: center;
	min-width: 130.7px;
	padding: 5px 10px;
	border: 1px solid rgba(0, 115, 234, .4);
	border-radius: 999px;
	background: rgba(0, 152, 255, .18);
	color: var(--ct-azul-medio);
	font-weight: 700;
	font-size: 11px;
	line-height: 17.6px;
	text-decoration: none;
	transition: background-color .2s;
}
.ct-unidade--azul .ct-unidade__botao { border-color: rgba(255, 255, 255, .4); background: rgba(255, 255, 255, .18); color: #fff; }
.ct-unidade__botao:hover { background: rgba(255, 255, 255, .45); }
@media (max-width: 600px) { .ct-unidades { padding-top: 64px; } .ct-unidade { min-height: 0; } }

/* Conteúdo livre (políticas, notícias) --------------------------------------------------- */
.ct-conteudo-livre { padding-bottom: 64px; color: var(--ct-titulo-escuro); font-size: 17px; line-height: 1.7; }
.ct-conteudo-livre > * + * { margin-top: 1.1em; }
.ct-conteudo-livre h2,
.ct-conteudo-livre h3 { color: var(--ct-azul); font-family: var(--ct-f-titulo); font-weight: 800; line-height: 1.25; margin-top: 1.6em; }
.ct-conteudo-livre a { color: var(--ct-azul-medio); }
.ct-conteudo-livre img { border-radius: 12px; }
.ct-conteudo-livre ul,
.ct-conteudo-livre ol { padding-left: 1.3em; }

/* Notícia individual */
.ct-noticia { padding: 48px 0 0; }
.ct-noticia__voltar { display: inline-block; color: var(--ct-azul-medio); font-weight: 600; font-size: 14px; text-decoration: none; }
.ct-noticia__voltar:hover { text-decoration: underline; }
.ct-noticia__cabecalho { display: flex; flex-direction: column; align-items: flex-start; gap: 14px; margin-top: 28px; }
.ct-noticia__titulo { color: var(--ct-azul); font-family: var(--ct-f-titulo); font-weight: 900; font-size: clamp(28px, 2vw + 14px, 40px); line-height: 1.15; }
.ct-noticia__imagem { margin-top: 28px; overflow: hidden; border-radius: 14px; }
.ct-noticia__imagem img { width: 100%; }
.ct-noticia__conteudo { margin-top: 28px; }
.ct-noticia__navegacao { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 16px; padding: 24px 0 64px; border-top: 1px solid var(--ct-borda); }
.ct-noticia__navegacao a { color: var(--ct-azul-medio); font-weight: 600; text-decoration: none; }

/* Rodapé ------------------------------------------------------------------------------------ */
.ct-footer { padding: 52px 0 20px; background: var(--ct-azul); color: #fff; }
.ct-footer__grade {
	display: grid;
	grid-template-columns: minmax(0, 329.62fr) repeat(3, minmax(0, 235.45fr));
	grid-template-areas:
		"marca colegio ensino novidades"
		". acesso contato .";
	gap: 32px;
	padding-bottom: 36px;
	border-bottom: 1px solid rgba(255, 255, 255, .08);
}
.ct-footer__marca { grid-area: marca; }
.ct-footer__coluna--rodape-colegio { grid-area: colegio; }
.ct-footer__coluna--rodape-ensino { grid-area: ensino; }
.ct-footer__coluna--rodape-novidades { grid-area: novidades; }
.ct-footer__coluna--rodape-acesso { grid-area: acesso; }
.ct-footer__coluna--contato { grid-area: contato; }
.ct-footer__logo img { width: 196px; height: 62px; }
.ct-footer__texto { padding-top: 14px; color: rgba(255, 255, 255, .5); font-size: 12.5px; line-height: 21.25px; max-width: 330px; }
.ct-footer__titulo { color: #fff; font-family: var(--ct-f-texto); font-weight: 700; font-size: 12.5px; line-height: 20px; letter-spacing: .5px; text-transform: uppercase; }
.ct-footer__lista { padding: 14px 0 0; list-style: none; }
.ct-footer__lista a { display: inline-block; padding: 5px 0; color: rgba(255, 255, 255, .65); font-size: 13px; line-height: 20.8px; text-decoration: none; }
.ct-footer__lista a:hover { color: #fff; text-decoration: underline; }
.ct-footer__coluna--contato .ct-social { padding-top: 19px; }
.ct-footer__copy { padding-top: 20px; color: rgba(255, 255, 255, .4); font-size: 12px; line-height: 19.2px; text-align: center; }
/* Figma 88:6427/88:4334: o rodapé fecha ~96px abaixo do copyright (32px antes da linha + 64px de respiro final) */
@media (min-width: 901px) { .ct-footer { padding-bottom: 84px; } .ct-footer__grade { padding-bottom: 68px; } }
@media (max-width: 900px) {
	.ct-footer__grade {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		grid-template-areas:
			"marca marca"
			"colegio ensino"
			"novidades acesso"
			"contato contato";
	}
}
@media (max-width: 420px) {
	.ct-footer__grade { grid-template-columns: minmax(0, 1fr); grid-template-areas: "marca" "colegio" "ensino" "novidades" "acesso" "contato"; gap: 24px; }
}

/* Modal de login ------------------------------------------------------------------------------ */
.ct-login {
	width: min(1180px, calc(100% - 32px));
	max-width: none;
	max-height: calc(100% - 32px);
	padding: 0;
	border: 0;
	border-radius: 31px;
	background: #f7f8fc;
	color: inherit;
	overflow: auto;
}
.ct-login::backdrop { background: rgba(0, 0, 0, .65); }
.ct-login[open] { animation: ct-surgir .22s ease-out; }
@keyframes ct-surgir { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
.ct-login__painel { position: relative; padding: 64px 24px; }
.ct-login__fechar {
	position: absolute; top: 18px; right: 18px;
	display: grid; place-items: center;
	width: 44px; height: 44px; padding: 0;
	border: 0; border-radius: 50%;
	background: #fff; color: var(--ct-azul);
	font-size: 28px; line-height: 1;
	cursor: pointer;
	box-shadow: 0 2px 8px rgba(0, 20, 60, .12);
}
.ct-login__titulo { padding: 10px 40px 14px; color: var(--ct-azul-medio); font-family: var(--ct-f-titulo); font-weight: 400; font-size: clamp(24px, 2vw + 12px, 36px); line-height: 1.2; text-align: center; }
.ct-login__perfis { display: flex; flex-wrap: wrap; justify-content: center; gap: 32px; margin-top: 36px; padding: 0; list-style: none; }
.ct-login__perfil { display: flex; flex-direction: column; align-items: center; gap: 19px; width: min(462px, 100%); padding: 18px 15px; background: #fff; border: 1px solid var(--ct-borda); border-radius: 18px; text-align: center; }
.ct-login__nome { padding: 0 5px; color: var(--ct-azul-medio); font-family: var(--ct-f-titulo); font-weight: 700; font-size: 15px; line-height: 29px; }
.ct-login__botao { display: block; width: 100%; padding: 13px 24px; border-radius: 8px; background: var(--ct-azul-vivo); color: #fff; font-family: var(--ct-f-texto); font-weight: 700; font-size: 13.5px; line-height: 21.6px; text-decoration: none; transition: background-color .2s; }
.ct-login__botao:hover { background: var(--ct-azul-medio); }
.ct-login__botao.is-indisponivel { cursor: default; }
.ct-login__botao.is-indisponivel:hover { background: var(--ct-azul-vivo); }
.ct-login__aviso { margin-top: -10px; color: var(--ct-texto); font-size: 12px; }
@media (max-width: 600px) { .ct-login__painel { padding: 56px 16px 32px; } .ct-login { border-radius: 20px; } }

/* WhatsApp flutuante ------------------------------------------------------------------------- */
.ct-whats-flutuante {
	position: fixed;
	z-index: 40;
	right: clamp(16px, 3.6vw, 70px);
	bottom: clamp(16px, 3.6vw, 40px);
	display: grid;
	place-items: center;
	width: clamp(60px, 6vw, 114px);
	height: clamp(60px, 6vw, 114px);
	border-radius: 1000px;
	background: var(--ct-whats);
	box-shadow: 0 8px 12px rgba(0, 0, 0, .25);
	transition: transform .2s;
}
.ct-whats-flutuante:hover { transform: scale(1.06); }
.ct-whats-flutuante__icone {
	width: 50%;
	height: 50%;
	background: #fff;
	-webkit-mask: var(--ct-glifo) center / contain no-repeat;
	mask: var(--ct-glifo) center / contain no-repeat;
}

/* Animações de entrada (lista de elementos em inc/animacoes.php) -------------------------------- */
.ct-anima-item {
	transition: opacity .7s cubic-bezier(.2, .7, .2, 1), transform .7s cubic-bezier(.2, .7, .2, 1);
	transition-delay: var(--ct-atraso, 0ms);
}

/* Responsividade geral ------------------------------------------------------------------------- */
@media (max-width: 600px) {
	:root { --ct-gutter: 16px; }
	.ct-secao { padding: 48px 0; }
	.ct-caixa-azul__topo .ct-btn,
	.ct-noticias-home__topo .ct-btn { width: 100%; }
	.ct-topbar__links { gap: 2px 14px; }
}

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after { animation-duration: .01ms !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}
