/**
 * Neon · consentimiento — estilos autocontenidos y A PRUEBA DE TEMAS.
 *
 * Todo va scopeado bajo los IDs (#neon-consent / #neon-consent-modal) y con `!important` en lo que los
 * temas suelen pisar (color de enlaces, texto, fondo, bordes, decoración). Aprendido en imprimakers: el
 * tema forzaba el enlace "Más información" a #444 sin subrayado → invisible sobre el fondo oscuro.
 *
 * Diseño: tarjeta flotante inferior-izquierda (no barra a todo ancho). Se ve igual en temas claros
 * (imprimakers) y oscuros (wuup3d/topoblocks) porque trae su propio fondo. El acento (--nc-accent) por marca.
 */
:root { --nc-accent: #e8a838; }

#neon-consent[hidden], #neon-consent-modal[hidden] { display: none !important; }

/* Reset defensivo: que el tema no cuele box-sizing/márgenes raros dentro del banner */
#neon-consent, #neon-consent *, #neon-consent-modal, #neon-consent-modal * {
  box-sizing: border-box !important;
  margin: 0; padding: 0;
  float: none !important; text-shadow: none !important; letter-spacing: normal !important;
}

/* ── Tarjeta inferior ─────────────────────────────────────────────── */
#neon-consent {
  position: fixed !important; left: 20px !important; right: auto !important; bottom: 20px !important; top: auto !important;
  width: min(432px, calc(100vw - 40px)) !important; max-width: none !important;
  z-index: 2147483000 !important;
  background: #16161f !important; color: #f3f3f7 !important;
  border: 1px solid rgba(255,255,255,.10) !important; border-radius: 16px !important;
  box-shadow: 0 18px 50px rgba(0,0,0,.45) !important;
  padding: 20px 22px !important;
  font-size: 14px !important; line-height: 1.55 !important;
}
#neon-consent .nc-in { display: block !important; }
#neon-consent .nc-txt {
  margin: 0 0 16px 0 !important; color: #d7d7e0 !important;
  font-size: 14px !important; line-height: 1.55 !important;
}
#neon-consent .nc-txt strong { color: #ffffff !important; font-weight: 600 !important; }
#neon-consent .nc-txt a {
  color: var(--nc-link, var(--nc-accent)) !important; text-decoration: underline !important; text-underline-offset: 2px !important;
  font-weight: 500 !important; background: none !important; box-shadow: none !important; border: 0 !important;
}
#neon-consent .nc-txt a:hover { opacity: .85 !important; }

#neon-consent .nc-acts { display: flex !important; gap: 8px !important; flex-wrap: wrap !important; align-items: center !important; }

/* ── Botones (banner y modal) ─────────────────────────────────────── */
#neon-consent .nc-btn, #neon-consent-modal .nc-btn {
  appearance: none !important; -webkit-appearance: none !important; cursor: pointer !important;
  font-family: inherit !important; font-size: 13.5px !important; font-weight: 600 !important; line-height: 1.1 !important;
  text-transform: none !important; text-decoration: none !important;
  padding: 10px 15px !important; border-radius: 10px !important; white-space: nowrap !important;
  background: transparent !important; color: #f3f3f7 !important; border: 1px solid rgba(255,255,255,.26) !important;
  box-shadow: none !important; width: auto !important; min-width: 0 !important; height: auto !important;
  transition: background .15s, border-color .15s, filter .15s, transform .05s !important;
}
#neon-consent .nc-btn:hover, #neon-consent-modal .nc-btn:hover { background: rgba(255,255,255,.09) !important; border-color: rgba(255,255,255,.4) !important; }
#neon-consent .nc-btn:active, #neon-consent-modal .nc-btn:active { transform: translateY(1px) !important; }
#neon-consent .nc-btn--fill, #neon-consent-modal .nc-btn--fill {
  background: var(--nc-accent) !important; border-color: var(--nc-accent) !important; color: var(--nc-accent-ink, #17170f) !important; margin-left: auto !important;
}
#neon-consent .nc-btn--fill:hover, #neon-consent-modal .nc-btn--fill:hover { filter: brightness(1.07) !important; background: var(--nc-accent) !important; }

