/* ==========================================================================
   Bloque: Menú modal
   Panel negro que entra desde la derecha; ítems gigantes que pasan a
   contorno en hover y en la página actual.
   ========================================================================== */

html.ko-modal-open {
	overflow: hidden;
}

.ko-modal {
	position: fixed;
	inset: 0;
	z-index: 1000;
	visibility: hidden;
	pointer-events: none;
	transition: visibility 0s linear 0.6s;
}

.ko-modal.is-open {
	visibility: visible;
	pointer-events: auto;
	transition-delay: 0s;
}

.ko-modal__cover {
	position: absolute;
	inset: 0;
	background: rgb(0 0 0 / 0.3);
	opacity: 0;
	transition: opacity 0.4s ease;
	cursor: pointer;
}

.ko-modal.is-open .ko-modal__cover {
	opacity: 1;
}

.ko-modal__panel {
	position: absolute;
	inset: 0 0 0 auto;
	width: min(100%, var(--ko-modal-w, 633px));
	overflow-y: auto;
	overscroll-behavior: contain;
	background: var(--ko-modal-bg, #000);
	color: var(--ko-modal-text, #fffaee);
	transform: translateX(100%);
	transition: transform 0.6s var(--ko-ease);
}

.ko-modal.is-open .ko-modal__panel {
	transform: none;
}

.ko-modal__inner {
	display: flex;
	flex-direction: column;
	min-height: 100%;
	padding: 104px clamp(24px, 13%, 88px) 40px;
}

/* Cerrar ----------------------------------------------------------------- */

.ko-modal__close {
	--ko-close-x: var(--ko-modal-bg, #000);
	position: absolute;
	top: 28px;
	right: clamp(16px, 5%, 60px);
	display: inline-flex;
	align-items: center;
	gap: 12px;
	min-height: 44px;
	padding-inline: 8px;
}

.ko-modal__close-label {
	font-family: var(--ko-font-display);
	font-weight: 700;
	font-size: 15px;
	text-transform: uppercase;
}

.ko-modal__close .ko-icon {
	transition: transform 0.5s var(--ko-ease);
}

.ko-modal__close:hover .ko-icon,
.ko-modal__close:focus-visible .ko-icon {
	transform: rotate(90deg);
}

/* Ítems ------------------------------------------------------------------ */

.ko-modal__nav {
	display: flex;
	flex: 1;
	flex-direction: column;
	justify-content: center;
}

.ko-modal__menu {
	list-style: none;
	margin: 0;
	padding: 0;
}

.ko-modal__menu > li {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	margin-bottom: clamp(12px, 2vh, 28px);
	opacity: 0;
	transform: translateY(32px);
	transition: opacity 0.3s ease, transform 0.3s ease;
}

.ko-modal.is-open .ko-modal__menu > li {
	opacity: 1;
	transform: none;
	transition:
		opacity 0.7s var(--ko-ease-out) calc(0.25s + var(--ko-i, 0) * 0.07s),
		transform 0.7s var(--ko-ease-out) calc(0.25s + var(--ko-i, 0) * 0.07s);
}

.ko-modal__sub {
	margin-bottom: 4px;
	font-size: 13px;
	line-height: 1.4;
	color: var(--ko-modal-sub, #9a9a9a);
}

.ko-modal__menu a {
	display: inline-block;
	font-family: var(--ko-font-display);
	font-weight: 700;
	font-size: clamp(36px, min(11vw, 7.6vh), 85px);
	line-height: 1;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--ko-modal-text, #fffaee);
	-webkit-text-stroke: 1px transparent;
	transition: color 0.2s var(--ko-ease-out), -webkit-text-stroke-color 0.2s var(--ko-ease-out);
}

/* Contorno: hover, foco y página actual. */
.ko-modal__menu a:hover,
.ko-modal__menu a:focus-visible,
.ko-modal__menu .current-menu-item > a,
.ko-modal__menu .current-menu-ancestor > a {
	color: transparent;
	-webkit-text-stroke-color: var(--ko-modal-stroke, #a8a8a8);
}

.ko-modal__menu a:focus-visible {
	outline-color: var(--ko-modal-text, #fffaee);
	outline-offset: 6px;
}

/* Sin soporte de contorno: se atenúa en vez de desaparecer. */
@supports not (-webkit-text-stroke: 1px black) {
	.ko-modal__menu a:hover,
	.ko-modal__menu a:focus-visible,
	.ko-modal__menu .current-menu-item > a {
		color: var(--ko-modal-stroke, #a8a8a8);
	}
}

.ko-modal .ko-menu-empty {
	color: var(--ko-modal-sub, #9a9a9a);
}

/* Pie: redes y texto ----------------------------------------------------- */

.ko-modal__footer {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 16px 32px;
	margin-top: 40px;
}

.ko-modal__socials {
	display: flex;
	gap: 4px;
	list-style: none;
	margin: 0 0 0 -14px;
	padding: 0;
}

.ko-modal__socials a {
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	transition: opacity 0.2s ease;
}

.ko-modal__socials a:hover {
	opacity: 0.6;
}

.ko-modal__footer-text {
	margin: 0;
	font-size: 13px;
	color: var(--ko-modal-sub, #9a9a9a);
}

@media (prefers-reduced-motion: reduce) {
	.ko-modal,
	.ko-modal *,
	.ko-modal.is-open .ko-modal__menu > li {
		transition-duration: 0.01ms !important;
		transition-delay: 0s !important;
	}

	.ko-modal__menu > li {
		transform: none;
	}
}
