/*
 * HCPI — estilos globales (los encola wp-content/mu-plugins/hcpi-diseno.php, detrás de los
 * estilos de Elementor).
 *
 * Rediseño 2026 (mockups canvas-hcpi, Main.dc.html): todo el sitio se acerca al sistema
 * aunque sus páginas no se rehagan. Es una BASE: las capas de páginas y módulos
 * (hcpi-paginas.css, hcpi-modulos.css) la sobrescriben con más especificidad.
 *
 *   - Quedan FUERA de la normalización los widgets con una clase hcpi-… o dentro de un
 *     contenedor de Elementor con una clase hcpi-… (lo que otra capa ya diseña). El filtro
 *     va en :where() y no suma especificidad.
 *   - Especificidad: las reglas que deben ganar al CSS por elemento de Elementor
 *     (.elementor-N .elementor-element.elementor-element-x …, 0-4-0 a 0-6-0) la igualan
 *     repitiendo la clase y ganan por orden (este archivo va detrás).
 *   - Sin !important salvo en lo que el contenido trae en línea (texto justificado) y en
 *     los visores (popups), que Elementor posiciona con estilos en línea.
 *   - El texto justificado y las mayúsculas de los títulos que vienen de los ajustes de
 *     Elementor se quitan al generar su CSS (filtro del tema hijo, functions.php).
 *   - Etiquetas pequeñas en mayúsculas (eyebrows): clase `hcpi-etiqueta`.
 */

:root {
	--hcpi-azul: #1a86bf;
	--hcpi-azul-accion: #166f9e;
	--hcpi-azul-titulos: #266093;
	--hcpi-naranja: #ec6728;
	--hcpi-naranja-accion: #c2410c;
	--hcpi-fondo: #e3ecf9;
	--hcpi-borde: #dce5f2;
	--hcpi-texto: #313131;
	--hcpi-texto-2: #54595f;
	--hcpi-alarma: #dc0101;
	--hcpi-alerta: #e1d501;
	--hcpi-sin-novedad: #138a2b;
	--hcpi-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
}

/* --- Foco visible con teclado ------------------------------------------------------- */
:where(a, button, input, select, textarea, summary, iframe, [tabindex], [role="button"]):focus-visible {
	outline: 3px solid #266093;
	outline-offset: 2px;
}
/* El foco con ratón o dedo no dibuja contorno (solo :focus-visible). */
:where(a, button, [tabindex], [role="button"]):focus:not(:focus-visible) {
	outline: none;
}

/* --- Movimiento reducido ------------------------------------------------------------- */
/* Elementor deja invisibles (.elementor-invisible) los elementos con animación de entrada
   hasta que la animación arranca: con movimiento reducido se muestran ya, sin animar. */
@media (prefers-reduced-motion: reduce) {
	.elementor-invisible {
		visibility: visible !important;
	}
	.animated,
	.elementor-element.animated {
		animation: none !important;
	}
	*,
	*::before,
	*::after {
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
	}
}

/* =========================================================================================
 * Normalización del contenido
 * ========================================================================================= */

/* Cifras de forma moderna (Raleway trae cifras «antiguas»: 3, 5, 9 bajan de la línea);
   en dosis y edades se leen mejor. */
body {
	font-variant-numeric: lining-nums;
}

/* Texto nunca justificado (el que viene en línea en el HTML del editor). */
[style*="text-align: justify"],
[style*="text-align:justify"] {
	text-align: left !important;
}

/* Títulos en tipo frase: solo las etiquetas cortas van en mayúsculas. */
:is(h1, h2, h3, h4, h5)[style*="uppercase"],
:is(h1, h2, h3, h4, h5) [style*="uppercase"] {
	text-transform: none !important;
}
.hcpi-etiqueta,
.hcpi-etiqueta .elementor-heading-title {
	font-size: 13px;
	line-height: 18px;
	font-weight: 700;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	color: var(--hcpi-naranja-accion);
}

