/*
 * NEXA — Header Global V2
 *
 * WPCode:
 * Tipo: CSS Snippet
 * Auto Insert: Site Wide Header
 *
 * Logo construido con CSS, basado en el logo del footer.
 */

.nexa-v3-header,
.nexa-v3-header * {
	box-sizing: border-box;
}

.nexa-v3-header {
	--nexa-header-blue: #1F67D2;
	--nexa-header-blue-soft: #75B9FF;
	--nexa-header-blue-deep: #1858B8;
	--nexa-header-navy: #0C2742;
	--nexa-header-riptide: #89D9C8;
	--nexa-header-riptide-dark: #3B9F91;

	position: sticky;
	top: 0;
	z-index: 900;
	width: 100%;
	padding: 12px 18px 0;
	pointer-events: none;
	font-family: "DM Sans", sans-serif;
	transition: padding 220ms ease, filter 220ms ease;
}

body.admin-bar .nexa-v3-header {
	top: 32px;
}

.nexa-v3-header__shell {
	position: relative;
	width: min(100%, 1180px);
	margin: 0 auto;
	pointer-events: auto;
	transition: width 260ms ease, transform 260ms ease;
}

.nexa-v3-header__inner {
	position: relative;
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	align-items: center;
	gap: 22px;
	min-height: 76px;
	padding: 12px 16px 12px 18px;
	overflow: hidden;
	border: 1px solid rgba(137, 217, 200, 0.22);
	border-radius: 24px;
	background:
		radial-gradient(circle at 8% 50%, rgba(31,103,210,0.22) 0%, transparent 34%),
		radial-gradient(circle at 96% 0%, rgba(137,217,200,0.15) 0%, transparent 36%),
		linear-gradient(135deg, rgba(12,39,66,0.98) 0%, rgba(9,32,55,0.98) 46%, rgba(10,42,63,0.96) 100%);
	box-shadow:
		0 18px 44px rgba(12, 39, 66, 0.18),
		inset 0 1px 0 rgba(255, 255, 255, 0.08);
	transition:
		min-height 260ms ease,
		padding 260ms ease,
		border-radius 260ms ease,
		background 260ms ease,
		box-shadow 260ms ease,
		backdrop-filter 260ms ease;
}

.nexa-v3-header__inner::before {
	content: "";
	position: absolute;
	left: -76px;
	top: 50%;
	width: 230px;
	height: 230px;
	border-radius: 50%;
	border: 1px solid rgba(137, 217, 200, 0.13);
	box-shadow:
		0 0 0 28px rgba(31, 103, 210, 0.040),
		0 0 0 58px rgba(137, 217, 200, 0.022);
	transform: translateY(-50%);
	pointer-events: none;
}

.nexa-v3-header__inner::after {
	content: "";
	position: absolute;
	right: -110px;
	top: -130px;
	width: 270px;
	height: 270px;
	border-radius: 50%;
	border: 1px solid rgba(137, 217, 200, 0.10);
	background: radial-gradient(circle, rgba(137,217,200,0.09) 0%, transparent 68%);
	pointer-events: none;
}

.nexa-v3-header.is-compact {
	padding-top: 10px;
	filter: drop-shadow(0 18px 34px rgba(12, 39, 66, 0.13));
}

.nexa-v3-header.is-compact .nexa-v3-header__shell {
	width: min(100%, 920px);
}

.nexa-v3-header.is-compact .nexa-v3-header__inner {
	min-height: 60px;
	padding: 8px 12px 8px 14px;
	border-radius: 999px;
	background:
		radial-gradient(circle at 10% 50%, rgba(31,103,210,0.18) 0%, transparent 32%),
		linear-gradient(135deg, rgba(12,39,66,0.92) 0%, rgba(9,32,55,0.88) 52%, rgba(10,42,63,0.86) 100%);
	backdrop-filter: blur(16px);
	-webkit-backdrop-filter: blur(16px);
	box-shadow:
		0 18px 44px rgba(12, 39, 66, 0.20),
		inset 0 1px 0 rgba(255, 255, 255, 0.10);
}

/* Logo tipo footer */
.nexa-v3-header__brand {
	position: relative;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	gap: 12px;
	min-width: 0;
	color: #FFFFFF;
	text-decoration: none !important;
}

.nexa-v3-header__brand-mark {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	flex: 0 0 42px;
	border-radius: 50%;
	background:
		radial-gradient(circle at 50% 50%, rgba(137,217,200,0.13) 0%, transparent 54%);
	transition: width 260ms ease, height 260ms ease, flex-basis 260ms ease;
}

.nexa-v3-header.is-compact .nexa-v3-header__brand-mark {
	width: 34px;
	height: 34px;
	flex-basis: 34px;
}

.nexa-v3-header__brand-ring {
	position: absolute;
	inset: 6px;
	border: 1px solid rgba(137, 217, 200, 0.38);
	border-radius: 50%;
	box-shadow:
		0 0 0 7px rgba(31, 103, 210, 0.055),
		0 0 24px rgba(137, 217, 200, 0.12),
		inset 0 0 18px rgba(137, 217, 200, 0.10);
}

.nexa-v3-header__brand-ring::before {
	content: "";
	position: absolute;
	inset: 5px;
	border: 1px solid rgba(31, 103, 210, 0.26);
	border-radius: 50%;
}

.nexa-v3-header__brand-node {
	position: absolute;
	left: 50%;
	top: 50%;
	width: 7px;
	height: 7px;
	margin: -3.5px 0 0 -3.5px;
	border-radius: 50%;
	transform-origin: 0 0;
}

.nexa-v3-header__brand-node--blue {
	background: #4B91F1;
	box-shadow:
		0 0 0 5px rgba(75, 145, 241, 0.14),
		0 0 18px rgba(75, 145, 241, 0.78);
	animation: nexaHeaderOrbitBlue 5.8s linear infinite;
}

.nexa-v3-header__brand-node--green {
	background: #89D9C8;
	box-shadow:
		0 0 0 5px rgba(137, 217, 200, 0.13),
		0 0 18px rgba(137, 217, 200, 0.72);
	animation: nexaHeaderOrbitGreen 7.2s linear infinite;
}

