/*!
 * EPDL 2026 · Hoolistic
 * Estilos de los widgets de Elementor.
 */

/* ==========================================================================
   Base
   --cq = 1 % del ancho del bloque (lo fija epdl.js con ResizeObserver; sin JS, 1vw).
   Los tamaños escalan con el bloque, como en el diseño, sin usar container queries
   (que rompen el cálculo de alturas dentro de los contenedores flex de Elementor).
   ========================================================================== */

.epdl {
	/* EPDL Calado: tipografía en negativo (cada letra es un bloque con la letra calada).
	   El color del texto pinta el bloque y la letra deja ver el fondo del elemento. */
	--f-display: "EPDL Calado", "Bebas Neue", Impact, sans-serif;
	--f-condensed: "Bebas Neue", "Barlow Condensed", Impact, sans-serif;
	--f-text: "Barlow Condensed", "Arial Narrow", sans-serif;
	/* Tinta: letra calada y texto de párrafo accesibles sobre todos los colores del sistema (≥ 5,3:1). */
	--tinta: #2b2622;
	--tex: url("../img/textura-papel.webp");
	--ease-out: cubic-bezier(.16, .84, .3, 1);
	--ease-back: cubic-bezier(.34, 1.56, .64, 1);
	position: relative;
	box-sizing: border-box;
	font-family: var(--f-text);
	-webkit-font-smoothing: antialiased;
}
.epdl *,
.epdl *::before,
.epdl *::after { box-sizing: inherit; }
:where(.epdl) img { display: block; max-width: 100%; height: auto; border: 0; box-shadow: none; border-radius: 0; }
:where(.epdl) :where(p) { margin: 0; }
:where(.epdl) :where(h1, h2, h3) { margin: 0; padding: 0; font: inherit; color: inherit; letter-spacing: inherit; text-transform: inherit; line-height: inherit; }
:where(.epdl) :where(button) { font: inherit; }
.epdl .screen-reader-text {
	position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0;
	overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

/* En móvil los contenedores de Elementor usan flex-wrap en columna y Chrome mediría
   nuestros bloques (todo % y posiciones absolutas) a ancho mínimo = alto 0.
   Ancho explícito y sin encoger; :where() deja que el «ancho personalizado» de Elementor mande. */
:where(.e-con, .e-con-inner) > :where([class*="elementor-widget-epdl-"]) { width: 100%; flex-shrink: 0; }

/* Textura de papel acuarela multiplicada sobre el color de fondo */
.epdl-tex,
.epdl-stage {
	background-color: var(--epdl-bg, #c3dde5);
}
.epdl-tex { position: relative; isolation: isolate; }
.epdl-tex::before {
	content: "";
	position: absolute; inset: 0; z-index: -1;
	background: var(--tex) 0 0 / 1400px auto repeat;
	mix-blend-mode: multiply;
	opacity: .55;
	pointer-events: none;
}
/* Trama de semitono */
.epdl-dots::after {
	content: "";
	position: absolute; inset: 0; z-index: 0;
	background-image: radial-gradient(rgba(40, 60, 70, .16) .9px, transparent 1.3px);
	background-size: 7px 7px;
	mix-blend-mode: multiply;
	opacity: .45;
	pointer-events: none;
}

/* Palabras caladas: el bloque es el color del texto (--box) y la letra muestra el fondo del span (--ink).
   Fondo propio en cada palabra para que la letra tenga contraste aunque el bloque de detrás no lo tenga. */
.epdl-boxed { display: inline; word-spacing: .14em; }
.epdl-box {
	display: inline-block;
	padding: 0;
	background: var(--ink, var(--tinta));
	color: var(--box, #ced0a4);
	line-height: 1.046;
	letter-spacing: 0;
}

/* ==========================================================================
   Animación de entrada genérica (.epdl-rv) — sólo cuando hay JS
   ========================================================================== */

.epdl-js .epdl-rv {
	opacity: 0;
	transition:
		opacity .8s ease var(--d, 0ms),
		transform 1s var(--ease-out) var(--d, 0ms),
		clip-path 1s var(--ease-out) var(--d, 0ms);
}
.epdl-js .epdl-rv--up { transform: translate3d(0, 40px, 0); }
.epdl-js .epdl-rv--left { transform: translate3d(-60px, 0, 0); }
.epdl-js .epdl-rv--right { transform: translate3d(60px, 0, 0); }
.epdl-js .epdl-rv--zoom { transform: scale(.94); }
.epdl-js .epdl-rv--pop { transform: scale(.6) rotate(-4deg); transition-timing-function: ease, var(--ease-back), ease; }
.epdl-js .epdl-rv--paper { transform: translate3d(0, 30px, 0) rotate(-5deg) scale(.92); transition-timing-function: ease, var(--ease-back), ease; }
.epdl-js .epdl-rv--fade { transform: none; }
.epdl-js .is-in .epdl-rv,
.epdl-js .epdl-rv.is-in { opacity: 1; transform: none; }

/* ==========================================================================
   Collage: escenario y capas
   ========================================================================== */

.epdl-collage-wrap { overflow: hidden; }

.epdl-stage {
	position: relative;
	width: 100%;
	/* Alto por padding (no aspect-ratio): los contenedores flex con wrap de Elementor
	   en móvil calculan a 0 las cajas con aspect-ratio. */
	height: 0;
	padding-bottom: calc(100% / var(--r, 1.6));
	overflow: hidden;
	isolation: isolate;
}
.epdl-stage__layers { position: absolute; inset: 0; z-index: 1; }

.epdl-layer {
	position: absolute;
	left: var(--x);
	top: var(--y);
	width: var(--w);
	z-index: var(--z, 1);
	transform: translateY(var(--ay, 0%)) rotate(var(--rot, 0deg)) scaleX(var(--flip, 1));
	pointer-events: none;
}
.epdl-layer--a-middle { --ay: -50%; }
.epdl-layer--a-bottom { --ay: -100%; }

.epdl-layer__px { will-change: transform; transform: translate3d(0, var(--py, 0px), 0); }
.epdl-layer__in { clip-path: inset(0 0 var(--clip, 0%) 0); }
.epdl-layer__img { width: 100%; height: auto; user-select: none; -webkit-user-drag: none; }

/* Formas */
.epdl-shape {
	display: block;
	width: 100%;
	aspect-ratio: 1 / var(--sr, 1);
	border-radius: 50%;
	background: var(--c);
	position: relative;
	overflow: hidden;
}
.epdl-layer--half .epdl-shape { aspect-ratio: 2 / 1; border-radius: 9999px 9999px 0 0; }
.epdl-shape::after {
	content: "";
	position: absolute; inset: 0;
	background: var(--tex) 0 0 / 1400px auto;
	mix-blend-mode: multiply;
	opacity: .5;
}

/* Regla */
.epdl-layer--ruler { height: calc(100% - var(--y)); }
.epdl-layer--ruler .epdl-layer__px,
.epdl-layer--ruler .epdl-layer__in { height: 100%; }
.epdl-ruler { display: block; width: 100%; height: 100%; color: var(--c, #1f1f1f); overflow: visible; }

/* --- Estados iniciales de entrada (sólo con JS y animación activa) --- */
.epdl-js [data-epdl-collage] .epdl-layer__in {
	transition:
		opacity calc(.9s / var(--speed, 1)) ease var(--d),
		transform calc(1.2s / var(--speed, 1)) var(--ease-out) var(--d),
		clip-path calc(1.4s / var(--speed, 1)) var(--ease-out) var(--d);
}
.epdl-js [data-epdl-collage]:not(.is-in) .epdl-layer:not([data-anim="none"]) .epdl-layer__in { opacity: 0; }
.epdl-js [data-epdl-collage]:not(.is-in) [data-anim="up"] .epdl-layer__in { transform: translate3d(0, 22%, 0); }
.epdl-js [data-epdl-collage]:not(.is-in) [data-anim="down"] .epdl-layer__in { transform: translate3d(0, -30%, 0); }
.epdl-js [data-epdl-collage]:not(.is-in) [data-anim="left"] .epdl-layer__in { transform: translate3d(-35%, 0, 0); }
.epdl-js [data-epdl-collage]:not(.is-in) [data-anim="right"] .epdl-layer__in { transform: translate3d(35%, 0, 0); }
.epdl-js [data-epdl-collage]:not(.is-in) [data-anim="drive"] .epdl-layer__in { transform: translate3d(-160%, 0, 0); opacity: 1; }
.epdl-js [data-epdl-collage]:not(.is-in) [data-anim="zoom"] .epdl-layer__in { transform: scale(.55); }
.epdl-js [data-epdl-collage]:not(.is-in) [data-anim="pop"] .epdl-layer__in { transform: scale(.2) rotate(-12deg); }
.epdl-js [data-epdl-collage]:not(.is-in) [data-anim="grow"] .epdl-layer__in { transform: scaleY(.15); transform-origin: 50% 100%; }
.epdl-js [data-epdl-collage]:not(.is-in) [data-anim="paper"] .epdl-layer__in { transform: rotate(-14deg) scale(.7); }
.epdl-js [data-epdl-collage]:not(.is-in) [data-anim="draw"] .epdl-layer__in { opacity: 1; clip-path: inset(0 100% var(--clip, 0%) 0); }

.epdl-js [data-epdl-collage] [data-anim="grow"] .epdl-layer__in { transform-origin: 50% 100%; }
.epdl-js [data-epdl-collage] [data-anim="pop"] .epdl-layer__in,
.epdl-js [data-epdl-collage] [data-anim="paper"] .epdl-layer__in {
	transition-timing-function: ease, var(--ease-back), ease;
}
.epdl-js [data-epdl-collage] [data-anim="drive"] .epdl-layer__in {
	transition-duration: .1s, calc(2.2s / var(--speed, 1)), .1s;
	transition-timing-function: ease, cubic-bezier(.22, .9, .25, 1), ease;
}

/* --- Movimiento continuo, tras la entrada --- */
.epdl-stage.is-in [data-loop="float"] .epdl-layer__img { animation: epdl-float 7s ease-in-out calc(var(--d) + 1.2s) infinite; }
.epdl-stage.is-in [data-loop="sway"] .epdl-layer__img { animation: epdl-sway 6s ease-in-out calc(var(--d) + 1.2s) infinite; transform-origin: 50% 0; }
.epdl-stage.is-in [data-loop="drift"] .epdl-layer__img { animation: epdl-drift 11s ease-in-out calc(var(--d) + 1.2s) infinite; }
.epdl-stage.is-in [data-loop="breathe"] .epdl-layer__in > * { animation: epdl-breathe 8s ease-in-out calc(var(--d) + 1.2s) infinite; }
.epdl-stage:not(.is-in) .epdl-layer__img { animation-play-state: paused; }

@keyframes epdl-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-6%); } }
@keyframes epdl-sway { 0%, 100% { transform: rotate(-3deg); } 50% { transform: rotate(3deg); } }
@keyframes epdl-drift { 0%, 100% { transform: translate(0, 0); } 50% { transform: translate(4%, -6%); } }
@keyframes epdl-breathe { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.03); } }

