/**
 * ================================================================
 * NASUS RP STORE · THEME CSS
 * Sistema visual completo · Editorial gaming
 * ================================================================
 */

/* ============================================================
 * 0. TOKENS
 * Antes vivían en style.css, que WordPress no carga en el front.
 * El Customizer los sobreescribe después (inline en wp_head).
 * ============================================================ */
:root {
    --nx-bg: #07070c;
    --nx-bg-2: #0d0d15;
    --nx-bg-3: #12121c;
    --nx-card: #1B242E;
    --nx-card-bottom: #121518;
    --nx-ink: #f5f5f7;
    --nx-ink-dim: #9a9aab;
    --nx-ink-low: #5c5c6e;
    --nx-line: rgba(255,255,255,0.08);
    --nx-line-2: rgba(255,255,255,0.14);
    --nx-accent: #00f0ff;
    --nx-accent-2: #b983ff;
    --nx-accent-hot: #ff2e63;
    --nx-accent-gold: #ffd166;
    --nx-font-display: 'Anton', 'Arial Narrow', Impact, sans-serif;
    --nx-font-mono: 'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    --nx-font-sans: 'Space Grotesk', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    --nx-radius: 16px;
    --nx-ease: cubic-bezier(0.4, 0, 0.2, 1);
}

/* ============================================================
 * 1. RESET & BASE
 * ============================================================ */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
/* Sin el recuadro azul que Android pinta al tocar (se veía al cerrar el
   menú tocando el fondo oscuro). El foco con teclado sigue marcado abajo. */
html, body, a, button, summary, [role="button"], .nx-mobile-backdrop { -webkit-tap-highlight-color: transparent; }
body { margin: 0; min-height: 100vh; line-height: 1.6; overflow-x: hidden; }
img, svg, video { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; transition: color 0.2s ease; }
button { font-family: inherit; cursor: pointer; border: none; background: none; padding: 0; color: inherit; }
input, select, textarea { font-family: inherit; font-size: inherit; }
ul, ol { list-style: none; padding: 0; margin: 0; }
h1, h2, h3, h4, h5, h6 { margin: 0; font-weight: 400; line-height: 1.2; }
p { margin: 0 0 1em; }
.screen-reader-text { position: absolute !important; clip: rect(1px,1px,1px,1px); width: 1px; height: 1px; overflow: hidden; }
.nx-skip-link { position: absolute; top: -100px; left: 8px; background: var(--nx-accent); color: var(--nx-bg); padding: 12px 16px; z-index: 99999; }
.nx-skip-link:focus { top: 8px; }

/* Foco visible para teclado (antes no había ninguno) */
:focus-visible {
    outline: 2px solid var(--nx-accent);
    outline-offset: 3px;
    border-radius: 6px;
}
:focus:not(:focus-visible) { outline: none; }

/* Selection */
::selection { background: var(--nx-accent); color: var(--nx-bg); }

/* Scrollbar */
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: var(--nx-bg-2); }
::-webkit-scrollbar-thumb { background: var(--nx-line-2); border-radius: 10px; }
::-webkit-scrollbar-thumb:hover { background: var(--nx-accent); }

/* ============================================================
 * 2. TEXTURA DE FONDO
 * Antes: ruido + scanlines fijos encima de TODA la página con
 * mix-blend-mode, que obligaba a repintar en cada scroll (lag en
 * celulares). Ahora: ruido sutil sin blend, solo en escritorio.
 * ============================================================ */
@media (min-width: 901px) {
    body::before {
        content: '';
        position: fixed;
        inset: 0;
        pointer-events: none;
        z-index: 9990;
        opacity: 0.035;
        background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
        background-size: 200px 200px;
    }
}

/* ============================================================
 * 3. CONTAINER & LAYOUT
 * ============================================================ */
.nx-container { max-width: 1400px; margin: 0 auto; padding: 0 32px; }
.nx-content-wrap { min-height: 60vh; }

/* ============================================================
 * 4. ANNOUNCEMENT BAR (top scrolling)
 * ============================================================ */
.nx-announcement {
    background: var(--nx-accent);
    color: var(--nx-bg);
    padding: 8px 0;
    overflow: hidden;
    position: relative;
    font-family: var(--nx-font-mono);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 1.5px;
    text-transform: uppercase;
}
.nx-announcement-track {
    display: flex;
    gap: 30px;
    white-space: nowrap;
    animation: nxScrollX 25s linear infinite;
    width: max-content;
}
.nx-announcement-sep { opacity: 0.5; }
@keyframes nxScrollX { from { transform: translateX(0); } to { transform: translateX(-50%); } }

/* ============================================================
 * 5. HEADER
 * ============================================================ */
.nx-header {
    position: sticky;
    top: 0;
    z-index: 100;
    background: rgba(7, 7, 12, 0.82);
    backdrop-filter: blur(14px) saturate(140%);
    -webkit-backdrop-filter: blur(14px) saturate(140%);
    border-bottom: 1px solid var(--nx-line);
    transition: background 0.3s ease, border-color 0.3s ease;
}
.nx-header.nx-scrolled { background: rgba(7, 7, 12, 0.95); border-bottom-color: var(--nx-line-2); }
.nx-header-inner {
    max-width: 1400px;
    margin: 0 auto;
    padding: 18px 32px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
}

/* Logo */
.nx-logo a { display: inline-flex; align-items: center; gap: 10px; }
.nx-logo img { max-height: 40px; width: auto; }
.nx-logo-mark { display: flex; align-items: center; gap: 10px; }
.nx-logo-icon {
    width: 34px; height: 34px;
    background: var(--nx-ink);
    color: var(--nx-bg);
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--nx-font-display);
    font-size: 22px;
    border-radius: 4px;
    transform: skew(-8deg);
    transition: background 0.3s ease;
}
.nx-logo-icon span { transform: skew(8deg); }
.nx-logo-mark:hover .nx-logo-icon { background: var(--nx-accent); }
.nx-logo-text {
    font-family: var(--nx-font-sans);
    font-weight: 700;
    font-size: 15px;
    letter-spacing: 2px;
    color: var(--nx-ink);
}
.nx-logo-text em { font-style: normal; color: var(--nx-accent); }

/* Nav main */
.nx-nav-main { flex: 1; display: flex; justify-content: center; }
.nx-nav-list {
    display: flex;
    gap: 4px;
    align-items: center;
}
.nx-nav-list > li > a {
    display: inline-block;
    padding: 10px 16px;
    color: var(--nx-ink);
    font-family: var(--nx-font-sans);
    font-size: 13px;
    font-weight: 500;
    letter-spacing: 1px;
    text-transform: uppercase;
    position: relative;
    transition: color 0.3s ease;
}
.nx-nav-list > li > a::after {
    content: '';
    position: absolute;
    bottom: 4px;
    left: 50%;
    transform: translateX(-50%);
    width: 0;
    height: 2px;
    background: var(--nx-accent);
    transition: width 0.3s ease;
}
.nx-nav-list > li > a:hover { color: var(--nx-accent); }
.nx-nav-list > li > a:hover::after { width: calc(100% - 32px); }
.nx-nav-list > li.current-menu-item > a,
.nx-nav-list > li.current_page_item > a { color: var(--nx-accent); }
.nx-nav-list > li.current-menu-item > a::after { width: calc(100% - 32px); }

/* Submenu */
.nx-nav-list .sub-menu {
    position: absolute;
    top: 100%;
    left: 0;
    background: var(--nx-bg-2);
    border: 1px solid var(--nx-line);
    border-radius: 14px;
    padding: 10px;
    min-width: 200px;
    opacity: 0;
    visibility: hidden;
    transform: translateY(8px);
    transition: all 0.25s ease;
    box-shadow: 0 20px 60px rgba(0,0,0,0.5);
}
.nx-nav-list > li { position: relative; }
.nx-nav-list > li:hover .sub-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}
.nx-nav-list .sub-menu a {
    display: block;
    padding: 10px 14px;
    color: var(--nx-ink-dim);
    font-size: 13px;
    border-radius: 8px;
    transition: all 0.2s ease;
}
.nx-nav-list .sub-menu a:hover {
    background: var(--nx-bg-3);
    color: var(--nx-accent);
}

/* Header actions */
.nx-header-actions { display: flex; align-items: center; gap: 8px; }
.nx-btn-icon {
    width: 40px; height: 40px;
    border: 1px solid var(--nx-line);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--nx-ink);
    transition: all 0.3s ease;
}
.nx-btn-icon:hover {
    background: var(--nx-accent);
    color: var(--nx-bg);
    border-color: var(--nx-accent);
}

/* Cart button */
.nx-cart-btn {
    margin-left: 8px;
    padding: 10px 18px 10px 16px;
    background: var(--nx-ink);
    color: var(--nx-bg);
    border-radius: 100px;
    font-family: var(--nx-font-sans);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 1.5px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    transition: all 0.3s ease;
}
.nx-cart-btn:hover {
    background: var(--nx-accent);
    color: var(--nx-bg);
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(0, 240, 255, 0.4);
}
.nx-cart-icon { flex-shrink: 0; }
.nx-cart-count {
    transition: transform 0.3s var(--nx-ease);
    background: var(--nx-bg);
    color: var(--nx-accent);
    padding: 2px 8px;
    border-radius: 100px;
    font-family: var(--nx-font-mono);
    font-size: 10px;
    font-weight: 700;
    min-width: 26px;
    text-align: center;
}

/* Mobile menu toggle */
.nx-menu-toggle {
    display: none;
    width: 44px;
    height: 44px;
    border: 1px solid var(--nx-line-2);
    border-radius: 50%;
    background: transparent;
    color: var(--nx-ink);
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.25s ease;
    flex-shrink: 0;
}
.nx-menu-toggle:hover {
    border-color: var(--nx-accent);
    color: var(--nx-accent);
}
.nx-menu-icon { width: 18px; height: 14px; position: relative; display: block; }
.nx-menu-icon span {
    position: absolute;
    left: 0;
    width: 100%;
    height: 2px;
    background: currentColor;
    border-radius: 2px;
    transition: all 0.3s ease;
}
.nx-menu-icon span:nth-child(1) { top: 0; }
.nx-menu-icon span:nth-child(2) { top: 6px; width: 70%; }
.nx-menu-icon span:nth-child(3) { top: 12px; }

/* Search overlay */
.nx-search-overlay {
    position: fixed;
    inset: 0;
    z-index: 200;
    background: rgba(7, 7, 12, 0.92);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    display: flex;
    align-items: flex-start;
    padding-top: 20vh;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.3s ease;
}
.nx-search-overlay[data-nx-open] {
    opacity: 1;
    pointer-events: auto;
}
.nx-search-overlay[hidden] { display: none !important; }
.nx-search-inner {
    width: 100%;
    max-width: 800px;
    margin: 0 auto;
    padding: 0 32px;
    transform: translateY(-12px);
    transition: transform 0.35s var(--nx-ease);
}
.nx-search-overlay[data-nx-open] .nx-search-inner { transform: none; }
.nx-search-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 20px;
}
.nx-search-kicker {
    font-family: var(--nx-font-mono);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 2px;
    color: var(--nx-accent);
}
.nx-search-close {
    width: 44px;
    height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--nx-line-2);
    border-radius: 50%;
    padding: 0 !important;
}
.nx-search-form {
    position: relative;
    display: flex;
    align-items: center;
    gap: 10px;
    border-bottom: 2px solid var(--nx-accent);
    padding-bottom: 16px;
}
#nx-search-input {
    flex: 1;
    background: transparent;
    border: none;
    outline: none;
    color: var(--nx-ink);
    font-family: var(--nx-font-display);
    font-size: clamp(28px, 5vw, 48px);
    font-weight: 400;
    letter-spacing: -0.02em;
    text-transform: uppercase;
    padding: 8px 0;
}
#nx-search-input::placeholder { color: var(--nx-ink-low); }
.nx-search-submit, .nx-search-close {
    background: transparent;
    color: var(--nx-ink);
    padding: 12px;
    transition: color 0.3s ease;
}
.nx-search-submit:hover { color: var(--nx-accent); }
.nx-search-close:hover { color: var(--nx-accent-hot); }

/* Mobile menu drawer */
.nx-mobile-menu {
    position: fixed;
    top: 0;
    right: -100%;
    width: 88%;
    max-width: 360px;
    height: 100vh;
    height: 100dvh;
    background: linear-gradient(180deg, #0d0d15 0%, #07070c 100%);
    border-left: 1px solid var(--nx-line);
    z-index: 300;
    transition: right 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    box-shadow: -20px 0 60px rgba(0, 0, 0, 0.7);
}
.nx-mobile-menu[data-nx-open] { right: 0; }
.nx-mobile-menu[hidden] { display: none !important; }
.nx-mobile-menu-inner {
    padding: 20px 24px 32px;
    display: flex;
    flex-direction: column;
    gap: 20px;
    min-height: 100%;
}

/* Backdrop oscuro detrás del drawer */
.nx-mobile-backdrop {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.75);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    z-index: 250;
    opacity: 0;
    transition: opacity 0.3s ease;
    cursor: pointer;
}
.nx-mobile-backdrop[data-nx-open] { opacity: 1; }
.nx-mobile-backdrop[hidden] { display: none !important; }

