/**
 * NandaStream — Global Site CSS
 * Version: 3.1.0 — UNIFICACIÓN VISUAL TOTAL
 *
 * Este archivo aplica la paleta D2 Electric Indigo Equilibrada al SITIO COMPLETO,
 * sobrescribiendo el tema (Hello Elementor) y los plugins de UI sin tocar sus
 * archivos. Toda la edición vive dentro de /wp-content/mu-plugins/.
 *
 * COBERTURA:
 *   1. Tokens globales (custom properties)
 *   2. Body + reset global
 *   3. Tipografía global (h1-h6, p, a)
 *   4. WooCommerce (shop, archive, single product, account, cart, checkout)
 *   5. Elementor widgets (heading, button, text-editor, icon-box, image)
 *   6. Footer del tema
 *   7. Sidebar y widgets  
 *   8. Páginas dinámicas (404, archive, single, search)
 *   9. Página /codigos/ (Nanda Membership Engine)
 *  10. Catch-all defensivo (estilos inline oscuros heredados)
 *  11. Override del color anterior #8B5CF6 (rastros del morado viejo)
 *  12. Scrollbar refinado
 */

/* ==============================================================
   1. TOKENS GLOBALES — Paleta D2 Electric Indigo Equilibrada
   ============================================================== */
:root {
	/* Backgrounds */
	--ns-bg:           #FAFAFF;
	--ns-bg-blur:      rgba(250, 250, 255, 0.92);
	--ns-bg-elev:      #FFFFFF;
	--ns-bg-soft:      #EEF2FF;

	/* Text — todos oscuros para legibilidad */
	--ns-text:         #0F172A;
	--ns-text-strong:  #1E293B;
	--ns-text-mute:    #475569;
	--ns-text-dim:     #64748B;

	/* Brand */
	--ns-accent:       #4F46E5;
	--ns-accent-l:     #6366F1;
	--ns-accent-d:     #4338CA;
	--ns-cyan:         #06B6D4;
	--ns-cyan-d:       #0E7490;
	--ns-pink:         #EC4899;
	--ns-pink-d:       #9D174D;

	/* Borders */
	--ns-border:       #E0E7FF;
	--ns-border-soft:  #EEF2FF;
	--ns-border-hov:   #C7D2FE;

	/* Surfaces */
	--ns-surf:         #FFFFFF;
	--ns-surf-alt:     #F9FAFB;
	--ns-surf-hov:     #F1F5F9;

	/* Semantic */
	--ns-success-bg:   #DCFCE7;
	--ns-success:      #166534;
	--ns-info-bg:      #CFFAFE;
	--ns-info:         #0E7490;
	--ns-warn-bg:      #FEF3C7;
	--ns-warn:         #92400E;
	--ns-trend-bg:     #FCE7F3;
	--ns-trend:        #9D174D;
	--ns-danger-bg:    #FEE2E2;
	--ns-danger:       #991B1B;

	/* Gradient */
	--ns-grad-cta:     linear-gradient(135deg, #4F46E5 0%, #06B6D4 100%);

	/* Shadows */
	--ns-shadow-cta:   0 1px 2px rgba(79,70,229,0.2), 0 4px 12px rgba(79,70,229,0.25);
	--ns-shadow-cta-h: 0 2px 4px rgba(79,70,229,0.25), 0 8px 20px rgba(79,70,229,0.35);
	--ns-shadow-card:  0 1px 3px rgba(15,23,42,0.04), 0 4px 12px rgba(15,23,42,0.04);
	--ns-shadow-pop:   0 12px 32px rgba(15,23,42,0.12), 0 0 0 1px rgba(15,23,42,0.04);

	/* Layout */
	--ns-r-sm:         6px;
	--ns-r:            8px;
	--ns-r-lg:         12px;
	--ns-r-xl:         16px;
	--ns-t:            150ms ease;
	--ns-t-md:         200ms ease;
	--ns-stack:        -apple-system, BlinkMacSystemFont, "Inter", "Segoe UI", Roboto, sans-serif;
}

/* ==============================================================
   2. BODY + RESET GLOBAL
   ============================================================== */
html,
body {
	background: var(--ns-bg) !important;
	color: var(--ns-text) !important;
	font-family: var(--ns-stack);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

/* Containers principales: transparentes para heredar el body */
.site,
.site-content,
.site-main,
main,
#content,
#primary,
.content-area,
.elementor,
.elementor-section:not(.has-background-overlay),
.elementor-container,
.elementor-column,
.elementor-widget-wrap {
	background: transparent !important;
}

/* ==============================================================
   3. TIPOGRAFÍA GLOBAL
   ============================================================== */
h1, h2, h3, h4, h5, h6,
.elementor-heading-title,
.entry-title,
.page-title {
	color: var(--ns-text) !important;
	font-family: var(--ns-stack);
	letter-spacing: -0.02em !important;
	font-weight: 700 !important;
}
h1, .elementor-widget-heading h1.elementor-heading-title { font-size: 32px; line-height: 1.15; }
h2, .elementor-widget-heading h2.elementor-heading-title { font-size: 24px; line-height: 1.2; }
h3, .elementor-widget-heading h3.elementor-heading-title { font-size: 20px; line-height: 1.25; }
h4 { font-size: 17px; line-height: 1.3; }
h5 { font-size: 15px; line-height: 1.35; }
h6 { font-size: 13px; line-height: 1.4; text-transform: uppercase; letter-spacing: 0.06em; }

p,
.elementor-widget-text-editor p,
.entry-content p {
	color: var(--ns-text-strong) !important;
	font-weight: 500;
	line-height: 1.65;
}

/* Links genéricos (excluye CTAs y botones del header) */
a:not(.ns-cta):not(.ns-drawer-cta):not(.ns-logo):not(.ns-burger):not(.ns-explore):not(.ns-user):not(.button):not(.wp-block-button__link):not(.elementor-button) {
	color: var(--ns-accent);
	text-decoration: none;
	transition: color var(--ns-t);
}
a:not(.ns-cta):not(.ns-drawer-cta):not(.ns-logo):not(.button):not(.elementor-button):hover {
	color: var(--ns-accent-d);
}

strong, b {
	color: var(--ns-text) !important;
	font-weight: 700;
}

/* ==============================================================
   4. WOOCOMMERCE — TODA LA UI
   ============================================================== */

/* WC: layout general */
.woocommerce,
.woocommerce-page,
.woocommerce-account,
.woocommerce-cart,
.woocommerce-checkout {
	background: transparent !important;
	color: var(--ns-text) !important;
}

/* WC: títulos de página */
.woocommerce h1.entry-title,
.woocommerce-products-header__title,
.page-title,
.woocommerce-MyAccount-content h2,
.woocommerce-MyAccount-content h3 {
	color: var(--ns-text) !important;
	font-weight: 700 !important;
	letter-spacing: -0.02em !important;
}

/* WC: cards de producto en archive/shop */
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product,
.elementor-widget-woocommerce-products .product,
.elementor-widget-wc-archive-products .product {
	background: var(--ns-surf) !important;
	border: 1px solid var(--ns-border) !important;
	border-radius: var(--ns-r-lg) !important;
	box-shadow: var(--ns-shadow-card) !important;
	padding: 16px !important;
	transition: border-color var(--ns-t), box-shadow var(--ns-t), transform var(--ns-t-md) !important;
	overflow: hidden !important;
}
.woocommerce ul.products li.product:hover {
	border-color: var(--ns-border-hov) !important;
	box-shadow: var(--ns-shadow-pop) !important;
	transform: translateY(-2px) !important;
}

/* WC: imagen de producto en card */
.woocommerce ul.products li.product a img {
	border-radius: var(--ns-r) !important;
	margin-bottom: 12px !important;
}

/* WC: títulos de producto */
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product h2,
.woocommerce ul.products li.product h3 {
	color: var(--ns-text) !important;
	font-weight: 700 !important;
	font-size: 15px !important;
	letter-spacing: -0.01em !important;
	padding: 4px 0 !important;
	margin: 0 0 6px !important;
}

/* WC: precios */
.woocommerce .price,
.woocommerce .product .price,
.woocommerce span.woocommerce-Price-amount,
.woocommerce ins .woocommerce-Price-amount,
.product .price ins {
	color: var(--ns-text) !important;
	font-weight: 700 !important;
	background: transparent !important;
	text-decoration: none !important;
}
.woocommerce del .woocommerce-Price-amount,
.woocommerce del,
.product .price del {
	color: var(--ns-text-mute) !important;
	font-weight: 500 !important;
	text-decoration: line-through !important;
	opacity: 0.7 !important;
}

/* WC: botones primarios (Comprar, Añadir al carrito, Ver más) */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce-page a.button,
.woocommerce-page button.button,
.woocommerce-page button[type="submit"],
.wc-block-components-button,
.button.product_type_simple,
.button.product_type_variable,
.button.add_to_cart_button,
.single_add_to_cart_button,
.checkout-button {
	background: var(--ns-grad-cta) !important;
	color: #fff !important;
	border: none !important;
	padding: 11px 22px !important;
	font-size: 13px !important;
	font-weight: 700 !important;
	border-radius: var(--ns-r) !important;
	box-shadow: var(--ns-shadow-cta) !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
	transition: box-shadow var(--ns-t-md), transform 100ms ease !important;
	display: inline-flex !important;
	align-items: center !important;
	gap: 6px !important;
	line-height: 1.3 !important;
	text-decoration: none !important;
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce a.button.alt:hover,
.single_add_to_cart_button:hover,
.checkout-button:hover {
	box-shadow: var(--ns-shadow-cta-h) !important;
	color: #fff !important;
	transform: translateY(-1px) !important;
}
.woocommerce a.button:active,
.woocommerce button.button:active,
.single_add_to_cart_button:active {
	transform: translateY(1px) !important;
}

/* WC: botones secundarios (Seguir comprando, Ver detalles) */
.woocommerce a.button.wc-backward,
.woocommerce a.added_to_cart,
.woocommerce-page a.button.wc-backward {
	background: var(--ns-surf) !important;
	color: var(--ns-text) !important;
	border: 1px solid var(--ns-border) !important;
	box-shadow: none !important;
	font-weight: 600 !important;
}
.woocommerce a.button.wc-backward:hover {
	background: var(--ns-bg-soft) !important;
	border-color: var(--ns-border-hov) !important;
	color: var(--ns-text) !important;
	box-shadow: none !important;
	transform: none !important;
}

/* WC: badge "onsale" (descuento) */
.woocommerce span.onsale,
.woocommerce ul.products li.product .onsale {
	background: var(--ns-success-bg) !important;
	color: var(--ns-success) !important;
	border: none !important;
	border-radius: var(--ns-r-sm) !important;
	padding: 4px 8px !important;
	font-size: 10px !important;
	font-weight: 700 !important;
	letter-spacing: 0.04em !important;
	text-transform: uppercase !important;
	min-height: auto !important;
	min-width: auto !important;
	line-height: 1.4 !important;
	margin: 8px !important;
	box-shadow: none !important;
	top: 8px !important;
	right: 8px !important;
	left: auto !important;
}

/* WC: páginas Mi Cuenta — navegación lateral */
.woocommerce-MyAccount-navigation {
	background: var(--ns-surf) !important;
	border: 1px solid var(--ns-border) !important;
	border-radius: var(--ns-r-lg) !important;
	padding: 8px !important;
	box-shadow: var(--ns-shadow-card) !important;
}
.woocommerce-MyAccount-navigation ul {
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
}
.woocommerce-MyAccount-navigation ul li {
	margin: 0 !important;
	padding: 0 !important;
	border: none !important;
}
.woocommerce-MyAccount-navigation ul li a {
	display: block !important;
	color: var(--ns-text) !important;
	font-weight: 600 !important;
	font-size: 13px !important;
	padding: 10px 14px !important;
	border-radius: var(--ns-r) !important;
	text-decoration: none !important;
	transition: background var(--ns-t), color var(--ns-t) !important;
}
.woocommerce-MyAccount-navigation ul li a:hover {
	background: var(--ns-bg-soft) !important;
	color: var(--ns-accent-d) !important;
}
.woocommerce-MyAccount-navigation ul li.is-active a,
.woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--dashboard.is-active a {
	background: var(--ns-bg-soft) !important;
	color: var(--ns-accent-d) !important;
	font-weight: 700 !important;
}

/* WC: contenido Mi Cuenta */
.woocommerce-MyAccount-content {
	background: var(--ns-surf) !important;
	border: 1px solid var(--ns-border) !important;
	border-radius: var(--ns-r-lg) !important;
	padding: 24px !important;
	box-shadow: var(--ns-shadow-card) !important;
}

/* WC: tablas (pedidos, descargas, direcciones) */
.woocommerce table.shop_table {
	background: var(--ns-surf) !important;
	border: 1px solid var(--ns-border) !important;
	border-radius: var(--ns-r-lg) !important;
	border-collapse: separate !important;
	border-spacing: 0 !important;
	overflow: hidden !important;
	color: var(--ns-text) !important;
}
.woocommerce table.shop_table thead {
	background: var(--ns-bg-soft) !important;
}
.woocommerce table.shop_table th {
	color: var(--ns-text) !important;
	font-weight: 700 !important;
	font-size: 12px !important;
	text-transform: uppercase !important;
	letter-spacing: 0.04em !important;
	padding: 12px 16px !important;
	border-bottom: 1px solid var(--ns-border) !important;
}
.woocommerce table.shop_table td {
	color: var(--ns-text-strong) !important;
	font-weight: 500 !important;
	padding: 12px 16px !important;
	border-top: 1px solid var(--ns-border-soft) !important;
}
.woocommerce table.shop_table tr:hover {
	background: var(--ns-bg-soft) !important;
}

/* WC: formularios */
.woocommerce form .form-row label,
.woocommerce-page form .form-row label,
.woocommerce form label,
.woocommerce-account form label {
	color: var(--ns-text) !important;
	font-weight: 600 !important;
	font-size: 13px !important;
	margin-bottom: 6px !important;
	display: block !important;
}

/* Inputs globales (afecta WC + Elementor + cualquier form del sitio) */
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce-page form .form-row input.input-text,
.woocommerce-page form .form-row textarea,
input[type="text"]:not(.ns-search-input),
input[type="email"],
input[type="password"],
input[type="tel"],
input[type="search"]:not(.ns-search-input),
input[type="number"],
input[type="url"],
textarea,
select {
	background: var(--ns-surf) !important;
	border: 1px solid var(--ns-border) !important;
	color: var(--ns-text) !important;
	border-radius: var(--ns-r) !important;
	padding: 10px 14px !important;
	font-size: 13px !important;
	font-weight: 500 !important;
	font-family: var(--ns-stack) !important;
	transition: border-color var(--ns-t), box-shadow var(--ns-t) !important;
	box-shadow: none !important;
	outline: none !important;
	width: 100%;
	box-sizing: border-box;
}
input:not(.ns-search-input):focus,
textarea:focus,
select:focus,
.woocommerce form input:focus,
.woocommerce form textarea:focus {
	border-color: var(--ns-accent) !important;
	box-shadow: 0 0 0 3px rgba(79, 70, 229, 0.12) !important;
	outline: none !important;
}
input::placeholder,
textarea::placeholder {
	color: var(--ns-text-dim) !important;
	font-weight: 400 !important;
	opacity: 1 !important;
}

/* WC: notices (success, error, info) */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
	background: var(--ns-bg-soft) !important;
	border-left: 3px solid var(--ns-accent) !important;
	border-top: none !important;
	border-right: none !important;
	border-bottom: none !important;
	color: var(--ns-text) !important;
	border-radius: var(--ns-r) !important;
	padding: 14px 18px !important;
	font-weight: 500 !important;
	margin-bottom: 16px !important;
	box-shadow: none !important;
}
.woocommerce-message {
	border-left-color: var(--ns-success) !important;
	background: var(--ns-success-bg) !important;
	color: var(--ns-success) !important;
}
.woocommerce-message a,
.woocommerce-info a {
	color: var(--ns-accent-d) !important;
	font-weight: 600 !important;
}
.woocommerce-error {
	border-left-color: var(--ns-danger) !important;
	background: var(--ns-danger-bg) !important;
	color: var(--ns-danger) !important;
}
.woocommerce-error a {
	color: var(--ns-danger) !important;
	font-weight: 600 !important;
}

/* WC: página de producto individual */
.woocommerce div.product .product_title,
.woocommerce-page div.product .product_title {
	color: var(--ns-text) !important;
	font-weight: 700 !important;
	letter-spacing: -0.02em !important;
	font-size: 28px !important;
	margin-bottom: 8px !important;
}
.woocommerce div.product .summary p.price,
.woocommerce div.product .summary span.price,
.woocommerce-page div.product .summary p.price {
	color: var(--ns-text) !important;
	font-weight: 700 !important;
	font-size: 28px !important;
	margin: 12px 0 16px !important;
}
.woocommerce div.product .woocommerce-product-details__short-description,
.woocommerce div.product .summary > p {
	color: var(--ns-text-strong) !important;
	font-weight: 500 !important;
	line-height: 1.65 !important;
}

/* WC: tabs en single product */
.woocommerce-tabs ul.tabs.wc-tabs,
.woocommerce div.product .woocommerce-tabs ul.tabs {
	border-bottom: 1px solid var(--ns-border) !important;
	margin-bottom: 24px !important;
	padding: 0 !important;
}
.woocommerce-tabs ul.tabs li,
.woocommerce div.product .woocommerce-tabs ul.tabs li {
	background: transparent !important;
	border: none !important;
	border-bottom: 2px solid transparent !important;
	border-radius: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
}
.woocommerce-tabs ul.tabs li.active,
.woocommerce div.product .woocommerce-tabs ul.tabs li.active {
	background: transparent !important;
	border-bottom-color: var(--ns-accent) !important;
}
.woocommerce-tabs ul.tabs li::before,
.woocommerce-tabs ul.tabs li::after,
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after {
	display: none !important;
}
.woocommerce-tabs ul.tabs li a,
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
	color: var(--ns-text-mute) !important;
	font-weight: 600 !important;
	font-size: 13px !important;
	padding: 12px 18px !important;
	display: inline-block !important;
	transition: color var(--ns-t) !important;
}
.woocommerce-tabs ul.tabs li.active a,
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
	color: var(--ns-accent-d) !important;
}

