/* ============================================================
   PDC Cobertura — Frontend
*/

:where(.pdc-cobertura) {
	position: relative;
	/* Os círculos passam da borda direita. `clip` (e não `hidden`) corta sem
	   virar container de rolagem, deixando o tooltip escapar para cima. */
	overflow-x: clip;
}

:where(.pdc-cobertura) .container {
	width: 100%;
	max-width: 1312px;
	margin: 0 auto;
	padding: 0 20px;
	box-sizing: border-box;
}

:where(.pdc-cobertura) .nossa-cobertura-content {
	display: flex;
	gap: 32px;
	align-items: center;
	position: relative;
	z-index: 1;
}

:where(.pdc-cobertura) h2 {
	width: 100%;
	max-width: 288px;
	margin: -130px 0 0;
	padding-right: 100px;
	box-sizing: border-box;
	color: #006f3b;
	font-family: "Red Hat Display", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	font-size: 36px;
	font-weight: 600;
	line-height: 44px;
	letter-spacing: -0.72px;
}

/* A <ul> precisa do reset explícito: fora de um tema com normalize, ela vem
   com marcadores e recuo do navegador. */
:where(.pdc-cobertura) .list {
	width: 100%;
	max-width: 250px;
	margin: -20px 0 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-direction: column;
	position: relative;
	z-index: 1;
}

/* A barra verde atrás dos ícones de check. */
:where(.pdc-cobertura) .list::after {
	content: "";
	position: absolute;
	left: 12px;
	top: 50%;
	width: 20px;
	height: calc(100% - 8px);
	background-color: #34a936;
	border-radius: 12px;
	transform: translateY(-50%);
	z-index: -1;
}

:where(.pdc-cobertura) .list li {
	display: flex;
	align-items: center;
	gap: 12px;
	flex: 1 0 0;
	padding: 8px 12px;
	box-sizing: border-box;
	border-radius: 12px;
	list-style: none;
	transition: all .3s;
}

:where(.pdc-cobertura) .list li:hover {
	cursor: pointer;
	background: #f2f4f7;
}

:where(.pdc-cobertura) .list li span {
	color: #344054;
	font-family: "Red Hat Display", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	font-size: 18px;
	font-weight: 600;
	line-height: 28px;
}

:where(.pdc-cobertura) .svg-map {
	flex: 1;
	display: flex;
	justify-content: center;
	align-items: center;
}

/* Adornos: o traço pontilhado do título e os círculos atrás do mapa.
   Caminho relativo a este arquivo: frontend/css/ -> ../../assets/ */
:where(.pdc-cobertura) .nossa-cobertura-content::before {
	content: "";
	position: absolute;
	left: 50%;
	top: 50%;
	width: 100%;
	max-width: 850px;
	height: 256px;
	background-image: url("../../assets/curved-line.svg");
	background-repeat: no-repeat;
	background-size: contain;
	background-position: 0;
	z-index: 0;
}

:where(.pdc-cobertura)::before {
	content: "";
	position: absolute;
	right: 50%;
	top: 50%;
	width: 100%;
	max-width: 900px;
	height: 900px;
	transform: translate(80%, -60%);
	background-image: url("../../assets/circles-map.svg");
	background-repeat: no-repeat;
	background-size: contain;
	background-position: 0;
	z-index: 0;
}

@media (max-width: 1190px) {
	:where(.pdc-cobertura) h2 {
		max-width: 180px;
		padding-right: 0;
		line-height: 130%;
	}
}

@media (max-width: 840px) {
	/* O padding compensa o margin-top negativo do título; sem ele o h2 sobe
	   para fora do bloco quando a coluna empilha. */
	:where(.pdc-cobertura) { padding-top: 128px; }

	/* Empilhado não cabe adorno. */
	:where(.pdc-cobertura)::before,
	:where(.pdc-cobertura) .nossa-cobertura-content::before { display: none; }
	:where(.pdc-cobertura) .nossa-cobertura-content { flex-direction: column; }
	:where(.pdc-cobertura) h2 {
		max-width: 100%;
		margin-bottom: 32px;
		text-align: center;
	}
}

/* ── Palco do mapa ───────────────────────────────────────────── */
/* Largura fixa e sem encolher, como o tema faz com o <svg>: é o que mantém
   a lista de estados na mesma largura. */
.pdc-cobertura .pdc-map-stage {
	position: relative;
	line-height: 0;
	width: 584px;
	max-width: 100%;
	flex-shrink: 0;
}

.pdc-cobertura .pdc-map-stage picture { display: block; line-height: 0; }

/* A caixa da imagem tem de ser o desenho: as coordenadas % dos pins são
   calculadas contra ela, aqui e no admin. */
