/* ===== TutionShala — shared styles (Indigo + Amber) ===== */
:root { --brand: #4f46e5; --brand-dark: #4338ca; --accent: #f59e0b; }

html { scroll-behavior: smooth; }
body { font-family: 'Inter', system-ui, sans-serif; }
h1, h2, h3, .font-display { font-family: 'Poppins', 'Inter', sans-serif; }

.modal-open { overflow: hidden; }

/* line clamps */
.line-clamp-2 { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.line-clamp-3 { display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }

/* Scroll reveal (toggled by IntersectionObserver adding .is-visible) */
.reveal { opacity:0; transform: translateY(24px); transition: opacity .6s ease, transform .6s ease; }
.reveal.is-visible { opacity:1; transform:none; }
.reveal.delay-1 { transition-delay:.08s; }
.reveal.delay-2 { transition-delay:.16s; }
.reveal.delay-3 { transition-delay:.24s; }
@media (prefers-reduced-motion: reduce) {
  .reveal { opacity:1 !important; transform:none !important; transition:none; }
  html { scroll-behavior:auto; }
}

/* Hero fade-in */
@keyframes fadeUp { from{opacity:0; transform:translateY(18px);} to{opacity:1; transform:none;} }
.animate-fade-up { animation: fadeUp .7s ease both; }
.animate-fade-up.d1 { animation-delay:.1s; }
.animate-fade-up.d2 { animation-delay:.2s; }
.animate-fade-up.d3 { animation-delay:.3s; }

/* Card hover lift */
.card-lift { transition: transform .25s ease, box-shadow .25s ease; }
.card-lift:hover { transform: translateY(-4px); box-shadow: 0 12px 30px -12px rgba(79,70,229,.35); }

/* Floating WhatsApp button */
.fab-wa { box-shadow: 0 8px 24px -6px rgba(22,163,74,.6); }
.fab-wa:hover { transform: scale(1.06); }
@keyframes pulseRing { 0%{box-shadow:0 0 0 0 rgba(22,163,74,.5);} 70%{box-shadow:0 0 0 14px rgba(22,163,74,0);} 100%{box-shadow:0 0 0 0 rgba(22,163,74,0);} }
.fab-wa { animation: pulseRing 2.4s infinite; }

/* Availability slot chips */
.slot-booked { text-decoration: line-through; opacity:.5; }

/* Hero rotating card */
.hero-swap { transition: opacity .4s ease, transform .4s ease; }
.hero-swap.out { opacity:0; transform: translateY(14px) scale(.97); }
.hero-dot { width:8px; height:8px; border-radius:9999px; background:#c7d2fe; transition:all .3s ease; cursor:pointer; }
.hero-dot.active { width:22px; background:#4f46e5; }

/* Accordion */
.acc-body { max-height:0; overflow:hidden; transition:max-height .3s ease; }
.acc-item.open .acc-body { max-height:300px; }
.acc-item.open .acc-icon { transform: rotate(45deg); }
.acc-icon { transition: transform .2s ease; }

/* Subtle gradient hero backdrop */
.hero-bg { background:
  radial-gradient(1200px 400px at 10% -10%, rgba(99,102,241,.15), transparent),
  radial-gradient(900px 400px at 100% 0%, rgba(245,158,11,.14), transparent); }

/* Nav link underline */
.nav-link { position:relative; }
.nav-link::after { content:''; position:absolute; left:0; bottom:-4px; height:2px; width:0; background:var(--brand); transition:width .2s ease; }
.nav-link:hover::after, .nav-link.active::after { width:100%; }