/* Header del drawer */
.nx-mobile-menu-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-bottom: 14px;
    border-bottom: 1px solid var(--nx-line);
}
.nx-mobile-menu-logo {
    display: flex;
    align-items: center;
    gap: 10px;
}
.nx-mobile-menu-logo .nx-logo-icon {
    width: 32px;
    height: 32px;
    background: var(--nx-accent);
    color: var(--nx-bg);
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--nx-font-display);
    font-size: 17px;
    border-radius: 8px;
    letter-spacing: 0;
}
.nx-mobile-menu-logo-text {
    font-family: var(--nx-font-display);
    font-size: 13px;
    color: var(--nx-ink);
    letter-spacing: 0.02em;
    text-transform: uppercase;
    line-height: 1;
}
.nx-mobile-menu-logo-text em {
    color: var(--nx-accent);
    font-style: normal;
    opacity: 0.7;
}
.nx-mobile-menu-close {
    width: 36px;
    height: 36px;
    border: 1px solid var(--nx-line);
    background: transparent;
    border-radius: 50%;
    color: var(--nx-ink-dim);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.25s ease;
    flex-shrink: 0;
    padding: 0;
}
.nx-mobile-menu-close svg { width: 18px; height: 18px; }
.nx-mobile-menu-close:hover {
    border-color: var(--nx-accent-hot);
    color: var(--nx-accent-hot);
    transform: rotate(90deg);
}

/* Buscador */
.nx-mobile-search {
    display: flex;
    gap: 6px;
    align-items: center;
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid var(--nx-line);
    border-radius: 100px;
    padding: 4px 6px 4px 16px;
    transition: border-color 0.25s ease;
}
.nx-mobile-search:focus-within {
    border-color: var(--nx-accent);
    background: rgba(0, 240, 255, 0.04);
}
.nx-mobile-search input {
    flex: 1;
    background: transparent;
    border: none;
    outline: none;
    color: var(--nx-ink);
    font-family: var(--nx-font-sans);
    font-size: 13px;
    padding: 8px 0;
    min-width: 0;
}
.nx-mobile-search input::placeholder {
    color: var(--nx-ink-low);
    font-weight: 400;
}
.nx-mobile-search button {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--nx-accent);
    color: var(--nx-bg);
    border: none;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    flex-shrink: 0;
    transition: transform 0.2s ease;
}
.nx-mobile-search button:hover { transform: scale(1.05); }
.nx-mobile-search button svg { width: 14px; height: 14px; }

/* Lista de navegación */
.nx-mobile-nav-list {
    list-style: none;
    padding: 0;
    margin: 0;
}
.nx-mobile-nav-list > li {
    border-bottom: 1px solid rgba(255, 255, 255, 0.04);
}
.nx-mobile-nav-list > li:last-child {
    border-bottom: none;
}

/* Fila del item: link + botón toggle */
.nx-mobile-nav-item-row {
    display: flex;
    align-items: stretch;
    gap: 4px;
    position: relative;
}
.nx-mobile-nav-list > li > .nx-mobile-nav-item-row > .nx-mobile-nav-link,
.nx-mobile-nav-list > li > a {
    flex: 1;
    display: flex;
    align-items: center;
    padding: 13px 4px;
    font-family: var(--nx-font-sans);
    font-size: 15px;
    font-weight: 600;
    color: var(--nx-ink);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    transition: color 0.2s ease, padding-left 0.25s ease;
    text-decoration: none;
    line-height: 1.2;
    position: relative;
    min-width: 0;
}
.nx-mobile-nav-list > li > .nx-mobile-nav-item-row > .nx-mobile-nav-link:hover,
.nx-mobile-nav-list > li > a:hover,
.nx-mobile-nav-list > li > .nx-mobile-nav-item-row > .nx-mobile-nav-link:focus,
.nx-mobile-nav-list > li > a:focus {
    color: var(--nx-accent);
    padding-left: 10px;
}

/* Botón toggle del submenú (chevron) */
.nx-submenu-toggle {
    flex-shrink: 0;
    width: 40px;
    height: 40px;
    border: none;
    background: transparent;
    color: var(--nx-ink-low);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    border-radius: 8px;
    transition: all 0.25s ease;
    align-self: center;
    padding: 0;
}
.nx-submenu-toggle svg {
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}
.nx-submenu-toggle:hover {
    background: rgba(0, 240, 255, 0.06);
    color: var(--nx-accent);
}
.nx-submenu-toggle[aria-expanded="true"] {
    color: var(--nx-accent);
}
.nx-submenu-toggle[aria-expanded="true"] svg {
    transform: rotate(180deg);
}

/* Item activo */
.nx-mobile-nav-list > li.current-menu-item > .nx-mobile-nav-item-row > .nx-mobile-nav-link,
.nx-mobile-nav-list > li.current_page_item > .nx-mobile-nav-item-row > .nx-mobile-nav-link,
.nx-mobile-nav-list > li.current-menu-item > a,
.nx-mobile-nav-list > li.current_page_item > a {
    color: var(--nx-accent);
}
.nx-mobile-nav-list > li.current-menu-item > .nx-mobile-nav-item-row::before,
.nx-mobile-nav-list > li.current_page_item > .nx-mobile-nav-item-row::before {
    content: '';
    position: absolute;
    left: -24px;
    top: 50%;
    transform: translateY(-50%);
    width: 3px;
    height: 20px;
    background: var(--nx-accent);
    border-radius: 0 2px 2px 0;
}
.nx-mobile-nav-list > li.is-open > .nx-mobile-nav-item-row > .nx-mobile-nav-link {
    color: var(--nx-accent);
}

/* Submenús desplegables con animación */
.nx-mobile-nav-list .nx-submenu,
.nx-mobile-nav-list .sub-menu {
    list-style: none;
    padding: 0;
    margin: 0 0 0 4px;
    overflow: hidden;
    max-height: 0;
    transition: max-height 0.35s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
}
.nx-mobile-nav-list .nx-submenu[hidden] {
    display: none;
}
.nx-mobile-nav-list > li.is-open > .nx-submenu,
.nx-mobile-nav-list > li.is-open > .sub-menu {
    /* max-height se setea via JS con scrollHeight real */
}
.nx-mobile-nav-list .nx-submenu::before,
.nx-mobile-nav-list .sub-menu::before {
    content: '';
    position: absolute;
    left: 12px;
    top: 8px;
    bottom: 12px;
    width: 1px;
    background: var(--nx-line);
}
.nx-mobile-nav-list .nx-submenu li,
.nx-mobile-nav-list .sub-menu li {
    border-bottom: none !important;
}
.nx-mobile-nav-list .nx-submenu a,
.nx-mobile-nav-list .sub-menu a {
    display: block;
    font-size: 13px;
    font-family: var(--nx-font-sans);
    font-weight: 500;
    text-transform: none;
    color: var(--nx-ink-dim);
    padding: 10px 14px 10px 28px;
    letter-spacing: 0.02em;
    transition: all 0.2s ease;
    border-radius: 6px;
    text-decoration: none;
    position: relative;
}
.nx-mobile-nav-list .nx-submenu a::before,
.nx-mobile-nav-list .sub-menu a::before {
    content: '';
    position: absolute;
    left: 12px;
    top: 50%;
    width: 8px;
    height: 1px;
    background: var(--nx-line);
    transform: translateY(-50%);
    transition: all 0.2s ease;
}
.nx-mobile-nav-list .nx-submenu a:hover,
.nx-mobile-nav-list .sub-menu a:hover,
.nx-mobile-nav-list .nx-submenu a:focus,
.nx-mobile-nav-list .sub-menu a:focus {
    color: var(--nx-ink);
    background: rgba(255, 255, 255, 0.03);
    padding-left: 32px;
}
.nx-mobile-nav-list .nx-submenu a:hover::before,
.nx-mobile-nav-list .sub-menu a:hover::before {
    width: 12px;
    background: var(--nx-accent);
}
.nx-mobile-nav-list .nx-submenu li:last-child a,
.nx-mobile-nav-list .sub-menu li:last-child a {
    margin-bottom: 4px;
}

/* ============================================================
 * FIBOSEARCH - Ajustes visuales para que combine con el tema
 * ============================================================ */
.nx-fibosearch-wrap {
    width: 100%;
    max-width: 720px;
    margin: 0 auto;
}
.nx-fibosearch-wrap .dgwt-wcas-search-wrapp {
    width: 100% !important;
    max-width: 100% !important;
}
.nx-fibosearch-wrap .dgwt-wcas-search-input {
    background: rgba(255, 255, 255, 0.04) !important;
    border: 1px solid var(--nx-line) !important;
    color: var(--nx-ink) !important;
    border-radius: 100px !important;
    padding: 14px 48px 14px 22px !important;
    font-family: var(--nx-font-sans) !important;
    font-size: 15px !important;
    height: auto !important;
    transition: all 0.25s ease !important;
}
.nx-fibosearch-wrap .dgwt-wcas-search-input:focus {
    border-color: var(--nx-accent) !important;
    background: rgba(0, 240, 255, 0.04) !important;
    outline: none !important;
    box-shadow: 0 0 0 3px rgba(0, 240, 255, 0.12) !important;
}
.nx-fibosearch-wrap .dgwt-wcas-search-input::placeholder {
    color: var(--nx-ink-low) !important;
    font-weight: 400 !important;
}
.nx-fibosearch-wrap .dgwt-wcas-sf-wrapp button[type="submit"],
.nx-fibosearch-wrap .dgwt-wcas-search-submit {
    background: var(--nx-accent) !important;
    color: var(--nx-bg) !important;
    border: none !important;
    border-radius: 50% !important;
    right: 6px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    width: 38px !important;
    height: 38px !important;
}
.nx-fibosearch-wrap .dgwt-wcas-search-icon svg,
.nx-fibosearch-wrap .dgwt-wcas-search-icon-handler svg {
    fill: var(--nx-bg) !important;
}
.nx-fibosearch-wrap .js-dgwt-wcas-search-preloader {
    color: var(--nx-accent) !important;
}

/* Suggestions dropdown */
.dgwt-wcas-suggestions-wrapp {
    background: var(--nx-bg-2) !important;
    border: 1px solid var(--nx-line) !important;
    border-radius: 16px !important;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.6) !important;
    margin-top: 8px !important;
    overflow: hidden !important;
}
.dgwt-wcas-suggestion {
    background: transparent !important;
    color: var(--nx-ink) !important;
    border-bottom: 1px solid var(--nx-line) !important;
    padding: 12px 16px !important;
    transition: background 0.2s ease !important;
}
.dgwt-wcas-suggestion:last-child {
    border-bottom: none !important;
}
.dgwt-wcas-suggestion:hover,
.dgwt-wcas-suggestion.dgwt-wcas-suggestion-selected,
.dgwt-wcas-suggestion[aria-selected="true"] {
    background: rgba(0, 240, 255, 0.08) !important;
}
.dgwt-wcas-st-title,
.dgwt-wcas-sp-title {
    color: var(--nx-ink) !important;
    font-family: var(--nx-font-sans) !important;
    font-weight: 600 !important;
}
.dgwt-wcas-st-price,
.dgwt-wcas-sp-price {
    color: var(--nx-accent) !important;
    font-family: var(--nx-font-mono) !important;
    font-weight: 700 !important;
}
.dgwt-wcas-st-price ins,
.dgwt-wcas-sp-price ins {
    color: var(--nx-accent) !important;
    text-decoration: none !important;
    background: transparent !important;
}
.dgwt-wcas-st-price del,
.dgwt-wcas-sp-price del {
    color: var(--nx-ink-dim) !important;
    opacity: 1 !important;
}
.dgwt-wcas-st-excerpt,
.dgwt-wcas-sp-title {
    color: var(--nx-ink-dim) !important;
}
/* Categorías dentro de FiboSearch */
.dgwt-wcas-suggestion-headline {
    background: var(--nx-bg-3) !important;
    color: var(--nx-ink-dim) !important;
    font-family: var(--nx-font-mono) !important;
    font-size: 10px !important;
    font-weight: 700 !important;
    letter-spacing: 1.5px !important;
    text-transform: uppercase !important;
    padding: 10px 16px !important;
    border-bottom: 1px solid var(--nx-line) !important;
}
/* Ver todos los resultados (footer) */
.dgwt-wcas-sf-results,
.dgwt-wcas-details-more-products {
    background: var(--nx-accent) !important;
    color: var(--nx-bg) !important;
    font-family: var(--nx-font-mono) !important;
    font-weight: 700 !important;
    letter-spacing: 1px !important;
    text-transform: uppercase !important;
}

/* FiboSearch dentro del drawer mobile: ocultar sugerencias si no hay espacio */
.nx-mobile-menu .nx-fibosearch-wrap {
    max-width: 100%;
}
.nx-mobile-menu .dgwt-wcas-search-input {
    padding: 11px 44px 11px 18px !important;
    font-size: 13px !important;
}
.nx-mobile-menu .dgwt-wcas-sf-wrapp button[type="submit"],
.nx-mobile-menu .dgwt-wcas-search-submit {
    width: 32px !important;
    height: 32px !important;
    right: 4px !important;
}

