/* ============================================================
   NECS theme — sistema de diseño  ·  impeccable: brand register
   Tema `necs` para Modules/Store (storefront).

   Fuente de verdad:
     - Modules/Store/docs/prototypes/necs.css
     - Modules/Store/docs/prototypes/logitech.html (estilos inline)

   Reglas de portado:
   (a) TODA regla va scopeada bajo .theme-necs (incluidos los genéricos
       .btn .card .container .section button a img input h1-h4) para no
       romper bootstrap, styles.css ni los modales compartidos.
   (b) Tokens --brand/--accent/--hot renombrados a --necs-brand/--necs-accent
       /--necs-hot (el master ya define --accent).
   (c) Componentes, responsive y prefers-reduced-motion preservados.
   (d) Sin imágenes externas: los espacios de ambiente se renderizan como
       bloques de color/gradiente desde los partials (ver IMAGE_PROMPTS.md);
       este archivo solo aporta el styling.
   ============================================================ */

/* ============================================================
   TOKENS  (scopeados al wrapper del tema)
   ============================================================ */
.theme-necs {
  /* Color — estrategia Committed (azul NECS + acentos lima/coral) */
  --necs-ink:        #0a1330;
  --necs-ink-2:      #46547a;   /* texto secundario ≥4.5:1 sobre --necs-bg */
  --necs-bg:         #f3f5fb;
  --necs-surface:    #ffffff;
  --necs-surface-2:  #eef2fb;
  --necs-brand:      #1f3df0;
  --necs-brand-700:  #162fbd;
  --necs-brand-50:   #e6ebff;
  --necs-accent:     #c2f23e;   /* lima ácido — relleno con texto --necs-ink */
  --necs-accent-700: #a6d524;
  --necs-hot:        #ff5630;   /* coral — ofertas/urgencia */
  --necs-line:       #dde3f1;
  --necs-on-dark:    #eaf0ff;
  --necs-on-dark-2:  #9fb0d8;

  /* Tipografía */
  --necs-font-display: "Bricolage Grotesque", "Hanken Grotesk", system-ui, sans-serif;
  --necs-font-body:    "Hanken Grotesk", system-ui, -apple-system, "Segoe UI", sans-serif;

  /* Radii */
  --necs-r-sm: 10px;
  --necs-r:    14px;
  --necs-r-lg: 20px;
  --necs-pill: 999px;

  /* Sombra (una sola por elevación — sin ghost-card) */
  --necs-sh-1: 0 1px 2px rgba(10,19,48,.05), 0 4px 14px rgba(10,19,48,.05);
  --necs-sh-2: 0 10px 30px rgba(10,19,48,.10);
  --necs-sh-brand: 0 8px 22px rgba(31,61,240,.28);

  /* Layout */
  --necs-maxw: 1200px;
  --necs-gut: clamp(16px, 4vw, 40px);

  /* Motion */
  --necs-ease: cubic-bezier(.16,1,.3,1);

  /* z-index semántico */
  --necs-z-header: 100;
  --necs-z-nav: 200;
  --necs-z-overlay: 300;
  --necs-z-panel: 400;
  --necs-z-float: 500;

  /* Base del tema sobre el wrapper */
  font-family: var(--necs-font-body);
  font-size: 1rem;
  line-height: 1.6;
  color: var(--necs-ink);
  background: var(--necs-bg);
  font-kerning: normal;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

/* ---------- Reset acotado (solo dentro del tema) ---------- */
.theme-necs *, .theme-necs *::before, .theme-necs *::after { box-sizing: border-box; }
.theme-necs img, .theme-necs svg { display: block; max-width: 100%; }
.theme-necs img { height: auto; }
.theme-necs a { color: inherit; text-decoration: none; }
/* button reset acotado al contenido necs (no al chrome gaming reutilizado) */
.theme-necs #main-content button:not([class]) { font: inherit; color: inherit; cursor: pointer; background: none; border: none; }
.theme-necs input { font: inherit; }
.theme-necs h1, .theme-necs h2, .theme-necs h3, .theme-necs h4 {
  font-family: var(--necs-font-display);
  font-weight: 700;
  line-height: 1.08;
  letter-spacing: -.02em;
  text-wrap: balance;
  margin: 0;
}
/* list reset acotado al contenido necs (no al chrome gaming reutilizado) */
.theme-necs #main-content ul { list-style: none; }
.theme-necs :focus-visible { outline: 3px solid var(--necs-brand); outline-offset: 2px; border-radius: 4px; }
.theme-necs ::selection { background: var(--necs-brand); color: #fff; }

.theme-necs #main-content .container { width: 100%; max-width: var(--necs-maxw); margin-inline: auto; padding-inline: var(--necs-gut); }
.theme-necs #main-content .section { padding-block: clamp(48px, 7vw, 96px); }
.theme-necs .tnum { font-variant-numeric: tabular-nums; }

.theme-necs .skip-link {
  position: absolute; left: 12px; top: -60px; z-index: var(--necs-z-float);
  background: var(--necs-ink); color: var(--necs-on-dark); padding: 10px 16px; border-radius: var(--necs-r-sm);
  transition: top .2s var(--necs-ease);
}
.theme-necs .skip-link:focus { top: 12px; }

/* ============================================================
   BOTONES
   ============================================================ */
/* Botones necs scopeados a #main-content (no colisionar con .btn/.btn-line del chrome gaming/bootstrap) */
.theme-necs #main-content .btn {
  display: inline-flex; align-items: center; gap: 8px; justify-content: center;
  font-weight: 600; line-height: 1; padding: 13px 20px; border-radius: var(--necs-pill);
  transition: transform .18s var(--necs-ease), background-color .18s var(--necs-ease), box-shadow .18s var(--necs-ease), color .18s var(--necs-ease);
  white-space: nowrap;
}
.theme-necs #main-content .btn svg { width: 18px; height: 18px; }
.theme-necs #main-content .btn-brand { background: var(--necs-brand); color: #fff; box-shadow: var(--necs-sh-brand); }
.theme-necs #main-content .btn-brand:hover { background: var(--necs-brand-700); transform: translateY(-2px); }
.theme-necs #main-content .btn-accent { background: var(--necs-accent); color: var(--necs-ink); }
.theme-necs #main-content .btn-accent:hover { background: var(--necs-accent-700); transform: translateY(-2px); }
.theme-necs #main-content .btn-dark { background: var(--necs-ink); color: var(--necs-on-dark); }
.theme-necs #main-content .btn-dark:hover { transform: translateY(-2px); box-shadow: var(--necs-sh-2); }
.theme-necs #main-content .btn-line { border: 1.5px solid var(--necs-line); color: var(--necs-ink); background: var(--necs-surface); }
.theme-necs #main-content .btn-line:hover { border-color: var(--necs-brand); color: var(--necs-brand); }
.theme-necs #main-content .btn-ghost-light { color: #fff; border: 1.5px solid rgba(255,255,255,.35); }
.theme-necs #main-content .btn-ghost-light:hover { background: rgba(255,255,255,.12); }
.theme-necs #main-content .btn-lg { padding: 16px 26px; font-size: 1.0625rem; }
.theme-necs #main-content .btn-block { width: 100%; }

.theme-necs .link-arrow { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; color: var(--necs-brand); }
.theme-necs .link-arrow svg { width: 16px; height: 16px; transition: transform .2s var(--necs-ease); }
.theme-necs .link-arrow:hover svg { transform: translateX(4px); }

/* ---------- Encabezado de sección ---------- */
.theme-necs .head { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin-bottom: clamp(24px,3vw,40px); flex-wrap: wrap; }
.theme-necs .head h2 { font-size: clamp(1.7rem, 1rem + 2.6vw, 2.9rem); font-weight: 800; }
.theme-necs .head p { color: var(--necs-ink-2); margin-top: 8px; max-width: 52ch; }

/* ============================================================
   TOPBAR
   ============================================================ */
.theme-necs .topbar { background: var(--necs-ink); color: var(--necs-on-dark); font-size: .875rem; }
.theme-necs .topbar .container { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 42px; }
.theme-necs .topbar a { color: var(--necs-on-dark); }
.theme-necs .topbar a:hover { color: #fff; }
.theme-necs .topbar .tb-left { display: flex; align-items: center; gap: 8px; font-weight: 500; }
.theme-necs .topbar .tb-left .dot { width: 7px; height: 7px; border-radius: 50%; background: var(--necs-accent); flex: none; box-shadow: 0 0 0 4px rgba(194,242,62,.18); }
.theme-necs .topbar .tb-right { display: flex; align-items: center; gap: 18px; }
.theme-necs .topbar .tb-right .strong { font-weight: 700; color: #fff; }
@media (max-width: 768px){ .theme-necs .topbar .tb-right .hide-sm { display: none; } }
@media (max-width: 480px){ .theme-necs .topbar .tb-left .hide-xs { display: none; } }

/* ============================================================
   HEADER
   ============================================================ */
.theme-necs .site-header { position: sticky; top: 0; z-index: var(--necs-z-header); background: var(--necs-surface); border-bottom: 1px solid var(--necs-line); }
.theme-necs .header-main { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: clamp(16px,3vw,40px); padding-block: 14px; }

.theme-necs .logo { display: inline-flex; align-items: baseline; gap: 2px; font-family: var(--necs-font-display); font-weight: 800; font-size: 1.6rem; letter-spacing: -.03em; color: var(--necs-ink); }
.theme-necs .logo b { color: var(--necs-brand); }
.theme-necs .logo .dotmark { width: 9px; height: 9px; border-radius: 50%; background: var(--necs-accent); align-self: center; margin-left: 2px; }

/* Buscador */
.theme-necs .search { display: flex; align-items: center; gap: 10px; background: var(--necs-surface-2); border: 1.5px solid transparent; border-radius: var(--necs-pill); padding: 4px 4px 4px 18px; transition: border-color .18s var(--necs-ease), background-color .18s; }
.theme-necs .search:focus-within { border-color: var(--necs-brand); background: #fff; }
.theme-necs .search svg { width: 20px; height: 20px; color: var(--necs-ink-2); flex: none; }
.theme-necs .search input { flex: 1; border: none; background: none; outline: none; padding: 11px 0; min-width: 0; color: var(--necs-ink); }
.theme-necs .search input::placeholder { color: var(--necs-ink-2); }
.theme-necs .search .search-go { background: var(--necs-brand); color: #fff; border-radius: var(--necs-pill); padding: 9px 18px; font-weight: 600; }
.theme-necs .search .search-go:hover { background: var(--necs-brand-700); }
@media (max-width: 480px){ .theme-necs .search .search-go span { display:none; } .theme-necs .search .search-go { padding: 9px; } }

/* Iconos header */
.theme-necs .header-actions { display: flex; align-items: center; gap: 6px; }
.theme-necs .icon-btn { position: relative; display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: var(--necs-pill); color: var(--necs-ink); transition: background-color .15s; }
.theme-necs .icon-btn:hover { background: var(--necs-surface-2); }
.theme-necs .icon-btn svg { width: 22px; height: 22px; }
.theme-necs .count { position: absolute; top: 4px; right: 4px; min-width: 18px; height: 18px; padding: 0 5px; border-radius: var(--necs-pill); background: var(--necs-hot); color: #fff; font-size: .68rem; font-weight: 700; display: inline-flex; align-items: center; justify-content: center; line-height: 1; }
/* count visibility is handled by the blade inline style + store-cart.js (updateCartCount sets display); no data-count rule (it would override store-cart.js's display toggle) */
.theme-necs .burger { display: none; }

/* Nav categorías */
.theme-necs .nav-bar { border-top: 1px solid var(--necs-line); }
.theme-necs .nav-cats { display: flex; align-items: center; gap: 4px; height: 52px; overflow-x: auto; scrollbar-width: none; }
.theme-necs .nav-cats::-webkit-scrollbar { display: none; }
.theme-necs .nav-cats a { display: inline-flex; align-items: center; gap: 7px; padding: 9px 14px; border-radius: var(--necs-pill); font-weight: 500; color: var(--necs-ink); white-space: nowrap; transition: background-color .15s, color .15s; }
.theme-necs .nav-cats a:hover { background: var(--necs-surface-2); }
.theme-necs .nav-cats a.is-active { color: var(--necs-brand); background: var(--necs-brand-50); font-weight: 600; }
.theme-necs .nav-cats svg { width: 18px; height: 18px; }
.theme-necs .nav-spacer { flex: 1; }
/* Botón Logitech destacado en el header */
.theme-necs .nav-logi { display: inline-flex; align-items: center; gap: 8px; padding: 9px 16px !important; border-radius: var(--necs-pill); background: var(--necs-ink); color: #fff !important; font-weight: 700 !important; }
.theme-necs .nav-logi:hover { background: #16204a !important; }
.theme-necs .nav-logi .badge-new { background: var(--necs-accent); color: var(--necs-ink); font-size: .62rem; font-weight: 800; padding: 2px 7px; border-radius: var(--necs-pill); letter-spacing: .02em; }
.theme-necs .nav-logi.is-active { background: var(--necs-brand) !important; }

@media (max-width: 992px){
  .theme-necs .header-main { grid-template-columns: auto 1fr auto; }
  .theme-necs .nav-bar { display: none; }
  .theme-necs .burger { display: inline-flex; }
}
@media (max-width: 768px){
  .theme-necs .header-main { grid-template-columns: auto auto; row-gap: 12px; }
  .theme-necs .logo { order: 1; }
  .theme-necs .header-actions { order: 2; margin-left: auto; }
  .theme-necs .search { order: 3; grid-column: 1 / -1; }
}

/* ============================================================
   MENÚ MÓVIL (off-canvas, focus-trap via necs-theme.js)
   ============================================================ */
.theme-necs .overlay { position: fixed; inset: 0; background: rgba(10,19,48,.5); opacity: 0; visibility: hidden; transition: opacity .25s var(--necs-ease), visibility .25s; z-index: var(--necs-z-overlay); }
body.necs-nav-open .theme-necs .overlay,
.theme-necs.nav-open .overlay,
.theme-necs .overlay.is-open { opacity: 1; visibility: visible; }
.theme-necs .mobile-panel { position: fixed; top: 0; left: 0; height: 100dvh; width: min(86vw, 360px); background: var(--necs-surface); z-index: var(--necs-z-panel); transform: translateX(-100%); transition: transform .3s var(--necs-ease); display: flex; flex-direction: column; overflow-y: auto; }
body.necs-nav-open .theme-necs .mobile-panel,
.theme-necs.nav-open .mobile-panel,
.theme-necs .mobile-panel.is-open { transform: none; }
.theme-necs .mobile-panel .mp-top { display: flex; align-items: center; justify-content: space-between; padding: 16px 20px; border-bottom: 1px solid var(--necs-line); }
.theme-necs .mobile-panel nav { padding: 12px; }
.theme-necs .mobile-panel nav a { display: flex; align-items: center; gap: 12px; padding: 13px 14px; border-radius: var(--necs-r-sm); font-weight: 500; }
.theme-necs .mobile-panel nav a:hover { background: var(--necs-surface-2); }
.theme-necs .mobile-panel nav a svg { width: 20px; height: 20px; color: var(--necs-ink-2); }
.theme-necs .mobile-panel .mp-logi { margin: 8px 12px; padding: 13px 16px; background: var(--necs-ink); color: #fff; border-radius: var(--necs-r-sm); display: flex; align-items: center; justify-content: space-between; font-weight: 700; }
.theme-necs .mobile-panel .mp-foot { margin-top: auto; padding: 18px 20px; border-top: 1px solid var(--necs-line); color: var(--necs-ink-2); font-size: .9rem; }
body.necs-nav-open { overflow: hidden; }

/* ============================================================
   HERO (home)
   ============================================================ */
.theme-necs .hero { position: relative; overflow: hidden; background:
    radial-gradient(120% 90% at 100% 0%, rgba(31,61,240,.10), transparent 55%),
    radial-gradient(90% 80% at 0% 100%, rgba(194,242,62,.16), transparent 55%);
}
.theme-necs .hero-grid { display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(24px, 4vw, 56px); align-items: center; padding-block: clamp(36px, 5vw, 72px); }
.theme-necs .hero-eyebrow { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; color: var(--necs-brand); background: var(--necs-brand-50); padding: 7px 14px; border-radius: var(--necs-pill); font-size: .9rem; }
.theme-necs .hero-eyebrow .yrs { background: var(--necs-brand); color: #fff; padding: 1px 8px; border-radius: var(--necs-pill); font-weight: 800; font-size: .8rem; }
.theme-necs .hero h1 { font-size: clamp(2.3rem, 1.1rem + 4.6vw, 4.1rem); font-weight: 800; letter-spacing: -.035em; margin-top: 18px; }
.theme-necs .hero h1 .mark { color: var(--necs-brand); }
.theme-necs .hero .lead { font-size: clamp(1.05rem, 1rem + .4vw, 1.25rem); color: var(--necs-ink-2); margin-top: 18px; max-width: 46ch; }

.theme-necs .hero-search { display: flex; gap: 8px; background: var(--necs-surface); border: 1.5px solid var(--necs-line); border-radius: var(--necs-pill); padding: 6px 6px 6px 18px; margin-top: 26px; max-width: 480px; box-shadow: var(--necs-sh-1); }
.theme-necs .hero-search:focus-within { border-color: var(--necs-brand); }
.theme-necs .hero-search svg { width: 20px; height: 20px; color: var(--necs-ink-2); align-self: center; }
.theme-necs .hero-search input { flex: 1; border: none; outline: none; background: none; min-width: 0; padding: 12px 0; }
.theme-necs .hero-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.theme-necs .hero-chips a { font-size: .9rem; font-weight: 500; padding: 7px 14px; border-radius: var(--necs-pill); background: var(--necs-surface); border: 1px solid var(--necs-line); color: var(--necs-ink-2); transition: border-color .15s, color .15s; }
.theme-necs .hero-chips a:hover { border-color: var(--necs-brand); color: var(--necs-brand); }

.theme-necs .hero-media { position: relative; }
.theme-necs .hero-media .shot { aspect-ratio: 4/3.4; border-radius: var(--necs-r-lg); object-fit: cover; width: 100%; box-shadow: var(--necs-sh-2); }
.theme-necs .hero-card { position: absolute; left: -10px; bottom: -18px; background: var(--necs-surface); border-radius: var(--necs-r); padding: 14px 16px; box-shadow: var(--necs-sh-2); display: flex; align-items: center; gap: 12px; max-width: 270px; }
.theme-necs .hero-card .ico { width: 42px; height: 42px; border-radius: var(--necs-r-sm); background: var(--necs-accent); color: var(--necs-ink); display: grid; place-items: center; flex: none; }
.theme-necs .hero-card .ico svg { width: 22px; height: 22px; }
.theme-necs .hero-card .t { font-family: var(--necs-font-display); font-weight: 700; line-height: 1.15; }
.theme-necs .hero-card .s { font-size: .82rem; color: var(--necs-ink-2); }
.theme-necs .hero-badge { position: absolute; top: 16px; right: 16px; background: var(--necs-ink); color: #fff; font-weight: 700; font-size: .85rem; padding: 8px 14px; border-radius: var(--necs-pill); display: flex; align-items: center; gap: 7px; }
.theme-necs .hero-badge .pulse { width: 8px; height: 8px; border-radius: 50%; background: var(--necs-accent); }

/* Bloque de ambiente del hero cuando no hay foto (IMAGE_PROMPTS.md) */
.theme-necs .hero-media .shot.is-placeholder,
.theme-necs .media-fill {
  background:
    radial-gradient(120% 120% at 20% 10%, rgba(31,61,240,.45), transparent 60%),
    radial-gradient(120% 120% at 90% 90%, rgba(194,242,62,.35), transparent 55%),
    var(--necs-ink);
}

@media (max-width: 860px){
  .theme-necs .hero-grid { grid-template-columns: 1fr; }
  .theme-necs .hero-media { order: -1; }
  .theme-necs .hero-card { left: 10px; }
}

/* ============================================================
   TIRA DE CONFIANZA (inline, no cards)
   ============================================================ */
.theme-necs .trust-strip { border-top: 1px solid var(--necs-line); border-bottom: 1px solid var(--necs-line); background: var(--necs-surface); }
.theme-necs .trust-strip ul { display: grid; grid-template-columns: repeat(4, 1fr); }
.theme-necs .trust-strip li { display: flex; align-items: center; gap: 12px; padding: 22px clamp(12px,2vw,28px); }
.theme-necs .trust-strip li + li { border-left: 1px solid var(--necs-line); }
.theme-necs .trust-strip .ico { width: 40px; height: 40px; flex: none; border-radius: var(--necs-pill); background: var(--necs-brand-50); color: var(--necs-brand); display: grid; place-items: center; }
.theme-necs .trust-strip .ico svg { width: 21px; height: 21px; }
.theme-necs .trust-strip .t { font-family: var(--necs-font-display); font-weight: 700; line-height: 1.1; }
.theme-necs .trust-strip .s { font-size: .82rem; color: var(--necs-ink-2); }
@media (max-width: 760px){
  .theme-necs .trust-strip ul { grid-template-columns: repeat(2,1fr); }
  .theme-necs .trust-strip li:nth-child(odd) { border-left: none; }
  .theme-necs .trust-strip li:nth-child(n+3) { border-top: 1px solid var(--necs-line); }
}

/* ============================================================
   CATEGORÍAS — bento (tiles variados, no grilla idéntica)
   ============================================================ */
.theme-necs .bento { display: grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: 168px; gap: 14px; grid-auto-flow: dense; }
.theme-necs .tile { position: relative; overflow: hidden; border-radius: var(--necs-r); background: var(--necs-ink); display: block; isolation: isolate; }
.theme-necs .tile img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .82; transition: transform .5s var(--necs-ease), opacity .3s; z-index: -1; }
.theme-necs .tile::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10,19,48,.05) 30%, rgba(10,19,48,.78)); z-index: -1; }
/* Relleno de ambiente cuando el tile no tiene foto (IMAGE_PROMPTS.md) */
.theme-necs .tile::before { content: ""; position: absolute; inset: 0; z-index: -2; background:
    radial-gradient(120% 120% at 15% 10%, rgba(31,61,240,.55), transparent 60%),
    radial-gradient(120% 120% at 90% 95%, rgba(194,242,62,.22), transparent 55%); }
.theme-necs .tile:hover img { transform: scale(1.06); opacity: .92; }
.theme-necs .tile .lbl { position: absolute; left: 16px; bottom: 14px; right: 16px; color: #fff; }
.theme-necs .tile .lbl .n { font-family: var(--necs-font-display); font-weight: 700; font-size: 1.15rem; }
.theme-necs .tile .lbl .c { font-size: .8rem; color: rgba(255,255,255,.78); }
.theme-necs .tile .go { position: absolute; top: 14px; right: 14px; width: 34px; height: 34px; border-radius: 50%; background: rgba(255,255,255,.16); backdrop-filter: blur(2px); display: grid; place-items: center; color: #fff; transition: background-color .2s, transform .2s var(--necs-ease); }
.theme-necs .tile:hover .go { background: var(--necs-accent); color: var(--necs-ink); transform: rotate(-45deg); }
.theme-necs .tile .go svg { width: 18px; height: 18px; }
.theme-necs .tile.big { grid-column: span 2; grid-row: span 2; }
.theme-necs .tile.wide { grid-column: span 2; }
.theme-necs .tile.big .lbl .n { font-size: 1.6rem; }
@media (max-width: 760px){
  .theme-necs .bento { grid-template-columns: repeat(2,1fr); grid-auto-rows: 140px; }
  .theme-necs .tile.big { grid-row: span 2; }
  .theme-necs .tile.wide { grid-column: span 2; }
}

/* ============================================================
   ¿QUÉ BUSCAS? — venta guiada (4 paneles diferenciados)
   ============================================================ */
.theme-necs .segs { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
.theme-necs .seg { position: relative; overflow: hidden; border-radius: var(--necs-r-lg); padding: clamp(22px,3vw,32px); min-height: 230px; display: flex; flex-direction: column; justify-content: flex-end; color: #fff; isolation: isolate; }
.theme-necs .seg img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; transition: transform .6s var(--necs-ease); }
.theme-necs .seg:hover img { transform: scale(1.05); }
.theme-necs .seg .veil { position: absolute; inset: 0; z-index: -1; }
.theme-necs .seg h3 { font-size: 1.5rem; font-weight: 800; }
.theme-necs .seg p { color: rgba(255,255,255,.85); margin-top: 6px; max-width: 34ch; }
.theme-necs .seg .seg-cta { margin-top: 16px; display: inline-flex; align-items: center; gap: 8px; font-weight: 700; width: max-content; padding: 11px 18px; border-radius: var(--necs-pill); transition: transform .2s var(--necs-ease); }
.theme-necs .seg:hover .seg-cta { transform: translateX(4px); }
.theme-necs .seg .seg-cta svg { width: 17px; height: 17px; }
.theme-necs .seg .kf { position: absolute; top: 20px; left: clamp(22px,3vw,32px); font-weight: 700; font-size: .82rem; letter-spacing: .02em; padding: 6px 12px; border-radius: var(--necs-pill); }
/* art direction por perfil (también sirve como bloque de ambiente sin foto) */
.theme-necs .seg-office { background: var(--necs-brand); }
.theme-necs .seg-office .veil { background: linear-gradient(120deg, rgba(31,61,240,.92), rgba(31,61,240,.45) 70%); }
.theme-necs .seg-office .seg-cta { background: #fff; color: var(--necs-brand); }
.theme-necs .seg-office .kf { background: rgba(255,255,255,.22); color:#fff; }
.theme-necs .seg-gaming { background: var(--necs-ink); }
.theme-necs .seg-gaming .veil { background: linear-gradient(120deg, rgba(10,19,48,.92), rgba(10,19,48,.4) 70%); }
.theme-necs .seg-gaming .seg-cta { background: var(--necs-accent); color: var(--necs-ink); }
.theme-necs .seg-gaming .kf { background: var(--necs-accent); color: var(--necs-ink); }
.theme-necs .seg-biz { background: var(--necs-ink); }
.theme-necs .seg-biz .veil { background: linear-gradient(120deg, rgba(10,19,48,.9), rgba(31,61,240,.55)); }
.theme-necs .seg-biz .seg-cta { background: var(--necs-accent); color: var(--necs-ink); }
.theme-necs .seg-biz .kf { background: rgba(255,255,255,.2); color:#fff; }
.theme-necs .seg-creator { background: var(--necs-hot); }
.theme-necs .seg-creator .veil { background: linear-gradient(120deg, rgba(255,86,48,.9), rgba(10,19,48,.55) 75%); }
.theme-necs .seg-creator .seg-cta { background: #fff; color: var(--necs-hot); }
.theme-necs .seg-creator .kf { background: rgba(255,255,255,.22); color:#fff; }
@media (max-width: 680px){ .theme-necs .segs { grid-template-columns: 1fr; } }

/* ============================================================
   PRODUCT CARD (ofertas / logitech)
   ============================================================ */
.theme-necs .prod-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
@media (max-width: 992px){ .theme-necs .prod-grid { grid-template-columns: repeat(3,1fr); } }
@media (max-width: 680px){ .theme-necs .prod-grid { grid-template-columns: repeat(2,1fr); } }

.theme-necs #main-content .card { position: relative; background: var(--necs-surface); border-radius: var(--necs-r); box-shadow: var(--necs-sh-1); display: flex; flex-direction: column; overflow: hidden; transition: transform .2s var(--necs-ease), box-shadow .2s var(--necs-ease); }
.theme-necs #main-content .card:hover { transform: translateY(-4px); box-shadow: var(--necs-sh-2); }
.theme-necs #main-content .card .media { position: relative; aspect-ratio: 1/1; background: var(--necs-surface-2); display: grid; place-items: center; padding: 14px; }
.theme-necs #main-content .card .media img { width: 100%; height: 100%; object-fit: contain; mix-blend-mode: multiply; transition: transform .35s var(--necs-ease); }
.theme-necs #main-content .card .media.cover img { object-fit: cover; mix-blend-mode: normal; border-radius: var(--necs-r-sm); }
.theme-necs #main-content .card:hover .media img { transform: scale(1.05); }
.theme-necs #main-content .card .tag { position: absolute; top: 12px; left: 12px; font-weight: 700; font-size: .74rem; padding: 5px 10px; border-radius: var(--necs-pill); }
.theme-necs #main-content .card .tag.sale { background: var(--necs-hot); color: #0a1330; }
.theme-necs #main-content .card .tag.official { background: var(--necs-ink); color: #fff; display: inline-flex; gap: 5px; align-items: center; }
.theme-necs #main-content .card .tag.official svg { width: 12px; height: 12px; }
.theme-necs #main-content .card .wish { position: absolute; top: 10px; right: 10px; width: 36px; height: 36px; border-radius: 50%; background: var(--necs-surface); box-shadow: var(--necs-sh-1); display: grid; place-items: center; color: var(--necs-ink-2); transition: color .15s, transform .15s; }
.theme-necs #main-content .card .wish:hover { color: var(--necs-hot); transform: scale(1.08); }
.theme-necs #main-content .card .wish.is-active { color: var(--necs-hot); }
.theme-necs #main-content .card .wish svg { width: 18px; height: 18px; }
.theme-necs #main-content .card .body { padding: 14px 16px 16px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.theme-necs #main-content .card .brand-row { font-size: .76rem; font-weight: 600; color: var(--necs-ink-2); text-transform: none; }
.theme-necs #main-content .card .name { font-family: var(--necs-font-body); font-weight: 600; line-height: 1.35; color: var(--necs-ink); }
.theme-necs #main-content .card .name:hover { color: var(--necs-brand); }
.theme-necs #main-content .card .rating { display: flex; align-items: center; gap: 5px; font-size: .8rem; color: var(--necs-ink-2); }
.theme-necs #main-content .card .rating .stars { color: #f5a623; letter-spacing: 1px; }
.theme-necs #main-content .card .price-row { margin-top: auto; display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
.theme-necs #main-content .card .price { font-family: var(--necs-font-display); font-weight: 800; font-size: 1.2rem; }
.theme-necs #main-content .card .old { color: var(--necs-ink-2); text-decoration: line-through; font-size: .9rem; }
.theme-necs #main-content .card .cta { margin-top: 6px; display: flex; gap: 8px; }
.theme-necs #main-content .card .add { flex: 1; background: var(--necs-brand); color: #fff; border-radius: var(--necs-pill); padding: 11px; font-weight: 600; text-align: center; transition: background-color .15s; }
.theme-necs #main-content .card .add:hover { background: var(--necs-brand-700); }
/* Imagen de producto faltante: fondo neutro del media (no bloque de marca) */
.theme-necs #main-content .card .media .media-fill { position: absolute; inset: 14px; border-radius: var(--necs-r-sm); }

/* ---------- Ofertas: barra + countdown ---------- */
.theme-necs .offer-bar { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.theme-necs .countdown { display: flex; align-items: center; gap: 6px; }
.theme-necs .countdown .lbl { color: var(--necs-ink-2); font-weight: 600; font-size: .9rem; margin-right: 4px; }
.theme-necs .countdown .seg-t,
.theme-necs .countdown .js-countdown-seg { background: var(--necs-ink); color: #fff; border-radius: var(--necs-r-sm); padding: 7px 9px; font-family: var(--necs-font-display); font-weight: 800; min-width: 42px; text-align: center; font-variant-numeric: tabular-nums; }
.theme-necs .countdown .colon { font-weight: 800; color: var(--necs-ink-2); }
.theme-necs .countdown.is-expired { display: none; }
.theme-necs .countdown-expired { display: inline-flex; align-items: center; gap: 8px; background: var(--necs-brand-50); color: var(--necs-brand-700); font-weight: 700; font-size: .85rem; padding: 9px 16px; border-radius: var(--necs-pill); }

/* ============================================================
   BANDA LOGITECH (entrada en home)  +  cabecera (logitech.blade)
   ============================================================ */
.theme-necs .logi-strip { background: var(--necs-ink); color: var(--necs-on-dark); border-radius: var(--necs-r-lg); padding: clamp(28px,4vw,48px); display: grid; grid-template-columns: 1.2fr 1fr; gap: 32px; align-items: center; overflow: hidden; position: relative; }
.theme-necs .logi-strip::before { content:""; position:absolute; right:-80px; top:-80px; width: 320px; height: 320px; border-radius:50%; background: radial-gradient(circle, rgba(31,61,240,.5), transparent 70%); }
.theme-necs .logi-strip .logi-copy { position: relative; }
.theme-necs .logi-logo-img { height: 30px; width: auto; filter: brightness(0) invert(1); margin-bottom: 18px; }
.theme-necs .logi-strip h2 { color: #fff; font-size: clamp(1.6rem,1rem+2.4vw,2.6rem); font-weight: 800; }
.theme-necs .logi-strip p { color: var(--necs-on-dark-2); margin-top: 12px; max-width: 44ch; }
.theme-necs .logi-strip .logi-actions { margin-top: 22px; display: flex; gap: 12px; flex-wrap: wrap; }
.theme-necs .logi-strip .logi-shots { position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.theme-necs .logi-strip .logi-shots .s { background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.1); border-radius: var(--necs-r); padding: 14px; aspect-ratio: 1/1; display: grid; place-items: center; }
.theme-necs .logi-strip .logi-shots img { max-height: 100%; object-fit: contain; }
@media (max-width: 800px){ .theme-necs .logi-strip { grid-template-columns: 1fr; } }

/* ---------- Breadcrumb (todas las páginas necs) ----------
   Integrado al fondo de página (sin banda blanca bajo el header). */
.theme-necs .crumbs { background: transparent; font-size: .84rem; color: var(--necs-ink-2); }
.theme-necs .crumbs .container { display: flex; gap: 8px; align-items: center; padding-block: 16px 0; }
.theme-necs .crumbs a { color: var(--necs-ink-2); font-weight: 500; }
.theme-necs .crumbs a:hover { color: var(--necs-brand); }
.theme-necs .crumbs .sep { color: var(--necs-ink-2); opacity: .45; }
.theme-necs .crumbs .cur { color: var(--necs-ink); font-weight: 600; max-width: 48ch; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* ============================================================
   Logitech HERO — split ink+lima (porta logitech-v3-demo-a.html)
   Tailwind/Preline del prototipo → CSS plano scopeado al tema.
   ============================================================ */
.theme-necs #main-content .logi-hero {
  --logi-split: 62%;
  position: relative; overflow: hidden; isolation: isolate;
  background: var(--necs-ink); color: var(--necs-on-dark);
}
/* Paneles del split */
.theme-necs #main-content .logi-hero .logi-panel-ink {
  position: absolute; inset: 0; z-index: 0;
  background: radial-gradient(120% 90% at 12% 8%, #142255 0%, var(--necs-ink) 55%, #060b22 100%);
}
.theme-necs #main-content .logi-hero .logi-panel-lima {
  position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(155deg, var(--necs-accent) 0%, var(--necs-accent-700) 100%);
  /* Cuña que se ANGOSTA hacia abajo: ancha arriba (split) y delgada al pie,
     de modo que el borde inferior (donde toca el marquee oscuro) sea casi todo
     ink — replica la diagonal del prototipo en un hero más corto y evita el
     corte horizontal verde→oscuro. */
  clip-path: polygon(var(--logi-split) 0, 100% 0, 100% 100%, calc(var(--logi-split) + 20%) 100%);
}
.theme-necs #main-content .logi-hero .logi-seam {
  position: absolute; inset: 0; z-index: 2; pointer-events: none; background: var(--necs-brand);
  clip-path: polygon(calc(var(--logi-split) - 0.55%) 0, var(--logi-split) 0, calc(var(--logi-split) + 20%) 100%, calc(var(--logi-split) + 19.45%) 100%);
}
.theme-necs #main-content .logi-hero-grid {
  position: relative; z-index: 5;
  display: grid; grid-template-columns: minmax(0,1fr) minmax(0,.94fr);
  gap: clamp(20px,3vw,44px); align-items: center;
  padding-block: clamp(36px,5vw,72px);
}

/* --- izquierda: wordmark + copy --- */
.theme-necs #main-content .logi-lede { position: relative; z-index: 6; max-width: 680px; }
/* Desktop: anclado arriba (el grid centraba el lede y arrancaba muy abajo);
   margen corto en vez de center → empieza ~30% más arriba */
@media (min-width: 981px){
  .theme-necs #main-content .logi-lede { align-self: start; margin-top: clamp(16px,2vw,32px); }
}
.theme-necs #main-content .logi-kicker {
  display: inline-flex; align-items: center; gap: 9px;
  font-weight: 700; font-size: .82rem; color: var(--necs-accent);
  margin-bottom: clamp(14px,1.8vw,22px);
}
.theme-necs #main-content .logi-kicker .bar { width: 34px; height: 2px; background: var(--necs-accent); display: inline-block; }
.theme-necs #main-content .logi-wordmark {
  font-family: "Anton", var(--necs-font-display); font-weight: 400; line-height: .84;
  letter-spacing: -.045em; color: #fff;
  font-size: clamp(3rem,9vw,5.4rem); text-wrap: balance;
  margin: 0 0 clamp(20px,2.6vw,32px);
}
/* border-bottom:0 — Ecomus styles.css define .line{border-bottom:1px solid #ebebeb}
   genérica y dibujaba rayas bajo "Logitech," y "oficial" */
.theme-necs #main-content .logi-wordmark .line { display: block; border-bottom: 0; }
.theme-necs #main-content .logi-wordmark .accent { color: var(--necs-accent); }
.theme-necs #main-content .logi-wordmark .small-tag {
  display: block; font-family: "Archivo", var(--necs-font-body); font-weight: 800;
  font-size: clamp(.9rem,2.2vw,1.14rem); letter-spacing: .01em; line-height: 1.1;
  color: var(--necs-on-dark); margin-top: clamp(16px,2vw,26px);
}
.theme-necs #main-content .logi-lead {
  font-size: clamp(.96rem,1.2vw,1.1rem); line-height: 1.55; color: var(--necs-on-dark);
  max-width: 46ch; margin-bottom: clamp(24px,3vw,38px);
}
.theme-necs #main-content .logi-cta-row { display: flex; flex-wrap: wrap; gap: 13px; align-items: center; }
.theme-necs #main-content .logi-cta-row .btn svg { width: 19px; height: 19px; flex: 0 0 auto; }
.theme-necs #main-content .logi-trust {
  display: flex; align-items: center; gap: 12px; margin-top: clamp(24px,3.2vw,38px);
  padding-top: clamp(14px,2vw,20px); border-top: 1px solid rgba(255,255,255,.1);
}
.theme-necs #main-content .logi-trust .badge {
  width: 46px; height: 46px; flex: 0 0 auto; border-radius: 12px;
  background: rgba(0,184,252,.12); border: 1px solid rgba(0,184,252,.45);
  display: grid; place-items: center; color: var(--necs-accent);
}
.theme-necs #main-content .logi-trust .badge svg { width: 24px; height: 24px; }
.theme-necs #main-content .logi-trust b { display: block; font-size: .94rem; color: #fff; font-weight: 700; }
.theme-necs #main-content .logi-trust span span { display: block; font-size: .82rem; color: var(--necs-on-dark-2); line-height: 1.4; }

/* --- derecha: cluster de producto (switcher) --- */
.theme-necs #main-content .logi-showcase {
  position: relative; z-index: 5;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
}
.theme-necs #main-content .logi-stage-area {
  position: relative; width: 100%; min-height: clamp(220px,30vw,360px);
  display: flex; align-items: center; justify-content: center;
}
.theme-necs #main-content .logi-hero-prod {
  position: relative; z-index: 7; width: clamp(240px,34vw,460px);
  max-height: 380px; object-fit: contain;
  /* Sombra compacta: un drop-shadow de 60px sobre la imagen que el tilt
     transforma cada frame re-rasteriza una superficie enorme (jank). */
  filter: drop-shadow(0 22px 28px rgba(5,8,25,.5));
  transform: rotate(-7deg);
  will-change: transform;
}
.theme-necs #main-content .logi-hero-prod.swapping { animation: logiHeroSwap .5s var(--necs-ease); }
@keyframes logiHeroSwap { 0%{opacity:0;transform:translate3d(0,26px,0) rotate(-7deg) scale(.9)} 100%{opacity:1;transform:translate3d(0,0,0) rotate(-7deg) scale(1)} }
.theme-necs #main-content .logi-halo {
  position: absolute; z-index: 4; width: 60%; aspect-ratio: 1; border-radius: 50%;
  /* Sin filter:blur — el gradiente ya es suave y un blur(14px) animado en loop
     re-rasterizaba un círculo gigante cada frame (causa del hero "lento"). */
  background: radial-gradient(circle, rgba(0,184,252,.42) 0%, rgba(0,184,252,0) 68%);
  animation: logiHaloPulse 6s ease-in-out infinite;
  will-change: transform, opacity;
}
@keyframes logiHaloPulse { 0%,100%{transform:scale(1);opacity:.8} 50%{transform:scale(1.07);opacity:1} }
.theme-necs #main-content .logi-ghost-g {
  position: absolute; z-index: 3; font-family: "Anton", var(--necs-font-display);
  font-size: clamp(12rem,30vw,24rem); line-height: .7; color: rgba(10,19,48,.1);
  right: -4%; top: 50%; transform: translateY(-50%); pointer-events: none; user-select: none;
}

/* tarjeta inline */
.theme-necs #main-content .logi-hero-card {
  position: relative; z-index: 9; width: min(100%,440px); margin-top: 14px;
  /* Fondo sólido en vez de backdrop-filter:blur — sobre navy se ve casi igual
     y evita el costo de blur en vivo encima del hero animado. */
  background: rgba(8,14,38,.93);
  border: 1px solid rgba(255,255,255,.12); border-radius: 18px;
  padding: 16px 18px; display: flex; flex-direction: column; gap: 10px;
  box-shadow: 0 24px 50px -20px rgba(0,0,0,.6);
}
.theme-necs #main-content .logi-hero-card .hc-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.theme-necs #main-content .logi-hero-card .hc-name { font-weight: 800; font-size: 1.05rem; color: #fff; line-height: 1.2; }
.theme-necs #main-content .logi-hero-card .hc-tag { font-size: .74rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--necs-accent); margin-top: 3px; }
.theme-necs #main-content .logi-hero-card .hc-price { font-family: "Anton", var(--necs-font-display); font-size: 1.7rem; color: var(--necs-accent); line-height: 1; white-space: nowrap; }
.theme-necs #main-content .logi-hero-card .hc-specs { display: flex; flex-direction: column; gap: 5px; margin: 2px 0; list-style: none; padding: 0; }
.theme-necs #main-content .logi-hero-card .hc-specs li { display: flex; align-items: center; gap: 8px; font-size: .84rem; color: var(--necs-on-dark); }
.theme-necs #main-content .logi-hero-card .hc-specs li svg { width: 14px; height: 14px; color: var(--necs-accent); flex: 0 0 auto; }
.theme-necs #main-content .logi-hero-card .hc-actions { display: flex; gap: 9px; margin-top: 2px; }
.theme-necs #main-content .logi-hero-card .hc-add {
  flex: 1 1 auto; display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  background: var(--necs-accent); color: var(--necs-ink); font-weight: 700; font-size: .9rem;
  padding: 11px 14px; border-radius: 11px; cursor: pointer;
  transition: transform .25s var(--necs-ease), box-shadow .25s;
  box-shadow: 0 10px 24px -10px rgba(0,184,252,.5);
}
.theme-necs #main-content .logi-hero-card .hc-add:hover { transform: translateY(-2px); }
.theme-necs #main-content .logi-hero-card .hc-add svg { width: 17px; height: 17px; }
.theme-necs #main-content .logi-hero-card .hc-detail {
  display: inline-flex; align-items: center; justify-content: center;
  background: rgba(255,255,255,.06); color: #fff; font-weight: 600; font-size: .9rem;
  padding: 11px 16px; border-radius: 11px; border: 1.5px solid rgba(255,255,255,.22);
  transition: background .2s, border-color .2s;
}
.theme-necs #main-content .logi-hero-card .hc-detail:hover { background: rgba(255,255,255,.12); border-color: var(--necs-accent); }

/* switcher de miniaturas */
.theme-necs #main-content .logi-thumbs { display: flex; gap: 10px; flex-wrap: wrap; justify-content: center; margin-top: 12px; width: min(100%,440px); }
/* Miniaturas como mini-cards blancas INTENCIONALES (las fotos de producto traen
   fondo blanco; un chip translúcido las hacía ver "lavadas"/rotas sobre el dock
   oscuro). Activa = anillo cyan Logitech. */
.theme-necs #main-content .logi-thumb {
  position: relative; width: 64px; height: 64px; border-radius: 13px;
  background: #fff; border: 1.5px solid rgba(255,255,255,.35);
  box-shadow: 0 6px 16px -8px rgba(5,8,25,.7);
  display: grid; place-items: center; cursor: pointer; padding: 8px;
  transition: transform .25s var(--necs-ease), border-color .2s, box-shadow .2s;
}
/* Dimensiones FIJAS (chip 64 − padding 8×2): los porcentajes no resuelven de
   forma consistente en grid centrado y los renders verticales desbordaban */
