* { font-family: 'Poppins', sans-serif; box-sizing: border-box; }
h1,h2,h3,h4,.font-heading { font-family: 'Fredoka', sans-serif; }
html { scroll-behavior: smooth; }

/* Navbar scroll effect */
#navbar { transition: background 0.3s, box-shadow 0.3s; }
#navbar.scrolled { background: #0ea5e9 !important; box-shadow: 0 4px 20px rgba(14,165,233,0.3); }

/* Animations */
@keyframes float { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-12px)} }
@keyframes fadeInUp { from{opacity:0;transform:translateY(30px)} to{opacity:1;transform:translateY(0)} }
@keyframes pulse-ring { 0%{transform:scale(1);opacity:1} 100%{transform:scale(1.4);opacity:0} }
@keyframes wiggle { 0%,100%{transform:rotate(-3deg)} 50%{transform:rotate(3deg)} }
@keyframes bounce-slow { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-8px)} }
@keyframes spin-slow { from{transform:rotate(0deg)} to{transform:rotate(360deg)} }
@keyframes shimmer { 0%{background-position:-200% center} 100%{background-position:200% center} }

.float { animation: float 3s ease-in-out infinite; }
.float-delay { animation: float 3s ease-in-out 1s infinite; }
.bounce-slow { animation: bounce-slow 2s ease-in-out infinite; }
.wiggle:hover { animation: wiggle 0.5s ease-in-out; }
.fade-in-up { animation: fadeInUp 0.7s ease forwards; }

