/* SmartIPTV Canada — custom polish on top of Tailwind */
html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; }

#lead-modal.show, #sub-modal.show { display: flex; }

.blog-content h2 { font-size: 1.5rem; font-weight: 700; margin-top: 1.5rem; }
.blog-content h3 { font-size: 1.25rem; font-weight: 600; margin-top: 1.25rem; }
.blog-content p  { margin: 0.75rem 0; color: #cbd5e1; }
.blog-content ul { list-style: disc; padding-left: 1.25rem; color: #cbd5e1; }
.blog-content a  { color: #22d3ee; text-decoration: underline; }

.legal-content h2 { font-size: 1.35rem; font-weight: 700; margin-top: 1.5rem; color: #fff; }
.legal-content p  { margin: 0.6rem 0; }
.legal-content ul { list-style: disc; padding-left: 1.3rem; margin: 0.5rem 0; }
.legal-content li { margin: 0.3rem 0; }
.legal-content a  { color: #22d3ee; text-decoration: underline; }
.legal-content a.cta { display:inline-block; background:#22d3ee; color:#0b1020; font-weight:700; padding:.6rem 1.2rem; border-radius:9999px; text-decoration:none; }

@keyframes flashRow { from { background: rgba(34,211,238,0.18); } to { background: transparent; } }
.row-flash { animation: flashRow 1.6s ease-out; }

/* ---------- Homepage 2027 animations ---------- */
/* scroll reveal */
.reveal { opacity: 0; transform: translateY(28px); transition: opacity .7s cubic-bezier(.2,.7,.2,1), transform .7s cubic-bezier(.2,.7,.2,1); will-change: opacity, transform; }
.reveal.in { opacity: 1; transform: none; }
.reveal.d1 { transition-delay: .08s; } .reveal.d2 { transition-delay: .16s; }
.reveal.d3 { transition-delay: .24s; } .reveal.d4 { transition-delay: .32s; }

/* animated aurora gradient background */
@keyframes auroraShift { 0%{background-position:0% 50%} 50%{background-position:100% 50%} 100%{background-position:0% 50%} }
.aurora { background: linear-gradient(120deg,#0891b2,#7c3aed,#22d3ee,#0b1020); background-size: 300% 300%; animation: auroraShift 14s ease infinite; }

.gradient-text { background: linear-gradient(90deg,#22d3ee,#a78bfa 60%,#fbbf24); -webkit-background-clip: text; background-clip: text; color: transparent; }

@keyframes floatY { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-14px)} }
.float { animation: floatY 6s ease-in-out infinite; }
.float.slow { animation-duration: 9s; }

@keyframes pulseGlow { 0%,100%{filter:drop-shadow(0 0 0 rgba(34,211,238,.0))} 50%{filter:drop-shadow(0 0 18px rgba(34,211,238,.55))} }
.glow { animation: pulseGlow 4s ease-in-out infinite; }

/* marquee for channel/brand strip */
@keyframes marquee { from{transform:translateX(0)} to{transform:translateX(-50%)} }
.marquee-track { display:flex; flex-wrap:nowrap; width:max-content; animation: marquee 28s linear infinite; }
.marquee-track > span { flex:0 0 auto; white-space:nowrap; }
.marquee-wrap:hover .marquee-track { animation-play-state: paused; }

/* card hover lift */
.lift { transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.lift:hover { transform: translateY(-6px); box-shadow: 0 18px 40px -18px rgba(34,211,238,.35); }

/* animated count-up numbers reserve space */
.counter { font-variant-numeric: tabular-nums; }

@media (prefers-reduced-motion: reduce) {
  .reveal,.float,.aurora,.marquee-track,.glow { animation: none !important; transition: none !important; opacity:1 !important; transform:none !important; }
}

::-webkit-scrollbar { height: 8px; width: 8px; }
::-webkit-scrollbar-thumb { background: #334155; border-radius: 4px; }