.theme-necs #main-content .logi-thumb img { width: 48px; height: 48px; object-fit: contain; border-radius: 6px; }
.theme-necs #main-content .logi-thumb:hover { transform: translateY(-3px); border-color: rgba(0,184,252,.6); }
.theme-necs #main-content .logi-thumb[aria-pressed="true"] { border-color: var(--necs-accent); box-shadow: 0 8px 20px -8px rgba(0,184,252,.8); }
.theme-necs #main-content .logi-thumb[aria-pressed="true"]::after { content: ""; position: absolute; bottom: -7px; left: 50%; transform: translateX(-50%); width: 18px; height: 3px; border-radius: 3px; background: var(--necs-accent); }

/* responsive: colapsar el split en una columna */
@media (max-width: 980px){
  .theme-necs #main-content .logi-hero { --logi-split: 100%; }
  .theme-necs #main-content .logi-hero .logi-panel-lima { clip-path: polygon(0 78%, 100% 66%, 100% 100%, 0 100%); }
  .theme-necs #main-content .logi-hero .logi-seam { display: none; }
  .theme-necs #main-content .logi-hero-grid { grid-template-columns: 1fr; gap: 14px; }
  .theme-necs #main-content .logi-lede { max-width: none; }
  .theme-necs #main-content .logi-showcase { order: 2; margin-top: 4px; }
  .theme-necs #main-content .logi-ghost-g { font-size: 40vw; color: rgba(10,19,48,.14); }
  .theme-necs #main-content .logi-hero-prod { width: clamp(220px,52vw,360px); }
}
@media (max-width: 560px){
  .theme-necs #main-content .logi-cta-row .btn { flex: 1 1 auto; justify-content: center; }
  .theme-necs #main-content .logi-hero-card .hc-top { flex-direction: column; gap: 8px; }
  .theme-necs #main-content .logi-hero-card .hc-price { font-size: 1.5rem; }
}
@media (prefers-reduced-motion: reduce){
  .theme-necs #main-content .logi-halo,
  .theme-necs #main-content .logi-hero-prod.swapping { animation: none; }
  .theme-necs #main-content .logi-hero-prod { transform: rotate(-7deg); }
}