/* ── Modal de preferencias ────────────────────────────────────────── */
#neon-consent-modal { position: fixed !important; inset: 0 !important; z-index: 2147483001 !important; display: flex !important; align-items: center !important; justify-content: center !important; padding: 20px !important; }
#neon-consent-modal .nc-overlay { position: absolute !important; inset: 0 !important; background: rgba(0,0,0,.6) !important; }
#neon-consent-modal .nc-box {
  position: relative !important; width: 100% !important; max-width: 520px !important; max-height: 88vh !important; overflow: auto !important;
  background: #16161f !important; color: #f3f3f7 !important; border-radius: 18px !important;
  border: 1px solid rgba(255,255,255,.10) !important; box-shadow: 0 24px 70px rgba(0,0,0,.55) !important;
}
#neon-consent-modal .nc-head { display: flex !important; align-items: center !important; justify-content: space-between !important; padding: 20px 22px 12px !important; }
#neon-consent-modal .nc-head h2 { margin: 0 !important; font-size: 18px !important; font-weight: 700 !important; color: #ffffff !important; }
#neon-consent-modal .nc-x { appearance: none !important; background: none !important; border: 0 !important; color: #9a9aa8 !important; font-size: 26px !important; line-height: 1 !important; cursor: pointer !important; padding: 0 4px !important; }
#neon-consent-modal .nc-x:hover { color: #fff !important; }
#neon-consent-modal .nc-body { padding: 4px 22px 6px !important; }
#neon-consent-modal .nc-row { display: flex !important; align-items: center !important; gap: 16px !important; padding: 15px 0 !important; border-top: 1px solid rgba(255,255,255,.09) !important; }
#neon-consent-modal .nc-row:first-child { border-top: 0 !important; }
#neon-consent-modal .nc-row > div { flex: 1 !important; display: flex !important; flex-direction: column !important; gap: 3px !important; }
#neon-consent-modal .nc-row strong { font-size: 14px !important; font-weight: 600 !important; color: #ffffff !important; }
#neon-consent-modal .nc-row span { font-size: 13px !important; line-height: 1.5 !important; color: #a7a7b4 !important; }
#neon-consent-modal .nc-foot { display: flex !important; gap: 10px !important; justify-content: flex-end !important; padding: 14px 22px 22px !important; }

/* Interruptor */
#neon-consent-modal .nc-sw { position: relative !important; display: inline-block !important; width: 44px !important; height: 26px !important; flex: 0 0 auto !important; }
#neon-consent-modal .nc-sw input { position: absolute !important; opacity: 0 !important; width: 0 !important; height: 0 !important; }
#neon-consent-modal .nc-sw span { position: absolute !important; inset: 0 !important; background: rgba(255,255,255,.22) !important; border-radius: 999px !important; transition: background .15s !important; }
#neon-consent-modal .nc-sw span::before { content: "" !important; position: absolute !important; height: 20px !important; width: 20px !important; left: 3px !important; top: 3px !important; background: #fff !important; border-radius: 50% !important; transition: transform .15s !important; }
#neon-consent-modal .nc-sw input:checked + span { background: var(--nc-accent) !important; }
#neon-consent-modal .nc-sw input:checked + span::before { transform: translateX(18px) !important; }
#neon-consent-modal .nc-sw--fixed span { opacity: .55 !important; }

/* Foco visible (teclado): contorno en el color de enlace de la marca, que ya llega a 4.5:1 sobre la tarjeta
   oscura (--nc-link lo calcula el PHP). La casilla del interruptor está oculta: el foco se pinta en su pista. */
#neon-consent :focus-visible, #neon-consent-modal :focus-visible {
  outline: 2px solid var(--nc-link, var(--nc-accent)) !important; outline-offset: 2px !important;
}
#neon-consent-modal .nc-sw input:focus-visible + span {
  outline: 2px solid var(--nc-link, var(--nc-accent)) !important; outline-offset: 2px !important;
}

@media (max-width: 560px) {
  #neon-consent { left: 12px !important; right: 12px !important; bottom: 12px !important; width: auto !important; padding: 18px !important; }
  #neon-consent .nc-acts { gap: 8px !important; }
  #neon-consent .nc-btn { flex: 1 1 auto !important; text-align: center !important; }
  #neon-consent .nc-btn--fill { margin-left: 0 !important; }
}
