/* ==========================================================================
   Banescaixa
   ========================================================================== */

:root {
	--azul: #0814DD;
	--azul-escuro: #0610AD;
	--verde: #00AB16;
	--verde-escuro: #058A16;
	--texto: #1F2937;
	--texto-suave: #6B7280;
	--cinza-claro: #F9FAFB;
	--cinza-borda: #E5E7EB;
	--azul-claro: #E8F0FE;
	--branco: #FFFFFF;
	--fonte: "Plus Jakarta Sans", system-ui, -apple-system, sans-serif;
	--sombra-painel: 0 24px 48px -12px rgba(16, 24, 40, 0.18);
	--raio-card: 12px;
	--container: 1240px;
}

* { box-sizing: border-box; }

html, body { overflow-x: clip; }

body {
	margin: 0;
	font-family: var(--fonte);
	color: var(--texto);
	background: var(--cinza-claro);
	-webkit-font-smoothing: antialiased;
}

img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
ul { margin: 0; padding: 0; list-style: none; }

.container {
	max-width: var(--container);
	margin: 0 auto;
	padding: 0 20px;
}

/* Botões-pílula */
.btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	white-space: nowrap;
	font-family: var(--fonte);
	font-weight: 700;
	font-size: 14px;
	border-radius: 999px;
	padding: 11px 22px;
	border: 0;
	cursor: pointer;
	transition: background-color .2s ease, color .2s ease;
}
.btn--azul { background: var(--azul); color: var(--branco); }
.btn--azul:hover { background: var(--azul-escuro); }
.btn--verde { background: var(--verde); color: var(--branco); }
.btn--verde:hover { background: var(--verde-escuro); }
.btn--contorno {
	background: transparent;
	color: var(--azul);
	box-shadow: inset 0 0 0 1.5px var(--azul);
}
.btn--contorno:hover { background: var(--azul); color: var(--branco); }

/* ==========================================================================
   Topbar
   ========================================================================== */

.header-wrap {
	background: var(--branco);
	box-shadow: 0 0 4px 0 rgba(0, 0, 0, 0.25);
	position: relative;
	z-index: 100;
}
.topbar {
	padding: 16px 16px 0;
}
.topbar__bar {
	background: var(--azul);
	color: var(--branco);
	font-size: 13px;
	border-radius: 999px;
	padding: 0 28px;
}
.topbar__inner {
	display: flex;
	align-items: center;
	gap: 24px;
	min-height: 44px;
}
.topbar__item {
	display: inline-flex;
	align-items: center;
	gap: 8px;
}
.topbar__item strong { font-weight: 700; white-space: nowrap; }
.topbar__horario { font-size: 12px; }
.topbar__denuncie {
	margin-left: auto;
	font-weight: 700;
}
.topbar__denuncie:hover { text-decoration: underline; }
.topbar svg { width: 14px; height: 14px; flex: none; }
/* Celulares estreitos: fonte e espaçamentos menores para o telefone e a denúncia caberem sem quebrar */
@media (max-width: 480px) {
	.topbar { padding: 12px 12px 0; }
	.topbar__bar { font-size: 11px; padding: 0 14px; }
	.topbar__inner { gap: 10px; min-height: 40px; }
	.topbar__item { gap: 6px; }
	.topbar svg { width: 12px; height: 12px; }
}

/* ==========================================================================
   Header + navegação
   ========================================================================== */

.site-header {
	position: relative;
}
.header__inner {
	display: flex;
	align-items: center;
	gap: 20px;
	min-height: 96px;
}
.header__logo { flex: none; }
.header__logo img { width: 178px; max-width: none; }

.nav { display: flex; align-items: center; gap: 4px; }
.nav__item { position: relative; list-style: none; }
.topbar__denuncie svg { width: 15px; height: 15px; margin-right: 6px; vertical-align: -2px; display: inline-block; }
.nav__link {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	white-space: nowrap;
	font-size: 15px;
	font-weight: 600;
	color: var(--texto);
	padding: 26px 12px;
	position: relative;
}
.nav__link .chevron {
	width: 10px; height: 10px;
	transition: transform .2s ease;
}
.nav__item:hover > .nav__link { color: var(--azul); }
.nav__item:hover > .nav__link .chevron { transform: rotate(180deg); }
.nav__item:hover > .nav__link::after {
	content: "";
	position: absolute;
	left: 14px; right: 14px; bottom: 0;
	height: 3px;
	background: var(--azul);
	border-radius: 3px 3px 0 0;
}

.header__acoes {
	margin-left: auto;
	display: flex;
	gap: 10px;
}

/* Dropdown simples */
.dropdown {
	position: absolute;
	top: 100%;
	left: 0;
	min-width: 250px;
	background: var(--branco);
	border-radius: 16px;
	box-shadow: var(--sombra-painel);
	padding: 14px;
	opacity: 0;
	visibility: hidden;
	transform: translateY(8px);
	transition: opacity .18s ease, transform .18s ease, visibility .18s;
}
.nav__item:hover > .dropdown,
.nav__item:focus-within > .dropdown {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}
.dropdown a {
	display: block;
	padding: 11px 16px;
	font-size: 14.5px;
	color: #374151;
	border-radius: 10px;
}
.dropdown a:hover { color: var(--azul); background: var(--azul-claro); }

/* Mega menu (A Banescaixa) — escopado ao nav desktop para não afetar o li.mega do menu mobile */
.nav .mega {
	position: absolute;
	top: 100%;
	left: -24px;
	width: 780px;
	background: var(--branco);
	border-radius: 0 0 16px 16px;
	box-shadow: var(--sombra-painel);
	display: grid;
	grid-template-columns: 200px 1px 1fr;
	gap: 0 28px;
	padding: 28px;
	opacity: 0;
	visibility: hidden;
	transform: translateY(8px);
	transition: opacity .18s ease, transform .18s ease, visibility .18s;
}
.nav__item:hover > .mega,
.nav__item:focus-within > .mega {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}
.mega__titulo {
	font-size: 15px;
	font-weight: 700;
	margin: 0 0 14px;
}
.mega__links a {
	display: block;
	padding: 10px 14px;
	font-size: 14.5px;
	color: #374151;
	border-radius: 10px;
}
.mega__links a:hover { color: var(--azul); background: var(--azul-claro); }
.mega__divisor { background: var(--cinza-borda); }
.mega__cards {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 14px;
	margin-bottom: 14px;
}
.mega-card {
	background: var(--cinza-claro);
	border: 1px solid var(--cinza-borda);
	border-top: 3px solid var(--verde);
	border-radius: var(--raio-card);
	padding: 18px;
	display: block;
}
.mega-card--azul { border-top-color: var(--azul); }
.mega-card__icone {
	width: 40px; height: 40px;
	border-radius: 50%;
	display: grid;
	place-items: center;
	background: var(--verde);
	color: var(--branco);
	margin-bottom: 12px;
}
.mega-card--azul .mega-card__icone { background: var(--azul); }
.mega-card__icone svg { width: 20px; height: 20px; }
.mega-card h4 {
	margin: 0 0 8px;
	font-size: 15px;
	color: var(--verde);
}
.mega-card--azul h4 { color: var(--azul); }
.mega-card p {
	margin: 0;
	font-size: 12.5px;
	line-height: 1.5;
	color: var(--texto-suave);
}
.mega__ajuda {
	grid-column: 3;
	background: var(--cinza-claro);
	border-radius: var(--raio-card);
	padding: 14px 18px;
	display: flex;
	align-items: center;
	gap: 14px;
}
.mega__ajuda svg { width: 32px; height: 32px; color: var(--azul); flex: none; }
.mega__ajuda-texto { flex: 1; }
.mega__ajuda-texto strong { display: block; font-size: 14.5px; }
.mega__ajuda-texto span { font-size: 13px; color: var(--texto-suave); }
.mega__ajuda .btn { padding: 8px 18px; font-size: 13px; }

/* ==========================================================================
   Menu mobile
   ========================================================================== */

.menu-toggle {
	display: none;
	margin-left: auto;
	background: none;
	border: 0;
	padding: 8px;
	cursor: pointer;
	color: var(--texto);
}
.menu-toggle svg { width: 26px; height: 26px; }

