/* Menú con imágenes (spec §6.2). La Task 7 agrega el panel móvil en este archivo. */
.nm-nav {
	position: relative;
	z-index: 40;
}

.nm-nav-item {
	display: flex;
	align-items: center;
}

.nm-nav-toggle {
	display: grid;
	place-items: center;
	width: 28px;
	height: 28px;
	margin-left: -8px;
	padding: 0;
	border: 0;
	border-radius: var(--nm-radius);
	background: transparent;
	color: var(--nm-white);
	cursor: pointer;
}

.nm-nav-caret {
	font-size: 12px;
	transition: transform 0.15s ease;
}

.nm-nav-toggle[aria-expanded="true"] .nm-nav-caret {
	transform: rotate(180deg);
}

.nm-mega {
	position: absolute;
	top: 100%;
	right: 0;
	left: 0;
	border-top: 3px solid var(--nm-yellow);
	background: var(--nm-white);
	box-shadow: 0 24px 40px -18px rgba(27, 29, 104, 0.35);
	color: var(--nm-ink);
}

.nm-mega[hidden] {
	display: none;
}

.nm-mega-grid {
	display: grid;
	grid-template-columns: 220px minmax(0, 1fr);
	gap: 28px;
	padding-block: 24px 26px;
}

.nm-mega-grid--aside {
	grid-template-columns: 220px minmax(0, 1fr) 250px;
}

.nm-mega-heading {
	margin: 0 0 10px;
	color: var(--nm-navy);
	font: 800 var(--nm-fs-18) / 1.1 var(--nm-font-display);
	text-transform: uppercase;
}