/* ============================================================
   Logitech MARQUEE (porta .marquee del prototipo)
   ============================================================ */
.theme-necs #main-content .logi-marquee {
  position: relative; overflow: hidden; background: var(--necs-ink);
  border-top: 1px solid rgba(255,255,255,.1); border-bottom: 1px solid rgba(255,255,255,.1);
  padding: 12px 0;
  /* SIN mask-image en el contenedor: el mask también recortaba el fondo ink y
     en los extremos se veía el fondo claro de la página (smear blanco). El fade
     lateral se hace con overlays ink→transparente encima del track. */
}
.theme-necs #main-content .logi-marquee::before,
.theme-necs #main-content .logi-marquee::after {
  content: ""; position: absolute; top: 0; bottom: 0; width: clamp(48px,8vw,110px);
  z-index: 2; pointer-events: none;
}
.theme-necs #main-content .logi-marquee::before { left: 0; background: linear-gradient(90deg, var(--necs-ink), rgba(10,19,48,0)); }
.theme-necs #main-content .logi-marquee::after { right: 0; background: linear-gradient(270deg, var(--necs-ink), rgba(10,19,48,0)); }
.theme-necs #main-content .logi-marquee-track { display: flex; width: max-content; animation: logiMarquee 26s linear infinite; will-change: transform; }
.theme-necs #main-content .logi-marquee:hover .logi-marquee-track { animation-play-state: paused; }
@keyframes logiMarquee { from{transform:translateX(0)} to{transform:translateX(-50%)} }
.theme-necs #main-content .logi-marquee .m-item {
  display: inline-flex; align-items: center; gap: 18px;
  font-family: "Anton", var(--necs-font-display); font-size: clamp(1.05rem,2.2vw,1.6rem);
  letter-spacing: -.02em; color: var(--necs-on-dark); padding: 0 26px; white-space: nowrap;
}
.theme-necs #main-content .logi-marquee .m-item .star { color: var(--necs-accent); font-family: var(--necs-font-body); font-weight: 800; font-size: .7em; }
.theme-necs #main-content .logi-marquee .m-item:nth-child(even) { color: var(--necs-accent); }
@media (prefers-reduced-motion: reduce){ .theme-necs #main-content .logi-marquee-track { animation: none; } }

/* ---------- Logitech: nav de categorías sticky (dark dock) ----------
   Continúa la franja oscura ink del hero + marquee para evitar la banda
   blanca entre el hero split y la sección de productos (--paper). El catnav
   queda como "dock" oscuro: hero ink/lima → marquee ink → catnav ink → paper. */
.theme-necs #main-content .catnav {
  position: sticky; top: 0; z-index: var(--necs-z-nav);
  background: var(--necs-ink);
  border-bottom: 1px solid rgba(255,255,255,.12);
  box-shadow: 0 14px 26px -22px rgba(5,8,25,.9);
}
.theme-necs #main-content .catnav .container { display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; padding-block: 12px; }
.theme-necs #main-content .catnav .container::-webkit-scrollbar { display: none; }
.theme-necs #main-content .catnav a {
  white-space: nowrap; padding: 9px 16px; border-radius: var(--necs-pill);
  font-weight: 600; background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.12); color: var(--necs-on-dark);
  transition: background .2s, color .2s, border-color .2s;
}
.theme-necs #main-content .catnav a:hover {
  background: rgba(0,184,252,.14); border-color: rgba(0,184,252,.5); color: var(--necs-accent);
}

/* ---------- Logitech: por qué comprar aquí ---------- */
.theme-necs .why { display: grid; grid-template-columns: repeat(3,1fr); gap: 16px; }
.theme-necs .why .item { background: var(--necs-surface); border: 1px solid var(--necs-line); border-radius: var(--necs-r); padding: 24px; }
.theme-necs .why .item .ico { width: 46px; height: 46px; border-radius: var(--necs-r-sm); background: var(--necs-brand-50); color: var(--necs-brand); display: grid; place-items: center; margin-bottom: 14px; }
.theme-necs .why .item .ico svg { width: 24px; height: 24px; }
.theme-necs .why .item h3 { font-size: 1.15rem; }
.theme-necs .why .item p { color: var(--necs-ink-2); margin-top: 6px; }
@media (max-width: 820px){ .theme-necs .why { grid-template-columns: 1fr; } }

/* ---------- Logitech: utilidades ---------- */
.theme-necs .ref-note { font-size: .76rem; color: var(--necs-ink-2); font-weight: 500; }
.theme-necs .section-anchor { scroll-margin-top: 76px; }

/* ---------- Logitech: cierre ---------- */
.theme-necs .closing { background: var(--necs-ink); color: var(--necs-on-dark); border-radius: var(--necs-r-lg); padding: clamp(32px,5vw,56px); text-align: center; }
.theme-necs .closing h2 { color: #fff; font-size: clamp(1.6rem,1rem+2.2vw,2.4rem); }
.theme-necs .closing p { color: var(--necs-on-dark-2); margin: 12px auto 0; max-width: 46ch; line-height: 1.7; }
.theme-necs .closing .c-actions { margin-top: 24px; display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }

/* ============================================================
   COMBOS
   ============================================================ */
.theme-necs .combos { display: grid; grid-template-columns: repeat(3,1fr); gap: 16px; }
.theme-necs .combo { background: var(--necs-surface); border: 1px solid var(--necs-line); border-radius: var(--necs-r-lg); padding: 22px; display: flex; flex-direction: column; }
.theme-necs .combo .save { align-self: flex-start; background: var(--necs-accent); color: var(--necs-ink); font-weight: 800; font-size: .8rem; padding: 5px 11px; border-radius: var(--necs-pill); }
.theme-necs .combo h3 { margin-top: 14px; font-size: 1.3rem; }
.theme-necs .combo .items { margin-top: 12px; display: flex; flex-direction: column; gap: 8px; color: var(--necs-ink-2); font-size: .92rem; }
.theme-necs .combo .items li { display: flex; align-items: center; gap: 9px; }
.theme-necs .combo .items svg { width: 16px; height: 16px; color: var(--necs-brand); flex: none; }
.theme-necs .combo .foot { margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--necs-line); display: flex; align-items: end; justify-content: space-between; gap: 12px; }
.theme-necs .combo .price { font-family: var(--necs-font-display); font-weight: 800; font-size: 1.5rem; }
.theme-necs .combo .price small { display:block; font-family: var(--necs-font-body); font-weight: 500; font-size: .78rem; color: var(--necs-ink-2); text-decoration: line-through; }
@media (max-width: 820px){ .theme-necs .combos { grid-template-columns: 1fr; } }

/* ============================================================
   FINANCIAMIENTO
   ============================================================ */
