* { margin:0; padding:0; box-sizing:border-box; }
body { font-family: 'Figtree', sans-serif; scroll-behavior: smooth; }
.section-padding { padding: 80px 0; }
.section-title { font-weight: 800; font-size: 2rem; margin-bottom: 0.5rem; }
.section-subtitle { color: #6c757d; font-size: 1.1rem; margin-bottom: 3rem; }
.gradient-primary { background: linear-gradient(135deg, #0d6efd 0%, #0dcaf0 100%); }
.gradient-success { background: linear-gradient(135deg, #198754 0%, #20c997 100%); }
.gradient-warning { background: linear-gradient(135deg, #ffc107 0%, #fd7e14 100%); }
.gradient-dark { background: linear-gradient(135deg, #212529 0%, #495057 100%); }
.text-gradient { background: linear-gradient(135deg, #0d6efd, #0dcaf0); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; }
.hover-lift { transition: transform 0.3s ease, box-shadow 0.3s ease; }
.hover-lift:hover { transform: translateY(-5px); box-shadow: 0 10px 30px rgba(0,0,0,0.1) !important; }
.nav-link-custom { color: #333 !important; font-weight: 500; padding: 0.5rem 1rem !important; transition: color 0.2s; }
.nav-link-custom:hover { color: #0d6efd !important; }
.announcement-bar { background: #212529; color: #fff; padding: 8px 0; font-size: 0.9rem; overflow: hidden; white-space: nowrap; }
.announcement-bar .ticker { display: inline-block; animation: ticker var(--ticker-speed, 30s) linear infinite; }
@keyframes ticker { 0% { transform: translateX(100%); } 100% { transform: translateX(-100%); } }
.hero-section { min-height: 85vh; display: flex; align-items: center; position: relative; overflow: hidden; }
.hero-section::before { content: ''; position: absolute; top: -50%; left: -50%; width: 200%; height: 200%; background: radial-gradient(circle at 30% 50%, rgba(13,110,253,0.08) 0%, transparent 50%), radial-gradient(circle at 70% 50%, rgba(13,202,240,0.08) 0%, transparent 50%); animation: heroBg 20s ease-in-out infinite alternate; }
@keyframes heroBg { 0% { transform: translate(0,0) rotate(0deg); } 100% { transform: translate(-5%,-5%) rotate(3deg); } }
.service-card { border: none; border-radius: 16px; padding: 2rem; text-align: center; height: 100%; transition: all 0.3s ease; background: #fff; }
.service-card:hover { transform: translateY(-8px); box-shadow: 0 20px 40px rgba(0,0,0,0.08); }
.service-icon { font-size: 2.5rem; margin-bottom: 1rem; }
.feature-card { border: none; border-radius: 16px; padding: 1.8rem; height: 100%; background: #fff; transition: all 0.3s ease; }
.feature-card:hover { box-shadow: 0 15px 35px rgba(0,0,0,0.08); }
.step-card { text-align: center; position: relative; }
.step-number { width: 50px; height: 50px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-weight: 800; font-size: 1.3rem; margin: 0 auto 1rem; color: #fff; }
.step-line { position: absolute; top: 25px; right: -50%; width: 100%; height: 2px; background: #e9ecef; }
.step-card:last-child .step-line { display: none; }
.curriculum-tree { padding: 2rem; border-radius: 16px; background: #f8f9fa; }
.tree-node { padding: 0.75rem 1.25rem; margin: 0.25rem 0; border-radius: 8px; background: #fff; border-left: 4px solid #0d6efd; box-shadow: 0 2px 4px rgba(0,0,0,0.04); }
.tree-node-domain { border-left-color: #6f42c1; font-weight: 700; }
.tree-node-subject { border-left-color: #0d6efd; }
.tree-node-chapter { border-left-color: #198754; }
.tree-node-topic { border-left-color: #ffc107; }
.tree-node-concept { border-left-color: #dc3545; }
.pricing-card { border: none; border-radius: 16px; text-align: center; padding: 2rem; height: 100%; background: #fff; transition: all 0.3s ease; position: relative; }
.pricing-card.featured { border: 2px solid #0d6efd; transform: scale(1.03); }
.pricing-card.featured .pricing-badge { position: absolute; top: -12px; left: 50%; transform: translateX(-50%); background: #0d6efd; color: #fff; padding: 4px 20px; border-radius: 20px; font-size: 0.8rem; font-weight: 600; }
.pricing-card:hover { transform: translateY(-5px); box-shadow: 0 20px 40px rgba(0,0,0,0.08); }
.pricing-card.featured:hover { transform: scale(1.03) translateY(-5px); }
.price-amount { font-size: 2.5rem; font-weight: 800; }
.contact-form .form-control { border-radius: 10px; padding: 0.75rem 1rem; border: 1px solid #dee2e6; }
.contact-form .form-control:focus { border-color: #0d6efd; box-shadow: 0 0 0 3px rgba(13,110,253,0.15); }
.footer { background: #212529; color: rgba(255,255,255,0.7); }
.footer a { color: rgba(255,255,255,0.7); text-decoration: none; transition: color 0.2s; }
.footer a:hover { color: #fff; }
.footer h6 { color: #fff; font-weight: 600; }
.footer-logo { font-size: 1.5rem; font-weight: 800; color: #fff; }
.testimonial-card { border: none; border-radius: 16px; padding: 2rem; background: #fff; height: 100%; }
.testimonial-card .stars { color: #ffc107; }
.cta-section { position: relative; overflow: hidden; }
.cta-section::before { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.05'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E"); }
.founder-img { width: 120px; height: 120px; border-radius: 50%; object-fit: cover; border: 4px solid #fff; box-shadow: 0 4px 15px rgba(0,0,0,0.1); }
.stat-number { font-size: 2.5rem; font-weight: 800; }
.scroll-top { position: fixed; bottom: 30px; right: 30px; width: 45px; height: 45px; border-radius: 50%; background: #0d6efd; color: #fff; border: none; display: none; align-items: center; justify-content: center; cursor: pointer; z-index: 999; box-shadow: 0 4px 12px rgba(0,0,0,0.15); transition: all 0.3s; }
.scroll-top:hover { background: #0b5ed7; transform: translateY(-3px); }
.navbar-landing { background: rgba(255,255,255,0.95) !important; backdrop-filter: blur(10px); box-shadow: 0 2px 20px rgba(0,0,0,0.06); }
.partner-placeholder { height: 60px; background: #f8f9fa; border-radius: 8px; display: flex; align-items: center; justify-content: center; color: #adb5bd; font-weight: 600; font-size: 1.1rem; }
@media (max-width: 768px) {
    .hero-section { min-height: 60vh; text-align: center; }
    .step-line { display: none; }
    .pricing-card.featured { transform: none; }
    .pricing-card.featured:hover { transform: translateY(-5px); }
    .section-padding { padding: 50px 0; }
    .stat-number { font-size: 2rem; }
}