/* WC: cantidad input (+ - en producto) */
.woocommerce .quantity input.qty {
	border: 1px solid var(--ns-border) !important;
	background: var(--ns-surf) !important;
	color: var(--ns-text) !important;
	border-radius: var(--ns-r) !important;
	font-weight: 600 !important;
	text-align: center !important;
	width: 70px !important;
}

/* WC: checkout review order */
.woocommerce-checkout #order_review,
.woocommerce-checkout #order_review_heading {
	background: var(--ns-surf) !important;
	border: 1px solid var(--ns-border) !important;
	border-radius: var(--ns-r-lg) !important;
	padding: 20px !important;
}

/* WC: cupones */
.woocommerce form.checkout_coupon,
.woocommerce-cart .coupon {
	background: var(--ns-bg-soft) !important;
	border: 1px solid var(--ns-border) !important;
	border-radius: var(--ns-r) !important;
	padding: 16px !important;
}

/* ==============================================================
   5. ELEMENTOR WIDGETS
   ============================================================== */

/* Heading widgets */
.elementor-widget-heading h1,
.elementor-widget-heading h2,
.elementor-widget-heading h3,
.elementor-widget-heading h4,
.elementor-widget-heading .elementor-heading-title {
	color: var(--ns-text) !important;
	letter-spacing: -0.02em !important;
}