.theme-necs .fin { background: var(--necs-brand); color: #fff; border-radius: var(--necs-r-lg); overflow: hidden; display: grid; grid-template-columns: 1fr 1fr; }
.theme-necs .fin .fin-copy { padding: clamp(28px,4vw,48px); }
.theme-necs .fin h2 { color: #fff; font-size: clamp(1.6rem,1rem+2.2vw,2.4rem); }
.theme-necs .fin p { color: rgba(255,255,255,.85); margin-top: 12px; max-width: 40ch; line-height: 1.7; }
.theme-necs .fin .pays { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; }
.theme-necs .fin .pay { background: rgba(255,255,255,.14); border: 1px solid rgba(255,255,255,.18); border-radius: var(--necs-r-sm); padding: 9px 14px; font-weight: 700; font-size: .9rem; }
.theme-necs .fin .fin-side { background: rgba(0,0,0,.18); padding: clamp(28px,4vw,48px); display: flex; flex-direction: column; justify-content: center; gap: 16px; }
.theme-necs .fin .fin-side .row { display: flex; align-items: center; gap: 14px; }
.theme-necs .fin .fin-side .n { font-family: var(--necs-font-display); font-weight: 800; font-size: 2rem; color: var(--necs-accent); min-width: 64px; }
.theme-necs .fin .fin-side .row p { margin: 0; color: rgba(255,255,255,.9); }
@media (max-width: 760px){ .theme-necs .fin { grid-template-columns: 1fr; } }

/* ============================================================
   CONFIANZA + RESEÑAS
   ============================================================ */
.theme-necs .reviews { display: grid; grid-template-columns: repeat(3,1fr); gap: 16px; }
.theme-necs .review { background: var(--necs-surface); border: 1px solid var(--necs-line); border-radius: var(--necs-r); padding: 24px; display: flex; flex-direction: column; gap: 14px; }
.theme-necs .review .stars { color: #f5a623; letter-spacing: 2px; }
.theme-necs .review p { color: var(--necs-ink); }
.theme-necs .review .who { display: flex; align-items: center; gap: 12px; margin-top: auto; }
.theme-necs .review .ava { width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; font-family: var(--necs-font-display); font-weight: 800; color: #fff; flex: none; background: var(--necs-brand); }
.theme-necs .review .who .nm { font-weight: 700; line-height: 1.1; }
.theme-necs .review .who .mt { font-size: .82rem; color: var(--necs-ink-2); }
@media (max-width: 820px){ .theme-necs .reviews { grid-template-columns: 1fr; } }

/* ============================================================
   ARMA TU SETUP — lookbook (hotspots sobre imagen de ambiente)
   ============================================================ */
.theme-necs .lookbook { position: relative; border-radius: var(--necs-r-lg); overflow: hidden; isolation: isolate; min-height: clamp(320px, 42vw, 520px); background:
    radial-gradient(120% 120% at 18% 12%, rgba(31,61,240,.55), transparent 60%),
    radial-gradient(120% 120% at 88% 92%, rgba(194,242,62,.30), transparent 55%),
    var(--necs-ink); }
.theme-necs .lookbook > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -1; }
.theme-necs .lookbook .lb-spot { position: absolute; width: 30px; height: 30px; border-radius: 50%; background: var(--necs-accent); color: var(--necs-ink); display: grid; place-items: center; font-weight: 800; box-shadow: 0 0 0 6px rgba(194,242,62,.28); transition: transform .2s var(--necs-ease); transform: translate(-50%, -50%); cursor: pointer; }
.theme-necs .lookbook .lb-spot:hover,
.theme-necs .lookbook .lb-spot.is-open { transform: translate(-50%, -50%) scale(1.12); }
.theme-necs .lookbook .lb-spot svg { width: 16px; height: 16px; }
.theme-necs .lookbook .lb-pop { position: absolute; min-width: 220px; max-width: 260px; background: var(--necs-surface); color: var(--necs-ink); border-radius: var(--necs-r); box-shadow: var(--necs-sh-2); padding: 14px; transform: translate(-50%, calc(-100% - 18px)); opacity: 0; visibility: hidden; transition: opacity .2s var(--necs-ease), visibility .2s; z-index: 2; }
.theme-necs .lookbook .lb-spot:hover + .lb-pop,
.theme-necs .lookbook .lb-spot:focus-visible + .lb-pop,
.theme-necs .lookbook .lb-spot.is-open + .lb-pop,
.theme-necs .lookbook .lb-pop:hover { opacity: 1; visibility: visible; }
.theme-necs .lookbook .lb-pop .lb-name { font-weight: 700; line-height: 1.3; }
.theme-necs .lookbook .lb-pop .lb-price { font-family: var(--necs-font-display); font-weight: 800; margin-top: 4px; }
.theme-necs .lookbook .lb-pop .add { margin-top: 10px; display: block; background: var(--necs-brand); color: #fff; border-radius: var(--necs-pill); padding: 9px; font-weight: 600; text-align: center; }
.theme-necs .lookbook .lb-pop .add:hover { background: var(--necs-brand-700); }
@media (max-width: 680px){
  .theme-necs .lookbook .lb-pop { transform: translate(-50%, calc(-100% - 18px)); max-width: min(260px, 80vw); }
}

/* ============================================================
   NEWSLETTER
   ============================================================ */
.theme-necs .news { background: var(--necs-ink); color: var(--necs-on-dark); border-radius: var(--necs-r-lg); padding: clamp(32px,5vw,64px); text-align: center; }
.theme-necs .news h2 { color: #fff; font-size: clamp(1.6rem,1rem+2.2vw,2.4rem); }
.theme-necs .news p { color: var(--necs-on-dark-2); margin: 12px auto 0; max-width: 48ch; line-height: 1.7; }
.theme-necs .news form { display: flex; gap: 8px; max-width: 470px; margin: 26px auto 0; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.14); border-radius: var(--necs-pill); padding: 6px 6px 6px 18px; }
.theme-necs .news form:focus-within { border-color: var(--necs-accent); }
.theme-necs .news input { flex: 1; background: none; border: none; outline: none; color: #fff; min-width: 0; }
.theme-necs .news input::placeholder { color: var(--necs-on-dark-2); }
.theme-necs .news .trust-mini { display: flex; justify-content: center; gap: 18px; flex-wrap: wrap; margin-top: 16px; color: var(--necs-on-dark-2); font-size: .82rem; }
.theme-necs .news .trust-mini span { display: inline-flex; align-items: center; gap: 6px; }
.theme-necs .news .trust-mini svg { width: 15px; height: 15px; color: var(--necs-accent); }
/* recaptcha widget compartido dentro del form */
.theme-necs .news .g-recaptcha,
.theme-necs .news .recaptcha-widget { margin: 14px auto 0; display: flex; justify-content: center; }

/* ============================================================
   FOOTER
   ============================================================ */
.theme-necs .site-footer { background: var(--necs-ink); color: var(--necs-on-dark-2); padding-block: clamp(40px,5vw,64px) 28px; }
.theme-necs .foot-grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 32px; }
.theme-necs .site-footer .logo { color: #fff; }
.theme-necs .site-footer h4 { color: #fff; font-family: var(--necs-font-body); font-size: .95rem; font-weight: 700; margin-bottom: 14px; letter-spacing: .01em; }
.theme-necs .site-footer a:hover { color: #fff; }
.theme-necs .foot-grid ul { display: flex; flex-direction: column; gap: 10px; font-size: .92rem; }
.theme-necs .foot-about p { font-size: .92rem; margin-top: 14px; max-width: 34ch; line-height: 1.7; }
.theme-necs .foot-contact { display: flex; flex-direction: column; gap: 10px; font-size: .92rem; margin-top: 16px; }
.theme-necs .foot-contact .row { display: flex; gap: 10px; align-items: flex-start; }
.theme-necs .foot-contact svg { width: 17px; height: 17px; color: var(--necs-accent); flex: none; margin-top: 2px; }
.theme-necs .foot-bottom { border-top: 1px solid rgba(255,255,255,.1); margin-top: 36px; padding-top: 20px; display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; font-size: .85rem; }
.theme-necs .pay-pills { display: flex; gap: 8px; flex-wrap: wrap; }
.theme-necs .pay-pills span { background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.12); border-radius: 6px; padding: 4px 9px; font-size: .72rem; font-weight: 700; color: #fff; }
.theme-necs .pay-pills span.pay-pill-img { background: #fff; padding: 4px 7px; display: inline-flex; align-items: center; }
.theme-necs .pay-pills span.pay-pill-img img { display: block; height: 20px; width: auto; }
.theme-necs .foot-legal { font-size: .8rem; line-height: 1.6; margin-top: 16px; color: rgba(255,255,255,.55); }
.theme-necs .socials { display: flex; gap: 10px; }
.theme-necs .socials a { width: 38px; height: 38px; border-radius: 50%; background: rgba(255,255,255,.08); display: grid; place-items: center; color: #fff; transition: background-color .15s; }
.theme-necs .socials a:hover { background: var(--necs-brand); }
.theme-necs .socials svg { width: 18px; height: 18px; }
@media (max-width: 860px){ .theme-necs .foot-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px){ .theme-necs .foot-grid { grid-template-columns: 1fr; } }

/* ============================================================
   WHATSAPP FLOTANTE
   ============================================================ */
.theme-necs .wa-float { position: fixed; right: 18px; bottom: 18px; z-index: var(--necs-z-float); display: inline-flex; align-items: center; gap: 10px; background: #25d366; color: #073d22; font-weight: 700; padding: 13px 18px; border-radius: var(--necs-pill); box-shadow: 0 10px 26px rgba(37,211,102,.45); transition: transform .2s var(--necs-ease); }
/* Por encima de la toolbar inferior de Ecomus (.tf-toolbar-bottom.type-1150,
   ~67px, visible <1150px) — a bottom:18 tapaba el botón "Carrito" */
@media (max-width: 1150px){ .theme-necs .wa-float { bottom: 84px; } }
.theme-necs .wa-float:hover { transform: translateY(-3px); }
.theme-necs .wa-float svg { width: 22px; height: 22px; }
@media (max-width: 560px){ .theme-necs .wa-float span { display: none; } .theme-necs .wa-float { padding: 14px; } }

/* ============================================================
   REVEAL (carga orquestada, una vez)
   Importante: el contenido es visible por defecto; .reveal solo añade
   un offset inicial que el JS retira con .in. Si el JS no corre, el
   bloque @media de reduced-motion y el fallback no-js dejan todo visible.
   ============================================================ */
.theme-necs .reveal { opacity: 0; transform: translateY(16px); }
.theme-necs .reveal.in { opacity: 1; transform: none; transition: opacity .6s var(--necs-ease), transform .6s var(--necs-ease); }
/* Fallback: si el tema no marca .js-ready en <html>, no ocultes nada */
html:not(.necs-js) .theme-necs .reveal { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
  .theme-necs *, .theme-necs *::before, .theme-necs *::after {
    animation-duration: .001ms !important;
    transition-duration: .001ms !important;
    scroll-behavior: auto !important;
  }
  .theme-necs .reveal { opacity: 1; transform: none; }
}

/* ============================================================
   HOME — PULIDO GLOBAL (retail). Preservado del <style> inline que vivía
   en home.blade.php (movido aquí al integrar el hero ea1-d). Mismas reglas,
   scopeadas a .theme-necs #main-content. NO afecta al tema gaming/_base.
   ============================================================ */
.theme-necs #main-content .flat-title{align-items:flex-start;text-align:left}
.theme-necs #main-content .flat-title{margin-bottom:clamp(16px,2vw,28px)}
/* NOTA: el tipo/peso/marcador-lima del .flat-title .title se define en la
   región "SECCIONES NECS" (más abajo) para unificar todos los encabezados. */
.theme-necs #main-content .flat-spacing-10,.theme-necs #main-content .flat-spacing-15{padding-block:clamp(32px,3.8vw,56px)}
.theme-necs #main-content .flat-iconbox{padding-block:clamp(28px,3.2vw,44px)}
.theme-necs #main-content .tf-marquee{padding-block:clamp(18px,1.8vw,28px);position:relative}
/* Control de pausa del marquee (WCAG 2.2.2) — pausa promo + marcas */
.theme-necs #main-content .necs-motion-toggle{position:absolute;right:10px;top:50%;transform:translateY(-50%);z-index:5;width:34px;height:34px;border-radius:50%;border:0;background:rgba(255,255,255,.22);color:#fff;display:grid;place-items:center;cursor:pointer;transition:background .15s}
.theme-necs #main-content .necs-motion-toggle:hover{background:rgba(255,255,255,.38)}
.theme-necs #main-content .necs-motion-toggle:focus-visible{outline:2px solid #fff;outline-offset:2px}
/* Móvil: más chico y pegado al borde para no comerse el texto del marquee */
@media (max-width: 575px){ .theme-necs #main-content .necs-motion-toggle{width:28px;height:28px;right:6px} }
.theme-necs #main-content .necs-motion-toggle .ico-play{display:none}
body.motion-paused #main-content .necs-motion-toggle .ico-play{display:block}
body.motion-paused #main-content .necs-motion-toggle .ico-pause{display:none}
body.motion-paused .wrap-marquee,body.motion-paused .brand-marquee-track{animation-play-state:paused!important}
/* Categorías: círculos compactos */
.theme-necs #main-content .flat-testimonial .collection-item-circle{background:transparent!important;padding:0!important}
.theme-necs #main-content .flat-testimonial .collection-item-circle .collection-image{border-radius:50%!important;aspect-ratio:1;width:clamp(88px,10.5vw,132px)!important;height:auto!important;margin:0 auto;overflow:hidden;background:var(--necs-surface);box-shadow:var(--necs-sh-1);border:1px solid var(--necs-line);transition:transform .2s var(--necs-ease),box-shadow .2s var(--necs-ease)}
.theme-necs #main-content .flat-testimonial .collection-item-circle:hover .collection-image{transform:translateY(-4px);box-shadow:var(--necs-sh-2)}
.theme-necs #main-content .flat-testimonial .collection-item-circle .collection-image img{width:100%;height:100%;object-fit:cover}
.theme-necs #main-content .flat-testimonial .collection-item-circle .collection-content{margin-top:12px;text-align:center}
.theme-necs #main-content .flat-testimonial .collection-item-circle .link{color:var(--necs-ink);font-weight:600;font-size:.92rem}
/* NOTA: las medallas de beneficios (tf-icon-box .icon) y la jerarquía de
   precio de las product cards se definen en la región "SECCIONES NECS"
   (más abajo) — se removieron de aquí las reglas antiguas que las
   contradecían (icono "sin óvalo"). */
/* Robustez de color de marca */
.theme-necs #main-content .bg_primary{background-color:var(--necs-brand)!important}

/* ============================================================
   HOME HERO — ea1-d "FLAT SOLID / SWISS BOLD" (coral urgencia)
   Portado del prototipo design-explorations/home-v3b-preline-e-ea1-d.html.
   SIN Tailwind / Preline / Odometer (precio estático server-side).
   TODO scopeado a .theme-necs #main-content para aislarlo del tema live.
   Tipos: Anton (display) + Archivo (cuerpo). Tokens coral locales al hero.
   ============================================================ */
.theme-necs #main-content .echero-pl{padding-top:clamp(16px,2vw,28px);padding-bottom:clamp(18px,2.2vw,30px);
  position:relative;
  /* AURORA LUMINOSA: campo claro (blanco→azul muy pálido) con lavados de
     color VIVOS animados encima — luminoso y con color presente, ni gris
     plano ni oscuro. overflow:hidden recorta las capas (inset -30%). */
  overflow:hidden;
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3CfeComponentTransfer%3E%3CfeFuncA type='linear' slope='0.05'/%3E%3C/feComponentTransfer%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)'/%3E%3C/svg%3E"),
    linear-gradient(180deg, #ffffff 0%, #edf2ff 100%);
  /* easings del prototipo, disponibles para banner + promo tiles (hijos del grid) */
  --easeo:cubic-bezier(.22,.61,.36,1);--easeq:cubic-bezier(.16,1,.3,1)}
/* Aurora capa A — lavados azul perivinca + cyan + violeta, deriva lenta.
   Opacidades altas: sobre blanco el blur licúa el color y a menos de .30
   volvía a leerse gris. */
.theme-necs #main-content .echero-pl::before{
  content:""; position:absolute; inset:-30%; z-index:0; pointer-events:none;
  background:
    radial-gradient(36% 32% at 24% 26%, rgba(99,125,255,.40), transparent 70%),
    radial-gradient(30% 28% at 76% 16%, rgba(0,184,252,.34), transparent 70%),
    radial-gradient(26% 24% at 52% 60%, rgba(140,120,255,.24), transparent 70%);
  filter: blur(54px);
  will-change: transform;
  animation: ecAuroraA 24s ease-in-out infinite alternate;
}
/* Aurora capa B — lima + cyan en la zona baja, contrasentido */
.theme-necs #main-content .echero-pl::after{
  content:""; position:absolute; inset:-30%; z-index:0; pointer-events:none;
  background:
    radial-gradient(30% 28% at 74% 80%, rgba(194,242,62,.42), transparent 70%),
    radial-gradient(26% 24% at 26% 82%, rgba(0,184,252,.24), transparent 70%);
  filter: blur(54px);
  will-change: transform;
  animation: ecAuroraB 30s ease-in-out infinite alternate;
}
/* Elevación de los cards sobre el campo claro */
.theme-necs #main-content .echero-pl .banner-pl{
  box-shadow: 0 30px 70px -38px rgba(10,19,48,.45);
}
.theme-necs #main-content .echero-pl .promo{
  box-shadow: 0 22px 56px -30px rgba(10,19,48,.4);
}
@keyframes ecAuroraA{
  from{transform:translate3d(-3.5%,-2.5%,0) rotate(0deg) scale(1)}
  to{transform:translate3d(3.5%,3%,0) rotate(7deg) scale(1.07)}
}
@keyframes ecAuroraB{
  from{transform:translate3d(3%,2.5%,0) rotate(0deg) scale(1.05)}
  to{transform:translate3d(-3.5%,-3%,0) rotate(-6deg) scale(1)}
}
@media (prefers-reduced-motion: reduce){
  .theme-necs #main-content .echero-pl::before,
  .theme-necs #main-content .echero-pl::after{ animation: none; }
}
.theme-necs #main-content .echero-pl > .container{position:relative;z-index:1}
.theme-necs #main-content .banner-pl{
  position:relative;overflow:hidden;border-radius:8px;
  background:#070d24;color:#fff;min-height:648px;isolation:isolate;
  box-shadow:inset 0 0 0 2px rgba(255,255,255,.06);
  display:flex;flex-direction:column;justify-content:center;
  padding:32px 44px;
  font-family:"Archivo",system-ui,-apple-system,sans-serif;letter-spacing:-.01em;
  /* tokens locales al hero */
  --ink:#070d24;
  --lime:var(--necs-accent);
  /* NECS BRAND recolor (coral→NECS blue). --coral = bright NECS blue (#1238ff):
     SURFACES que cargan texto blanco (mitad de precio, %-tag, CTA primaria —
     blanco sobre #1238ff ≈ 5.5:1 AA) + ESTRUCTURA (slab diagonal, sombras
     offset, bordes, focus rings). --coral-ink se mantiene BRILLANTE (#1238ff)
     para que la mitad de PRECIO del deal-card quede claramente más brillante que
     la mitad del timer (casi negra). --coral-deep = #0b27c9 (profundidad) para el
     seam + el chip del top-strip (blanco sobre #0b27c9 ≈ 7.4:1 AA). OJO: los
     acentos de TEXTO/icono sobre la tinta oscura (label "Termina en" + su icono
     reloj) usan LIMA (--lime), NO azul (azul sobre near-black falla AA ~1.9:1). */
  --coral:#1238ff;--coral-ink:#1238ff;--coral-deep:#0b27c9;
  --easeo:cubic-bezier(.22,.61,.36,1);--easeq:cubic-bezier(.16,1,.3,1);
  --sx-ink:rgba(0,0,0,.5);
  --sh-rest:5px 5px 0 0 var(--sx-ink);--sh-hover:7px 7px 0 0 var(--sx-ink);--sh-active:2px 2px 0 0 var(--sx-ink);
}
/* slab coral diagonal + numeral % fantasma (estructura Swiss, sin blur) */
.theme-necs #main-content .banner-pl::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:var(--coral);clip-path:polygon(100% 0,100% 40%,62% 0);opacity:1}
.theme-necs #main-content .banner-pl::after{content:"%";position:absolute;z-index:0;pointer-events:none;right:18px;bottom:-46px;font-family:"Anton",sans-serif;font-size:340px;line-height:.8;color:rgba(255,255,255,.035);letter-spacing:-.04em;-webkit-text-stroke:2px rgba(255,255,255,.05)}
/* TOP STRIP */
.theme-necs #main-content .banner-pl .pl-topstrip{position:absolute;top:18px;left:44px;right:44px;z-index:6;display:flex;align-items:center;justify-content:space-between;gap:16px;font-family:"Archivo",sans-serif;pointer-events:none}
.theme-necs #main-content .banner-pl .pl-ts-left,.theme-necs #main-content .banner-pl .pl-ts-right{display:flex;align-items:center;gap:16px;min-width:0}
.theme-necs #main-content .banner-pl .pl-ts-pill{display:inline-flex;align-items:center;gap:8px;font-size:.72rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#eef1ff;white-space:nowrap}
.theme-necs #main-content .banner-pl .pl-ts-pill .dot{width:9px;height:9px;border-radius:50%;background:var(--coral);flex:0 0 auto}
.theme-necs #main-content .banner-pl .pl-ts-item{display:inline-flex;align-items:center;gap:7px;background:var(--coral-deep);border-radius:4px;padding:4px 10px;font-size:.78rem;font-weight:800;letter-spacing:.01em;color:#fff;white-space:nowrap}
.theme-necs #main-content .banner-pl .pl-ts-item svg{width:16px;height:16px;flex:0 0 auto;stroke-width:2.1}
/* CONTENT COLUMN */
.theme-necs #main-content .banner-pl .pl-content{position:relative;z-index:3;width:57%;max-width:610px;min-width:0;display:flex;flex-direction:column;margin-top:18px}
/* OFFER CHIP */
.theme-necs #main-content .banner-pl .pl-badge{display:inline-flex;align-items:stretch;align-self:flex-start;white-space:nowrap;border:2px solid var(--coral);border-radius:4px;overflow:hidden;font-family:"Archivo",sans-serif;box-shadow:var(--sh-rest)}
.theme-necs #main-content .banner-pl .pl-badge .tag{display:inline-flex;align-items:center;gap:5px;background:var(--coral-ink);color:#fff;font-family:"Anton",sans-serif;font-weight:400;padding:6px 11px 5px;font-size:.95rem;letter-spacing:.01em;font-variant-numeric:tabular-nums}
.theme-necs #main-content .banner-pl .pl-badge .tag svg{width:13px;height:13px;stroke-width:2.6}
.theme-necs #main-content .banner-pl .pl-badge > :last-child{display:inline-flex;align-items:center;background:var(--ink);color:#eef1ff;padding:6px 13px;font-size:.8rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}
/* HEADLINE */
.theme-necs #main-content .banner-pl .pl-h1{font-family:"Anton",sans-serif;font-weight:400;font-size:clamp(2.2rem,1.1rem + 3vw,3.3rem);line-height:.9;letter-spacing:.002em;text-transform:uppercase;margin:10px 0 10px;max-width:16ch;text-wrap:balance;color:#fff}
.theme-necs #main-content .banner-pl .pl-h1 .hl{color:#fff;background:transparent;display:inline-block;padding:0 .02em .06em;border-radius:0;border-bottom:4px solid var(--lime);box-decoration-break:clone;-webkit-box-decoration-break:clone}
/* SUB */
.theme-necs #main-content .banner-pl .pl-sub{font-family:"Archivo",sans-serif;font-size:clamp(.98rem,.9rem + .4vw,1.12rem);color:#c4cbe8;max-width:38ch;margin:0 0 14px;font-weight:500;text-wrap:pretty;letter-spacing:0;padding-left:14px;border-left:4px solid var(--lime)}
/* SPEC CHIPS — una sola línea */
.theme-necs #main-content .banner-pl .pl-specs{display:flex;flex-wrap:nowrap;gap:7px;margin-bottom:14px;max-width:100%}
.theme-necs #main-content .banner-pl .pl-specs .chip{display:inline-flex;align-items:center;gap:5px;min-width:0;flex:0 1 auto;white-space:nowrap;background:transparent;border:2px solid rgba(255,255,255,.22);color:#eef1ff;padding:6px 10px;border-radius:4px;font-family:"Archivo",sans-serif;font-size:.74rem;font-weight:700;letter-spacing:.02em;text-transform:uppercase;box-shadow:0 0 0 0 var(--sx-ink);transition:transform .14s var(--easeo),box-shadow .14s var(--easeo),border-color .14s var(--easeo),background .14s var(--easeo)}
.theme-necs #main-content .banner-pl .pl-specs .chip svg{color:var(--lime);width:14px;height:14px;flex:0 0 auto;stroke-width:2}
.theme-necs #main-content .banner-pl .pl-specs .chip:hover{background:rgba(18,56,255,.12);border-color:var(--coral);transform:translate(-2px,-2px);box-shadow:var(--sh-rest)}
.theme-necs #main-content .banner-pl .pl-specs .chip:active{transform:translate(2px,2px);box-shadow:var(--sh-active)}
/* DEAL CARD */
.theme-necs #main-content .banner-pl .deal-card{position:relative;display:flex;flex-wrap:nowrap;align-items:stretch;align-self:stretch;border-radius:6px;overflow:hidden;width:100%;text-decoration:none;box-shadow:5px 5px 0 0 var(--coral),0 0 0 2px rgba(255,255,255,.1);transition:transform .14s var(--easeo),box-shadow .14s var(--easeo)}
.theme-necs #main-content .banner-pl .deal-card:hover{transform:translate(-2px,-2px);box-shadow:7px 7px 0 0 var(--coral),0 0 0 2px rgba(255,255,255,.16)}
.theme-necs #main-content .banner-pl .deal-card:active{transform:translate(2px,2px);box-shadow:2px 2px 0 0 var(--coral),0 0 0 2px rgba(255,255,255,.12)}
.theme-necs #main-content .banner-pl .deal-card:focus-visible{outline:3px solid var(--coral);outline-offset:4px}
.theme-necs #main-content .banner-pl .deal-card:hover .deal-price .now{transform:translateY(-1px)}
.theme-necs #main-content .banner-pl .deal-card .deal-price .now{transition:transform .14s var(--easeo)}
.theme-necs #main-content .banner-pl .deal-card .deal-price{flex:1 1 auto;min-width:200px;background:var(--coral-ink);color:#fff;padding:14px 20px}
.theme-necs #main-content .banner-pl .deal-card .deal-divider{width:4px;align-self:stretch;background:var(--coral-deep);flex:0 0 auto}
.theme-necs #main-content .banner-pl .deal-card .deal-timer{flex:0 0 auto;background:var(--ink);color:#fff;padding:14px 16px;display:flex;flex-direction:column;gap:9px;border-left:1px solid rgba(255,255,255,.08)}
.theme-necs #main-content .banner-pl .deal-price .from{font-family:"Archivo",sans-serif;font-size:.72rem;color:#fff;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.theme-necs #main-content .banner-pl .deal-price .now{font-family:"Anton",sans-serif;font-weight:400;font-size:clamp(2.1rem,1.5rem + 1.9vw,2.85rem);line-height:.92;letter-spacing:.003em;display:flex;align-items:baseline;gap:5px;margin-top:5px;color:#fff;font-variant-numeric:tabular-nums;white-space:nowrap}
.theme-necs #main-content .banner-pl .deal-price .now .cur{font-family:"Anton",sans-serif;font-size:.46em;color:#fff;font-weight:400;align-self:flex-start;margin-top:.18em;letter-spacing:.01em}
.theme-necs #main-content .banner-pl .deal-price .now .odometer{display:inline-block;font-variant-numeric:tabular-nums;line-height:1;font-family:"Anton",sans-serif}
.theme-necs #main-content .banner-pl .deal-price .was{font-family:"Archivo",sans-serif;font-size:.92rem;color:#fff;text-decoration:line-through;margin-top:8px;font-weight:700;display:inline-flex;align-items:center}
.theme-necs #main-content .banner-pl .deal-price .save{color:#fff;background:var(--ink);font-family:"Archivo",sans-serif;font-weight:800;margin-left:9px;text-decoration:none;padding:2px 9px;border-radius:3px;font-size:.78rem;letter-spacing:.01em}
/* "Termina en" label + clock icon: LIMA sobre la mitad ink (near-black) del
   deal-card — azul (#1238ff) sobre near-black falla AA (~1.9:1); lima lee AA. */
.theme-necs #main-content .banner-pl .deal-timer .lbl{font-family:"Archivo",sans-serif;font-size:.7rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--lime);display:flex;align-items:center;gap:6px}
.theme-necs #main-content .banner-pl .deal-timer .lbl svg{width:13px;height:13px;color:var(--lime);stroke-width:2.2}
/* FlipDown shell escalado */
.theme-necs #main-content .banner-pl .flip-shell{width:190px;height:44px;display:flex;align-items:center;overflow:visible}
.theme-necs #main-content .banner-pl .flip-wrap{transform:scale(.37);transform-origin:left center}
.theme-necs #main-content .banner-pl .flip-wrap .flipdown{margin:0}
/* CTAs */
.theme-necs #main-content .banner-pl .pl-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:16px}
.theme-necs #main-content .banner-pl .pl-btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;font-family:"Archivo",sans-serif;font-weight:800;font-size:.98rem;border-radius:4px;padding:14px 26px;letter-spacing:.04em;text-transform:uppercase;text-decoration:none;transition:transform .12s var(--easeo),box-shadow .12s var(--easeo),background .16s var(--easeo),border-color .16s var(--easeo);will-change:transform}
.theme-necs #main-content .banner-pl .pl-btn:focus-visible{outline:3px solid var(--coral);outline-offset:3px}
.theme-necs #main-content .banner-pl .pl-btn-primary{background:var(--coral-ink);color:#fff;border:2px solid var(--ink);box-shadow:var(--sh-rest)}
.theme-necs #main-content .banner-pl .pl-btn-primary:hover{background:#1238ff;transform:translate(-2px,-2px);box-shadow:var(--sh-hover)}
.theme-necs #main-content .banner-pl .pl-btn-primary:active{transform:translate(2px,2px);box-shadow:var(--sh-active)}
.theme-necs #main-content .banner-pl .pl-btn-primary svg{transition:transform .25s var(--easeq);stroke-width:2.4}
.theme-necs #main-content .banner-pl .pl-btn-primary:hover svg{transform:translateX(4px)}
.theme-necs #main-content .banner-pl .pl-btn-ghost{background:transparent;color:#fff;border:2px solid rgba(255,255,255,.3);box-shadow:0 0 0 0 var(--sx-ink)}
.theme-necs #main-content .banner-pl .pl-btn-ghost:hover{border-color:#fff;transform:translate(-2px,-2px);box-shadow:5px 5px 0 0 rgba(18,56,255,.55)}
.theme-necs #main-content .banner-pl .pl-btn-ghost:active{transform:translate(2px,2px);box-shadow:var(--sh-active)}
/* WhatsApp asesoría (CTA secundaria, ghost lima) */
.theme-necs #main-content .banner-pl .pl-wa{display:inline-flex;align-items:center;gap:8px;font-family:"Archivo",sans-serif;font-weight:800;font-size:.92rem;color:var(--lime);text-decoration:none;padding:12px 10px;letter-spacing:.02em;border-radius:4px;transition:color .16s var(--easeo),transform .12s var(--easeo)}
.theme-necs #main-content .banner-pl .pl-wa svg{width:18px;height:18px;flex:0 0 auto}
.theme-necs #main-content .banner-pl .pl-wa:hover{color:#fff;transform:translateY(-1px)}
.theme-necs #main-content .banner-pl .pl-wa:focus-visible{outline:3px solid var(--coral);outline-offset:3px}
/* Solicitar asesoría — link inferior derecho (WhatsApp) */
.theme-necs #main-content .banner-pl .pl-asesoria{position:absolute;z-index:6;right:30px;bottom:24px;display:inline-flex;align-items:center;gap:8px;font-family:"Archivo",sans-serif;font-weight:800;font-size:.92rem;color:var(--lime);text-decoration:none;letter-spacing:.01em;padding:9px 14px;border:1.5px solid rgba(194,242,62,.5);border-radius:9px;background:rgba(7,13,36,.55);transition:color .16s var(--easeo),border-color .16s var(--easeo),transform .12s var(--easeo)}
.theme-necs #main-content .banner-pl .pl-asesoria svg{width:18px;height:18px;flex:0 0 auto}
.theme-necs #main-content .banner-pl .pl-asesoria:hover{color:#fff;border-color:var(--lime);transform:translateY(-1px)}
.theme-necs #main-content .banner-pl .pl-asesoria:focus-visible{outline:3px solid var(--coral);outline-offset:3px}
/* GARANTÍA badge */
.theme-necs #main-content .banner-pl .pl-warranty{position:absolute;z-index:4;left:30px;bottom:26px;display:inline-flex;align-items:center;gap:11px;font-family:"Archivo",sans-serif;text-align:left;pointer-events:none}
.theme-necs #main-content .banner-pl .pl-warranty .wic{flex:0 0 auto;display:grid;place-items:center;color:var(--lime)}
.theme-necs #main-content .banner-pl .pl-warranty .wic svg{width:34px;height:34px;stroke-width:1.9;display:block}
.theme-necs #main-content .banner-pl .pl-warranty .wtx{display:flex;flex-direction:column;line-height:1.06}
.theme-necs #main-content .banner-pl .pl-warranty .wtx b{font-family:"Anton",sans-serif;font-weight:400;color:#fff;font-size:1.04rem;letter-spacing:.012em;text-transform:uppercase}
.theme-necs #main-content .banner-pl .pl-warranty .wtx span{font-family:"Archivo",sans-serif;font-weight:700;color:var(--lime);font-size:.74rem;letter-spacing:.07em;text-transform:uppercase;margin-top:2px}
/* VISUAL (imagen del producto, flota a la derecha) */
.theme-necs #main-content .banner-pl .pl-visual{position:absolute;right:-88px;top:50%;transform:translateY(-50%);width:64%;max-width:760px;z-index:1;pointer-events:none}
.theme-necs #main-content .banner-pl .pl-visual img{width:100%;height:auto;filter:drop-shadow(12px 12px 0 rgba(0,0,0,.5));transform:rotate(-1deg);animation:necsFloatlapPl 8s ease-in-out infinite;will-change:transform}
@keyframes necsFloatlapPl{0%,100%{transform:rotate(-1deg) translateY(0)}50%{transform:rotate(-1deg) translateY(-12px)}}
/* FlipDown recolor — ink rotors, colons/headings coral, HH:MM:SS (oculta Días) */
.theme-necs #main-content .banner-pl .flipdown.flipdown__theme-dark{font-family:"Archivo",sans-serif}
.theme-necs #main-content .banner-pl .flipdown .rotor-group:nth-child(1){display:none}
.theme-necs #main-content .banner-pl .flipdown.flipdown__theme-dark .rotor,
.theme-necs #main-content .banner-pl .flipdown.flipdown__theme-dark .rotor-top,
.theme-necs #main-content .banner-pl .flipdown.flipdown__theme-dark .rotor-bottom,
.theme-necs #main-content .banner-pl .flipdown.flipdown__theme-dark .rotor-leaf-front,
.theme-necs #main-content .banner-pl .flipdown.flipdown__theme-dark .rotor-leaf-rear{background-color:#0d1638;color:#fff;border-radius:3px;font-weight:700}
/* FlipDown headings/colons sobre rotores ink (#0d1638): LIMA, no azul (AA). */
.theme-necs #main-content .banner-pl .flipdown.flipdown__theme-dark .rotor-group-heading::before{color:var(--lime);font-weight:700}
.theme-necs #main-content .banner-pl .flipdown.flipdown__theme-dark .rotor-group:nth-child(n+2)::before,
.theme-necs #main-content .banner-pl .flipdown.flipdown__theme-dark .rotor-group:nth-child(n+3)::after{background-color:var(--lime)}
.theme-necs #main-content .banner-pl .flipdown.flipdown__theme-dark .rotor-group::after{background-color:var(--lime)}
/* RESPONSIVE */
@media(max-width:1080px){
  .theme-necs #main-content .banner-pl .pl-content{width:57%}
  .theme-necs #main-content .banner-pl .pl-visual{width:48%;right:-50px;opacity:.94}
}
@media(max-width:820px){
  .theme-necs #main-content .banner-pl{min-height:auto;padding:30px 24px 28px}
  .theme-necs #main-content .banner-pl::before{clip-path:polygon(100% 0,100% 28%,72% 0)}
  .theme-necs #main-content .banner-pl .pl-topstrip{position:static;left:auto;right:auto;top:auto;flex-wrap:wrap;row-gap:8px;margin-bottom:14px;pointer-events:auto}
  .theme-necs #main-content .banner-pl .pl-content{margin-top:0;width:100%;max-width:100%}
  .theme-necs #main-content .banner-pl .pl-ts-item.ts-pickup{display:none}
  .theme-necs #main-content .banner-pl .pl-badge,
  .theme-necs #main-content .banner-pl .pl-h1,
  .theme-necs #main-content .banner-pl .pl-sub,
  .theme-necs #main-content .banner-pl .pl-specs{max-width:none}
  .theme-necs #main-content .banner-pl .pl-visual{position:relative;right:auto;top:auto;transform:none;width:78%;margin:16px auto 0;max-width:420px;order:99}
  .theme-necs #main-content .banner-pl .pl-visual img{transform:rotate(-1.5deg)}
  .theme-necs #main-content .banner-pl .deal-card{width:100%;flex-wrap:wrap}
  .theme-necs #main-content .banner-pl .deal-card .deal-price{flex:1 1 100%}
  .theme-necs #main-content .banner-pl .deal-card .deal-divider{width:100%;height:4px}
  .theme-necs #main-content .banner-pl .deal-card .deal-timer{flex:1 1 100%;border-left:none}
  .theme-necs #main-content .banner-pl .flip-shell{width:255px;height:58px}
  .theme-necs #main-content .banner-pl .flip-wrap{transform:scale(.50);transform-origin:left center}
  .theme-necs #main-content .banner-pl .pl-warranty,
  .theme-necs #main-content .banner-pl .pl-asesoria{position:static;right:auto;left:auto;bottom:auto;order:50;margin-top:14px;align-self:flex-start}
}
@media(max-width:430px){
  .theme-necs #main-content .banner-pl .flip-shell{width:230px;height:54px}
  .theme-necs #main-content .banner-pl .flip-wrap{transform:scale(.45);transform-origin:left center}
  /* Laptop protagonista en pantallas chicas — al 78% quedaba un mar oscuro vacío */
  .theme-necs #main-content .banner-pl .pl-visual{width:94%;max-width:350px;margin-top:8px}
}
@media(prefers-reduced-motion:reduce){
  .theme-necs #main-content .banner-pl .pl-visual img{animation:none !important}
  .theme-necs #main-content .banner-pl .pl-btn:hover,.theme-necs #main-content .banner-pl .pl-btn:active,
  .theme-necs #main-content .banner-pl .pl-specs .chip:hover,.theme-necs #main-content .banner-pl .pl-specs .chip:active,
  .theme-necs #main-content .banner-pl .deal-card:hover,.theme-necs #main-content .banner-pl .deal-card:active,
  .theme-necs #main-content .banner-pl .deal-card:hover .deal-price .now{transform:none !important}
  .theme-necs #main-content .banner-pl .deal-card,.theme-necs #main-content .banner-pl .pl-btn,.theme-necs #main-content .banner-pl .pl-specs .chip{transition:box-shadow .01ms,border-color .12s var(--easeo),background .12s var(--easeo) !important}
}

/* ============================================================
   HOME HERO GRID — 2 columnas (banner izquierda · 2 promo tiles derecha)
   Portado de design-explorations/home-v3b-preline-e-ea1-d.html (.hero-grid + .promo*).
   Scopeado a .theme-necs #main-content .echero-pl para ganar especificidad sobre
   el .theme-necs .hero-grid antiguo. Tokens del prototipo mapeados a --necs-*.
   ============================================================ */
/* Ancho del hero = prototipo (.wrap max 1280 -> contenido 1232). El .container Bootstrap lo limitaba a ~1120. */
.theme-necs #main-content .echero-pl > .container{max-width:1280px;padding-left:24px;padding-right:24px}
.theme-necs #main-content .echero-pl .hero-grid{
  display:grid;
  grid-template-columns:1.62fr 1fr;
  grid-template-rows:auto auto;
  gap:18px;
  align-items:stretch;
  padding-block:0;
}
/* el banner ocupa la columna 1, ambas filas */
.theme-necs #main-content .echero-pl .hero-grid > .banner-pl{grid-row:1 / span 2;grid-column:1}
/* promos2: en desktop es transparente (display:contents) para que cada promo sea
   item directo del grid; en tablet pasa a un sub-grid de 2 columnas. */
.theme-necs #main-content .echero-pl .promos2{display:contents}
.theme-necs #main-content .echero-pl .promo-a{grid-column:2;grid-row:1}
.theme-necs #main-content .echero-pl .promo-b{grid-column:2;grid-row:2}

/* ============================================================
   PROMO TILES — v3b "TRUST / SELLOS" (CREDENTIAL CARDS)
   Portadas EXACTAS de design-explorations/home-promo-tiles-v3b.html.
   .promo-a = tarjeta gaming Logitech-G (charcoal/cyan, sello + rating + chips
   + mouse G502 centrado). .promo-b = Servicio técnico NECS (ink/lima, sello +
   3 chips sólidos + panel-foto difuminado a la derecha). Todo scopeado a
   .echero-pl para que no se filtre. Tokens del prototipo (lima/ink/cyan)
   inline aquí para resolver dentro del scope sin depender del :root del demo.
   ============================================================ */
.theme-necs #main-content .echero-pl .promo{
  --lime:var(--necs-accent);--lime-700:#9ad400;--ink:#070d24;--necs:#1238ff;
  --lg-cyan:#00B8FC;--lg-cyan-deep:#0078b8;--lg-ink:#0b0d12;
  --r-chip:999px;
  position:relative;overflow:hidden;border-radius:18px;
  padding:18px 20px 20px;min-height:228px;
  display:flex;flex-direction:column;
  box-shadow:var(--necs-sh-1);
  transition:transform .3s var(--easeq),box-shadow .3s var(--easeq);
  isolation:isolate;text-decoration:none;
  font-family:"Hanken Grotesk",system-ui,-apple-system,sans-serif;
}
.theme-necs #main-content .echero-pl .promo:hover{transform:translateY(-4px)}

/* TOP AUTHORITY BAR — regla estructural de 5px pegada al borde superior. */
.theme-necs #main-content .echero-pl .promo .seal-bar{position:absolute;left:0;right:0;top:0;height:5px;z-index:2}

/* TRUST PILL ROW — chips compartidos por ambas tarjetas. */
.theme-necs #main-content .echero-pl .promo .tpills{display:flex;flex-wrap:wrap;gap:6px;margin:2px 0 11px;position:relative;z-index:1}
.theme-necs #main-content .echero-pl .promo .tpills .pill{
  display:inline-flex;align-items:center;gap:5px;
  padding:4px 9px;border-radius:var(--r-chip);
  font-size:.7rem;font-weight:800;letter-spacing:.01em;white-space:nowrap;line-height:1.1;
}
.theme-necs #main-content .echero-pl .promo .tpills .pill svg{width:13px;height:13px;flex:0 0 auto;stroke-width:2.2}

/* STAR RATING — compartido (5 estrellas + lectura numérica). */
.theme-necs #main-content .echero-pl .promo .rstars{display:inline-flex;align-items:center;gap:7px;position:relative;z-index:1}
.theme-necs #main-content .echero-pl .promo .rstars .stars{display:inline-flex;gap:1px}
.theme-necs #main-content .echero-pl .promo .rstars .stars svg{width:14px;height:14px;fill:#ffb524;color:#ffb524}
.theme-necs #main-content .echero-pl .promo .rstars b{font-size:.78rem;font-weight:800;letter-spacing:-.01em}
.theme-necs #main-content .echero-pl .promo .rstars span{font-size:.74rem;font-weight:600}

/* CTA "go" — base compartida, color por tarjeta. */
.theme-necs #main-content .echero-pl .promo .go{
  display:inline-flex;align-items:center;gap:8px;align-self:flex-start;
  font-family:var(--necs-font-display),"Plus Jakarta Sans",sans-serif;
  font-weight:800;font-size:.92rem;letter-spacing:-.01em;margin-top:auto;
  position:relative;z-index:1;transition:gap .22s var(--easeq);
}
.theme-necs #main-content .echero-pl .promo .go svg{transition:transform .22s var(--easeq)}
.theme-necs #main-content .echero-pl .promo:hover .go{gap:12px}
.theme-necs #main-content .echero-pl .promo:hover .go svg{transform:translateX(3px)}

.theme-necs #main-content .echero-pl .promo h3{
  font-family:var(--necs-font-display),"Plus Jakarta Sans",sans-serif;font-weight:800;
  font-size:1.3rem;letter-spacing:-.04em;line-height:1.05;margin:0 0 5px;
  max-width:15ch;text-wrap:balance;position:relative;z-index:1;
}
.theme-necs #main-content .echero-pl .promo p{font-size:.86rem;line-height:1.4;margin:0 0 14px;max-width:27ch;font-weight:500;position:relative;z-index:1}

