/* ====== Base Reset ====== */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; }
body { color: #1f2937; background: #fff; line-height: 1.6; }

/* ====== Utility Classes ====== */
.gradient-hero { background: linear-gradient(135deg, #1e40af 0%, #3b82f6 50%, #60a5fa 100%); }
.gradient-cta { background: linear-gradient(135deg, #2563eb 0%, #7c3aed 100%); }
.gradient-banner { background: linear-gradient(135deg, #1e3a5f 0%, #2563eb 100%); }

.card-hover { transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); }
.card-hover:hover { transform: translateY(-8px); box-shadow: 0 25px 60px rgba(37,99,235,0.12); }

.btn-primary { transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); }
.btn-primary:hover { transform: translateY(-3px); box-shadow: 0 12px 35px rgba(37,99,235,0.35); }

.nav-blur { backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); background: rgba(255,255,255,0.9); }

.testimonial-card { transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); }
.testimonial-card:hover { transform: scale(1.03); }

/* ====== FAQ Accordion ====== */
.faq-answer { max-height: 0; overflow: hidden; transition: max-height 0.4s ease, padding 0.4s ease; }
.faq-answer.open { max-height: 400px; }

/* ====== Mobile Menu ====== */
.mobile-menu { display: none; }
.mobile-menu.active { display: flex; }

/* ====== Stats Counter Animation ====== */
.stat-number { display: inline-block; }

/* ====== About Page Timeline ====== */
.timeline-line { position: absolute; left: 50%; transform: translateX(-50%); top: 0; bottom: 0; width: 3px; background: linear-gradient(to bottom, #3b82f6, #8b5cf6); }

/* ====== Contact Form ====== */
.form-input {
    width: 100%;
    padding: 14px 18px;
    border: 2px solid #e5e7eb;
    border-radius: 14px;
    font-size: 1rem;
    transition: border-color 0.3s, box-shadow 0.3s;
    outline: none;
    background: #f9fafb;
}
.form-input:focus { border-color: #3b82f6; box-shadow: 0 0 0 4px rgba(59,130,246,0.1); background: #fff; }
.form-label { display: block; margin-bottom: 6px; font-weight: 600; color: #374151; font-size: 0.95rem; }

/* ====== Breadcrumb ====== */
.breadcrumb a { color: #93c5fd; transition: color 0.2s; }
.breadcrumb a:hover { color: #fff; }

/* ====== Page Hero ====== */
.page-hero { padding-top: 7rem; padding-bottom: 4rem; }

/* ====== Responsive ====== */
@media (max-width: 768px) {
    .page-hero { padding-top: 6rem; padding-bottom: 3rem; }
}