/* Text editor */
.elementor-widget-text-editor p,
.elementor-widget-text-editor li,
.elementor-text-editor {
	color: var(--ns-text-strong) !important;
	font-weight: 500 !important;
	line-height: 1.65 !important;
}
.elementor-widget-text-editor strong {
	color: var(--ns-text) !important;
	font-weight: 700 !important;
}

/* Botones de Elementor */
.elementor-button,
.elementor-button-link,
a.elementor-button,
.elementor-widget-button .elementor-button {
	background: var(--ns-grad-cta) !important;
	color: #fff !important;
	border: none !important;
	padding: 11px 22px !important;
	font-weight: 700 !important;
	font-size: 13px !important;
	border-radius: var(--ns-r) !important;
	box-shadow: var(--ns-shadow-cta) !important;
	transition: box-shadow var(--ns-t-md), transform 100ms ease !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
}
.elementor-button:hover,
a.elementor-button:hover {
	box-shadow: var(--ns-shadow-cta-h) !important;
	color: #fff !important;
	transform: translateY(-1px) !important;
}
.elementor-button:active,
a.elementor-button:active {
	transform: translateY(1px) !important;
}

/* Imágenes con border radius */
.elementor-image img,
.elementor-widget-image img,
.elementor-widget-theme-post-featured-image img {
	border-radius: var(--ns-r) !important;
}

