* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

:root {
    --primary-color: #3B82F6;
    --primary-dark: #2563EB;
    --secondary-color: #10B981;
    --accent-color: #8B5CF6;
    --text-primary: #1F2937;
    --text-secondary: #6B7280;
    --text-light: #9CA3AF;
    --background-light: #F9FAFB;
    --background-white: #FFFFFF;
    --border-color: #E5E7EB;
    --border-light: #F3F4F6;
    --error-color: #EF4444;
    --success-color: #10B981;
    --warning-color: #F59E0B;
    --shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
    --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
    --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
    --border-radius: 8px;
    --border-radius-lg: 12px;
    --transition: all 0.3s ease;
}

body {
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
    line-height: 1.6;
    color: var(--text-primary);
    background-color: var(--background-white);
}

.container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
}

/* Header & Navigation */
.header {
    background: var(--background-white);
    border-bottom: 1px solid var(--border-color);
    position: sticky;
    top: 0;
    z-index: 1000;
}

.nav-container {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1rem 20px;
    max-width: 1200px;
    margin: 0 auto;
}

.nav-logo {
    display: flex;
    align-items: center;
    gap: 12px;
    text-decoration: none;
    color: var(--text-primary);
    font-weight: 700;
    font-size: 1.25rem;
}

.nav-logo img {
    width: 40px;
    height: 40px;
}

.nav-menu {
    display: flex;
    gap: 2rem;
    align-items: center;
}

.nav-link {
    text-decoration: none;
    color: var(--text-secondary);
    font-weight: 500;
    transition: var(--transition);
    padding: 0.5rem 0;
    position: relative;
}

.nav-link:hover,
.nav-link.active {
    color: var(--primary-color);
}

.nav-link.active::after {
    content: '';
    position: absolute;
    bottom: -1rem;
    left: 0;
    right: 0;
    height: 2px;
    background: var(--primary-color);
}

.nav-toggle {
    display: none;
    flex-direction: column;
    background: none;
    border: none;
    cursor: pointer;
    padding: 0.5rem;
}

.nav-toggle span {
    width: 24px;
    height: 2px;
    background: var(--text-primary);
    margin: 2px 0;
    transition: var(--transition);
}

/* Buttons */
.btn {
    display: inline-block;
    padding: 12px 24px;
    border-radius: var(--border-radius);
    text-decoration: none;
    font-weight: 600;
    text-align: center;
    transition: var(--transition);
    border: 2px solid transparent;
    cursor: pointer;
    font-size: 1rem;
    line-height: 1.5;
}

.btn-primary {
    background: var(--primary-color);
    color: white;
    border-color: var(--primary-color);
}

.btn-primary:hover {
    background: var(--primary-dark);
    border-color: var(--primary-dark);
    transform: translateY(-1px);
    box-shadow: var(--shadow-md);
}

.btn-secondary {
    background: transparent;
    color: var(--primary-color);
    border-color: var(--primary-color);
}

.btn-secondary:hover {
    background: var(--primary-color);
    color: white;
    transform: translateY(-1px);
    box-shadow: var(--shadow-md);
}

/* Hero Section */
.hero {
    position: relative;
    padding: 100px 0;
    background: linear-gradient(135deg, var(--background-light) 0%, var(--background-white) 100%);
    overflow: hidden;
}

.hero-bg {
    position: absolute;
    top: 0;
    right: 0;
    width: 50%;
    height: 100%;
    opacity: 0.1;
    z-index: 1;
}

.hero-bg-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.hero-content {
    position: relative;
    z-index: 2;
    max-width: 600px;
}

.hero-title {
    font-size: 3.5rem;
    font-weight: 800;
    line-height: 1.2;
    margin-bottom: 1.5rem;
    color: var(--text-primary);
}

.hero-subtitle {
    font-size: 1.25rem;
    color: var(--text-secondary);
    margin-bottom: 2rem;
    line-height: 1.6;
}

.hero-actions {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
}

/* Page Headers */
.page-header {
    padding: 80px 0 40px;
    background: var(--background-light);
    text-align: center;
}

.page-title {
    font-size: 2.5rem;
    font-weight: 700;
    margin-bottom: 1rem;
    color: var(--text-primary);
}

.page-subtitle {
    font-size: 1.125rem;
    color: var(--text-secondary);
    max-width: 600px;
    margin: 0 auto;
}

/* Sections */
.section-title {
    font-size: 2.25rem;
    font-weight: 700;
    text-align: center;
    margin-bottom: 1rem;
    color: var(--text-primary);
}

.section-subtitle {
    font-size: 1.125rem;
    color: var(--text-secondary);
    text-align: center;
    margin-bottom: 3rem;
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
}

.section-header {
    text-align: center;
    margin-bottom: 3rem;
}

.section-actions {
    text-align: center;
    margin-top: 3rem;
}

/* Features Section */
.features {
    padding: 80px 0;
    background: var(--background-white);
}

.features-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 2rem;
    margin-top: 3rem;
}

.feature-card {
    text-align: center;
    padding: 2rem;
    border-radius: var(--border-radius-lg);
    background: var(--background-white);
    border: 1px solid var(--border-light);
    transition: var(--transition);
}

.feature-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-lg);
}

.feature-icon {
    margin-bottom: 1.5rem;
}

.feature-title {
    font-size: 1.25rem;
    font-weight: 600;
    margin-bottom: 1rem;
    color: var(--text-primary);
}

.feature-desc {
    color: var(--text-secondary);
    line-height: 1.6;
}

/* Courses Section */
.courses-section {
    padding: 80px 0;
    background: var(--background-light);
}

.courses-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(350px, 1fr));
    gap: 2rem;
    margin-top: 2rem;
}

.course-card {
    background: var(--background-white);
    border-radius: var(--border-radius-lg);
    overflow: hidden;
    box-shadow: var(--shadow-sm);
    transition: var(--transition);
    border: 1px solid var(--border-color);
}

.course-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-lg);
}

.course-image {
    width: 100%;
    height: 200px;
    object-fit: cover;
    background: var(--background-light);
}

.course-content {
    padding: 1.5rem;
}

.course-tag {
    display: inline-block;
    background: var(--primary-color);
    color: white;
    padding: 0.25rem 0.75rem;
    border-radius: 20px;
    font-size: 0.875rem;
    font-weight: 500;
    margin-bottom: 1rem;
}

.course-title {
    font-size: 1.25rem;
    font-weight: 600;
    margin-bottom: 0.5rem;
    color: var(--text-primary);
    line-height: 1.4;
}

.course-desc {
    color: var(--text-secondary);
    margin-bottom: 1rem;
    line-height: 1.5;
}

.course-meta {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 1rem;
    font-size: 0.875rem;
    color: var(--text-light);
}

.course-price {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--primary-color);
    margin-bottom: 1rem;
}

.course-actions {
    display: flex;
    gap: 0.75rem;
}

.course-actions .btn {
    flex: 1;
    padding: 0.75rem 1rem;
    font-size: 0.875rem;
}

/* Course Detail */
.course-detail {
    padding: 2rem 0;
}

.course-header {
    display: grid;
    grid-template-columns: 1fr 350px;
    gap: 3rem;
    margin-bottom: 3rem;
}

