:root { --primary: #1a5276; --primary-dark: #0e3450; --accent: #e67e22; --accent-hover: #d35400; --teal: #2a9d8f; --teal-dark: #1f7a6f; --coral: #e76f51; --warm-bg: #fdf6f0; --bg: #ffffff; --bg-alt: #f7f9fc; --text: #2c3e50; --text-light: #5d6d7e; --dark-bar: #1a1a2e; --footer-bg: #1a1a2e; } * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: 'Poppins', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; color: var(--text); background: var(--bg); line-height: 1.6; } img { max-width: 100%; height: auto; } a { text-decoration: none; } .container { max-width: 1200px; margin: 0 auto; padding: 0 20px; } /* ===== TOP BAR ===== */ .top-bar { background: var(--dark-bar); color: rgba(255,255,255,0.85); padding: 10px 0; font-size: 0.82rem; } .top-bar .container { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 8px; } .top-bar a { color: var(--accent); font-weight: 600; transition: color 0.2s; } .top-bar a:hover { color: #f5a623; } .top-bar-right { display: flex; align-items: center; gap: 20px; } .top-bar-phone { display: flex; align-items: center; gap: 6px; } .top-bar-phone svg { width: 14px; height: 14px; fill: var(--accent); } /* ===== MAIN NAVIGATION ===== */ .main-nav { background: var(--bg); border-bottom: 1px solid #eee; position: sticky; top: 0; z-index: 100; box-shadow: 0 2px 8px rgba(0,0,0,0.06); } .main-nav .container { display: flex; justify-content: space-between; align-items: center; padding-top: 12px; padding-bottom: 12px; } .logo { display: flex; align-items: center; gap: 10px; } .logo-icon { width: 48px; height: 48px; } .logo-text { font-size: 1.15rem; font-weight: 700; color: var(--primary); line-height: 1.2; } .logo-text span { color: var(--accent); } .nav-links { list-style: none; display: flex; gap: 28px; align-items: center; } .nav-links a { color: var(--text); font-size: 0.92rem; font-weight: 500; transition: color 0.2s; } .nav-links a:hover { color: var(--teal); } .nav-actions { display: flex; gap: 10px; } .btn { display: inline-flex; align-items: center; gap: 6px; padding: 10px 22px; border-radius: 6px; font-size: 0.88rem; font-weight: 600; cursor: pointer; border: none; transition: all 0.2s; font-family: inherit; } .btn-primary { background: var(--accent); color: #fff; } .btn-primary:hover { background: var(--accent-hover); } .btn-outline { background: transparent; color: var(--primary); border: 2px solid var(--primary); } .btn-outline:hover { background: var(--primary); color: #fff; } .btn-teal { background: var(--teal); color: #fff; } .btn-teal:hover { background: var(--teal-dark); } .mobile-menu-btn { display: none; background: none; border: none; cursor: pointer; padding: 8px; } .mobile-menu-btn span { display: block; width: 24px; height: 2px; background: var(--text); margin: 5px 0; transition: 0.3s; } /* ===== HERO ===== */ .hero { position: relative; background: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%); padding: 80px 0; overflow: hidden; min-height: 450px; display: flex; align-items: center; } .hero::before { content: ''; position: absolute; top: 0; right: 0; bottom: 0; left: 0; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='80' viewBox='0 0 80 80'%3E%3Ccircle cx='40' cy='40' r='32' fill='none' stroke='rgba(255,255,255,0.04)' stroke-width='1'/%3E%3C/svg%3E"); opacity: 0.5; } .hero-content { position: relative; z-index: 2; max-width: 650px; } .hero-badge { display: inline-block; background: var(--accent); color: #fff; padding: 6px 18px; border-radius: 20px; font-size: 0.82rem; font-weight: 600; margin-bottom: 20px; letter-spacing: 0.5px; } .hero h1 { font-size: 2.8rem; font-weight: 800; color: #fff; line-height: 1.15; margin-bottom: 18px; } .hero p { font-size: 1.1rem; color: rgba(255,255,255,0.85); margin-bottom: 28px; line-height: 1.7; } .hero-actions { display: flex; gap: 12px; flex-wrap: wrap; } .hero-shapes { position: absolute; right: -60px; top: 50%; transform: translateY(-50%); z-index: 1; } .hero-shapes .circle { width: 400px; height: 400px; border-radius: 50%; background: rgba(255,255,255,0.06); position: absolute; right: 0; top: -200px; } .hero-shapes .circle:nth-child(2) { width: 300px; height: 300px; right: 80px; top: -150px; background: rgba(230,126,34,0.12); } /* ===== TAGLINE SECTION ===== */ .tagline-section { padding: 70px 0; text-align: center; background: var(--warm-bg); } .tagline-section h2 { font-size: 2.2rem; font-weight: 800; color: var(--teal); margin-bottom: 16px; } .tagline-section p { font-size: 1.05rem; color: var(--text-light); max-width: 700px; margin: 0 auto 28px; line-height: 1.7; } /* ===== WHY FAMILIES LOVE US ===== */ .features-section { padding: 70px 0; background: var(--bg); } .section-title { text-align: center; font-size: 2rem; font-weight: 800; color: var(--teal); margin-bottom: 48px; } .features-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 32px; } .feature-card { text-align: center; } .feature-circle { width: 160px; height: 160px; border-radius: 50%; margin: 0 auto 20px; display: flex; align-items: center; justify-content: center; font-size: 3.5rem; position: relative; overflow: hidden; } .feature-circle-teal { background: linear-gradient(135deg, var(--teal) 0%, #34b3a0 100%); color: #fff; } .feature-circle-coral { background: linear-gradient(135deg, var(--coral) 0%, #f09c7a 100%); color: #fff; } .feature-circle-primary { background: linear-gradient(135deg, var(--primary) 0%, #2980b9 100%); color: #fff; } .feature-circle-accent { background: linear-gradient(135deg, var(--accent) 0%, #f5a623 100%); color: #fff; } .feature-card h3 { font-size: 1.05rem; font-weight: 700; color: var(--teal); margin-bottom: 10px; } .feature-card p { font-size: 0.9rem; color: var(--text-light); line-height: 1.6; padding: 0 8px; } /* ===== PROGRAMS ===== */ .programs-section { padding: 70px 0; background: var(--bg-alt); } .programs-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; } .program-card { background: #fff; border-radius: 16px; overflow: hidden; box-shadow: 0 4px 20px rgba(0,0,0,0.06); transition: transform 0.3s, box-shadow 0.3s; } .program-card:hover { transform: translateY(-4px); box-shadow: 0 8px 30px rgba(0,0,0,0.1); } .program-icon { height: 180px; display: flex; align-items: center; justify-content: center; font-size: 4rem; } .program-icon-1 { background: linear-gradient(135deg, #fce4ec 0%, #f8bbd0 100%); } .program-icon-2 { background: linear-gradient(135deg, #e0f2f1 0%, #b2dfdb 100%); } .program-icon-3 { background: linear-gradient(135deg, #e8eaf6 0%, #c5cae9 100%); } .program-icon-4 { background: linear-gradient(135deg, #fff3e0 0%, #ffcc80 100%); } .program-icon-5 { background: linear-gradient(135deg, #e8f5e9 0%, #a5d6a7 100%); } .program-icon-6 { background: linear-gradient(135deg, #fce4ec 0%, #ef9a9a 100%); } .program-card-body { padding: 24px; } .program-card h3 { font-size: 1.15rem; font-weight: 700; color: var(--teal); margin-bottom: 4px; } .program-card .age-range { font-size: 0.88rem; color: var(--accent); font-weight: 600; margin-bottom: 10px; } .program-card p { font-size: 0.9rem; color: var(--text-light); line-height: 1.6; } /* ===== PROMO BANNER ===== */ .promo-section { padding: 70px 0; background: var(--bg); } .promo-inner { display: flex; align-items: center; gap: 60px; } .promo-circle { flex-shrink: 0; width: 280px; height: 280px; border-radius: 50%; background: linear-gradient(135deg, var(--coral) 0%, #e74c3c 100%); color: #fff; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: 30px; } .promo-circle .promo-label { font-size: 0.9rem; font-weight: 600; text-transform: uppercase; letter-spacing: 1px; margin-bottom: 6px; } .promo-circle .promo-headline { font-size: 2.4rem; font-weight: 800; line-height: 1.1; } .promo-circle .promo-sub { font-size: 0.85rem; margin-top: 8px; opacity: 0.9; } .promo-text h2 { font-size: 1.8rem; font-weight: 700; color: var(--teal); margin-bottom: 12px; } .promo-text p { font-size: 1rem; color: var(--text-light); line-height: 1.7; margin-bottom: 20px; } /* ===== FIND A SCHOOL / LOCATIONS ===== */ .locations-section { padding: 70px 0; background: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%); color: #fff; } .locations-section .section-title { color: #fff; } .locations-section .section-subtitle { text-align: center; color: rgba(255,255,255,0.8); font-size: 1.05rem; margin-top: -36px; margin-bottom: 48px; } .locations-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; } .location-card { background: rgba(255,255,255,0.1); border-radius: 16px; padding: 28px; backdrop-filter: blur(10px); border: 1px solid rgba(255,255,255,0.15); transition: transform 0.3s, background 0.3s; } .location-card:hover { transform: translateY(-3px); background: rgba(255,255,255,0.15); } .location-card.featured { border: 2px solid var(--accent); background: rgba(255,255,255,0.14); } .location-badge { display: inline-block; background: var(--accent); color: #fff; padding: 3px 12px; border-radius: 12px; font-size: 0.72rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 12px; } .location-card h3 { font-size: 1.15rem; font-weight: 700; margin-bottom: 10px; } .location-card .location-details { font-size: 0.88rem; line-height: 1.8; color: rgba(255,255,255,0.8); } .location-card .location-details svg { width: 14px; height: 14px; fill: var(--accent); vertical-align: middle; margin-right: 4px; } .location-card a { color: var(--accent); font-weight: 600; font-size: 0.88rem; display: inline-flex; align-items: center; gap: 4px; margin-top: 12px; transition: color 0.2s; } .location-card a:hover { color: #f5a623; } /* ===== BOOK A TOUR ===== */ .tour-section { padding: 70px 0; background: var(--warm-bg); } .tour-inner { text-align: center; max-width: 600px; margin: 0 auto; } .tour-inner h2 { font-size: 2rem; font-weight: 800; color: var(--teal); margin-bottom: 16px; } .tour-inner p { font-size: 1.05rem; color: var(--text-light); margin-bottom: 28px; line-height: 1.7; } /* ===== FOOTER ===== */ footer { background: var(--footer-bg); color: rgba(255,255,255,0.7); padding: 50px 0 24px; } .footer-grid { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 40px; margin-bottom: 40px; } .footer-brand { display: flex; align-items: center; gap: 10px; margin-bottom: 16px; } .footer-brand-text { font-size: 1.05rem; font-weight: 700; color: #fff; } .footer-brand-text span { color: var(--accent); } footer h4 { color: #fff; font-size: 0.95rem; font-weight: 600; margin-bottom: 16px; } footer p, footer a { color: rgba(255,255,255,0.6); font-size: 0.88rem; line-height: 1.8; } footer a { transition: color 0.2s; } footer a:hover { color: #fff; } footer ul { list-style: none; } footer ul li { margin-bottom: 6px; } .footer-bottom { border-top: 1px solid rgba(255,255,255,0.1); padding-top: 24px; display: flex; justify-content: space-between; align-items: center; font-size: 0.82rem; flex-wrap: wrap; gap: 8px; } .footer-bottom a { color: rgba(255,255,255,0.5); } .footer-bottom a:hover { color: #fff; } /* ===== STICKY SIDEBAR ACTIONS ===== */ .sticky-actions { position: fixed; right: 0; top: 50%; transform: translateY(-50%); z-index: 99; display: flex; flex-direction: column; gap: 2px; } .sticky-action { background: var(--teal); color: #fff; padding: 12px 14px; text-align: center; font-size: 0.7rem; font-weight: 600; cursor: pointer; transition: background 0.2s; border-radius: 8px 0 0 8px; display: flex; flex-direction: column; align-items: center; gap: 4px; width: 70px; } .sticky-action:hover { background: var(--teal-dark); } .sticky-action svg { width: 20px; height: 20px; fill: #fff; } .sticky-action.accent-bg { background: var(--accent); } .sticky-action.accent-bg:hover { background: var(--accent-hover); } /* ===== BACK TO TOP ===== */ .back-to-top { position: fixed; right: 24px; bottom: 24px; width: 44px; height: 44px; border-radius: 50%; background: var(--accent); color: #fff; display: flex; align-items: center; justify-content: center; cursor: pointer; z-index: 99; box-shadow: 0 2px 10px rgba(0,0,0,0.2); transition: background 0.2s; border: none; } .back-to-top:hover { background: var(--accent-hover); } .back-to-top svg { width: 20px; height: 20px; fill: #fff; } /* ===== MISSION PAGE ===== */ .mission-section { padding: 80px 0; background: var(--bg); } .mission-content { max-width: 800px; margin: 0 auto; } .mission-content h1 { font-size: 2.4rem; font-weight: 800; color: var(--primary); margin-bottom: 12px; } .mission-content h2 { font-size: 1.8rem; font-weight: 700; color: var(--teal); margin-bottom: 24px; } .mission-content p { font-size: 1.08rem; color: var(--text); line-height: 1.85; margin-bottom: 20px; } .mission-highlight { background: var(--warm-bg); border-left: 4px solid var(--accent); padding: 28px 32px; border-radius: 0 12px 12px 0; margin: 32px 0; } .mission-highlight p { font-size: 1.05rem; color: var(--text); margin-bottom: 0; font-style: italic; } /* ===== RESPONSIVE ===== */ @media (max-width: 1024px) { .features-grid { grid-template-columns: repeat(2, 1fr); } .programs-grid { grid-template-columns: repeat(2, 1fr); } .footer-grid { grid-template-columns: repeat(2, 1fr); } } @media (max-width: 768px) { .nav-links, .nav-actions { display: none; } .mobile-menu-btn { display: block; } .hero { padding: 50px 0; min-height: auto; } .hero h1 { font-size: 2rem; } .hero-shapes { display: none; } .tagline-section h2 { font-size: 1.6rem; } .section-title { font-size: 1.6rem; } .features-grid { grid-template-columns: repeat(2, 1fr); gap: 24px; } .feature-circle { width: 120px; height: 120px; font-size: 2.5rem; } .programs-grid { grid-template-columns: 1fr; } .promo-inner { flex-direction: column; text-align: center; gap: 30px; } .promo-circle { width: 220px; height: 220px; } .promo-circle .promo-headline { font-size: 1.8rem; } .locations-grid { grid-template-columns: 1fr; } .footer-grid { grid-template-columns: 1fr; gap: 28px; } .footer-bottom { flex-direction: column; text-align: center; } .sticky-actions { display: none; } .top-bar .container { justify-content: center; text-align: center; } .top-bar-right { display: none; } .mission-content h1 { font-size: 1.8rem; } .mission-content h2 { font-size: 1.4rem; } .mission-highlight { padding: 20px 24px; } } @media (max-width: 480px) { .features-grid { grid-template-columns: 1fr; } .hero h1 { font-size: 1.7rem; } .hero-actions { flex-direction: column; } .hero-actions .btn { width: 100%; justify-content: center; } } /* ===== MOBILE MENU ===== */ .mobile-nav { display: none; background: #fff; border-top: 1px solid #eee; padding: 16px 20px; } .mobile-nav.active { display: block; } .mobile-nav a { display: block; color: var(--text); padding: 12px 0; font-weight: 500; font-size: 0.95rem; border-bottom: 1px solid #f0f0f0; } .mobile-nav .btn { margin-top: 12px; width: 100%; justify-content: center; }