/* =========== PROMO A — LOGITECH-G · DARK GAMING CREDENTIAL CARD =========== */
.theme-necs #main-content .echero-pl .promo-a{
  background:
    radial-gradient(120% 95% at 100% 0%,rgba(0,184,252,.20) 0%,rgba(0,184,252,0) 52%),
    linear-gradient(180deg,#111318 0%,#0b0d12 100%);
  border:2px solid #1c2230;color:#fff;
}
.theme-necs #main-content .echero-pl .promo-a .seal-bar{background:linear-gradient(90deg,var(--lg-cyan) 0%,#46d2ff 100%)}
.theme-necs #main-content .echero-pl .promo-a:hover{box-shadow:0 16px 38px -16px rgba(0,184,252,.5),0 2px 10px rgba(0,0,0,.6);border-color:#2b4a63}
/* VERIFIED SEAL — la señal de confianza líder. */
.theme-necs #main-content .echero-pl .promo-a .seal{display:inline-flex;align-items:center;gap:10px;margin:6px 0 9px;position:relative;z-index:1}
.theme-necs #main-content .echero-pl .promo-a .seal .medal{
  width:38px;height:38px;flex:0 0 auto;position:relative;
  display:grid;place-items:center;color:var(--lg-ink);
  background:var(--lg-cyan);border-radius:11px;
  box-shadow:0 5px 0 -1px var(--lg-cyan-deep),0 9px 20px -7px rgba(0,184,252,.7);
}
.theme-necs #main-content .echero-pl .promo-a .seal .medal svg{width:20px;height:20px;stroke-width:2.6}
.theme-necs #main-content .echero-pl .promo-a .seal .medal::after{
  content:"";position:absolute;right:-3px;bottom:-3px;width:13px;height:13px;
  background:var(--lg-cyan);border:2px solid var(--lg-ink);border-radius:50%;
  box-shadow:0 0 8px rgba(0,184,252,.9);
}
.theme-necs #main-content .echero-pl .promo-a .seal .stx{display:flex;flex-direction:column;line-height:1.12}
.theme-necs #main-content .echero-pl .promo-a .seal .stx .eyebrow{font-size:.62rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--lg-cyan);margin-bottom:1px}
.theme-necs #main-content .echero-pl .promo-a .seal .stx b{font-family:var(--necs-font-display),"Plus Jakarta Sans",sans-serif;font-weight:800;font-size:.84rem;letter-spacing:-.01em;color:#fff}
.theme-necs #main-content .echero-pl .promo-a .rstars .stars svg{fill:var(--lg-cyan);color:var(--lg-cyan)}
.theme-necs #main-content .echero-pl .promo-a .rstars b{color:#fff}
.theme-necs #main-content .echero-pl .promo-a .rstars span{color:#9aa6bf}
.theme-necs #main-content .echero-pl .promo-a .tpills{margin-top:7px}
.theme-necs #main-content .echero-pl .promo-a .tpills .pill{background:rgba(0,184,252,.10);color:#eaf6ff;border:1.5px solid rgba(0,184,252,.32)}
.theme-necs #main-content .echero-pl .promo-a .tpills .pill svg{color:var(--lg-cyan)}
.theme-necs #main-content .echero-pl .promo-a p{color:#9aa6bf}
.theme-necs #main-content .echero-pl .promo-a h3{margin-top:2px;color:#fff}
.theme-necs #main-content .echero-pl .promo-a .go{color:var(--lg-cyan)}
/* PRODUCT — render G502 centrado verticalmente en la línea media de la tarjeta. */
.theme-necs #main-content .echero-pl .promo-a .pa-stage{position:absolute;right:-24px;top:50%;transform:translateY(-50%);width:248px;height:222px;z-index:0;pointer-events:none}
.theme-necs #main-content .echero-pl .promo-a .pa-stage::before{
  content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  width:236px;height:188px;
  background:radial-gradient(60% 62% at 50% 50%,rgba(0,184,252,.34) 0%,rgba(0,184,252,.12) 42%,rgba(0,184,252,0) 72%);
  filter:blur(2px);
}
.theme-necs #main-content .echero-pl .promo-a .pa-stage::after{
  content:"";position:absolute;left:50%;bottom:30px;transform:translateX(-50%);
  width:166px;height:26px;
  background:radial-gradient(50% 100% at 50% 50%,rgba(0,0,0,.5) 0%,rgba(0,0,0,0) 72%);
  filter:blur(3px);
}
.theme-necs #main-content .echero-pl .promo-a .pa-stage img{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) rotate(-8deg);
  width:222px;
  filter:drop-shadow(0 20px 26px rgba(0,0,0,.6)) drop-shadow(0 4px 14px rgba(0,184,252,.28));
  transition:transform .45s var(--easeq);
}
.theme-necs #main-content .echero-pl .promo-a:hover .pa-stage img{transform:translate(-50%,-50%) rotate(-8deg) translateY(-7px) scale(1.04)}
.theme-necs #main-content .echero-pl .promo-a .pa-body{position:relative;z-index:1;max-width:60%}