/* Hero gradient */
.hero-gradient {
    background: linear-gradient(135deg, #e0f7ff 0%, #f0fdf4 40%, #fef3c7 100%);
}

/* Rainbow border */
.rainbow-border {
    border: 3px solid transparent;
    background-clip: padding-box;
    position: relative;
}
.rainbow-border::before {
    content: '';
    position: absolute;
    inset: -3px;
    border-radius: inherit;
    background: linear-gradient(135deg, #0ea5e9, #facc15, #22c55e, #ec4899, #a855f7, #fb923c);
    z-index: -1;
}

/* Gallery */
.gallery-grid {
    columns: 4;
    column-gap: 1rem;
}
@media(max-width:1024px){ .gallery-grid{columns:3;} }
@media(max-width:768px){ .gallery-grid{columns:2;} }
@media(max-width:480px){ .gallery-grid{columns:1;} }
.gallery-item { break-inside: avoid; margin-bottom: 1rem; position: relative; overflow: hidden; border-radius: 1.2rem; cursor: pointer; }
.gallery-item img { width: 100%; display: block; transition: transform 0.4s ease; border-radius: 1.2rem; }
.gallery-item:hover img { transform: scale(1.06); }
.gallery-overlay {
    position: absolute; inset: 0; background: rgba(14,165,233,0.75);
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    opacity: 0; transition: opacity 0.3s; border-radius: 1.2rem;
}
.gallery-item:hover .gallery-overlay { opacity: 1; }
.gallery-caption {
    position: absolute; bottom: 0; left: 0; right: 0;
    background: linear-gradient(to top, rgba(0,0,0,0.6), transparent);
    color: white; padding: 1.2rem 1rem 0.7rem; font-size: 0.82rem;
    border-radius: 0 0 1.2rem 1.2rem;
}

/* Modal */
#lightbox { display:none; position:fixed; inset:0; background:rgba(0,0,0,0.92); z-index:9999; align-items:center; justify-content:center; }
#lightbox.active { display:flex; }
#lightbox img { max-width:90vw; max-height:85vh; border-radius:1rem; box-shadow:0 20px 60px rgba(0,0,0,0.5); }

/* Testimonial carousel */
.testimonial-track { display: flex; transition: transform 0.5s ease; }
.testimonial-slide { min-width: 100%; }

/* Tab filter */
.filter-btn { transition: all 0.25s; }
.filter-btn.active { background:#0ea5e9; color:white; box-shadow:0 4px 12px rgba(14,165,233,0.4); }
.gallery-item { transition: opacity 0.3s; }
.gallery-item.hidden { display: none; }

/* Pricing card hover */
.price-card { transition: transform 0.3s, box-shadow 0.3s; }
.price-card:hover { transform: translateY(-8px); box-shadow: 0 20px 40px rgba(0,0,0,0.12); }

/* Team card */
.team-card { transition: transform 0.3s; }
.team-card:hover { transform: translateY(-6px); }

/* Program card */
.prog-card { transition: transform 0.3s, box-shadow 0.3s; }
.prog-card:hover { transform: translateY(-6px) scale(1.02); box-shadow: 0 16px 40px rgba(0,0,0,0.12); }

/* WhatsApp bubble */
.wa-ring::after {
    content:''; position:absolute; inset:-4px;
    border-radius:50%; border: 3px solid #22c55e;
    animation: pulse-ring 2s ease-out infinite;
}

/* Timeline */
.timeline-item::before {
    content:''; position:absolute; left:-1px; top:0; bottom:0;
    width:3px; background:linear-gradient(to bottom,#0ea5e9,#a855f7);
}

/* Scrollbar */
::-webkit-scrollbar { width:8px; }
::-webkit-scrollbar-track { background:#f8fafc; }
::-webkit-scrollbar-thumb { background:#0ea5e9; border-radius:4px; }

/* Section wave */
.wave-top { position:absolute; top:0; left:0; right:0; overflow:hidden; line-height:0; }
.wave-bottom { position:absolute; bottom:0; left:0; right:0; overflow:hidden; line-height:0; transform:rotate(180deg); }

/* Mobile menu */
#mobile-menu { max-height:0; overflow:hidden; transition:max-height 0.4s ease; }
#mobile-menu.open { max-height:500px; }

/* Star rating */
.stars { color:#facc15; letter-spacing:2px; }

.svg-wave { width:100%; height:60px; display:block; }
.shimmer-btn {
    background-size:200% auto;
    background-image:linear-gradient(to right,#facc15 0%,#fb923c 50%,#facc15 100%);
    animation: shimmer 2.5s linear infinite;
}

/* Lightbox close button */
.wave-bottom-container { line-height:0; }

/* Hero gradient background */
.hero-bg { background: linear-gradient(135deg, #0ea5e9 0%, #38bdf8 30%, #7dd3fc 60%, #bae6fd 100%); }

/* Hero decorative blobs */
.blob-sunny { background:radial-gradient(circle,#facc15,transparent);filter:blur(60px); }
.blob-purple { background:radial-gradient(circle,#a855f7,transparent);filter:blur(60px); }
.blob-grass { background:radial-gradient(circle,#22c55e,transparent);filter:blur(50px); }

/* Text shadow for sunny */
.text-sunny-shadow { text-shadow:0 2px 20px rgba(250,204,21,0.5); }

/* Gradient text */
.gradient-text { background:linear-gradient(135deg,#facc15,#fb923c); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }

/* Image rotation */
.rotate-2 { transform:rotate(2deg); }
.rotate-minus-3 { transform:rotate(-3deg); }
.rotate-minus-2 { transform:rotate(-2deg); }
.rotate-minus-1 { transform:rotate(-1deg); }

/* Pricing card shadow */
.price-card-highlight { box-shadow:0 20px 50px rgba(14,165,233,0.35); }

/* Floating WhatsApp ring shadow */
.wa-ring-shadow { box-shadow:0 8px 30px rgba(34,197,94,0.5); }

/* SVG wave styling */
.svg-wave { width:100%; height:60px; display:block; }

/* Wave container */
.wave-bottom-container { line-height:0; }

/* Iframe border */
.iframe-no-border { border:0; }

/* Sections background gradients */
.hero-gradient-section { background: linear-gradient(135deg, #0ea5e9 0%, #38bdf8 50%, #0284c7 100%); }
.programs-gradient { background:linear-gradient(160deg,#f0f9ff 0%,#f8fafc 50%,#fef9ee 100%); }
.team-gradient { background:linear-gradient(160deg,#fef9ee 0%,#f8fafc 100%); }
.admissions-gradient { background:linear-gradient(160deg,#f8fafc 0%,#f0fdf4 100%); }

/* Dot pattern background */
.dot-pattern { background-image:radial-gradient(circle,white 1px,transparent 1px); }
.dot-pattern-large { background-size:30px 30px; }
.dot-pattern-small { background-size:25px 25px; }

/* Icon gradient backgrounds */
.icon-bg-pink { background:linear-gradient(135deg,#fce7f3,#fbcfe8); }
.icon-bg-orange { background:linear-gradient(135deg,#fff7ed,#fed7aa); }
.icon-bg-sky { background:linear-gradient(135deg,#e0f2fe,#bae6fd); }
.icon-bg-grass { background:linear-gradient(135deg,#dcfce7,#bbf7d0); }

/* Form submit button */
.submit-btn-shadow { box-shadow:0 8px 25px rgba(14,165,233,0.4); }

/* WhatsApp link shadow */
.wa-link-shadow { box-shadow:0 8px 25px rgba(34,197,94,0.35); }