/* Enlaces del texto: azul acción y subrayados. */
:where(.elementor-widget-text-editor:not([class*="hcpi-"], .elementor [class*="hcpi-"] .elementor-widget)) a:not(.elementor-button, .bdt-ep-button):is(*, :visited),
.entry-content a {
	color: var(--hcpi-azul-accion);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
}
:where(.elementor-widget-text-editor:not([class*="hcpi-"], .elementor [class*="hcpi-"] .elementor-widget)) a:not(.elementor-button, .bdt-ep-button):hover,
.entry-content a:hover {
	color: var(--hcpi-azul-titulos);
}

/* Listas con viñeta naranja (decorativa). */
.elementor-widget-text-editor ul,
.entry-content ul {
	padding-left: 1.25em;
}
.elementor-widget-text-editor li::marker,
.entry-content li::marker,
.bdt-ep-accordion-content li::marker {
	color: var(--hcpi-naranja);
}
.elementor-widget-text-editor li + li,
.bdt-ep-accordion-content li + li {
	margin-top: 4px;
}

/* Tablas legibles; en el móvil se desplazan en horizontal en lugar de desbordar. */
.elementor-widget-text-editor table,
.bdt-static-table,
.entry-content table {
	width: 100%;
	border-collapse: collapse;
	font-size: 15px;
	line-height: 22px;
	margin: 0 0 16px;
}
.elementor-widget-text-editor :is(th, td),
.bdt-static-table :is(th, td),
.entry-content :is(th, td) {
	padding: 10px 12px;
	border: 1px solid var(--hcpi-borde);
	text-align: left;
	vertical-align: top;
}
.elementor-widget-text-editor th,
.elementor-widget-text-editor thead td,
.bdt-static-table th,
.entry-content th {
	background: var(--hcpi-fondo);
	color: var(--hcpi-azul-titulos);
	font-weight: 700;
}
@media (max-width: 767px) {
	.elementor-widget-text-editor table,
	.bdt-static-table,
	.entry-content table {
		display: block;
		max-width: 100%;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}
	.bdt-table {
		max-width: 100%;
		overflow-x: auto;
	}
}

/* Imágenes de contenido con las esquinas del sistema (12 px). */
:where(.elementor-widget:not([class*="hcpi-"], .elementor [class*="hcpi-"] .elementor-widget)).elementor-widget-image img {
	border-radius: 12px;
}

/* --- Botones: píldora, alto mínimo 48, naranja acción → azul títulos ------------------
 * Especificidad 0-4-0 (la del CSS por elemento de Elementor, que pierde por orden). */
:where(.elementor-widget:not([class*="hcpi-"], .elementor [class*="hcpi-"] .elementor-widget)) .elementor-button.elementor-button.elementor-button.elementor-button,
:where(.elementor-widget:not([class*="hcpi-"], .elementor [class*="hcpi-"] .elementor-widget)) .bdt-ep-button.bdt-ep-button.bdt-ep-button.bdt-ep-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 48px;
	padding: 12px 24px;
	box-sizing: border-box;
	border: 2px solid transparent;
	border-radius: 999px;
	background-color: var(--hcpi-naranja-accion);
	background-image: none;
	color: #fff;
	fill: #fff;
	font-family: "Raleway", sans-serif;
	font-size: 16px;
	font-weight: 700;
	line-height: 20px;
	letter-spacing: 0;
	text-transform: none;
	text-decoration: none;
	box-shadow: none;
}
:where(.elementor-widget:not([class*="hcpi-"], .elementor [class*="hcpi-"] .elementor-widget)) .elementor-button.elementor-button.elementor-button.elementor-button:is(:hover, :focus-visible),
:where(.elementor-widget:not([class*="hcpi-"], .elementor [class*="hcpi-"] .elementor-widget)) .bdt-ep-button.bdt-ep-button.bdt-ep-button.bdt-ep-button:is(:hover, :focus-visible) {
	background-color: var(--hcpi-azul-titulos);
	color: #fff;
	fill: #fff;
}
:where(.elementor-widget:not([class*="hcpi-"], .elementor [class*="hcpi-"] .elementor-widget)) .elementor-button :is(.elementor-button-text, .elementor-button-icon),
:where(.elementor-widget:not([class*="hcpi-"], .elementor [class*="hcpi-"] .elementor-widget)) .bdt-ep-button :is(.bdt-ep-button-text, .bdt-ep-button-icon) {
	color: inherit;
}
:where(.elementor-widget:not([class*="hcpi-"], .elementor [class*="hcpi-"] .elementor-widget)) .elementor-button .elementor-button-icon svg {
	fill: currentColor;
}