.course-info h1 {
    font-size: 2.5rem;
    font-weight: 700;
    margin-bottom: 1rem;
    color: var(--text-primary);
}

.course-info .course-meta {
    margin-bottom: 1.5rem;
}

.course-sidebar {
    background: var(--background-light);
    padding: 2rem;
    border-radius: var(--border-radius-lg);
    height: fit-content;
    position: sticky;
    top: 100px;
}

.course-sidebar img {
    width: 100%;
    height: 200px;
    object-fit: cover;
    border-radius: var(--border-radius);
    margin-bottom: 1.5rem;
}

.course-sidebar .course-price {
    font-size: 2rem;
    margin-bottom: 1.5rem;
}

.course-sidebar .btn {
    width: 100%;
    margin-bottom: 1rem;
}

.course-details {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: 3rem;
}

.course-main h2 {
    font-size: 1.75rem;
    font-weight: 600;
    margin: 2rem 0 1rem;
    color: var(--text-primary);
}

.course-main h3 {
    font-size: 1.25rem;
    font-weight: 600;
    margin: 1.5rem 0 0.75rem;
    color: var(--text-primary);
}

.course-main ul {
    margin: 1rem 0;
    padding-left: 1.5rem;
}

.course-main li {
    margin-bottom: 0.5rem;
    color: var(--text-secondary);
}

.curriculum-list {
    list-style: none;
    padding: 0;
}

.curriculum-item {
    padding: 1rem;
    border: 1px solid var(--border-color);
    border-radius: var(--border-radius);
    margin-bottom: 0.5rem;
    background: var(--background-white);
}

.instructor-info {
    background: var(--background-light);
    padding: 1.5rem;
    border-radius: var(--border-radius);
    margin: 2rem 0;
}

.faq-list {
    margin: 1rem 0;
}

.faq-item {
    border: 1px solid var(--border-color);
    border-radius: var(--border-radius);
    margin-bottom: 0.5rem;
    overflow: hidden;
}

.faq-question {
    width: 100%;
    padding: 1rem;
    background: var(--background-white);
    border: none;
    text-align: left;
    font-weight: 600;
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    transition: var(--transition);
}

.faq-question:hover {
    background: var(--background-light);
}

.faq-answer {
    padding: 1rem;
    background: var(--background-light);
    display: none;
}

.faq-answer.active {
    display: block;
}

.faq-icon {
    transition: var(--transition);
}

.faq-item.active .faq-icon {
    transform: rotate(180deg);
}

/* Trust Section */
.trust-section {
    padding: 80px 0;
    background: var(--background-white);
    text-align: center;
}

.trust-grid {
    display: flex;
    justify-content: center;
    gap: 3rem;
    margin-top: 2rem;
    flex-wrap: wrap;
}

.trust-item {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    color: var(--text-secondary);
    font-weight: 500;
}

/* Catalog Filters */
.catalog-filters {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr;
    gap: 1rem;
    margin-bottom: 2rem;
    padding: 2rem;
    background: var(--background-white);
    border-radius: var(--border-radius-lg);
    box-shadow: var(--shadow-sm);
}

.filter-group {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.filter-group label {
    font-weight: 600;
    color: var(--text-primary);
}

.filter-group input,
.filter-group select {
    padding: 0.75rem;
    border: 1px solid var(--border-color);
    border-radius: var(--border-radius);
    font-size: 1rem;
}

.results-count {
    margin-bottom: 1.5rem;
    color: var(--text-secondary);
    font-weight: 500;
}

/* Forms */
.form-group {
    margin-bottom: 1.5rem;
}

.form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
}

.form-group label {
    display: block;
    margin-bottom: 0.5rem;
    font-weight: 600;
    color: var(--text-primary);
}

.form-group input,
.form-group select,
.form-group textarea {
    width: 100%;
    padding: 0.75rem;
    border: 1px solid var(--border-color);
    border-radius: var(--border-radius);
    font-size: 1rem;
    transition: var(--transition);
}

.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
    outline: none;
    border-color: var(--primary-color);
    box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
}

.error-message {
    display: block;
    color: var(--error-color);
    font-size: 0.875rem;
    margin-top: 0.25rem;
}

.checkbox-group {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
}

.checkbox-label {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    cursor: pointer;
    line-height: 1.5;
}

.checkbox-label input[type="checkbox"] {
    width: auto;
    margin: 0;
}

.checkmark {
    width: 20px;
    height: 20px;
    border: 2px solid var(--border-color);
    border-radius: 4px;
    position: relative;
    flex-shrink: 0;
    margin-top: 2px;
}

.checkbox-label input:checked + .checkmark {
    background: var(--primary-color);
    border-color: var(--primary-color);
}

.checkbox-label input:checked + .checkmark::after {
    content: '✓';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    color: white;
    font-weight: bold;
    font-size: 12px;
}

.form-actions {
    display: flex;
    gap: 1rem;
    justify-content: flex-end;
    margin-top: 2rem;
}

/* Checkout */
.checkout-section {
    padding: 2rem 0;
    background: var(--background-light);
    min-height: 80vh;
}

.checkout-header {
    text-align: center;
    margin-bottom: 3rem;
}

.checkout-steps {
    display: flex;
    justify-content: center;
    gap: 2rem;
    margin-top: 2rem;
}

.step {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--text-light);
}

.step.active {
    color: var(--primary-color);
}

.step.completed {
    color: var(--success-color);
}

.step-number {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--border-color);
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 600;
    font-size: 0.875rem;
}

.step.active .step-number {
    background: var(--primary-color);
    color: white;
}

.step.completed .step-number {
    background: var(--success-color);
    color: white;
}

.checkout-content {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: 3rem;
    max-width: 1000px;
    margin: 0 auto;
}

.checkout-form {
    background: var(--background-white);
    padding: 2rem;
    border-radius: var(--border-radius-lg);
    box-shadow: var(--shadow-sm);
}

.checkout-summary {
    background: var(--background-white);
    padding: 2rem;
    border-radius: var(--border-radius-lg);
    box-shadow: var(--shadow-sm);
    height: fit-content;
    position: sticky;
    top: 100px;
}

.payment-security {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1rem;
    background: var(--background-light);
    border-radius: var(--border-radius);
    margin-bottom: 2rem;
}

.security-badges {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--success-color);
    font-weight: 600;
    font-size: 0.875rem;
}

.card-types {
    display: flex;
    gap: 0.5rem;
}

.payment-notice {
    background: var(--warning-color);
    color: white;
    padding: 1rem;
    border-radius: var(--border-radius);
    margin: 1.5rem 0;
}

/* Success Page */
.success-section {
    padding: 80px 0;
    background: var(--background-light);
    min-height: 60vh;
    display: flex;
    align-items: center;
}

.success-content {
    text-align: center;
    background: var(--background-white);
    padding: 3rem;
    border-radius: var(--border-radius-lg);
    box-shadow: var(--shadow-md);
    max-width: 600px;
    margin: 0 auto;
}

.success-icon {
    margin-bottom: 1.5rem;
}

.success-content h1 {
    font-size: 2rem;
    color: var(--success-color);
    margin-bottom: 1rem;
}

.success-actions {
    display: flex;
    gap: 1rem;
    justify-content: center;
    margin-top: 2rem;
    flex-wrap: wrap;
}