.nm-mega-list ul {
	display: grid;
	gap: 2px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.nm-mega-list li a {
	display: flex;
	justify-content: space-between;
	gap: 8px;
	padding: 5px 8px;
	border-radius: var(--nm-radius);
	color: var(--nm-ink);
	font-weight: 600;
	text-decoration: none;
}

.nm-mega-list li a:hover {
	background: var(--nm-soft);
	color: var(--nm-navy);
}

.nm-mega-list small {
	color: var(--nm-muted);
	font-weight: 400;
	font-variant-numeric: tabular-nums;
}

.nm-mega-all {
	display: inline-block;
	margin-top: 8px;
	color: var(--nm-red);
	font: 700 var(--nm-fs-13) / 1.2 var(--nm-font-display);
	letter-spacing: 0.03em;
	text-decoration: none;
	text-transform: uppercase;
}

.nm-mega-tiles {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	align-content: start;
	gap: 14px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.nm-mega-tile {
	display: grid;
	gap: 8px;
	color: var(--nm-ink);
	text-decoration: none;
}

.nm-mega-tile-img {
	display: grid;
	place-items: center;
	aspect-ratio: 1;
	overflow: hidden;
	border-radius: var(--nm-radius-banner);
	background: var(--nm-soft);
}

.nm-mega-tile-img img {
	width: 86%;
	height: 86%;
	border-radius: var(--nm-radius);
	background: var(--nm-white);
	object-fit: contain;
}

.nm-mega-tile-name {
	font: 700 var(--nm-fs-16) / 1.2 var(--nm-font-display);
}

.nm-mega-tile:hover .nm-mega-tile-name {
	color: var(--nm-navy);
	text-decoration: underline;
}

.nm-mega-aside {
	position: relative;
	display: grid;
	align-content: start;
	gap: 10px;
	overflow: hidden;
	padding: 18px;
	border-radius: var(--nm-radius-banner);
	background: var(--nm-red);
	color: var(--nm-white);
}

.nm-mega-aside::after {
	content: "";
	position: absolute;
	right: -40px;
	bottom: -40px;
	width: 170px;
	height: 170px;
	background: rgba(255, 255, 255, 0.14);
	clip-path: polygon(50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%);
}

.nm-mega-aside-kicker {
	margin: 0;
	font: 600 11px / 1.2 var(--nm-font-display);
	letter-spacing: 0.12em;
	text-transform: uppercase;
	opacity: 0.9;
}

.nm-mega-aside-title {
	margin: 0;
	font: 800 var(--nm-fs-24) / 0.98 var(--nm-font-display);
	text-transform: uppercase;
}

.nm-mega-aside-text {
	margin: 0;
	font-size: var(--nm-fs-13);
}

.nm-mega-aside-cta {
	position: relative;
	z-index: 1;
	justify-self: start;
	padding: 6px 16px;
	border-radius: var(--nm-radius-pill);
	background: var(--nm-white);
	color: var(--nm-red);
	font: 700 var(--nm-fs-12) / 1 var(--nm-font-display);
	text-decoration: none;
	text-transform: uppercase;
}

.nm-mega-aside-cta:focus-visible {
	outline-color: var(--nm-yellow);
}

/* Panel de menú móvil */
.nm-menu-btn {
	display: none;
}

.nm-menu-btn-bars,
.nm-menu-btn-bars::before,
.nm-menu-btn-bars::after {
	display: block;
	width: 20px;
	height: 2px;
	border-radius: 1px;
	background: currentColor;
}

.nm-menu-btn-bars {
	position: relative;
}

.nm-menu-btn-bars::before,
.nm-menu-btn-bars::after {
	content: "";
	position: absolute;
	left: 0;
}

.nm-menu-btn-bars::before {
	top: -6px;
}

.nm-menu-btn-bars::after {
	top: 6px;
}

.nm-drawer {
	position: fixed;
	inset: 0;
	z-index: 100;
}

.nm-drawer[hidden],
.nm-drawer-level[hidden],
.nm-menu-btn[hidden] {
	display: none;
}

.nm-drawer-overlay {
	position: absolute;
	inset: 0;
	background: rgba(21, 22, 50, 0.45);
}

.nm-drawer-panel {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	display: flex;
	flex-direction: column;
	width: min(340px, 88vw);
	overflow: hidden;
	background: var(--nm-white);
	box-shadow: 20px 0 40px -20px rgba(0, 0, 0, 0.4);
}

.nm-drawer-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 12px 12px 12px 16px;
	border-bottom: 1px solid var(--nm-line);
	color: var(--nm-navy);
	font: 800 var(--nm-fs-18) / 1 var(--nm-font-display);
	text-transform: uppercase;
}

.nm-drawer-close {
	width: 40px;
	height: 40px;
	border: 0;
	background: transparent;
	color: var(--nm-ink);
	font-size: 28px;
	line-height: 1;
	cursor: pointer;
}

.nm-drawer-level {
	flex: 1;
	overflow-y: auto;
	padding: 8px 0 24px;
}

.nm-drawer-level ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.nm-drawer-level li {
	display: flex;
	border-bottom: 1px solid var(--nm-soft);
}

.nm-drawer-level li > a {
	flex: 1;
	padding: 13px 16px;
	color: var(--nm-ink);
	font-weight: 700;
	text-decoration: none;
}

.nm-drawer-next {
	width: 52px;
	border: 0;
	border-left: 1px solid var(--nm-soft);
	background: transparent;
	color: var(--nm-navy);
	font-size: 22px;
	cursor: pointer;
}

.nm-drawer-back {
	margin: 4px 16px 6px;
	padding: 6px 0;
	border: 0;
	background: transparent;
	color: var(--nm-red);
	font: 700 var(--nm-fs-13) / 1 var(--nm-font-display);
	text-transform: uppercase;
	cursor: pointer;
}

.nm-drawer-title {
	margin: 0 16px 8px;
	color: var(--nm-navy);
	font: 800 var(--nm-fs-18) / 1.1 var(--nm-font-display);
	text-transform: uppercase;
}

/* Bloque "Tu compra" del panel móvil: separado de las categorías con fondo suave. */
.nm-drawer-utils-title {
	margin: 0;
	padding: 20px 16px 8px;
	border-top: 8px solid var(--nm-soft);
	font-size: var(--nm-fs-14);
	letter-spacing: 0.04em;
}

.nm-drawer-utils {
	background: var(--nm-soft);
}

.nm-drawer-utils li {
	border-bottom-color: var(--nm-white);
}

.nm-drawer-utils li > a {
	font-weight: 600;
}

body.nm-no-scroll {
	overflow: hidden;
}

@media (max-width: 820px) {
	.nm-nav-toggle,
	.nm-mega {
		display: none;
	}

	.nm-menu-btn {
		display: grid;
		place-items: center;
		width: 44px;
		height: 44px;
		margin-left: -8px;
		padding: 0;
		border: 0;
		background: transparent;
		color: var(--nm-navy);
		cursor: pointer;
	}
}

/* Imagen de estudio curada: ocupa todo el recuadro, sin la tarjeta blanca interior. */
.nm-mega-tile-img--estudio img {
	width: 100%;
	height: 100%;
	border-radius: 0;
	background: transparent;
	object-fit: cover;
}

/* Botón de la campaña en el cajón móvil: misma píldora amarilla que en la barra. */
.nm-drawer-level li.nm-drawer-item--campaign > a {
	margin-block: 4px;
	border-radius: 999px;
	background: var(--nm-campaign-accent);
	color: #0b0b12;
	font-weight: 800;
	text-transform: uppercase;
}
