/* Explorador de modulos OVE (ove-explorador). Portada v2, 10/11/2026.
   Tres estados:
   - sin JS (.ove-exp sin .is-listo): todas las familias en lista, con su captura;
   - .is-pestanas (>= 1025 px): lista de pestanas a la izquierda y visor a la derecha;
   - .is-acordeon (< 1025 px): acordeon con la captura dentro de la familia abierta. */
.ove-exp{
	--ove-tinta:  var(--e-global-color-accent, #1E2433);
	--ove-texto:  var(--e-global-color-text, #5B6478);
	--ove-borde:  var(--e-global-color-371b8c4d, #E2E0DA);
	--ove-blanco: var(--e-global-color-3ba10e7c, #FFFFFF);
	--ove-dato:   var(--e-global-color-f243a905, #3B63D0);
	--ove-acento: var(--e-global-color-primary, #C42F01);
	--ove-marco:  var(--e-global-color-accent, #1E2433);
	--ove-pie-fondo: var(--e-global-color-accent, #1E2433);
	--ove-pie-texto: var(--e-global-color-3ba10e7c, #FFFFFF);
	--ove-movil: 260px;
	--ove-visor: 600px;
	color: var(--ove-texto);
	font-family: inherit;
	min-width: 0;
}
.ove-exp *, .ove-exp *::before, .ove-exp *::after{ box-sizing: border-box; }
.ove-exp [hidden]{ display: none !important; }
.ove-exp__titulo{
	margin: 0; color: var(--ove-tinta);
	font-size: var(--e-global-typography-39c67ca6-font-size, 1.25rem); font-weight: 600; line-height: 1.35;
}
.ove-exp__texto{ margin: 8px 0 0; font-size: 15px; line-height: 1.55; color: var(--ove-texto); }
.ove-exp__figura{ margin: 16px 0 0; }
.ove-exp__marco{ display: block; }
.ove-exp__marco img{ display: block; width: 100%; height: auto; max-width: none; }
.ove-exp__figura--movil .ove-exp__marco{ background: var(--ove-marco); padding: 8px; border-radius: 20px; }
.ove-exp__figura--movil .ove-exp__marco img{ border-radius: 10px; }
.ove-exp__figura--sin .ove-exp__marco img{ border-radius: 10px; }
.ove-exp__pie{ margin: 10px 0 0; font-size: 14px; line-height: 1.45; color: var(--ove-texto); }

/* ---------- Sin JS: lista ---------- */
.ove-exp:not(.is-listo) .ove-exp__lista{ display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 40px 32px; }
.ove-exp:not(.is-listo) .ove-exp__figura--movil .ove-exp__marco{ max-width: 220px; }

/* ---------- Pestanas (escritorio) ---------- */
.ove-exp.is-pestanas{ display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 56px; align-items: center; }
.ove-exp__tabs{ display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.ove-exp__tab{
	display: block; width: 100%; margin: 0; padding: 18px 22px; min-height: 48px;
	font: inherit; text-align: left; color: var(--ove-tinta); cursor: pointer;
	background: transparent; border: 1px solid transparent; border-radius: 20px;
	transition: background-color .15s ease, border-color .15s ease;
}
.ove-exp__tab:hover{ background: var(--ove-blanco); border-color: var(--ove-borde); }
.ove-exp__tab[aria-selected="true"]{
	background: var(--ove-blanco); border-color: var(--ove-borde);
	box-shadow: 0 8px 24px rgba(52, 63, 90, .10);
}
.ove-exp__tab:focus-visible, .ove-exp__acordeon:focus-visible, .ove-exp__item:focus-visible{ outline: 3px solid var(--ove-dato); outline-offset: 2px; }
.ove-exp__tab-nombre{ display: block; font-size: 19px; font-weight: 600; line-height: 1.3; }
.ove-exp__tab-texto{ display: none; margin-top: 6px; font-size: 15px; font-weight: 400; line-height: 1.5; color: var(--ove-texto); }
.ove-exp__tab[aria-selected="true"] .ove-exp__tab-texto{ display: block; }

.ove-exp.is-pestanas .ove-exp__lista{
	position: relative; height: var(--ove-visor); min-width: 0; overflow: hidden;
	background: var(--ove-blanco); border: 1px solid var(--ove-borde); border-radius: 20px;
}
.ove-exp.is-pestanas .ove-exp__item{ position: absolute; inset: 0; }
.ove-exp.is-pestanas .ove-exp__titulo{ display: none; }
.ove-exp.is-pestanas .ove-exp__texto{
	position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden;
	clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
.ove-exp.is-pestanas .ove-exp__cuerpo, .ove-exp.is-pestanas .ove-exp__figura{ position: static; margin: 0; }
.ove-exp.is-pestanas .ove-exp__figura--movil .ove-exp__marco{
	position: absolute; left: 50%; top: 48px; width: var(--ove-movil); transform: translateX(-50%); z-index: 2;
}
.ove-exp.is-pestanas .ove-exp__figura--sin .ove-exp__marco{
	position: absolute; left: 32px; right: 32px; top: 50%; transform: translateY(-50%); z-index: 2;
}
.ove-exp.is-pestanas .ove-exp__pie{
	position: absolute; left: 24px; bottom: 24px; z-index: 3; margin: 0; max-width: calc(100% - 48px);
	padding: 10px 18px; border-radius: 999px; background: var(--ove-pie-fondo); color: var(--ove-pie-texto);
	font-size: 14px; font-weight: 600; line-height: 1.3;
}
.ove-exp.is-pestanas .ove-exp__item.is-vecina-ant, .ove-exp.is-pestanas .ove-exp__item.is-vecina-sig{ z-index: 1; pointer-events: none; }
.ove-exp.is-pestanas .is-vecina-ant .ove-exp__pie, .ove-exp.is-pestanas .is-vecina-sig .ove-exp__pie,
.ove-exp.is-pestanas .is-vecina-ant .ove-exp__figura--sin, .ove-exp.is-pestanas .is-vecina-sig .ove-exp__figura--sin{ display: none; }
.ove-exp.is-pestanas .is-vecina-ant .ove-exp__figura--movil .ove-exp__marco,
.ove-exp.is-pestanas .is-vecina-sig .ove-exp__figura--movil .ove-exp__marco{
	top: 96px; width: calc(var(--ove-movil) * .82); opacity: .35; filter: blur(2px) saturate(.6); z-index: 1;
}
.ove-exp.is-pestanas .is-vecina-ant .ove-exp__figura--movil .ove-exp__marco{ left: 20%; }
.ove-exp.is-pestanas .is-vecina-sig .ove-exp__figura--movil .ove-exp__marco{ left: 80%; }
.ove-exp.is-pestanas .ove-exp__item.is-activa{ z-index: 2; }

/* ---------- Acordeon (movil y tableta) ---------- */
.ove-exp.is-acordeon .ove-exp__lista{ border-top: 1px solid var(--ove-borde); }
.ove-exp.is-acordeon .ove-exp__item{ border-bottom: 1px solid var(--ove-borde); }
.ove-exp__acordeon{
	display: flex; align-items: center; justify-content: space-between; gap: 16px;
	width: 100%; min-height: 48px; margin: 0; padding: 16px 4px;
	font: inherit; font-size: inherit; font-weight: inherit; line-height: inherit; text-align: left;
	color: var(--ove-tinta); background: none; border: 0; border-radius: 0; cursor: pointer;
}
.ove-exp__acordeon::after{
	content: ""; flex: 0 0 auto; width: 10px; height: 10px; margin: 0 6px 4px 0;
	border-right: 2px solid var(--ove-acento); border-bottom: 2px solid var(--ove-acento);
	transform: rotate(45deg); transition: transform .15s ease;
}
.ove-exp__acordeon[aria-expanded="true"]::after{ transform: rotate(-135deg); margin-bottom: -4px; }
.ove-exp.is-acordeon .ove-exp__cuerpo{ padding: 0 4px 24px; }
.ove-exp.is-acordeon .ove-exp__texto{ margin-top: 0; }
.ove-exp.is-acordeon .ove-exp__figura{ margin-top: 16px; }
.ove-exp.is-acordeon .ove-exp__figura--movil .ove-exp__marco{ max-width: 240px; margin: 0 auto; }
.ove-exp.is-acordeon .ove-exp__pie{ text-align: center; }
@media (prefers-reduced-motion: reduce){
	.ove-exp__tab, .ove-exp__acordeon::after{ transition: none; }
}