/* --- Acordeones: blancos, borde #DCE5F2, radio 12, chevron, abiertos en azul títulos ---
 * Element Pack: su CSS por elemento llega a 0-6-0 (… .bdt-ep-accordion-item.bdt-open
 * .bdt-ep-accordion-title); estas reglas lo igualan y ganan por orden. */
:where(.elementor-widget:not([class*="hcpi-"], .elementor [class*="hcpi-"] .elementor-widget)) .bdt-ep-accordion-item.bdt-ep-accordion-item.bdt-ep-accordion-item.bdt-ep-accordion-item.bdt-ep-accordion-item {
	margin: 0 0 8px;
	border: 1px solid var(--hcpi-borde);
	border-radius: 12px;
	background: #fff;
	box-shadow: none;
	overflow: hidden;
}
:where(.elementor-widget:not([class*="hcpi-"], .elementor [class*="hcpi-"] .elementor-widget)) .bdt-ep-accordion-item .bdt-ep-accordion-title.bdt-ep-accordion-title.bdt-ep-accordion-title.bdt-ep-accordion-title.bdt-ep-accordion-title {
	gap: 12px;
	margin: 0;
	padding: 14px 16px;
	border: 0;
	border-radius: 0;
	background: transparent;
	color: var(--hcpi-texto);
	font-family: "Raleway", sans-serif;
	font-size: 16px;
	font-weight: 700;
	line-height: 24px;
	letter-spacing: 0;
	text-transform: none;
	text-align: left;
	box-shadow: none;
}
:where(.elementor-widget:not([class*="hcpi-"], .elementor [class*="hcpi-"] .elementor-widget)) .bdt-ep-accordion-item:hover .bdt-ep-accordion-title.bdt-ep-accordion-title.bdt-ep-accordion-title.bdt-ep-accordion-title.bdt-ep-accordion-title {
	background: #f5f8fd;
	color: var(--hcpi-texto);
}
:where(.elementor-widget:not([class*="hcpi-"], .elementor [class*="hcpi-"] .elementor-widget)) .bdt-ep-accordion-item.bdt-open .bdt-ep-accordion-title.bdt-ep-accordion-title.bdt-ep-accordion-title.bdt-ep-accordion-title.bdt-ep-accordion-title {
	color: var(--hcpi-azul-titulos);
}
:where(.elementor-widget:not([class*="hcpi-"], .elementor [class*="hcpi-"] .elementor-widget)) .bdt-ep-accordion-title .bdt-ep-title-text {
	color: inherit;
	font: inherit;
	text-transform: none;
}
:where(.elementor-widget:not([class*="hcpi-"], .elementor [class*="hcpi-"] .elementor-widget)) .bdt-ep-accordion-item .bdt-ep-accordion-content.bdt-ep-accordion-content.bdt-ep-accordion-content.bdt-ep-accordion-content.bdt-ep-accordion-content.bdt-ep-accordion-content {
	margin: 0;
	padding: 0 16px 16px;
	border: 0;
	background: transparent;
	color: var(--hcpi-texto);
	font-size: 15px;
	line-height: 24px;
}
/* El icono (+/−) pasa a chevron. */
:where(.elementor-widget:not([class*="hcpi-"], .elementor [class*="hcpi-"] .elementor-widget)) .bdt-ep-accordion-icon.bdt-ep-accordion-icon.bdt-ep-accordion-icon.bdt-ep-accordion-icon.bdt-ep-accordion-icon.bdt-ep-accordion-icon {
	order: 2;
	flex-shrink: 0;
	width: 18px;
	height: 18px;
	margin: 0 0 0 auto;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
}
:where(.elementor-widget:not([class*="hcpi-"], .elementor [class*="hcpi-"] .elementor-widget)) .bdt-ep-accordion-icon > span {
	display: none !important;
}
:where(.elementor-widget:not([class*="hcpi-"], .elementor [class*="hcpi-"] .elementor-widget)) .bdt-ep-accordion-icon::before {
	content: "";
	display: block;
	width: 18px;
	height: 18px;
	background: var(--hcpi-azul-accion);
	-webkit-mask: var(--hcpi-chevron) center / contain no-repeat;
	mask: var(--hcpi-chevron) center / contain no-repeat;
	transition: transform 0.2s;
}
:where(.elementor-widget:not([class*="hcpi-"], .elementor [class*="hcpi-"] .elementor-widget)) .bdt-open .bdt-ep-accordion-icon::before {
	background: var(--hcpi-azul-titulos);
	transform: rotate(180deg);
}