/* Sección de utilidad */
.nx-mobile-menu-utility {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-top: auto;
    padding-top: 20px;
    border-top: 1px solid var(--nx-line);
}
.nx-mobile-menu-utility::before {
    content: 'MI ESPACIO';
    display: block;
    font-family: var(--nx-font-mono);
    font-size: 10px;
    font-weight: 600;
    color: var(--nx-ink-low);
    letter-spacing: 2px;
    margin-bottom: 8px;
    padding: 0 4px;
}
.nx-mobile-util-link {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 11px 14px;
    background: rgba(255, 255, 255, 0.025);
    border: 1px solid var(--nx-line);
    border-radius: 10px;
    color: var(--nx-ink);
    font-family: var(--nx-font-sans);
    font-size: 13px;
    font-weight: 500;
    text-transform: none;
    letter-spacing: 0;
    text-decoration: none;
    transition: all 0.25s ease;
}
.nx-mobile-util-link:hover {
    border-color: var(--nx-accent);
    background: rgba(0, 240, 255, 0.04);
    color: var(--nx-ink);
}
.nx-mobile-util-link svg {
    color: var(--nx-accent);
    flex-shrink: 0;
    width: 16px;
    height: 16px;
}
.nx-mobile-util-link span:first-of-type { flex: 1; }
.nx-mobile-util-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 22px;
    height: 22px;
    padding: 0 7px;
    background: var(--nx-accent);
    color: var(--nx-bg);
    border-radius: 100px;
    font-family: var(--nx-font-mono);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0;
}

/* ============================================================
 * 6. SECTION HELPERS (label, title, lead)
 * ============================================================ */
.nx-section {
    padding: 120px 32px;
    position: relative;
    width: 100vw !important;
    max-width: 100% !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
    box-sizing: border-box;
}
.nx-section-label {
    display: flex;
    align-items: center;
    gap: 14px;
    font-family: var(--nx-font-mono);
    font-size: 11px;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--nx-ink-dim);
    margin-bottom: 32px;
    font-weight: 600;
}
.nx-section-label::before {
    content: '';
    width: 40px;
    height: 1px;
    background: var(--nx-accent);
}
.nx-section-number { color: var(--nx-accent); font-weight: 600; }

.nx-section-huge-title {
    font-family: var(--nx-font-display);
    font-size: clamp(52px, 8.5vw, 136px);
    font-weight: 400;
    line-height: 0.85;
    letter-spacing: -0.02em;
    text-transform: uppercase;
    margin-bottom: 24px;
    color: var(--nx-ink);
}
.nx-section-huge-title .nx-italic { font-style: italic; color: var(--nx-accent); }
.nx-section-huge-title .nx-outline { -webkit-text-stroke: 1.5px var(--nx-ink); color: transparent; }

.nx-section-lead {
    font-family: var(--nx-font-sans);
    font-size: 18px;
    line-height: 1.55;
    color: var(--nx-ink-dim);
    max-width: 540px;
    margin-bottom: 60px;
}

/* Globally applied utility classes */
.nx-italic { font-style: italic; color: var(--nx-accent); }
.nx-outline { -webkit-text-stroke: 1.5px var(--nx-ink); color: transparent; }
.nx-accent { color: var(--nx-accent); }

/* ============================================================
 * 7. BUTTONS
 * ============================================================ */
.nx-btn-hero {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    padding: 18px 30px;
    background: var(--nx-ink);
    color: var(--nx-bg);
    border-radius: 100px;
    font-family: var(--nx-font-sans);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    overflow: hidden;
}
.nx-btn-hero::before {
    content: '';
    position: absolute;
    inset: 0;
    background: var(--nx-accent);
    transform: translateX(-100%);
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}
.nx-btn-hero:hover::before { transform: translateX(0); }
.nx-btn-hero > * { position: relative; z-index: 1; }
.nx-btn-hero:hover { color: var(--nx-bg); transform: translateY(-2px); }

.nx-btn-ghost {
    background: transparent;
    color: var(--nx-ink);
    border: 1px solid var(--nx-line-2);
}
.nx-btn-ghost::before { background: var(--nx-ink); }
.nx-btn-ghost:hover { color: var(--nx-bg); border-color: var(--nx-ink); }

.nx-btn-arrow {
    display: inline-block;
    transition: transform 0.3s ease;
}
.nx-btn-hero:hover .nx-btn-arrow { transform: translateX(4px); }

/* ============================================================
 * 8. HERO V3
 * ============================================================ */
/* El resto del hero y del juego destacado, la cinta, las reseñas en fila,
   los pagos y «Lo más vendido» están en paginas/portada.css (solo se
   cargan en la portada). Aquí queda lo que usa toda la web. */
/* Full-width forzado para anular cualquier .container de plugins/WP */
.nx-main,
.nx-home-main,
.nx-content-wrap,
main.nx-main {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}

@keyframes nxPulse { 50% { opacity: 0.4; } }

@keyframes nxLineUp { to { transform: translateY(0); } }

@keyframes nxChipFloat {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-10px); }
}

/* ============================================================
 * 9. TICKER MARQUEE
 * ============================================================ */
/* (todo pasó a paginas/portada.css) */

/* ============================================================
 * 10. HOME PRODUCTS SECTION (cards estilo mykd)
 * Las cards usan las mismas clases .nx-card que las del shop,
 * los estilos están en woocommerce.css. Aquí solo el wrapper.
 * ============================================================ */
.nx-products-section {
    background: var(--nx-bg);
}
.nx-home-products {
    display: grid !important;
    gap: 24px !important;
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
}
.nx-home-products li.product,
.nx-home-products .nx-home-product {
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
    background: transparent !important;
    border: none !important;
}
.nx-home-products.columns-2 { grid-template-columns: repeat(2, 1fr) !important; }
.nx-home-products.columns-3 { grid-template-columns: repeat(3, 1fr) !important; }
.nx-home-products.columns-4 { grid-template-columns: repeat(4, 1fr) !important; }