/* Divider */
.elementor-divider-separator {
	border-top-color: var(--ns-border) !important;
}

/* Icon box */
.elementor-icon-box-title,
.elementor-icon-box-title a {
	color: var(--ns-text) !important;
	font-weight: 700 !important;
	letter-spacing: -0.01em !important;
}
.elementor-icon-box-description {
	color: var(--ns-text-strong) !important;
	font-weight: 500 !important;
	line-height: 1.6 !important;
}
.elementor-icon-box-icon .elementor-icon {
	color: var(--ns-accent) !important;
	background: var(--ns-bg-soft) !important;
	border-radius: var(--ns-r) !important;
	transition: background var(--ns-t), color var(--ns-t) !important;
}
.elementor-icon-box-wrapper:hover .elementor-icon {
	background: var(--ns-accent) !important;
	color: #fff !important;
}

/* Image box */
.elementor-image-box-title,
.elementor-image-box-title a {
	color: var(--ns-text) !important;
	font-weight: 700 !important;
}
.elementor-image-box-description {
	color: var(--ns-text-strong) !important;
	font-weight: 500 !important;
}

/* Testimonial */
.elementor-testimonial-content {
	color: var(--ns-text-strong) !important;
	font-weight: 500 !important;
}
.elementor-testimonial-name {
	color: var(--ns-text) !important;
	font-weight: 700 !important;
}
.elementor-testimonial-job {
	color: var(--ns-text-mute) !important;
	font-weight: 500 !important;
}