.order-summary {
    background: var(--background-light);
    padding: 1.5rem;
    border-radius: var(--border-radius);
    margin: 1.5rem 0;
    text-align: left;
}

/* About Page */
.about-content {
    padding: 80px 0;
}

.about-grid {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: 3rem;
    align-items: center;
}

.about-text h2 {
    font-size: 2rem;
    margin-bottom: 1.5rem;
    color: var(--text-primary);
}

.about-text h3 {
    font-size: 1.5rem;
    margin: 2rem 0 1rem;
    color: var(--text-primary);
}

.about-text p {
    margin-bottom: 1.5rem;
    color: var(--text-secondary);
    line-height: 1.7;
}

.feature-list {
    list-style: none;
    padding: 0;
    margin: 1.5rem 0;
}

.feature-list li {
    padding: 0.5rem 0;
    position: relative;
    padding-left: 1.5rem;
    color: var(--text-secondary);
}

.feature-list li::before {
    content: '✓';
    position: absolute;
    left: 0;
    color: var(--success-color);
    font-weight: bold;
}

.about-image {
    text-align: center;
}

.about-bg {
    width: 100%;
    max-width: 400px;
    opacity: 0.8;
}

.values-section {
    padding: 80px 0;
    background: var(--background-light);
}

.values-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 2rem;
    margin-top: 3rem;
}

.value-card {
    background: var(--background-white);
    padding: 2rem;
    border-radius: var(--border-radius-lg);
    text-align: center;
    box-shadow: var(--shadow-sm);
    transition: var(--transition);
}

.value-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-lg);
}

.value-icon {
    margin-bottom: 1.5rem;
}

.value-card h3 {
    font-size: 1.25rem;
    margin-bottom: 1rem;
    color: var(--text-primary);
}

.value-card p {
    color: var(--text-secondary);
    line-height: 1.6;
}

.team-section {
    padding: 80px 0;
}

.approach-content p {
    font-size: 1.125rem;
    line-height: 1.7;
    color: var(--text-secondary);
    margin-bottom: 2rem;
    max-width: 800px;
    margin-left: auto;
    margin-right: auto;
}

.stats-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 2rem;
    margin-top: 3rem;
}

.stat-item {
    text-align: center;
    padding: 2rem;
    background: var(--background-light);
    border-radius: var(--border-radius-lg);
}

.stat-number {
    font-size: 3rem;
    font-weight: 800;
    color: var(--primary-color);
    margin-bottom: 0.5rem;
}

.stat-label {
    font-weight: 600;
    color: var(--text-secondary);
}

.cta-section {
    padding: 80px 0;
    background: var(--primary-color);
    color: white;
    text-align: center;
}

.cta-content h2 {
    font-size: 2.5rem;
    margin-bottom: 1rem;
}

.cta-content p {
    font-size: 1.125rem;
    margin-bottom: 2rem;
    opacity: 0.9;
}

.cta-actions {
    display: flex;
    gap: 1rem;
    justify-content: center;
    flex-wrap: wrap;
}

.cta-section .btn-primary {
    background: white;
    color: var(--primary-color);
    border-color: white;
}

.cta-section .btn-primary:hover {
    background: var(--background-light);
    transform: translateY(-2px);
}

.cta-section .btn-secondary {
    color: white;
    border-color: white;
}

.cta-section .btn-secondary:hover {
    background: white;
    color: var(--primary-color);
}

/* Contact Page */
.contact-section {
    padding: 80px 0;
}

.contact-grid {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: 3rem;
}

.contact-form {
    background: var(--background-white);
    padding: 2rem;
    border-radius: var(--border-radius-lg);
    box-shadow: var(--shadow-sm);
}

.contact-info {
    background: var(--background-light);
    padding: 2rem;
    border-radius: var(--border-radius-lg);
}

.contact-method {
    display: flex;
    gap: 1rem;
    margin-bottom: 2rem;
    padding-bottom: 2rem;
    border-bottom: 1px solid var(--border-color);
}

.contact-method:last-of-type {
    border-bottom: none;
    margin-bottom: 2rem;
}

.contact-icon {
    flex-shrink: 0;
}

.contact-details h3 {
    font-size: 1.125rem;
    margin-bottom: 0.5rem;
    color: var(--text-primary);
}

.contact-details p {
    color: var(--text-secondary);
    margin-bottom: 0.25rem;
}

.contact-details a {
    color: var(--primary-color);
    text-decoration: none;
}

.contact-details a:hover {
    text-decoration: underline;
}

.contact-details small {
    color: var(--text-light);
    font-size: 0.875rem;
}

.contact-hours h3 {
    font-size: 1.125rem;
    margin-bottom: 1rem;
    color: var(--text-primary);
}

.hours-list {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.hours-item {
    display: flex;
    justify-content: space-between;
    color: var(--text-secondary);
}

.form-success {
    text-align: center;
    padding: 2rem;
    background: var(--success-color);
    color: white;
    border-radius: var(--border-radius-lg);
    display: none;
}

.form-success.show {
    display: block;
}

.form-success h3 {
    margin: 1rem 0 0.5rem;
}

.faq-preview {
    padding: 80px 0;
    background: var(--background-light);
}

.faq-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 2rem;
    margin-top: 2rem;
}

.faq-item {
    background: var(--background-white);
    padding: 1.5rem;
    border-radius: var(--border-radius-lg);
    box-shadow: var(--shadow-sm);
}

.faq-item h3 {
    font-size: 1.125rem;
    margin-bottom: 0.75rem;
    color: var(--text-primary);
}

.faq-item p {
    color: var(--text-secondary);
    line-height: 1.6;
}

/* FAQ Page */
.faq-section {
    padding: 80px 0;
}

.faq-categories {
    max-width: 800px;
    margin: 0 auto;
}

.faq-category {
    margin-bottom: 3rem;
}

.faq-category h2 {
    font-size: 1.75rem;
    margin-bottom: 1.5rem;
    color: var(--text-primary);
    padding-bottom: 0.5rem;
    border-bottom: 2px solid var(--primary-color);
}

.contact-cta {
    padding: 80px 0;
    background: var(--background-light);
    text-align: center;
}

/* Legal Pages */
.legal-content {
    padding: 80px 0;
    background: var(--background-white);
}

.legal-document {
    max-width: 800px;
    margin: 0 auto;
    line-height: 1.7;
}

.legal-document h2 {
    font-size: 1.75rem;
    margin: 2.5rem 0 1rem;
    color: var(--text-primary);
    border-bottom: 2px solid var(--primary-color);
    padding-bottom: 0.5rem;
}

.legal-document h3 {
    font-size: 1.25rem;
    margin: 2rem 0 0.75rem;
    color: var(--text-primary);
}

.legal-document p {
    margin-bottom: 1.5rem;
    color: var(--text-secondary);
}

.legal-document ul {
    margin: 1rem 0 1.5rem 1.5rem;
}

.legal-document li {
    margin-bottom: 0.5rem;
    color: var(--text-secondary);
}

.disclaimer-notice {
    background: var(--warning-color);
    color: white;
    padding: 2rem;
    border-radius: var(--border-radius-lg);
    margin-bottom: 2rem;
}

.disclaimer-notice h2 {
    color: white;
    border-bottom: 2px solid rgba(255, 255, 255, 0.3);
    margin-bottom: 1rem;
}