@media (max-width: 1100px) {
    .nx-home-products.columns-3,
    .nx-home-products.columns-4 { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 768px) {
    .nx-home-products,
    .nx-home-products.columns-2,
    .nx-home-products.columns-3,
    .nx-home-products.columns-4 {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 14px !important;
    }
}

/* ============================================================
 * 11. REVIEWS HORIZONTAL SCROLL
 * ============================================================ */

.nx-reviews-scroll {
    padding: 0 32px;
    display: flex;
    gap: 16px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    -ms-overflow-style: none;
    cursor: grab;
}
.nx-reviews-scroll::-webkit-scrollbar { display: none; }
.nx-reviews-scroll:active { cursor: grabbing; }
.nx-review-card {
    flex: 0 0 380px;
    scroll-snap-align: start;
    padding: 32px;
    background: var(--nx-bg-3);
    border: 1px solid var(--nx-line);
    border-radius: 20px;
    position: relative;
    transition: all 0.4s ease;
    min-height: 280px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    color: var(--nx-ink);
    text-decoration: none;
}
.nx-review-card.nx-review-card-link {
    cursor: pointer;
}
.nx-review-card.nx-review-card-link:hover .nx-review-author-product {
    color: var(--nx-accent);
}
.nx-review-card:hover {
    border-color: var(--nx-accent);
    transform: translateY(-6px);
    text-decoration: none;
}

/* ============================================================
 * REVIEWS WALL - Grid de reseñas tipo muro
 * ============================================================ */
.nx-reviews-wall-section {
    width: 100vw;
    max-width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    padding: 120px 32px 80px;
    position: relative;
    box-sizing: border-box;
}
.nx-reviews-wall-header {
    max-width: 1400px;
    margin: 0 auto 60px;
}
.nx-reviews-summary {
    max-width: 1400px;
    margin: 0 auto 48px;
    display: grid;
    grid-template-columns: 320px 1fr;
    gap: 60px;
    padding: 40px;
    background: linear-gradient(180deg, #1a1a28 0%, #12121c 100%);
    border: 1px solid var(--nx-line);
    border-radius: 24px;
    align-items: center;
}
.nx-reviews-summary-score {
    text-align: center;
    border-right: 1px solid var(--nx-line);
    padding-right: 40px;
}
.nx-reviews-avg-number {
    font-family: var(--nx-font-display);
    font-size: 96px;
    line-height: 0.9;
    color: var(--nx-accent-gold);
    margin-bottom: 12px;
}
.nx-reviews-avg-stars {
    display: flex;
    gap: 4px;
    justify-content: center;
    margin-bottom: 12px;
}
.nx-reviews-avg-label {
    font-family: var(--nx-font-mono);
    font-size: 12px;
    color: var(--nx-ink-dim);
    letter-spacing: 1px;
    text-transform: uppercase;
}
.nx-reviews-avg-label strong { color: var(--nx-ink); }
.nx-reviews-summary-bars {
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.nx-reviews-bar-row {
    display: grid;
    grid-template-columns: 48px 1fr 64px;
    gap: 16px;
    align-items: center;
}
.nx-reviews-bar-label {
    font-family: var(--nx-font-mono);
    font-size: 13px;
    color: var(--nx-ink);
    font-weight: 600;
}
.nx-reviews-bar-track {
    height: 10px;
    background: rgba(255,255,255,0.08);
    border-radius: 100px;
    overflow: hidden;
}
.nx-reviews-bar-fill {
    height: 100%;
    background: linear-gradient(90deg, var(--nx-accent) 0%, var(--nx-accent-2) 100%);
    border-radius: 100px;
    transition: width 1s cubic-bezier(0.4, 0, 0.2, 1);
}
.nx-reviews-bar-count {
    font-family: var(--nx-font-mono);
    font-size: 12px;
    color: var(--nx-ink-dim);
    text-align: right;
}

/* Filtros */
.nx-reviews-filters {
    max-width: 1400px;
    margin: 0 auto 40px;
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}
.nx-reviews-filter {
    background: transparent;
    border: 1px solid var(--nx-line-2);
    color: var(--nx-ink-dim);
    padding: 10px 18px;
    border-radius: 100px;
    font-family: var(--nx-font-mono);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 1px;
    text-transform: uppercase;
    cursor: pointer;
    transition: all 0.25s ease;
    display: inline-flex;
    align-items: center;
    gap: 8px;
}
.nx-reviews-filter:hover {
    border-color: var(--nx-accent);
    color: var(--nx-ink);
}
.nx-reviews-filter.active {
    background: var(--nx-accent);
    border-color: var(--nx-accent);
    color: #07070c;
}
.nx-reviews-filter-count {
    opacity: 0.7;
    font-size: 11px;
}
.nx-reviews-filter.active .nx-reviews-filter-count {
    opacity: 1;
}

/* Grid wall */
.nx-reviews-wall {
    max-width: 1400px;
    margin: 0 auto;
    display: grid;
    gap: 24px;
}
.nx-reviews-wall-cols-2 { grid-template-columns: repeat(2, 1fr); }
.nx-reviews-wall-cols-3 { grid-template-columns: repeat(3, 1fr); }
.nx-reviews-wall-cols-4 { grid-template-columns: repeat(4, 1fr); }

/* Card del wall - hereda de nx-review-card pero ajusta min-height */
.nx-review-card-wall {
    flex: none;
    min-height: 260px;
}
.nx-review-card-wall .nx-review-product-link {
    margin-top: 20px;
    padding-top: 16px;
    border-top: 1px dashed var(--nx-line);
    display: flex;
    align-items: center;
    gap: 10px;
    font-family: var(--nx-font-mono);
    font-size: 11px;
    color: var(--nx-ink-dim);
    letter-spacing: 0.5px;
    text-transform: uppercase;
    transition: color 0.25s ease;
}
.nx-review-card-wall:hover .nx-review-product-link {
    color: var(--nx-accent);
}
.nx-review-product-thumb {
    width: 32px;
    height: 32px;
    border-radius: 8px;
    object-fit: cover;
    border: 1px solid var(--nx-line);
}
.nx-review-product-name {
    flex: 1;
    font-weight: 600;
    letter-spacing: 0.5px;
}
.nx-review-product-arrow {
    font-size: 14px;
    transform: translateX(0);
    transition: transform 0.25s ease;
}
.nx-review-card-wall:hover .nx-review-product-arrow {
    transform: translateX(4px);
    color: var(--nx-accent);
}
.nx-review-meta-row {
    display: flex;
    align-items: center;
    gap: 6px;
    font-family: var(--nx-font-mono);
    font-size: 10px;
    color: var(--nx-ink-low);
    letter-spacing: 0.5px;
    margin-top: 2px;
}
.nx-review-verified-dot { color: var(--nx-ink-low); }
.nx-review-author-info { flex: 1; min-width: 0; }

/* Responsive wall */
@media (max-width: 1024px) {
    .nx-reviews-wall-cols-4 { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 768px) {
    .nx-reviews-wall-cols-3,
    .nx-reviews-wall-cols-4 { grid-template-columns: repeat(2, 1fr); }
    .nx-reviews-summary {
        grid-template-columns: 1fr;
        gap: 32px;
        padding: 28px;
    }
    .nx-reviews-summary-score {
        border-right: none;
        border-bottom: 1px solid var(--nx-line);
        padding-right: 0;
        padding-bottom: 28px;
    }
    .nx-reviews-avg-number { font-size: 72px; }
}
@media (max-width: 520px) {
    .nx-reviews-wall-cols-2,
    .nx-reviews-wall-cols-3,
    .nx-reviews-wall-cols-4 { grid-template-columns: 1fr; }
}

.nx-review-quote {
    font-family: var(--nx-font-display);
    font-size: 80px;
    line-height: 0.7;
    color: var(--nx-accent);
    position: absolute;
    top: 16px; right: 24px;
    opacity: 0.4;
}
.nx-review-stars-row { display: flex; gap: 4px; margin-bottom: 14px; }
.nx-star {
    width: 16px;
    height: 16px;
    background: var(--nx-accent-gold);
    clip-path: polygon(50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%);
    display: inline-block;
}
.nx-star.filled { background: var(--nx-accent-gold); }
.nx-star.empty { background: rgba(255,255,255,0.15); }
.nx-reviews-avg-stars .nx-star { width: 20px; height: 20px; }
.nx-review-text {
    font-size: 15px;
    line-height: 1.55;
    color: var(--nx-ink);
    margin-bottom: 24px;
    position: relative;
    z-index: 1;
}
.nx-review-text strong { color: var(--nx-accent); font-weight: 600; }
.nx-review-footer {
    display: flex;
    align-items: center;
    gap: 12px;
    padding-top: 20px;
    border-top: 1px solid var(--nx-line);
}
.nx-review-avatar {
    width: 40px; height: 40px;
    background: var(--nx-ink);
    color: var(--nx-bg);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--nx-font-display);
    font-size: 18px;
    flex-shrink: 0;
}
.nx-review-author-name { font-weight: 600; font-size: 13px; color: var(--nx-ink); }
.nx-review-author-product {
    font-family: var(--nx-font-mono);
    font-size: 10px;
    color: var(--nx-ink-dim);
    letter-spacing: 0.5px;
    margin-top: 2px;
    text-transform: uppercase;
}
.nx-review-verified {
    margin-left: auto;
    font-family: var(--nx-font-mono);
    font-size: 9px;
    color: var(--nx-accent);
    letter-spacing: 1px;
    text-transform: uppercase;
    display: flex;
    align-items: center;
    gap: 4px;
}
.nx-review-verified::before {
    content: '';
    width: 6px;
    height: 6px;
    background: var(--nx-accent);
    border-radius: 50%;
    box-shadow: 0 0 8px var(--nx-accent);
}

/* ============================================================
 * 12. PAYMENTS MARQUEE
 * ============================================================ */
/* (todo pasó a paginas/portada.css) */

/* ============================================================
 * 13. FOOTER
 * ============================================================ */
.nx-footer {
    padding: 120px 32px 40px;
    background: var(--nx-bg-2);
    border-top: 1px solid var(--nx-line);
    position: relative;
}
.nx-footer-inner { max-width: 1400px; margin: 0 auto; }
.nx-footer-hero {
    font-family: var(--nx-font-display);
    font-size: clamp(64px, 11vw, 180px);
    line-height: 0.85;
    letter-spacing: -0.02em;
    text-transform: uppercase;
    margin-bottom: 60px;
    color: var(--nx-ink);
}
.nx-footer-grid {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr 1fr;
    gap: 60px;
    margin-bottom: 60px;
}
.nx-footer-brand { display: flex; flex-direction: column; gap: 20px; }
.nx-footer-brand-text {
    font-size: 14px;
    line-height: 1.6;
    color: var(--nx-ink-dim);
    max-width: 320px;
}
.nx-socials { display: flex; gap: 10px; }
.nx-social {
    width: 40px; height: 40px;
    border: 1px solid var(--nx-line);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s ease;
    color: var(--nx-ink);
}
.nx-social:hover {
    background: var(--nx-accent);
    color: var(--nx-bg);
    border-color: var(--nx-accent);
    transform: translateY(-3px);
}
.nx-footer-col-label {
    font-family: var(--nx-font-mono);
    font-size: 10px;
    color: var(--nx-ink-dim);
    letter-spacing: 2px;
    text-transform: uppercase;
    margin-bottom: 20px;
    padding-bottom: 16px;
    border-bottom: 1px solid var(--nx-line);
}
.nx-footer-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.nx-footer-list li a {
    font-size: 14px;
    color: var(--nx-ink);
    transition: all 0.2s ease;
    display: flex;
    align-items: center;
    gap: 8px;
}
.nx-footer-list li a:hover { color: var(--nx-accent); }
.nx-footer-list li a::before {
    content: '→';
    opacity: 0;
    transform: translateX(-10px);
    transition: all 0.3s ease;
    color: var(--nx-accent);
}
.nx-footer-list li a:hover::before {
    opacity: 1;
    transform: translateX(0);
}
.nx-footer-bottom {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-top: 30px;
    border-top: 1px solid var(--nx-line);
    font-family: var(--nx-font-mono);
    font-size: 11px;
    color: var(--nx-ink-dim);
    letter-spacing: 0.5px;
    flex-wrap: wrap;
    gap: 10px;
}

/* ============================================================
 * 14. PAGE / SINGLE / BLOG
 * ============================================================ */
.nx-page-header {
    padding: 80px 0 40px;
}
.nx-page-content {
    padding: 0 0 80px;
    font-size: 16px;
    line-height: 1.7;
    color: var(--nx-ink);
    max-width: 800px;
}
.nx-page-content h2 {
    font-family: var(--nx-font-display);
    font-size: clamp(32px, 4vw, 56px);
    line-height: 0.9;
    text-transform: uppercase;
    margin: 1.5em 0 0.5em;
}
.nx-page-content h3 {
    font-family: var(--nx-font-display);
    font-size: clamp(24px, 3vw, 36px);
    text-transform: uppercase;
    margin: 1.2em 0 0.4em;
}
.nx-page-content a { color: var(--nx-accent); text-decoration: underline; }
.nx-page-content blockquote {
    border-left: 3px solid var(--nx-accent);
    padding: 16px 24px;
    margin: 24px 0;
    background: var(--nx-bg-3);
    border-radius: 0 12px 12px 0;
    font-style: italic;
    color: var(--nx-ink-dim);
}
.nx-page-content code {
    background: var(--nx-bg-3);
    padding: 2px 6px;
    border-radius: 4px;
    font-family: var(--nx-font-mono);
    font-size: 0.9em;
    color: var(--nx-accent);
}
.nx-page-elementor { padding: 0; }
/* Páginas hechas con Elementor, con Elementor desactivado: el mismo marco
   (10 px, como su columna). Las de solo texto quedan con los mismos tamaños
   que les daba Elementor (títulos 24 px, texto 16 px, interlineado 1,6),
   con la letra de la web y un gris que se lee mejor que el de Elementor */
.nx-sin-elementor-caja { padding: 10px; }
.nx-sin-elementor-caja--texto { color: var(--nx-ink-dim); font-size: 16px; line-height: 1.6; }
.nx-sin-elementor-caja--texto h2 { font-size: 24px; line-height: 1.2; margin: 0 0 .5em; color: var(--nx-ink); }
.nx-sin-elementor-caja--texto a { color: var(--nx-accent); }
.nx-sin-elementor-caja--texto hr { border: 0; border-top: 1px solid var(--nx-line-2); margin: 20px 0; }

/* Single post */
.nx-single-header { padding: 80px 0 30px; }
.nx-single-title {
    font-family: var(--nx-font-display);
    font-size: clamp(48px, 7vw, 100px);
    line-height: 0.9;
    text-transform: uppercase;
    letter-spacing: -0.02em;
    margin-bottom: 24px;
}
.nx-single-meta {
    display: flex;
    align-items: center;
    gap: 12px;
    font-family: var(--nx-font-mono);
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--nx-ink-dim);
}
.nx-author { display: flex; align-items: center; gap: 8px; color: var(--nx-ink); }
.nx-avatar { width: 28px; height: 28px; border-radius: 50%; }
.nx-meta-sep { opacity: 0.4; }
.nx-single-featured {
    padding: 0 0 40px;
}
.nx-single-featured img {
    border-radius: 16px;
    width: 100%;
    height: auto;
}
.nx-single-content {
    padding: 0 0 60px;
    font-size: 17px;
    line-height: 1.7;
    color: var(--nx-ink);
    max-width: 760px;
    margin-left: auto;
    margin-right: auto;
}

/* Tags */
.nx-tags {
    display: flex;
    align-items: center;
    gap: 14px;
    flex-wrap: wrap;
    padding: 30px 0;
    border-top: 1px solid var(--nx-line);
    margin-top: 30px;
}
.nx-tags-label {
    font-family: var(--nx-font-mono);
    font-size: 10px;
    letter-spacing: 2px;
    color: var(--nx-ink-dim);
}
.nx-tags-list {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}
.nx-tags-list a {
    padding: 6px 14px;
    background: var(--nx-bg-3);
    border: 1px solid var(--nx-line);
    border-radius: 100px;
    font-family: var(--nx-font-mono);
    font-size: 11px;
    color: var(--nx-ink);
    text-transform: uppercase;
    letter-spacing: 1px;
    transition: all 0.3s ease;
}
.nx-tags-list a:hover {
    background: var(--nx-accent);
    color: var(--nx-bg);
    border-color: var(--nx-accent);
}

/* Post nav */
.nx-post-nav {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    padding: 40px 0;
    border-top: 1px solid var(--nx-line);
    border-bottom: 1px solid var(--nx-line);
    margin-bottom: 40px;
    flex-wrap: wrap;
}
.nx-post-nav-prev, .nx-post-nav-next {
    color: var(--nx-ink);
    font-family: var(--nx-font-mono);
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 1px;
    transition: color 0.3s ease;
}
.nx-post-nav-prev:hover, .nx-post-nav-next:hover { color: var(--nx-accent); }

/* Posts grid */
.nx-posts-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    gap: 24px;
    margin-bottom: 60px;
}
.nx-post-card {
    background: var(--nx-bg-3);
    border: 1px solid var(--nx-line);
    border-radius: 18px;
    overflow: hidden;
    transition: all 0.4s ease;
}
.nx-post-card:hover {
    transform: translateY(-6px);
    border-color: var(--nx-accent);
}
.nx-post-thumb {
    display: block;
    overflow: hidden;
    aspect-ratio: 16/10;
}
.nx-post-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.6s ease;
}
.nx-post-card:hover .nx-post-thumb img { transform: scale(1.05); }
.nx-post-content { padding: 24px; }
.nx-post-meta {
    font-family: var(--nx-font-mono);
    font-size: 11px;
    color: var(--nx-ink-dim);
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 12px;
}
.nx-post-type { color: var(--nx-accent); }
.nx-post-title {
    font-family: var(--nx-font-display);
    font-size: 24px;
    line-height: 1;
    text-transform: uppercase;
    margin-bottom: 12px;
}
.nx-post-title a { color: var(--nx-ink); transition: color 0.2s ease; }
.nx-post-title a:hover { color: var(--nx-accent); }
.nx-post-excerpt {
    font-size: 14px;
    color: var(--nx-ink-dim);
    line-height: 1.55;
    margin-bottom: 16px;
}
.nx-post-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--nx-accent);
    font-family: var(--nx-font-mono);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 1px;
    text-transform: uppercase;
}
.nx-post-link:hover { color: var(--nx-ink); }