/* =========== PROMO B — SERVICIO TÉCNICO · NECS DARK CREDENTIAL CARD =========== */
.theme-necs #main-content .echero-pl .promo-b{
  background:
    radial-gradient(130% 120% at 0% 0%,#102a8f 0%,rgba(16,42,143,0) 56%),
    linear-gradient(160deg,#0d163a 0%,#070d24 100%);
  color:#fff;border:2px solid #1a2456;
}
.theme-necs #main-content .echero-pl .promo-b .seal-bar{background:linear-gradient(90deg,var(--lime) 0%,#9ad400 100%)}
.theme-necs #main-content .echero-pl .promo-b:hover{box-shadow:0 18px 40px -18px rgba(7,13,36,.85),0 2px 8px rgba(7,13,36,.5);border-color:#2a3878}
/* HERO VISUAL — PANEL FOTO profesional difuminado en la mitad derecha. */
.theme-necs #main-content .echero-pl .promo-b .pb-photo{position:absolute;top:0;right:0;bottom:0;width:50%;z-index:0;pointer-events:none;overflow:hidden}
.theme-necs #main-content .echero-pl .promo-b .pb-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:18% 50%;filter:saturate(.82) brightness(.94) contrast(1.04)}
.theme-necs #main-content .echero-pl .promo-b .pb-photo::before{
  content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(90deg,#070d24 0%,rgba(9,16,46,.92) 22%,rgba(10,21,58,.55) 48%,rgba(13,30,90,.18) 72%,rgba(13,30,90,0) 100%);
}
.theme-necs #main-content .echero-pl .promo-b .pb-photo::after{
  content:"";position:absolute;inset:0;z-index:2;
  background:linear-gradient(135deg,rgba(18,56,255,.30) 0%,rgba(11,39,201,.20) 55%,rgba(7,13,36,.30) 100%);
  box-shadow:inset 0 22px 30px -14px rgba(7,13,36,.85),inset 0 -22px 30px -14px rgba(7,13,36,.9),inset -18px 0 26px -14px rgba(7,13,36,.7);
}
.theme-necs #main-content .echero-pl .promo-b .pb-photo .pb-spark{position:absolute;right:0;top:0;bottom:0;width:2px;z-index:3;background:linear-gradient(180deg,rgba(200,255,46,0) 0%,rgba(200,255,46,.5) 50%,rgba(200,255,46,0) 100%)}
.theme-necs #main-content .echero-pl .promo-b .pb-photo .pb-caption{
  position:absolute;left:14px;bottom:13px;z-index:4;
  display:inline-flex;align-items:center;gap:8px;
  font-family:var(--necs-font-display),"Plus Jakarta Sans",sans-serif;font-weight:800;
  font-size:.74rem;letter-spacing:.01em;line-height:1.1;
  color:#f4f7ff;white-space:nowrap;text-shadow:0 1px 6px rgba(7,13,36,.9);
}
.theme-necs #main-content .echero-pl .promo-b .pb-photo .pb-caption::before{
  content:"";position:absolute;left:-14px;right:-22px;bottom:-13px;top:-16px;z-index:-1;
  background:linear-gradient(0deg,rgba(7,13,36,.78) 0%,rgba(7,13,36,.42) 56%,rgba(7,13,36,0) 100%);
  pointer-events:none;
}
.theme-necs #main-content .echero-pl .promo-b .pb-photo .pb-caption .dot{width:7px;height:7px;border-radius:50%;flex:0 0 auto;background:var(--lime);box-shadow:0 0 8px rgba(200,255,46,.85)}
.theme-necs #main-content .echero-pl .promo-b .pb-photo.noimg .pb-caption{display:none}
.theme-necs #main-content .echero-pl .promo-b .pb-photo.noimg img{display:none}
/* SERVICE SEAL — espeja el .seal de la tarjeta A, paleta NECS lima+azul. */
.theme-necs #main-content .echero-pl .promo-b .seal{display:inline-flex;align-items:center;gap:10px;align-self:flex-start;margin:6px 0 9px;position:relative;z-index:1}
.theme-necs #main-content .echero-pl .promo-b .seal .medal{
  width:38px;height:38px;flex:0 0 auto;position:relative;
  display:grid;place-items:center;color:var(--ink);
  background:linear-gradient(150deg,var(--lime) 0%,#9ad400 100%);border-radius:11px;
  box-shadow:0 5px 0 -1px var(--lime-700),0 9px 20px -7px rgba(200,255,46,.55);
}
.theme-necs #main-content .echero-pl .promo-b .seal .medal svg{width:20px;height:20px;stroke-width:2.4}
.theme-necs #main-content .echero-pl .promo-b .seal .medal::after{
  content:"";position:absolute;right:-3px;bottom:-3px;width:13px;height:13px;
  background:var(--necs);border:2px solid #070d24;border-radius:50%;box-shadow:0 0 8px rgba(18,56,255,.85);
}
.theme-necs #main-content .echero-pl .promo-b .seal .stx{display:flex;flex-direction:column;line-height:1.12}
.theme-necs #main-content .echero-pl .promo-b .seal .stx .eyebrow{font-size:.62rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--lime);margin-bottom:1px}
.theme-necs #main-content .echero-pl .promo-b .seal .stx b{font-family:var(--necs-font-display),"Plus Jakarta Sans",sans-serif;font-weight:800;font-size:.84rem;letter-spacing:-.01em;color:#fff}
.theme-necs #main-content .echero-pl .promo-b .tpills{margin-top:8px;max-width:54%}
.theme-necs #main-content .echero-pl .promo-b .tpills .pill{background:#0e1a44;color:#eef1ff;border:1.5px solid #2a3878}
.theme-necs #main-content .echero-pl .promo-b .tpills .pill svg{color:var(--lime)}
.theme-necs #main-content .echero-pl .promo-b h3{color:#fff;max-width:13ch}
.theme-necs #main-content .echero-pl .promo-b p{color:#c4cdf2;max-width:26ch;margin-bottom:13px}
.theme-necs #main-content .echero-pl .promo-b .go{color:var(--lime);margin-top:0}
.theme-necs #main-content .echero-pl .promo-b .pb-head{max-width:100%}
.theme-necs #main-content .echero-pl .promo-b .pb-copy{position:relative;z-index:1;max-width:54%}

/* ---------- HERO GRID RESPONSIVE ---------- */
@media(max-width:980px){
  .theme-necs #main-content .echero-pl .hero-grid{grid-template-columns:1fr;grid-template-rows:none}
  .theme-necs #main-content .echero-pl .hero-grid > .banner-pl{grid-row:auto;grid-column:auto}
  .theme-necs #main-content .echero-pl .promo-a,
  .theme-necs #main-content .echero-pl .promo-b{grid-column:auto;grid-row:auto}
  .theme-necs #main-content .echero-pl .promos2{display:grid;grid-template-columns:1fr 1fr;gap:18px}
}
@media(max-width:560px){
  .theme-necs #main-content .echero-pl .promos2{grid-template-columns:1fr}
  .theme-necs #main-content .echero-pl .promo{min-height:236px}
  .theme-necs #main-content .echero-pl .promo-a .pa-body{max-width:62%}
  .theme-necs #main-content .echero-pl .promo-a .pa-stage{width:222px;height:202px;right:-22px}
  .theme-necs #main-content .echero-pl .promo-a .pa-stage img{width:198px}
  .theme-necs #main-content .echero-pl .promo-b{padding-bottom:118px}
  .theme-necs #main-content .echero-pl .promo-b .pb-copy{max-width:100%}
  .theme-necs #main-content .echero-pl .promo-b .tpills{max-width:100%}
  .theme-necs #main-content .echero-pl .promo-b .pb-photo{top:auto;left:0;right:0;bottom:0;width:100%;height:128px}
  .theme-necs #main-content .echero-pl .promo-b .pb-photo img{object-position:50% 38%}
  .theme-necs #main-content .echero-pl .promo-b .pb-photo::before{
    background:linear-gradient(180deg,#070d24 0%,rgba(9,16,46,.9) 26%,rgba(10,21,58,.4) 60%,rgba(13,30,90,0) 100%);
  }
  .theme-necs #main-content .echero-pl .promo-b .pb-photo::after{
    box-shadow:inset 0 26px 32px -14px rgba(7,13,36,.92),inset 0 -16px 26px -14px rgba(7,13,36,.7),inset 18px 0 26px -16px rgba(7,13,36,.6),inset -18px 0 26px -16px rgba(7,13,36,.6);
  }
  .theme-necs #main-content .echero-pl .promo-b .pb-photo .pb-spark{
    right:0;left:0;top:0;bottom:auto;width:auto;height:2px;
    background:linear-gradient(90deg,rgba(200,255,46,0) 0%,rgba(200,255,46,.5) 50%,rgba(200,255,46,0) 100%);
  }
}
@media(max-width:400px){
  .theme-necs #main-content .echero-pl .promo-a .pa-body{max-width:70%}
  .theme-necs #main-content .echero-pl .promo-a .pa-stage{width:168px;height:160px;right:-18px}
  .theme-necs #main-content .echero-pl .promo-a .pa-stage img{width:150px}
  .theme-necs #main-content .echero-pl .promo-b{padding-bottom:104px}
  .theme-necs #main-content .echero-pl .promo-b .pb-photo{height:112px}
}
@media(prefers-reduced-motion:reduce){
  .theme-necs #main-content .echero-pl .promo:hover{transform:none !important}
  .theme-necs #main-content .echero-pl .promo-a:hover .pa-stage img{transform:translate(-50%,-50%) rotate(-8deg) !important}
  .theme-necs #main-content .echero-pl .promo:hover .go svg{transform:none !important}
}

/* ============================================================
   SECCIONES NECS — re-marca de las secciones Ecomus "por defecto" del
   home (encabezados, beneficios, product cards, lookbook, testimonios,
   marcas, ubicación, newsletter) para alinearlas al lenguaje del hero:
   superficies blancas/--necs-bg, radios 14px, bordes hairline, acento
   azul + chispa lima, una sola sombra estructural por elevación.
   TODO scopeado bajo .theme-necs #main-content (el hero/marquee/categorías/
   banda Logitech/promo tiles ya están marcados; aquí sólo se unifican
   encabezados y se re-marcan las secciones genéricas). No toca gaming/_base.
   ============================================================ */

/* ---------- ENCABEZADOS DE SECCIÓN — unificación NECS ----------
   Título display 800, ink, alineado a la izquierda, con un marcador lima
   corto (eco del .pl-h1 .hl del hero) bajo el texto. Tamaño por clamp. */
.theme-necs #main-content .flat-title{align-items:flex-start;text-align:left;display:flex;flex-direction:column}
.theme-necs #main-content .flat-title.flex-row{flex-direction:row;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:14px}
.theme-necs #main-content .flat-title .title,
.theme-necs #main-content section > .container > .flat-title h2{
  position:relative;
  font-family:var(--necs-font-display);
  font-size:clamp(1.45rem,1rem + 1.5vw,2.1rem);
  font-weight:800;
  letter-spacing:-.035em;
  line-height:1.12;
  color:var(--necs-ink);
  padding-bottom:12px;
  margin-bottom:0;
}
/* marcador — barra corta azul NECS bajo el título (no eyebrow) */
.theme-necs #main-content .flat-title .title::after{
  content:"";position:absolute;left:0;bottom:0;
  width:48px;height:4px;border-radius:var(--necs-pill);
  background:var(--necs-brand);
}
.theme-necs #main-content .flat-title.flex-row .title{padding-bottom:0}
.theme-necs #main-content .flat-title.flex-row .title::after{bottom:-10px}

/* RITMO VERTICAL — fondos alternados (#fff vs --necs-bg) por sección.
   bg_light-blue-3 (Hot deals / Newsletter) → superficie tenue de marca. */
.theme-necs #main-content .bg_light-blue-3{background-color:var(--necs-bg) !important}

/* ============================================================
   BENEFICIOS (flat-iconbox / tf-icon-box) — medallas NECS
   ============================================================ */
.theme-necs #main-content .flat-iconbox.line{border-top:1px solid var(--necs-line);border-bottom:1px solid var(--necs-line)}
.theme-necs #main-content .flat-iconbox .tf-icon-box.style-row{
  display:flex;align-items:flex-start;gap:14px;
  padding:6px clamp(8px,1.4vw,18px);
}
/* medalla ~44px, cuadrado redondeado 10px, relleno azul NECS, glifo lima,
   una sombra estructural offset en azul profundo */
.theme-necs #main-content .flat-iconbox .tf-icon-box .icon{
  flex:0 0 auto;
  width:44px !important;height:44px !important;min-width:44px !important;
  display:grid !important;place-items:center;
  border-radius:var(--necs-r-sm) !important;
  background:var(--necs-brand) !important;
  color:#fff !important;
  box-shadow:0 5px 0 -1px var(--necs-brand-700) !important;
  border:0 !important;
  margin:0 !important;
}
.theme-necs #main-content .flat-iconbox .tf-icon-box .icon i{
  color:#fff !important;font-size:22px !important;line-height:1;
}
.theme-necs #main-content .flat-iconbox .tf-icon-box .content .title{
  color:var(--necs-ink);font-weight:800;font-size:1rem;letter-spacing:-.01em;line-height:1.25;
}
.theme-necs #main-content .flat-iconbox .tf-icon-box .content p{
  color:var(--necs-ink-2);font-size:.9rem;line-height:1.45;margin-top:3px;
}

/* ============================================================
   PRODUCT CARDS — una sola tarjeta NECS consistente
   (Hot Deals + Popular + Recommended: .card-product)
   ============================================================ */
.theme-necs #main-content .card-product{
  position:relative;
  background:var(--necs-surface) !important;
  border:1px solid var(--necs-line) !important;
  border-radius:var(--necs-r) !important;
  overflow:hidden;
  transition:transform .28s var(--necs-ease),box-shadow .28s var(--necs-ease),border-color .28s var(--necs-ease);
}
.theme-necs #main-content .card-product:hover{
  transform:translateY(-6px);
  border-color:var(--necs-brand) !important;
  /* glow azul de marca, suave, una sola sombra (sin ghost-card) */
  box-shadow:0 18px 40px -16px rgba(31,61,240,.35);
}
.theme-necs #main-content .card-product .card-product-wrapper{
  border-radius:0;background:var(--necs-surface);
  overflow:hidden; /* recorta el zoom de la imagen al área media */
}
.theme-necs #main-content .card-product .card-product-wrapper .product-img{aspect-ratio:1/1;background:#fff;overflow:hidden}
.theme-necs #main-content .card-product .card-product-wrapper .product-img img{object-fit:contain;padding:10px;transition:transform .45s var(--necs-ease)}
/* zoom GPU-friendly de la imagen al hover de la tarjeta */
.theme-necs #main-content .card-product:hover .card-product-wrapper .product-img img{transform:scale(1.05)}
.theme-necs #main-content .card-product .card-product-info{padding:14px 16px 16px}
/* nombre */
.theme-necs #main-content .card-product .card-product-info .title.link{
  color:var(--necs-ink);font-weight:600;line-height:1.35;
}
.theme-necs #main-content .card-product .card-product-info .title.link:hover{color:var(--necs-brand)}
/* jerarquía de precio: actual 800 display ink; antes tachado menor ink-2 */
.theme-necs #main-content .card-product .price{
  color:var(--necs-ink);font-weight:800;font-family:var(--necs-font-display);
  font-size:clamp(1rem,.9rem + .4vw,1.18rem) !important;line-height:1.2;letter-spacing:-.02em;
}
.theme-necs #main-content .card-product .price .old-price{
  color:var(--necs-ink-2) !important;text-decoration:line-through;
  font-family:var(--necs-font-body);font-weight:600;font-size:.85rem !important;margin-right:6px;
}
/* botón "Agregar al carrito" — azul NECS relleno, blanco, hover brand-700.
   Consistente en las 3 secciones (Popular/Recommended antes por defecto). */
.theme-necs #main-content .card-product .btn-add-to-cart,
.theme-necs #main-content .card-product a.tf-btn.btn-fill{
  background:var(--necs-brand) !important;color:#fff !important;border-color:var(--necs-brand) !important;
  border-radius:var(--necs-pill);font-weight:700;
  transition:background-color .15s var(--necs-ease),transform .15s var(--necs-ease);
}
.theme-necs #main-content .card-product .btn-add-to-cart:hover,
.theme-necs #main-content .card-product a.tf-btn.btn-fill:hover{
  background:var(--necs-brand-700) !important;color:#fff !important;transform:translateY(-1px);
}
/* badge de oferta/HOT — coral con texto blanco (AA) */
.theme-necs #main-content .card-product .on-sale-wrap{top:12px;left:12px}
.theme-necs #main-content .card-product .on-sale-wrap .on-sale-item{
  background:var(--necs-hot) !important;color:#fff !important;
  font-weight:800;font-size:.72rem;letter-spacing:.01em;
  padding:5px 10px;border-radius:var(--necs-pill);box-shadow:none;
}
/* botones de acción (quick-add / wishlist / quickview) — círculo blanco, icono ink, hover azul */
.theme-necs #main-content .card-product .list-product-btn .box-icon{
  background:var(--necs-surface) !important;color:var(--necs-ink) !important;
  border:1px solid var(--necs-line);box-shadow:var(--necs-sh-1);
  transition:background-color .15s var(--necs-ease),color .15s var(--necs-ease),transform .15s var(--necs-ease);
}
.theme-necs #main-content .card-product .list-product-btn .box-icon .icon{color:var(--necs-ink)}
.theme-necs #main-content .card-product .list-product-btn .box-icon:hover{
  background:var(--necs-brand) !important;color:#fff !important;transform:translateY(-2px);border-color:var(--necs-brand);
}
.theme-necs #main-content .card-product .list-product-btn .box-icon:hover .icon{color:#fff}
.theme-necs #main-content .card-product .wishlist.is-active .icon-heart,
.theme-necs #main-content .card-product .wishlist.active .icon-heart{color:var(--necs-hot)}
/* countdown de Hot Deals (tf-countdown-v3 + js-countdown) → estilo NECS */
.theme-necs #main-content .tf-countdown-v3{display:inline-flex;align-items:center;gap:10px;color:var(--necs-ink);background:transparent !important;box-shadow:none !important}
.theme-necs #main-content .tf-countdown-v3 > svg{color:var(--necs-hot)}
.theme-necs #main-content .tf-countdown-v3 .countdown__item,
.theme-necs #main-content .tf-countdown-v3 .countdown__value{
  background:var(--necs-ink);color:#fff;border-radius:var(--necs-r-sm);
  padding:6px 8px;min-width:38px;text-align:center;font-family:var(--necs-font-display);font-weight:800;
  font-variant-numeric:tabular-nums;line-height:1;
}
.theme-necs #main-content .tf-countdown-v3 .countdown__label{color:var(--necs-ink-2);font-size:.62rem;font-weight:700}

/* ============================================================
   LOOKBOOK (wrap-lookbook + pines .tf-pin-btn)
   ============================================================ */
/* NOTA: el marco (radio + recorte) se aplica al .image, NO al .wrap-lookbook,
   para que el dropdown del pin (.dropdown-menu, hijo de .lookbook-item) pueda
   salir del contenedor sin recortarse. */
