/* TicketsFest Tour Banners — stable first-paint slider, no Swiper CDN (v1.0.6) */
:where(.tftb-banners,.tftb-track,.tftb-slide,.tftb-slide-inner){box-sizing:border-box;}
.tftb-banners{position:relative;width:100%;max-width:100%;overflow:hidden;line-height:1;contain:none;}
.tftb-track{display:block;width:100%;overflow:hidden;scrollbar-width:none;touch-action:pan-x pan-y;}
.tftb-track::-webkit-scrollbar{display:none;}
.tftb-slide{position:relative;display:none;width:100%;}
.tftb-slide.is-active,.tftb-slide:first-child{display:block;}

.tftb-slide-inner{display:flex;align-items:center;justify-content:center;width:100%;aspect-ratio:var(--tftb-ratio-w,1600)/var(--tftb-ratio-h,791);overflow:hidden;border-radius:32px;background:#0f172a;text-decoration:none;box-shadow:0 22px 70px rgba(15,23,42,.22);}
.tftb-slide-img{display:block;width:100%;height:100%;max-width:none;object-position:center center;}
.tftb-banners--fit-cover .tftb-slide-img{object-fit:cover;}
.tftb-banners--fit-contain .tftb-slide-img{object-fit:contain;background:#0f172a;}
.tftb-nav{position:absolute;top:50%;z-index:6;transform:translateY(-50%);width:44px;height:44px;border:0;border-radius:999px;background:rgba(255,255,255,.94);color:#0f172a;font-size:30px;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 12px 34px rgba(15,23,42,.22);transition:transform .18s ease,opacity .18s ease;}
.tftb-nav:hover{transform:translateY(-50%) scale(1.04);}
.tftb-prev{left:14px}.tftb-next{right:14px}
.tftb-dots{position:absolute;z-index:5;left:50%;bottom:12px;transform:translateX(-50%);display:flex;align-items:center;justify-content:center;gap:7px;padding:6px 8px;border-radius:999px;background:rgba(15,23,42,.34);backdrop-filter:blur(8px);}
.tftb-dot{width:7px;height:7px;border-radius:999px;border:0;background:rgba(255,255,255,.5);padding:0;cursor:pointer;transition:width .18s ease,background .18s ease;}
.tftb-dot.is-active{width:22px;background:#fff;}
.tftb-banners.is-single .tftb-dots,.tftb-banners.is-single .tftb-nav{display:none!important;}
@media (max-width:768px){.tftb-slide-inner{border-radius:18px}.tftb-nav{width:38px;height:38px;font-size:25px}.tftb-prev{left:8px}.tftb-next{right:8px}.tftb-dots{bottom:8px}.tftb-dot{width:6px;height:6px}.tftb-dot.is-active{width:18px}}
@media (prefers-reduced-motion:reduce){.tftb-track{scroll-behavior:auto}.tftb-banners *{transition:none!important;animation:none!important}}


/* v1.0.6 — Lighthouse LCP safety: first slide is real, visible HTML before JS */
.tftb-banners:not(.is-ready) .tftb-slide:first-child,
.tftb-banners .tftb-slide:first-child.is-active{
  display:block!important;
  opacity:1!important;
  visibility:visible!important;
  transform:none!important;
}
.tftb-banners:not(.is-ready) .tftb-slide:first-child .tftb-slide-inner,
.tftb-banners:not(.is-ready) .tftb-slide:first-child img{
  opacity:1!important;
  visibility:visible!important;
  transform:none!important;
}