/* ==============================================================
   6. FOOTER DEL TEMA
   ============================================================== */
.site-footer,
.elementor-location-footer,
footer.site-footer,
#colophon,
.footer-widgets {
	background: var(--ns-bg) !important;
	color: var(--ns-text) !important;
	border-top: 1px solid var(--ns-border) !important;
	padding: 40px 24px 24px !important;
}
.site-footer h1,
.site-footer h2,
.site-footer h3,
.site-footer h4,
.site-footer .widget-title,
#colophon h1,
#colophon h2,
#colophon h3,
#colophon h4,
.footer-widgets h3,
.footer-widgets .widget-title {
	color: var(--ns-text) !important;
	font-weight: 700 !important;
	text-transform: uppercase !important;
	letter-spacing: 0.06em !important;
	font-size: 12px !important;
	margin-bottom: 14px !important;
}
.site-footer a,
#colophon a,
.footer-widgets a {
	color: var(--ns-text) !important;
	font-weight: 500 !important;
	text-decoration: none !important;
	transition: color var(--ns-t) !important;
}
.site-footer a:hover,
#colophon a:hover,
.footer-widgets a:hover {
	color: var(--ns-accent) !important;
}
.site-footer p,
#colophon p,
.footer-widgets p {
	color: var(--ns-text-strong) !important;
	font-weight: 500 !important;
	line-height: 1.65 !important;
}
.site-footer ul,
#colophon ul,
.footer-widgets ul {
	list-style: none !important;
	padding: 0 !important;
	margin: 0 !important;
}
.site-footer ul li,
#colophon ul li,
.footer-widgets ul li {
	padding: 6px 0 !important;
}

/* Copyright */
.site-info,
.copyright,
.footer-bottom {
	color: var(--ns-text-mute) !important;
	font-size: 12px !important;
	font-weight: 500 !important;
	padding-top: 20px !important;
	margin-top: 20px !important;
	border-top: 1px solid var(--ns-border) !important;
}

/* ==============================================================
   7. SIDEBAR Y WIDGETS
   ============================================================== */
.widget,
aside.widget,
.elementor-widget-sidebar .widget,
#secondary .widget {
	background: var(--ns-surf) !important;
	border: 1px solid var(--ns-border) !important;
	border-radius: var(--ns-r-lg) !important;
	padding: 20px !important;
	margin-bottom: 16px !important;
	box-shadow: var(--ns-shadow-card) !important;
	color: var(--ns-text) !important;
}
.widget-title,
.widget h2,
.widget h3,
.widget h4 {
	color: var(--ns-text) !important;
	font-weight: 700 !important;
	font-size: 14px !important;
	margin-bottom: 14px !important;
	padding-bottom: 10px !important;
	border-bottom: 1px solid var(--ns-border) !important;
}
.widget ul,
.widget ol {
	list-style: none !important;
	padding: 0 !important;
	margin: 0 !important;
}
.widget ul li,
.widget ol li {
	color: var(--ns-text-strong) !important;
	font-weight: 500 !important;
	padding: 8px 0 !important;
	border-bottom: 1px solid var(--ns-border-soft) !important;
}
.widget ul li:last-child,
.widget ol li:last-child {
	border-bottom: none !important;
}
.widget a {
	color: var(--ns-text) !important;
	font-weight: 500 !important;
	transition: color var(--ns-t) !important;
}
.widget a:hover {
	color: var(--ns-accent) !important;
}

/* Widgets específicos comunes */
.widget_search input[type="search"],
.widget_product_search input[type="search"] {
	width: 100% !important;
}
.widget_categories ul li a,
.widget_archive ul li a,
.widget_recent_entries ul li a {
	display: inline-block !important;
}

/* ==============================================================
   8. PÁGINAS DINÁMICAS (404, archive, single, search)
   ============================================================== */
.error-404,
.search-results,
.search-no-results,
.archive,
.blog,
.single,
.page,
body[class*="page-template"] {
	background: var(--ns-bg) !important;
}

.entry-title,
article h1.entry-title,
article h2.entry-title,
article .entry-title a,
.post-title a {
	color: var(--ns-text) !important;
	font-weight: 700 !important;
	letter-spacing: -0.02em !important;
	text-decoration: none !important;
}
.entry-title a:hover,
.post-title a:hover {
	color: var(--ns-accent-d) !important;
}

.entry-content,
.entry-content p,
.entry-content li,
.entry-summary,
.entry-summary p {
	color: var(--ns-text-strong) !important;
	font-weight: 500 !important;
	line-height: 1.7 !important;
}
.entry-content h1,
.entry-content h2,
.entry-content h3,
.entry-content h4 {
	color: var(--ns-text) !important;
	font-weight: 700 !important;
	margin-top: 1.5em !important;
	margin-bottom: 0.5em !important;
}

.entry-meta,
.posted-on,
.byline,
.cat-links,
.tags-links,
.comments-link {
	color: var(--ns-text-mute) !important;
	font-weight: 500 !important;
	font-size: 12px !important;
}
.entry-meta a {
	color: var(--ns-text-mute) !important;
}
.entry-meta a:hover {
	color: var(--ns-accent) !important;
}

/* Paginación */
.pagination,
.nav-links,
.page-numbers {
	color: var(--ns-text) !important;
}
.page-numbers a,
.page-numbers span {
	background: var(--ns-surf) !important;
	border: 1px solid var(--ns-border) !important;
	color: var(--ns-text) !important;
	padding: 8px 14px !important;
	border-radius: var(--ns-r) !important;
	font-weight: 600 !important;
	margin: 0 3px !important;
	display: inline-block !important;
	text-decoration: none !important;
	transition: all var(--ns-t) !important;
}
.page-numbers a:hover {
	border-color: var(--ns-accent) !important;
	color: var(--ns-accent-d) !important;
}
.page-numbers.current,
.page-numbers span.current {
	background: var(--ns-accent) !important;
	border-color: var(--ns-accent) !important;
	color: #fff !important;
}