/* Elementor (acordeón y conmutador clásicos) */
:where(.elementor-widget:not([class*="hcpi-"], .elementor [class*="hcpi-"] .elementor-widget)) :is(.elementor-accordion-item, .elementor-toggle-item) {
	margin: 0 0 8px;
	border: 1px solid var(--hcpi-borde);
	border-radius: 12px;
	background: #fff;
	overflow: hidden;
}
:where(.elementor-widget:not([class*="hcpi-"], .elementor [class*="hcpi-"] .elementor-widget)) .elementor-tab-title.elementor-tab-title.elementor-tab-title.elementor-tab-title {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 14px 16px;
	border: 0;
	background: transparent;
	color: var(--hcpi-texto);
	font-family: "Raleway", sans-serif;
	font-size: 16px;
	font-weight: 700;
	line-height: 24px;
	text-transform: none;
}
:where(.elementor-widget:not([class*="hcpi-"], .elementor [class*="hcpi-"] .elementor-widget)) .elementor-tab-title.elementor-tab-title.elementor-tab-title.elementor-tab-title :is(.elementor-accordion-title, .elementor-toggle-title) {
	color: inherit;
}
:where(.elementor-widget:not([class*="hcpi-"], .elementor [class*="hcpi-"] .elementor-widget)) .elementor-tab-title.elementor-tab-title.elementor-tab-title.elementor-tab-title.elementor-active {
	color: var(--hcpi-azul-titulos);
}
:where(.elementor-widget:not([class*="hcpi-"], .elementor [class*="hcpi-"] .elementor-widget)) .elementor-tab-content.elementor-tab-content.elementor-tab-content.elementor-tab-content {
	padding: 0 16px 16px;
	border: 0;
	font-size: 15px;
	line-height: 24px;
}
:where(.elementor-widget:not([class*="hcpi-"], .elementor [class*="hcpi-"] .elementor-widget)) :is(.elementor-accordion-icon, .elementor-toggle-icon) {
	order: 2;
	margin-left: auto;
}
:where(.elementor-widget:not([class*="hcpi-"], .elementor [class*="hcpi-"] .elementor-widget)) :is(.elementor-accordion-icon, .elementor-toggle-icon) > span {
	display: none !important;
}
:where(.elementor-widget:not([class*="hcpi-"], .elementor [class*="hcpi-"] .elementor-widget)) :is(.elementor-accordion-icon, .elementor-toggle-icon)::before {
	content: "";
	display: block;
	width: 18px;
	height: 18px;
	background: var(--hcpi-azul-accion);
	-webkit-mask: var(--hcpi-chevron) center / contain no-repeat;
	mask: var(--hcpi-chevron) center / contain no-repeat;
}
:where(.elementor-widget:not([class*="hcpi-"], .elementor [class*="hcpi-"] .elementor-widget)) .elementor-active :is(.elementor-accordion-icon, .elementor-toggle-icon)::before {
	background: var(--hcpi-azul-titulos);
	transform: rotate(180deg);
}
/* Acordeón anidado (e-n-accordion): por sus variables. */
:where(.elementor-widget:not([class*="hcpi-"], .elementor [class*="hcpi-"] .elementor-widget)).elementor-widget-n-accordion {
	--n-accordion-border-radius: 12px;
	--n-accordion-title-normal-color: var(--hcpi-texto);
	--n-accordion-title-hover-color: var(--hcpi-azul-titulos);
	--n-accordion-title-active-color: var(--hcpi-azul-titulos);
	--n-accordion-title-font-size: 16px;
	--n-accordion-padding: 14px 16px;
}

/* =========================================================================================
 * Popups de Elementor
 * ========================================================================================= */

/* Todos: botón de cierre de 44 px, azul títulos, arriba a la derecha y siempre dentro de la
   pantalla (cada popup lo colocaba al 96 % de su ancho y en el móvil quedaba fuera). */