/* Pagination */
.nx-pagination, .woocommerce-pagination {
    display: flex;
    justify-content: center;
    gap: 6px;
    padding: 40px 0;
}
.nx-pagination .page-numbers, .woocommerce-pagination .page-numbers {
    padding: 10px 16px;
    background: var(--nx-bg-3);
    border: 1px solid var(--nx-line);
    color: var(--nx-ink);
    border-radius: 100px;
    font-family: var(--nx-font-mono);
    font-size: 12px;
    font-weight: 600;
    transition: all 0.3s ease;
    min-width: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.nx-pagination .page-numbers:hover,
.nx-pagination .page-numbers.current,
.woocommerce-pagination .page-numbers:hover,
.woocommerce-pagination .page-numbers.current {
    background: var(--nx-accent);
    color: var(--nx-bg);
    border-color: var(--nx-accent);
}

/* No results */
.nx-no-results {
    padding: 80px 0;
    text-align: center;
    color: var(--nx-ink-dim);
}
.nx-no-results h2 {
    font-family: var(--nx-font-display);
    font-size: 48px;
    color: var(--nx-ink);
    margin-bottom: 16px;
    text-transform: uppercase;
}

/* ============================================================
 * 15. 404
 * ============================================================ */
.nx-404 {
    min-height: 80vh;
    display: flex;
    align-items: center;
    text-align: center;
}
.nx-404-inner {
    max-width: 800px;
    margin: 0 auto;
    padding: 60px 32px;
}
.nx-404-glitch {
    margin-bottom: 40px;
}
.nx-404-code {
    font-family: var(--nx-font-display);
    font-size: clamp(120px, 25vw, 320px);
    line-height: 0.85;
    color: var(--nx-ink);
    position: relative;
    display: inline-block;
}
.nx-404-code::before, .nx-404-code::after {
    content: attr(data-text);
    position: absolute;
    top: 0; left: 0;
    width: 100%; height: 100%;
    overflow: hidden;
}
.nx-404-code::before {
    color: var(--nx-accent);
    z-index: -1;
    transform: translate(-4px, -2px);
    clip-path: inset(20% 0 60% 0);
    animation: nxGlitch1 3s infinite linear alternate;
}
.nx-404-code::after {
    color: var(--nx-accent-hot);
    z-index: -2;
    transform: translate(4px, 2px);
    clip-path: inset(60% 0 20% 0);
    animation: nxGlitch2 3s infinite linear alternate;
}
@keyframes nxGlitch1 {
    0%, 100% { clip-path: inset(20% 0 60% 0); }
    50% { clip-path: inset(40% 0 40% 0); }
}
@keyframes nxGlitch2 {
    0%, 100% { clip-path: inset(60% 0 20% 0); }
    50% { clip-path: inset(40% 0 40% 0); }
}
.nx-404-actions {
    display: flex;
    gap: 12px;
    justify-content: center;
    margin-top: 40px;
    flex-wrap: wrap;
}

/* ============================================================
 * 16. SCROLL REVEAL
 * ============================================================ */
.nx-reveal {
    opacity: 0;
    transform: translateY(40px);
    transition: opacity 1s cubic-bezier(0.2, 0.8, 0.2, 1), transform 1s cubic-bezier(0.2, 0.8, 0.2, 1);
}
.nx-reveal.nx-in {
    opacity: 1;
    transform: translateY(0);
}

/* ============================================================
 * 17. RESPONSIVE
 * ============================================================ */
@media (max-width: 1100px) {

    .nx-products-masonry, .nx-grid-4 { grid-template-columns: repeat(3, 1fr); }
    .nx-tile-tall { grid-row: span 1; min-height: 380px; }
    .nx-tile-wide { grid-column: span 1; }
    .nx-footer-grid { grid-template-columns: 1fr 1fr 1fr; }
    .nx-footer-brand { grid-column: span 3; }
}
@media (max-width: 768px) {
    .nx-container { padding: 0 20px; }
    .nx-header-inner { padding: 14px 20px; gap: 12px; }
    .nx-nav-main { display: none; }
    .nx-menu-toggle { display: flex; }
    .nx-cart-btn .nx-cart-label { display: none; }
    .nx-cart-btn { padding: 10px 14px 10px 12px; }

    .nx-section { padding: 80px 20px; }
    .nx-products-masonry, .nx-grid-4 { grid-template-columns: repeat(2, 1fr); gap: 12px; }
    .nx-product-tile { min-height: 240px; padding: 18px; }
    .nx-pt-name { font-size: 18px; }
    .nx-tile-tall .nx-pt-name { font-size: 22px; }
    .nx-pt-discount { font-size: 24px; }
    .nx-review-card { flex: 0 0 280px; padding: 24px; }
    
    .nx-footer { padding: 80px 20px 30px; }
    .nx-footer-grid { grid-template-columns: 1fr 1fr; gap: 30px; }
    .nx-footer-brand { grid-column: span 2; }

    .nx-section-huge-title { font-size: clamp(48px, 14vw, 80px); }
    .nx-section-lead { font-size: 15px; }
    .nx-footer-hero { font-size: clamp(48px, 14vw, 80px); }
}

/* ============================================================
 * 18. PROMO STRIP (cart & checkout helpers)
 * ============================================================ */
.nx-cart-promo {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 20px 24px;
    background: linear-gradient(135deg, rgba(0, 240, 255, 0.08), rgba(185, 131, 255, 0.08));
    border: 1px solid var(--nx-accent);
    border-radius: 16px;
    margin-bottom: 30px;
}
.nx-cart-promo-icon {
    font-size: 28px;
    flex-shrink: 0;
}
.nx-cart-promo-text {
    font-size: 14px;
    color: var(--nx-ink);
    line-height: 1.5;
}
.nx-cart-promo-text strong { color: var(--nx-accent); }

/* → assets/css/paginas/ficha.css (se carga solo donde hace falta) */

/* ============================================================
 * 19. v3.1 · RENDIMIENTO Y PULIDO
 * ============================================================ */

/* Secciones bajo el pliegue: el navegador no las pinta hasta
   que se acercan a la pantalla (menos trabajo al cargar). */
.nx-reviews-section,
.nx-payments-section,
.nx-footer {
    content-visibility: auto;
    contain-intrinsic-size: auto 900px;
}

/* Cabecera en celulares: fondo sólido, sin blur (el blur en
   elementos sticky es de lo más caro al hacer scroll en móvil) */
@media (max-width: 900px) {
    .nx-header,
    .nx-header.nx-scrolled {
        background: rgba(7, 7, 12, 0.97);
        backdrop-filter: none;
        -webkit-backdrop-filter: none;
    }
    
}
@media (max-width: 768px) {
    .nx-account-link { display: none; } /* está dentro del menú */
    .nx-header-actions { gap: 6px; }
    .nx-search-overlay { padding-top: 12vh; }
    .nx-search-inner { padding: 0 20px; }
}

/* ============================================================
 * 20. v3.2 · MÓDULOS INTEGRADOS
 * ============================================================ */

/* Íconos sociales en la cabecera (antes plugin Nasus Social Menu) */
.nx-social-group { display: inline-flex; align-items: center; gap: 8px; margin-right: 4px; }
.nx-social-group:empty { display: none; }
.nx-social-chip .nx-social-icon { display: block; }
.nx-social-instagram:hover,
.nx-social-instagram:focus-visible {
    background: transparent;
    color: var(--nx-accent-2);
    border-color: var(--nx-accent-2);
    box-shadow: 0 0 16px rgba(185, 131, 255, 0.35);
}
.nx-social-discord:hover,
.nx-social-discord:focus-visible {
    background: transparent;
    color: var(--nx-accent);
    border-color: var(--nx-accent);
    box-shadow: 0 0 16px rgba(0, 240, 255, 0.35);
}
@media (max-width: 1100px) {
    .nx-social-group { display: none; } /* en pantallas chicas van en el menú */
}

/* ------------------------------------------------------------
 * Selector de moneda CURCY (barra lateral con banderas)
 *
 * Cerrado: pestaña con la bandera activa pegada al borde derecho, dentro
 * de la pantalla (antes snippet "NSC Overflow Fix"). Ese snippet dejaba
 * el ancho en 64 px SIEMPRE: al tocarlo en el celular CURCY lo abre a
 * pantalla completa y quedaba una franja gris con los nombres cortados.
 * Abierto: en celular, panel oscuro centrado sobre la página (se cierra
 * tocando fuera); en escritorio, panel al pasar el mouse.
 * ------------------------------------------------------------ */
html body .woocommerce-multi-currency.wmc-sidebar { max-width: none !important; }
html body .woocommerce-multi-currency.wmc-sidebar:not(.wmc-hover) {
    right: 0 !important;
    left: auto !important;
    max-width: 58px !important;
    overflow: hidden !important;
    filter: drop-shadow(0 6px 18px rgba(0, 0, 0, .45));
}
html body .woocommerce-multi-currency.wmc-sidebar:not(.wmc-hover) .wmc-title,
html body .woocommerce-multi-currency.wmc-sidebar:not(.wmc-hover) .wmc-list-currencies .wmc-sidebar-open { display: none !important; }
html body .woocommerce-multi-currency.wmc-sidebar .wmc-list-currencies .wmc-currency {
    height: auto !important;
    margin: 0 !important;
    background: var(--nx-bg-3) !important;
    border: 1px solid var(--nx-line);
    transition: border-color .2s ease, background .2s ease;
}
html body .woocommerce-multi-currency.wmc-sidebar:not(.wmc-hover) .wmc-list-currencies .wmc-currency.wmc-active {
    padding: 7px 0 7px 8px;
    border-color: rgba(0, 240, 255, .45);
    border-right: 0;
    border-radius: 14px 0 0 14px;
}
html body .woocommerce-multi-currency.wmc-sidebar .wmc-list-currencies .wmc-currency a {
    justify-content: flex-start !important;
    gap: 12px;
    line-height: 1.2 !important;
    color: var(--nx-ink) !important;
}
html body .woocommerce-multi-currency.wmc-sidebar .wmc-list-currencies .wmc-currency .wmc-currency-content-left { line-height: 0 !important; }
html body .woocommerce-multi-currency.wmc-sidebar .vi-flag-64 { border-radius: 6px; overflow: hidden; }
.woocommerce-multi-currency img,
.wmc-sidebar img { max-width: 48px !important; height: auto !important; }

/* ------------------------------------------------------------
 * Selector de moneda de la cabecera (inc/modules/currency-switcher.php)
 * Con él, la barra lateral de CURCY se oculta.
 * ------------------------------------------------------------ */
html body.nx-cur-on .woocommerce-multi-currency.wmc-sidebar { display: none !important; }

.nx-cur { position: relative; display: block; flex-shrink: 0; }
.nx-cur > summary { list-style: none; }
.nx-cur > summary::-webkit-details-marker { display: none; }
.nx-cur-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    height: 38px;
    padding: 0 12px 0 9px;
    background: rgba(255, 255, 255, .04);
    border: 1px solid var(--nx-line);
    border-radius: 100px;
    color: var(--nx-ink);
    font-family: var(--nx-font-mono);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 1px;
    cursor: pointer;
    user-select: none;
    transition: border-color .2s ease, background .2s ease;
}
.nx-cur-btn:hover,
.nx-cur[open] .nx-cur-btn { background: rgba(0, 240, 255, .06); border-color: rgba(0, 240, 255, .45); }
.nx-cur-btn:focus-visible { outline: 2px solid var(--nx-accent); outline-offset: 2px; }
.nx-cur-arrow { color: #8a8a9e; transition: transform .2s ease; }
.nx-cur[open] .nx-cur-arrow { transform: rotate(180deg); }
.nx-cur.wmc-currency-loading .nx-cur-btn { opacity: .6; pointer-events: none; }

/* Bandera completa (sprite de CURCY 60×40 a la mitad). En círculo se
   cortaba: a Chile le faltaba el cuadro azul con la estrella. */
.nx-cur-flag {
    position: relative;
    display: inline-block;
    flex-shrink: 0;
    width: 30px;
    height: 20px;
    border-radius: 5px;
    overflow: hidden;
    box-shadow: 0 0 0 1px rgba(255, 255, 255, .16);
}
html body .nx-cur-flag .vi-flag-64 {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) scale(.5);
}
/* Banderas dibujadas (currency-switcher.php): llenan la cajita */
html body .nx-cur-flag .nx-cur-svg {
    display: block;
    width: 100%;
    height: 100%;
}

.nx-cur-menu {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    z-index: 1000;
    width: 168px;
    padding: 6px;
    background: var(--nx-bg-3);
    border: 1px solid var(--nx-line);
    border-radius: 14px;
    box-shadow: 0 18px 40px rgba(0, 0, 0, .5);
}
html body .woocommerce-multi-currency.nx-cur .nx-cur-list {
    display: block;
    width: auto;
    max-height: 300px;
    margin: 0;
    padding: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    list-style: none;
    font-size: inherit;
    scrollbar-width: thin;
    scrollbar-color: rgba(255, 255, 255, .18) transparent;
}
html body .woocommerce-multi-currency.nx-cur .wmc-list-currencies .wmc-currency,
html body .woocommerce-multi-currency.nx-cur .wmc-list-currencies .wmc-currency:hover {
    display: block;
    width: auto;
    height: auto;
    margin: 0;
    background: transparent !important;
}
html body .woocommerce-multi-currency.nx-cur .wmc-list-currencies .wmc-currency span,
html body .woocommerce-multi-currency.nx-cur .wmc-list-currencies .wmc-currency a { color: inherit !important; }
html body .woocommerce-multi-currency.nx-cur .nx-cur-opt {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 8px 10px;
    border-radius: 10px;
    color: var(--nx-ink) !important;
    font: 600 13px/1 var(--nx-font-mono);
    letter-spacing: 1px;
    text-decoration: none;
    transition: background .15s ease;
}
html body .woocommerce-multi-currency.nx-cur .nx-cur-opt:hover { background: rgba(255, 255, 255, .05); }
html body .woocommerce-multi-currency.nx-cur .wmc-list-currencies .wmc-currency.wmc-active .nx-cur-opt {
    background: rgba(0, 240, 255, .08);
    color: var(--nx-accent) !important;
}
.nx-cur-opt-code { flex: 1; }
.nx-cur-check { color: var(--nx-accent); opacity: 0; }
.nx-cur .wmc-active .nx-cur-check { opacity: 1; }

@media (max-width: 768px) {
    .nx-cur-btn { height: 32px; gap: 6px; padding: 0 10px 0 7px; font-size: 11px; }
    .nx-cur-flag { width: 27px; height: 18px; border-radius: 4px; }
    html body .nx-cur-flag .vi-flag-64 { transform: translate(-50%, -50%) scale(.45); }
    .nx-cur-arrow { display: none; }
}

