/* Cuadro médico ASISA (/cuadro-medico, desde el 04/10/2026): PDF por provincia (.cmp-).
   El buscador tiene sus propios estilos (/Cuadros-Medicos/comun/cuadros.css) y no se tocan aquí. */
.cmp {
	--cmp-azul: #1c4a82;
	--cmp-azulon: #0c1a2f;
	--cmp-naranja: #ff5400;
	--cmp-fondo: #f4f7fb;
	--cmp-linea: #e4eaf2;
	--cmp-gris: #5b6b80;
	margin: 56px 0;
	padding: 48px 40px 36px;
	border-radius: 24px;
	background: var(--cmp-fondo);
}
.cmp-cabecera { max-width: 820px; margin: 0 auto 26px; text-align: center; }
.cmp-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-bottom: 12px;
	padding: 6px 14px;
	border-radius: 999px;
	background: rgba(255, 84, 0, .1);
	font-size: .78rem;
	font-weight: 800;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--cmp-naranja);
}
.cmp h2 { margin: 0 0 12px; font-size: clamp(1.6rem, 2.6vw, 2.2rem); font-weight: 800; line-height: 1.2; color: var(--cmp-azul); }
.cmp-cabecera p { margin: 0; font-size: 1.05rem; line-height: 1.6; color: var(--cmp-gris); }