.elementor-popup-modal .dialog-close-button {
	top: 12px !important;
	right: 12px !important;
	left: auto !important;
	bottom: auto !important;
	width: 44px;
	height: 44px;
	margin: 0;
	padding: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: var(--hcpi-azul-titulos) !important;
	color: #fff !important;
	box-shadow: 0 1px 4px rgba(0, 0, 0, 0.25);
	font-size: 18px;
	z-index: 10;
}
.elementor-popup-modal .dialog-close-button i,
.elementor-popup-modal .dialog-close-button svg {
	font-size: 18px !important;
	width: 18px !important;
	height: 18px !important;
	color: #fff !important;
	fill: #fff !important;
}
.elementor-popup-modal .dialog-close-button:hover,
.elementor-popup-modal .dialog-close-button:focus-visible {
	background: var(--hcpi-azul-accion) !important;
}
@media (max-width: 767px) {
	.elementor-popup-modal .dialog-widget-content {
		max-height: 100svh;
		overflow-y: auto;
	}
}

/* --- Visores (popups con un Genially de /alarmas: alarmas, RPMS, glosario) -----------
 * Mockups VisorAlarmaEscritorio / VisorAlarmaMovil / VisorRpmsEscritorio /
 * VisorGlosarioMovil. assets/hcpi.js añade la clase hcpi-visor y la barra superior (título,
 * semáforo, PDF, pantalla completa, cerrar) y el pie (anterior/siguiente). Escritorio: modal
 * al 88 % del ancho, radio 24; móvil: pantalla completa. */
