/* Barra superior de campaña (Black Friday y Navidad). Se apaga sola el 2027-01-01: ver assets/hero-v4/camp.js */
.tw-topcamp{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:6px 16px;min-height:35px;padding:7px 16px;box-sizing:border-box;background:linear-gradient(91deg,#0d3cfe 0%,#8d8dff 50%,#0d3cfe 100%);color:#fff;font-size:14px;font-weight:500;text-align:center;text-decoration:none}
.tw-topcamp .slots{display:inline-flex;align-items:center;gap:8px;background:rgba(0,0,37,.55);border:1px solid rgba(255,255,255,.22);border-radius:99px;padding:4px 14px 4px 10px;font-weight:700;font-size:13px}
.tw-topcamp .slots i{width:8px;height:8px;border-radius:50%;background:#00e47e;box-shadow:0 0 0 0 rgba(0,228,126,.7);animation:twtop 1.8s infinite}
@keyframes twtop{70%{box-shadow:0 0 0 8px rgba(0,228,126,0)}100%{box-shadow:0 0 0 0 rgba(0,228,126,0)}}
.tw-topcamp .cta{font-weight:700;text-decoration:underline;text-underline-offset:3px}
@media (prefers-reduced-motion:reduce){.tw-topcamp .slots i{animation:none}}
@media (max-width:520px){.tw-topcamp{font-size:12.5px;gap:4px 10px}.tw-topcamp .cta{display:none}}
/* En las páginas de servicio, la cinta animada se oculta mientras esté la barra; vuelve sola cuando camp.js retira la barra. */
.tw-app-root>div:has(+.tw-topcamp){display:none!important}
/* Palabra animada del letrero: chip oscuro para que el amarillo se lea sobre el degradado */
.tw-topcamp .w{font-style:normal;font-weight:700;color:#fcbc0e;background:rgba(0,0,37,.55);border-radius:6px;padding:1px 8px;display:inline-block;min-width:6.7em;text-align:center;box-sizing:content-box;transition:opacity .25s ease}
.tw-topcamp .w.out{opacity:0}
.tw-topcamp .w.fija{min-width:0}