/* ==============================================================
   9. PÁGINA /codigos/ (Nanda Membership Engine)
   ============================================================== */
body.page-template-codigos,
body[class*="codigos"],
[class*="nanda-membership"],
[class*="membership-codes"],
[class*="credentials-list"] {
	background: var(--ns-bg) !important;
	color: var(--ns-text) !important;
}
[class*="nanda-membership"] .credential-card,
[class*="membership-codes"] .code-card,
[class*="credentials-list"] .credential,
.credential-item,
.nanda-credential {
	background: var(--ns-surf) !important;
	border: 1px solid var(--ns-border) !important;
	border-radius: var(--ns-r-lg) !important;
	box-shadow: var(--ns-shadow-card) !important;
	padding: 20px !important;
	margin-bottom: 14px !important;
	transition: border-color var(--ns-t), box-shadow var(--ns-t) !important;
}
[class*="nanda-membership"] .credential-card:hover,
[class*="credentials-list"] .credential:hover {
	border-color: var(--ns-border-hov) !important;
	box-shadow: var(--ns-shadow-pop) !important;
}
[class*="nanda-membership"] h2,
[class*="nanda-membership"] h3,
[class*="credentials-list"] h2,
[class*="credentials-list"] h3 {
	color: var(--ns-text) !important;
	font-weight: 700 !important;
	letter-spacing: -0.01em !important;
}
[class*="nanda-membership"] .credential-label,
[class*="credentials-list"] label {
	color: var(--ns-text-mute) !important;
	font-weight: 600 !important;
	font-size: 11px !important;
	text-transform: uppercase !important;
	letter-spacing: 0.06em !important;
}
[class*="nanda-membership"] .credential-value,
[class*="credentials-list"] .value {
	color: var(--ns-text) !important;
	font-weight: 600 !important;
	font-family: ui-monospace, SFMono-Regular, Menlo, monospace !important;
	background: var(--ns-bg-soft) !important;
	padding: 8px 12px !important;
	border-radius: var(--ns-r) !important;
	border: 1px solid var(--ns-border) !important;
}

/* ==============================================================
   10. CATCH-ALL DEFENSIVO (estilos inline oscuros heredados)
   ============================================================== */

/* Forzar fondos claros en cualquier elemento con inline style oscuro
   Limita a contenedores principales del sitio (no a logos, banderas, etc.) */
.site-content [style*="background-color:#000"],
.site-content [style*="background-color: #000"],
.site-content [style*="background:#000"],
.site-content [style*="background: #000"],
.elementor-section[style*="background-color:#0B"],
.elementor-section[style*="background-color: #0B"],
.elementor-section[style*="background-color:#14"],
.elementor-section[style*="background-color: #14"] {
	background: var(--ns-bg) !important;
	color: var(--ns-text) !important;
}

/* Forzar texto legible en zonas que aún tengan texto blanco
   EXCEPCIÓN: header, drawer, CTAs gradient — esos mantienen blanco */
.site-content [style*="color:#fff"]:not(.ns-cta):not(.ns-drawer-cta):not(.elementor-button):not(.button),
.site-content [style*="color: #fff"]:not(.ns-cta):not(.ns-drawer-cta):not(.elementor-button):not(.button),
.site-content [style*="color:white"]:not(.ns-cta):not(.ns-drawer-cta):not(.elementor-button):not(.button),
.site-content [style*="color: white"]:not(.ns-cta):not(.ns-drawer-cta):not(.elementor-button):not(.button) {
	color: var(--ns-text) !important;
}

/* ==============================================================
   11. OVERRIDE DEL COLOR ANTERIOR #8B5CF6 (rastros del morado viejo)
   ============================================================== */
[style*="#8B5CF6"]:not(svg):not(svg *),
[style*="#8b5cf6"]:not(svg):not(svg *),
[style*="rgb(139, 92, 246)"]:not(svg):not(svg *),
[style*="rgb(139,92,246)"]:not(svg):not(svg *) {
	color: var(--ns-accent) !important;
	border-color: var(--ns-accent) !important;
}
[style*="background-color:#8B5CF6"],
[style*="background-color: #8B5CF6"],
[style*="background-color:#8b5cf6"],
[style*="background-color: #8b5cf6"],
[style*="background:#8B5CF6"],
[style*="background: #8B5CF6"],
[style*="background:rgb(139, 92, 246)"],
[style*="background: rgb(139, 92, 246)"] {
	background: var(--ns-grad-cta) !important;
	color: #fff !important;
}

/* Override del verde lima saturado anterior (#10B981 saturado) */
[style*="#10B981"]:not(svg):not(svg *) {
	color: var(--ns-success) !important;
}

/* Override del rojo/naranja anterior (CTAs viejos) */
[style*="background-color:#EF4444"],
[style*="background:#EF4444"],
[style*="background-color:#F97316"],
[style*="background:#F97316"] {
	background: var(--ns-grad-cta) !important;
	color: #fff !important;
}

/* ==============================================================
   12. SCROLLBAR PERSONALIZADO
   ============================================================== */
::-webkit-scrollbar {
	width: 10px;
	height: 10px;
}
::-webkit-scrollbar-track {
	background: var(--ns-bg);
}
::-webkit-scrollbar-thumb {
	background: var(--ns-border-hov);
	border-radius: 999px;
	border: 2px solid var(--ns-bg);
}
::-webkit-scrollbar-thumb:hover {
	background: var(--ns-accent-l);
}
::-webkit-scrollbar-corner {
	background: var(--ns-bg);
}