.theme-necs #main-content .wrap-lookbook{
  border-radius:var(--necs-r);
  box-shadow:var(--necs-sh-2);
}
.theme-necs #main-content .wrap-lookbook .image{
  border-radius:var(--necs-r);overflow:hidden;
  border:1px solid var(--necs-line);
}
.theme-necs #main-content .wrap-lookbook .image img{display:block;width:100%}
/* pin = punto azul NECS con anillo blanco + pulso; hover lima */
.theme-necs #main-content .lookbook-item .tf-pin-btn{
  width:28px !important;height:28px !important;
  background-color:var(--necs-brand) !important;
  border:3px solid #fff !important;
  box-shadow:0 3px 10px rgba(10,19,48,.35);
  transition:background-color .18s var(--necs-ease),transform .18s var(--necs-ease);
}
.theme-necs #main-content .lookbook-item .tf-pin-btn span{
  width:7px;height:7px;border-radius:50%;background:#fff;display:block;
}
.theme-necs #main-content .lookbook-item .tf-pin-btn::after{
  content:"";position:absolute;inset:-3px;border-radius:50%;
  border:2px solid var(--necs-brand);opacity:.55;
  animation:necs-pin-pulse 2.2s var(--necs-ease) infinite;
}
.theme-necs #main-content .lookbook-item .tf-pin-btn:hover{background-color:var(--necs-accent) !important;transform:scale(1.08)}
.theme-necs #main-content .lookbook-item .tf-pin-btn:hover span{background:var(--necs-ink)}
@keyframes necs-pin-pulse{0%{transform:scale(1);opacity:.55}70%{transform:scale(1.9);opacity:0}100%{opacity:0}}
/* tarjeta del dropdown del pin — blanca, radio, sombra */
.theme-necs #main-content .lookbook-item .dropdown-menu{
  background:var(--necs-surface);border-radius:var(--necs-r) !important;
  box-shadow:var(--necs-sh-2);border:1px solid var(--necs-line) !important;overflow:hidden;
}
.theme-necs #main-content .lookbook-product{background:var(--necs-surface)}
.theme-necs #main-content .lookbook-product .product-title a{color:var(--necs-ink);font-weight:600}
.theme-necs #main-content .lookbook-product .product-title a:hover{color:var(--necs-brand)}
.theme-necs #main-content .lookbook-product .price{color:var(--necs-ink);font-weight:800;font-family:var(--necs-font-display)}
.theme-necs #main-content .lookbook-product .btn-add-to-cart{
  background:var(--necs-brand) !important;color:#fff !important;border-radius:var(--necs-r-sm);
  transition:background-color .15s var(--necs-ease);
}
.theme-necs #main-content .lookbook-product .btn-add-to-cart:hover{background:var(--necs-brand-700) !important}
.theme-necs #main-content .lookbook-product .btn-add-to-cart i{color:#fff !important}

/* ============================================================
   TESTIMONIOS (tf-sw-tes-2 + testimonial-item)
   ============================================================ */
.theme-necs #main-content .testimonial-gaming-accessories{position:relative}
/* tarjeta blanca, radio 14px, hairline, glifo de comilla lima */
.theme-necs #main-content .tf-sw-tes-2 .testimonial-item{
  background:var(--necs-surface);
  border:1px solid var(--necs-line);
  border-radius:var(--necs-r);
  box-shadow:var(--necs-sh-1);
  padding:clamp(22px,3vw,34px);
  position:relative;
}
.theme-necs #main-content .tf-sw-tes-2 .testimonial-item .icon svg path{stroke:var(--necs-brand)}
.theme-necs #main-content .tf-sw-tes-2 .testimonial-item .heading{color:var(--necs-ink-2);font-weight:700;letter-spacing:.02em;text-transform:uppercase}
.theme-necs #main-content .tf-sw-tes-2 .testimonial-item .rating .icon-star{color:#f5a623}
.theme-necs #main-content .tf-sw-tes-2 .testimonial-item .text{color:var(--necs-ink);font-size:1.02rem;line-height:1.55}
.theme-necs #main-content .tf-sw-tes-2 .testimonial-item .author .name{color:var(--necs-ink);font-weight:800}
.theme-necs #main-content .tf-sw-tes-2 .testimonial-item .author .metas{color:var(--necs-ink-2)}
.theme-necs #main-content .tf-sw-tes-2 .testimonial-item .author .metas .fw-6{color:var(--necs-brand)}
/* imágenes del thumb-rail enmarcadas */
.theme-necs #main-content .tf-thumb-tes .box-img{border-radius:var(--necs-r);overflow:hidden;border:1px solid var(--necs-line)}

/* ============================================================
   MARCAS (brand-marquee-section) — banda tenue, logos sutiles
   ============================================================ */
.theme-necs #main-content .brand-marquee-section{
  background:var(--necs-surface-2);
  border-top:1px solid var(--necs-line);
  border-bottom:1px solid var(--necs-line);
}
.theme-necs #main-content .brand-marquee-item img{
  filter:grayscale(100%);opacity:.65;
  transition:opacity .25s var(--necs-ease),filter .25s var(--necs-ease),transform .25s var(--necs-ease);
}
.theme-necs #main-content .brand-marquee-item img:hover{filter:grayscale(0%);opacity:1;transform:scale(1.06)}

/* ============================================================
   UBICACIÓN (flat-location.necs-loc) — tarjeta NECS con mapa
   enmarcado + panel de info (dirección/teléfono/email/horario)
   ============================================================ */
.theme-necs #main-content .flat-location.necs-loc{
  display:grid;grid-template-columns:1.15fr .85fr;gap:0;
  align-items:stretch;
  max-width:var(--necs-maxw);margin-inline:auto;
  margin-block:clamp(32px,4vw,64px);
  background:var(--necs-surface);
  border:1px solid var(--necs-line);
  border-radius:var(--necs-r-lg);
  box-shadow:var(--necs-sh-2);
  overflow:hidden;
}
/* mapa = iframe en position:absolute para que NO dicte la altura de la fila
   (height:100% creaba dependencia cíclica y recortaba el panel de info);
   la fila crece con el contenido y el mapa se estira para igualarla. */
.theme-necs #main-content .flat-location.necs-loc .banner-map{position:relative;width:100%;min-height:340px;align-self:stretch}
.theme-necs #main-content .flat-location.necs-loc .banner-map iframe{position:absolute;inset:0;display:block;width:100%;height:100%;border:0}
.theme-necs #main-content .flat-location.necs-loc .content{
  text-align:left;background:var(--necs-surface);
  padding:clamp(24px,3vw,40px);display:flex;flex-direction:column;
}
.theme-necs #main-content .flat-location.necs-loc .necs-loc-eyebrow{
  display:inline-block;font-size:.74rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;
  color:var(--necs-brand);margin-bottom:4px;
}
.theme-necs #main-content .flat-location.necs-loc .content .heading{
  font-family:var(--necs-font-display);font-size:clamp(1.3rem,1rem + 1vw,1.7rem);font-weight:800;
  letter-spacing:-.03em;color:var(--necs-ink);margin:0 0 4px;position:relative;padding-bottom:10px;
}
.theme-necs #main-content .flat-location.necs-loc .content .heading::after{
  content:"";position:absolute;left:0;bottom:0;width:44px;height:4px;border-radius:var(--necs-pill);background:var(--necs-brand);
}
.theme-necs #main-content .flat-location.necs-loc .necs-loc-list{margin:14px 0 0;padding:0;display:flex;flex-direction:column;gap:14px}
.theme-necs #main-content .flat-location.necs-loc .necs-loc-row{display:flex;align-items:flex-start;gap:12px}
.theme-necs #main-content .flat-location.necs-loc .necs-loc-ico{
  flex:0 0 auto;width:38px;height:38px;display:grid;place-items:center;
  border-radius:var(--necs-r-sm);background:var(--necs-brand-50);color:var(--necs-brand);
}
.theme-necs #main-content .flat-location.necs-loc .necs-loc-ico svg{width:19px;height:19px}
.theme-necs #main-content .flat-location.necs-loc .necs-loc-txt{font-size:.95rem;color:var(--necs-ink);line-height:1.45}
.theme-necs #main-content .flat-location.necs-loc .necs-loc-txt b{display:block;font-size:.72rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--necs-ink-2);margin-bottom:2px}
.theme-necs #main-content .flat-location.necs-loc .necs-loc-txt a{color:var(--necs-brand);font-weight:700}
.theme-necs #main-content .flat-location.necs-loc .necs-loc-txt a:hover{color:var(--necs-brand-700)}
.theme-necs #main-content .flat-location.necs-loc .necs-loc-hours-grid{display:flex;flex-direction:column;gap:3px;margin-top:2px}
.theme-necs #main-content .flat-location.necs-loc .necs-loc-hours-grid .hr{display:flex;justify-content:space-between;gap:14px;font-size:.92rem}
.theme-necs #main-content .flat-location.necs-loc .necs-loc-hours-grid .hr .d{color:var(--necs-ink-2)}
.theme-necs #main-content .flat-location.necs-loc .necs-loc-hours-grid .hr .t{color:var(--necs-ink);font-weight:700;font-variant-numeric:tabular-nums}
/* CTAs de marca */
.theme-necs #main-content .flat-location.necs-loc .necs-loc-cta{display:flex;flex-wrap:wrap;gap:10px;margin-top:auto;padding-top:22px}
.theme-necs #main-content .flat-location.necs-loc .necs-loc-btn{
  display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:.95rem;
  padding:12px 20px;border-radius:var(--necs-pill);
  transition:background-color .18s var(--necs-ease),transform .18s var(--necs-ease),color .18s var(--necs-ease);
}
.theme-necs #main-content .flat-location.necs-loc .necs-loc-btn svg{width:18px;height:18px}
.theme-necs #main-content .flat-location.necs-loc .necs-loc-btn.is-primary{background:var(--necs-brand);color:#fff;box-shadow:var(--necs-sh-brand)}
.theme-necs #main-content .flat-location.necs-loc .necs-loc-btn.is-primary:hover{background:var(--necs-brand-700);transform:translateY(-2px)}
.theme-necs #main-content .flat-location.necs-loc .necs-loc-btn.is-wa{background:transparent;color:var(--necs-brand);border:2px solid var(--necs-brand)}
.theme-necs #main-content .flat-location.necs-loc .necs-loc-btn.is-wa:hover{background:var(--necs-brand);color:#fff;transform:translateY(-2px)}
@media (max-width: 860px){
  .theme-necs #main-content .flat-location.necs-loc{grid-template-columns:1fr}
  .theme-necs #main-content .flat-location.necs-loc .banner-map,
  .theme-necs #main-content .flat-location.necs-loc .banner-map iframe{min-height:260px}
}

/* ============================================================
   NEWSLETTER (bg_light-blue-3 + form-newsletter) — alinear a NECS
   ============================================================ */
.theme-necs #main-content .form-newsletter > div{
  border:1.5px solid var(--necs-line) !important;border-radius:var(--necs-pill) !important;
  overflow:hidden;box-shadow:var(--necs-sh-1);background:var(--necs-surface) !important;
}
.theme-necs #main-content .form-newsletter input[type="email"]{color:var(--necs-ink)}
.theme-necs #main-content .form-newsletter input[type="email"]::placeholder{color:var(--necs-ink-2)}
.theme-necs #main-content .form-newsletter .tf-btn.btn-fill{
  background:var(--necs-brand) !important;color:#fff !important;
  border-radius:0 var(--necs-pill) var(--necs-pill) 0 !important;font-weight:700;
  transition:background-color .15s var(--necs-ease);
}
.theme-necs #main-content .form-newsletter .tf-btn.btn-fill:hover{background:var(--necs-brand-700) !important}
/* el ícono de sobre del newsletter ya es azul NECS inline; refuerzo con anillo azul */
.theme-necs #main-content section.bg_light-blue-3 .col-lg-7 > div:first-child > div{
  box-shadow:0 0 0 5px rgba(31,61,240,.20);
}

/* ---------- ANTI-OVERFLOW + REDUCED MOTION de las secciones ---------- */
.theme-necs #main-content section{max-width:100%;overflow-x:clip}
@media (prefers-reduced-motion: reduce){
  .theme-necs #main-content .lookbook-item .tf-pin-btn::after{animation:none}
  .theme-necs #main-content .card-product:hover,
  .theme-necs #main-content .card-product .btn-add-to-cart:hover,
  .theme-necs #main-content .card-product a.tf-btn.btn-fill:hover,
  .theme-necs #main-content .card-product .list-product-btn .box-icon:hover,
  .theme-necs #main-content .brand-marquee-item img:hover,
  .theme-necs #main-content .lookbook-item .tf-pin-btn:hover,
  .theme-necs #main-content .flat-location.necs-loc .necs-loc-btn:hover{transform:none !important}
}

/* ============================================================
   CHROME NECS — re-marca el chrome gaming reutilizado (#header,
   #footer, #mobileMenu) para que combine con el hero NECS:
   ink + azul eléctrico + lima. TODO scopeado bajo .theme-necs;
   el tema gaming en vivo no se toca. No se edita ningún blade
   de gaming/_base. Se reutilizan los tokens --necs-*.
   ============================================================ */

/* ---------- HEADER ---------- */
/* Fondo ink con gradiente sutil + hairline inferior y línea de acento lima */
.theme-necs #header .main-header,
.theme-necs #header .header-bottom,
.theme-necs .header-default {
  background: linear-gradient(180deg, var(--necs-ink) 0%, #070d24 100%) !important;
}
.theme-necs #header .main-header {
  border-bottom: 1px solid rgba(255,255,255,.08);
  box-shadow: 0 2px 0 0 var(--necs-brand), var(--necs-sh-1);
}
.theme-necs #header .header-bottom {
  border-top: 1px solid rgba(255,255,255,.06);
}

/* Links de navegación (item-link / text-white) -> on-dark, hover/active lima con subrayado animado */
.theme-necs #header .box-nav-ul .item-link,
.theme-necs #header .item-link.text-white,
.theme-necs #header .item-link {
  color: var(--necs-on-dark) !important;
  position: relative;
  font-weight: 600;
  letter-spacing: -0.01em;
  transition: color .18s var(--necs-ease);
}
/* Subrayado hover/activo con text-decoration (robusto: SIEMPRE bajo el texto,
   nunca tachado ni abarcando varios items como pasaba con el ::after absoluto,
   que tomaba un ancestro ancho cuando Ecomus pisaba el position:relative). */
.theme-necs #header .menu-item .item-link::after,
.theme-necs #header .menu-item .item-link::before { display: none !important; content: none !important; }
.theme-necs #header .menu-item .item-link {
  text-decoration: none !important;
  text-underline-offset: 7px;
  text-decoration-thickness: 2px;
}
.theme-necs #header .menu-item .item-link:hover,
.theme-necs #header .menu-item .item-link:focus-visible,
.theme-necs #header .menu-item.active .item-link,
.theme-necs #header .menu-item .item-link.active {
  color: #fff !important;
  text-decoration: underline !important;
  text-decoration-color: var(--necs-brand) !important;
  text-decoration-thickness: 2px !important;
  text-underline-offset: 7px !important;
}

/* "Explorar Categorías": azul NECS (mismo que el botón del buscador), no negro */
.theme-necs #header .categories-title {
  background: var(--necs-brand, #1f3df0) !important;
  color: #fff !important;
  border-radius: 12px !important;
}
.theme-necs #header .categories-title:hover { background: var(--necs-brand-700, #162fbd) !important; color: #fff !important; }
/* "New arrivals" botón de línea en el header-bottom */
.theme-necs #header .box-right .tf-btn.btn-line,
.theme-necs #header .box-right .tf-btn.btn-line.text_white {
  color: var(--necs-on-dark) !important;
}
.theme-necs #header .box-right .tf-btn.btn-line:hover { color: #fff !important; }

/* Caja de búsqueda: superficie translúcida oscura, texto claro, foco azul NECS */
.theme-necs #header .tf-form-search .search-box { position: relative; }
.theme-necs #header .tf-form-search .search-box input {
  background: rgba(255,255,255,.06) !important;
  border: 1px solid rgba(255,255,255,.12) !important;
  color: var(--necs-on-dark) !important;
  border-radius: var(--necs-pill);
  transition: border-color .18s var(--necs-ease), box-shadow .18s var(--necs-ease), background-color .18s var(--necs-ease);
}
.theme-necs #header .tf-form-search .search-box input::placeholder {
  color: var(--necs-on-dark-2) !important;
  opacity: 1;
}
.theme-necs #header .tf-form-search .search-box input:focus {
  background: rgba(255,255,255,.10) !important;
  border-color: var(--necs-brand) !important;
  box-shadow: 0 0 0 3px rgba(31,61,240,.35) !important;
  outline: none;
}
/* Botón de búsqueda: relleno azul NECS, icono blanco */
.theme-necs #header .tf-form-search .search-box .tf-btn {
  background: var(--necs-brand) !important;
  color: #fff !important;
  border-radius: var(--necs-pill);
  transition: background-color .18s var(--necs-ease), transform .18s var(--necs-ease);
}
.theme-necs #header .tf-form-search .search-box .tf-btn:hover {
  background: var(--necs-brand-700) !important;
}
.theme-necs #header .tf-form-search .search-box .tf-btn i { color: #fff !important; }

/* Iconos de la barra de navegación (cuenta / wishlist / carrito) en blanco */
.theme-necs #header .nav-icon .nav-icon-item,
.theme-necs #header .nav-icon .nav-icon-item.text-white { color: var(--necs-on-dark) !important; }
.theme-necs #header .nav-icon .nav-icon-item i { color: #fff !important; }
.theme-necs #header .nav-icon .nav-icon-item:hover i { color: #fff !important; }
.theme-necs #header .nav-icon .nav-icon-item span { color: var(--necs-on-dark) !important; }

/* Badge de conteo (carrito / wishlist) -> coral con texto blanco */
.theme-necs #header .nav-icon .count-box {
  background: var(--necs-hot) !important;
  color: #fff !important;
  border: none !important;
}

/* Logo: mantener visible sobre fondo oscuro */
.theme-necs #header .logo-header .logo { filter: none; }

/* ---------- OCULTAR "CONTACTO" del header + mobile-menu (permanece en el footer) ---------- */
/* :has() moderno */
.theme-necs #header li:has(> a[href*="contact"]),
.theme-necs #mobileMenu li:has(> a[href*="contact"]) { display: none !important; }
/* Fallback sin :has() */
.theme-necs #header .item-link[href*="contact"],
.theme-necs #mobileMenu .mb-menu-link[href*="contact"] { display: none !important; }

/* ---------- MOBILE MENU (#mobileMenu / .canvas-mb) ---------- */
.theme-necs #mobileMenu.canvas-mb,
.theme-necs #mobileMenu .mb-canvas-content {
  background: linear-gradient(180deg, var(--necs-ink) 0%, #070d24 100%) !important;
  color: var(--necs-on-dark);
}
.theme-necs #mobileMenu .icon-close-popup { color: var(--necs-on-dark) !important; }
.theme-necs #mobileMenu .nav-mb-item { border-color: rgba(255,255,255,.08) !important; }
.theme-necs #mobileMenu .mb-menu-link {
  color: var(--necs-on-dark) !important;
  font-weight: 600;
  transition: color .18s var(--necs-ease);
}
.theme-necs #mobileMenu .mb-menu-link:hover,
.theme-necs #mobileMenu .nav-mb-item.active > .mb-menu-link { color: #fff !important; }
/* Botones Cuenta/Deseos/Carrito: Ecomus les deja bg #f2f2f2 → con el texto
   on-dark de la re-marca quedaban blanco-sobre-blanco (invisibles) */
.theme-necs #mobileMenu .site-nav-icon {
  color: var(--necs-on-dark) !important;
  background: rgba(255,255,255,.07) !important;
  border: 1px solid rgba(255,255,255,.16) !important;
  border-radius: 10px !important;
}
.theme-necs #mobileMenu .site-nav-icon i { color: var(--necs-accent) !important; }
.theme-necs #mobileMenu .site-nav-icon:hover { color: #fff !important; background: rgba(255,255,255,.13) !important; }
.theme-necs #mobileMenu .mb-notice .text-need { color: var(--necs-on-dark-2) !important; }
.theme-necs #mobileMenu .mb-notice .text-need:hover { color: #fff !important; }
.theme-necs #mobileMenu .tf-social-icon a {
  color: #fff !important;
  background: rgba(255,255,255,.08) !important;
  border-color: rgba(255,255,255,.14) !important;
  transition: background-color .18s var(--necs-ease);
}
.theme-necs #mobileMenu .tf-social-icon a:hover { background: var(--necs-brand) !important; }

/* ---------- FOOTER (#footer / .footer — chrome gaming, NO .site-footer) ---------- */
.theme-necs #footer.footer,
.theme-necs .footer .footer-body {
  background: linear-gradient(180deg, var(--necs-ink) 0%, #070d24 100%) !important;
  color: var(--necs-on-dark-2);
}
/* Línea de acento lima en el borde superior del footer */
.theme-necs #footer.footer { border-top: 0; } /* línea azul retirada: el newsletter ink ya enlaza con el footer */

/* Headings de columnas -> blanco 800 */
.theme-necs #footer .footer-heading h6,
.theme-necs #footer .footer-heading h5,
.theme-necs #footer .footer-heading h4 {
  color: #fff !important;
  font-weight: 800;
  letter-spacing: -0.01em;
}