.nexa-v3-header__brand-spark {
	position: absolute;
	width: 3px;
	height: 3px;
	border-radius: 50%;
	background: rgba(137, 217, 200, 0.78);
	box-shadow: 0 0 12px rgba(137, 217, 200, 0.72);
}

.nexa-v3-header__brand-spark--one {
	left: 10px;
	top: 11px;
	animation: nexaHeaderSparkOne 3.8s ease-in-out infinite;
}

.nexa-v3-header__brand-spark--two {
	right: 9px;
	bottom: 10px;
	background: rgba(75, 145, 241, 0.82);
	box-shadow: 0 0 12px rgba(75, 145, 241, 0.72);
	animation: nexaHeaderSparkTwo 4.2s ease-in-out infinite;
}

.nexa-v3-header__brand-text {
	display: grid;
	gap: 2px;
	min-width: 0;
	line-height: 1;
}

.nexa-v3-header__brand-name {
	display: block;
	color: #75B9FF;
	font-size: 22px;
	font-weight: 900;
	letter-spacing: 3.2px;
	line-height: 0.95;
	text-shadow:
		0 0 16px rgba(75, 145, 241, 0.24),
		0 1px 0 rgba(255, 255, 255, 0.08);
	transition: font-size 260ms ease, letter-spacing 260ms ease;
}

.nexa-v3-header__brand-sub {
	display: block;
	color: #89D9C8;
	font-size: 9px;
	font-weight: 900;
	letter-spacing: 3px;
	line-height: 1;
	transition: font-size 260ms ease, letter-spacing 260ms ease;
}

.nexa-v3-header.is-compact .nexa-v3-header__brand {
	gap: 10px;
}

.nexa-v3-header.is-compact .nexa-v3-header__brand-name {
	font-size: 18px;
	letter-spacing: 2.7px;
}

.nexa-v3-header.is-compact .nexa-v3-header__brand-sub {
	font-size: 7.5px;
	letter-spacing: 2.4px;
}

@keyframes nexaHeaderOrbitBlue {
	0% {
		transform: rotate(0deg) translateX(19px);
	}
	100% {
		transform: rotate(360deg) translateX(19px);
	}
}

@keyframes nexaHeaderOrbitGreen {
	0% {
		transform: rotate(210deg) translateX(16px);
	}
	100% {
		transform: rotate(-150deg) translateX(16px);
	}
}

@keyframes nexaHeaderSparkOne {
	0%, 100% {
		opacity: 0.28;
		transform: translate3d(0, 0, 0) scale(0.86);
	}
	50% {
		opacity: 1;
		transform: translate3d(2px, -1px, 0) scale(1.08);
	}
}

@keyframes nexaHeaderSparkTwo {
	0%, 100% {
		opacity: 0.35;
		transform: translate3d(0, 0, 0) scale(0.86);
	}
	50% {
		opacity: 1;
		transform: translate3d(-2px, 1px, 0) scale(1.08);
	}
}

/* Nav */
.nexa-v3-header__nav {
	position: relative;
	z-index: 2;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	min-width: 0;
}

.nexa-v3-header__nav a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 38px;
	padding: 0 13px;
	border: 1px solid transparent;
	border-radius: 999px;
	color: rgba(255, 255, 255, 0.76) !important;
	font-size: 12.5px;
	font-weight: 760;
	line-height: 1;
	letter-spacing: 0.08px;
	text-decoration: none !important;
	transition:
		color 160ms ease,
		background 160ms ease,
		border-color 160ms ease;
}

.nexa-v3-header__nav a:hover,
.nexa-v3-header__nav a[aria-current="page"] {
	color: #FFFFFF !important;
	background: rgba(255, 255, 255, 0.065);
	border-color: rgba(137, 217, 200, 0.18);
}

.nexa-v3-header.is-compact .nexa-v3-header__nav a {
	min-height: 34px;
	padding-right: 11px;
	padding-left: 11px;
	font-size: 12px;
}

/* Actions */
.nexa-v3-header__actions {
	position: relative;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	justify-content: flex-end;
	gap: 9px;
}

.nexa-v3-header__cart {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 42px;
	padding: 0 12px;
	border: 1px solid rgba(137, 217, 200, 0.22);
	border-radius: 999px;
	color: #FFFFFF !important;
	background: rgba(255, 255, 255, 0.055);
	text-decoration: none !important;
	transition:
		background 160ms ease,
		border-color 160ms ease,
		transform 160ms ease;
}

.nexa-v3-header__cart span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 18px;
	height: 18px;
}