/* --- Etiqueta de capítulo («CAP1. ETAPA DE SEMILLA») --- */
.epdl-chapter {
	position: absolute; inset: 0; z-index: 20;
	pointer-events: none;
}
.epdl-chapter__line {
	position: absolute;
	left: var(--chx);
	top: var(--chl);
	bottom: 0;
	width: max(3px, calc(.55 * var(--cq, 1vw)));
	margin-left: calc(max(3px, calc(.55 * var(--cq, 1vw))) / -2);
	background: var(--box);
	transform-origin: 50% 0;
}
.epdl-chapter__text {
	position: absolute;
	top: var(--chy);
	display: flex;
	flex-direction: column;
	gap: calc(.25 * var(--cq, 1vw));
	pointer-events: auto;
}
.epdl-chapter.is-left .epdl-chapter__text { right: calc(100% - var(--chx)); align-items: flex-end; text-align: right; margin-right: calc(.5 * var(--cq, 1vw)); }
.epdl-chapter.is-right .epdl-chapter__text { left: var(--chx); align-items: flex-start; margin-left: calc(1.2 * var(--cq, 1vw)); }
.epdl-chapter.is-center .epdl-chapter__text { left: var(--chx); transform: translate(-50%, -50%); align-items: center; text-align: center; }
.epdl-chapter__title,
.epdl-chapter__sub {
	font-family: var(--f-display);
	text-transform: uppercase;
	line-height: 1.046;
	letter-spacing: 0;
	display: block;
	white-space: nowrap;
}
.epdl-chapter__title { font-size: calc(3.4 * var(--cq, 1vw)); }
.epdl-chapter__sub { font-size: calc(1.55 * var(--cq, 1vw)); }
.epdl-chapter .epdl-box { background: var(--ink); color: var(--box); }
.epdl-chapter__title .epdl-box { background: var(--tink, var(--ink)); }
.epdl-actividades .epdl-chapter__title { font-size: calc(5.6 * var(--cq, 1vw)); }

