/* BW3D — header v2.
 *
 * Markup: novamira-sandbox/bw3d-header-v2.php. Comportamiento: assets/js/header-v2.js.
 *
 * 1) .bw3d-sbar  — barra oscura de escritorio que baja solo con scroll (logo del
 *    footer + categorias con mega menu + favoritos/cuenta/carrito).
 * 2) .bw3d-burger + .bw3d-oc — hamburguesa y off-canvas navegable de tablet/mobile.
 *
 * Mismo lenguaje que la barra negra y el mega menu: #242021, Space Grotesk en
 * mayusculas, hover rojo de marca, fillet de 24px.
 */

/* ---------------------------------------------------------------------------
 * 1) Barra de scroll (escritorio)
 * ------------------------------------------------------------------------- */

.bw3d-sbar {
	display: none;
}

@media (min-width: 1025px) {

	/* El sticky viejo (bw3d.js fijaba el header entero) queda apagado en escritorio:
	   header-v2.js le saca la clase; esto es el respaldo por si corre antes. */
	header[data-elementor-type="header"].bw-sticky-active {
		position: relative;
		animation: none;
	}

	.bw3d-sbar {
		display: block;
		position: fixed;
		top: 0;
		left: 0;
		right: 0;
		z-index: 1001;
		/* Mismo inset lateral que el header en top 0 (padding del contenedor raiz 1a2b3c4d; header-v2.js lo sincroniza). */
		padding: 0 var(--bw3d-sbar-gutter, 32px);
		pointer-events: none;
		transform: translateY(-110%);
		transition: transform 0.45s var(--eo, cubic-bezier(.23, 1, .32, 1));
	}

	.admin-bar .bw3d-sbar {
		top: 32px;
	}

	.bw3d-sbar.is-visible {
		transform: translateY(0);
		pointer-events: auto;
	}

	.bw3d-sbar__inner {
		display: flex;
		align-items: center;
		gap: 32px;
		max-width: none;
		min-height: 64px;
		margin: 0 auto;
		padding: 0 20px 0 24px;
		background: var(--ink, #242021);
		color: #fff;
		border-radius: 0 0 24px 24px;
		box-shadow: 0 14px 34px -14px rgba(0, 0, 0, 0.45);
	}

	.bw3d-sbar__logo {
		flex: 0 0 auto;
		display: flex;
		align-items: center;
	}

	.bw3d-sbar__logo img {
		display: block;
		width: 40px;
		height: 40px;
		object-fit: contain;
		transition: transform 0.3s var(--eo, ease);
	}

	.bw3d-sbar__logo:hover img {
		transform: rotate(-8deg) scale(1.05);
	}

	.bw3d-sbar__nav {
		flex: 1 1 auto;
		display: flex;
		justify-content: center;
		min-width: 0;
	}

	.bw3d-sbar__menu {
		display: flex;
		align-items: center;
		flex-wrap: nowrap;
		gap: 8px;
		margin: 0;
		padding: 0;
		list-style: none;
	}

	.bw3d-sbar__menu > li {
		position: relative;
		margin: 0;
		padding: 0;
	}

	/* Separador fino entre items, como la barra negra del header. */
	.bw3d-sbar__menu > li + li::before {
		content: "";
		position: absolute;
		left: -4px;
		top: 50%;
		width: 1px;
		height: 16px;
		background: rgba(255, 255, 255, 0.16);
		transform: translateY(-50%);
	}

	.bw3d-sbar .bw3d-sbar__menu > li > a {
		display: flex;
		align-items: center;
		padding: 22px 18px;
		color: #fff;
		font-family: var(--font-display, "Space Grotesk", sans-serif);
		font-size: 13px;
		font-weight: 500;
		letter-spacing: 0.04em;
		line-height: 1;
		text-transform: uppercase;
		text-decoration: none;
		white-space: nowrap;
		transition: color 0.2s ease;
	}

	.bw3d-sbar .bw3d-sbar__menu > li > a:hover,
	.bw3d-sbar .bw3d-sbar__menu > li:focus-within > a,
	.bw3d-sbar .bw3d-sbar__menu > li.current-menu-item > a,
	.bw3d-sbar .bw3d-sbar__menu > li.current-menu-ancestor > a {
		color: var(--red, #F14F44);
	}

	/* Flechita de los items con mega menu (igual que en la barra negra). */
	.bw3d-sbar__menu > li.bw3d-has-mega > a::after {
		content: "";
		display: inline-block;
		width: 6px;
		height: 6px;
		margin-left: 8px;
		border-right: 1.5px solid currentColor;
		border-bottom: 1.5px solid currentColor;
		opacity: 0.7;
		transform: translateY(-2px) rotate(45deg);
		transition: transform 0.2s ease;
	}

	.bw3d-sbar__menu > li.bw3d-has-mega:hover > a::after,
	.bw3d-sbar__menu > li.bw3d-has-mega:focus-within > a::after {
		transform: translateY(1px) rotate(225deg);
	}

	/* El panel del mega menu sale de mega-menu.css; aca solo se pega a la barra. */
	.bw3d-sbar .bw3d-mega {
		top: 100%;
		background: #2C2829;
	}

	.bw3d-sbar .bw3d-mega ul.bw3d-mega__list {
		margin: 0;
		padding: 0;
		list-style: none;
	}

	.bw3d-sbar__actions {
		flex: 0 0 auto;
		display: flex;
		align-items: center;
		gap: 4px;
	}

	.bw3d-sbar a.bw3d-sbar__icon {
		position: relative;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 42px;
		height: 42px;
		border-radius: var(--r-pill, 999px);
		color: #fff;
		transition: background-color 0.2s ease, color 0.2s ease;
	}

	.bw3d-sbar a.bw3d-sbar__icon:hover,
	.bw3d-sbar a.bw3d-sbar__icon:focus-visible {
		background: rgba(255, 255, 255, 0.08);
		color: var(--red, #F14F44);
	}

	.bw3d-sbar__icon .bw3d-ico {
		width: 21px;
		height: 21px;
	}

	.bw3d-sbar__qty {
		position: absolute;
		top: 4px;
		right: 2px;
		min-width: 17px;
		height: 17px;
		padding: 0 4px;
		border-radius: 999px;
		background: var(--red, #F14F44);
		color: #fff;
		font: 600 10px/17px var(--font-body, "Inter", sans-serif);
		text-align: center;
	}

	.bw3d-sbar__qty[hidden] {
		display: none;
	}
}

/* ---------------------------------------------------------------------------
 * 2) Hamburguesa + off-canvas (tablet y mobile)
 * ------------------------------------------------------------------------- */

.bw3d-burger {
	display: none;
}

@media (max-width: 1024px) {

	/* Sale la hamburguesa vieja (menu superior) y la barra negra de categorias:
	   todo eso vive ahora dentro del off-canvas. */
	.elementor-location-header .elementor-element-b1c2d3e4,
	.elementor-location-header .elementor-element-20242ff {
		display: none !important;
	}

	.elementor-location-header .elementor-element-8b9c0d1e {
		align-items: center;
		gap: 10px;
	}

	.elementor-location-header button.bw3d-burger, .elementor-location-header button.bw3d-burger:focus {
		display: inline-flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		gap: 5px;
		flex: 0 0 44px;
		width: 44px;
		height: 44px;
		margin: 0;
		padding: 0;
		border: 0;
		border-radius: 14px;
		background: #F0F2F4;
		color: var(--ink, #242021);
		cursor: pointer;
		-webkit-tap-highlight-color: transparent;
		transition: background-color 0.2s ease;
	}

	.elementor-location-header button.bw3d-burger:hover,
	.elementor-location-header button.bw3d-burger:focus-visible {
		background: #E4E7EA;
	}

	.bw3d-burger span {
		display: block;
		width: 20px;
		height: 2px;
		border-radius: 2px;
		background: currentColor;
	}

	.bw3d-burger span:nth-child(2) {
		width: 14px;
		margin-right: 6px;
	}
}

.bw3d-oc[hidden] {
	display: none;
}

.bw3d-oc {
	position: fixed;
	inset: 0;
	z-index: 100000;
	font-family: var(--font-display, "Space Grotesk", sans-serif);
}

.bw3d-oc__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(20, 17, 18, 0.55);
	opacity: 0;
	transition: opacity 0.35s ease;
}

.bw3d-oc__drawer {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	display: flex;
	flex-direction: column;
	width: min(400px, 88vw);
	background: var(--ink, #242021);
	color: #fff;
	border-radius: 0 24px 24px 0;
	box-shadow: 24px 0 60px -20px rgba(0, 0, 0, 0.5);
	transform: translateX(-102%);
	transition: transform 0.45s var(--edrawer, cubic-bezier(.32, .72, 0, 1));
	overflow: hidden;
}

.bw3d-oc.is-open .bw3d-oc__backdrop {
	opacity: 1;
}

.bw3d-oc.is-open .bw3d-oc__drawer {
	transform: translateX(0);
}

.bw3d-oc__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 18px 16px 14px 22px;
	border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.bw3d-oc a.bw3d-oc__logo {
	display: flex;
	align-items: center;
	gap: 10px;
	color: #fff;
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	text-decoration: none;
}

.bw3d-oc__logo img {
	display: block;
	width: 34px;
	height: 34px;
	object-fit: contain;
}

.bw3d-oc button.bw3d-oc__close {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 0;
	border-radius: 14px;
	background: rgba(255, 255, 255, 0.06);
	color: #fff;
	cursor: pointer;
}

.bw3d-oc button.bw3d-oc__close:hover,
.bw3d-oc button.bw3d-oc__close:focus-visible {
	background: rgba(255, 255, 255, 0.12);
	color: var(--red, #F14F44);
}

/* Viewport con paneles apilados: el actual al centro, los siguientes esperando a
   la derecha y los anteriores corridos a la izquierda. */
.bw3d-oc__viewport {
	position: relative;
	flex: 1 1 auto;
	overflow: hidden;
}

.bw3d-oc__panel {
	position: absolute;
	inset: 0;
	padding: 8px 0 32px;
	overflow-y: auto;
	overscroll-behavior: contain;
	-webkit-overflow-scrolling: touch;
	background: var(--ink, #242021);
	transform: translateX(100%);
	transition: transform 0.4s var(--edrawer, cubic-bezier(.32, .72, 0, 1)), opacity 0.4s ease;
}

.bw3d-oc__panel[hidden] {
	display: block;
	visibility: hidden;
}

.bw3d-oc__panel.is-current {
	transform: translateX(0);
	visibility: visible;
}

.bw3d-oc__panel.is-past {
	transform: translateX(-28%);
	opacity: 0;
}

.bw3d-oc__label {
	margin: 18px 22px 6px;
	color: var(--red, #F14F44);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.bw3d-oc__title {
	margin: 4px 22px 8px;
	color: #fff;
	font-size: 24px;
	font-weight: 600;
	line-height: 1.15;
}

.bw3d-oc__list,
.bw3d-oc__secondary {
	margin: 0;
	padding: 0;
	list-style: none;
}

.bw3d-oc .bw3d-oc__item, .bw3d-oc .bw3d-oc__item:focus {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	width: 100%;
	min-height: 52px;
	margin: 0;
	padding: 12px 22px;
	border: 0;
	border-bottom: 1px solid rgba(255, 255, 255, 0.06);
	background: none;
	color: #fff;
	font-family: inherit;
	font-size: 15px;
	font-weight: 500;
	line-height: 1.3;
	text-align: left;
	text-decoration: none;
	cursor: pointer;
	-webkit-tap-highlight-color: transparent;
	transition: background-color 0.15s ease, color 0.15s ease;
}

.bw3d-oc__item--top {
	min-height: 58px;
	font-size: 15px;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.bw3d-oc__item .bw3d-ico {
	flex: 0 0 auto;
	width: 18px;
	height: 18px;
	opacity: 0.55;
}

.bw3d-oc .bw3d-oc__item:hover,
.bw3d-oc .bw3d-oc__item:focus-visible,
.bw3d-oc .bw3d-oc__item:active {
	background: #332F30;
	color: var(--red, #F14F44);
}

.bw3d-oc__item:hover .bw3d-ico {
	opacity: 1;
}

.bw3d-oc__bar {
	padding: 6px 12px 0;
}

.bw3d-oc button.bw3d-oc__back, .bw3d-oc button.bw3d-oc__back:focus {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	min-height: 44px;
	padding: 0 12px 0 6px;
	border: 0;
	border-radius: 12px;
	background: none;
	color: rgba(255, 255, 255, 0.7);
	font-family: inherit;
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	cursor: pointer;
}

.bw3d-oc__back .bw3d-ico {
	width: 18px;
	height: 18px;
}

.bw3d-oc button.bw3d-oc__back:hover,
.bw3d-oc button.bw3d-oc__back:focus-visible {
	color: var(--red, #F14F44);
	background: rgba(255, 255, 255, 0.05);
}

.bw3d-oc a.bw3d-oc__all {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin: 6px 16px 10px;
	padding: 14px 16px;
	border-radius: 14px;
	background: var(--red, #F14F44);
	color: #fff;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	text-decoration: none;
}

.bw3d-oc a.bw3d-oc__all:hover,
.bw3d-oc a.bw3d-oc__all:focus-visible {
	background: #D9443A;
	color: #fff;
}

.bw3d-oc__secondary {
	margin-top: 22px;
	padding: 14px 0 0;
	border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.bw3d-oc a.bw3d-oc__sub {
	display: block;
	padding: 10px 22px;
	color: rgba(255, 255, 255, 0.7);
	font-family: var(--font-body, "Inter", sans-serif);
	font-size: 14px;
	text-decoration: none;
}

.bw3d-oc a.bw3d-oc__sub:hover,
.bw3d-oc a.bw3d-oc__sub:focus-visible {
	color: var(--red, #F14F44);
}

html.bw3d-oc-lock,
html.bw3d-oc-lock body {
	overflow: hidden;
}

@media (min-width: 1025px) {
	.bw3d-oc {
		display: none !important;
	}
}

@media (prefers-reduced-motion: reduce) {
	.bw3d-sbar,
	.bw3d-oc__backdrop,
	.bw3d-oc__drawer,
	.bw3d-oc__panel {
		transition: none;
	}
}