.cmp-comunidades {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px;
	margin-bottom: 30px;
}
.cmp-comunidades a {
	padding: 6px 13px;
	border: 1px solid var(--cmp-linea);
	border-radius: 999px;
	background: #fff;
	font-size: .86rem;
	font-weight: 700;
	text-decoration: none;
	color: var(--cmp-azul);
	transition: border-color .2s, color .2s;
}
.cmp-comunidades a:hover { border-color: var(--cmp-naranja); color: var(--cmp-naranja); }
/* Comunidad pulsada: el botón y su bloque de provincias se quedan marcados (js/cuadro-medico-pdfs.js y :target) */
.cmp-comunidades a.is-activa { border-color: var(--cmp-naranja); background: var(--cmp-naranja); color: #fff; }

.cmp-rejilla {
	columns: 3 280px;
	column-gap: 20px;
}
.cmp-comunidad {
	break-inside: avoid;
	margin-bottom: 20px;
	padding: 18px 18px 10px;
	border: 1px solid var(--cmp-linea);
	border-radius: 18px;
	background: #fff;
	scroll-margin-top: 90px;
}
.cmp-comunidad h3 { margin: 0 0 8px; font-size: 1rem; font-weight: 800; letter-spacing: .02em; color: var(--cmp-azulon); }
.cmp-comunidad:target,
.cmp-comunidad.is-activa {
	border: 2px solid var(--cmp-naranja);
	background: #fff4ec;
	box-shadow: 0 0 0 4px rgba(255, 84, 0, .15), 0 12px 28px rgba(12, 26, 47, .10);
	animation: cmp-marca 1.2s ease-out 1;
}
.cmp-comunidad:target h3,
.cmp-comunidad.is-activa h3 { color: var(--cmp-naranja); }
@keyframes cmp-marca {
	0%   { box-shadow: 0 0 0 14px rgba(255, 84, 0, .35), 0 12px 28px rgba(12, 26, 47, .10); }
	100% { box-shadow: 0 0 0 4px rgba(255, 84, 0, .15), 0 12px 28px rgba(12, 26, 47, .10); }
}
@media (prefers-reduced-motion: reduce) { .cmp-comunidad:target, .cmp-comunidad.is-activa { animation: none; } }
.cmp-comunidad ul { margin: 0; padding: 0; list-style: none; }
.cmp-comunidad li { margin: 0; border-top: 1px solid var(--cmp-linea); }
.cmp-comunidad li:first-child { border-top: 0; }
.cmp-comunidad li { display: grid; gap: 2px; padding: 9px 2px; }
.cmp-pagina { font-weight: 700; line-height: 1.3; text-decoration: none; color: var(--cmp-azul); }
.cmp-pagina:hover { color: var(--cmp-naranja); text-decoration: underline; text-underline-offset: 3px; }
.cmp-pdf { justify-self: start; font-size: .8rem; font-weight: 600; text-decoration: none; color: var(--cmp-gris); }
.cmp-pdf i { margin-right: 3px; color: #d93025; }
.cmp-pdf:hover { color: #d93025; text-decoration: underline; }

.cmp-nota { max-width: 860px; margin: 10px auto 0; font-size: .85rem; line-height: 1.55; text-align: center; color: var(--cmp-gris); }

@media (max-width: 575.98px) {
	.cmp { margin: 40px -4px; padding: 32px 16px 24px; border-radius: 18px; }
	.cmp-comunidades { justify-content: flex-start; }
}

/* ---------- Páginas de cada provincia (/cuadro-medico/<provincia>, .cmv-) ---------- */
.cmv-hero .fs-migas--claro { margin-bottom: 4px; }
.cmv-cifras {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 10px;
	margin: 6px 0 24px;
	padding: 0;
	list-style: none;
}
.cmv-cifras li {
	display: grid;
	min-width: 118px;
	margin: 0;
	padding: 10px 16px;
	border: 1px solid rgba(255, 255, 255, .18);
	border-radius: 16px;
	background: rgba(255, 255, 255, .07);
	text-align: center;
}
.cmv-cifras strong { font-size: 1.5rem; font-weight: 800; line-height: 1.1; color: #fff; }
.cmv-cifras span { font-size: .82rem; color: rgba(255, 255, 255, .8); }
.cmv-botones { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; }

.hx.cmv-resumen { padding: 56px 0 24px; }
.cmv-resumen-caja { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 36px; align-items: start; }
.cmv-resumen-caja p { font-size: 1.05rem; line-height: 1.7; color: var(--hx-texto); }
.cmv-urgencia { padding: 24px; border-radius: var(--hx-radio); background: #fff4ef; border: 1px solid #ffd6c2; }
.cmv-urgencia-titulo { margin: 0 0 6px; font-weight: 800; color: #b23c00; }
.cmv-urgencia-titulo i { margin-right: 6px; }
.hx .cmv-urgencia-tel { display: block; margin-bottom: 8px; font-size: 1.9rem; font-weight: 800; text-decoration: none; color: var(--hx-naranja); }
.cmv-urgencia p:last-child { margin: 0; font-size: .92rem; line-height: 1.5; color: var(--hx-gris); }

.hx.cmv-seccion { padding: 64px 0; }
.hx.cmv-seccion--fondo { background: var(--hx-fondo); }
.cmv-fichas {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr));
	gap: 14px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.cmv-ficha {
	margin: 0;
	padding: 16px 18px;
	border: 1px solid var(--hx-linea);
	border-radius: 16px;
	background: #fff;
}
.cmv-ficha p { margin: 0 0 4px; font-size: .9rem; line-height: 1.45; color: var(--hx-gris); }
.cmv-ficha .cmv-ficha-nombre { margin-bottom: 6px; font-size: 1rem; font-weight: 800; color: var(--hx-azul); }
.cmv-ficha i { width: 16px; color: var(--hx-azul-claro); }
.hx .cmv-ficha a { font-weight: 700; text-decoration: none; }
.cmv-ficha .cmv-ficha-nota { margin-top: 6px; font-size: .82rem; color: #7a8698; }
/* Urgencias: filas compactas en dos columnas */
.cmv-filas {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 480px), 1fr));
	column-gap: 28px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.cmv-filas li {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	column-gap: 12px;
	margin: 0;
	padding: 10px 2px;
	border-bottom: 1px solid var(--hx-linea);
}
.cmv-fila-nombre { font-weight: 800; line-height: 1.35; color: var(--hx-azul); }
.cmv-fila-dir { grid-column: 1; font-size: .86rem; line-height: 1.4; color: var(--hx-gris); }
.cmv-fila-tel { grid-column: 2; grid-row: 1 / span 2; align-self: center; font-size: .9rem; text-align: right; }
.hx .cmv-fila-tel a { display: block; font-weight: 700; white-space: nowrap; text-decoration: none; }
.cmv-grupo + .cmv-grupo { margin-top: 32px; }
.hx .cmv-grupo h3 { margin: 0 0 14px; font-size: 1.15rem; font-weight: 800; color: var(--hx-azul); }
.cmv-grupo h3 span { font-weight: 600; color: var(--hx-gris); }

.cmv-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.cmv-chips li {
	margin: 0;
	padding: 7px 12px;
	border: 1px solid var(--hx-linea);
	border-radius: 999px;
	background: #fff;
	font-size: .88rem;
	font-weight: 600;
	color: var(--hx-texto);
}
.cmv-chips span { margin-left: 4px; font-size: .78rem; font-weight: 800; color: var(--hx-naranja); }
.hx h2.cmv-subtitulo { margin: 48px 0 18px; font-size: 1.4rem; text-align: center; }

.cmv-faq { max-width: 900px; margin: 0 auto; }

.cmv-otras { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin: 0; padding: 0; list-style: none; }
.cmv-otras li { margin: 0; }
.hx .cmv-otras a {
	display: inline-block;
	padding: 9px 16px;
	border: 1px solid var(--hx-linea);
	border-radius: 999px;
	background: #fff;
	font-size: .92rem;
	font-weight: 700;
	text-decoration: none;
}
.hx .cmv-otras a:hover { border-color: var(--hx-naranja); }
.hx .cmv-otras .cmv-otras-todas { background: var(--hx-azul); border-color: var(--hx-azul); color: #fff; }
.hx .cmv-otras .cmv-otras-todas:hover { color: #fff; }

@media (max-width: 991.98px) {
	.cmv-resumen-caja { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 575.98px) {
	.cmv-cifras li { min-width: calc(50% - 5px); }
	.hx.cmv-seccion { padding: 44px 0; }
	.cmv-filas li { grid-template-columns: minmax(0, 1fr); }
	.cmv-fila-tel { grid-column: 1; grid-row: auto; margin-top: 2px; text-align: left; }
	.hx .cmv-fila-tel a { display: inline-block; margin-right: 14px; }
}

/* ---------- Página principal /cuadro-medico (.cmh-) ---------- */
.fs-hero-caja > p.cmh-fuente { margin: 18px auto 0; max-width: 620px; font-size: .8rem; color: rgba(255, 255, 255, .7); }
.cmh-buscador { padding-top: 56px; scroll-margin-top: 80px; }
.cmp { scroll-margin-top: 80px; }

.cmh-pasos {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 18px;
	margin: 0;
	padding: 0;
	list-style: none;
	counter-reset: paso;
}
.cmh-pasos li {
	position: relative;
	margin: 0;
	padding: 22px 20px;
	border: 1px solid var(--hx-linea);
	border-radius: var(--hx-radio);
	background: #fff;
	box-shadow: var(--hx-sombra);
	counter-increment: paso;
}
.cmh-pasos li::after {
	content: counter(paso);
	position: absolute;
	top: 16px;
	right: 18px;
	font-size: 1.8rem;
	font-weight: 800;
	line-height: 1;
	color: rgba(28, 74, 130, .12);
}
.cmh-pasos-icono {
	display: grid;
	flex-shrink: 0;
	place-items: center;
	width: 46px;
	height: 46px;
	margin-bottom: 14px;
	border-radius: 14px;
	background: rgba(255, 84, 0, .1);
	font-size: 1.15rem;
	color: var(--hx-naranja);
}
.hx .cmh-pasos h3 { margin: 0 0 8px; font-size: 1.05rem; font-weight: 800; color: var(--hx-azul); }
.cmh-pasos p { margin: 0; font-size: .93rem; line-height: 1.55; color: var(--hx-gris); }

.cmh-tabla-caja { overflow-x: auto; border: 1px solid var(--hx-linea); border-radius: var(--hx-radio); background: #fff; box-shadow: var(--hx-sombra); }
.cmh-tabla { width: 100%; border-collapse: collapse; font-size: .95rem; }
.cmh-tabla th, .cmh-tabla td { padding: 12px 18px; border-bottom: 1px solid var(--hx-linea); text-align: left; vertical-align: top; }
.cmh-tabla thead th { background: var(--hx-fondo); font-size: .8rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; color: var(--hx-gris); }
.cmh-tabla tbody tr:last-child th, .cmh-tabla tbody tr:last-child td { border-bottom: 0; }
.cmh-tabla tbody th { font-weight: 800; white-space: nowrap; }
.hx .cmh-tabla tbody th a { text-decoration: none; }
.cmh-tabla-n { font-weight: 800; color: var(--hx-naranja); text-align: center !important; }
.cmh-tabla td:last-child { color: var(--hx-gris); }
.cmh-tabla-nota { margin: 18px 0 0; text-align: center; color: var(--hx-gris); }

.cmh-chips { justify-content: center; }

.cmh-aviso {
	display: flex;
	gap: 20px;
	max-width: 960px;
	margin: 0 auto;
	padding: 28px 30px;
	border: 1px solid var(--hx-linea);
	border-radius: var(--hx-radio);
	background: var(--hx-fondo);
}
.cmh-aviso .cmh-pasos-icono { margin: 0; }
.hx .cmh-aviso h2 { margin: 0 0 8px; font-size: 1.35rem; }
.cmh-aviso p { margin: 0; line-height: 1.65; color: var(--hx-texto); }

@media (max-width: 991.98px) {
	.cmh-pasos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 575.98px) {
	.cmh-pasos { grid-template-columns: minmax(0, 1fr); }
	.cmh-aviso { flex-direction: column; padding: 22px 18px; }
	.cmh-tabla th, .cmh-tabla td { padding: 10px 12px; }
	.cmh-tabla thead th:last-child, .cmh-tabla td:last-child { display: none; }
}

/* ---------- Cuadro dental /seguro-dental/cuadro-medico-dental (.cmd-) ---------- */
.cmd-pagas { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; max-width: 980px; margin: 0 auto; }
.cmd-pagas-caja {
	display: flex;
	flex-direction: column;
	padding: 26px 28px;
	border: 1px solid var(--hx-linea);
	border-radius: var(--hx-radio);
	background: #fff;
	box-shadow: var(--hx-sombra);
}
.cmd-pagas-caja--gratis { border-color: #bfe5cf; background: #f3fbf6; }
.hx .cmd-pagas h3 { margin: 0 0 14px; font-size: 1.15rem; font-weight: 800; color: var(--hx-azul); }
.cmd-pagas h3 i { margin-right: 6px; color: var(--hx-naranja); }
.cmd-pagas-caja--gratis h3 i { color: #1f9254; }
.cmd-pagas ul { flex: 1; margin: 0 0 16px; padding: 0; list-style: none; }
.cmd-pagas li { position: relative; padding: 7px 0 7px 22px; border-bottom: 1px dashed var(--hx-linea); line-height: 1.45; color: var(--hx-texto); }
.cmd-pagas li:last-child { border-bottom: 0; }
.cmd-pagas li::before { content: ""; position: absolute; top: 15px; left: 4px; width: 7px; height: 7px; border-radius: 50%; background: var(--hx-naranja); }
.cmd-pagas-caja--gratis li::before { background: #1f9254; }
.hx .cmd-pagas li a { text-decoration: none; }
.hx .cmd-pagas-caja > a { font-weight: 800; text-decoration: none; }
.cmd-pagas-caja > a i { margin-left: 4px; font-size: .85em; }

.cmd-glosario {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 340px), 1fr));
	gap: 18px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.cmd-glosario-item {
	margin: 0;
	padding: 22px;
	border: 1px solid var(--hx-linea);
	border-radius: var(--hx-radio);
	background: #fff;
}
.hx .cmd-glosario-item h3 { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 6px; margin: 0 0 10px; font-size: 1.1rem; font-weight: 800; color: var(--hx-azul); }
.cmd-glosario-item h3 span { padding: 3px 10px; border-radius: 999px; background: rgba(255, 84, 0, .1); font-size: .75rem; font-weight: 800; color: var(--hx-naranja); }
.cmd-glosario-item p { margin: 0 0 10px; font-size: .93rem; line-height: 1.55; color: var(--hx-texto); }
.cmd-glosario-item ul { margin: 0; padding-left: 18px; }
.cmd-glosario-item li { margin: 0 0 4px; font-size: .88rem; line-height: 1.5; color: var(--hx-gris); }

@media (max-width: 767.98px) {
	.cmd-pagas { grid-template-columns: minmax(0, 1fr); }
	.cmd-pagas-caja { padding: 22px 18px; }
}
.hx .hx-cabecera a[href^="tel:"] { white-space: nowrap; }

/* Páginas dentales de cada provincia (/seguro-dental/cuadro-medico-dental/<provincia>) */
.cmv-urgencia.cmd-gratis { background: #f3fbf6; border-color: #bfe5cf; }
.cmd-gratis .cmv-urgencia-titulo { color: #1f7a47; }
.cmd-gratis p:last-child { color: var(--hx-texto); }
.cmd-poblaciones { display: grid; gap: 12px; }
.cmd-poblacion { border: 1px solid var(--hx-linea); border-radius: 16px; background: #fff; }
.cmd-poblacion summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 14px 20px;
	cursor: pointer;
	list-style: none;
}
.cmd-poblacion summary::-webkit-details-marker { display: none; }
.cmd-poblacion summary::after { content: "+"; font-size: 1.4rem; font-weight: 700; line-height: 1; color: var(--hx-naranja); }
.cmd-poblacion[open] summary::after { content: "−"; }
.hx .cmd-poblacion summary h3 { flex: 1; margin: 0; font-size: 1.05rem; font-weight: 800; color: var(--hx-azul); }
.cmd-poblacion summary span { font-size: .85rem; font-weight: 700; color: var(--hx-gris); }
.cmd-poblacion .cmv-filas { padding: 0 20px 10px; }
.cmd-propia { margin-left: 6px; padding: 2px 8px; border-radius: 999px; background: rgba(255, 84, 0, .1); font-size: .72rem; font-style: normal; font-weight: 800; color: var(--hx-naranja); white-space: nowrap; }
@media (max-width: 575.98px) {
	.cmd-poblacion summary { padding: 12px 14px; }
	.cmd-poblacion .cmv-filas { padding: 0 14px 8px; }
}