.epdl-js [data-epdl-collage] .epdl-chapter__line { transition: transform 1.2s var(--ease-out) .5s; }
.epdl-js [data-epdl-collage]:not(.is-in) .epdl-chapter__line { transform: scaleY(0); }
.epdl-js [data-epdl-collage] .epdl-chapter .epdl-box { transition: opacity .6s ease, transform .8s var(--ease-back); }
.epdl-js [data-epdl-collage]:not(.is-in) .epdl-chapter .epdl-box { opacity: 0; transform: translateY(60%) rotate(-4deg); }
.epdl-js [data-epdl-collage].is-in .epdl-chapter .epdl-box { transition-delay: calc(900ms + var(--i, 0) * 110ms); }

/* ==========================================================================
   Portada (collage + panel con menú)
   ========================================================================== */

.epdl-home { position: relative; }

.epdl-panel {
	color: #fff;
	--box: #f1f1ec;
	--ink: var(--tinta);
}
.epdl-home__panel {
	position: absolute;
	z-index: 10;
	top: 2.8%;
	bottom: 2.8%;
	right: 0;
	width: 34%;
	padding: calc(2.2 * var(--cq, 1vw)) calc(2.4 * var(--cq, 1vw)) calc(2.4 * var(--cq, 1vw)) calc(4 * var(--cq, 1vw));
	border-radius: calc(3.6 * var(--cq, 1vw)) 0 0 calc(3.6 * var(--cq, 1vw));
	display: flex;
	flex-direction: column;
	overflow: hidden;
}
.epdl-panel__top {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 1rem;
}
.epdl-panel__logo { display: block; width: calc(8 * var(--cq, 1vw)); min-width: 64px; }
.epdl-panel__logo img { width: 100%; }