html body .woocommerce-multi-currency.wmc-sidebar.wmc-hover {
    max-height: 100vh;
    overflow-y: auto !important;
}
html body .woocommerce-multi-currency.wmc-sidebar.wmc-hover .wmc-title {
    width: auto !important;
    padding: 2px 4px 12px !important;
    background: transparent !important;
    color: var(--nx-accent) !important;
    font: 700 11px/1.2 var(--nx-font-mono) !important;
    letter-spacing: 2px;
    text-align: left;
}
html body .woocommerce-multi-currency.wmc-sidebar.wmc-hover .wmc-list-currencies {
    display: flex !important;
    flex-direction: column;
    gap: 8px;
    box-sizing: border-box;
    padding: 16px !important;
    background: rgba(13, 13, 21, .97) !important;
    border: 1px solid var(--nx-line);
    border-radius: 18px 0 0 18px;
    box-shadow: 0 20px 50px rgba(0, 0, 0, .55);
}
html body .woocommerce-multi-currency.wmc-sidebar.wmc-hover .wmc-list-currencies .wmc-currency {
    display: block !important;
    width: 100% !important;
    border-radius: 12px !important;
}
html body .woocommerce-multi-currency.wmc-sidebar.wmc-hover .wmc-list-currencies .wmc-currency a { padding: 8px 12px 8px 8px; }
html body .woocommerce-multi-currency.wmc-sidebar.wmc-hover .wmc-list-currencies .wmc-currency .wmc-currency-content-right {
    flex: 1;
    width: auto !important;
    white-space: normal !important;
    text-align: left;
    text-transform: none !important;
    letter-spacing: 0 !important;
    font: 600 14px/1.25 var(--nx-font-sans) !important;
    color: var(--nx-ink) !important;
}
html body .woocommerce-multi-currency.wmc-sidebar.wmc-hover .wmc-list-currencies .wmc-currency:hover {
    background: rgba(0, 240, 255, .06) !important;
    border-color: rgba(0, 240, 255, .45);
}
html body .woocommerce-multi-currency.wmc-sidebar.wmc-hover .wmc-list-currencies .wmc-currency.wmc-active {
    background: rgba(0, 240, 255, .1) !important;
    border-color: var(--nx-accent);
}
html body .woocommerce-multi-currency.wmc-sidebar.wmc-hover .wmc-list-currencies .wmc-currency.wmc-active .wmc-currency-content-right { color: var(--nx-accent) !important; }

@media (max-width: 768px) {
    html body .woocommerce-multi-currency.wmc-sidebar.wmc-hover {
        inset: 0 !important;
        width: 100% !important;
        max-height: none;
        display: flex !important;
        align-items: center;
        justify-content: center;
        padding: 24px 16px !important;
        transform: none !important;
        background: rgba(5, 5, 10, .82) !important;
        -webkit-backdrop-filter: blur(8px);
        backdrop-filter: blur(8px);
    }
    html body .woocommerce-multi-currency.wmc-sidebar.wmc-hover .wmc-list-currencies {
        position: relative !important;
        top: auto !important;
        width: 100% !important;
        max-width: 340px;
        max-height: none !important;
        margin: auto !important;
        overflow: visible !important;
        transform: none !important;
        border-radius: 20px;
    }
}
/* OJO: NO poner overflow-x:hidden también en <html> (el snippet viejo lo hacía):
   con html y body ocultos a la vez, la cabecera sticky deja de quedarse fija. */

/* ============================================================
 * 21. v3.4 · CABECERA EN 2 FILAS CON BUSCADOR SIEMPRE VISIBLE
 *   Escritorio: [logo | buscador ancho | redes · cuenta · carrito]
 *               [          secciones del menú (fila propia)     ]
 *   Móvil:      [logo | carrito · ☰]
 *               [      buscador a todo el ancho      ]
 * ============================================================ */
.nx-header-inner { gap: 24px; padding: 14px 32px; }
.nx-logo { flex-shrink: 0; min-width: 0; }
.nx-header-actions { flex-shrink: 0; gap: 8px; }
.nx-header-actions .nx-btn-icon { width: 38px; height: 38px; }
.nx-cart-btn { margin-left: 4px; }

/* Buscador */
.nx-header-search {
    flex: 1 1 auto;
    min-width: 0;
    max-width: 620px;
    margin: 0 auto;
}
.nx-header-search .nx-fibosearch-wrap { max-width: 100%; margin: 0; }
.nx-header-search .dgwt-wcas-search-wrapp { max-width: 100% !important; min-width: 0 !important; }
.nx-header-search .dgwt-wcas-search-input {
    height: 44px !important;
    padding: 0 52px 0 20px !important;
    font-size: 14px !important;
}
.nx-header-search .dgwt-wcas-search-submit,
.nx-header-search .dgwt-wcas-sf-wrapp button[type="submit"] {
    width: 34px !important;
    height: 34px !important;
    min-height: 0 !important;
    padding: 0 !important;
    right: 5px !important;
    display: grid !important;
    place-items: center !important;
}
/* Lupa oscura sobre el botón cyan (FiboSearch la pintaba verde y no se veía) */
.nx-header-search .dgwt-wcas-search-submit svg,
.nx-header-search .dgwt-wcas-search-submit svg path {
    fill: #07070c !important;
    width: 16px !important;
    height: 16px !important;
}
.nx-header-search .dgwt-wcas-search-submit::before { display: none !important; } /* flechita del estilo "solaris" */

/* Fila de secciones (escritorio) */
.nx-header > .nx-nav-main {
    display: block;
    border-top: 1px solid var(--nx-line);
}
.nx-nav-inner {
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 32px;
    display: flex;
    justify-content: center;
}
.nx-nav-list { gap: 6px; flex-wrap: wrap; justify-content: center; }
.nx-nav-list > li > a { padding: 12px 16px; font-size: 12.5px; letter-spacing: 0.08em; white-space: nowrap; }
.nx-nav-list .sub-menu { top: calc(100% - 4px); z-index: 20; }

/* FiboSearch dentro del menú (respaldo por si el filtro PHP no lo detecta) */
.nx-nav-list > li:has(> .dgwt-wcas-search-wrapp),
.nx-mobile-nav-list > li:has(> .dgwt-wcas-search-wrapp) { display: none !important; }

/* Íconos sociales: solo si hay espacio de sobra */
@media (max-width: 1280px) {
    .nx-header .nx-social-group { display: none !important; }
}

/* Laptops chicas y tablets: menú hamburguesa, buscador en su propia fila */
@media (max-width: 1100px) {
    .nx-header .nx-nav-main { display: none !important; }
    .nx-header .nx-menu-toggle { display: flex !important; }
    .nx-header-inner { flex-wrap: wrap; row-gap: 12px; }
    .nx-header-search {
        order: 3;
        flex: 1 1 100%;
        max-width: none;
    }
    .nx-header-actions { margin-left: auto; }
}

/* Móvil */
@media (max-width: 768px) {
    .nx-header-inner { padding: 10px 16px 12px; gap: 10px; row-gap: 10px; }
    .nx-header .nx-header-actions a.nx-account-link.nx-btn-icon { display: none !important; }
    .nx-header-actions { gap: 6px; }
    .nx-logo-text { font-size: 12px; letter-spacing: 1px; }
    .nx-logo-icon { width: 30px; height: 30px; font-size: 19px; }
    .nx-cart-btn { padding: 8px 12px; margin-left: 0; }
    .nx-header .nx-menu-toggle { width: 40px; height: 40px; }
    .nx-header-search .dgwt-wcas-search-input { height: 42px !important; }
    .nx-header-search .dgwt-wcas-search-input { font-size: 16px !important; } /* evita el zoom automático de iOS */
}

/* Ícono que agregaba el snippet "NSC Menu Cart Icon" (el botón ya trae el suyo) */
.nx-cart-btn .nsc-menu-cart-svg { display: none !important; }

/* ============================================================
 * 22. v3.3 · RESEÑAS EN MOVIMIENTO (marquee 2 filas)
 * ============================================================ */

/* Resumen de puntuación */
.nx-rv-score {
    display: inline-flex;
    align-items: center;
    gap: 16px;
    padding: 16px 22px;
    border: 1px solid rgba(255, 209, 102, 0.28);
    border-radius: 18px;
    background: linear-gradient(135deg, rgba(255, 209, 102, 0.08), rgba(185, 131, 255, 0.05));
}
.nx-rv-score-num {
    font-family: var(--nx-font-display);
    font-size: 56px;
    line-height: 0.9;
    color: var(--nx-accent-gold);
}
.nx-rv-score-side { display: flex; flex-direction: column; gap: 6px; }
.nx-rv-score-meta {
    font-family: var(--nx-font-mono);
    font-size: 11px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--nx-ink-dim);
}
.nx-rv-score-meta strong { color: var(--nx-ink); }

/* Filas en movimiento */
.nx-rv-marquee {
    display: flex;
    flex-direction: column;
    gap: 18px;
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent);
    mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent);
}
.nx-rv-row { overflow: hidden; padding: 8px 0; }
.nx-rv-track {
    display: flex;
    width: max-content;
    animation: nxRvScroll var(--nx-rv-duration, 60s) linear infinite;
    will-change: transform;
}
.nx-rv-reverse .nx-rv-track { animation-direction: reverse; }
.nx-rv-group { display: flex; gap: 18px; padding-right: 18px; }
@keyframes nxRvScroll { from { transform: translateX(0); } to { transform: translateX(-50%); } }

/* Interactivo: se detiene al pasar el mouse, tocar o navegar con teclado */
.nx-rv-row:hover .nx-rv-track,
.nx-rv-row:focus-within .nx-rv-track,
.nx-rv-row:active .nx-rv-track { animation-play-state: paused; }

/* Tarjeta */
.nx-rv-card {
    position: relative;
    flex: 0 0 340px;
    display: flex;
    flex-direction: column;
    gap: 14px;
    padding: 22px;
    min-height: 210px;
    border-radius: 18px;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.045), rgba(255, 255, 255, 0.015));
    border: 1px solid var(--nx-line);
    color: var(--nx-ink);
    text-decoration: none;
    transition: transform 0.35s var(--nx-ease), border-color 0.35s ease, box-shadow 0.35s ease;
}
.nx-rv-card::after {
    content: '“';
    position: absolute;
    top: 8px;
    right: 18px;
    font-family: var(--nx-font-display);
    font-size: 64px;
    line-height: 1;
    color: var(--nx-accent);
    opacity: 0.18;
    transition: opacity 0.35s ease;
}
.nx-rv-card:hover,
.nx-rv-card:focus-visible {
    transform: translateY(-6px);
    border-color: rgba(0, 240, 255, 0.55);
    box-shadow: 0 18px 40px rgba(0, 0, 0, 0.45), 0 0 0 1px rgba(0, 240, 255, 0.15), 0 0 30px rgba(0, 240, 255, 0.12);
    color: var(--nx-ink);
}
.nx-rv-card:hover::after { opacity: 0.5; }
.nx-rv-reverse .nx-rv-card:hover {
    border-color: rgba(185, 131, 255, 0.6);
    box-shadow: 0 18px 40px rgba(0, 0, 0, 0.45), 0 0 30px rgba(185, 131, 255, 0.14);
}