.elementor-popup-modal.hcpi-visor {
	background-color: rgba(20, 40, 64, 0.62) !important;
}
.elementor-popup-modal.hcpi-visor .dialog-widget-content {
	position: fixed !important;
	top: 40px !important;
	bottom: 40px !important;
	left: 6% !important;
	right: 6% !important;
	width: auto !important;
	max-width: none !important;
	height: auto !important;
	max-height: none !important;
	margin: 0 !important;
	display: flex !important;
	flex-direction: column;
	border-radius: 24px !important;
	background: #fff !important;
	box-shadow: 0 30px 60px rgba(0, 0, 0, 0.35) !important;
	overflow: hidden !important;
	font-family: "Raleway", sans-serif;
	color: var(--hcpi-texto);
}
.elementor-popup-modal.hcpi-visor .dialog-close-button {
	display: none !important;
}
.elementor-popup-modal.hcpi-visor .dialog-message {
	position: relative;
	flex: 1;
	min-height: 0;
	width: 100% !important;
	height: auto !important;
	max-height: none !important;
	padding: 0 !important;
	overflow: hidden !important;
	background: #fff;
}
.elementor-popup-modal.hcpi-visor .dialog-message iframe {
	position: absolute !important;
	top: 8px !important;
	left: 8px !important;
	width: calc(100% - 16px) !important;
	height: calc(100% - 16px) !important;
	max-width: none !important;
	max-height: none !important;
	margin: 0 !important;
	border: 0 !important;
	background: #fff;
}
.hcpi-visor-barra {
	flex-shrink: 0;
	display: flex;
	align-items: center;
	gap: 16px;
	padding: 14px 16px 14px 24px;
	border-bottom: 1px solid var(--hcpi-borde);
	background: #fff;
}
.hcpi-visor-icono {
	width: 44px;
	height: 44px;
	object-fit: contain;
	flex-shrink: 0;
}
.hcpi-visor-nivel {
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 6px 12px;
	border-radius: 999px;
	font-size: 13px;
	line-height: 16px;
	font-weight: 700;
	white-space: nowrap;
}
.hcpi-visor-nivel svg {
	width: 14px;
	height: 14px;
	flex-shrink: 0;
}
.hcpi-visor-nivel-alarma {
	background: var(--hcpi-alarma);
	color: #fff;
}
.hcpi-visor-nivel-alerta {
	background: var(--hcpi-alerta);
	color: var(--hcpi-texto);
}
.hcpi-visor-nivel-sin-novedad {
	background: #117a26; /* #138A2B con texto blanco de 13 px da 4,47:1; un punto más oscuro, 5,3:1 */
	color: #fff;
}
.hcpi-visor-textos {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 2px;
}
.hcpi-visor-etiqueta {
	font-size: 13px;
	line-height: 18px;
	color: var(--hcpi-texto-2);
}
.elementor-popup-modal .hcpi-visor-titulo {
	margin: 0;
	padding: 0;
	font-family: "Poppins", sans-serif;
	font-size: 20px;
	line-height: 28px;
	font-weight: 600;
	letter-spacing: 0;
	text-transform: none;
	color: var(--hcpi-azul-titulos);
}
.hcpi-visor-acciones {
	flex-shrink: 0;
	display: flex;
	align-items: center;
	gap: 12px;
}
html body .elementor-popup-modal .hcpi-visor-pdf {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 44px;
	padding: 0 16px;
	box-sizing: border-box;
	border: 2px solid var(--hcpi-azul-accion);
	border-radius: 999px;
	color: var(--hcpi-azul-accion);
	font-size: 14px;
	font-weight: 700;
	text-decoration: none;
}
html body .elementor-popup-modal .hcpi-visor-pdf:hover {
	background: var(--hcpi-azul-accion);
	color: #fff;
}
html body .elementor-popup-modal .hcpi-visor-boton {
	width: 44px;
	height: 44px;
	flex-shrink: 0;
	margin: 0;
	padding: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	border: 0;
	border-radius: 999px;
	background: var(--hcpi-fondo);
	color: var(--hcpi-azul-titulos);
	cursor: pointer;
}
html body .elementor-popup-modal .hcpi-visor-boton:hover {
	background: #cfdcee;
}
html body .elementor-popup-modal .hcpi-visor-cerrar {
	background: var(--hcpi-azul-titulos);
	color: #fff;
}
html body .elementor-popup-modal .hcpi-visor-cerrar:hover {
	background: var(--hcpi-azul-accion);
}
.hcpi-visor-pie {
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 10px 24px;
	border-top: 1px solid var(--hcpi-borde);
	background: #fff;
	font-size: 14px;
	line-height: 20px;
	color: var(--hcpi-texto-2);
}
.hcpi-visor-nav {
	display: flex;
	gap: 8px;
}
html body .elementor-popup-modal .hcpi-visor-nav button,
html body .elementor-popup-modal .hcpi-visor-pdf-movil {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	min-height: 40px;
	margin: 0;
	padding: 0 14px;
	border: 0;
	border-radius: 999px;
	background: var(--hcpi-fondo);
	color: var(--hcpi-azul-titulos);
	font: 700 14px/1.2 "Raleway", sans-serif;
	text-decoration: none;
	cursor: pointer;
}
html body .elementor-popup-modal .hcpi-visor-nav button:hover {
	background: #cfdcee;
}
html body .elementor-popup-modal .hcpi-visor-nav button[disabled] {
	opacity: 0.45;
	cursor: default;
}
.hcpi-visor-pdf-movil,
.hcpi-visor-girar,
.hcpi-visor-lectura,
.hcpi-visor-solo-movil {
	display: none !important;
}
/* Dentro del visor, los contenedores de Elementor no posicionan: el iframe se mide contra
   el área del visor. */
.elementor-popup-modal.hcpi-visor .dialog-message :is(div, section) {
	position: static !important;
}
.elementor-popup-modal.hcpi-visor .dialog-message :is(.elementor-section, .elementor-container, .elementor-column, .elementor-widget-wrap, .e-con, .e-con-inner, .elementor-widget-container) {
	margin: 0 !important;
	padding: 0 !important;
}
.hcpi-visor :focus-visible {
	outline: 3px solid var(--hcpi-azul-titulos);
	outline-offset: 2px;
}
.hcpi-visor-pie .hcpi-visor-nav:empty {
	display: none;
}

/* Las alarmas y el RPMS son Genially de 16:9: el visor toma esa proporción y no la de la
   pantalla, para no dejar franjas blancas. El glosario (HTML con desplazamiento) y los PDF
   siguen ocupando el área completa. */