@media (max-width: 1080px) {
	.nav, .header__acoes { display: none; }
	.menu-toggle { display: block; }
	.topbar__endereco, .topbar__horario, .topbar .acess { display: none; }
	/* Sem o .acess (que some no mobile), é a denúncia que vai para a ponta direita.
	   Especificidade dupla para vencer o margin-left:18px da regra base. */
	.topbar__bar .topbar__denuncie { white-space: nowrap; margin-left: auto; }

	/* Drawer: painel lateral que desliza da direita */
	.drawer-backdrop {
		position: fixed;
		inset: 0;
		background: rgba(7, 14, 40, .5);
		opacity: 0;
		pointer-events: none;
		transition: opacity .32s ease;
		z-index: 998;
	}
	body.menu-aberto .drawer-backdrop { opacity: 1; pointer-events: auto; }

	.mobile-menu {
		position: fixed;
		top: var(--wp-admin--admin-bar--height, 0px); /* não fica sob a admin bar quando logado */
		right: 0;
		height: calc(100dvh - var(--wp-admin--admin-bar--height, 0px));
		width: min(84vw, 360px);
		background: var(--branco);
		display: flex;
		flex-direction: column;
		transform: translateX(105%);
		visibility: hidden;
		transition: transform .38s cubic-bezier(.32, .72, .28, 1), visibility 0s linear .38s;
		box-shadow: -18px 0 40px rgba(0, 0, 0, .18);
		z-index: 999;
	}
	.mobile-menu.aberto {
		transform: translateX(0);
		visibility: visible;
		transition: transform .38s cubic-bezier(.32, .72, .28, 1);
	}

	.mobile-menu__topo {
		display: flex;
		align-items: center;
		justify-content: space-between;
		padding: 16px 20px;
		border-bottom: 1px solid var(--cinza-claro);
		flex: none;
	}
	.mobile-menu__topo img { width: 150px; height: auto; display: block; }
	.mobile-menu__fechar {
		width: 36px;
		height: 36px;
		border: 0;
		border-radius: 50%;
		background: var(--cinza-claro);
		color: var(--texto);
		display: grid;
		place-items: center;
		cursor: pointer;
		transition: background-color .15s ease;
	}
	.mobile-menu__fechar:hover { background: #E5E7EB; }
	.mobile-menu__fechar svg { width: 15px; height: 15px; }

	.mobile-menu__nav {
		flex: 1;
		overflow-y: auto;
		padding: 6px 20px 20px;
		overscroll-behavior: contain;
	}
	.mobile-menu li { list-style: none; }
	.mobile-menu__nav a {
		display: flex;
		align-items: center;
		justify-content: space-between;
		padding: 13px 2px;
		font-size: 15.5px;
		font-weight: 600;
		border-bottom: 1px solid var(--cinza-claro);
	}
	/* Acordeão: submenu fechado por padrão */
	.mobile-menu .menu-item-has-children > a::after {
		content: "";
		width: 8px;
		height: 8px;
		border-right: 2px solid currentColor;
		border-bottom: 2px solid currentColor;
		transform: rotate(45deg);
		margin-left: 10px;
		flex: none;
		transition: transform .2s ease;
	}
	.mobile-menu li.aberto > a { color: var(--azul); }
	.mobile-menu li.aberto > a::after { transform: rotate(-135deg); }
	.mobile-menu .sub-menu { display: none; background: var(--cinza-claro); border-radius: 10px; padding: 4px 14px; }
	.mobile-menu li.aberto > .sub-menu { display: block; }
	.mobile-menu .sub-menu a {
		font-weight: 400;
		color: #374151;
		border-bottom: 0;
		padding: 11px 0;
	}
	.mobile-menu__acoes {
		display: flex;
		flex-direction: column;
		align-items: stretch;
		gap: 10px;
		margin-top: 18px;
	}
	.mobile-menu__acoes .btn { width: 100%; justify-content: center; }

	.mobile-menu__rodape {
		flex: none;
		border-top: 1px solid var(--cinza-claro);
		padding: 14px 20px calc(16px + env(safe-area-inset-bottom));
	}
	.mobile-menu__sociais {
		display: flex;
		justify-content: center;
		gap: 12px;
		margin-bottom: 12px;
	}
	.mobile-menu__sociais a {
		width: 38px;
		height: 38px;
		border-radius: 50%;
		background: var(--cinza-claro);
		color: var(--azul);
		display: grid;
		place-items: center;
		transition: background-color .15s ease, color .15s ease;
	}
	.mobile-menu__sociais a:hover { background: var(--azul); color: var(--branco); }
	.mobile-menu__sociais svg { width: 17px; height: 17px; }
	.mobile-menu .mobile-menu__acess {
		display: flex;
		justify-content: center;
		align-items: center;
		flex-wrap: wrap;
		gap: 6px;
		margin: 0;
	}
	.mobile-menu__acess-rotulo {
		font-size: 13px;
		font-weight: 600;
		color: #6B7280;
		margin-right: 4px;
	}
	/* Especificidade maior que a regra base .acess button (texto branco p/ topbar azul) */
	.mobile-menu .mobile-menu__acess button {
		background: var(--cinza-claro);
		color: var(--azul);
		height: 32px;
		min-width: 36px;
		font-size: 14px;
	}
	.mobile-menu .mobile-menu__acess button:hover { background: #E5E7EB; }
	.mobile-menu .mobile-menu__acess button[aria-pressed="true"] { background: var(--azul); color: var(--branco); }
}
body.menu-aberto { overflow: hidden; }
/* Flutuantes não ficam por cima do drawer aberto */
body.menu-aberto .zap-flutuante,
body.menu-aberto div[vw] { opacity: 0; pointer-events: none; transition: opacity .2s ease; }
@media (min-width: 1081px) {
	.mobile-menu, .drawer-backdrop { display: none; }
}

/* ==========================================================================
   Hero slider
   ========================================================================== */

.hero {
	padding: 16px;
}
.hero__slider {
	background: var(--branco);
	border-radius: 24px;
	box-shadow: 0 20px 40px -10px rgba(0, 0, 0, 0.1);
}
.hero__viewport {
	position: relative;
	overflow: hidden;
	border-radius: 24px;
}
.hero__track {
	display: flex;
	transition: transform .5s ease;
}
.hero__slide {
	flex: 0 0 100%;
	display: block;
}
.hero__slide img {
	width: 100%;
	aspect-ratio: 1870 / 560;
	min-height: 420px; /* abaixo disso a imagem para de encolher e vai centralizando */
	object-fit: cover;
	object-position: center;
}
@media (max-width: 767px) {
	.hero__slide img { aspect-ratio: 4 / 5; min-height: 0; }
}
.hero__seta {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 40px;
	height: 44px;
	border: 0;
	cursor: pointer;
	display: grid;
	place-items: center;
	background: rgba(31, 41, 55, .55);
	color: var(--branco);
	transition: background-color .2s ease;
}
.hero__seta:hover { background: rgba(31, 41, 55, .8); }
.hero__seta svg { width: 20px; height: 20px; }
.hero__seta--prev { left: 0; border-radius: 0 8px 8px 0; }
.hero__seta--next { right: 0; border-radius: 8px 0 0 8px; }
.hero__dots {
	display: flex;
	justify-content: center;
	gap: 8px;
	padding: 14px 0 4px;
}
.hero__dots button {
	width: 8px;
	height: 8px;
	border-radius: 999px;
	border: 0;
	padding: 0;
	cursor: pointer;
	background: #C7CBD4;
	transition: width .25s ease, background-color .25s ease;
}
.hero__dots button.ativo {
	width: 22px;
	background: var(--azul);
}

/* Conteúdo sobreposto no slide (título + texto + botão) */
.hero__slide { position: relative; }
.hero__conteudo {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 10px;
	text-align: center;
	color: var(--branco);
	background: rgba(17, 24, 39, .35);
	padding: 24px;
}
.hero__conteudo h2 {
	margin: 0;
	font-size: clamp(28px, 3.2vw, 46px);
	font-weight: 800;
	line-height: 1.15;
}
.hero__conteudo p {
	margin: 0;
	font-size: clamp(14px, 1.2vw, 17px);
	opacity: .95;
}
.hero__conteudo .btn { margin-top: 10px; }

/* ==========================================================================
   Seção pós-hero: Viva com Mais Saúde + O que você precisa agora?
   ========================================================================== */

.pos-hero { padding: 44px 0 58px 0; }
.pos-hero__grid {
	display: grid;
	grid-template-columns: 1.7fr 1fr;
	gap: 22px;
	align-items: stretch;
}
.pos-hero__grid > * { min-width: 0; }

.card {
	background: var(--branco);
	border-radius: 20px;
	box-shadow: 0 20px 40px -10px rgba(0, 0, 0, 0.08);
}

/* Card Mais Saúde (slider) */
.card-maissaude {
	padding: 28px 36px 18px;
	display: flex;
	flex-direction: column;
}
.card-maissaude__viewport { overflow: hidden; flex: 1; min-width: 0; }
.card-maissaude__track {
	display: flex;
	height: 100%;
	transition: transform .5s ease;
}
.ms-slide {
	flex: 0 0 100%;
	display: flex;
	gap: 24px;
	align-items: stretch;
}
.ms-slide__info {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 12px;
}
/* Badge ancorado no topo, título+resumo ao centro, botão no rodapé */
.ms-slide__info .selo { margin-bottom: auto; }
.ms-slide__info .btn { margin-top: auto; }
.selo {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: var(--azul-claro);
	color: var(--azul);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
	border-radius: 999px;
	padding: 7px 14px;
}
.selo svg { width: 13px; height: 13px; }
.ms-slide__info h3 {
	margin: 0;
	font-size: 20px;
	font-weight: 700;
	line-height: 1.3;
}
.ms-slide__info p {
	margin: 0;
	color: var(--texto-suave);
	font-size: 15px;
}

.ms-slide__img {
	flex: 0 0 40%;
	aspect-ratio: 540 / 585; /* proporção fixa: imagens de qualquer tamanho entram no quadro */
	align-self: center;
	border-radius: 16px;
	overflow: hidden;
}
.ms-slide__img a {
	display: block;
	width: 100%;
	height: 100%;
}
/* No fallback o link herda a centralização do logo */
.ms-slide__img--fallback a {
	display: grid;
	place-items: center;
}
.ms-slide__img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center center;
	transition: transform .35s ease;
}
/* Zoom leve no hover — o overflow:hidden do quadro recorta o crescimento */
.ms-slide__img:hover img { transform: scale(1.05); }
/* Fallback para item sem imagem destacada — mesmo idioma das notícias */
.ms-slide__img--fallback {
	background:
		url(../img/bg-pat.png) repeat 0 0,
		linear-gradient(160deg, var(--azul) 0%, #0041A3 100%);
	display: grid;
	place-items: center;
}
.ms-slide__img.ms-slide__img--fallback img {
	width: 58%;
	height: auto;
	object-fit: contain;
	filter: brightness(0) invert(1);
	opacity: .9;
}

/* Card de atalhos */
.card-atalhos {
	padding: 28px;
	display: flex;
	flex-direction: column;
	gap: 12px;
	justify-content: space-between;
}
.card-atalhos h3 {
	margin: 0 0 6px;
	font-size: 20px;
	font-weight: 800;
}
.atalho {
	display: flex;
	align-items: center;
	gap: 14px;
	background: var(--cinza-claro);
	border: 1px solid var(--cinza-claro); /* mesma cor do bg: invisível até o hover */
	border-radius: 12px;
	padding: 13px 16px;
	flex: 1;
	transition: background-color .2s ease, border-color .2s ease;
}
.atalho:hover { background: var(--azul-claro); border-color: #C7DBFF; }
.atalho__icone {
	width: 42px;
	height: 42px;
	flex: none;
	border-radius: 10px;
	display: grid;
	place-items: center;
	background: var(--azul-claro);
	color: var(--azul);
}
.atalho:hover .atalho__icone { background: var(--branco); }
.atalho__icone svg { width: 20px; height: 20px; }
/* Doe sangue: único atalho com cor própria — vermelho comunica o tema */
.atalho__icone--sangue { background: #FEE2E2; color: #DC2626; }
.atalho__texto { display: flex; flex-direction: column; gap: 2px; }
.atalho__texto strong { font-size: 18px; font-weight: 700; }
.atalho__texto small { font-size: 12.5px; color: var(--texto-suave); }

@media (max-width: 900px) {
	.pos-hero__grid { grid-template-columns: 1fr; }
	.ms-slide { flex-direction: column; align-items: stretch; gap: 16px; }
	.ms-slide__img { flex: none; width: 100%; height: 220px; aspect-ratio: auto; align-self: stretch; }
}

/* ==========================================================================
   Notícias e Comunicados
   ========================================================================== */

.secao__titulo {
	font-size: clamp(24px, 2.2vw, 28px);
	font-weight: 800;
	margin: 0 0 24px;
}
/* Cabeçalho de seção com link "Veja todas" à direita */
.secao__topo {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 24px;
}
.secao__topo .secao__titulo { margin: 0; }
.secao__ver-todas {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 14.5px;
	font-weight: 700;
	color: var(--azul);
	white-space: nowrap;
}
.secao__ver-todas svg { width: 15px; height: 15px; transition: transform .2s ease; }
.secao__ver-todas:hover svg { transform: translateX(4px); }
.noticias { padding: 16px 0 96px; }
.noticias__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 22px;
}
.noticia-card {
	background: var(--branco);
	border: 1px solid var(--cinza-borda);
	border-radius: 16px;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	transition: box-shadow .2s ease, transform .2s ease;
}
.noticia-card:hover {
	box-shadow: 0 20px 40px -10px rgba(0, 0, 0, 0.2);
	transform: scale(1.05);
}
.noticia-card__img {
	aspect-ratio: 16 / 9;
	overflow: hidden;
}
/* Fallback para notícia sem imagem destacada */
.noticia-card__img--fallback {
	background:
		url(../img/bg-pat.png) repeat 0 0,
		linear-gradient(160deg, var(--azul) 0%, #0041A3 100%);
	display: grid;
	place-items: center;
}
.noticia-card__img.noticia-card__img--fallback img {
	width: 44%;
	height: auto;
	object-fit: contain;
	filter: brightness(0) invert(1);
	opacity: .9;
}
.noticia-card__img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.noticia-card__corpo {
	padding: 2rem 20px;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 10px;
	flex: 1;
}
.etiqueta {
	background: var(--azul-claro);
	color: var(--azul);
	font-size: 12px;
	font-weight: 700;
	border-radius: 999px;
	padding: 5px 12px;
}
.noticia-card h3 {
	margin: 0;
	font-size: 20px;
	font-weight: 700;
	line-height: 1.3;
	min-height: 3.9em; /* reserva 3 linhas: data alinha igual em todos os cards */
}
.noticia-card time {
	font-size: 13px;
	color: var(--texto-suave);
	margin-top: auto;
	padding-top: 12px;
}

@media (max-width: 900px) {
	.noticias__grid { grid-template-columns: 1fr; }
}

/* ==========================================================================
   Clínica de Atenção Primária (slider expande/contrai)
   ========================================================================== */

.clinica {
	padding: 88px 0 96px;
	background:
		url(../img/bg-pat.png) repeat 0 0,
		linear-gradient(160deg, #FDFEFF 40%, #99C5FF 100%);
}
.clinica__imagens {
	display: flex;
	gap: 18px;
	height: 380px;
}
.clinica__img {
	flex: 1;
	border-radius: 14px;
	overflow: hidden;
	position: relative;
	cursor: pointer;
	transition: flex-grow .55s cubic-bezier(.4, 0, .2, 1);
}
/* Overlay escuro + vidro fosco nos slides inativos; o ativo fica "aceso".
   O backdrop-filter não some com opacity:0 (peculiaridade da spec), então o
   blur é animado no próprio filtro. */
.clinica__img::after {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(17, 24, 39, 0.52);
	opacity: 1;
	pointer-events: none;
	-webkit-backdrop-filter: blur(3px) saturate(75%);
	backdrop-filter: blur(3px) saturate(75%);
	transition:
		opacity .55s cubic-bezier(.4, 0, .2, 1),
		background-color .3s ease,
		-webkit-backdrop-filter .55s cubic-bezier(.4, 0, .2, 1),
		backdrop-filter .55s cubic-bezier(.4, 0, .2, 1);
}
/* Hover no slide inativo: o vidro ganha o verde da marca, convidando o clique */
.clinica__img:not(.ativa):hover::after {
	background: rgba(5, 138, 22, .55);
}
.clinica__img.ativa { flex-grow: 3.6; cursor: default; }
.clinica__img.ativa::after {
	opacity: 0;
	-webkit-backdrop-filter: blur(0) saturate(100%);
	backdrop-filter: blur(0) saturate(100%);
}
.clinica__img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.clinica__rodape {
	display: flex;
	align-items: flex-end;
	gap: 24px;
	margin-top: 28px;
}
.clinica__textos {
	flex: 1;
	max-width: 640px;
	display: grid;
}
.clinica__texto {
	grid-area: 1 / 1;
	opacity: 0;
	visibility: hidden;
	transform: translateY(8px);
	transition: opacity .4s ease, transform .4s ease, visibility .4s;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 10px;
}
.clinica__texto.ativo {
	opacity: 1;
	visibility: visible;
	transform: none;
}
.kicker {
	color: var(--verde);
	font-size: 13px;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
}
.clinica__texto h3 {
	margin: 0;
	font-size: clamp(24px, 2.4vw, 28px);
	font-weight: 800;
	line-height: 1.2;
}
.clinica__paragrafo { color: #374151; font-size: 15.5px; line-height: 1.6; }
.clinica__paragrafo p { margin: 0; }
.clinica__texto .btn { margin-top: 10px; }
.clinica__setas { display: flex; gap: 10px; padding-bottom: 6px; margin-left: auto; }
.clinica__setas button {
	width: 46px;
	height: 46px;
	border-radius: 50%;
	border: 0;
	cursor: pointer;
	background: var(--branco);
	color: var(--verde);
	display: grid;
	place-items: center;
	box-shadow: 0 8px 20px -6px rgba(16, 24, 40, .18);
	transition: background-color .2s ease, color .2s ease;
}
.clinica__setas button:hover { background: var(--verde); color: var(--branco); }
.clinica__setas svg { width: 20px; height: 20px; }

@media (max-width: 900px) {
	.clinica__imagens { height: 300px; }
	.clinica__img:not(.ativa) { display: none; }
	.clinica__rodape { flex-direction: column; align-items: stretch; }
	.clinica__setas { justify-content: flex-end; }
}

/* ==========================================================================
   Mais serviços para você
   ========================================================================== */

.servicos { padding: 78px 0 96px; }
.servicos .secao__titulo { font-size: 28px; }
.secao__titulo--centro { text-align: center; margin-bottom: 8px; }
.secao__subtitulo {
	text-align: center;
	color: var(--texto-suave);
	margin: 0 0 32px;
	font-size: 15.5px;
}
.servicos__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 20px;
}
.servico-card {
	background: var(--branco);
	border: 1px solid var(--cinza-borda);
	border-radius: 16px;
	padding: 2rem 22px;
	text-align: center;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 10px;
	transition: box-shadow .2s ease, transform .2s ease;
}
.servico-card:hover {
	box-shadow: 0 20px 40px -10px rgba(0, 0, 0, 0.2);
	transform: scale(1.05);
}
.servico-card__icone img { width: 64px; height: auto; }
.servico-card h3 { margin: 4px 0 0; font-size: 20px; font-weight: 700; }
.servico-card p { margin: 0; font-size: 13.5px; color: var(--texto-suave); line-height: 1.5; }
.servico-card__link {
	margin-top: auto;
	padding-top: 10px;
	color: var(--azul);
	font-size: 14px;
	font-weight: 700;
}
.servico-card:hover .servico-card__link { text-decoration: underline; }

@media (max-width: 1000px) { .servicos__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .servicos__grid { grid-template-columns: 1fr; } }

/* ==========================================================================
   Baixe o App
   ========================================================================== */

.app-cta { padding: 40px 0 96px; }
.app-cta__card {
	background: var(--branco);
	border-radius: 24px;
	display: grid;
	grid-template-columns: minmax(0, 460px) 1fr;
	gap: 40px;
	align-items: center;
	padding: 0 56px;
}
.app-cta__fone {
	align-self: end;
	margin-top: -56px; /* o celular vaza acima do card */
}
.app-cta__fone img {
	display: block;
	width: 100%;
	max-width: 429px; /* tamanho nativo do PNG — acima disso embaça */
	height: auto;
	margin: 0 auto;
}
.app-cta__texto { padding: 56px 0; }
.app-cta__texto h2 {
	margin: 0 0 22px;
	color: var(--azul);
	font-size: clamp(32px, 3.4vw, 52px);
	font-weight: 800;
	line-height: 1.08;
}
.app-cta__texto p {
	margin: 0 0 30px;
	max-width: 560px;
	font-size: clamp(16px, 1.4vw, 19px);
	line-height: 1.6;
	color: var(--texto);
}
.app-cta__lojas { display: flex; gap: 14px; flex-wrap: wrap; }
.app-cta__loja {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	background: var(--verde);
	color: var(--branco);
	font-weight: 700;
	font-size: 15px;
	padding: 13px 26px;
	border-radius: 999px;
	transition: background-color .2s ease, transform .2s ease;
}
.app-cta__loja:hover { background: var(--verde-escuro); transform: translateY(-2px); }
.app-cta__loja svg { width: 17px; height: 17px; flex: none; }

@media (max-width: 900px) {
	.app-cta__card {
		grid-template-columns: 1fr;
		gap: 0;
		padding: 0 24px;
	}
	.app-cta__fone { margin-top: 12px; order: 2; }
	.app-cta__fone img { max-width: 300px; }
	.app-cta__texto { padding: 32px 0 8px; text-align: center; order: 1; }
	.app-cta__texto p { margin-left: auto; margin-right: auto; }
	.app-cta__lojas { justify-content: center; }
}

/* ==========================================================================
   Faixa Você é Credenciado?
   ========================================================================== */

.credenciado-cta {
	background:
		url(../img/bg-pat.png) repeat 0 0,
		linear-gradient(180deg, var(--azul) 0%, #0041A3 100%);
	color: var(--branco);
	padding: 104px 0;
}
.credenciado-cta__inner {
	text-align: center;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 14px;
}
.credenciado-cta h2 {
	margin: 0;
	font-size: clamp(28px, 3vw, 40px);
	font-weight: 800;
}
.credenciado-cta p {
	margin: 0;
	max-width: 520px;
	font-size: 15.5px;
	opacity: .9;
}
.credenciado-cta .btn { margin-top: 10px; }
.btn--branco { background: var(--branco); color: var(--azul); }
.btn--branco:hover { background: var(--azul-claro); }

/* ==========================================================================
   Footer
   ========================================================================== */

.site-footer {
	background: #1C2530;
	color: #D1D5DB;
	padding: 60px 0 28px;
	font-size: 14.5px;
}
.footer__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 32px;
}
.footer__col h4 {
	color: var(--branco);
	font-size: 17px;
	font-weight: 700;
	margin: 0 0 18px;
}
.footer__col h4::after {
	content: "";
	display: block;
	width: 40px;
	height: 3px;
	border-radius: 2px;
	background: var(--verde);
	margin-top: 10px;
}
.footer__subtitulo { margin-top: 26px !important; }
.footer__menu { display: flex; flex-direction: column; gap: 2px; }
.footer__menu a {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: #C3C9D2;
	padding: 6px 0;
	transition: color .15s ease;
}
.footer__menu a:hover { color: var(--verde); }
.footer__menu svg { width: 13px; height: 13px; flex: none; }
.footer__idss a { color: #9CA3AF; }
.footer__contato li {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	padding: 5px 0;
	color: #9CA3AF;
	line-height: 1.5;
}
.footer__contato svg { width: 13px; height: 13px; flex: none; margin-top: 3px; color: var(--verde); }
.footer__denuncie {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-top: 18px;
	background: rgba(220, 38, 38, .15);
	color: #F87171;
	border: 1px solid rgba(220, 38, 38, .4);
	border-radius: 10px;
	padding: 10px 16px;
	font-weight: 700;
	font-size: 13px;
	transition: background-color .2s ease;
}
.footer__denuncie:hover { background: rgba(220, 38, 38, .3); }
.footer__denuncie svg { width: 14px; height: 14px; }
.footer__selos {
	border-top: 1px solid rgba(255, 255, 255, .1);
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 40px;
	margin-top: 44px;
	padding: 36px 0;
}
.footer__selo { max-height: 150px; width: auto; }
.footer__vertodos {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-top: 10px;
	background: none;
	border: 0;
	padding: 0;
	cursor: pointer;
	color: var(--verde);
	font-family: var(--fonte);
	font-size: 14.5px;
	font-weight: 700;
}
.footer__vertodos:hover { text-decoration: underline; }
.footer__vertodos svg { width: 15px; height: 15px; }
.footer__menu--linha { flex-direction: row; gap: 32px; }
.footer__baseline {
	border-top: 1px solid rgba(255, 255, 255, .1);
	padding-top: 20px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px 32px;
	flex-wrap: wrap;
	color: #8A93A0;
	font-size: 13px;
}
/* Tudo na mesma linha, com o mesmo peso e tamanho do texto de copyright */
.footer__baseline .footer__menu a,
.footer__cookies,
.footer__popify {
	color: #8A93A0;
	font-size: 13px;
	font-weight: 400;
	padding: 0;
}
.footer__baseline .footer__menu a:hover,
.footer__cookies:hover,
.footer__popify:hover { color: var(--verde); }

@media (max-width: 900px) {
	.footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
	.footer__baseline { flex-direction: column; justify-content: center; text-align: center; }
	.footer__menu--linha { flex-direction: column; align-items: center; gap: 10px; }
}

/* ==========================================================================
   Single de notícia
   ========================================================================== */

.single-noticia { padding: 56px 0 96px; }
.single-noticia__coluna { max-width: 940px; }

.single-noticia__cabecalho {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 16px;
	margin-bottom: 28px;
}
.single-noticia__cabecalho h1 {
	margin: 0;
	font-size: clamp(26px, 3vw, 36px);
	font-weight: 800;
	line-height: 1.2;
}
.single-noticia__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 20px;
	color: var(--texto-suave);
	font-size: 13.5px;
}
.single-noticia__meta span { display: inline-flex; align-items: center; gap: 7px; }
.single-noticia__meta svg { width: 13px; height: 13px; }
.single-noticia__autor {
	display: flex;
	align-items: center;
	gap: 12px;
	padding-top: 4px;
}
.single-noticia__autor img { border-radius: 50%; }
.single-noticia__autor strong { display: block; font-size: 14.5px; }
.single-noticia__autor small { color: var(--texto-suave); font-size: 12.5px; }

.single-noticia__destaque { margin: 0 0 8px; }
.single-noticia__destaque img { width: 100%; border-radius: 16px; }
.single-noticia__destaque figcaption {
	text-align: center;
	color: var(--texto-suave);
	font-size: 12.5px;
	margin-top: 10px;
}

/* Conteúdo do post */
.conteudo-post {
	font-size: 16px;
	line-height: 1.7;
	color: #374151;
}
.conteudo-post h2 {
	font-size: 22px;
	font-weight: 800;
	color: var(--texto);
	margin: 36px 0 14px;
}
.conteudo-post h3 {
	font-size: 18px;
	font-weight: 700;
	color: var(--texto);
	margin: 28px 0 10px;
}
.conteudo-post p { margin: 0 0 16px; }
.conteudo-post a { color: var(--azul); font-weight: 700; }
.conteudo-post a:hover { text-decoration: underline; }
.conteudo-post ul, .conteudo-post ol { margin: 0 0 16px; padding-left: 22px; }
.conteudo-post ul { list-style: disc; }
.conteudo-post li { margin-bottom: 8px; }
.conteudo-post img { border-radius: 12px; }
.conteudo-post blockquote {
	margin: 24px 0;
	padding: 4px 0 4px 22px;
	border-left: 3px solid var(--azul);
	font-style: italic;
	color: var(--texto);
}
.conteudo-post blockquote cite {
	display: block;
	margin-top: 10px;
	font-style: normal;
	font-size: 13.5px;
	color: var(--texto-suave);
}
/* Caixa de destaque: use o bloco "Grupo" com a classe "destaque" ou citação destacada */
.conteudo-post .destaque,
.conteudo-post .wp-block-group.is-style-destaque {
	background: var(--azul-claro);
	border-radius: 14px;
	padding: 22px 26px;
	margin: 24px 0;
}
.conteudo-post .destaque p:last-child { margin-bottom: 0; }

.single-noticia__tags {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	border-top: 1px solid var(--cinza-borda);
	margin-top: 36px;
	padding-top: 24px;
}
.single-noticia__tags a {
	background: var(--cinza-claro);
	border: 1px solid var(--cinza-borda);
	border-radius: 999px;
	padding: 6px 14px;
	font-size: 13px;
	color: var(--texto-suave);
}
.single-noticia__tags a:hover { color: var(--azul); border-color: #C7DBFF; background: var(--azul-claro); }

.single-noticia__compartilhar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 16px;
	border-top: 1px solid var(--cinza-borda);
	border-bottom: 1px solid var(--cinza-borda);
	margin-top: 28px;
	padding: 24px 0;
	font-size: 14.5px;
}
.single-noticia__botoes { display: flex; flex-wrap: wrap; gap: 10px; }
.single-noticia__botoes a,
.single-noticia__botoes button {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: var(--branco);
	border: 1px solid var(--cinza-borda);
	border-radius: 999px;
	padding: 9px 16px;
	font-family: var(--fonte);
	font-size: 13.5px;
	font-weight: 600;
	color: var(--texto);
	cursor: pointer;
	transition: border-color .2s ease, color .2s ease;
}
.single-noticia__botoes a:hover,
.single-noticia__botoes button:hover { color: var(--azul); border-color: #C7DBFF; }
.single-noticia__botoes svg { width: 15px; height: 15px; }

.single-noticia__relacionadas { margin-top: 48px; }
.relacionadas__topo {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
}
.relacionadas__setas { display: flex; gap: 8px; }
.relacionadas__setas button {
	width: 40px;
	height: 40px;
	border-radius: 50%;
	border: 1px solid var(--cinza-borda);
	background: var(--branco);
	color: var(--texto);
	display: grid;
	place-items: center;
	cursor: pointer;
	transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}
.relacionadas__setas button:hover { background: var(--azul); border-color: var(--azul); color: var(--branco); }
.relacionadas__setas svg { width: 17px; height: 17px; }
.relacionadas__trilho {
	display: flex;
	gap: 18px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	scrollbar-width: none;
	padding-bottom: 4px;
}
.relacionadas__trilho::-webkit-scrollbar { display: none; }
.relacionadas__trilho .noticia-card {
	flex: 0 0 calc((100% - 36px) / 3);
	scroll-snap-align: start;
}
.relacionadas__trilho .noticia-card:hover { transform: none; } /* scale briga com o scroll-snap */
@media (max-width: 700px) {
	.relacionadas__trilho .noticia-card { flex: 0 0 86%; }
}

/* Newsletter */
.newsletter {
	background: #1C2530;
	color: var(--branco);
	border-radius: 18px;
	text-align: center;
	padding: 44px 32px;
	margin-top: 48px;
}
.newsletter__erro {
	flex-basis: 100%;
	margin: 10px 0 0;
	font-size: 14px;
	color: #FCA5A5;
}
.newsletter h2 { margin: 0 0 10px; font-size: 24px; font-weight: 800; }
.newsletter p { margin: 0 0 22px; color: #B7BEC9; font-size: 14.5px; }
.newsletter__form {
	display: flex;
	justify-content: center;
	gap: 10px;
	flex-wrap: wrap;
}
.newsletter__form input {
	width: 280px;
	max-width: 100%;
	border: 0;
	border-radius: 8px;
	padding: 12px 14px;
	font-family: var(--fonte);
	font-size: 14px;
}
.newsletter__form .btn { border-radius: 8px; }

/* Fale com a gente */
.fale-caixa {
	display: block;
	/* Padrão decorativo ancorado no topo direito; contain garante que ele
	   encolhe junto com o box e não alcança o texto no mobile */
	background: var(--azul-claro) url(../img/bg-square.webp) no-repeat right top;
	background-size: contain;
	border-left: 3px solid var(--azul);
	border-radius: 10px;
	padding: 22px 26px;
	margin-top: 28px;
	font-size: 14px;
}
.fale-caixa strong { display: block; font-size: 16px; margin-bottom: 6px; }
.fale-caixa p { margin: 0 0 10px; color: var(--texto-suave); }
.fale-caixa a { color: var(--azul); font-weight: 700; }
.fale-caixa span { color: var(--azul); font-weight: 600; }

/* Tabelas no conteúdo do post */
.conteudo-post table {
	width: 100%;
	border-collapse: separate;
	border-spacing: 0;
	background: var(--branco);
	border: 1px solid var(--cinza-borda);
	border-radius: 12px;
	margin: 22px 0;
	font-size: 14.5px;
}
.conteudo-post th,
.conteudo-post td {
	padding: 12px 16px;
	/* zera bordas herdadas de HTML antigo (border="1" etc.) */
	border: 0;
	border-bottom: 1px solid var(--cinza-borda);
	text-align: left;
	background: var(--branco);
}
.conteudo-post th:not(:last-child),
.conteudo-post td:not(:last-child) {
	border-right: 1px solid var(--cinza-borda);
}
.conteudo-post th {
	background: var(--cinza-claro);
	font-weight: 700;
	color: var(--texto);
}
.conteudo-post thead th:first-child { border-top-left-radius: 12px; }
.conteudo-post thead th:last-child { border-top-right-radius: 12px; }
.conteudo-post tr:last-child td { border-bottom: 0; }
.conteudo-post tr:last-child td:first-child { border-bottom-left-radius: 12px; }
.conteudo-post tr:last-child td:last-child { border-bottom-right-radius: 12px; }
@media (max-width: 700px) {
	.conteudo-post table { display: block; overflow-x: auto; }
}

/* Respiros menores no mobile (CTA mantém o padding cheio) */
@media (max-width: 900px) {
	.pos-hero { padding-top: 40px; }
	.noticias { padding: 32px 0 56px; }
	.clinica { padding: 48px 0 56px; }
	.servicos { padding: 48px 0 56px; }
	.secao__titulo { margin-bottom: 18px; }
}

/* Atendimento: faixa 100% no final do footer */
.footer__atendimento {
	border-top: 1px solid rgba(255, 255, 255, .1);
	margin-top: 40px;
	padding-top: 32px;
}
.footer__atendimento h4 {
	color: var(--branco);
	font-size: 17px;
	font-weight: 700;
	margin: 0 0 18px;
}
.footer__atendimento h4::after {
	content: "";
	display: block;
	width: 40px;
	height: 3px;
	border-radius: 2px;
	background: var(--verde);
	margin-top: 10px;
}
.footer__atendimento-linha {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 24px;
	flex-wrap: wrap;
}
.footer__atendimento .footer__contato {
	flex-direction: row;
	flex-wrap: wrap;
	gap: 8px 36px;
	flex: 1;
}
.footer__atendimento .footer__contato li { max-width: 460px; }
@media (max-width: 700px) {
	.footer__atendimento .footer__contato { flex-direction: column; }
	.footer__atendimento-linha { flex-direction: column; }
}

/* ==========================================================================
   Rede Credenciada
   ========================================================================== */

.rede { padding: 0 0 96px; }
.secao__subtitulo--esquerda { text-align: left; margin-bottom: 0; }
.rede__cabecalho { margin-bottom: 26px; }
.rede__cabecalho .secao__titulo { margin-bottom: 8px; }

.rede__filtros { padding: 24px 28px; }
.rede__filtros label {
	display: flex;
	flex-direction: column;
	gap: 8px;
	font-size: 14px;
	font-weight: 700;
}
.rede__filtros-grid {
	display: grid;
	grid-template-columns: 1fr 1fr 1.4fr;
	gap: 18px;
}
.rede__filtros select,
.rede__filtros input {
	font-family: var(--fonte);
	font-size: 14.5px;
	font-weight: 400;
	color: var(--texto);
	background: var(--cinza-claro);
	border: 1px solid var(--cinza-borda);
	border-radius: 8px;
	padding: 11px 14px;
	width: 100%;
}
.rede__filtros select:focus,
.rede__filtros input:focus { outline: 2px solid var(--azul-claro); border-color: #C7DBFF; }

.rede__contador {
	text-align: left;
	color: var(--texto-suave);
	font-size: 14.5px;
	margin: 24px 23px 14px;
}
.rede__contador strong { color: var(--azul); font-size: 16px; }

.rede__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 22px;
	align-items: start;
}
.rede__grid > * { min-width: 0; }

.rede__lista {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.rede-card {
	background: var(--branco);
	border: 1px solid var(--cinza-borda);
	border-radius: 14px;
	padding: 20px 22px;
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.rede-card__topo {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 12px;
	flex-wrap: wrap;
}
.rede-card h3 { margin: 0; font-size: 18px; font-weight: 700; }
.rede-card__tags { display: flex; gap: 6px; flex-wrap: wrap; }
.rede-tag {
	font-size: 12.5px;
	font-weight: 700;
	border-radius: 999px;
	padding: 4px 11px;
	white-space: nowrap;
}
.rede-tag--tipo { background: var(--azul-claro); color: var(--azul); }
.rede-tag--urgencia { background: #E7F8EA; color: var(--verde-escuro); }
.rede-tag--proprio { background: #FEF3D7; color: #9A6700; }
.rede-card__esp { margin: 0; color: var(--texto-suave); font-size: 14px; }
.rede-card__endereco,
.rede-card__fone {
	margin: 0;
	display: flex;
	align-items: flex-start;
	gap: 8px;
	font-size: 15px;
	color: #374151;
}
.rede-card__fone { color: var(--azul); font-weight: 700; }
.rede-card__endereco svg, .rede-card__fone svg { width: 13px; height: 13px; flex: none; margin-top: 3px; }
.rede-card__endereco svg { color: #DC2626; }
.rede-card__endereco a, .rede-card__fone a { color: inherit; }
.rede-card__endereco a:hover, .rede-card__fone a:hover { text-decoration: underline; }
.rede-card__acoes {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 10px;
	margin-top: 6px;
}
.rede-card__vermapa {
	background: transparent;
	color: var(--verde-escuro);
	box-shadow: inset 0 0 0 1.5px var(--verde);
	padding: 9px 18px;
	font-size: 13px;
}
.rede-card__vermapa:hover { background: var(--verde); color: var(--branco); }
.rede-card .btn { padding: 9px 20px; font-size: 13px; }

/* Mapa */
.rede__mapa {
	padding: 22px;
	position: sticky;
	top: 20px;
}
.rede__mapa h2 { margin: 0 0 14px; font-size: 18px; font-weight: 700; }
.rede__mapa-quadro {
	border-radius: 12px;
	overflow: hidden;
	border: 1px solid var(--cinza-borda);
}
.rede__mapa-quadro { position: relative; }
.rede__mapa-quadro iframe {
	display: block;
	width: 100%;
	height: 560px;
	border: 0;
}
/* Loading na troca do mapa */
.rede__mapa-quadro.carregando::before {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(255, 255, 255, .7);
	z-index: 1;
}
.rede__mapa-quadro.carregando::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 42px;
	height: 42px;
	margin: -21px 0 0 -21px;
	border: 4px solid var(--azul-claro);
	border-top-color: var(--azul);
	border-radius: 50%;
	z-index: 2;
	animation: mapa-girando .8s linear infinite;
}
@keyframes mapa-girando {
	to { transform: rotate(360deg); }
}
.rede__mapa-dica { margin: 12px 0 0; font-size: 12.5px; color: var(--texto-suave); }

.rede__carregar { text-align: center; margin-top: 28px; }

/* Skeleton */
.rede-card--skeleton { gap: 12px; }
.skel {
	display: block;
	border-radius: 6px;
	background: linear-gradient(90deg, #EEF0F4 25%, #F7F8FA 50%, #EEF0F4 75%);
	background-size: 200% 100%;
	animation: skel-brilho 1.2s ease-in-out infinite;
}
.skel--titulo { height: 18px; width: 55%; }
.skel--linha { height: 12px; width: 90%; }
.skel--curta { width: 60%; }
.skel--botao { height: 34px; width: 120px; border-radius: 999px; margin-top: 6px; }
@keyframes skel-brilho {
	0% { background-position: 200% 0; }
	100% { background-position: -200% 0; }
}

@media (max-width: 900px) {
	.rede { padding: 0 0 64px; }
	.faixa-depois { padding-top: 32px; }
	.rede__filtros-grid { grid-template-columns: 1fr; }
	.rede__paginacao button { min-width: 34px; }
	.rede__grid { grid-template-columns: 1fr; }
	.rede__mapa { position: static; }
	.rede__mapa-quadro iframe { height: 400px; }
}

/* Variantes de destaque dos cards da rede */
.rede-card--proprio { background: #FFFBEB; border-color: #FDE68A; }
.rede-card--ref { background: #EFF6FF; border-color: #BFDBFE; }
.rede-tag--proprio { background: #F59E0B; color: #fff; }
.rede-tag--ref { background: #2563EB; color: #fff; }
.rede-tag--qual { background: var(--cinza-claro); border: 1px solid var(--cinza-borda); color: var(--texto-suave); }

/* Selos de qualificação da ANS (qualificacoes[].tipo da API — arte oficial em SVG) */
.rede-card__selos { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.selo-ans {
	display: block;
	height: 22px;
	width: auto;
	flex: none;
	cursor: help;
}

/* Legenda dos selos */
.rede__legenda { padding: 22px 24px; margin-top: 28px; }
.rede__legenda h2 { margin: 0 0 16px; font-size: 17px; font-weight: 700; }
.rede__legenda-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(290px, 1fr));
	gap: 12px 36px;
}
.rede__legenda p {
	display: grid;
	grid-template-columns: 68px 1fr;
	align-items: center;
	gap: 10px;
	margin: 0;
	font-size: 14.5px;
	color: var(--texto);
}
.rede__legenda .selo-ans { height: 26px; cursor: default; }
.rede-card__whats { margin: 0; font-size: 15px; }
.rede-card__whats a { display: inline-flex; align-items: center; gap: 8px; color: #16A34A; font-weight: 700; }
.rede-card__whats a:hover { text-decoration: underline; }
.rede-card__whats svg { width: 13px; height: 13px; }
.rede__vazio { color: var(--texto-suave); text-align: center; padding: 32px 0; }

/* Paginação numérica */
.rede__paginacao {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 6px;
	flex-wrap: wrap;
	margin-top: 28px;
}
.rede__paginacao button {
	min-width: 38px;
	height: 38px;
	padding: 0 10px;
	border: 1px solid var(--cinza-borda);
	border-radius: 8px;
	background: var(--branco);
	font-family: var(--fonte);
	font-size: 14px;
	font-weight: 600;
	color: var(--texto);
	cursor: pointer;
	transition: background-color .15s ease, color .15s ease, border-color .15s ease;
}
.rede__paginacao button:hover:not(:disabled):not(.ativa) { border-color: #C7DBFF; background: var(--azul-claro); color: var(--azul); }
.rede__paginacao button.ativa { background: var(--azul); border-color: var(--azul); color: var(--branco); }
.rede__paginacao button:disabled { opacity: .4; cursor: default; }
.rede__paginacao span { color: var(--texto-suave); padding: 0 2px; }

/* ==========================================================================
   Acessibilidade: controle de fonte e alto contraste
   ========================================================================== */

.acess {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin-left: auto;
}
.topbar__denuncie { margin-left: 18px; }
.acess button {
	background: rgba(255, 255, 255, .15);
	color: var(--branco);
	border: 0;
	border-radius: 6px;
	min-width: 28px;
	height: 26px;
	padding: 0 7px;
	font-family: var(--fonte);
	font-size: 12.5px;
	font-weight: 700;
	cursor: pointer;
	transition: background-color .15s ease;
}
.acess button:hover { background: rgba(255, 255, 255, .3); }
.acess button[aria-pressed="true"] { background: var(--branco); color: var(--azul); }

/* Alto contraste */
.alto-contraste body {
	--texto: #000000;
	--texto-suave: #2A2F38;
	--cinza-borda: #6B7280;
	--azul: #0000C8;
	--verde: #067514;
	--verde-escuro: #065E11;
}
.alto-contraste .conteudo-post,
.alto-contraste .rede-card__endereco { color: #000; }
.alto-contraste .conteudo-post a,
.alto-contraste .footer__menu a { text-decoration: underline; }
.alto-contraste .footer__menu a,
.alto-contraste .footer__contato li { color: #E5E7EB; }

/* WhatsApp flutuante */
.zap-flutuante {
	position: fixed;
	right: 22px;
	bottom: 22px;
	z-index: 900;
	width: 58px;
	height: 58px;
	border-radius: 50%;
	background: #25D366;
	color: var(--branco);
	display: grid;
	place-items: center;
	box-shadow: 0 10px 24px -6px rgba(0, 0, 0, .35);
	transition: transform .2s ease, box-shadow .2s ease;
}
.zap-flutuante:hover {
	transform: scale(1.08);
	box-shadow: 0 14px 30px -6px rgba(0, 0, 0, .4);
}
.zap-flutuante svg { width: 30px; height: 30px; }

/* VLibras: o widget "pisca" uma caixa ao inicializar (comportamento padrão do
   plugin gov.br) — mantém invisível até a inicialização terminar. */
div[vw] { opacity: 0; animation: vlibras-surgir .4s ease 2.5s forwards; }
@keyframes vlibras-surgir { to { opacity: 1; } }

/* Redes sociais no footer */
.footer__acoes-direita {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 14px;
}
.footer__sociais { display: flex; gap: 10px; }
.footer__sociais a {
	width: 38px;
	height: 38px;
	border-radius: 50%;
	display: grid;
	place-items: center;
	background: rgba(255, 255, 255, .08);
	color: #C3C9D2;
	transition: background-color .2s ease, color .2s ease;
}
.footer__sociais a:hover { background: var(--verde); color: var(--branco); }
.footer__sociais svg { width: 17px; height: 17px; }
@media (max-width: 700px) {
	.footer__acoes-direita { align-items: flex-start; }
}

/* ==========================================================================
   Listagem de notícias e páginas institucionais
   ========================================================================== */

.listagem { padding: 0 0 96px; }
.listagem__cabecalho { margin-bottom: 24px; }
.listagem__cabecalho .secao__titulo { margin-bottom: 8px; }
.listagem__filtros {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-bottom: 30px;
}
.filtro-pill {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	background: var(--branco);
	border: 1px solid var(--cinza-borda);
	border-radius: 999px;
	padding: 9px 18px;
	font-size: 14px;
	font-weight: 600;
	color: var(--texto);
	transition: background-color .15s ease, color .15s ease, border-color .15s ease;
}
.filtro-pill span { font-size: 12px; color: var(--texto-suave); }
.filtro-pill:hover { border-color: #C7DBFF; background: var(--azul-claro); color: var(--azul); }
.filtro-pill.ativa { background: var(--azul); border-color: var(--azul); color: var(--branco); }
.filtro-pill.ativa span { color: rgba(255, 255, 255, .75); }
.listagem__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 20px;
}
@media (max-width: 1100px) {
	.listagem__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 900px) {
	.listagem { padding: 0 0 64px; }
	.listagem__grid { grid-template-columns: 1fr; }
}

/* Paginação nativa do WP com o mesmo visual da Rede */
.paginacao {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 6px;
	flex-wrap: wrap;
	margin-top: 34px;
}
.paginacao .page-numbers {
	min-width: 38px;
	height: 38px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0 10px;
	border: 1px solid var(--cinza-borda);
	border-radius: 8px;
	background: var(--branco);
	font-size: 14px;
	font-weight: 600;
	color: var(--texto);
	transition: background-color .15s ease, color .15s ease, border-color .15s ease;
}
.paginacao a.page-numbers:hover { border-color: #C7DBFF; background: var(--azul-claro); color: var(--azul); }
.paginacao .page-numbers.current { background: var(--azul); border-color: var(--azul); color: var(--branco); }
.paginacao .page-numbers.dots { border: 0; background: none; color: var(--texto-suave); }

/* Páginas institucionais */
.pagina { padding: 0 0 96px; }
/* Faixa azul colada no header, por baixo dele (o header tem z-index maior e a sombra aparece) */
.pagina__hero {
	background:
		url(../img/bg-pat.png) repeat 0 0,
		linear-gradient(180deg, var(--azul) 0%, #0041A3 100%);
	color: var(--branco);
	text-align: center;
	padding: 52px 0;
	position: relative;
	z-index: 1;
}
.pagina__hero h1 {
	margin: 0;
	font-size: clamp(26px, 3vw, 34px);
	font-weight: 800;
	line-height: 1.2;
}
.pagina__hero p {
	margin: 10px auto 0;
	opacity: .92;
	font-size: 15.5px;
	max-width: 680px;
}
.faixa-depois { padding-top: 44px; }
.pagina__coluna { padding-top: 48px; }
.pagina .fale-caixa { margin-top: 48px; }
@media (max-width: 900px) {
	.pagina { padding-bottom: 64px; }
	.pagina__hero { padding: 36px 0; }
	.pagina__coluna { padding-top: 32px; }
}

/* ==========================================================================
   Estilos de bloco do Gutenberg (kit Banescaixa)
   ========================================================================== */

.is-style-destaque {
	background: var(--azul-claro);
	border-left: 4px solid var(--azul);
	border-radius: 0 14px 14px 0;
	padding: 22px 26px;
}
.is-style-cartao {
	background: var(--branco);
	border: 1px solid var(--cinza-borda);
	border-radius: 16px;
	padding: 24px 22px;
	height: 100%;
	display: flex;
	flex-direction: column;
}
/* Botões sempre no rodapé do cartão (cards lado a lado alinham os botões) */
.is-style-cartao > .wp-block-buttons { margin-top: auto; padding-top: 12px; }
/* Em colunas: a coluna vira flex e o cartão estica até a mais alta da linha.
   (height:100% + stretch do columns criava ciclo que inflava o card) */
.conteudo-post .wp-block-column:has(> .is-style-cartao) { display: flex; }
.conteudo-post .wp-block-column > .wp-block-group.is-style-cartao { height: auto; width: 100%; margin: 0; }
/* Tipografia compacta dentro do cartão — as margens generosas do texto corrido
   (h3 28px de topo etc.) não colapsam no flex e inflavam o card */
.conteudo-post .is-style-cartao h2,
.conteudo-post .is-style-cartao h3,
.conteudo-post .is-style-cartao h4 { margin: 10px 0 6px; }
.conteudo-post .is-style-cartao p { margin: 0 0 10px; }
.conteudo-post .is-style-cartao .cartao-rotulo { margin-bottom: 6px; }
.wp-block-button.is-style-pilula-azul .wp-block-button__link,
.wp-block-button.is-style-pilula-verde .wp-block-button__link,
.wp-block-button.is-style-pilula-contorno .wp-block-button__link,
.wp-block-button.is-style-pilula-branca .wp-block-button__link {
	border-radius: 999px;
	font-weight: 700;
	font-size: 14px;
	padding: 12px 24px;
	transition: background-color .2s ease, color .2s ease;
}
.wp-block-button.is-style-pilula-azul .wp-block-button__link { background: var(--azul); color: var(--branco); }
.wp-block-button.is-style-pilula-azul .wp-block-button__link:hover { background: var(--azul-escuro); }
.wp-block-button.is-style-pilula-verde .wp-block-button__link { background: var(--verde); color: var(--branco); }
.wp-block-button.is-style-pilula-verde .wp-block-button__link:hover { background: var(--verde-escuro); }
.wp-block-button.is-style-pilula-contorno .wp-block-button__link {
	background: transparent;
	color: var(--azul);
	box-shadow: inset 0 0 0 1.5px var(--azul);
}
.wp-block-button.is-style-pilula-contorno .wp-block-button__link:hover { background: var(--azul); color: var(--branco); }
.wp-block-button.is-style-pilula-branca .wp-block-button__link { background: var(--branco); color: var(--azul); }
.wp-block-button.is-style-pilula-branca .wp-block-button__link:hover { background: var(--azul-claro); }

/* Faixa CTA azul reutilizável no conteúdo */
.bloco-cta {
	background:
		url(../img/bg-pat.png) repeat 0 0,
		linear-gradient(180deg, var(--azul) 0%, #0041A3 100%);
	color: var(--branco);
	border-radius: 18px;
	text-align: center;
	padding: 48px 32px;
	margin: 28px 0;
}
.bloco-cta h2, .bloco-cta h3 { color: var(--branco); margin-top: 0; }
.bloco-cta p { opacity: .92; }
.conteudo-post .wp-block-columns { gap: 20px; }

/* Acordeão (details) bonito no front */
.wp-block-details {
	background: var(--branco);
	border: 1px solid var(--cinza-borda);
	border-radius: 12px;
	margin: 0 0 12px;
	overflow: hidden;
}
.wp-block-details summary {
	padding: 16px 20px;
	font-weight: 700;
	cursor: pointer;
	list-style: none;
	position: relative;
	padding-right: 48px;
	transition: background-color .15s ease;
}
.wp-block-details summary::-webkit-details-marker { display: none; }
.wp-block-details summary::after {
	content: "";
	position: absolute;
	right: 20px;
	top: 50%;
	width: 9px;
	height: 9px;
	margin-top: -7px;
	border-right: 2.5px solid var(--azul);
	border-bottom: 2.5px solid var(--azul);
	transform: rotate(45deg);
	transition: transform .2s ease;
}
.wp-block-details summary:hover { background: var(--cinza-claro); }
.wp-block-details[open] summary {
	border-bottom: 1px solid var(--cinza-borda);
	background: var(--cinza-claro);
}
.wp-block-details[open] summary::after { transform: rotate(-135deg); margin-top: -2px; }
.wp-block-details > :not(summary) { margin-left: 20px; margin-right: 20px; }
.wp-block-details > :nth-child(2) { margin-top: 16px; }
.wp-block-details > :last-child { margin-bottom: 16px; }

/* Botões de bloco: sem sublinhado herdado do conteúdo */
.conteudo-post .wp-block-button__link,
.conteudo-post .wp-block-button__link:hover { text-decoration: none; }

/* Cabeçalho de cartão: ícone em círculo + rótulo maiúsculo azul */
.cartao-rotulo {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 14px;
}
.cartao-rotulo .wp-block-image {
	width: 36px;
	height: 36px;
	flex: none;
	background: var(--azul-claro);
	border-radius: 50%;
	display: grid;
	place-items: center;
	margin: 0;
}
.cartao-rotulo .wp-block-image img {
	width: 16px !important;
	height: 16px !important;
	object-fit: contain;
}
.cartao-rotulo p {
	margin: 0;
	font-size: 12.5px;
	font-weight: 800;
	letter-spacing: .07em;
	text-transform: uppercase;
	color: var(--azul);
}

/* Lista com linhas separadoras (estilo do bloco Lista) */
.is-style-linhas,
.conteudo-post ul.is-style-linhas {
	list-style: none;
	padding-left: 0 !important;
}
.is-style-linhas li {
	border-bottom: 1px solid var(--cinza-borda);
	padding: 9px 0 !important;
	margin: 0 !important;
}
.is-style-linhas li:last-child { border-bottom: 0; }

/* Patrocinadores */
.patrocinadores__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 20px;
	margin-top: 8px;
}
.patrocinador-card {
	background: var(--branco);
	border: 1px solid var(--cinza-borda);
	border-radius: 16px;
	padding: 28px 20px;
	text-align: center;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	transition: box-shadow .2s ease, transform .2s ease;
}
.patrocinador-card:hover {
	box-shadow: 0 20px 40px -10px rgba(0, 0, 0, 0.12);
	transform: translateY(-2px);
}
.patrocinador-card__logo {
	height: 64px;
	display: grid;
	place-items: center;
	margin-bottom: 6px;
}
.patrocinador-card__logo img { max-height: 64px; width: auto; }
.patrocinador-card__logo .patrocinador-card__icone {
	width: 40px;
	height: 40px;
	opacity: .45;
}
.patrocinador-card h3 { margin: 0; font-size: 17px; font-weight: 700; }
.patrocinador-card p { margin: 0; font-size: 13px; color: var(--texto-suave); line-height: 1.45; }
.patrocinador-card .btn { margin-top: auto; padding: 8px 18px; font-size: 13px; }
.patrocinador-card h3, .patrocinador-card p { margin-bottom: 4px; }
@media (max-width: 1000px) { .patrocinadores__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .patrocinadores__grid { grid-template-columns: 1fr; } }

/* 404 */
.erro-404 { text-align: center; }
.erro-404__codigo {
	font-size: clamp(120px, 18vw, 200px);
	font-weight: 800;
	color: var(--verde);
	line-height: 1;
	margin: 0 0 8px;
	letter-spacing: -0.03em;
}
.erro-404__texto { color: var(--texto-suave); margin: 0 0 24px; }
.erro-404__acoes { display: flex; justify-content: center; gap: 10px; flex-wrap: wrap; }

/* Busca no mega menu */
.mega__busca {
	display: flex;
	align-items: center;
	gap: 10px;
	background: var(--cinza-claro);
	border-radius: var(--raio-card);
	padding: 10px 12px;
}
.mega__busca input {
	flex: 1;
	min-width: 0;
	border: 1px solid var(--cinza-borda);
	border-radius: 8px;
	padding: 10px 14px;
	font-family: var(--fonte);
	font-size: 14px;
	background: var(--branco);
}
.mega__busca input:focus { outline: 2px solid var(--azul-claro); border-color: #C7DBFF; }
.mega__busca .btn { padding: 10px 20px; font-size: 13px; }

/* Painel escuro para destaques fortes (reajustes, avisos maiores) */
.is-style-painel-escuro {
	background: linear-gradient(180deg, #0E2A5C 0%, #0A1F44 100%);
	color: var(--branco);
	border-radius: 14px;
	text-align: center;
	padding: 32px 28px;
}
.is-style-painel-escuro p { color: var(--branco); }
.is-style-painel-escuro hr {
	border: 0;
	border-top: 1px solid rgba(255, 255, 255, .25);
	margin: 18px auto;
	max-width: 320px;
}

/* Caixa de aviso âmbar */
.is-style-aviso {
	background: #FFFBEB;
	border: 1px solid #FDE68A;
	border-radius: 12px;
	padding: 18px 22px;
}

/* Rótulo de estatística (letras espaçadas) */
.stat-rotulo {
	font-size: 12.5px !important;
	font-weight: 800;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--texto-suave);
	margin-bottom: 4px !important;
}
.is-style-painel-escuro .stat-rotulo { color: rgba(255, 255, 255, .8); }

/* Fórmula (caixinha monoespaçada) */
.formula {
	background: var(--branco);
	border: 1px solid var(--cinza-borda);
	border-radius: 8px;
	padding: 12px 16px;
	font-family: ui-monospace, "SF Mono", Menlo, monospace;
	font-size: 13px !important;
	color: #374151;
}

/* Tabela listrada com cabeçalho azul */
.conteudo-post .is-style-listrada th {
	background: linear-gradient(180deg, #0E2A5C 0%, #0A1F44 100%);
	color: var(--branco);
	font-size: 12.5px;
	letter-spacing: .06em;
	text-transform: uppercase;
	border-right: 0 !important;
}
.conteudo-post .is-style-listrada tr:nth-child(even) td { background: var(--cinza-claro); }
.conteudo-post .is-style-listrada td:last-child { font-weight: 700; }
.conteudo-post .is-style-listrada td:not(:first-child),
.conteudo-post .is-style-listrada th:not(:first-child) { text-align: right; }

/* Respiro entre os blocos do kit dentro do conteúdo */
.conteudo-post .wp-block-group.is-style-destaque,
.conteudo-post .wp-block-group.is-style-painel-escuro,
.conteudo-post .wp-block-group.is-style-aviso,
.conteudo-post .wp-block-group.is-style-cartao {
	margin: 24px 0;
}
.conteudo-post .wp-block-group.is-style-destaque + .wp-block-group,
.conteudo-post .wp-block-group.is-style-painel-escuro + .wp-block-group,
.conteudo-post .wp-block-group.is-style-aviso + .wp-block-group {
	margin-top: 24px;
}
/* Depois de uma grade de cartões, as caixas do kit ganham mais respiro */
.conteudo-post .wp-block-columns + .wp-block-group.is-style-destaque,
.conteudo-post .wp-block-columns + .wp-block-group.is-style-aviso,
.conteudo-post .wp-block-columns + .wp-block-group.is-style-painel-escuro,
.conteudo-post .wp-block-columns + .bloco-cta {
	margin-top: 36px;
}

/* ==========================================================================
   Toque (mobile)
   ========================================================================== */

/* Sem flash cinza/azul do navegador ao tocar */
* { -webkit-tap-highlight-color: transparent; }

/* Sem atraso de 300ms nem zoom acidental de duplo toque nos interativos */
a, button, input, select, textarea, label,
.noticia-card, .servico-card, .patrocinador-card, .mega-card {
	touch-action: manipulation;
}

/* Texto não seleciona sem querer ao segurar itens de navegação */
.nav a, .mobile-menu__nav a, .mobile-menu button, .menu-toggle,
.acess button, .btn, .footer__menu a {
	-webkit-user-select: none;
	user-select: none;
}

/* Botões afundam levemente ao pressionar (feedback tátil) */
.btn:active,
.wp-block-button__link:active,
.mobile-menu__acess button:active,
.mobile-menu__fechar:active { transform: scale(.96); }

/* Telas de toque: hover "gruda" depois do tap — troca o levantar por um
   afundar rápido no próprio toque */
@media (hover: none) {
	.noticia-card:hover,
	.servico-card:hover,
	.patrocinador-card:hover {
		transform: none;
		box-shadow: none;
	}
	.zap-flutuante:hover { transform: none; }
	.noticia-card:active,
	.servico-card:active,
	.patrocinador-card:active { transform: scale(.98); }
	.mobile-menu__nav a:active { background: var(--cinza-claro); }
}

/* Utilitário: visível só para leitores de tela */
.sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* ==========================================================================
   Consentimento de cookies (LGPD)
   ========================================================================== */
.cookies-banner {
	position: fixed;
	left: 16px;
	right: 16px;
	bottom: 16px;
	z-index: 950; /* acima do WhatsApp (900), abaixo do drawer (998) */
	margin: 0 auto;
	max-width: 720px;
	background: var(--branco);
	border-radius: 16px;
	box-shadow: 0 12px 40px rgba(6, 16, 173, .22);
	padding: 20px 24px;
	display: flex;
	align-items: center;
	gap: 24px;
}
.cookies-banner[hidden] { display: none; }
.cookies-banner__texto strong {
	display: block;
	font-size: 15px;
	color: var(--azul-escuro);
	margin-bottom: 4px;
}
.cookies-banner__texto p {
	font-size: 13px;
	line-height: 1.5;
	color: var(--cinza-texto, #444);
	margin: 0;
}
.cookies-banner__texto a { color: var(--azul); font-weight: 600; }
.cookies-banner__acoes {
	display: flex;
	flex-direction: column;
	gap: 8px;
	flex-shrink: 0;
}
.cookies-banner__acoes .btn { justify-content: center; }
@media (max-width: 640px) {
	.cookies-banner { flex-direction: column; align-items: stretch; gap: 14px; }
	.cookies-banner__acoes { flex-direction: column-reverse; }
}

/* Iframe de terceiro bloqueado até o aceite: some e dá lugar ao aviso */
iframe.consent-bloqueado { display: none; }
.consent-aviso {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 14px;
	text-align: center;
	min-height: 260px;
	padding: 24px;
	border-radius: 12px;
	background: var(--azul-claro);
}
.consent-aviso p {
	font-size: 14px;
	line-height: 1.5;
	color: var(--cinza-texto, #444);
	margin: 0;
	max-width: 420px;
}

/* ==========================================================================
   Lista de membros (Administração) — linhas com badge de cargo,
   nome e origem/mandato à direita, no padrão do site antigo
   ========================================================================== */
.conteudo-post .lista-membros {
	background: var(--branco);
	border: 1px solid #E3E8EF;
	border-radius: 16px;
	padding: 0;
	margin: 24px 0 40px;
	overflow: hidden;
}
.conteudo-post .membro {
	display: flex;
	align-items: center;
	gap: 16px;
	padding: 18px 24px;
}
.conteudo-post .membro + .membro { border-top: 1px solid #EDF0F5; }
.conteudo-post .membro__cargo {
	flex-shrink: 0;
	min-width: 128px;
	text-align: center;
	font-size: 12px;
	font-weight: 700;
	color: var(--azul);
	background: var(--azul-claro);
	border-radius: 999px;
	padding: 5px 14px;
	margin: 0;
}
.conteudo-post .membro__cargo--chefe { background: var(--azul); color: var(--branco); }
.conteudo-post .membro__cargo--suave { background: #EEF1F5; color: #5B6472; }
.conteudo-post .membro__nome {
	font-size: 15px;
	font-weight: 700;
	color: var(--preto, #14181F);
	margin: 0;
}
.conteudo-post .membro__meta {
	margin: 0 0 0 auto;
	text-align: right;
	font-size: 12px;
	line-height: 1.6;
	color: #8A93A0;
}
@media (max-width: 640px) {
	.conteudo-post .membro { flex-wrap: wrap; gap: 8px 12px; }
	.conteudo-post .membro__meta { margin-left: 0; width: 100%; text-align: left; }
}

/* Destaque numérico (tiles de estatística nas instruções) */
.conteudo-post .is-style-destaque.destaque-stat {
	border-left: 0;
	border-radius: 12px;
	text-align: center;
	height: 100%;
}
.conteudo-post .destaque-stat p:first-child {
	font-size: 28px;
	font-weight: 800;
	color: var(--azul);
	margin-bottom: 4px;
}
.conteudo-post .destaque-stat p { margin-bottom: 0; }

/* ==========================================================================
   Formulário de contato próprio (plugin banescaixa-contato)
   ========================================================================== */
.form-contato label {
	display: block;
	font-size: 14px;
	font-weight: 700;
	color: var(--azul-escuro);
	margin-bottom: 6px;
}
.form-contato input[type="text"],
.form-contato input[type="email"],
.form-contato input[type="tel"],
.form-contato textarea {
	width: 100%;
	font-family: var(--fonte);
	font-size: 14px;
	color: inherit;
	background: var(--branco);
	border: 1.5px solid #D7DEE8;
	border-radius: 10px;
	padding: 11px 14px;
	transition: border-color .2s ease, box-shadow .2s ease;
}
.form-contato input:focus,
.form-contato textarea:focus {
	outline: none;
	border-color: var(--azul);
	box-shadow: 0 0 0 3px rgba(8, 20, 221, .12);
}
.form-contato textarea { resize: vertical; }
.form-contato p { margin: 0 0 16px; }
.form-contato__linha { display: flex; gap: 16px; }
.form-contato__linha p { flex: 1; }
.form-contato__hp { position: absolute !important; left: -9999px; }
.form-contato__lgpd label { font-weight: 400; font-size: 13px; color: inherit; }
.form-contato__lgpd input { margin-right: 6px; }
.form-contato__ok,
.form-contato__erro {
	border-radius: 10px;
	padding: 12px 16px;
	font-size: 14px;
	font-weight: 600;
}
.form-contato__ok { background: #E7F6EA; color: var(--verde-escuro); }
.form-contato__erro { background: #FDEBEC; color: #B3261E; }
@media (max-width: 640px) {
	.form-contato__linha { flex-direction: column; gap: 0; }
}

/* Navegação anterior/próxima entre notícias (single) */
.single-noticia__navegacao {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
	margin: 32px 0 8px;
}
.nav-noticia {
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding: 18px 22px;
	background: var(--branco);
	border: 1px solid #E3E8EF;
	border-radius: 16px;
	transition: border-color .2s ease, box-shadow .2s ease;
}
.nav-noticia:hover {
	border-color: var(--azul);
	box-shadow: 0 6px 20px rgba(8, 20, 221, .08);
}
.nav-noticia--proxima { text-align: right; align-items: flex-end; }
.nav-noticia__rotulo {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 12px;
	font-weight: 700;
	color: var(--azul);
}
.nav-noticia__rotulo svg { width: 10px; height: 10px; }
.nav-noticia__titulo {
	font-size: 15px;
	font-weight: 700;
	color: var(--preto, #14181F);
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
@media (max-width: 640px) {
	.single-noticia__navegacao { grid-template-columns: 1fr; }
	.nav-noticia--proxima { text-align: left; align-items: flex-start; }
}

/* Grade dos cards de resultado IDSS (shortcode do plugin) */
.conteudo-post .idss-cards {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	gap: 24px;
	margin: 24px 0 40px;
}
.conteudo-post .idss-cards .is-style-cartao { margin: 0; }

/* Atalhos de acesso rápido no mega menu (coluna da direita).
   A coluna vira flex e o bloco desce com margin-top:auto, alinhando o fim
   dos atalhos com o fim da lista do menu à esquerda. */
.nav .mega > div:last-child { display: flex; flex-direction: column; }
.mega__titulo--acesso { margin-top: auto; padding-top: 16px; }
.mega__atalhos {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 10px;
	margin-bottom: 0;
}
.mega-atalho {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 11px 14px;
	font-size: 13.5px;
	font-weight: 600;
	color: #374151;
	background: var(--cinza-claro);
	border: 1px solid var(--cinza-borda);
	border-radius: 10px;
	transition: background-color .2s ease, border-color .2s ease, color .2s ease;
}
.mega-atalho svg {
	width: 15px;
	height: 15px;
	flex-shrink: 0;
	color: var(--azul);
}
.mega-atalho:hover {
	color: var(--azul);
	background: var(--azul-claro);
	border-color: #C7DBFF;
}
/* Doe sangue: vermelho comunica o tema, como no atalho da home */
.mega-atalho--sangue svg { color: #DC2626; }
.mega-atalho--sangue:hover {
	color: #DC2626;
	background: #FEE2E2;
	border-color: #FECACA;
}

/* Atalhos rápidos no drawer mobile — dentro do submenu do A Banescaixa */
.mobile-menu__subtitulo {
	font-size: 12px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .04em;
	color: #8A93A0;
	margin: 16px 0 8px;
	padding: 0 4px;
}
.mobile-menu__atalhos {
	display: grid;
	gap: 8px;
	margin-bottom: 8px;
}
/* Especificidade acima de .mobile-menu .sub-menu a / .mobile-menu__nav a,
   que achatam padding e peso da fonte. Fundo branco: o submenu já é cinza. */
.mobile-menu__nav a.mega-atalho {
	justify-content: flex-start;
	font-weight: 600;
	font-size: 13.5px;
	color: #374151;
	padding: 11px 14px;
	background: var(--branco);
	border-bottom: 1px solid var(--cinza-borda);
}

/* Hover dos cards dos espaços no mega menu — mesmo idioma dos outros cards
   (levanta + sombra), com a borda assumindo a cor do espaço. Sem scale:
   o card está dentro do painel do menu e cresceria por cima da borda dele. */
.mega-card {
	transition: box-shadow .2s ease, transform .2s ease, border-color .2s ease, background-color .2s ease;
}
.mega-card:hover {
	transform: translateY(-3px);
	box-shadow: 0 16px 32px -12px rgba(7, 14, 40, .22);
	background: var(--branco);
	border-color: var(--verde);
}
.mega-card--azul:hover { border-color: var(--azul); }

/* O ícone acompanha, para o card parecer uma peça só */
.mega-card__icone { transition: transform .2s ease; }
.mega-card:hover .mega-card__icone { transform: scale(1.08); }

/* Telas de toque (tablet grande ainda mostra o mega menu): hover "gruda"
   depois do tap — troca o levantar por um afundar no próprio toque */
@media (hover: none) {
	.mega-card:hover { transform: none; box-shadow: none; }
	.mega-card:active { transform: scale(.98); }
}

/* ==========================================================================
   Busca em overlay (botão na topbar e no drawer)
   ========================================================================== */
.topbar__busca {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin-left: auto;
	background: rgba(255, 255, 255, .15);
	color: var(--branco);
	border: 0;
	border-radius: 6px;
	height: 26px;
	padding: 0 10px;
	font-family: var(--fonte);
	font-size: 12.5px;
	font-weight: 700;
	cursor: pointer;
	transition: background-color .15s ease;
}
.topbar__busca:hover { background: rgba(255, 255, 255, .3); }
.topbar__busca svg { width: 12px; height: 12px; }
/* O .acess tem margin-left:auto próprio; com a busca antes dele, só a busca empurra */
.topbar__busca + .acess { margin-left: 14px; }
/* Mobile: a busca fica só no drawer — a topbar apertada mostra telefone e denúncia.
   Precisa vir DEPOIS da regra base acima, senão o display:inline-flex vence. */
@media (max-width: 1080px) {
	.topbar__busca { display: none; }
}

/* Botão no drawer mobile */
.mobile-menu__busca {
	display: flex;
	align-items: center;
	gap: 10px;
	width: 100%;
	margin-top: 18px;
	padding: 13px 16px;
	background: var(--azul-claro);
	color: var(--azul);
	border: 0;
	border-radius: 12px;
	font-family: var(--fonte);
	font-size: 14.5px;
	font-weight: 700;
	cursor: pointer;
}
.mobile-menu__busca svg { width: 15px; height: 15px; }

/* Overlay */
.busca-overlay {
	position: fixed;
	inset: 0;
	z-index: 1100; /* acima do drawer (998/999) e do banner de cookies (950) */
	display: grid;
	place-items: center;
	padding: 24px;
	/* Vidro: deixa o site aparecer desfocado atrás */
	background: rgba(8, 20, 221, .55);
	-webkit-backdrop-filter: blur(20px) saturate(150%);
	backdrop-filter: blur(20px) saturate(150%);
	opacity: 0;
	transition: opacity .22s ease;
}
/* Sem suporte a backdrop-filter, volta ao azul opaco para o texto não perder contraste */
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
	.busca-overlay { background: rgba(6, 16, 173, .95); }
}
.busca-overlay[hidden] { display: none; }
.busca-overlay.aberta { opacity: 1; }
.busca-overlay__fechar {
	position: absolute;
	top: 20px;
	right: 20px;
	width: 44px;
	height: 44px;
	display: grid;
	place-items: center;
	background: rgba(255, 255, 255, .15);
	color: var(--branco);
	border: 0;
	border-radius: 50%;
	cursor: pointer;
	transition: background-color .15s ease;
}
.busca-overlay__fechar:hover { background: rgba(255, 255, 255, .3); }
.busca-overlay__fechar svg { width: 16px; height: 16px; }
.busca-overlay__caixa {
	width: min(100%, 640px);
	text-align: center;
	transform: translateY(-8px);
	transition: transform .22s ease;
}
.busca-overlay.aberta .busca-overlay__caixa { transform: translateY(0); }
.busca-overlay__titulo {
	font-size: 28px;
	font-weight: 800;
	color: var(--branco);
	margin: 0 0 18px;
}
/* Campo e botão como uma peça só: a pílula branca é o próprio form */
.busca-overlay__form {
	display: flex;
	align-items: center;
	gap: 8px;
	background: var(--branco);
	border-radius: 999px;
	padding: 7px 7px 7px 8px;
	box-shadow: 0 18px 44px -16px rgba(4, 8, 60, .5);
}
.busca-overlay__form:focus-within { box-shadow: 0 0 0 3px rgba(255, 255, 255, .6), 0 18px 44px -16px rgba(4, 8, 60, .5); }
.busca-overlay__form input {
	flex: 1;
	min-width: 0;
	font-family: var(--fonte);
	font-size: 16px;
	color: var(--texto);
	background: transparent;
	border: 0;
	padding: 11px 14px;
}
.busca-overlay__form input:focus { outline: 0; }
.busca-overlay__form input::placeholder { color: #8A93A0; }
.busca-overlay__form .btn {
	flex-shrink: 0;
	background: var(--verde);
	color: var(--branco);
	padding: 12px 22px;
	gap: 8px;
}
.busca-overlay__form .btn:hover { background: var(--verde-escuro); }
.busca-overlay__form .btn svg { width: 14px; height: 14px; }
.busca-overlay__dica {
	margin: 14px 0 0;
	font-size: 13px;
	color: rgba(255, 255, 255, .75);
}
.busca-overlay__dica kbd {
	background: rgba(255, 255, 255, .18);
	border-radius: 4px;
	padding: 1px 6px;
	font-family: inherit;
	font-size: 12px;
}
body.busca-aberta { overflow: hidden; }

@media (max-width: 640px) {
	.busca-overlay__titulo { font-size: 22px; }
	/* No celular a pílula fica mais compacta, mas segue sendo uma peça só */
	.busca-overlay__form { padding: 6px; }
	.busca-overlay__form input { font-size: 15px; padding: 10px 12px; }
	.busca-overlay__form .btn { padding: 11px 16px; }
	.busca-overlay__form .btn svg { margin: 0; }
}

/* ==========================================================================
   Menu flutuante (desktop) — botão fixo que surge na rolagem + overlay
   com o menu centralizado, no mesmo vidro azul da busca
   ========================================================================== */
.menu-flutuante {
	position: fixed;
	top: 20px;
	right: 24px;
	z-index: 1060; /* acima do próprio overlay (1050), para o X ficar clicável */
	width: 54px;
	height: 54px;
	border: 0;
	border-radius: 50%;
	background: var(--azul);
	color: var(--branco);
	display: grid;
	place-items: center;
	cursor: pointer;
	box-shadow: 0 10px 24px -6px rgba(8, 20, 221, .45);
	opacity: 0;
	visibility: hidden;
	transform: translateY(-10px) scale(.9);
	transition: opacity .25s ease, transform .25s ease, visibility .25s, background-color .2s ease;
}
.menu-flutuante.visivel,
.menu-flutuante.aberto {
	opacity: 1;
	visibility: visible;
	transform: none;
}
.menu-flutuante:hover { background: var(--azul-escuro); }

/* Hambúrguer -> X: as barras de cima e de baixo giram para o centro */
.menu-flutuante__barras {
	position: relative;
	width: 22px;
	height: 17px;
	display: block;
}
.menu-flutuante__barras span {
	position: absolute;
	left: 0;
	width: 100%;
	height: 2.5px;
	border-radius: 2px;
	background: currentColor;
	transition: transform .32s cubic-bezier(.4, 0, .2, 1), top .32s cubic-bezier(.4, 0, .2, 1), opacity .18s ease;
}
.menu-flutuante__barras span:nth-child(1) { top: 0; }
.menu-flutuante__barras span:nth-child(2) { top: 7.25px; }
.menu-flutuante__barras span:nth-child(3) { top: 14.5px; }
.menu-flutuante.aberto .menu-flutuante__barras span:nth-child(1) { top: 7.25px; transform: rotate(45deg); }
.menu-flutuante.aberto .menu-flutuante__barras span:nth-child(2) { opacity: 0; transform: scaleX(.3); }
.menu-flutuante.aberto .menu-flutuante__barras span:nth-child(3) { top: 7.25px; transform: rotate(-45deg); }

.menu-overlay {
	position: fixed;
	inset: 0;
	z-index: 1050; /* abaixo da busca (1100): dá para abrir a busca por cima */
	display: grid;
	place-items: center;
	padding: 32px;
	/* Vidro branco: o site aparece desfocado atrás e a marca fica no original */
	background: rgba(255, 255, 255, .8);
	-webkit-backdrop-filter: blur(22px) saturate(140%);
	backdrop-filter: blur(22px) saturate(140%);
	opacity: 0;
	visibility: hidden;
	transition: opacity .3s ease, visibility .3s;
}
.menu-overlay.aberto { opacity: 1; visibility: visible; }
body.menu-overlay-aberto { overflow: hidden; }
body.menu-overlay-aberto .zap-flutuante { opacity: 0; pointer-events: none; }

.menu-overlay__inner { text-align: center; }
.menu-overlay__logo {
	display: block;
	width: 190px;
	height: auto;
	margin: 0 auto 38px;
}
/* Colunas: mapa do site em grade 3x2 — a posição segue a ORDEM dos itens no
   menu principal (1º A Banescaixa, 2º Rede Credenciada, 3º Nossos Planos,
   4º ANS TISS). Se a ordem mudar em Aparência -> Menus, ajustar os nth-child. */
.menu-overlay__lista {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(3, minmax(190px, auto));
	gap: 28px clamp(28px, 4.5vw, 64px);
	justify-content: center;
	align-items: start;
	text-align: left;
}
.menu-overlay__lista > li:nth-child(1) { grid-column: 1; grid-row: 1 / 3; } /* A Banescaixa: coluna inteira */
.menu-overlay__lista > li:nth-child(3) { grid-column: 2; grid-row: 1; }     /* Nossos Planos */
.menu-overlay__lista > li:nth-child(4) { grid-column: 2; grid-row: 2; }     /* ANS TISS embaixo dele */
.menu-overlay__lista > li:nth-child(2) { display: none; }                    /* Rede Credenciada vira botão na coluna 3 */
.menu-overlay__lista > li.menu-overlay__acoes-item { grid-column: 3; grid-row: 1 / 3; } /* pilha de botões no topo da coluna */
.menu-overlay__acoes-item {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 10px;
}
.menu-overlay__lista > li {
	opacity: 0;
	transform: translateY(22px);
	transition: opacity .5s ease, transform .5s ease;
	transition-delay: calc(.08s + var(--i, 0) * .07s); /* cascata por coluna */
}
.menu-overlay.aberto .menu-overlay__lista > li { opacity: 1; transform: none; }
.menu-overlay__lista > li > a:not(.menu-overlay__botao) {
	display: block;
	color: var(--texto);
	font-size: 18px;
	font-weight: 800;
	padding-bottom: 10px;
	margin-bottom: 12px;
	border-bottom: 2px solid var(--cinza-borda);
	transition: color .2s ease, border-color .2s ease;
}
.menu-overlay__lista > li > a:not(.menu-overlay__botao):hover { color: var(--azul); border-color: var(--azul); }
.menu-overlay .sub-menu {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 2px;
}
.menu-overlay .sub-menu a {
	display: block;
	color: #4B5563;
	font-size: 14.5px;
	padding: 5px 0;
	transition: color .15s ease, transform .15s ease;
}
.menu-overlay .sub-menu a:hover { color: var(--azul); transform: translateX(3px); }
/* Fechando: tudo some junto, sem esperar a cascata */
.menu-overlay:not(.aberto) .menu-overlay__lista > li {
	transition-delay: 0s;
	transition-duration: .18s;
}
/* Botões da coluna 3 — todos no mesmo estilo outline, empilhados no topo */
.menu-overlay__botao {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 11px 20px;
	border: 1.5px solid var(--cinza-borda);
	border-radius: 999px;
	background: transparent;
	color: var(--texto);
	font-family: var(--fonte);
	font-size: 14px;
	font-weight: 700;
	cursor: pointer;
	transition: background-color .2s ease, border-color .2s ease, color .2s ease;
}
.menu-overlay__botao:hover { background: var(--azul-claro); border-color: #C7DBFF; color: var(--azul); }
.menu-overlay__botao svg { width: 14px; height: 14px; }

/* Só no desktop — no mobile o drawer já cumpre esse papel */
@media (max-width: 1080px) {
	.menu-flutuante,
	.menu-overlay { display: none; }
}

/* ==========================================================================
   Transição entre páginas — View Transitions nativas do navegador.
   Crossfade curto na navegação interna; browsers sem suporte navegam
   normal (progressive enhancement, zero JS).
   ========================================================================== */
@view-transition {
	navigation: auto;
}
/* Só crossfade, sem movimento: público com muitos idosos — deslocamento na
   troca de página pode causar desconforto/vertigem. Rápido de propósito. */
::view-transition-old(root),
::view-transition-new(root) {
	animation-duration: .2s;
}
@media (prefers-reduced-motion: reduce) {
	@view-transition {
		navigation: none;
	}
}