.nexa-v3-header__cart svg {
	display: block;
	width: 18px;
	height: 18px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.9;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.nexa-v3-header__cart em {
	font-style: normal;
	font-size: 12px;
	font-weight: 820;
	line-height: 1;
}

.nexa-v3-header__cart:hover {
	background: rgba(255, 255, 255, 0.085);
	border-color: rgba(137, 217, 200, 0.34);
	transform: translateY(-1px);
}

.nexa-v3-header__cta {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 0 18px;
	overflow: hidden;
	border: 1px solid rgba(137, 217, 200, 0.34);
	border-radius: 999px;
	color: #0C2742 !important;
	background: linear-gradient(135deg, #B8F0E7 0%, #89D9C8 100%);
	box-shadow:
		0 14px 28px rgba(137, 217, 200, 0.18),
		inset 0 1px 0 rgba(255, 255, 255, 0.42);
	font-size: 12px;
	font-weight: 860;
	line-height: 1;
	text-decoration: none !important;
	transition:
		transform 160ms ease,
		box-shadow 160ms ease;
}

.nexa-v3-header__cta::after {
	content: "";
	position: absolute;
	top: 0;
	left: -60%;
	width: 38%;
	height: 100%;
	background: linear-gradient(90deg, transparent 0%, rgba(255,255,255,0.35) 50%, transparent 100%);
	transform: skewX(-18deg);
	transition: left 520ms ease;
	pointer-events: none;
}

.nexa-v3-header__cta:hover {
	transform: translateY(-1px);
	box-shadow:
		0 18px 34px rgba(137, 217, 200, 0.22),
		inset 0 1px 0 rgba(255, 255, 255, 0.48);
}

.nexa-v3-header__cta:hover::after {
	left: 122%;
}

.nexa-v3-header.is-compact .nexa-v3-header__cart,
.nexa-v3-header.is-compact .nexa-v3-header__cta {
	min-height: 38px;
}

/* Mobile toggle */
.nexa-v3-header__toggle {
	display: none;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	border: 1px solid rgba(137, 217, 200, 0.24);
	border-radius: 999px;
	background: rgba(255,255,255,0.06);
	color: #FFFFFF;
	cursor: pointer;
}

.nexa-v3-header__toggle span {
	position: absolute;
	display: block;
	width: 17px;
	height: 2px;
	border-radius: 999px;
	background: currentColor;
	transition:
		transform 180ms ease,
		opacity 180ms ease;
}

.nexa-v3-header__toggle span:nth-child(1) {
	transform: translateY(-6px);
}

.nexa-v3-header__toggle span:nth-child(3) {
	transform: translateY(6px);
}

.nexa-v3-header.is-open .nexa-v3-header__toggle span:nth-child(1) {
	transform: rotate(45deg);
}

.nexa-v3-header.is-open .nexa-v3-header__toggle span:nth-child(2) {
	opacity: 0;
}

.nexa-v3-header.is-open .nexa-v3-header__toggle span:nth-child(3) {
	transform: rotate(-45deg);
}

/* Mobile panel */
.nexa-v3-header__mobile {
	position: absolute;
	top: calc(100% + 10px);
	right: 0;
	left: 0;
	display: grid;
	grid-template-columns: 1fr;
	gap: 6px;
	max-height: 0;
	padding: 0 14px;
	overflow: hidden;
	border: 1px solid transparent;
	border-radius: 24px;
	background:
		linear-gradient(135deg, rgba(12,39,66,0.98) 0%, rgba(9,32,55,0.96) 100%);
	box-shadow: 0 24px 54px rgba(12, 39, 66, 0.18);
	opacity: 0;
	transform: translateY(-6px);
	transition:
		max-height 230ms ease,
		padding 230ms ease,
		opacity 180ms ease,
		transform 180ms ease,
		border-color 180ms ease;
}

.nexa-v3-header.is-open .nexa-v3-header__mobile {
	max-height: 430px;
	padding: 14px;
	border-color: rgba(137, 217, 200, 0.22);
	opacity: 1;
	transform: translateY(0);
}

.nexa-v3-header__mobile a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: 46px;
	padding: 0 14px;
	border: 1px solid rgba(255,255,255,0.06);
	border-radius: 15px;
	color: #FFFFFF !important;
	background: rgba(255,255,255,0.035);
	font-size: 13px;
	font-weight: 800;
	text-decoration: none !important;
}

.nexa-v3-header__mobile a::after {
	content: "&#x2197;";
	color: #89D9C8;
	font-size: 12px;
	font-weight: 900;
}

@media (max-width: 1023px) {
	.nexa-v3-header {
		padding: 10px 12px 0;
	}

	.nexa-v3-header__inner {
		grid-template-columns: auto 1fr auto;
		min-height: 66px;
		padding: 10px 10px 10px 12px;
		border-radius: 22px;
	}

	.nexa-v3-header.is-compact .nexa-v3-header__inner {
		min-height: 58px;
		border-radius: 999px;
	}

	.nexa-v3-header__brand-mark {
		width: 36px;
		height: 36px;
		flex-basis: 36px;
	}

	.nexa-v3-header__brand-name {
		font-size: 19px;
		letter-spacing: 2.8px;
	}

	.nexa-v3-header__brand-sub {
		font-size: 7.8px;
		letter-spacing: 2.4px;
	}

	.nexa-v3-header.is-compact .nexa-v3-header__brand-name {
		font-size: 17px;
		letter-spacing: 2.5px;
	}

	.nexa-v3-header.is-compact .nexa-v3-header__brand-sub {
		font-size: 7px;
		letter-spacing: 2px;
	}

	.nexa-v3-header__nav {
		display: none;
	}

	.nexa-v3-header__cart em,
	.nexa-v3-header__cta {
		display: none;
	}

	.nexa-v3-header__cart {
		width: 42px;
		min-height: 42px;
		padding: 0;
	}

	.nexa-v3-header__toggle {
		position: relative;
		display: inline-flex;
	}
}

@media (max-width: 782px) {
	body.admin-bar .nexa-v3-header {
		top: 46px;
	}
}

@media (max-width: 390px) {
	.nexa-v3-header {
		padding-right: 10px;
		padding-left: 10px;
	}

	.nexa-v3-header__brand {
		gap: 8px;
	}

	.nexa-v3-header__brand-mark {
		width: 32px;
		height: 32px;
		flex-basis: 32px;
	}

	.nexa-v3-header__brand-name {
		font-size: 16px;
		letter-spacing: 2.2px;
	}

	.nexa-v3-header__brand-sub {
		font-size: 6.8px;
		letter-spacing: 1.9px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.nexa-v3-header,
	.nexa-v3-header *,
	.nexa-v3-header *::before,
	.nexa-v3-header *::after {
		animation: none !important;
		transition: none !important;
	}
}

/* =========================================================
   NEXA — HEADER LOGO / ORBES COMO FOOTER V3
   Ajuste:
   - los orbes grandes azul/verde son los que orbitan
   - los puntitos pequeños solo hacen movimiento sutil
   - el aro se mantiene estable y premium
   ========================================================= */

.nexa-v3-header__brand-mark {
	width: 44px !important;
	height: 44px !important;
	flex: 0 0 44px !important;
	overflow: visible !important;
	background:
		radial-gradient(circle at 50% 50%, rgba(137,217,200,0.12) 0%, transparent 58%) !important;
}

.nexa-v3-header.is-compact .nexa-v3-header__brand-mark {
	width: 36px !important;
	height: 36px !important;
	flex-basis: 36px !important;
}

.nexa-v3-header__brand-ring {
	inset: 7px !important;
	border-color: rgba(137, 217, 200, 0.36) !important;
	box-shadow:
		0 0 0 7px rgba(31, 103, 210, 0.050),
		0 0 22px rgba(137, 217, 200, 0.12),
		inset 0 0 16px rgba(137, 217, 200, 0.10) !important;
}

.nexa-v3-header__brand-ring::before {
	inset: 6px !important;
	border-color: rgba(31, 103, 210, 0.24) !important;
}

/* Orbes grandes: estos sí orbitan */
.nexa-v3-header__brand-node {
	z-index: 3 !important;
	left: 50% !important;
	top: 50% !important;
	margin: 0 !important;
	border-radius: 999px !important;
	transform-origin: 0 0 !important;
	will-change: transform;
}

.nexa-v3-header__brand-node--blue {
	width: 10px !important;
	height: 10px !important;
	background:
		radial-gradient(circle at 32% 28%, #CFE8FF 0%, #75B9FF 26%, #1F67D2 72%, #1858B8 100%) !important;
	box-shadow:
		0 0 0 5px rgba(31, 103, 210, 0.16),
		0 0 18px rgba(75, 145, 241, 0.82),
		0 8px 14px rgba(12, 39, 66, 0.16) !important;
	animation: nexaHeaderBigBlueOrbit 6.2s linear infinite !important;
}

.nexa-v3-header__brand-node--green {
	width: 9px !important;
	height: 9px !important;
	background:
		radial-gradient(circle at 32% 28%, #E9FFFB 0%, #A9EFE5 28%, #89D9C8 68%, #3B9F91 100%) !important;
	box-shadow:
		0 0 0 5px rgba(137, 217, 200, 0.14),
		0 0 18px rgba(137, 217, 200, 0.78),
		0 8px 14px rgba(12, 39, 66, 0.14) !important;
	animation: nexaHeaderBigGreenOrbit 7.4s linear infinite !important;
}

/* Puntitos pequeños: solo flotan un poco, no orbitan */
.nexa-v3-header__brand-spark {
	z-index: 2 !important;
	width: 3.5px !important;
	height: 3.5px !important;
	opacity: 0.72 !important;
	border-radius: 999px !important;
	transform-origin: center center !important;
}

.nexa-v3-header__brand-spark--one {
	left: 12px !important;
	top: 12px !important;
	background: rgba(137, 217, 200, 0.82) !important;
	box-shadow: 0 0 10px rgba(137, 217, 200, 0.62) !important;
	animation: nexaHeaderSmallFloatOne 3.8s ease-in-out infinite !important;
}

.nexa-v3-header__brand-spark--two {
	right: 11px !important;
	bottom: 11px !important;
	background: rgba(75, 145, 241, 0.82) !important;
	box-shadow: 0 0 10px rgba(75, 145, 241, 0.62) !important;
	animation: nexaHeaderSmallFloatTwo 4.4s ease-in-out infinite !important;
}

@keyframes nexaHeaderBigBlueOrbit {
	0% {
		transform: rotate(18deg) translateX(20px) translate(-50%, -50%);
	}
	100% {
		transform: rotate(378deg) translateX(20px) translate(-50%, -50%);
	}
}

@keyframes nexaHeaderBigGreenOrbit {
	0% {
		transform: rotate(206deg) translateX(17px) translate(-50%, -50%);
	}
	100% {
		transform: rotate(-154deg) translateX(17px) translate(-50%, -50%);
	}
}

@keyframes nexaHeaderSmallFloatOne {
	0%, 100% {
		transform: translate3d(0, 0, 0) scale(0.92);
		opacity: 0.54;
	}
	50% {
		transform: translate3d(1.6px, -1.2px, 0) scale(1.08);
		opacity: 0.96;
	}
}

@keyframes nexaHeaderSmallFloatTwo {
	0%, 100% {
		transform: translate3d(0, 0, 0) scale(0.90);
		opacity: 0.50;
	}
	50% {
		transform: translate3d(-1.5px, 1.2px, 0) scale(1.06);
		opacity: 0.92;
	}
}

.nexa-v3-header.is-compact .nexa-v3-header__brand-node--blue {
	width: 8.5px !important;
	height: 8.5px !important;
	animation-name: nexaHeaderBigBlueOrbitCompact !important;
}

.nexa-v3-header.is-compact .nexa-v3-header__brand-node--green {
	width: 8px !important;
	height: 8px !important;
	animation-name: nexaHeaderBigGreenOrbitCompact !important;
}

@keyframes nexaHeaderBigBlueOrbitCompact {
	0% {
		transform: rotate(18deg) translateX(17px) translate(-50%, -50%);
	}
	100% {
		transform: rotate(378deg) translateX(17px) translate(-50%, -50%);
	}
}

@keyframes nexaHeaderBigGreenOrbitCompact {
	0% {
		transform: rotate(206deg) translateX(14.5px) translate(-50%, -50%);
	}
	100% {
		transform: rotate(-154deg) translateX(14.5px) translate(-50%, -50%);
	}
}

@media (max-width: 390px) {
	.nexa-v3-header__brand-mark {
		width: 34px !important;
		height: 34px !important;
		flex-basis: 34px !important;
	}

	.nexa-v3-header__brand-node--blue {
		width: 8.5px !important;
		height: 8.5px !important;
		animation-name: nexaHeaderBigBlueOrbitCompact !important;
	}

	.nexa-v3-header__brand-node--green {
		width: 8px !important;
		height: 8px !important;
		animation-name: nexaHeaderBigGreenOrbitCompact !important;
	}
}

/* =========================================================
   NEXA — HEADER LOGO / AROS GRANDES + ORBES SEPARADOS V4
   Ajuste:
   - se quitan los puntitos pequeños
   - aro externo e interno más grandes
   - orbe verde orbita entre el aro pequeño y el aro grande
   - orbe azul orbita por fuera del aro grande
   - ambos orbitan en sentidos contrarios sin chocar
   ========================================================= */

/* Marco del isotipo más amplio para que los orbes respiren */
.nexa-v3-header__brand-mark {
	width: 48px !important;
	height: 48px !important;
	flex: 0 0 48px !important;
	overflow: visible !important;
	background:
		radial-gradient(circle at 50% 50%, rgba(137,217,200,0.105) 0%, transparent 62%) !important;
}

.nexa-v3-header.is-compact .nexa-v3-header__brand-mark {
	width: 40px !important;
	height: 40px !important;
	flex-basis: 40px !important;
}

/* Quitamos puntitos pequeños */
.nexa-v3-header__brand-spark,
.nexa-v3-header__brand-spark--one,
.nexa-v3-header__brand-spark--two {
	display: none !important;
	animation: none !important;
}

/* Aros más grandes y limpios */
.nexa-v3-header__brand-ring {
	inset: 5px !important;
	border: 1px solid rgba(137, 217, 200, 0.34) !important;
	border-radius: 50% !important;
	box-shadow:
		0 0 0 8px rgba(31, 103, 210, 0.040),
		0 0 0 15px rgba(137, 217, 200, 0.016),
		0 0 24px rgba(137, 217, 200, 0.12),
		inset 0 0 18px rgba(137, 217, 200, 0.085) !important;
}

.nexa-v3-header__brand-ring::before {
	content: "" !important;
	position: absolute !important;
	inset: 8px !important;
	border: 1px solid rgba(31, 103, 210, 0.26) !important;
	border-radius: 50% !important;
	box-shadow: inset 0 0 12px rgba(31, 103, 210, 0.08) !important;
}

/* Orbes grandes separados por carriles */
.nexa-v3-header__brand-node {
	z-index: 4 !important;
	left: 50% !important;
	top: 50% !important;
	margin: 0 !important;
	border-radius: 999px !important;
	transform-origin: 0 0 !important;
	will-change: transform;
}

/* Azul: por fuera del aro grande */
.nexa-v3-header__brand-node--blue {
	width: 10.5px !important;
	height: 10.5px !important;
	background:
		radial-gradient(circle at 32% 28%, #D8EDFF 0%, #7EC0FF 26%, #2E7BE5 70%, #1858B8 100%) !important;
	box-shadow:
		0 0 0 5px rgba(31, 103, 210, 0.16),
		0 0 20px rgba(75, 145, 241, 0.85),
		0 9px 16px rgba(12, 39, 66, 0.16) !important;
	animation: nexaHeaderBlueOuterOrbit 7.2s linear infinite !important;
}

/* Verde: entre aro interno y externo */
.nexa-v3-header__brand-node--green {
	width: 9px !important;
	height: 9px !important;
	background:
		radial-gradient(circle at 32% 28%, #EAFFFB 0%, #B4F2EA 28%, #89D9C8 68%, #3B9F91 100%) !important;
	box-shadow:
		0 0 0 5px rgba(137, 217, 200, 0.14),
		0 0 18px rgba(137, 217, 200, 0.78),
		0 8px 14px rgba(12, 39, 66, 0.14) !important;
	animation: nexaHeaderGreenMiddleOrbit 5.9s linear infinite !important;
}

/* Sentidos contrarios y radios distintos para que no choquen */
@keyframes nexaHeaderBlueOuterOrbit {
	0% {
		transform: rotate(20deg) translateX(26px) translate(-50%, -50%);
	}
	100% {
		transform: rotate(380deg) translateX(26px) translate(-50%, -50%);
	}
}

@keyframes nexaHeaderGreenMiddleOrbit {
	0% {
		transform: rotate(215deg) translateX(17px) translate(-50%, -50%);
	}
	100% {
		transform: rotate(-145deg) translateX(17px) translate(-50%, -50%);
	}
}

/* Compacto: conserva separación, pero reduce radios */
.nexa-v3-header.is-compact .nexa-v3-header__brand-ring {
	inset: 5px !important;
	box-shadow:
		0 0 0 7px rgba(31, 103, 210, 0.038),
		0 0 0 13px rgba(137, 217, 200, 0.014),
		0 0 20px rgba(137, 217, 200, 0.10),
		inset 0 0 15px rgba(137, 217, 200, 0.075) !important;
}

.nexa-v3-header.is-compact .nexa-v3-header__brand-ring::before {
	inset: 7px !important;
}

.nexa-v3-header.is-compact .nexa-v3-header__brand-node--blue {
	width: 9px !important;
	height: 9px !important;
	animation-name: nexaHeaderBlueOuterOrbitCompact !important;
}

.nexa-v3-header.is-compact .nexa-v3-header__brand-node--green {
	width: 8px !important;
	height: 8px !important;
	animation-name: nexaHeaderGreenMiddleOrbitCompact !important;
}

@keyframes nexaHeaderBlueOuterOrbitCompact {
	0% {
		transform: rotate(20deg) translateX(21px) translate(-50%, -50%);
	}
	100% {
		transform: rotate(380deg) translateX(21px) translate(-50%, -50%);
	}
}

@keyframes nexaHeaderGreenMiddleOrbitCompact {
	0% {
		transform: rotate(215deg) translateX(14px) translate(-50%, -50%);
	}
	100% {
		transform: rotate(-145deg) translateX(14px) translate(-50%, -50%);
	}
}

@media (max-width: 390px) {
	.nexa-v3-header__brand-mark {
		width: 38px !important;
		height: 38px !important;
		flex-basis: 38px !important;
	}

	.nexa-v3-header__brand-ring {
		inset: 5px !important;
	}

	.nexa-v3-header__brand-ring::before {
		inset: 7px !important;
	}

	.nexa-v3-header__brand-node--blue {
		width: 9px !important;
		height: 9px !important;
		animation-name: nexaHeaderBlueOuterOrbitMobile !important;
	}

	.nexa-v3-header__brand-node--green {
		width: 8px !important;
		height: 8px !important;
		animation-name: nexaHeaderGreenMiddleOrbitMobile !important;
	}
}

@keyframes nexaHeaderBlueOuterOrbitMobile {
	0% {
		transform: rotate(20deg) translateX(20px) translate(-50%, -50%);
	}
	100% {
		transform: rotate(380deg) translateX(20px) translate(-50%, -50%);
	}
}

@keyframes nexaHeaderGreenMiddleOrbitMobile {
	0% {
		transform: rotate(215deg) translateX(13px) translate(-50%, -50%);
	}
	100% {
		transform: rotate(-145deg) translateX(13px) translate(-50%, -50%);
	}
}

/* =========================================================
   NEXA — HEADER LOGO / AJUSTE FINO ORBES V5
   Ajuste:
   - verde queda dentro, entre el aro azul interno y el aro verde externo
   - azul se acerca más al aro verde externo
   - ambos siguen en carriles separados para no chocar
   ========================================================= */

/* Verde: carril medio entre aro interno azul y aro externo verde */
.nexa-v3-header__brand-node--green {
	animation-name: nexaHeaderGreenBetweenRings !important;
}

/* Azul: por fuera, pero más cerca del aro verde externo */
.nexa-v3-header__brand-node--blue {
	animation-name: nexaHeaderBlueCloserOuterRing !important;
}

@keyframes nexaHeaderGreenBetweenRings {
	0% {
		transform: rotate(215deg) translateX(15.2px) translate(-50%, -50%);
	}
	100% {
		transform: rotate(-145deg) translateX(15.2px) translate(-50%, -50%);
	}
}

@keyframes nexaHeaderBlueCloserOuterRing {
	0% {
		transform: rotate(20deg) translateX(23px) translate(-50%, -50%);
	}
	100% {
		transform: rotate(380deg) translateX(23px) translate(-50%, -50%);
	}
}

/* Compacto */
.nexa-v3-header.is-compact .nexa-v3-header__brand-node--green {
	animation-name: nexaHeaderGreenBetweenRingsCompact !important;
}

.nexa-v3-header.is-compact .nexa-v3-header__brand-node--blue {
	animation-name: nexaHeaderBlueCloserOuterRingCompact !important;
}

@keyframes nexaHeaderGreenBetweenRingsCompact {
	0% {
		transform: rotate(215deg) translateX(12.7px) translate(-50%, -50%);
	}
	100% {
		transform: rotate(-145deg) translateX(12.7px) translate(-50%, -50%);
	}
}

@keyframes nexaHeaderBlueCloserOuterRingCompact {
	0% {
		transform: rotate(20deg) translateX(18.8px) translate(-50%, -50%);
	}
	100% {
		transform: rotate(380deg) translateX(18.8px) translate(-50%, -50%);
	}
}

/* Mobile chico */
@media (max-width: 390px) {
	.nexa-v3-header__brand-node--green {
		animation-name: nexaHeaderGreenBetweenRingsMobile !important;
	}

	.nexa-v3-header__brand-node--blue {
		animation-name: nexaHeaderBlueCloserOuterRingMobile !important;
	}
}

@keyframes nexaHeaderGreenBetweenRingsMobile {
	0% {
		transform: rotate(215deg) translateX(12.2px) translate(-50%, -50%);
	}
	100% {
		transform: rotate(-145deg) translateX(12.2px) translate(-50%, -50%);
	}
}

@keyframes nexaHeaderBlueCloserOuterRingMobile {
	0% {
		transform: rotate(20deg) translateX(18px) translate(-50%, -50%);
	}
	100% {
		transform: rotate(380deg) translateX(18px) translate(-50%, -50%);
	}
}

/* =========================================================
   NEXA — HEADER LOGO / HALO 100% CIRCULAR V6
   Ajuste:
   - elimina la sensación de caja/cuadrado alrededor del isotipo
   - el fondo del mark queda transparente
   - el halo se dibuja con pseudo-elementos circulares
   - mantiene los orbes en sus carriles actuales
   ========================================================= */

.nexa-v3-header__brand-mark {
	position: relative !important;
	isolation: isolate !important;
	border-radius: 999px !important;
	background: transparent !important;
	box-shadow: none !important;
	clip-path: none !important;
	overflow: visible !important;
}

/* Halo circular suave, no cuadrado */
.nexa-v3-header__brand-mark::before {
	content: "" !important;
	position: absolute !important;
	z-index: 0 !important;
	left: 50% !important;
	top: 50% !important;
	width: 48px !important;
	height: 48px !important;
	border-radius: 50% !important;
	background:
		radial-gradient(
			circle,
			rgba(137, 217, 200, 0.105) 0%,
			rgba(137, 217, 200, 0.055) 32%,
			rgba(31, 103, 210, 0.026) 55%,
			transparent 72%
		) !important;
	transform: translate(-50%, -50%) !important;
	pointer-events: none !important;
}

/* Segundo halo exterior muy tenue y perfectamente circular */
.nexa-v3-header__brand-mark::after {
	content: "" !important;
	position: absolute !important;
	z-index: 0 !important;
	left: 50% !important;
	top: 50% !important;
	width: 58px !important;
	height: 58px !important;
	border-radius: 50% !important;
	background:
		radial-gradient(
			circle,
			transparent 0%,
			transparent 48%,
			rgba(31, 103, 210, 0.035) 54%,
			transparent 72%
		) !important;
	transform: translate(-50%, -50%) !important;
	pointer-events: none !important;
}

/* Asegura que los aros y orbes queden por encima del halo circular */
.nexa-v3-header__brand-ring,
.nexa-v3-header__brand-node {
	position: absolute !important;
	z-index: 2 !important;
}

/* Redondeo total para evitar cualquier borde visual recto */
.nexa-v3-header__brand-ring,
.nexa-v3-header__brand-ring::before {
	border-radius: 999px !important;
}

/* Ajuste compacto del halo circular */
.nexa-v3-header.is-compact .nexa-v3-header__brand-mark::before {
	width: 40px !important;
	height: 40px !important;
}

.nexa-v3-header.is-compact .nexa-v3-header__brand-mark::after {
	width: 49px !important;
	height: 49px !important;
}

@media (max-width: 390px) {
	.nexa-v3-header__brand-mark::before {
		width: 38px !important;
		height: 38px !important;
	}

	.nexa-v3-header__brand-mark::after {
		width: 46px !important;
		height: 46px !important;
	}
}

/* =========================================================
   NEXA — HEADER LOGO / ORBES LIGERAMENTE MÁS PEQUEÑOS V7
   Ajuste:
   - reduce apenas el tamaño de los orbes azul y verde
   - mantiene los mismos carriles y radios de órbita
   ========================================================= */

.nexa-v3-header__brand-node--blue {
	width: 9.2px !important;
	height: 9.2px !important;
	box-shadow:
		0 0 0 4px rgba(31, 103, 210, 0.145),
		0 0 17px rgba(75, 145, 241, 0.78),
		0 8px 14px rgba(12, 39, 66, 0.15) !important;
}

.nexa-v3-header__brand-node--green {
	width: 8px !important;
	height: 8px !important;
	box-shadow:
		0 0 0 4px rgba(137, 217, 200, 0.13),
		0 0 16px rgba(137, 217, 200, 0.72),
		0 7px 13px rgba(12, 39, 66, 0.13) !important;
}

.nexa-v3-header.is-compact .nexa-v3-header__brand-node--blue {
	width: 8px !important;
	height: 8px !important;
}

.nexa-v3-header.is-compact .nexa-v3-header__brand-node--green {
	width: 7.2px !important;
	height: 7.2px !important;
}

@media (max-width: 390px) {
	.nexa-v3-header__brand-node--blue {
		width: 8px !important;
		height: 8px !important;
	}

	.nexa-v3-header__brand-node--green {
		width: 7.2px !important;
		height: 7.2px !important;
	}
}
/* =========================================================
   NEXA — HEADER ESTABLE V14
   - Altura exterior fija para evitar saltos de scroll
   - Transición suave por estado
   - Histéresis controlada desde JavaScript
   - Desktop y móvil
   ========================================================= */

.nexa-v3-header {
	height: 82px !important;
	min-height: 82px !important;
	padding: 0 !important;
	overflow: visible !important;
	transition: filter 220ms ease !important;
}

.nexa-v3-header.is-compact {
	padding: 0 !important;
	filter: drop-shadow(0 18px 34px rgba(12, 39, 66, 0.13)) !important;
}

/*
 * El shell queda fuera del cálculo vertical interno.
 * El header exterior siempre conserva la misma altura.
 */
.nexa-v3-header__shell,
.nexa-v3-header.is-compact .nexa-v3-header__shell,
.nexa-v3-header:not(.is-compact) .nexa-v3-header__shell {
	position: absolute !important;
	top: 0;
	left: 50%;
	width: 100% !important;
	max-width: 100% !important;
	margin: 0 !important;
	transform: translate3d(-50%, 0, 0) !important;
	pointer-events: auto;
	transition:
		top 280ms cubic-bezier(0.22, 1, 0.36, 1),
		width 280ms cubic-bezier(0.22, 1, 0.36, 1),
		max-width 280ms cubic-bezier(0.22, 1, 0.36, 1) !important;
	will-change: top, width;
}

.nexa-v3-header.is-compact .nexa-v3-header__shell {
	top: 10px;
	width: min(calc(100% - 36px), 920px) !important;
	max-width: 920px !important;
}

/* Estado extendido */
.nexa-v3-header__inner,
.nexa-v3-header:not(.is-compact) .nexa-v3-header__inner {
	width: 100% !important;
	min-height: 82px !important;
	padding:
		13px
		max(22px, calc((100vw - 1180px) / 2 + 18px)) !important;
	border-right-width: 0 !important;
	border-left-width: 0 !important;
	border-radius: 0 !important;
	transform: translateZ(0);
	transition:
		min-height 280ms cubic-bezier(0.22, 1, 0.36, 1),
		padding 280ms cubic-bezier(0.22, 1, 0.36, 1),
		border-radius 280ms cubic-bezier(0.22, 1, 0.36, 1),
		background 220ms ease,
		box-shadow 220ms ease,
		backdrop-filter 220ms ease !important;
	will-change: auto !important;
}

/* Estado compacto */
.nexa-v3-header.is-compact .nexa-v3-header__inner {
	width: 100% !important;
	min-height: 60px !important;
	padding: 8px 12px 8px 14px !important;
	border-right-width: 1px !important;
	border-left-width: 1px !important;
	border-radius: 999px !important;
}

/* Logo */
.nexa-v3-header__brand,
.nexa-v3-header:not(.is-compact) .nexa-v3-header__brand {
	gap: 12px !important;
	transition: gap 260ms cubic-bezier(0.22, 1, 0.36, 1) !important;
}

.nexa-v3-header.is-compact .nexa-v3-header__brand {
	gap: 10px !important;
}

.nexa-v3-header__brand-mark,
.nexa-v3-header:not(.is-compact) .nexa-v3-header__brand-mark {
	width: 48px !important;
	height: 48px !important;
	flex-basis: 48px !important;
	transition:
		width 260ms cubic-bezier(0.22, 1, 0.36, 1),
		height 260ms cubic-bezier(0.22, 1, 0.36, 1),
		flex-basis 260ms cubic-bezier(0.22, 1, 0.36, 1) !important;
}

.nexa-v3-header.is-compact .nexa-v3-header__brand-mark {
	width: 40px !important;
	height: 40px !important;
	flex-basis: 40px !important;
}

.nexa-v3-header__brand-name,
.nexa-v3-header:not(.is-compact) .nexa-v3-header__brand-name {
	font-size: 22px !important;
	letter-spacing: 3.2px !important;
	transition:
		font-size 260ms cubic-bezier(0.22, 1, 0.36, 1),
		letter-spacing 260ms cubic-bezier(0.22, 1, 0.36, 1) !important;
}

.nexa-v3-header.is-compact .nexa-v3-header__brand-name {
	font-size: 18px !important;
	letter-spacing: 2.7px !important;
}

.nexa-v3-header__brand-sub,
.nexa-v3-header:not(.is-compact) .nexa-v3-header__brand-sub {
	font-size: 9px !important;
	letter-spacing: 3px !important;
	transition:
		font-size 260ms cubic-bezier(0.22, 1, 0.36, 1),
		letter-spacing 260ms cubic-bezier(0.22, 1, 0.36, 1) !important;
}

.nexa-v3-header.is-compact .nexa-v3-header__brand-sub {
	font-size: 7.5px !important;
	letter-spacing: 2.4px !important;
}

/* Controles */
.nexa-v3-header__nav a {
	transition:
		min-height 240ms cubic-bezier(0.22, 1, 0.36, 1),
		padding 240ms cubic-bezier(0.22, 1, 0.36, 1),
		font-size 240ms cubic-bezier(0.22, 1, 0.36, 1),
		color 160ms ease,
		background 160ms ease,
		border-color 160ms ease !important;
}

.nexa-v3-header__cart,
.nexa-v3-header__cta {
	transition:
		min-height 240ms cubic-bezier(0.22, 1, 0.36, 1),
		background 160ms ease,
		border-color 160ms ease,
		transform 160ms ease,
		box-shadow 160ms ease !important;
}

/* Corrige la flecha del menú móvil */
.nexa-v3-header__mobile a::after {
	content: "\2197" !important;
	color: #89D9C8 !important;
	font-family: "DM Sans", Arial, sans-serif !important;
	font-size: 12px !important;
	font-weight: 900 !important;
	line-height: 1 !important;
}

.nexa-v3-header__mobile a::before {
	content: none !important;
	display: none !important;
}

/* Tablet y móvil */
@media (max-width: 1023px) {
	.nexa-v3-header {
		height: 72px !important;
		min-height: 72px !important;
	}

	.nexa-v3-header__shell,
	.nexa-v3-header:not(.is-compact) .nexa-v3-header__shell {
		top: 0;
		width: 100% !important;
		max-width: 100% !important;
	}

	.nexa-v3-header.is-compact .nexa-v3-header__shell {
		top: 10px;
		width: calc(100% - 52px) !important;
		max-width: calc(100% - 52px) !important;
	}

	.nexa-v3-header__inner,
	.nexa-v3-header:not(.is-compact) .nexa-v3-header__inner {
		min-height: 72px !important;
		padding: 10px 12px !important;
		border-radius: 0 !important;
	}

	.nexa-v3-header.is-compact .nexa-v3-header__inner {
		min-height: 58px !important;
		padding: 8px 10px 8px 12px !important;
		border-radius: 999px !important;
	}

	.nexa-v3-header__brand,
	.nexa-v3-header:not(.is-compact) .nexa-v3-header__brand {
		gap: 12px !important;
	}

	.nexa-v3-header.is-compact .nexa-v3-header__brand {
		gap: 10px !important;
	}

	.nexa-v3-header__brand-mark,
	.nexa-v3-header:not(.is-compact) .nexa-v3-header__brand-mark {
		width: 42px !important;
		height: 42px !important;
		flex-basis: 42px !important;
	}

	.nexa-v3-header.is-compact .nexa-v3-header__brand-mark {
		width: 36px !important;
		height: 36px !important;
		flex-basis: 36px !important;
	}

	.nexa-v3-header__brand-name,
	.nexa-v3-header:not(.is-compact) .nexa-v3-header__brand-name {
		font-size: 19px !important;
		letter-spacing: 2.8px !important;
	}

	.nexa-v3-header.is-compact .nexa-v3-header__brand-name {
		font-size: 17px !important;
		letter-spacing: 2.5px !important;
	}

	.nexa-v3-header__brand-sub,
	.nexa-v3-header:not(.is-compact) .nexa-v3-header__brand-sub {
		font-size: 7.8px !important;
		letter-spacing: 2.4px !important;
	}

	.nexa-v3-header.is-compact .nexa-v3-header__brand-sub {
		font-size: 7px !important;
		letter-spacing: 2px !important;
	}
}

/* Móvil pequeño */
@media (max-width: 390px) {
	.nexa-v3-header.is-compact .nexa-v3-header__shell {
		width: calc(100% - 42px) !important;
		max-width: calc(100% - 42px) !important;
	}

	.nexa-v3-header__brand,
	.nexa-v3-header:not(.is-compact) .nexa-v3-header__brand {
		gap: 8px !important;
	}

	.nexa-v3-header__brand-mark,
	.nexa-v3-header:not(.is-compact) .nexa-v3-header__brand-mark {
		width: 38px !important;
		height: 38px !important;
		flex-basis: 38px !important;
	}

	.nexa-v3-header.is-compact .nexa-v3-header__brand-mark {
		width: 34px !important;
		height: 34px !important;
		flex-basis: 34px !important;
	}

	.nexa-v3-header__brand-name,
	.nexa-v3-header:not(.is-compact) .nexa-v3-header__brand-name {
		font-size: 16px !important;
		letter-spacing: 2.2px !important;
	}

	.nexa-v3-header.is-compact .nexa-v3-header__brand-name {
		font-size: 16px !important;
		letter-spacing: 2.1px !important;
	}

	.nexa-v3-header__brand-sub,
	.nexa-v3-header:not(.is-compact) .nexa-v3-header__brand-sub {
		font-size: 6.8px !important;
		letter-spacing: 1.9px !important;
	}

	.nexa-v3-header.is-compact .nexa-v3-header__brand-sub {
		font-size: 6.8px !important;
		letter-spacing: 1.8px !important;
	}
}

@media (prefers-reduced-motion: reduce) {
	.nexa-v3-header__shell,
	.nexa-v3-header__inner,
	.nexa-v3-header__brand,
	.nexa-v3-header__brand-mark,
	.nexa-v3-header__brand-name,
	.nexa-v3-header__brand-sub {
		transition: none !important;
	}
}