@media (min-width: 768px) {
	.elementor-popup-modal.hcpi-visor:not(.hcpi-visor-glosario):not(.hcpi-visor-html):not(:has(iframe[src*=".pdf"])) .dialog-widget-content {
		--hcpi-visor-w: min(1180px, calc(100vw - 64px), calc((100vh - 48px - var(--hcpi-visor-cromo, 130px)) * 16 / 9));
		inset: 0 !important;
		margin: auto !important;
		width: var(--hcpi-visor-w) !important;
		height: fit-content !important;
		max-height: calc(100vh - 32px) !important;
	}
	.elementor-popup-modal.hcpi-visor:not(.hcpi-visor-glosario):not(.hcpi-visor-html):not(:has(iframe[src*=".pdf"])) .dialog-message {
		flex: none !important;
		height: calc(var(--hcpi-visor-w) * 9 / 16) !important;
	}
	.elementor-popup-modal.hcpi-visor:not(.hcpi-visor-glosario):not(.hcpi-visor-html):not(:has(iframe[src*=".pdf"])) .dialog-message iframe {
		inset: 0 !important;
		width: 100% !important;
		height: 100% !important;
	}
}

/* Tableta: margen menor. */
@media (max-width: 1024px) {
	.elementor-popup-modal.hcpi-visor .dialog-widget-content {
		top: 24px !important;
		bottom: 24px !important;
		left: 3% !important;
		right: 3% !important;
	}
}