.contact-details {
    background: var(--background-light);
    padding: 1.5rem;
    border-radius: var(--border-radius);
    margin: 2rem 0;
}

.policy-footer {
    background: var(--background-light);
    padding: 1.5rem;
    border-radius: var(--border-radius);
    margin-top: 3rem;
    text-align: center;
    font-weight: 600;
}

/* Footer */
.footer {
    background: var(--text-primary);
    color: white;
    padding: 60px 0 20px;
    margin-top: auto;
}

.footer-content {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr 1.5fr;
    gap: 3rem;
    margin-bottom: 2rem;
}

.footer-brand {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.footer-brand img {
    width: 32px;
    height: 32px;
}

.footer-brand h3 {
    font-size: 1.25rem;
    margin: 0;
}

.footer-brand p {
    color: rgba(255, 255, 255, 0.8);
    line-height: 1.6;
}

.footer-group h4 {
    font-size: 1.125rem;
    margin-bottom: 1rem;
    color: white;
}

.footer-group a {
    display: block;
    color: rgba(255, 255, 255, 0.8);
    text-decoration: none;
    margin-bottom: 0.5rem;
    transition: var(--transition);
}

.footer-group a:hover {
    color: white;
}

.footer-contact h4 {
    font-size: 1.125rem;
    margin-bottom: 1rem;
    color: white;
}

.footer-contact p {
    color: rgba(255, 255, 255, 0.8);
    margin-bottom: 0.75rem;
    line-height: 1.5;
}

.footer-contact a {
    color: rgba(255, 255, 255, 0.8);
    text-decoration: none;
    transition: var(--transition);
}

.footer-contact a:hover {
    color: white;
}

.footer-bottom {
    border-top: 1px solid rgba(255, 255, 255, 0.2);
    padding-top: 2rem;
    text-align: center;
    color: rgba(255, 255, 255, 0.8);
}

/* Not Found */
.not-found-content {
    text-align: center;
    padding: 3rem;
    background: var(--background-white);
    border-radius: var(--border-radius-lg);
    box-shadow: var(--shadow-md);
    max-width: 500px;
    margin: 0 auto;
}

.not-found-content h1 {
    font-size: 2rem;
    margin-bottom: 1rem;
    color: var(--text-primary);
}

.not-found-content p {
    color: var(--text-secondary);
    margin-bottom: 2rem;
    line-height: 1.6;
}

/* Responsive Design */
@media (max-width: 768px) {
    .nav-menu {
        display: none;
    }
    
    .nav-toggle {
        display: flex;
    }
    
    .hero-title {
        font-size: 2.5rem;
    }
    
    .hero-actions {
        flex-direction: column;
    }
    
    .features-grid,
    .courses-grid,
    .values-grid {
        grid-template-columns: 1fr;
    }
    
    .catalog-filters {
        grid-template-columns: 1fr;
    }
    
    .course-header,
    .course-details,
    .checkout-content,
    .contact-grid,
    .about-grid {
        grid-template-columns: 1fr;
    }
    
    .checkout-summary,
    .course-sidebar {
        position: static;
    }
    
    .form-row {
        grid-template-columns: 1fr;
    }
    
    .hero-actions,
    .success-actions,
    .cta-actions {
        flex-direction: column;
        align-items: center;
    }
    
    .trust-grid {
        flex-direction: column;
        align-items: center;
        gap: 1.5rem;
    }
    
    .checkout-steps {
        flex-direction: column;
        gap: 1rem;
    }
    
    .footer-content {
        grid-template-columns: 1fr;
        gap: 2rem;
    }
    
    .stats-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 480px) {
    .container {
        padding: 0 15px;
    }
    
    .hero {
        padding: 60px 0;
    }
    
    .hero-title {
        font-size: 2rem;
    }
    
    .page-title {
        font-size: 2rem;
    }
    
    .section-title {
        font-size: 1.75rem;
    }
    
    .courses-grid {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }
    
    .course-card {
        margin: 0 auto;
        max-width: 100%;
    }
    
    .checkout-form,
    .contact-form,
    .contact-info {
        padding: 1.5rem;
    }
    
    .legal-document {
        padding: 0 1rem;
    }
}

/* Focus States for Accessibility */
button:focus,
input:focus,
select:focus,
textarea:focus,
a:focus {
    outline: 2px solid var(--primary-color);
    outline-offset: 2px;
}

/* Print Styles */
@media print {
    .header,
    .footer,
    .nav,
    .btn,
    .checkout-form,
    .contact-form {
        display: none;
    }
    
    body {
        font-size: 12pt;
        line-height: 1.4;
    }
    
    .container {
        max-width: none;
        padding: 0;
    }
}

/* FILE: assets/app.js -->
// Course Guide Pro - Main Application JavaScript

// Course Data (Single Source of Truth)
const COURSES_DATA = {
    1: {
        id: 1,
        title: "Complete Web Development Bootcamp",
        category: "Web Development",
        difficulty: "Beginner",
        duration: "40 hours",
        price: 89.99,
        shortDesc: "Learn HTML, CSS, JavaScript, and modern web frameworks to build responsive websites and web applications.",
        longDesc: "This comprehensive web development course covers everything you need to know to become a full-stack web developer. Starting with the fundamentals of HTML and CSS, you'll progress through JavaScript, responsive design, and modern frameworks. Perfect for beginners with no prior coding experience.",
        whatYouLearn: [
            "HTML5 and semantic markup",
            "CSS3 and responsive design",
            "JavaScript fundamentals and ES6+",
            "DOM manipulation and events",
            "Web APIs and AJAX",
            "Version control with Git",
            "Deployment and hosting",
            "Best practices and code organization"
        ],
        requirements: [
            "No programming experience required",
            "A computer with internet connection",
            "Text editor (recommendations provided)",
            "Willingness to practice coding daily"
        ],
        curriculum: [
            "Introduction to Web Development",
            "HTML Fundamentals and Structure",
            "CSS Styling and Layout",
            "Responsive Design Principles",
            "JavaScript Basics and Syntax",
            "DOM Manipulation and Events",
            "Working with APIs",
            "Project: Build Your Portfolio Website"
        ],
        instructorName: "Sarah Chen",
        instructorBio: "Sarah is a senior web developer with 8 years of experience at tech companies like Google and Spotify. She has taught over 50,000 students online and specializes in making complex concepts easy to understand.",
        faq: [
            {
                q: "Is this course suitable for complete beginners?",
                a: "Yes! This course is designed for people with no programming experience. We start with the basics and gradually build up your skills."
            },
            {
                q: "What tools do I need for this course?",
                a: "You'll need a computer with internet access and a text editor. We'll guide you through setting up free tools like Visual Studio Code."
            },
            {
                q: "How long will it take to complete?",
                a: "The course contains 40 hours of content. Most students complete it in 6-8 weeks studying 6-8 hours per week."
            }
        ],
        image: "/assets/course-01.svg",
        tag: "Bestseller"
    },
    2: {
        id: 2,
        title: "Digital Marketing Mastery",
        category: "Marketing",
        difficulty: "Intermediate",
        duration: "25 hours",
        price: 79.99,
        shortDesc: "Master digital marketing strategies including SEO, social media marketing, email campaigns, and analytics.",
        longDesc: "Become a digital marketing expert with this comprehensive course covering all major digital marketing channels. Learn to create effective campaigns, measure ROI, and drive business growth through proven digital strategies.",
        whatYouLearn: [
            "Search Engine Optimization (SEO)",
            "Pay-Per-Click (PPC) advertising",
            "Social media marketing strategies",
            "Email marketing campaigns",
            "Content marketing principles",
            "Analytics and data interpretation",
            "Conversion optimization",
            "Marketing automation tools"
        ],
        requirements: [
            "Basic computer skills",
            "Familiarity with social media platforms",
            "Interest in marketing and business",
            "Access to Google Analytics (free)"
        ],
        curriculum: [
            "Digital Marketing Fundamentals",
            "SEO Strategy and Implementation",
            "PPC Campaign Management",
            "Social Media Marketing",
            "Email Marketing Excellence",
            "Content Marketing Strategy",
            "Analytics and Measurement",
            "Campaign Optimization Techniques"
        ],
        instructorName: "Marcus Rodriguez",
        instructorBio: "Marcus has 10 years of digital marketing experience, having managed campaigns for Fortune 500 companies. He's a certified Google Ads and Analytics expert with a track record of driving millions in revenue.",
        faq: [
            {
                q: "Do I need any marketing experience?",
                a: "Some basic marketing knowledge is helpful but not required. We cover fundamentals before diving into advanced strategies."
            },
            {
                q: "Will I learn about specific tools?",
                a: "Yes, we cover popular tools like Google Analytics, Google Ads, Facebook Business Manager, and email marketing platforms."
            },
            {
                q: "Is this course updated regularly?",
                a: "Yes, digital marketing changes rapidly, so we update the course content quarterly to reflect the latest trends and best practices."
            }
        ],
        image: "/assets/course-02.svg",
        tag: "Popular"
    },
    3: {
        id: 3,
        title: "Data Science with Python",
        category: "Data Science",
        difficulty: "Intermediate",
        duration: "50 hours",
        price: 99.99,
        shortDesc: "Learn data analysis, visualization, and machine learning using Python, pandas, numpy, and scikit-learn.",
        longDesc: "Dive into the world of data science with Python. This course covers data manipulation, statistical analysis, visualization, and machine learning. Perfect for professionals looking to transition into data science or enhance their analytical skills.",
        whatYouLearn: [
            "Python programming for data science",
            "Data manipulation with pandas",
            "Statistical analysis and hypothesis testing",
            "Data visualization with matplotlib and seaborn",
            "Machine learning algorithms",
            "Model evaluation and validation",
            "Working with real-world datasets",
            "Data cleaning and preprocessing"
        ],
        requirements: [
            "Basic Python programming knowledge",
            "High school level mathematics",
            "Familiarity with statistics concepts",
            "Python 3.7+ installed on your computer"
        ],
        curriculum: [
            "Python for Data Science Setup",
            "Data Manipulation with Pandas",
            "Exploratory Data Analysis",
            "Statistical Analysis Fundamentals",
            "Data Visualization Techniques",
            "Introduction to Machine Learning",
            "Supervised Learning Algorithms",
            "Model Evaluation and Deployment"
        ],
        instructorName: "Dr. Emily Watson",
        instructorBio: "Dr. Watson holds a PhD in Statistics and has 12 years of experience in data science at companies like Netflix and Airbnb. She's published numerous papers on machine learning and teaches at Stanford University.",
        faq: [
            {
                q: "Do I need advanced math skills?",
                a: "High school level math is sufficient. We explain statistical concepts as we go and focus on practical application rather than complex theory."
            },
            {
                q: "What datasets will we work with?",
                a: "We use real-world datasets from various industries including finance, healthcare, and e-commerce to give you practical experience."
            },
            {
                q: "Will this prepare me for a data science job?",
                a: "This course covers the fundamental skills needed for entry-level data science positions. We also provide guidance on building a portfolio."
            }
        ],
        image: "/assets/course-03.svg",
        tag: "New"
    },
    4: {
        id: 4,
        title: "Graphic Design Fundamentals",
        category: "Design",
        difficulty: "Beginner",
        duration: "30 hours",
        price: 69.99,
        shortDesc: "Master design principles, color theory, typography, and industry-standard tools like Adobe Creative Suite.",
        longDesc: "Learn the fundamentals of graphic design from color theory to typography. This hands-on course teaches you to create professional designs using Adobe Photoshop, Illustrator, and InDesign while developing your creative eye and design thinking skills.",
        whatYouLearn: [
            "Design principles and composition",
            "Color theory and psychology",
            "Typography and font selection",
            "Adobe Photoshop techniques",
            "Vector graphics with Illustrator",
            "Layout design with InDesign",
            "Brand identity development",
            "Print and digital design considerations"
        ],
        requirements: [
            "No design experience required",
            "Access to Adobe Creative Suite (trial available)",
            "Computer with sufficient RAM for design software",
            "Interest in visual arts and creativity"
        ],
        curriculum: [
            "Design Principles and Theory",
            "Color Theory in Practice",
            "Typography Fundamentals",
            "Adobe Photoshop Essentials",
            "Vector Design with Illustrator",
            "Layout Design with InDesign",
            "Brand Identity Projects",
            "Portfolio Development"
        ],
        instructorName: "Alex Thompson",
        instructorBio: "Alex is a creative director with 15 years of experience working with brands like Nike, Apple, and Coca-Cola. He's won multiple design awards and has taught design at Art Center College of Design.",
        faq: [
            {
                q: "Do I need to buy expensive software?",
                a: "Adobe offers free trials, and we'll show you some free alternatives. However, learning industry-standard tools is recommended for career development."
            },
            {
                q: "Will I learn both print and digital design?",
                a: "Yes, we cover both print and digital design principles, including considerations for different media and platforms."
            },
            {
                q: "Can I build a portfolio with this course?",
                a: "Absolutely! The course includes several projects that you can use to build a professional design portfolio."
            }
        ],
        image: "/assets/course-04.svg",
        tag: "Creative"
    },
    5: {
        id: 5,
        title: "Project Management Professional",
        category: "Business",
        difficulty: "Intermediate",
        duration: "35 hours",
        price: 89.99,
        shortDesc: "Learn project management methodologies, tools, and leadership skills to successfully manage projects and teams.",
        longDesc: "Develop essential project management skills using both traditional and agile methodologies. This course covers project planning, risk management, team leadership, and the tools needed to deliver successful projects on time and within budget.",
        whatYouLearn: [
            "Project management fundamentals",
            "Agile and Scrum methodologies",
            "Project planning and scheduling",
            "Risk management strategies",
            "Team leadership and communication",
            "Budget management and cost control",
            "Quality assurance processes",
            "Project management software tools"
        ],
        requirements: [
            "Some work experience preferred",
            "Basic understanding of business processes",
            "Interest in leadership and organization",
            "Access to project management tools (free options provided)"
        ],
        curriculum: [
            "Project Management Fundamentals",
            "Project Planning and Initiation",
            "Agile and Scrum Methodologies",
            "Risk Management and Mitigation",
            "Team Leadership and Communication",
            "Budget and Resource Management",
            "Quality Control and Assurance",
            "Project Closure and Evaluation"
        ],
        instructorName: "Jennifer Park",
        instructorBio: "Jennifer is a PMP-certified project manager with 14 years of experience managing large-scale projects at Microsoft and Amazon. She's successfully delivered projects worth over $100 million and specializes in agile transformation.",
        faq: [
            {
                q: "Will this help me get PMP certified?",
                a: "This course covers many PMP concepts and can help prepare you, but it's not specifically a PMP exam prep course. We focus on practical skills."
            },
            {
                q: "Do I need management experience?",
                a: "While helpful, it's not required. We start with fundamentals and build up to advanced concepts. The skills are applicable to any role."
            },
            {
                q: "What tools will I learn?",
                a: "We cover popular tools like Trello, Asana, Microsoft Project, and Jira, focusing on both free and enterprise solutions."
            }
        ],
        image: "/assets/course-05.svg",
        tag: "Professional"
    },
    6: {
        id: 6,
        title: "Mobile App Development with React Native",
        category: "Mobile Development",
        difficulty: "Advanced",
        duration: "45 hours",
        price: 109.99,
        shortDesc: "Build cross-platform mobile apps for iOS and Android using React Native, JavaScript, and modern development practices.",
        longDesc: "Create professional mobile applications that work on both iOS and Android using React Native. This advanced course covers navigation, state management, API integration, and deployment to app stores. Perfect for developers with JavaScript experience.",
        whatYouLearn: [
            "React Native fundamentals",
            "Cross-platform mobile development",
            "Navigation and routing",
            "State management with Redux",
            "API integration and networking",
            "Native device features access",
            "App store deployment process",
            "Performance optimization techniques"
        ],
        requirements: [
            "Strong JavaScript knowledge required",
            "Familiarity with React is helpful",
            "Development environment setup (guided)",
            "iOS/Android device or emulator for testing"
        ],
        curriculum: [
            "React Native Setup and Fundamentals",
            "Components and Styling",
            "Navigation and Screen Management",
            "State Management with Redux",
            "API Integration and Data Handling",
            "Native Features and Permissions",
            "Testing and Debugging",
            "App Store Deployment"
        ],
        instructorName: "David Kim",
        instructorBio: "David is a mobile development expert with 9 years of experience building apps for startups and Fortune 500 companies. His apps have been downloaded over 10 million times, and he's a React Native core contributor.",
        faq: [
            {
                q: "Do I need Mac for iOS development?",
                a: "For iOS deployment, yes, but you can develop and test on Android throughout most of the course. We'll discuss iOS-specific requirements."
            },
            {
                q: "How is this different from native development?",
                a: "React Native allows you to write once and deploy to both platforms, saving significant development time while maintaining near-native performance."
            },
            {
                q: "Will my apps work on both platforms?",
                a: "Yes! React Native's main advantage is cross-platform compatibility. We'll cover platform-specific considerations when necessary."
            }
        ],
        image: "/assets/course-06.svg",
        tag: "Advanced"
    }
};

// Global State
let currentCourse = null;
let filteredCourses = Object.values(COURSES_DATA);

// Utility Functions
function formatPrice(price) {
    return `$${price.toFixed(2)}`;
}

function getUrlParams() {
    const params = new URLSearchParams(window.location.search);
    return Object.fromEntries(params);
}

function saveToLocalStorage(key, data) {
    try {
        localStorage.setItem(key, JSON.stringify(data));
    } catch (error) {
        console.error('Error saving to localStorage:', error);
    }
}

function getFromLocalStorage(key) {
    try {
        const data = localStorage.getItem(key);
        return data ? JSON.parse(data) : null;
    } catch (error) {
        console.error('Error reading from localStorage:', error);
        return null;
    }
}

// Course Rendering Functions
function renderCourseCard(course) {
    return `
        <div class="course-card">
            <img src="${course.image}" alt="${course.title}" class="course-image">
            <div class="course-content">
                <span class="course-tag">${course.tag}</span>
                <h3 class="course-title">${course.title}</h3>
                <p class="course-desc">${course.shortDesc}</p>
                <div class="course-meta">
                    <span>${course.difficulty}</span>
                    <span>${course.duration}</span>
                    <span>${course.category}</span>
                </div>
                <div class="course-price">${formatPrice(course.price)}</div>
                <div class="course-actions">
                    <a href="/course/?id=${course.id}" class="btn btn-secondary">Learn More</a>
                    <a href="/checkout-step1/?course=${course.id}" class="btn btn-primary">Enroll Now</a>
                </div>
            </div>
        </div>
    `;
}

function renderFeaturedCourses() {
    const container = document.getElementById('featured-courses');
    if (!container) return;

    const featuredCourses = Object.values(COURSES_DATA);
    container.innerHTML = featuredCourses.map(course => renderCourseCard(course)).join('');
}

function renderAllCourses() {
    const container = document.getElementById('courses-grid');
    const countContainer = document.getElementById('results-count');
    
    if (!container) return;

    container.innerHTML = filteredCourses.map(course => renderCourseCard(course)).join('');
    
    if (countContainer) {
        const count = filteredCourses.length;
        countContainer.textContent = `Showing ${count} course${count !== 1 ? 's' : ''}`;
    }
}

function renderCourseDetail() {
    const params = getUrlParams();
    const courseId = parseInt(params.id);
    const course = COURSES_DATA[courseId];
    
    const detailContainer = document.getElementById('course-detail');
    const notFoundContainer = document.getElementById('course-not-found');
    const pageTitle = document.getElementById('page-title');
    
    if (!course) {
        if (detailContainer) detailContainer.style.display = 'none';
        if (notFoundContainer) notFoundContainer.style.display = 'block';
        if (pageTitle) pageTitle.textContent = 'Course Not Found - Course Guide Pro';
        return;
    }
    
    if (pageTitle) {
        pageTitle.textContent = `${course.title} - Course Guide Pro`;
    }
    
    if (detailContainer) {
        detailContainer.innerHTML = `
            <div class="container">
                <div class="course-header">
                    <div class="course-info">
                        <h1>${course.title}</h1>
                        <p>${course.longDesc}</p>
                        <div class="course-meta">
                            <span><strong>Category:</strong> ${course.category}</span>
                            <span><strong>Difficulty:</strong> ${course.difficulty}</span>
                            <span><strong>Duration:</strong> ${course.duration}</span>
                        </div>
                    </div>
                    <div class="course-sidebar">
                        <img src="${course.image}" alt="${course.title}">
                        <div class="course-price">${formatPrice(course.price)}</div>
                        <a href="/checkout-step1/?course=${course.id}" class="btn btn-primary">Enroll Now</a>
                        <a href="/courses/" class="btn btn-secondary">Back to Courses</a>
                    </div>
                </div>
                
                <div class="course-details">
                    <div class="course-main">
                        <h2>What You'll Learn</h2>
                        <ul>
                            ${course.whatYouLearn.map(item => `<li>${item}</li>`).join('')}
                        </ul>
                        
                        <h2>Requirements</h2>
                        <ul>
                            ${course.requirements.map(item => `<li>${item}</li>`).join('')}
                        </ul>
                        
                        <h2>Course Curriculum</h2>
                        <ul class="curriculum-list">
                            ${course.curriculum.map((item, index) => `
                                <li class="curriculum-item">
                                    <strong>Lesson ${index + 1}:</strong> ${item}
                                </li>
                            `).join('')}
                        </ul>
                        
                        <div class="instructor-info">
                            <h2>Meet Your Instructor</h2>
                            <h3>${course.instructorName}</h3>
                            <p>${course.instructorBio}</p>
                        </div>
                        
                        <h2>Frequently Asked Questions</h2>
                        <div class="faq-list">
                            ${course.faq.map(item => `
                                <div class="faq-item">
                                    <button class="faq-question">
                                        <span>${item.q}</span>
                                        <svg class="faq-icon" width="16" height="16" viewBox="0 0 16 16">
                                            <path d="M8 1L15 8L8 15L1 8L8 1Z" fill="currentColor"/>
                                        </svg>
                                    </button>
                                    <div class="faq-answer">
                                        <p>${item.a}</p>
                                    </div>
                                </div>
                            `).join('')}
                        </div>
                    </div>
                </div>
            </div>
        `;
        
        // Add FAQ functionality
        setupFAQs();
    }
    
    currentCourse = course;
}

// Checkout Functions
function renderCheckoutSummary(containerId) {
    const container = document.getElementById(containerId);
    if (!container) return;
    
    const params = getUrlParams();
    const courseId = parseInt(params.course);
    const course = COURSES_DATA[courseId];
    
    if (!course) {
        container.innerHTML = '<p>Course not found. Please select a course to continue.</p>';
        return;
    }
    
    container.innerHTML = `
        <h3>Order Summary</h3>
        <div class="course-summary">
            <img src="${course.image}" alt="${course.title}" style="width: 100%; height: 150px; object-fit: cover; border-radius: 8px; margin-bottom: 1rem;">
            <h4>${course.title}</h4>
            <p class="course-meta">
                ${course.difficulty} • ${course.duration}
            </p>
            <div class="price-breakdown">
                <div style="display: flex; justify-content: space-between; margin: 1rem 0;">
                    <span>Course Price:</span>
                    <span>${formatPrice(course.price)}</span>
                </div>
                <div style="display: flex; justify-content: space-between; font-weight: bold; font-size: 1.25rem; border-top: 1px solid var(--border-color); padding-top: 1rem;">
                    <span>Total:</span>
                    <span>${formatPrice(course.price)}</span>
                </div>
            </div>
        </div>
    `;
}

function validateCheckoutStep1(formData) {
    const errors = {};
    
    if (!formData.firstName.trim()) errors.firstName = 'First name is required';
    if (!formData.lastName.trim()) errors.lastName = 'Last name is required';
    if (!formData.email.trim()) errors.email = 'Email is required';
    else if (!/\S+@\S+\.\S+/.test(formData.email)) errors.email = 'Please enter a valid email';
    if (!formData.phone.trim()) errors.phone = 'Phone number is required';
    if (!formData.country) errors.country = 'Country is required';
    if (!formData.address.trim()) errors.address = 'Address is required';
    if (!formData.city.trim()) errors.city = 'City is required';
    if (!formData.zipCode.trim()) errors.zipCode = 'ZIP/Postal code is required';
    
    return errors;
}

function validateCheckoutStep2(formData) {
    const errors = {};
    
    if (!formData.cardholderName.trim()) errors.cardholderName = 'Cardholder name is required';
    if (!formData.cardNumber.trim()) errors.cardNumber = 'Card number is required';
    else if (formData.cardNumber.replace(/\s/g, '').length < 13) errors.cardNumber = 'Please enter a valid card number';
    if (!formData.expiryDate.trim()) errors.expiryDate = 'Expiry date is required';
    else if (!/^\d{2}\/\d{2}$/.test(formData.expiryDate)) errors.expiryDate = 'Please enter date in MM/YY format';
    if (!formData.cvc.trim()) errors.cvc = 'CVC is required';
    else if (formData.cvc.length < 3) errors.cvc = 'Please enter a valid CVC';
    if (!formData.agreeTerms) errors.agreeTerms = 'You must agree to the terms';
    
    return errors;
}

function displayFormErrors(errors) {
    // Clear previous errors
    document.querySelectorAll('.error-message').forEach(el => el.textContent = '');
    
    // Display new errors
    Object.keys(errors).forEach(field => {
        const errorEl = document.getElementById(`${field}-error`);
        if (errorEl) {
            errorEl.textContent = errors[field];
        }
    });
}

function setupCheckoutStep1() {
    const form = document.getElementById('checkout-form-step1');
    if (!form) return;
    
    // Render checkout summary
    renderCheckoutSummary('checkout-summary');
    
    // Load saved data
    const savedData = getFromLocalStorage('checkoutData');
    if (savedData) {
        Object.keys(savedData).forEach(key => {
            const field = form.elements[key];
            if (field) field.value = savedData[key] || '';
        });
    }
    
    form.addEventListener('submit', function(e) {
        e.preventDefault();
        
        const formData = new FormData(form);
        const data = Object.fromEntries(formData);
        
        const errors = validateCheckoutStep1(data);
        
        if (Object.keys(errors).length > 0) {
            displayFormErrors(errors);
            return;
        }
        
        // Save data and proceed
        const params = getUrlParams();
        data.courseId = params.course;
        saveToLocalStorage('checkoutData', data);
        
        window.location.href = `/checkout-step2/?course=${params.course}`;
    });
}

function setupCheckoutStep2() {
    const form = document.getElementById('checkout-form-step2');
    if (!form) return;
    
    // Render checkout summary
    renderCheckoutSummary('checkout-summary-step2');
    
    // Check if step 1 data exists
    const checkoutData = getFromLocalStorage('checkoutData');
    if (!checkoutData) {
        const params = getUrlParams();
        window.location.href = `/checkout-step1/?course=${params.course}`;
        return;
    }
    
    // Card number formatting
    const cardNumberInput = document.getElementById('cardNumber');
    if (cardNumberInput) {
        cardNumberInput.addEventListener('input', function(e) {
            let value = e.target.value.replace(/\s/g, '');
            let formattedValue = value.replace(/(.{4})/g, '$1 ').trim();
            if (formattedValue.length > 19) formattedValue = formattedValue.substr(0, 19);
            e.target.value = formattedValue;
        });
    }
    
    // Expiry date formatting
    const expiryInput = document.getElementById('expiryDate');
    if (expiryInput) {
        expiryInput.addEventListener('input', function(e) {
            let value = e.target.value.replace(/\D/g, '');
            if (value.length >= 2) {
                value = value.substr(0, 2) + '/' + value.substr(2, 2);
            }
            e.target.value = value;
        });
    }
    
    // CVC formatting
    const cvcInput = document.getElementById('cvc');
    if (cvcInput) {
        cvcInput.addEventListener('input', function(e) {
            e.target.value = e.target.value.replace(/\D/g, '').substr(0, 4);
        });
    }
    
    form.addEventListener('submit', function(e) {
        e.preventDefault();
        
        const formData = new FormData(form);
        const data = Object.fromEntries(formData);
        data.agreeTerms = formData.has('agreeTerms');
        
        const errors = validateCheckoutStep2(data);
        
        if (Object.keys(errors).length > 0) {
            displayFormErrors(errors);
            return;
        }
        
        // Simulate payment processing
        const completeData = { ...checkoutData, ...data };
        completeData.orderDate = new Date().toISOString();
        completeData.orderId = 'ORD-' + Date.now();
        
        saveToLocalStorage('orderData', completeData);
        
        window.location.href = '/order-success/';
    });
}

function renderOrderSuccess() {
    const successContainer = document.getElementById('success-content');
    const noOrderContainer = document.getElementById('no-order');
    
    const orderData = getFromLocalStorage('orderData');
    
    if (!orderData || !orderData.courseId) {
        if (successContainer) successContainer.style.display = 'none';
        if (noOrderContainer) noOrderContainer.style.display = 'block';
        return;
    }
    
    const course = COURSES_DATA[parseInt(orderData.courseId)];
    if (!course) {
        if (successContainer) successContainer.style.display = 'none';
        if (noOrderContainer) noOrderContainer.style.display = 'block';
        return;
    }
    
    if (successContainer) {
        successContainer.innerHTML = `
            <div class="success-icon">
                <svg width="64" height="64" viewBox="0 0 64 64" fill="none">
                    <circle cx="32" cy="32" r="30" fill="#10B981"/>
                    <path d="M20 32L28 40L44 24" stroke="white" stroke-width="4"/>
                </svg>
            </div>
            <h1>Order Confirmed!</h1>
            <p>Thank you for enrolling in our course. Your order has been successfully processed.</p>
            
            <div class="order-summary">
                <h3>Order Details</h3>
                <p><strong>Order ID:</strong> ${orderData.orderId}</p>
                <p><strong>Course:</strong> ${course.title}</p>
                <p><strong>Price:</strong> ${formatPrice(course.price)}</p>
                <p><strong>Student:</strong> ${orderData.firstName} ${orderData.lastName}</p>
                <p><strong>Email:</strong> ${orderData.email}</p>
                <p><strong>Order Date:</strong> ${new Date(orderData.orderDate).toLocaleDateString()}</p>
            </div>
            
            <div class="success-actions">
                <a href="/courses/" class="btn btn-primary">Browse More Courses</a>
                <a href="/contact/" class="btn btn-secondary">Contact Support</a>
            </div>
            
            <p style="margin-top: 2rem; color: var(--text-secondary); font-size: 0.875rem;">
                <strong>Note:</strong> This was a demonstration checkout. No actual payment was processed.
            </p>
        `;
    }
    
    // Clear order data after displaying
    localStorage.removeItem('orderData');
    localStorage.removeItem('checkoutData');
}

// Search and Filter Functions
function setupCourseFilters() {
    const searchInput = document.getElementById('search-input');
    const categoryFilter = document.getElementById('category-filter');
    const sortSelect = document.getElementById('sort-select');
    
    // Populate category filter
    if (categoryFilter) {
        const categories = [...new Set(Object.values(COURSES_DATA).map(course => course.category))];
        categories.forEach(category => {
            const option = document.createElement('option');
            option.value = category;
            option.textContent = category;
            categoryFilter.appendChild(option);
        });
    }
    
    // Search functionality
    if (searchInput) {
        searchInput.addEventListener('input', filterAndSortCourses);
    }
    
    // Filter functionality
    if (categoryFilter) {
        categoryFilter.addEventListener('change', filterAndSortCourses);
    }
    
    // Sort functionality
    if (sortSelect) {
        sortSelect.addEventListener('change', filterAndSortCourses);
    }
    
    // Initial render
    filterAndSortCourses();
}

function filterAndSortCourses() {
    const searchTerm = document.getElementById('search-input')?.value.toLowerCase() || '';
    const selectedCategory = document.getElementById('category-filter')?.value || '';
    const sortBy = document.getElementById('sort-select')?.value || 'title';
    
    // Filter courses
    filteredCourses = Object.values(COURSES_DATA).filter(course => {
        const matchesSearch = course.title.toLowerCase().includes(searchTerm) || 
                             course.shortDesc.toLowerCase().includes(searchTerm) ||
                             course.category.toLowerCase().includes(searchTerm);
        const matchesCategory = !selectedCategory || course.category === selectedCategory;
        
        return matchesSearch && matchesCategory;
    });
    
    // Sort courses
    filteredCourses.sort((a, b) => {
        switch (sortBy) {
            case 'price-low':
                return a.price - b.price;
            case 'price-high':
                return b.price - a.price;
            case 'difficulty':
                const difficultyOrder = { 'Beginner': 1, 'Intermediate': 2, 'Advanced': 3 };
                return difficultyOrder[a.difficulty] - difficultyOrder[b.difficulty];
            default:
                return a.title.localeCompare(b.title);
        }
    });
    
    renderAllCourses();
}

// Contact Form
function setupContactForm() {
    const form = document.getElementById('contact-form');
    const successDiv = document.getElementById('contact-success');
    
    if (!form) return;
    
    form.addEventListener('submit', function(e) {
        e.preventDefault();
        
        // Simulate form submission
        setTimeout(() => {
            form.style.display = 'none';
            if (successDiv) {
                successDiv.classList.add('show');
                successDiv.style.display = 'block';
            }
        }, 500);
    });
}

// FAQ Functionality
function setupFAQs() {
    const faqItems = document.querySelectorAll('.faq-item');
    
    faqItems.forEach(item => {
        const question = item.querySelector('.faq-question');
        const answer = item.querySelector('.faq-answer');
        
        if (question && answer) {
            question.addEventListener('click', () => {
                const isActive = item.classList.contains('active');
                
                // Close all other FAQs
                faqItems.forEach(otherItem => {
                    otherItem.classList.remove('active');
                    const otherAnswer = otherItem.querySelector('.faq-answer');
                    if (otherAnswer) otherAnswer.style.display = 'none';
                });
                
                // Toggle current FAQ
                if (!isActive) {
                    item.classList.add('active');
                    answer.style.display = 'block';
                }
            });
        }
    });
}

// Mobile Navigation
function setupMobileNav() {
    const navToggle = document.querySelector('.nav-toggle');
    const navMenu = document.querySelector('.nav-menu');
    
    if (navToggle && navMenu) {
        navToggle.addEventListener('click', () => {
            navMenu.classList.toggle('active');
        });
        
        // Close menu when clicking outside
        document.addEventListener('click', (e) => {
            if (!navToggle.contains(e.target) && !navMenu.contains(e.target)) {
                navMenu.classList.remove('active');
            }
        });
    }
}

// Page-specific initialization
function initPage() {
    const path = window.location.pathname;
    
    // Common setup for all pages
    setupMobileNav();
    setupFAQs();
    
    // Page-specific setup
    if (path === '/' || path === '/index/') {
        renderFeaturedCourses();
    } else if (path === '/courses/') {
        setupCourseFilters();
    } else if (path === '/course/') {
        renderCourseDetail();
    } else if (path === '/checkout-step1/') {
        setupCheckoutStep1();
    } else if (path === '/checkout-step2/') {
        setupCheckoutStep2();
    } else if (path === '/order-success/') {
        renderOrderSuccess();
    } else if (path === '/contact/') {
        setupContactForm();
    }
}

// Initialize when DOM is loaded
document.addEventListener('DOMContentLoaded', initPage);

// Handle browser back/forward buttons
window.addEventListener('popstate', initPage);