.pdc-cobertura .pdc-map-img {
	display: block;
	width: 100%;
	height: auto;
	max-width: 100%;
}

/* Acompanha os breakpoints que o tema já usa para o mapa. */
@media (max-width: 1190px) {
	.pdc-cobertura .pdc-map-stage { width: 430px; }
}

/* Empilhado: título > estados > mapa. O .svg-map precisa de largura
   explícita, senão a largura percentual do palco não tem contra o que
   resolver e o mapa colapsa para zero. */
/* ── Colunas da lista ────────────────────────────────────────── */
/* O tema força duas colunas na página "Área de atuação". Estas regras têm
   especificidade suficiente para a decisão ficar aqui, no shortcode. */
.nossa-cobertura.pdc-cobertura.pdc-cols-1 .nossa-cobertura-content .list {
	flex-flow: column nowrap;
	max-width: 250px;
}
.nossa-cobertura.pdc-cobertura.pdc-cols-1 .nossa-cobertura-content .list li {
	max-width: none;
}

.nossa-cobertura.pdc-cobertura.pdc-cols-2 .nossa-cobertura-content .list {
	flex-flow: row wrap;
	max-width: 490px;
}
.nossa-cobertura.pdc-cobertura.pdc-cols-2 .nossa-cobertura-content .list li {
	max-width: 50%;
	flex: 1 1 auto;
}

@media (max-width: 840px) {
	.pdc-cobertura .svg-map { width: 100%; }
	.pdc-cobertura .pdc-map-stage {
		width: 100%;
		max-width: 430px;
		margin: 0 auto;
	}

	/* Centraliza título, lista e mapa. Devolver a largura ao conteúdo é o que
	   faz o align-items:center da coluna ter o que centralizar. */
	.nossa-cobertura.pdc-cobertura .nossa-cobertura-content .list {
		width: auto;
		max-width: 250px;
		margin-left: auto;
		margin-right: auto;
	}
	.nossa-cobertura.pdc-cobertura.pdc-cols-1 .nossa-cobertura-content .list,
	.nossa-cobertura.pdc-cobertura.pdc-cols-2 .nossa-cobertura-content .list {
		flex-flow: column nowrap;
		max-width: 250px;
	}
	.nossa-cobertura.pdc-cobertura.pdc-cols-2 .nossa-cobertura-content .list li {
		max-width: none;
	}
	.nossa-cobertura.pdc-cobertura .nossa-cobertura-content h2 {
		text-align: center;
		margin-left: auto;
		margin-right: auto;
	}
}
@media (max-width: 640px) {
	.pdc-cobertura .pdc-map-stage { width: 90%; max-width: none; }
}

/* ── Pontilhado que sai do título ────────────────────────────── */
/* A bolinha nasce no centro do título, não na borda do bloco. Os 3px
   descontam a posição dela dentro do SVG.

   A largura corta o traço antes do mapa, para ele não atravessar o desenho.
   Com background-size no tamanho natural, estreitar recorta em vez de
   espremer — a bolinha fica onde está e só o trecho horizontal encurta. */
.nossa-cobertura.pdc-cobertura .nossa-cobertura-content::before {
	left: 141px;   /* 288px / 2 - 3px */
	transform: none;
	max-width: 400px;
	background-size: 850px 256px;
}
@media (max-width: 1190px) {
	/* Nesse breakpoint o tema estreita o h2 para 180px. */
	.nossa-cobertura.pdc-cobertura .nossa-cobertura-content::before {
		left: 87px;   /* 180px / 2 - 3px */
		max-width: 350px;
	}
}

/* ── Lista ───────────────────────────────────────────────────── */
/* O fundo cinza do hover já vem do tema (.list li:hover). Aqui só se garante
   que o item com link se comporte como link e que o teclado enxergue o foco. */
.pdc-cobertura .list li[data-link] { cursor: pointer; }

/* Trava o ícone: fora do tema ele estica para preencher o <li>. */
.pdc-cobertura .list li svg.icon {
	width: 20px;
	height: 20px;
	min-width: 20px;
	flex-shrink: 0;
}

.pdc-cobertura .list li:focus-visible {
	outline: 2px solid #35b44a;
	outline-offset: 2px;
}