/* Móvil: pantalla completa (mockup VisorAlarmaMovil). */
@media (max-width: 767px) {
	.elementor-popup-modal.hcpi-visor .dialog-widget-content {
		inset: 0 !important;
		border-radius: 0 !important;
		background: #142840 !important;
		box-shadow: none !important;
	}
	.hcpi-visor-barra {
		gap: 12px;
		padding: calc(16px + env(safe-area-inset-top)) 12px 12px 20px;
		border-bottom: 0;
	}
	.hcpi-visor-icono,
	.hcpi-visor-pdf,
	.hcpi-visor-completa,
	.hcpi-visor-nota,
	.hcpi-visor-etiqueta,
	.hcpi-visor-solo-escritorio {
		display: none !important;
	}
	span.hcpi-visor-solo-movil {
		display: inline !important;
	}
	.hcpi-visor-textos .hcpi-visor-nivel.hcpi-visor-solo-movil {
		display: inline-flex !important;
	}
	.hcpi-visor-textos {
		gap: 4px;
	}
	.hcpi-visor-textos .hcpi-visor-nivel {
		align-self: flex-start;
		padding: 4px 10px;
		font-size: 12px;
	}
	.elementor-popup-modal .hcpi-visor-titulo {
		font-size: 18px;
		line-height: 24px;
	}
	html body .elementor-popup-modal .hcpi-visor-boton {
		width: 48px;
		height: 48px;
	}
	.elementor-popup-modal.hcpi-visor .dialog-message {
		display: flex !important;
		flex-direction: column;
		justify-content: flex-start;
		gap: 16px;
		padding: 16px 0 !important;
		overflow-y: auto !important;
		background: transparent;
	}
	.elementor-popup-modal.hcpi-visor .dialog-message iframe {
		position: static !important;
		width: 100% !important;
		height: auto !important;
		aspect-ratio: 1280 / 750;
	}
	.hcpi-visor-girar {
		display: flex !important;
		align-items: center;
		justify-content: center;
		gap: 10px;
		padding: 0 24px;
		font-size: 15px;
		line-height: 22px;
		text-align: center;
		color: #cfe3f5;
	}
	.hcpi-visor-pie {
		flex-direction: column;
		align-items: stretch;
		gap: 10px;
		padding: 16px 20px calc(28px + env(safe-area-inset-bottom));
		border-top: 0;
	}
	html body .elementor-popup-modal .hcpi-visor-pdf-movil {
		display: flex !important;
		gap: 8px;
		min-height: 52px;
		background: var(--hcpi-naranja-accion);
		color: #fff;
		font-size: 16px;
	}
	.hcpi-visor-nav {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 10px;
	}
	html body .elementor-popup-modal .hcpi-visor-nav button {
		min-height: 48px;
		font-size: 16px;
	}
	.hcpi-visor-pie:not(:has(.hcpi-visor-pdf-movil, .hcpi-visor-nav button)) {
		display: none;
	}
	/* Glosario: fondo blanco, imagen arriba y «Lectura rápida» (mockup VisorGlosarioMovil). */
	.elementor-popup-modal.hcpi-visor-glosario .dialog-widget-content {
		background: #fff !important;
	}
	.hcpi-visor-glosario .hcpi-visor-barra {
		border-bottom: 1px solid var(--hcpi-borde);
	}
	.elementor-popup-modal.hcpi-visor-glosario .dialog-message {
		justify-content: flex-start;
		gap: 14px;
		padding: 16px 20px !important;
	}
	.elementor-popup-modal.hcpi-visor-glosario .dialog-message iframe {
		border: 1px solid var(--hcpi-borde) !important;
		border-radius: 12px;
	}
	.hcpi-visor-glosario .hcpi-visor-girar {
		display: none !important;
	}
	.hcpi-visor-glosario .hcpi-visor-lectura {
		display: flex !important;
	}
}
/* Teléfono en horizontal: el contenido ocupa todo; sin aviso de girar ni pie. */
@media (max-width: 1024px) and (orientation: landscape) and (max-height: 520px) {
	.elementor-popup-modal.hcpi-visor .dialog-widget-content {
		inset: 0 !important;
		border-radius: 0 !important;
	}
	.hcpi-visor-barra {
		padding: 6px 12px 6px 20px;
	}
	.elementor-popup-modal .hcpi-visor-titulo {
		font-size: 16px;
		line-height: 22px;
	}
	.hcpi-visor-pie,
	.hcpi-visor-girar,
	.hcpi-visor-etiqueta {
		display: none !important;
	}
	.elementor-popup-modal.hcpi-visor .dialog-message {
		padding: 0 !important;
	}
	.elementor-popup-modal.hcpi-visor .dialog-message iframe {
		position: absolute !important;
		inset: 0 !important;
		width: 100% !important;
		height: 100% !important;
		aspect-ratio: auto;
	}
}
.hcpi-visor-lectura {
	flex-direction: column;
	gap: 8px;
}
.hcpi-visor-lectura h3 {
	margin: 0;
	font: 700 15px/22px "Raleway", sans-serif;
	color: var(--hcpi-texto-2);
	text-transform: none;
}
.hcpi-visor-lectura ul {
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: 16px;
	line-height: 22px;
	color: var(--hcpi-texto);
}
.hcpi-visor-lectura li {
	display: flex;
	align-items: center;
	gap: 12px;
	min-height: 44px;
	padding: 6px 12px;
	border-radius: 12px;
	background: var(--hcpi-fondo);
}
.hcpi-visor-lectura li::before {
	content: none;
}
.hcpi-visor-lectura .hcpi-punto {
	width: 28px;
	height: 28px;
	flex-shrink: 0;
	border-radius: 999px;
}
.hcpi-visor-lectura .hcpi-l-alarma { background: #fdecec; }
.hcpi-visor-lectura .hcpi-l-alarma .hcpi-punto { background: var(--hcpi-alarma); }
.hcpi-visor-lectura .hcpi-l-alerta { background: #fbf8d6; }
.hcpi-visor-lectura .hcpi-l-alerta .hcpi-punto { background: var(--hcpi-alerta); }
.hcpi-visor-lectura .hcpi-l-sin-novedad { background: #e7f6ea; }
.hcpi-visor-lectura .hcpi-l-sin-novedad .hcpi-punto { background: var(--hcpi-sin-novedad); }

/* --- Cámara «Descargar módulo en PDF» (shortcode imprimir_pdf) ------------------------ */
/* Solo en las páginas con secciones imprimibles (el mu-plugin pone .hcpi-con-pdf). */
body:not(.hcpi-con-pdf) .hcpi-camara-pie {
	display: none !important;
}
.hcpi-camara {
	cursor: pointer;
}
.hcpi-camara .hcpi-camara-descargando {
	display: none;
	font-size: 12px;
	font-weight: 600;
	line-height: 1.2;
	text-align: center;
}
.hcpi-camara.hcpi-descargando .hcpi-camara-icono {
	display: none;
}
.hcpi-camara.hcpi-descargando .hcpi-camara-descargando {
	display: flex;
	align-items: center;
	justify-content: center;
}
.hcpi-camara.hcpi-descargando {
	cursor: progress;
}