.epdl-burger {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	height: calc(4.8 * var(--cq, 1vw));
	min-height: 44px;
	padding: 0 18px 0 10px;
	border: max(3px, calc(.4 * var(--cq, 1vw))) solid currentColor;
	border-radius: 999px;
	background: transparent;
	color: #1f1f1f;
	font-family: "Barlow Condensed", "Arial Narrow", sans-serif;
	font-weight: 700;
	font-size: max(18px, calc(1.5 * var(--cq, 1vw)));
	line-height: 1;
	text-transform: uppercase;
	letter-spacing: .06em;
	cursor: pointer;
	transition: transform .3s var(--ease-back), background-color .2s;
}
.epdl-burger:hover { transform: scale(1.04); background: rgba(255, 255, 255, .2); }
.epdl-burger:focus-visible { outline: 3px solid #fff; outline-offset: 3px; box-shadow: 0 0 0 6px var(--tinta); }
.epdl-burger__ico { display: inline-grid; width: 1.5em; height: 1.5em; }
.epdl-burger__ico svg { width: 100%; height: 100%; grid-area: 1 / 1; transition: opacity .2s, transform .3s; }
.epdl-burger__txt { padding-top: .08em; }
.epdl-burger svg:last-of-type { opacity: 0; transform: rotate(-90deg); }
.epdl-burger[aria-expanded="true"] svg:first-of-type { opacity: 0; transform: rotate(90deg); }
.epdl-burger[aria-expanded="true"] svg:last-of-type { opacity: 1; transform: none; }
/* En escritorio el botón de la portada mantiene el icono ☰ como en el diseño */
@media (min-width: 768px) {
	.epdl-home__panel .epdl-burger[aria-expanded="true"] svg:first-of-type { opacity: 1; transform: none; }
	.epdl-home__panel .epdl-burger[aria-expanded="true"] svg:last-of-type { opacity: 0; }
}

.epdl-menu { list-style: none; margin: 0; padding: 0; }
.epdl-menu__item {
	margin: 0 0 calc(.95 * var(--cq, 1vw));
	font-family: var(--f-display);
	font-size: calc(2.25 * var(--cq, 1vw));
	text-transform: uppercase;
	letter-spacing: 0;
	line-height: 1.046;
}
.epdl-menu__item a { text-decoration: none; display: inline-block; }
.epdl-menu__item .epdl-box { transition: background-color .2s, color .2s, transform .25s var(--ease-back); }
.epdl-menu__item a:hover .epdl-box,
.epdl-menu__item a:focus-visible .epdl-box,
.epdl-menu__item.is-current .epdl-box { background: var(--box); color: var(--tinta); }
.epdl-menu__item a:hover .epdl-box { transform: rotate(-2deg); }
.epdl-menu__item a:focus-visible { outline: 3px solid #fff; outline-offset: 3px; box-shadow: 0 0 0 6px var(--tinta); }

.epdl-panel__nav { margin-top: calc(2.2 * var(--cq, 1vw)); }

.epdl-home__tagline {
	margin-top: auto !important;
	color: var(--tinta);
	font-family: var(--f-condensed);
	text-transform: uppercase;
	line-height: .92;
}
.epdl-home__tagline-title { display: block; font-size: calc(8.4 * var(--cq, 1vw)); letter-spacing: .01em; }
.epdl-home__tagline-text { display: block; font-size: calc(4.9 * var(--cq, 1vw)); letter-spacing: .01em; }

/* Menú de la portada colapsable (escritorio: abierto por defecto si se configura) */
.epdl-home__panel .epdl-panel__nav { transition: opacity .35s ease, transform .45s var(--ease-out); }
.epdl-home__panel:not(.is-open) .epdl-panel__nav { opacity: 0; transform: translateX(12%); visibility: hidden; }
.epdl-home__panel.is-open .epdl-panel__nav { opacity: 1; transform: none; visibility: visible; }
.epdl-panel .epdl-menu__item { transition: opacity .4s ease, transform .5s var(--ease-out); transition-delay: calc(var(--i, 0) * 60ms + 100ms); }
.epdl-home__panel:not(.is-open) .epdl-menu__item { opacity: 0; transform: translateX(30px); }
html:not(.epdl-js) .epdl-home__panel .epdl-panel__nav { opacity: 1; transform: none; visibility: visible; }
html:not(.epdl-js) .epdl-home__panel .epdl-menu__item { opacity: 1; transform: none; }

/* ==========================================================================
   Menú flotante (páginas interiores)
   ========================================================================== */

.epdl-menuwrap { height: 0; }
.epdl-fab {
	position: fixed;
	z-index: 9990;
	top: clamp(14px, 2.4vw, 32px);
	right: clamp(14px, 2.4vw, 32px);
	height: 52px;
	border-width: 3px;
	font-size: 20px;
	background: rgba(255, 255, 255, .92);
	box-shadow: 0 6px 18px rgba(0, 0, 0, .12);
	backdrop-filter: blur(4px);
}
.admin-bar .epdl-fab { top: calc(32px + clamp(14px, 2.4vw, 32px)); }
/* Logo del programa arriba a la izquierda en las páginas interiores */
.epdl-sitelogo {
	position: absolute;
	z-index: 9989;
	top: clamp(14px, 2.4vw, 32px);
	left: clamp(14px, 2.4vw, 32px);
	display: block;
	width: clamp(84px, 7.5vw, 112px);
	padding: 10px 12px;
	border-radius: 14px;
	background: var(--tinta);
	transition: transform .3s var(--ease-back);
}
.epdl-sitelogo img { display: block; width: 100%; height: auto; }
.epdl-sitelogo:hover { transform: rotate(-3deg); }
.epdl-sitelogo:focus-visible { outline: 3px solid #fff; outline-offset: 3px; box-shadow: 0 0 0 6px var(--tinta); }
.admin-bar .epdl-sitelogo { top: calc(32px + clamp(14px, 2.4vw, 32px)); }
.epdl-drawer-backdrop {
	position: fixed; inset: 0; z-index: 9980;
	background: rgba(20, 30, 34, .35);
	opacity: 0;
	transition: opacity .35s ease;
}
.epdl-drawer-backdrop.is-open { opacity: 1; }
.epdl-drawer {
	position: fixed;
	z-index: 9985;
	top: 0; right: 0; bottom: 0;
	width: min(440px, 92vw);
	padding: 28px 32px 36px 44px;
	border-radius: 48px 0 0 48px;
	display: flex;
	flex-direction: column;
	overflow-y: auto;
	transform: translateX(105%);
	transition: transform .5s var(--ease-out);
}
.epdl-drawer.is-open { transform: none; }
.epdl-drawer[hidden] { display: flex; visibility: hidden; }
.epdl-drawer .epdl-panel__logo { width: 92px; }
.epdl-drawer .epdl-panel__nav { margin-top: 32px; }
.epdl-drawer .epdl-menu__item { font-size: clamp(20px, calc(7.4 * var(--cq, 1vw)), 30px); margin-bottom: 14px; }
.epdl-drawer:not(.is-open) .epdl-menu__item { opacity: 0; transform: translateX(30px); }
.epdl-drawer .epdl-home__tagline { padding-top: 32px; }
.epdl-drawer .epdl-home__tagline-title { font-size: clamp(56px, calc(26 * var(--cq, 1vw)), 110px); }
.epdl-drawer .epdl-home__tagline-text { font-size: clamp(34px, calc(15 * var(--cq, 1vw)), 64px); }
.admin-bar .epdl-drawer { top: 32px; }
html.epdl-lock, html.epdl-lock body { overflow: hidden; }

/* ==========================================================================
   Título bicolor (RED | MED, RADIO | EPDL)
   ========================================================================== */

.epdl-bicolor {
	position: relative;
	display: flex;
	background: linear-gradient(90deg, var(--bi-l) 50%, var(--bi-r) 50%);
	min-height: 20vw;
}
.epdl-bicolor.epdl-tex { background-color: transparent; }
.epdl-bicolor.is-vtop { align-items: flex-start; }
.epdl-bicolor.is-vcenter { align-items: center; }
.epdl-bicolor__inner { width: 100%; padding: calc(1.4 * var(--cq, 1vw)) calc(3 * var(--cq, 1vw)) calc(3 * var(--cq, 1vw)); }
.epdl-bicolor.is-vcenter .epdl-bicolor__inner { padding: calc(3 * var(--cq, 1vw)); }
.epdl-bicolor__title {
	display: grid;
	grid-template-columns: 1fr 1fr;
	font-family: var(--f-display);
	font-size: calc(12.2 * var(--cq, 1vw));
	line-height: 1.046;
	text-transform: uppercase;
	letter-spacing: 0;
}
.epdl-bicolor__w {
	display: inline-block;
	padding: 0;
	align-self: center;
	background: var(--tinta);
}
.epdl-bicolor__w1 { color: var(--bi-b1); }
.epdl-bicolor__w2 { color: var(--bi-b2); }
.epdl-bicolor.is-center .epdl-bicolor__w1 { justify-self: end; margin-right: calc(1.6 * var(--cq, 1vw)); }
.epdl-bicolor.is-center .epdl-bicolor__w2 { justify-self: start; margin-left: calc(1.6 * var(--cq, 1vw)); }
.epdl-bicolor.is-halves .epdl-bicolor__w { justify-self: center; }
.epdl-bicolor.is-halves .epdl-bicolor__title { font-size: calc(11.4 * var(--cq, 1vw)); }

.epdl-bicolor__sub {
	margin-top: calc(2.2 * var(--cq, 1vw)) !important;
	text-align: center;
	font-family: var(--f-display);
	font-size: calc(3 * var(--cq, 1vw));
	line-height: 1.3;
	text-transform: uppercase;
	letter-spacing: 0;
}
/* Cada palabra toma la caja de la mitad en la que cae (epdl.js marca .is-right); la letra siempre en tinta. */
.epdl-bicolor__sub .epdl-box { background: var(--tinta); color: var(--bi-b1); }
.epdl-bicolor__sub .epdl-box.is-right { color: var(--bi-b2); }

/* ==========================================================================
   Texto + imagen (Autores / Lecturas)
   ========================================================================== */

.epdl-split {
	--split: 48%;
	display: grid;
	grid-template-columns: var(--split) 1fr;
	min-height: 33vw;
}
.epdl-split.is-reverse { grid-template-columns: 1fr var(--split); }
.epdl-split.is-reverse .epdl-split__body { order: 2; }
.epdl-split__col { position: relative; }
.epdl-split__body {
	--epdl-bg: var(--c-left);
	background-color: var(--c-left);
	padding: calc(3.4 * var(--cq, 1vw)) calc(3.2 * var(--cq, 1vw)) calc(4 * var(--cq, 1vw)) calc(3 * var(--cq, 1vw));
	display: flex;
	flex-direction: column;
}
.epdl-split__media {
	--epdl-bg: var(--c-right);
	background-color: var(--c-right);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: calc(1.2 * var(--cq, 1vw)) calc(3 * var(--cq, 1vw));
}
.epdl-label {
	font-family: var(--f-display);
	font-size: calc(2.9 * var(--cq, 1vw));
	text-transform: uppercase;
	letter-spacing: 0;
	line-height: 1.046;
}
.epdl-split__text,
.epdl-cols__text {
	margin-top: auto;
	padding-top: calc(2.4 * var(--cq, 1vw));
	color: var(--c-text, var(--tinta));
	font-family: var(--f-text);
	font-weight: 500;
	font-size: clamp(16px, calc(1.25 * var(--cq, 1vw)), 20px);
	line-height: 1.32;
	text-align: justify;
	hyphens: auto;
	-webkit-hyphens: auto;
}
.epdl-split__text p + p,
.epdl-cols__text p + p { margin-top: .8em; }
.epdl-split__text a,
.epdl-cols__text a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }

.epdl-split__frame { width: 100%; display: flex; justify-content: center; }
.epdl-split.is-book .epdl-split__img {
	width: auto;
	max-height: 31vw;
	max-width: 70%;
	box-shadow: 0 calc(1.2 * var(--cq, 1vw)) calc(2.4 * var(--cq, 1vw)) rgba(0, 0, 0, .18);
}
.epdl-split.is-free .epdl-split__img { width: 100%; max-width: 640px; height: auto; filter: drop-shadow(0 calc(1 * var(--cq, 1vw)) calc(1.4 * var(--cq, 1vw)) rgba(43, 38, 34, .22)); }
.epdl-split.is-photo .epdl-split__media { padding: calc(1.2 * var(--cq, 1vw)) calc(4 * var(--cq, 1vw)); }
.epdl-split.is-photo .epdl-split__img {
	width: 100%;
	aspect-ratio: 1.32;
	object-fit: cover;
	border-radius: calc(3 * var(--cq, 1vw));
}

/* ==========================================================================
   Columnas (Concursos / Talleres)
   ========================================================================== */

.epdl-cols {
	display: grid;
	grid-template-columns: repeat(var(--n, 2), 1fr);
}
.epdl-cols__col {
	background-color: var(--epdl-bg);
	padding: calc(3.2 * var(--cq, 1vw)) calc(4 * var(--cq, 1vw)) calc(4.2 * var(--cq, 1vw));
	display: flex;
	flex-direction: column;
	min-height: 32vw;
}
.epdl-cols__title { text-align: center; }
.epdl-cols__text { margin-top: 0; padding-top: calc(5.5 * var(--cq, 1vw)); }

/* ==========================================================================
   Foto / vídeo destacado + reproductor
   ========================================================================== */

.epdl-feature {
	background-color: #e6e6e6;
	padding: calc(1.6 * var(--cq, 1vw)) 0 calc(3 * var(--cq, 1vw));
	display: flex;
	flex-direction: column;
	align-items: center;
}
.epdl-card {
	position: relative;
	width: 89%;
	height: 0;
	padding-bottom: calc(100% / var(--ratio, 2));
	border-radius: clamp(22px, calc(5.6 * var(--cq, 1vw)), 72px);
	overflow: hidden;
	isolation: isolate;
	background: #cfcfcf;
}
.epdl-card__media {
	position: absolute; inset: 0;
	width: 100% !important; height: 100% !important;
	max-width: none !important;
	object-fit: cover;
}
.epdl-card__overlay {
	position: absolute;
	left: 8.5%; top: 22%;
	color: #fff;
	text-shadow: 0 2px 6px rgba(0, 0, 0, .35);
	display: flex;
	flex-direction: column;
	gap: calc(1.2 * var(--cq, 1vw));
}
.epdl-card__title { font-family: var(--f-text); font-weight: 700; font-size: calc(8 * var(--cq, 1vw)); line-height: 1; }
.epdl-card__sub { font-family: var(--f-text); font-weight: 500; font-size: calc(4.2 * var(--cq, 1vw)); line-height: 1; letter-spacing: .03em; text-transform: uppercase; }

/* Nombre calado: caja blanca + letras negras en modo «screen» = se ve la foto dentro de las letras */
.epdl-card__ko {
	position: absolute;
	left: 58%; top: 14%;
	z-index: 2;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: calc(.7 * var(--cq, 1vw));
	font-family: var(--f-display);
	font-size: calc(7.4 * var(--cq, 1vw));
	line-height: 1.046;
	text-transform: uppercase;
	letter-spacing: 0;
}
/* Decorativo (aria-hidden): el nombre se lee en el texto alternativo de la foto y en la página. */
.epdl-card__ko span { display: block; color: #ededed; white-space: nowrap; }

/* Reproductor */
.epdl-player {
	--pc: #111;
	width: clamp(260px, calc(33 * var(--cq, 1vw)), 440px);
	margin-top: 1.2rem;
	color: var(--pc);
	user-select: none;
}
.epdl-player__top { display: flex; justify-content: flex-end; height: 26px; margin-bottom: 4px; }
.epdl-player__btn {
	display: inline-grid;
	place-items: center;
	padding: 0;
	margin: 0;
	border: 0;
	background: none;
	color: inherit;
	cursor: pointer;
	width: 34px; height: 34px;
	border-radius: 50%;
	transition: transform .2s var(--ease-back), opacity .2s;
}
.epdl-player__btn:hover { transform: scale(1.12); }
.epdl-player__btn:focus-visible { outline: 2px solid var(--pc); outline-offset: 2px; }
.epdl-player__btn svg { width: 24px; height: 24px; }
.epdl-player__like { width: 28px; height: 28px; }
.epdl-player__like svg { width: 24px; height: 24px; }
.epdl-player__like.is-on { color: #c2414b; }
.epdl-player__like.is-on svg { animation: epdl-heart .45s var(--ease-back); }
@keyframes epdl-heart { 0% { transform: scale(.6); } 60% { transform: scale(1.3); } 100% { transform: scale(1); } }
.epdl-player__btn[aria-pressed="false"][data-act="shuffle"],
.epdl-player__btn[aria-pressed="false"][data-act="repeat"] { opacity: .9; }
.epdl-player__btn[aria-pressed="true"][data-act="shuffle"],
.epdl-player__btn[aria-pressed="true"][data-act="repeat"] { color: #2f7a72; }

.epdl-player__bar {
	position: relative;
	height: 16px;
	cursor: pointer;
	touch-action: none;
}
.epdl-player__bar::before,
.epdl-player__fill {
	content: "";
	position: absolute;
	left: 0; top: 50%;
	height: 3px;
	margin-top: -1.5px;
	background: var(--pc);
	border-radius: 2px;
}
.epdl-player__bar::before { right: 0; opacity: 1; }
.epdl-player__fill { width: var(--p, 0%); }
.epdl-player__dot {
	position: absolute;
	top: 50%;
	left: var(--p, 0%);
	width: 18px; height: 18px;
	margin: -9px 0 0 -9px;
	border-radius: 50%;
	background: var(--pc);
	transition: transform .2s;
}
.epdl-player__bar:hover .epdl-player__dot,
.epdl-player__bar:focus-visible .epdl-player__dot { transform: scale(1.25); }
.epdl-player__bar:focus-visible { outline: 2px solid var(--pc); outline-offset: 4px; border-radius: 4px; }
.epdl-player__times {
	display: flex;
	justify-content: space-between;
	margin-top: 2px;
	font-family: var(--f-text);
	font-weight: 500;
	font-size: 14px;
	font-variant-numeric: tabular-nums;
}
.epdl-player__controls {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: clamp(12px, calc(3.4 * var(--cq, 1vw)), 34px);
	margin-top: 14px;
}
.epdl-player__play { width: 50px; height: 50px; background: var(--pc); color: #fff; }
.epdl-player__play svg { width: 30px; height: 30px; grid-area: 1 / 1; }
.epdl-player__play svg:last-child { display: none; }
.epdl-player.is-playing .epdl-player__play svg:first-child { display: none; }
.epdl-player.is-playing .epdl-player__play svg:last-child { display: block; }
.epdl-player.is-playing .epdl-player__play { animation: epdl-pulse 2.4s ease-in-out infinite; }
@keyframes epdl-pulse { 0%, 100% { box-shadow: 0 0 0 0 rgba(0, 0, 0, .25); } 50% { box-shadow: 0 0 0 8px rgba(0, 0, 0, 0); } }
.epdl-player.is-empty .epdl-player__bar { cursor: default; }

/* Variante pequeña (rejilla de podcasts) */
.epdl-player.is-small { width: 70%; min-width: 220px; margin-top: .9rem; }
.epdl-player.is-small .epdl-player__controls { gap: clamp(10px, calc(2.6 * var(--cq, 1vw)), 26px); margin-top: 10px; }
.epdl-player.is-small .epdl-player__play { width: 42px; height: 42px; }
.epdl-player.is-small .epdl-player__play svg { width: 26px; height: 26px; }
.epdl-player.is-small .epdl-player__btn:not(.epdl-player__play) svg { width: 21px; height: 21px; }
.epdl-player.is-small .epdl-player__times { font-size: 12px; }

/* ==========================================================================
   Radio
   ========================================================================== */

.epdl-radio__photo {
	position: relative;
	height: 0;
	padding-bottom: calc(100% / var(--ratio, 1.72));
	overflow: hidden;
}
.epdl-radio__img {
	position: absolute; inset: 0;
	width: 100% !important; height: 100% !important; max-width: none !important;
	object-fit: cover;
}
.epdl-js .epdl-radio__photo.is-kb .epdl-radio__img { transform: scale(1.12); transition: transform 6s cubic-bezier(.2, .6, .2, 1); }
.epdl-js .epdl-radio__photo.is-kb.is-in .epdl-radio__img { transform: scale(1); }

/* ==========================================================================
   Podcasts
   ========================================================================== */

.epdl-pods {
	background-color: #e6e6e6;
	padding: clamp(28px, 4vw, 64px) clamp(16px, 5vw, 72px) clamp(40px, 6vw, 88px);
}
.epdl-eps { max-width: 1120px; margin: 0 auto; display: flex; flex-direction: column; border-top: 2px solid var(--tinta); }
.epdl-eps > * { border-bottom: 2px solid var(--tinta); }

/* Episodio en formato lista (Radio EPDL, El programa…) */
.epdl-ep {
	--ep-acento: #fef69f;
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	grid-template-areas: "img cuerpo play" "img prog prog";
	align-items: center;
	column-gap: clamp(16px, 2.4vw, 32px);
	padding: clamp(16px, 2vw, 24px) clamp(8px, 1.4vw, 20px);
	color: var(--tinta);
	font-family: var(--f-text);
	transition: background-color .2s;
}
.epdl-ep:hover, .epdl-ep.is-on { background-color: rgba(255, 255, 255, .45); }
.epdl-ep audio { display: none; }
.epdl-ep__img { grid-area: img; align-self: start; width: clamp(96px, 14vw, 200px); aspect-ratio: 16 / 10; border-radius: 16px; overflow: hidden; background: #d4d4d4; }
.epdl-ep__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--ease-out); }
.epdl-ep:hover .epdl-ep__img img { transform: scale(1.05); }
.epdl-ep__cuerpo { grid-area: cuerpo; min-width: 0; display: flex; flex-direction: column; gap: 6px; }
.epdl-ep__t { font-family: var(--f-condensed) !important; font-size: clamp(26px, 2.5vw, 36px) !important; line-height: 1 !important; letter-spacing: .01em; }
.epdl-ep__t a { color: inherit; text-decoration: none; }
.epdl-ep__t a:hover { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 4px; }
.epdl-ep__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; font-size: 17px; font-weight: 600; }
.epdl-ep__tag { background: var(--ep-acento); padding: 2px 8px 1px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; font-size: 14px; }
.epdl-ep__desc { font-size: 18px; font-weight: 500; line-height: 1.35; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; max-width: 70ch; }
.epdl-ep__dur { font-size: 17px; font-weight: 700; font-variant-numeric: tabular-nums; }
.epdl-ep__dur:empty { display: none; }
.epdl-ep__play {
	grid-area: play;
	width: 60px; height: 60px; flex: none;
	border-radius: 50%; border: 0; padding: 0;
	background: var(--tinta); color: var(--ep-acento);
	display: grid; place-items: center; cursor: pointer;
	transition: transform .25s var(--ease-back);
}
.epdl-ep__play:hover { transform: scale(1.08); }
.epdl-ep__play[disabled] { opacity: .35; cursor: default; transform: none; }
.epdl-ep__play svg { width: 46%; height: 46%; grid-area: 1 / 1; }
.epdl-ep__play svg:last-child, .epdl-ep.is-playing .epdl-ep__play svg:first-child { display: none; }
.epdl-ep.is-playing .epdl-ep__play svg:last-child { display: block; }
.epdl-ep__prog { grid-area: prog; display: flex; align-items: center; gap: 12px; margin-top: 14px; font-size: 16px; font-weight: 700; font-variant-numeric: tabular-nums; }
.epdl-ep__prog[hidden] { display: none; }
.epdl-ep__barra { position: relative; flex: 1; height: 8px; border-radius: 4px; background: rgba(43, 38, 34, .2); }
.epdl-ep__fill { position: absolute; left: 0; top: 0; bottom: 0; width: var(--p, 0%); border-radius: 4px; background: var(--tinta); }
.epdl-ep__fill::after { content: ""; position: absolute; right: -8px; top: 50%; width: 16px; height: 16px; margin-top: -8px; border-radius: 50%; background: var(--ep-acento); border: 3px solid var(--tinta); }
.epdl-ep__barra input { position: absolute; inset: -12px 0; width: 100%; height: calc(100% + 24px); margin: 0; opacity: 0; cursor: pointer; }
.epdl-ep__barra:focus-within { outline: 3px solid var(--tinta); outline-offset: 6px; }
.epdl-ep :focus-visible { outline: 3px solid var(--tinta); outline-offset: 3px; box-shadow: 0 0 0 6px #fff; }
/* Dentro de un bloque de texto + foto */
.epdl-split__ep { margin-top: clamp(20px, 2.4vw, 32px); border-top: 2px solid var(--tinta); border-bottom: 2px solid var(--tinta); }
.epdl-split__ep .epdl-ep { padding-left: 0; padding-right: 0; }
.epdl-split__ep .epdl-ep:hover { background: none; }
.epdl-split__ep .epdl-ep__img { width: 84px; aspect-ratio: 1; border-radius: 12px; }
@media (max-width: 640px) {
	.epdl-ep { grid-template-columns: auto minmax(0, 1fr); grid-template-areas: "img cuerpo" "play play" "prog prog"; row-gap: 12px; }
	.epdl-ep__img { width: 92px; aspect-ratio: 1; border-radius: 12px; }
	.epdl-ep__t { font-size: 26px !important; }
	.epdl-ep__desc { font-size: 17px; }
	.epdl-ep__play { justify-self: end; width: 56px; height: 56px; }
	.epdl-ep__prog { margin-top: 0; }
}
@media (prefers-reduced-motion: reduce) {
	.epdl-ep, .epdl-ep * { transition: none !important; }
}

/* ==========================================================================
   Pie
   ========================================================================== */

.epdl-foot {
	background-color: #414141;
	padding: 90px 24px;
	color: #fff;
	--logo-h: 86px;
}
.epdl-foot__logos {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: clamp(28px, 5vw, 64px);
}
.epdl-foot__logo { display: block; }
.epdl-foot__logo img { height: calc(var(--logo-h) * var(--s, 1)); width: auto; max-width: 70vw; object-fit: contain; }
.epdl-foot__logo:hover img { opacity: .85; }
.epdl-foot__extra { margin-top: 32px; text-align: center; font-size: 14px; opacity: .8; }
.epdl-foot__extra a { color: inherit; }
.epdl-foot__firma { margin-top: 12px; font-size: 13px; }

/* ==========================================================================
   Móvil
   ========================================================================== */

@media (max-width: 767px) {
	.epdl-stage { padding-bottom: calc(100% / var(--rm, .8)); }

	.epdl-layer {
		left: var(--xm, var(--x));
		top: var(--ym, var(--y));
		width: var(--wm, var(--w));
	}
	.epdl-layer--ruler { height: calc(100% - var(--ym, var(--y))); }
	.epdl-layer.is-hide-m { display: none; }

	.epdl-chapter { --chx: var(--chxm); --chy: var(--chym); --chl: var(--chlm); }
	.epdl-chapter__line { left: var(--chxm, var(--chx)); top: var(--chlm, var(--chl)); width: 4px; margin-left: -2px; }
	.epdl-chapter__text { top: var(--chym, var(--chy)); gap: calc(1 * var(--cq, 1vw)); }
	.epdl-chapter.is-left .epdl-chapter__text { right: calc(100% - var(--chxm, var(--chx))); margin-right: calc(1.5 * var(--cq, 1vw)); }
	.epdl-chapter.is-right .epdl-chapter__text { left: var(--chxm, var(--chx)); margin-left: calc(3 * var(--cq, 1vw)); }
	.epdl-chapter.is-center .epdl-chapter__text { left: var(--chxm, var(--chx)); }
	.epdl-chapter__title { font-size: calc(9 * var(--cq, 1vw)); }
	.epdl-chapter__sub { font-size: calc(4.2 * var(--cq, 1vw)); }
	.epdl-actividades .epdl-chapter__title { font-size: calc(10.5 * var(--cq, 1vw)); }

	/* Portada: el panel pasa debajo del collage */
	.epdl-home__panel {
		position: relative;
		top: auto; bottom: auto; right: auto;
		width: 100%;
		margin-top: calc(-9 * var(--cq, 1vw));
		padding: calc(6 * var(--cq, 1vw)) calc(6 * var(--cq, 1vw)) calc(8 * var(--cq, 1vw));
		border-radius: calc(8 * var(--cq, 1vw)) calc(8 * var(--cq, 1vw)) 0 0;
	}
	.epdl-panel__logo { width: calc(22 * var(--cq, 1vw)); }
	.epdl-burger { height: calc(12 * var(--cq, 1vw)); border-width: 3px; font-size: max(18px, calc(4.6 * var(--cq, 1vw))); }
	.epdl-home__panel .epdl-panel__nav {
		margin-top: 0;
		max-height: 0;
		overflow: hidden;
		transition: max-height .5s var(--ease-out), opacity .35s ease, margin .4s;
	}
	.epdl-home__panel.is-open .epdl-panel__nav { max-height: calc(120 * var(--cq, 1vw)); margin-top: calc(6 * var(--cq, 1vw)); }
	.epdl-home__panel .epdl-menu__item { font-size: calc(6.6 * var(--cq, 1vw)); margin-bottom: calc(3 * var(--cq, 1vw)); }
	.epdl-home__tagline { margin-top: calc(7 * var(--cq, 1vw)) !important; }
	.epdl-home__tagline-title { font-size: calc(24 * var(--cq, 1vw)); }
	.epdl-home__tagline-text { font-size: calc(14 * var(--cq, 1vw)); }

	.epdl-drawer { border-radius: 32px 0 0 32px; padding: 22px 24px 30px 30px; }
	.admin-bar .epdl-fab, .admin-bar .epdl-sitelogo { top: calc(46px + 14px); }
	.admin-bar .epdl-drawer { top: 46px; }

	.epdl-bicolor { min-height: 0; }
	.epdl-bicolor__inner { padding: calc(5 * var(--cq, 1vw)) calc(4 * var(--cq, 1vw)) calc(7 * var(--cq, 1vw)); }
	.epdl-bicolor__title { font-size: calc(15 * var(--cq, 1vw)); }
	.epdl-bicolor.is-halves .epdl-bicolor__title { font-size: calc(12.5 * var(--cq, 1vw)); }
	.epdl-bicolor__sub { font-size: calc(4.6 * var(--cq, 1vw)); margin-top: calc(4 * var(--cq, 1vw)) !important; line-height: 1.4; }

	.epdl-split,
	.epdl-split.is-reverse { grid-template-columns: 1fr; min-height: 0; }
	.epdl-split.is-reverse .epdl-split__body { order: 0; }
	.epdl-split__body { padding: calc(9 * var(--cq, 1vw)) calc(6 * var(--cq, 1vw)) calc(10 * var(--cq, 1vw)); }
	.epdl-split__media { padding: calc(8 * var(--cq, 1vw)) calc(6 * var(--cq, 1vw)); }
	.epdl-label { font-size: calc(8 * var(--cq, 1vw)); }
	.epdl-split__text,
	.epdl-cols__text { font-size: 16px; line-height: 1.45; padding-top: calc(6 * var(--cq, 1vw)); text-align: left; hyphens: manual; }
	.epdl-split.is-book .epdl-split__img { max-height: none; max-width: 72%; }
	.epdl-split.is-photo .epdl-split__media { padding: calc(7 * var(--cq, 1vw)) calc(6 * var(--cq, 1vw)); }
	.epdl-split.is-photo .epdl-split__img { border-radius: calc(7 * var(--cq, 1vw)); }

	.epdl-cols { grid-template-columns: 1fr; }
	.epdl-cols__col { min-height: 0; padding: calc(9 * var(--cq, 1vw)) calc(6 * var(--cq, 1vw)) calc(10 * var(--cq, 1vw)); }

	.epdl-feature { padding: calc(5 * var(--cq, 1vw)) 0 calc(9 * var(--cq, 1vw)); }
	.epdl-card { border-radius: calc(9 * var(--cq, 1vw)); }
	.epdl-card__ko { font-size: calc(9.6 * var(--cq, 1vw)); }
	.epdl-player { width: min(86%, 380px); }

	.epdl-player.is-small { width: 86%; }
}

/* Tablet: el texto del panel no puede quedar diminuto */
@media (min-width: 768px) and (max-width: 1024px) {
	.epdl-home__panel { width: 38%; padding-left: calc(3 * var(--cq, 1vw)); }
	.epdl-menu__item { font-size: calc(2.5 * var(--cq, 1vw)); }
	.epdl-split__text, .epdl-cols__text { font-size: 15px; }
}

/* ==========================================================================
   Movimiento reducido
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {
	.epdl *,
	.epdl *::before,
	.epdl *::after {
		animation: none !important;
		transition-duration: .01ms !important;
		transition-delay: 0s !important;
	}
	.epdl-layer__px { transform: none !important; }
}

/* Enlace «Saltar al contenido»: invisible hasta que recibe el foco del teclado */
.epdl-saltar { position: absolute; z-index: 100000; top: 8px; left: 8px; padding: 12px 18px; background: #2b2622; color: #fef69f; font: 600 18px/1.2 "Barlow Condensed", "Arial Narrow", sans-serif; text-decoration: underline; transform: translateY(-200%); transition: transform .2s; }
.epdl-saltar:focus { transform: none; outline: 3px solid #fef69f; outline-offset: 2px; }
.epdl-bicolor { overflow-x: clip; }

/* ==========================================================================
   Aviso emergente de envío recibido
   ========================================================================== */

.epdl-modal { position: fixed; inset: 0; z-index: 99999; display: grid; place-items: center; padding: 16px; background: rgba(43, 38, 34, .62); }
.epdl-modal[hidden] { display: none; }
.epdl-modal__caja { position: relative; width: min(100%, 520px); background: #fef69f; color: var(--tinta); padding: 40px clamp(22px, 5vw, 44px) 32px; border-radius: 26px; text-align: center; box-shadow: 0 24px 60px rgba(0, 0, 0, .35); animation: epdl-modal-in .45s var(--ease-back); }
.epdl-modal__caja:focus { outline: none; }
.epdl-modal__ico { width: 76px; height: 76px; margin: 0 auto 16px !important; border-radius: 50%; background: var(--tinta); color: #a0c49a; display: grid; place-items: center; }
.epdl-modal__ico svg { width: 44px; height: 44px; }
.epdl-modal__t { font-family: var(--f-condensed) !important; font-size: clamp(40px, 7vw, 56px) !important; line-height: 1 !important; margin-bottom: 12px !important; }
.epdl-modal__m { font-size: 20px; font-weight: 500; line-height: 1.4; margin-bottom: 26px !important; }
.epdl-modal__ok { min-height: 52px; padding: 10px 30px; border: 0; border-radius: 30px; background: var(--tinta); color: #fef69f; font: 700 21px var(--f-text); cursor: pointer; transition: transform .25s var(--ease-back); }
.epdl-modal__ok:hover { transform: scale(1.05); }
.epdl-modal__ok:focus-visible { outline: 3px solid var(--tinta); outline-offset: 3px; box-shadow: 0 0 0 6px #fff; }
.epdl-sin-scroll { overflow: hidden; }
@keyframes epdl-modal-in { from { opacity: 0; transform: translateY(24px) scale(.94); } }

/* ==========================================================================
   Botón «Subir»
   ========================================================================== */

.epdl-arriba { position: fixed; z-index: 9960; right: max(16px, env(safe-area-inset-right, 0px)); bottom: calc(18px + env(safe-area-inset-bottom, 0px)); display: inline-flex; flex-direction: column; align-items: center; justify-content: center; gap: 0; width: 64px; height: 64px; border-radius: 50%; background: var(--tinta); color: #fef69f; text-decoration: none; font: 700 14px/1 var(--f-text); text-transform: uppercase; letter-spacing: .04em; box-shadow: 0 8px 20px rgba(0, 0, 0, .22); transition: transform .3s var(--ease-back), opacity .3s; }
.epdl-arriba svg { width: 24px; height: 24px; }
.epdl-arriba[hidden] { display: inline-flex; opacity: 0; pointer-events: none; transform: translateY(16px); visibility: hidden; }
.epdl-arriba:hover { transform: translateY(-3px); color: #fff; }
.epdl-arriba:focus-visible { outline: 3px solid #fff; outline-offset: 3px; box-shadow: 0 0 0 6px var(--tinta); }
body:has(.epdl-rp__mini:not([hidden])) .epdl-arriba { bottom: calc(96px + env(safe-area-inset-bottom, 0px)); }
@media (min-width: 768px) { body:has(.epdl-rp__mini:not([hidden])) .epdl-arriba { bottom: 120px; right: 24px; } }
@media (prefers-reduced-motion: reduce) {
	.epdl-modal__caja { animation: none; }
	.epdl-arriba { transition: none; }
}