.nx-rv-top { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.nx-rv-stars { display: inline-flex; gap: 3px; }
.nx-rv-stars .nx-star { width: 14px; height: 14px; }
.nx-rv-stars-lg .nx-star { width: 18px; height: 18px; }
.nx-rv-ago { font-family: var(--nx-font-mono); font-size: 10px; letter-spacing: 0.05em; color: var(--nx-ink-low); }
.nx-rv-text {
    margin: 0;
    font-size: 14.5px;
    line-height: 1.55;
    color: var(--nx-ink);
    display: -webkit-box;
    -webkit-line-clamp: 4;
    -webkit-box-orient: vertical;
    overflow: hidden;
    flex: 1;
}
.nx-rv-foot { display: flex; align-items: center; gap: 10px; padding-top: 14px; border-top: 1px solid var(--nx-line); }
.nx-rv-avatar {
    width: 34px;
    height: 34px;
    flex-shrink: 0;
    border-radius: 50%;
    display: grid;
    place-items: center;
    font-family: var(--nx-font-display);
    font-size: 16px;
    color: var(--nx-bg);
    background: linear-gradient(135deg, var(--nx-accent), var(--nx-accent-2));
}
.nx-rv-who { display: flex; flex-direction: column; min-width: 0; }
.nx-rv-name { font-size: 13px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 120px; }
.nx-rv-verified { font-family: var(--nx-font-mono); font-size: 9px; letter-spacing: 0.08em; text-transform: uppercase; color: #22e06c; }
.nx-rv-product {
    margin-left: auto;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    max-width: 150px;
    padding: 4px 10px 4px 4px;
    border-radius: 100px;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid var(--nx-line);
    font-family: var(--nx-font-mono);
    font-size: 10px;
    color: var(--nx-ink-dim);
    transition: color 0.3s ease, border-color 0.3s ease;
}
.nx-rv-product img { width: 22px; height: 22px; border-radius: 50%; object-fit: cover; flex-shrink: 0; }
.nx-rv-product span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.nx-rv-card:hover .nx-rv-product { color: var(--nx-accent); border-color: rgba(0, 240, 255, 0.35); }

@media (max-width: 768px) {
    
    .nx-rv-score { padding: 12px 16px; gap: 12px; }
    .nx-rv-score-num { font-size: 42px; }
    .nx-rv-card { flex-basis: 280px; padding: 18px; min-height: 190px; }
    .nx-rv-text { font-size: 13.5px; }
    .nx-rv-product { display: none; }
    .nx-rv-marquee { gap: 12px; }
}

/* Sin animación: fila deslizable a mano */
/* "Reducir animaciones" activado en el sistema (Windows/Android lo traen
   seguido): las reseñas siguen moviéndose, pero al doble de lento.
   Se pausan al pasar el mouse, tocar o navegar con teclado. */
@media (prefers-reduced-motion: reduce) {
    .nx-rv-track {
        animation-duration: calc(var(--nx-rv-duration, 60s) * 2) !important;
        animation-iteration-count: infinite !important;
    }
}

/* ============================================================
 * 23. v3.7 · TOP VENTAS (carrusel con ranking y calificación)
 * ============================================================ */

.nx-ts-arrow {
    width: 46px; height: 46px;
    border-radius: 50%;
    display: grid; place-items: center;
    border: 1px solid var(--nx-line-2);
    color: var(--nx-ink);
    background: rgba(255, 255, 255, 0.03);
    transition: background 0.25s ease, border-color 0.25s ease, color 0.25s ease, transform 0.25s ease;
}
.nx-ts-arrow:hover { background: var(--nx-accent); border-color: var(--nx-accent); color: var(--nx-bg); transform: translateY(-2px); }

.nx-ts-price del { display: block; font-size: 11px; font-weight: 400; color: var(--nx-ink-dim); }

 /* el carrito lateral ya avisa */

@media (max-width: 768px) {

    .nx-ts-arrow { display: none; }

}

/* ============================================================
 * 24. v3.8 · SIN ÍCONO GIRATORIO AL AGREGAR AL CARRITO
 * El plugin "XT Woo Ajax Add to Cart" cambiaba el ícono del botón por
 * un spinner que da vueltas (xt_icon-spinner4) y luego por un check.
 * Ahora el botón conserva su ícono y solo se atenúa mientras agrega;
 * la confirmación la da el carrito lateral al abrirse.
 * ============================================================ */
html body .add_to_cart_button .xt_atc-button-spinner-wrap,
html body .add_to_cart_button .xt_atc-button-spinner,
html body .single_add_to_cart_button .xt_atc-button-spinner-wrap,
html body .single_add_to_cart_button .xt_atc-button-spinner { display: none !important; }

html body .add_to_cart_button.xt_atc-loading > *:not(.xt_atc-button-spinner-wrap),
html body .add_to_cart_button.loading > *:not(.xt_atc-button-spinner-wrap),
html body .single_add_to_cart_button.xt_atc-loading > *:not(.xt_atc-button-spinner-wrap) {
    opacity: 1 !important;
    visibility: visible !important;
}
/* ---- v3.9 · Animación clara al agregar (theme.js → initAjaxCartFeedback) ---- */

/* Mientras agrega: atenuado y sin doble toque.
   Clases repetidas para ganarle a la regla del plugin XT (0,3,1 + !important). */
.nx-atc-busy.nx-atc-busy.nx-atc-busy,
.xt_atc-loading.xt_atc-loading.xt_atc-loading.add_to_cart_button {
    opacity: 0.55 !important;
    pointer-events: none !important;
    transition: opacity 0.2s ease !important;
}

/* Confirmado: verde con ✓ unos segundos */
.nx-atc-done.nx-atc-done.nx-atc-done {
    position: relative !important;
    opacity: 1 !important;
    background: #22e06c !important;
    border-color: #22e06c !important;
    color: #07070c !important;
    box-shadow: 0 0 0 4px rgba(34, 224, 108, 0.25), 0 8px 24px rgba(34, 224, 108, 0.45) !important;
    transition: background 0.2s ease, box-shadow 0.2s ease !important;
}
.nx-atc-check {
    position: absolute;
    inset: 0;
    display: none;
    align-items: center;
    justify-content: center;
    color: #07070c;
    pointer-events: none;
}
.nx-atc-done.nx-atc-done .nx-atc-check { display: flex; animation: nxAtcPop 0.35s cubic-bezier(.2, 1.4, .4, 1) both; }
.nx-atc-done.nx-atc-done > :not(.nx-atc-check) { opacity: 0 !important; }
.nx-atc-done.nx-atc-done.nx-atc-text { color: transparent !important; }
.nx-atc-done .nx-atc-check { color: #07070c !important; }
@keyframes nxAtcPop { from { transform: scale(0.3); opacity: 0; } to { transform: scale(1); opacity: 1; } }

/* Imagen que vuela al carrito */
.nx-atc-fly {
    position: fixed;
    z-index: 2147483000;
    border-radius: 14px;
    background: linear-gradient(135deg, var(--nx-accent), var(--nx-accent-2)) center / cover no-repeat;
    border: 2px solid var(--nx-accent);
    box-shadow: 0 0 0 4px rgba(0, 240, 255, 0.18), 0 12px 30px rgba(0, 0, 0, 0.5), 0 0 30px rgba(0, 240, 255, 0.45);
    pointer-events: none;
    will-change: transform, opacity;
}

/* Botón del carrito de la cabecera: rebote con brillo al llegar */
.nx-cart-bump { animation: nxCartBump 0.6s cubic-bezier(.3, 1.6, .5, 1); }
.nx-cart-bump .nx-cart-count { background: var(--nx-accent) !important; color: var(--nx-bg) !important; }
@keyframes nxCartBump {
    0%   { transform: scale(1); box-shadow: 0 0 0 0 rgba(0, 240, 255, 0); }
    35%  { transform: scale(1.14); box-shadow: 0 0 0 8px rgba(0, 240, 255, 0.25), 0 0 28px rgba(0, 240, 255, 0.55); }
    100% { transform: scale(1); box-shadow: 0 0 0 0 rgba(0, 240, 255, 0); }
}
@media (prefers-reduced-motion: reduce) {
    .nx-cart-bump { animation-duration: 0.6s !important; animation-iteration-count: 1 !important; }
    .nx-atc-done.nx-atc-done .nx-atc-check { animation-duration: 0.35s !important; }
}
.add_to_cart_button::after,
.add_to_cart_button.loading::after,
.add_to_cart_button.added::after { animation: none !important; }
/* Enlace "Ver carrito" que WooCommerce agrega junto al botón: el carrito lateral ya lo muestra */
.nx-home-products .added_to_cart,
.nx-ts-section .added_to_cart,
.mykd-product-main .added_to_cart { display: none !important; }

/* Menú legal del footer (Términos, Privacidad, Reembolsos…) */
.nx-footer-legal { display: flex; flex-wrap: wrap; gap: 6px 20px; }
.nx-footer-legal a { color: var(--nx-ink-dim); }
.nx-footer-legal a:hover { color: var(--nx-accent); }

/* Estrellas vacías en el carrusel de reseñas */
.nx-review-stars-row .nx-star.empty { background: rgba(255,255,255,0.15); }

/* Menos movimiento si el usuario lo pide en su sistema */
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after {
        animation-duration: 0.001ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.001ms !important;
    }
    
    /* Cintas en movimiento (anuncio, ticker, pagos, reseñas): se mantienen, más lentas */
    .nx-announcement-track { animation-duration: 50s !important; animation-iteration-count: infinite !important; }

    .nx-rv-track {
        animation-duration: calc(var(--nx-rv-duration, 60s) * 2) !important;
        animation-iteration-count: infinite !important;
    }
    
}

/* → assets/css/paginas/listados.css (se carga solo donde hace falta) */

/* CURCY: ocultar el precio "aproximado" (antes "Fragmento #42") */
.wmc-approximately { display: none !important; }

/* ============================================================
 * 27. Banner "// DESTACADO" del hero como slide (v3.11)
 * ============================================================ */

/* → assets/css/paginas/resenas.css (se carga solo donde hace falta) */

/* ============================================================
 * 29. Las cintas en movimiento nunca ensanchan su contenedor
 * Miden miles de px (dos copias de las tarjetas). En celular la ficha
 * del producto es flex y la cinta la estiraba a 11.920 px: el celular
 * alejaba la vista y todo se veía diminuto. contain: inline-size hace
 * que su ancho venga del contenedor y no del contenido.
 * ============================================================ */
.nx-rv-marquee,
.nx-ts-marquee,
.nx-product-reviews {
    contain: inline-size;
    width: 100%;
    max-width: 100%;
}
.nx-rvp {
    box-sizing: border-box;
    width: 100%;
}

/* ============================================================
 * 30. PRECIO "RP BARATO" Y BUSCADOR (v3.18)
 * ============================================================ */

/* ---------- Precio RP Barato (catálogo, inicio, buscador, carrito lateral) ---------- */
.nx-rpb-price {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 2px 8px;
}
.nx-rpb-price del,
.nx-rpb-price del .amount {
    color: var(--nx-ink-dim) !important;
    font-weight: 400 !important;
    text-decoration: line-through !important;
}
.nx-rpb-price del { font-size: 0.78em; }
.nx-rpb-price ins {
    text-decoration: none !important;
    background: transparent !important;
    color: var(--nx-accent) !important;
}
.nx-rpb-desde {
    font-family: var(--nx-font-mono);
    font-size: 0.62em;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--nx-ink-dim);
}
.nx-rpb-tag {
    display: inline-flex;
    align-items: center;
    padding: 3px 9px;
    border: 1px solid rgba(34, 224, 108, 0.35);
    border-radius: 100px;
    background: rgba(34, 224, 108, 0.1);
    font-family: var(--nx-font-mono);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.04em;
    line-height: 1.3;
    white-space: nowrap;
    color: #22e06c;
}

/* ---------- Buscador (FiboSearch) ----------
   Sus ajustes imprimen colores verdes (#45f882, #00f704, bordes #21a841
   con !important). "html body" gana en especificidad y cubre también el
   buscador en pantalla completa del celular, que queda fuera de la cabecera. */
html body .dgwt-wcas-search-wrapp .dgwt-wcas-sf-wrapp input[type=search].dgwt-wcas-search-input,
html body .dgwt-wcas-search-wrapp .dgwt-wcas-sf-wrapp input[type=search].dgwt-wcas-search-input:hover {
    background: rgba(255, 255, 255, 0.04) !important;
    border: 1px solid var(--nx-line) !important;
    border-radius: 100px !important;
    color: var(--nx-ink) !important;
    font-family: var(--nx-font-sans) !important;
    font-size: 15px !important;
    box-shadow: none !important;
}
html body .dgwt-wcas-search-wrapp .dgwt-wcas-sf-wrapp input[type=search].dgwt-wcas-search-input:focus {
    background: rgba(0, 240, 255, 0.04) !important;
    border-color: var(--nx-accent) !important;
    box-shadow: 0 0 0 3px rgba(0, 240, 255, 0.12) !important;
    outline: none !important;
}
html body .dgwt-wcas-sf-wrapp input[type=search].dgwt-wcas-search-input::placeholder {
    color: var(--nx-ink-low) !important;
    opacity: 1 !important;
}
html body .dgwt-wcas-search-wrapp .dgwt-wcas-sf-wrapp .dgwt-wcas-search-submit {
    background: var(--nx-accent) !important;
    color: var(--nx-bg) !important;
}
html body .dgwt-wcas-search-wrapp .dgwt-wcas-sf-wrapp .dgwt-wcas-search-submit::before { display: none !important; }
html body .dgwt-wcas-search-wrapp .dgwt-wcas-sf-wrapp .dgwt-wcas-search-submit svg path { fill: var(--nx-bg) !important; }
html body .dgwt-wcas-search-wrapp .dgwt-wcas-close path,
html body .dgwt-wcas-no-submit.dgwt-wcas-search-wrapp .dgwt-wcas-ico-magnifier path { fill: var(--nx-ink-dim) !important; }
html body .dgwt-wcas-search-wrapp .dgwt-wcas-close:hover path { fill: var(--nx-accent) !important; }
html body .dgwt-wcas-loader-circular-path { stroke: var(--nx-accent) !important; }

/* Resultados */
html body .dgwt-wcas-suggestions-wrapp {
    height: auto !important;
    max-height: min(70vh, 560px) !important;
    overflow-y: auto !important;
    background: #0f0f18 !important;
    border: 1px solid var(--nx-line-2) !important;
    border-radius: 18px !important;
    box-shadow: 0 24px 60px rgba(0, 0, 0, 0.6) !important;
    padding: 6px !important;
    scrollbar-width: thin;
    scrollbar-color: rgba(255, 255, 255, 0.15) transparent;
}
html body .dgwt-wcas-suggestions-wrapp *,
html body .dgwt-wcas-suggestion * { color: var(--nx-ink-dim) !important; }
/* Cada resultado es un enlace: sin subrayado en el título, la categoría ni el precio */
html body .dgwt-wcas-suggestion,
html body .dgwt-wcas-suggestion *,
html body .dgwt-wcas-suggestion:hover * { text-decoration: none !important; }
html body .dgwt-wcas-sp del,
html body .dgwt-wcas-sp del * { text-decoration: line-through !important; }

html body .dgwt-wcas-suggestion {
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    padding: 10px 12px !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 12px !important;
    background: transparent !important;
    transition: background 0.2s ease !important;
}
html body .dgwt-wcas-suggestion:hover,
html body .dgwt-wcas-suggestion.dgwt-wcas-suggestion-selected {
    background: rgba(0, 240, 255, 0.07) !important;
    box-shadow: inset 3px 0 0 var(--nx-accent) !important;
}
html body .dgwt-wcas-si {
    flex: 0 0 auto !important;
    width: 46px !important;
    max-width: 46px !important;
    margin: 0 !important;
}
html body .dgwt-wcas-si img {
    width: 46px !important;
    height: 46px !important;
    max-width: none !important;
    padding: 0 !important;
    border: 1px solid var(--nx-line) !important;
    border-radius: 10px !important;
    object-fit: cover !important;
    background: var(--nx-bg-2) !important;
}
html body .dgwt-wcas-content-wrapp {
    display: flex !important;
    flex: 1 1 auto !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 12px !important;
    min-width: 0 !important;
    padding: 0 !important;
}
html body .dgwt-wcas-st { min-width: 0 !important; }
html body .dgwt-wcas-st,
html body .dgwt-wcas-st-title,
html body .dgwt-wcas-st * {
    color: var(--nx-ink) !important;
    font-family: var(--nx-font-sans) !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    line-height: 1.35 !important;
}
html body .dgwt-wcas-st strong,
html body .dgwt-wcas-sd strong {
    color: var(--nx-accent) !important;
    font-weight: 700 !important;
}
html body .dgwt-wcas-meta {
    flex: 0 0 auto !important;
    text-align: right !important;
}
html body .dgwt-wcas-sp,
html body .dgwt-wcas-sp * {
    font-family: var(--nx-font-mono) !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    white-space: nowrap !important;
    color: var(--nx-accent) !important;
}
html body .dgwt-wcas-sp del,
html body .dgwt-wcas-sp del * {
    font-size: 11px !important;
    font-weight: 400 !important;
    color: var(--nx-ink-low) !important;
}
/* En la lista el rango completo no cabe: basta con el precio más bajo */
html body .dgwt-wcas-sp .nx-rpb-price { justify-content: flex-end; }
html body .dgwt-wcas-sp .nx-rpb-tag,
html body .dgwt-wcas-sp .screen-reader-text { display: none !important; }

/* Títulos de grupo ("Categorías", "Productos") */
html body .dgwt-wcas-suggestion-headline,
html body .dgwt-wcas-suggestion-headline * {
    padding: 12px 12px 6px !important;
    font-family: var(--nx-font-mono) !important;
    font-size: 10px !important;
    font-weight: 700 !important;
    letter-spacing: 0.14em !important;
    text-transform: uppercase !important;
    color: var(--nx-ink-low) !important;
    background: transparent !important;
    box-shadow: none !important;
}
html body .dgwt-wcas-suggestion-cat .dgwt-wcas-st,
html body .dgwt-wcas-suggestion-tax .dgwt-wcas-st { color: var(--nx-ink-dim) !important; }

/* "Ver todos los productos" */
html body .dgwt-wcas-suggestion.dgwt-wcas-suggestion-more {
    justify-content: center !important;
    margin: 6px 0 2px !important;
    padding: 12px !important;
    border: 1px solid rgba(0, 240, 255, 0.3) !important;
    background: rgba(0, 240, 255, 0.05) !important;
    box-shadow: none !important;
}
html body .dgwt-wcas-suggestion-more,
html body .dgwt-wcas-suggestion-more * {
    font-family: var(--nx-font-mono) !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    letter-spacing: 0.1em !important;
    text-transform: uppercase !important;
    color: var(--nx-accent) !important;
}
html body .dgwt-wcas-suggestion.dgwt-wcas-suggestion-more:hover { background: rgba(0, 240, 255, 0.12) !important; }

/* Sin resultados */
html body .dgwt-wcas-suggestion-nores,
html body .dgwt-wcas-suggestion-nores * {
    justify-content: center !important;
    padding: 18px 12px !important;
    color: var(--nx-ink-dim) !important;
    box-shadow: none !important;
    background: transparent !important;
}

/* Panel de detalles apagado (ver inc/modules/product-extras.php) */
html body .dgwt-wcas-details-wrapp { display: none !important; }
html body.dgwt-wcas-is-details .dgwt-wcas-suggestions-wrapp { width: auto !important; }

/* Buscador a pantalla completa en celular */
html body .dgwt-wcas-overlay-mobile { background: var(--nx-bg) !important; }
html body .dgwt-wcas-om-bar {
    background: var(--nx-bg-2) !important;
    border-bottom: 1px solid var(--nx-line) !important;
    padding: 8px 8px 8px 4px !important;
}
html body .dgwt-wcas-om-bar .dgwt-wcas-om-return {
    background: transparent !important;
    color: var(--nx-accent) !important;
}
html body .dgwt-wcas-om-bar .dgwt-wcas-om-return svg path { fill: var(--nx-accent) !important; }
html body .dgwt-wcas-overlay-mobile .dgwt-wcas-suggestions-wrapp {
    max-height: none !important;
    margin: 8px !important;
    width: auto !important;
    left: 0 !important;
    right: 0 !important;
}
html body .dgwt-wcas-overlay-mobile .dgwt-wcas-suggestion { padding: 10px !important; }
@media (max-width: 420px) {
    html body .dgwt-wcas-content-wrapp { flex-direction: column !important; align-items: flex-start !important; gap: 3px !important; }
    html body .dgwt-wcas-meta { text-align: left !important; }
}

/* → assets/css/paginas/skins.css (se carga solo donde hace falta) */

/* Aviso de marcas: tiene que poder leerse, pero sin competir con el resto
   del pie. Mas chico y mas apagado que el copyright. */
.nx-footer-marcas {
    margin: 22px 0 0;
    padding-top: 18px;
    border-top: 1px solid rgba(255, 255, 255, .07);
    font-size: 11px;
    line-height: 1.6;
    color: #6f7f9e;
    max-width: 92ch;
}
@media (max-width: 600px) {
    .nx-footer-marcas { font-size: 10.5px; }
}

/* → assets/css/paginas/skins.css (se carga solo donde hace falta) */

/* → assets/css/paginas/ficha.css (se carga solo donde hace falta) */

/* El enlace a «Sugiere tu juego» al final del desplegable de STEAM */
.nx-nav-list .sub-menu .nx-menu-sugerir > a { color: #b983ff; border-top: 1px solid rgba(255,255,255,.08); }
/* «Todos los juegos», lo primero del desplegable de STEAM */
.nx-nav-list .sub-menu .nx-menu-todos > a { color: #00f0ff; font-weight: 700; border-bottom: 1px solid rgba(255,255,255,.08); }

/* → assets/css/paginas/sugiere.css (se carga solo donde hace falta) */

/* → assets/css/paginas/ficha.css (se carga solo donde hace falta) */

/* El título de las tarjetas pasó de h4 a h3 (orden de títulos): mismo tamaño
   que antes (el navegador agranda los h3) y sin el relleno que WooCommerce le
   pone a los h3 de las tarjetas. Medido: se ven idénticas. */
html body ul.products li.product h3.title { font-size: 1em; padding: 0; }

/* ══════════════════════════════════════════════════════════════════
   El Oráculo (concurso del Mundial): la franja de arriba, y el bloque de
   la portada y de «gracias por tu compra». Lo demás del concurso está en
   paginas/oraculo.css (solo se carga en /oraculo/).
   ══════════════════════════════════════════════════════════════════ */
.nx-or-franja {
    position: relative; display: flex; align-items: center; justify-content: center;
    background: linear-gradient(90deg, #2b1a5a, #0b3a52); color: #fff; font-size: 13px; line-height: 1.35;
}
.nx-or-franja a { display: block; padding: 8px 44px; color: #fff; text-decoration: none; text-align: center; }
.nx-or-franja strong { color: #ffd24d; }
.nx-or-franja-cta { margin-left: 6px; font-weight: 800; color: #00f0ff; white-space: nowrap; }
.nx-or-franja-x {
    position: absolute; right: 8px; top: 50%; transform: translateY(-50%); width: 28px; height: 28px;
    border: 0; border-radius: 50%; background: rgba(255,255,255,.1); color: #fff; font-size: 18px; line-height: 1; cursor: pointer;
}
.nx-or-bloque { padding: 26px 0; }
.nx-or-bloque-caja {
    display: grid; grid-template-columns: 1.4fr 1fr; gap: 20px; align-items: center; padding: 22px 24px; border-radius: 16px;
    border: 1px solid rgba(0,240,255,.25); background: radial-gradient(circle at 85% 0%, rgba(255,196,0,.14), transparent 50%), rgba(14,18,32,.85);
}
.nx-or-bloque-kicker { font: 700 12px/1.3 var(--nx-font-mono, monospace); color: #00f0ff; letter-spacing: .06em; }
.nx-or-bloque h2 { margin: 6px 0 6px; font-size: clamp(24px, 4vw, 34px); line-height: 1.1; }
.nx-or-bloque p { margin: 0 0 14px; color: rgba(232,236,246,.75); font-size: 15px; }
.nx-or-bloque-boton { display: inline-block; padding: 11px 22px; border-radius: 10px; background: #00f0ff; color: #050810 !important; font-weight: 800; text-decoration: none; }
.nx-or-bloque-top strong { display: block; margin-bottom: 8px; font-size: 14px; }
.nx-or-bloque .nx-or-tabla { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.nx-or-bloque .nx-or-tabla li { display: grid; grid-template-columns: 26px 1fr auto; gap: 10px; padding: 7px 12px; border-radius: 9px; background: rgba(255,255,255,.04); font-size: 14px; }
.nx-or-bloque .nx-or-exactos { display: none; }
.nx-or-bloque .nx-or-pos { font-weight: 800; color: #ffd24d; }
.nx-or-bloque .nx-or-puntos { font-weight: 800; color: #00f0ff; }
.nx-or-bloque-gracias { padding: 18px 0 0; }
.nx-or-bloque-gracias .nx-container { padding: 0; }
@media (max-width: 760px) {
    .nx-or-franja { font-size: 12px; }
    .nx-or-franja a { padding: 8px 40px 8px 12px; text-align: left; }
    .nx-or-bloque-caja { grid-template-columns: 1fr; padding: 18px; }
}

/* El concurso del Mundial, primero en el desplegable de LoL (lo pone oraculo-difusion.php mientras dura) */
.nx-nav-list .sub-menu .nx-menu-oraculo > a,
.nx-mobile-nav-list .sub-menu .nx-menu-oraculo > a {
    display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 6px;
    color: #fff; font-weight: 800; white-space: nowrap;
    background: linear-gradient(90deg, rgba(70,120,255,.28), rgba(0,240,255,.10));
    border: 1px solid rgba(110,150,255,.55); border-radius: 10px; box-shadow: 0 0 18px rgba(70,120,255,.22);
}
.nx-nav-list .sub-menu .nx-menu-oraculo > a:hover,
.nx-mobile-nav-list .sub-menu .nx-menu-oraculo > a:hover {
    color: #fff; background: linear-gradient(90deg, rgba(70,120,255,.4), rgba(0,240,255,.2)); box-shadow: 0 0 24px rgba(70,120,255,.35);
}
.nx-mobile-nav-list .sub-menu .nx-menu-oraculo > a { padding-left: 14px; }
.nx-mobile-nav-list .sub-menu .nx-menu-oraculo > a::before { display: none; }
.nx-menu-badge {
    flex: none; padding: 2px 8px; border-radius: 999px; font: 800 10px/1.5 var(--nx-font-mono, monospace);
    letter-spacing: .06em; text-transform: uppercase; color: #050810; background: linear-gradient(90deg, #ffd166, #ffb020);
}
/* Un puntito que late junto a «LoL» */
.nx-menu-punto {
    display: inline-block; width: 7px; height: 7px; margin-left: 6px; border-radius: 50%; vertical-align: 2px;
    background: #5b8cff; box-shadow: 0 0 0 0 rgba(91,140,255,.75); animation: nx-menu-late 1.8s ease-out infinite;
}
@keyframes nx-menu-late { 70%, 100% { box-shadow: 0 0 0 7px rgba(91,140,255,0); } }
/* El orbe del Mundial, chico, en el menú y en la franja */
.nx-menu-orbe { width: 20px; height: 20px; margin-right: 6px; vertical-align: -5px; filter: drop-shadow(0 0 5px rgba(70,120,255,.8)); }
.nx-or-franja-orbe { width: 22px; height: 22px; margin-right: 4px; vertical-align: -6px; filter: drop-shadow(0 0 5px rgba(70,120,255,.8)); }
@media (prefers-reduced-motion: reduce) { .nx-menu-punto { animation: none; } }