/* Bloque dirección / teléfono / email: legible y un toque enfatizado */
.theme-necs #footer .footer-infor ul li p {
  color: var(--necs-on-dark-2) !important;
  font-size: .95rem;
  line-height: 1.7;
}
/* Las etiquetas (Dirección:/Email:/Teléfono:) destacan en blanco; los valores/enlaces en azul claro legible */
.theme-necs #footer .footer-infor ul li p {
  color: #fff !important;
  font-weight: 600;
}
.theme-necs #footer .footer-infor ul li p a {
  color: var(--necs-on-dark) !important;
  font-weight: 600;
  text-decoration: none;
  transition: color .15s var(--necs-ease);
}
.theme-necs #footer .footer-infor ul li p a:hover { color: #fff !important; }

/* Links del menú del footer -> on-dark-2, hover lima */
.theme-necs #footer .footer-menu_item {
  color: var(--necs-on-dark-2) !important;
  transition: color .15s var(--necs-ease);
}
.theme-necs #footer .footer-menu-list .footer-menu_item:hover { color: #fff !important; }
.theme-necs #footer .footer-bottom-wrap .footer-menu_item { color: var(--necs-on-dark-2) !important; }

/* Botón "Cómo Llegar" / Get Direction OCULTO en el footer por pedido del usuario
   (la dirección sigue visible; el "Cómo Llegar" vive en la sección de Ubicación). */
.theme-necs #footer .footer-infor .tf-btn.btn-line { display: none !important; }

/* Iconos sociales: superficie translúcida, hover relleno azul NECS */
.theme-necs #footer .tf-social-icon a {
  color: #fff !important;
  background: rgba(255,255,255,.08) !important;
  border-color: rgba(255,255,255,.14) !important;
  transition: background-color .18s var(--necs-ease), transform .18s var(--necs-ease);
}
.theme-necs #footer .tf-social-icon a:hover {
  background: var(--necs-brand) !important;
  transform: translateY(-2px);
}

/* Newsletter: input translúcido oscuro + botón azul NECS */
.theme-necs #footer .footer-newsletter .footer-menu_item { color: var(--necs-on-dark-2) !important; }
.theme-necs #footer .form-newsletter input[type="email"],
.theme-necs #footer .subscribe-content fieldset.email input {
  background: rgba(255,255,255,.06) !important;
  border: 1px solid rgba(255,255,255,.12) !important;
  color: var(--necs-on-dark) !important;
}
.theme-necs #footer .form-newsletter input[type="email"]::placeholder {
  color: var(--necs-on-dark-2) !important;
  opacity: 1;
}
.theme-necs #footer .form-newsletter input[type="email"]:focus {
  border-color: var(--necs-brand) !important;
  box-shadow: 0 0 0 3px rgba(31,61,240,.35) !important;
  outline: none;
}
.theme-necs #footer .subscribe-content .button-submit .tf-btn {
  background: var(--necs-brand) !important;
  color: #fff !important;
  border: none !important;
  transition: background-color .18s var(--necs-ease);
}
.theme-necs #footer .subscribe-content .button-submit .tf-btn:hover { background: var(--necs-brand-700) !important; }
.theme-necs #footer .subscribe-content .button-submit .tf-btn i { color: #fff !important; }

/* Footer bottom: hairline + iconos de pago sobre superficie tenue */
.theme-necs #footer .footer-bottom { border-top: 1px solid rgba(255,255,255,.1) !important; }
.theme-necs #footer .footer-bottom-wrap { border-top: none !important; }
.theme-necs #footer .tf-payment {
  display: flex; gap: 8px; flex-wrap: wrap; align-items: center;
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: var(--necs-r-sm);
  padding: 8px 12px;
}

/* Logo del footer visible sobre ink (el SVG por defecto es oscuro) */
.theme-necs #footer .footer-logo img { filter: brightness(0) invert(1); }

/* Anti-overflow del chrome a 1440 / 768 / 375 */
.theme-necs #header, .theme-necs #footer, .theme-necs #mobileMenu { max-width: 100%; overflow-x: clip; }

/* ============================================================
   POLISH MODERNO — capa de refinamiento premium sobre las secciones
   del home (HyperUI / HeroUI / Aceternity, traducido a CSS plano para
   este storefront Bootstrap/Ecomus). Restraint + craft: profundidad
   refinada, micro-interacciones suaves, motion ease-out con fallback
   reduced-motion. TODO scopeado bajo .theme-necs #main-content. NO toca
   chrome (#header/#footer/#mobileMenu), hero, gaming/_base ni hooks JS.
   Paleta y tokens existentes (--necs-*). Sin glassmorphism por defecto,
   sin gradient-text, sin radios >16px en cards, sin ghost-card decorativo.
   ============================================================ */

/* ---------- 1 · PRODUCT CARDS — revelado elegante de acciones ----------
   Las acciones (wishlist/quickview/quick-add) viven en .list-product-btn
   (.box-icon = hooks). Por defecto quedan sutiles (semi-transparentes,
   ligero offset hacia abajo); en hover/focus de la tarjeta entran con
   fade + slide. Siguen en el DOM y clicables; :focus-within las revela
   para teclado. Solo es una afordancia de hover, NO oculta contenido. */
.theme-necs #main-content .card-product .list-product-btn{
  opacity:0; transform:translateY(8px);
  transition:opacity .28s var(--necs-ease), transform .28s var(--necs-ease);
}
.theme-necs #main-content .card-product:hover .list-product-btn,
.theme-necs #main-content .card-product:focus-within .list-product-btn{
  opacity:1; transform:none;
}
/* cada icono entra con un leve desplazamiento lateral escalonado */
.theme-necs #main-content .card-product .list-product-btn .box-icon{
  transform:translateX(10px);
  transition:background-color .15s var(--necs-ease),color .15s var(--necs-ease),
             transform .3s var(--necs-ease),border-color .15s var(--necs-ease),box-shadow .2s var(--necs-ease);
}
.theme-necs #main-content .card-product:hover .list-product-btn .box-icon,
.theme-necs #main-content .card-product:focus-within .list-product-btn .box-icon{
  transform:none;
}
.theme-necs #main-content .card-product .list-product-btn .box-icon:nth-child(2){transition-delay:.04s}
.theme-necs #main-content .card-product .list-product-btn .box-icon:nth-child(3){transition-delay:.08s}
/* hover del icono: lift + glow azul suave (refina el azul ya existente) */
.theme-necs #main-content .card-product .list-product-btn .box-icon:hover{
  transform:translateY(-2px) !important;
  box-shadow:0 8px 18px -8px rgba(31,61,240,.55) !important;
}
/* badge de oferta/HOT — pastilla coral nítida, type moderno, AA sobre blanco */
.theme-necs #main-content .card-product .on-sale-wrap .on-sale-item{
  display:inline-flex;align-items:center;
  font-size:.7rem;font-weight:800;letter-spacing:.02em;line-height:1;
  padding:6px 11px;border-radius:var(--necs-pill);
  box-shadow:0 6px 14px -6px rgba(255,86,48,.6);
}
/* botón "Agregar al carrito" — micro-lift premium + glow de marca al hover */
.theme-necs #main-content .card-product .btn-add-to-cart:hover,
.theme-necs #main-content .card-product a.tf-btn.btn-fill:hover{
  transform:translateY(-2px) !important;
  box-shadow:0 10px 22px -10px rgba(31,61,240,.6) !important;
}
.theme-necs #main-content .card-product .btn-add-to-cart:active,
.theme-necs #main-content .card-product a.tf-btn.btn-fill:active{
  transform:translateY(0) !important;
}

/* ---------- 2 · BENEFICIOS (tf-icon-box) — medallas con vida ----------
   Mantiene la medalla azul con su escalón brand-700; añade un brillo
   interior sutil + anillo lima en hover y un nudge del icono hacia arriba. */
.theme-necs #main-content .flat-iconbox .tf-icon-box .icon{
  position:relative;
  /* sutil highlight interior superior (no glassmorphism) */
  background:linear-gradient(180deg, rgba(255,255,255,.14), rgba(255,255,255,0) 55%), var(--necs-brand) !important;
  transition:transform .3s var(--necs-ease),box-shadow .3s var(--necs-ease) !important;
}
.theme-necs #main-content .flat-iconbox .tf-icon-box .icon i{
  transition:transform .3s var(--necs-ease) !important;
}
.theme-necs #main-content .flat-iconbox .tf-icon-box:hover .icon{
  transform:translateY(-3px);
  box-shadow:0 7px 0 -1px var(--necs-brand-700), 0 14px 22px -10px rgba(31,61,240,.5) !important;
}
.theme-necs #main-content .flat-iconbox .tf-icon-box:hover .icon i{ transform:translateY(-1px); }
/* anillo lima sutil en hover (ring, no borde fijo) */
.theme-necs #main-content .flat-iconbox .tf-icon-box .icon::after{
  content:"";position:absolute;inset:-3px;border-radius:13px;
  border:1.5px solid rgba(255,255,255,.55);opacity:0;
  transition:opacity .3s var(--necs-ease);pointer-events:none;
}
.theme-necs #main-content .flat-iconbox .tf-icon-box:hover .icon::after{ opacity:.55; }

/* ---------- 3 · CATEGORÍAS (collection-item-circle) — hover premium ----------
   El círculo eleva, aparece un anillo azul fino y la etiqueta vira a marca. */
.theme-necs #main-content .flat-testimonial .collection-item-circle .collection-image{
  position:relative;
  transition:transform .3s var(--necs-ease),box-shadow .3s var(--necs-ease),border-color .25s var(--necs-ease) !important;
}
.theme-necs #main-content .flat-testimonial .collection-item-circle .collection-image img{
  transition:transform .45s var(--necs-ease);
}
.theme-necs #main-content .flat-testimonial .collection-item-circle:hover .collection-image{
  transform:translateY(-5px);
  border-color:var(--necs-brand) !important;
  box-shadow:0 16px 30px -16px rgba(31,61,240,.45) !important;
}
.theme-necs #main-content .flat-testimonial .collection-item-circle:hover .collection-image img{
  transform:scale(1.06);
}
.theme-necs #main-content .flat-testimonial .collection-item-circle .link{
  transition:color .2s var(--necs-ease);
}
.theme-necs #main-content .flat-testimonial .collection-item-circle:hover .link{
  color:var(--necs-brand);
}

/* ---------- 4 · ENCABEZADOS (flat-title .title) — más intencionales ----------
   Conserva el marcador lima; refina peso/tracking del display y suaviza la
   transición del marcador al entrar en vista (sin eyebrow en cada sección). */
.theme-necs #main-content .flat-title .title{
  font-weight:800;letter-spacing:-.04em;
}
.theme-necs #main-content .flat-title .title::after{
  transition:width .4s var(--necs-ease);
}
/* el marcador lima se extiende ligeramente al hover de su sección — guiño táctil */
.theme-necs #main-content section:hover > .container > .flat-title .title::after{
  width:60px;
}

/* ---------- 5 · TESTIMONIOS (tf-sw-tes-2) — quote card refinada ----------
   Superficie blanca con glifo de comilla grande detrás, fila de estrellas
   limpia y bloque de autor con profundidad sutil. */
.theme-necs #main-content .tf-sw-tes-2 .testimonial-item{
  transition:box-shadow .3s var(--necs-ease),transform .3s var(--necs-ease);
}
.theme-necs #main-content .tf-sw-tes-2 .testimonial-item:hover{
  transform:translateY(-3px);
  box-shadow:0 18px 38px -18px rgba(10,19,48,.22);
}
/* glifo de comilla grande, tenue, detrás del texto (decorativo) */
.theme-necs #main-content .tf-sw-tes-2 .testimonial-item::before{
  content:"\201C"; /* comilla tipográfica de apertura */
  position:absolute;top:6px;right:18px;
  font-family:var(--necs-font-display);
  font-size:5.5rem;line-height:1;font-weight:800;
  color:var(--necs-brand);opacity:.08;
  pointer-events:none;user-select:none;
}
/* fila de estrellas: más nítida y con respiro */
.theme-necs #main-content .tf-sw-tes-2 .testimonial-item .rating{
  display:inline-flex;gap:3px;margin-bottom:4px;
}
.theme-necs #main-content .tf-sw-tes-2 .testimonial-item .rating .icon-star{
  color:#f5a623;font-size:.95rem;
}
/* texto de la reseña con un toque más editorial */
.theme-necs #main-content .tf-sw-tes-2 .testimonial-item .text{
  position:relative;z-index:1;text-wrap:pretty;
}

/* ---------- 6 · DEPTH & MOTION (global, restrained) ----------
   Easing premium consistente en links de marca; un guiño en la flecha del
   "ver más" (.go) de las tarjetas Ecomus si aparece en estas secciones. */
.theme-necs #main-content .card-product .title.link{
  transition:color .18s var(--necs-ease);
}

/* ---------- 7 · MARCAS — micro-refinamiento del logo en hover ----------
   (ya hay grayscale→color; añade un lift consistente con el resto). */
.theme-necs #main-content .brand-marquee-item img:hover{
  transform:translateY(-2px) scale(1.06);
}

/* ---------- REDUCED MOTION — fallback de TODO el polish moderno ----------
   Mantiene el contenido visible y funcional; desactiva transform/anim. */
@media (prefers-reduced-motion: reduce){
  .theme-necs #main-content .card-product .list-product-btn,
  .theme-necs #main-content .card-product .list-product-btn .box-icon{
    opacity:1 !important;transform:none !important;transition:none !important;
  }
  .theme-necs #main-content .card-product:hover .card-product-wrapper .product-img img,
  .theme-necs #main-content .flat-testimonial .collection-item-circle:hover .collection-image img{
    transform:none !important;
  }
  .theme-necs #main-content .card-product .list-product-btn .box-icon:hover,
  .theme-necs #main-content .card-product .btn-add-to-cart:hover,
  .theme-necs #main-content .card-product a.tf-btn.btn-fill:hover,
  .theme-necs #main-content .flat-iconbox .tf-icon-box:hover .icon,
  .theme-necs #main-content .flat-iconbox .tf-icon-box:hover .icon i,
  .theme-necs #main-content .flat-testimonial .collection-item-circle:hover .collection-image,
  .theme-necs #main-content .tf-sw-tes-2 .testimonial-item:hover,
  .theme-necs #main-content .brand-marquee-item img:hover{
    transform:none !important;
  }
}

/* ============================================================
   CART DRAWER (modal #shoppingCart, chrome compartido) — re-marca NECS
   ============================================================ */
.theme-necs .modal-shopping-cart .modal-content { border: 0; }
.theme-necs .modal-shopping-cart .header { padding: 18px 24px; border-bottom: 1px solid var(--necs-line); }
.theme-necs .modal-shopping-cart .header .title { font-family: var(--necs-font-display); font-weight: 700; font-size: 1.1rem; color: var(--necs-ink); }
.theme-necs .modal-shopping-cart .header .icon-close { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 50%; color: var(--necs-ink-2); cursor: pointer; transition: background-color .15s, color .15s; }
.theme-necs .modal-shopping-cart .header .icon-close:hover { background: var(--necs-surface-2); color: var(--necs-ink); }

/* Item */
.theme-necs .modal-shopping-cart .tf-mini-cart-item { display: flex; gap: 14px; align-items: flex-start; padding: 16px 0; border-bottom: 1px solid var(--necs-line); }
.theme-necs .modal-shopping-cart .tf-mini-cart-image { flex: 0 0 76px; width: 76px; height: 76px; border: 1px solid var(--necs-line); border-radius: 10px; background: #fff; overflow: hidden; display: grid; place-items: center; }
.theme-necs .modal-shopping-cart .tf-mini-cart-image img { width: 100%; height: 100%; object-fit: contain; padding: 6px; }
.theme-necs .modal-shopping-cart .tf-mini-cart-info { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 6px; }
.theme-necs .modal-shopping-cart .tf-mini-cart-info .title { font-weight: 600; font-size: .88rem; line-height: 1.35; color: var(--necs-ink); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.theme-necs .modal-shopping-cart .tf-mini-cart-info .title:hover { color: var(--necs-brand); }
.theme-necs .modal-shopping-cart .tf-mini-cart-info .meta-variant { font-size: .78rem; color: var(--necs-ink-2); }
.theme-necs .modal-shopping-cart .tf-mini-cart-info .price { font-family: var(--necs-font-display); font-weight: 700; font-size: .98rem; color: var(--necs-ink); font-variant-numeric: tabular-nums; }
.theme-necs .modal-shopping-cart .tf-mini-cart-remove .remove-item { width: 32px; height: 32px; display: grid; place-items: center; border-radius: 50%; color: var(--necs-ink-2); transition: background-color .15s, color .15s; }
.theme-necs .modal-shopping-cart .tf-mini-cart-remove .remove-item:hover { background: #fff1ee; color: var(--necs-hot); }

/* Stepper compacto */
.theme-necs .modal-shopping-cart .wg-quantity { display: inline-flex; align-items: center; border: 1px solid var(--necs-line); border-radius: 8px; overflow: hidden; background: #fff; }
.theme-necs .modal-shopping-cart .wg-quantity .btn-quantity { width: 30px; height: 30px; display: grid; place-items: center; font-size: 1rem; color: var(--necs-ink); cursor: pointer; background: transparent; border: 0; line-height: 1; transition: background-color .15s; }
.theme-necs .modal-shopping-cart .wg-quantity .btn-quantity:hover { background: var(--necs-surface-2); }
.theme-necs .modal-shopping-cart .wg-quantity .quantity-product { width: 36px; height: 30px; text-align: center; border: 0; border-inline: 1px solid var(--necs-line); font-weight: 700; font-size: .85rem; color: var(--necs-ink); background: transparent; }

/* Footer: subtotal + CTAs */
.theme-necs .modal-shopping-cart .footer { border-top: 1px solid var(--necs-line); padding: 18px 24px 22px; }
.theme-necs .modal-shopping-cart .tf-cart-totals-discounts { display: flex; justify-content: space-between; align-items: baseline; }
.theme-necs .modal-shopping-cart .tf-cart-total { font-weight: 600; font-size: .95rem; color: var(--necs-ink-2); }
.theme-necs .modal-shopping-cart .tf-totals-total-value { font-family: var(--necs-font-display); font-weight: 800; font-size: 1.2rem; color: var(--necs-ink); font-variant-numeric: tabular-nums; }
.theme-necs .modal-shopping-cart .tf-mini-cart-bottom-text { font-size: .8rem; color: var(--necs-ink-2); margin: 6px 0 14px; }
.theme-necs .modal-shopping-cart .tf-mini-cart-view-checkout { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.theme-necs .modal-shopping-cart .tf-mini-cart-view-checkout .tf-btn { border-radius: 12px !important; padding: 13px 16px; font-weight: 700; font-size: .92rem; }
.theme-necs .modal-shopping-cart .tf-mini-cart-view-checkout .tf-btn.btn-outline { background: #fff !important; border: 1px solid var(--necs-line) !important; color: var(--necs-ink) !important; }
.theme-necs .modal-shopping-cart .tf-mini-cart-view-checkout .tf-btn.btn-outline:hover { border-color: var(--necs-brand) !important; color: var(--necs-brand) !important; }
.theme-necs .modal-shopping-cart .tf-mini-cart-view-checkout .tf-btn.btn-fill { background: var(--necs-brand) !important; border-color: var(--necs-brand) !important; }
.theme-necs .modal-shopping-cart .tf-mini-cart-view-checkout .tf-btn.btn-fill,
.theme-necs .modal-shopping-cart .tf-mini-cart-view-checkout .tf-btn.btn-fill span { color: #fff !important; }
.theme-necs .modal-shopping-cart .tf-mini-cart-view-checkout .tf-btn.btn-fill:hover { background: var(--necs-brand-700) !important; }

/* Vacío */
.theme-necs .modal-shopping-cart .empty-cart p { color: var(--necs-ink-2); }
.theme-necs .modal-shopping-cart .empty-cart .tf-btn { background: var(--necs-brand) !important; color: #fff !important; border-radius: 12px !important; }

/* ============================================================
   FIX GLOBAL: Ecomus styles.css declara `header{position:sticky;top:0}`
   → cualquier <header> del CONTENIDO (títulos de página) se pegaba y
   montaba sobre el nav con fondo blanco. El chrome (#header) vive fuera
   de #main-content y no se ve afectado.
   ============================================================ */
.theme-necs #main-content header {
  position: static !important;
  background: transparent !important;
  box-shadow: none !important;
}

/* Páginas legales: el reset de Ecomus quita los markers de listas → restaurar */
.theme-necs .legal ul, .theme-necs .legal-prose ul,
.theme-necs .legal ul li, .theme-necs .legal-prose ul li { list-style: disc outside !important; }
.theme-necs .legal ol, .theme-necs .legal-prose ol,
.theme-necs .legal ol li, .theme-necs .legal-prose ol li { list-style: decimal outside !important; }