/* Firefox scrollbar */
* {
	scrollbar-width: thin;
	scrollbar-color: var(--ns-border-hov) var(--ns-bg);
}

/* ==============================================================
   13. SELECCIÓN DE TEXTO
   ============================================================== */
::selection {
	background: var(--ns-accent);
	color: #fff;
}
::-moz-selection {
	background: var(--ns-accent);
	color: #fff;
}

/* ==============================================================
   14. ACCESIBILIDAD GLOBAL
   ============================================================== */
*:focus-visible {
	outline: 2px solid var(--ns-accent) !important;
	outline-offset: 2px !important;
}

/* prefers-reduced-motion: desactivar transitions globalmente */
@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
	}
}

/* ==============================================================
   15. NEUTRALIZACIÓN DE HEADER/FOOTER VIEJO (transición)
   ==============================================================
   Defense-in-depth: si el Snippet 15 sigue activo durante la
   ventana de transición, ocultamos sus emisiones para evitar
   doble header / doble topbar / doble pill.
   Cuando el Snippet 15 se desactive, estas reglas quedan inertes
   (no afectan nada porque los selectores ya no existen en el DOM).
   ============================================================== */
.nanda-stickywrap,
.nanda-topbar,
.nanda-header,
header.nanda-header,
.nanda-header__inner,
.nanda-header__country,
.nanda-header__country-pop,
.nanda-header__user-text {
	display: none !important;
	visibility: hidden !important;
	height: 0 !important;
	overflow: hidden !important;
	pointer-events: none !important;
}

/* El footer viejo .nanda-footer se oculta SOLO si el nuevo .ns-footer
   está presente en el DOM. Si por algún motivo el ns-footer.php no se
   carga, el .nanda-footer del Snippet 15 sigue siendo el fallback. */
body:has(.ns-footer) .nanda-footer {
	display: none !important;
}
/* Fallback para navegadores sin :has() (Safari <15.4, Firefox <121) */
@supports not selector(:has(*)) {
	.nanda-footer + .ns-footer,
	.ns-footer ~ .nanda-footer {
		display: none !important;
	}
}

/* ==============================================================
   16. FOOTER OVERRIDE
   ==============================================================
   Refuerzos específicos del footer custom .ns-footer.
   Los estilos completos viven en ns-footer.css; aquí solo añadimos
   overrides defensivos contra el tema y plugins de UI.
   ============================================================== */

/* Asegurar que el footer del tema (Hello Elementor) no compita visualmente
   si por alguna razón se renderiza junto al .ns-footer */
.site-footer:not(.ns-footer),
footer.site-footer:not(.ns-footer),
#colophon:not(.ns-footer),
.elementor-location-footer > div:not(.ns-footer) {
	background: transparent !important;
}

/* Si el sitio tiene un footer del tema renderizándose junto al ns-footer,
   ocultar el del tema (ns-footer toma precedencia) */
body:has(.ns-footer) .site-footer:not(.ns-footer),
body:has(.ns-footer) footer.site-footer:not(.ns-footer),
body:has(.ns-footer) #colophon:not(.ns-footer),
body:has(.ns-footer) .elementor-location-footer:not(:has(.ns-footer)) {
	display: none !important;
}


/* ====================================================================
   17. NS78 LANG/CURRENCY MODAL — fix CSS por default cerrado
   ====================================================================
   El JS del Snippet 78 ("NS - Switcher Idioma y Moneda") añade .open al
   panel cuando el user clickea el chip, pero el CSS por default lo dejaba
   visible siempre. Esta sección normaliza el estado:

   - Default (sin .open):  panel oculto + non-interactive
   - .open:                panel visible + interactive

   Listeners del JS (ya correctamente implementados en el snippet):
   - Click en #ns78-btn:        toggle .open
   - Click fuera del wrap:      remove .open
   - ESC:                       remove .open
   ==================================================================== */

#ns78-panel,
.ns78-panel {
	display: none !important;
	opacity: 0 !important;
	visibility: hidden !important;
	pointer-events: none !important;
}

#ns78-panel.open,
.ns78-panel.open {
	display: block !important;
	opacity: 1 !important;
	visibility: visible !important;
	pointer-events: auto !important;
}

/* === NS FIX mi-cuenta movil: cuenta y membresias a ancho completo (movil) === */
@media (max-width: 768px){
  html body.woocommerce-account.woocommerce-page main#content.site-main{ width:100% !important; max-width:100% !important; margin-left:0 !important; margin-right:0 !important; margin-inline:0 !important; padding-left:12px !important; padding-right:12px !important; box-sizing:border-box !important; }
  html body.woocommerce-account #content .page-content{ padding-left:0 !important; padding-right:0 !important; }
  html body.woocommerce-account #content .woocommerce{ padding-left:0 !important; padding-right:0 !important; }
  html body.woocommerce-account #content .woocommerce > .woocommerce-MyAccount-navigation{ width:100% !important; align-self:stretch !important; box-sizing:border-box !important; }
  html body.woocommerce-account #content .woocommerce-MyAccount-navigation ul{ display:grid !important; grid-template-columns:1fr 1fr !important; width:100% !important; gap:10px !important; }
  html body.woocommerce-account #content .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--customer-logout{ grid-column:1 / -1 !important; }
  html body.woocommerce-account #content .woocommerce > .woocommerce-MyAccount-content{ width:100% !important; align-self:stretch !important; padding-left:0 !important; padding-right:0 !important; box-sizing:border-box !important; }
  html body.woocommerce-account #content .nanda-memberships,
  html body.woocommerce-account #content .nanda-memberships > div,
  html body.woocommerce-account #content .nanda-mbs-grid{ width:100% !important; max-width:100% !important; }
  html body.woocommerce-account #content .nanda-mbs-grid{ grid-template-columns:1fr !important; }
  html body.woocommerce-account #content .nanda-mb-card{ width:100% !important; max-width:100% !important; box-sizing:border-box !important; }
}