/* Mesmo cinza do :hover do tema, para o destaque cruzado a partir do pin. */
.pdc-cobertura .list li.is-hot { background: #f2f4f7; }

/* ── Pins ────────────────────────────────────────────────────── */
.pdc-cobertura .pdc-pins {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	pointer-events: none;
	z-index: 2;
}

.pdc-cobertura .pdc-pin-item {
	position: absolute;
	transform: translate(-50%, -100%);
	pointer-events: auto;
	line-height: 0;
	z-index: 1;
}

/* Realce cruzado vindo da lista: acima dos demais, abaixo do que está aberto.
   Vem antes de propósito — empata em especificidade com a regra seguinte, e é
   a ordem no arquivo que decide. */
.pdc-cobertura .pdc-pin-item.is-hot {
	z-index: 5;
}

/* O pin ativo sobe junto com seu tooltip. Sem isso os itens empilham só pela
   ordem do DOM, e um pin posterior é desenhado por cima do tooltip de um
   anterior. */
.pdc-cobertura .pdc-pin-item:hover,
.pdc-cobertura .pdc-pin-item:focus-within,
.pdc-cobertura .pdc-pin-item.is-open {
	z-index: 10;
}

/* O pin é o próprio SVG, com a ponta no centro da base — cai no ponto
   clicado. transform-origin embaixo para o hover não deslocar a ponta. */
.pdc-cobertura .pdc-pin {
	display: block;
	width: 26px;
	height: 36px;
	padding: 0;
	border: 0;
	background: none;
	color: #006f3b;
	cursor: pointer;
	transform-origin: center bottom;
	transition: transform .25s ease-in-out, color .25s ease-in-out;
	filter: drop-shadow(0 2px 3px rgba(0, 0, 0, .3));
}
/* O tema dimensiona qualquer <svg> dentro de .svg-map, o que pegaria também
   os pinos. Seletor longo para vencer sem depender da ordem de carregamento. */
.nossa-cobertura.pdc-cobertura .nossa-cobertura-content .svg-map .pdc-pins svg {
	display: block;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: initial;
	flex-shrink: 1;
	pointer-events: none;
}
.pdc-cobertura .pdc-pin:hover,
.pdc-cobertura .pdc-pin:focus-visible {
	color: #35b44a;
	transform: scale(1.15);
	outline: none;
}
.pdc-cobertura .pdc-pin:focus-visible svg { outline: 2px solid #35b44a; outline-offset: 2px; }

/* Destaque cruzado: hover na lista acende os pins do estado, e vice-versa. */
.pdc-cobertura .pdc-pin-item.is-hot .pdc-pin {
	color: #35b44a;
	transform: scale(1.2);
}

/* ── Tooltip ─────────────────────────────────────────────────── */
.pdc-cobertura .pdc-tooltip {
	position: absolute;
	bottom: calc(100% + 12px);
	left: 50%;
	transform: translateX(-50%);
	min-width: 140px;
	max-width: 260px;
	padding: 10px 14px;
	border-radius: 8px;
	background: #143d1e;
	color: #fff;
	font-family: "Red Hat Display", sans-serif;
	font-size: 14px;
	font-weight: 500;
	line-height: 1.45;
	text-align: center;
	opacity: 0;
	visibility: hidden;
	transition: opacity .2s ease-in-out, visibility .2s ease-in-out;
	box-shadow: 0 6px 20px rgba(0, 0, 0, .22);
	z-index: 5;
	pointer-events: none;
}
.pdc-cobertura .pdc-tooltip::after {
	content: "";
	position: absolute;
	top: 100%;
	/* A seta acompanha o deslocamento que o JS aplica ao tooltip. */
	left: calc(50% + var(--pdc-arrow, 0px));
	margin-left: -6px;
	border: 6px solid transparent;
	border-top-color: #143d1e;
}
.pdc-cobertura .pdc-tooltip p      { margin: 0; }
.pdc-cobertura .pdc-tooltip strong { font-weight: 700; }
.pdc-cobertura .pdc-tooltip a      { color: #8fe3a3; text-decoration: underline; }

.pdc-cobertura .pdc-has-tooltip.is-open .pdc-tooltip {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}

@media (hover: hover) {
	.pdc-cobertura .pdc-has-tooltip:hover .pdc-tooltip {
		opacity: 1;
		visibility: visible;
		pointer-events: auto;
	}
}

@media (max-width: 640px) {
	.pdc-cobertura .pdc-pin { width: 22px; height: 30px; }
	.pdc-cobertura .pdc-tooltip {
		font-size: 13px;
		min-width: 120px;
		max-width: 200px;
		padding: 8px 12px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.pdc-cobertura .pdc-pin,
	.pdc-cobertura .pdc-tooltip {
		transition: none;
	}
}

/* ── Nada de cursor de link onde não há link ─────────────────── */
/* O tema e a camada base põem cursor:pointer em qualquer item da lista no
   hover. Sem link, o item continua com o realce mas deixa de parecer clicável.
   Seletor longo para vencer a regra do tema. */
.nossa-cobertura.pdc-cobertura .nossa-cobertura-content .list li:not([data-link]):hover {
	cursor: default;
}

/* Pin decorativo: sem link e sem tooltip, só o realce no hover. */
.pdc-cobertura .pdc-pin-static {
	cursor: default;
}