/* === NS FIX membresias diseno: rediseno Opcion B del widget Mis Membresias === */
body.woocommerce-account #content .nanda-memberships{ background:#fff !important; border:1px solid #eef0f4 !important; border-radius:18px !important; box-shadow:0 6px 20px rgba(16,24,40,.08) !important; overflow:hidden !important; padding:0 !important; }
body.woocommerce-account #content .nanda-memberships > h2{ margin:0 !important; border:0 !important; border-radius:0 !important; background:#5b4fe0 !important; background-image:linear-gradient(135deg,#6a5cf0,#4a35c7) !important; color:#fff !important; -webkit-text-fill-color:#fff !important; font-size:17px !important; font-weight:600 !important; line-height:1.2 !important; display:flex !important; align-items:center !important; gap:12px !important; padding:15px 16px !important; }
body.woocommerce-account #content .nanda-memberships > h2 .nanda-mb-logo{ width:42px !important; height:42px !important; min-width:42px !important; border-radius:12px !important; background:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23ffffff'><path d='M3 8L7 12L12 5L17 12L21 8L19 19L5 19Z'/></svg>") center/26px no-repeat, rgba(255,255,255,.2) !important; box-shadow:none !important; flex:none !important; font-size:0 !important; }
body.woocommerce-account #content .nanda-memberships > h2 .nanda-mb-logo::before,body.woocommerce-account #content .nanda-memberships > h2 .nanda-mb-logo::after{ display:none !important; }
body.woocommerce-account #content .nanda-memberships > h2 button{ margin-left:auto !important; width:36px !important; height:36px !important; min-width:36px !important; padding:0 !important; border-radius:50% !important; border:0 !important; background:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M20 11a8.1 8.1 0 0 0 -15.5 -2m-.5 -4v4h4'/><path d='M4 13a8.1 8.1 0 0 0 15.5 2m.5 4v-4h-4'/></svg>") center/18px no-repeat, rgba(255,255,255,.2) !important; color:transparent !important; -webkit-text-fill-color:transparent !important; font-size:0 !important; flex:none !important; box-shadow:none !important; }
body.woocommerce-account #content .nanda-memberships > h2 button::before,body.woocommerce-account #content .nanda-memberships > h2 button::after{ display:none !important; }
body.woocommerce-account #content .nanda-memberships .nanda-mb-sumline{ display:inline-flex !important; align-items:center !important; gap:7px !important; background:#efedfe !important; color:#3c3489 !important; -webkit-text-fill-color:#3c3489 !important; font-size:12px !important; font-weight:500 !important; padding:6px 12px !important; border-radius:20px !important; margin:14px 14px 2px !important; width:auto !important; }
body.woocommerce-account #content .nanda-memberships .nanda-mb-sumline::before{ content:'' !important; width:7px !important; height:7px !important; border-radius:50% !important; background:#1d9e75 !important; flex:none !important; }
body.woocommerce-account #content .nanda-memberships .nanda-mb-metrics{ display:grid !important; grid-template-columns:1fr 1fr !important; gap:10px !important; padding:8px 14px 16px !important; }
body.woocommerce-account #content .nanda-memberships .nanda-mb-metric{ display:flex !important; flex-direction:column !important; align-items:flex-start !important; background:#fff !important; border:1px solid #eef0f4 !important; border-radius:13px !important; padding:12px 11px !important; box-shadow:none !important; }
body.woocommerce-account #content .nanda-memberships .nanda-mb-metric::before{ content:'' !important; width:19px !important; height:19px !important; margin-bottom:7px !important; background:center/contain no-repeat; order:0 !important; }
body.woocommerce-account #content .nanda-memberships .nanda-mb-metric:nth-child(1)::before{ background-image:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231d9e75' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='9'/><path d='M9 12l2 2l4 -4'/></svg>") !important; }
body.woocommerce-account #content .nanda-memberships .nanda-mb-metric:nth-child(2)::before{ background-image:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ba7517' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='9'/><path d='M12 7v5l3 3'/></svg>") !important; }
body.woocommerce-account #content .nanda-memberships .nanda-mb-metric:nth-child(3)::before{ background-image:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23d85a30' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M12 9v4'/><path d='M12 16v.01'/><path d='M3.5 18h17a1.5 1.5 0 0 0 1.3 -2.2l-8.5 -14a1.5 1.5 0 0 0 -2.6 0l-8.5 14a1.5 1.5 0 0 0 1.3 2.2'/></svg>") !important; margin-bottom:0 !important; }
body.woocommerce-account #content .nanda-memberships .nanda-mb-metric .v{ order:1 !important; font-size:22px !important; font-weight:600 !important; color:#0f172a !important; -webkit-text-fill-color:#0f172a !important; line-height:1 !important; margin:0 !important; }
body.woocommerce-account #content .nanda-memberships .nanda-mb-metric .l{ order:2 !important; font-size:11px !important; color:#8a93a6 !important; -webkit-text-fill-color:#8a93a6 !important; margin:4px 0 0 !important; }
body.woocommerce-account #content .nanda-memberships .nanda-mb-metric:nth-child(3){ grid-column:1 / -1 !important; flex-direction:row !important; align-items:center !important; gap:11px !important; }
body.woocommerce-account #content .nanda-memberships .nanda-mb-metric:nth-child(3) .l{ margin:0 0 0 auto !important; }
