/* ==========================================================================
   Utilities - Components (Global Foundations)
   ========================================================================== */

/* Typography */
.mp-fs-1 { font-size: var(--mp-text-5xl); }
.mp-fs-2 { font-size: var(--mp-text-4xl); }
.mp-fs-3 { font-size: var(--mp-text-3xl); }
.mp-fs-4 { font-size: var(--mp-text-2xl); }
.mp-fs-5 { font-size: var(--mp-text-xl); }
.mp-fs-6 { font-size: var(--mp-text-lg); }
.mp-fs-7 { font-size: var(--mp-text-md); }
.mp-fs-8 { font-size: var(--mp-text-base); }
.mp-fs-9 { font-size: var(--mp-text-sm); }
.mp-fs-10 { font-size: var(--mp-text-xs); }

.mp-fw-regular { font-weight: var(--mp-fw-regular); }
.mp-fw-medium { font-weight: var(--mp-fw-medium); }
.mp-fw-semibold { font-weight: var(--mp-fw-semibold); }
.mp-fw-bold { font-weight: var(--mp-fw-bold); }
.mp-fw-extrabold { font-weight: var(--mp-fw-extrabold); }

.mp-line-height-tight { line-height: var(--mp-line-height-tight); }
.mp-line-height-base { line-height: var(--mp-line-height-base); }
.mp-line-height-loose { line-height: var(--mp-line-height-loose); }

.mp-text-center { text-align: center; }
.mp-text-left { text-align: left; }
.mp-text-right { text-align: right; }

/* Colors */
.mp-color-primary { color: var(--mp-primary-500); }
.mp-color-primary-dark { color: var(--mp-primary-600); }
.mp-color-accent { color: var(--mp-accent-300); }
.mp-color-dark { color: var(--mp-text-dark); }
.mp-color-muted { color: var(--mp-text-light); }
.mp-color-white { color: var(--mp-surface-light); }
.mp-color-success { color: var(--mp-success-500); }
.mp-color-warning { color: var(--mp-warning-500); }
.mp-color-danger { color: var(--mp-danger-500); }

/* Backgrounds */
.mp-bg-primary { background-color: var(--mp-primary-500); }
.mp-bg-primary-light { background-color: var(--mp-primary-50); }
.mp-bg-accent { background-color: var(--mp-accent-300); }
.mp-bg-dark { background-color: var(--mp-bg-dark); }
.mp-bg-surface { background-color: var(--mp-surface-light); }
.mp-bg-bg { background-color: var(--mp-bg-light); }

/* Buttons */
.mp-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--mp-spacing-2);
    padding: var(--mp-spacing-3) var(--mp-spacing-6);
    border-radius: var(--mp-radius-md);
    font-weight: var(--mp-fw-bold);
    font-size: var(--mp-text-base);
    text-decoration: none;
    border: none;
    cursor: pointer;
    transition: all var(--mp-transition-normal);
    font-family: inherit;
    line-height: 1.2;
}
.mp-btn:disabled, .mp-btn.is-disabled {
    opacity: 0.5;
    pointer-events: none;
}

.mp-btn--primary {
    background: var(--mp-gradient-primary);
    color: var(--mp-surface-light);
    box-shadow: var(--mp-shadow-primary);
}
.mp-btn--primary:hover {
    transform: translateY(-2px);
    box-shadow: var(--mp-shadow-lg), var(--mp-shadow-primary);
    color: var(--mp-surface-light);
}

.mp-btn--secondary {
    background: var(--mp-primary-50);
    color: var(--mp-primary-600);
}
.mp-btn--secondary:hover {
    background: var(--mp-primary-100);
    color: var(--mp-primary-700);
}

.mp-btn--outline {
    background: transparent;
    color: var(--mp-text-dark);
    border: 2px solid var(--mp-border);
}
.mp-btn--outline:hover {
    border-color: var(--mp-primary-500);
    color: var(--mp-primary-500);
    background: var(--mp-primary-50);
}

.mp-btn--danger {
    background: var(--mp-danger-50);
    color: var(--mp-danger-600);
}
.mp-btn--danger:hover {
    background: var(--mp-danger-500);
    color: var(--mp-surface-light);
}

.mp-btn--sm {
    padding: var(--mp-spacing-2) var(--mp-spacing-4);
    font-size: var(--mp-text-sm);
    border-radius: var(--mp-radius-sm);
}
.mp-btn--lg {
    padding: var(--mp-spacing-4) var(--mp-spacing-8);
    font-size: var(--mp-text-md);
    border-radius: var(--mp-radius-lg);
}

/* Cards */
.mp-card {
    background: var(--mp-surface-light);
    border-radius: var(--mp-radius-xl);
    border: 1px solid var(--mp-border);
    transition: all var(--mp-transition-normal);
    overflow: hidden;
}

.mp-card--flat {
    box-shadow: var(--mp-shadow-none);
}

.mp-card--elevated {
    box-shadow: var(--mp-shadow-sm);
}

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

/* Badges */
.mp-badge {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 6px 12px;
    border-radius: var(--mp-radius-full);
    font-size: var(--mp-text-xs);
    font-weight: var(--mp-fw-bold);
    line-height: 1;
}
.mp-badge--sm { padding: 4px 8px; font-size: 11px; }

.mp-badge--primary {
    background: var(--mp-primary-50);
    color: var(--mp-primary-600);
}
.mp-badge--success {
    background: var(--mp-success-50);
    color: var(--mp-success-600);
}
.mp-badge--warning {
    background: var(--mp-warning-50);
    color: var(--mp-warning-600);
}
.mp-badge--danger {
    background: var(--mp-danger-50);
    color: var(--mp-danger-600);
}
.mp-badge--neutral {
    background: var(--mp-gray-100);
    color: var(--mp-text-light);
}

/* Forms Base */
.mp-input {
    width: 100%;
    padding: var(--mp-spacing-3) var(--mp-spacing-4);
    border: 1px solid var(--mp-border);
    border-radius: var(--mp-radius-md);
    font-family: var(--mp-font-family);
    font-size: var(--mp-text-base);
    color: var(--mp-text-dark);
    background: var(--mp-surface-light);
    transition: all var(--mp-transition-fast);
}
.mp-input:focus {
    outline: none;
    border-color: var(--mp-primary-500);
    box-shadow: var(--mp-shadow-focus);
}
.mp-input::placeholder {
    color: var(--mp-gray-400);
}

/* Helpers */
.mp-border-top { border-top: 1px solid var(--mp-border); }
.mp-border-bottom { border-bottom: 1px solid var(--mp-border); }
.mp-border-radius-full { border-radius: var(--mp-radius-full); }
.mp-opacity-80 { opacity: 0.8; }
.mp-opacity-90 { opacity: 0.9; }

/* Semantic Soft Backgrounds (Backward compat for homepage) */
.mp-bg-primary-soft { background-color: var(--mp-primary-50); }
.mp-bg-success-soft { background-color: var(--mp-success-50); }
.mp-bg-warning-soft { background-color: var(--mp-warning-50); }
.mp-bg-danger-soft { background-color: var(--mp-danger-50); }

/* Animation & Hover Helpers */
.mp-hover-elevate {
    transition: transform var(--mp-transition-normal), box-shadow var(--mp-transition-normal);
}
.mp-hover-elevate:hover {
    transform: translateY(-4px);
    box-shadow: var(--mp-shadow-lg);
}

/* Typography Helpers */
.mp-max-w-prose { max-width: 65ch; }
.mp-mx-auto { margin-left: auto; margin-right: auto; }
.mp-text-uppercase { text-transform: uppercase; }
.mp-letter-spacing-wide { letter-spacing: 0.05em; }
.mp-text-none { text-decoration: none; }
.mp-list-unstyled { list-style: none; }

/* Custom Scrollbar for specific sections */
.mp-scrollbar::-webkit-scrollbar {
    width: 6px;
    height: 6px;
}
.mp-scrollbar::-webkit-scrollbar-track {
    background: transparent; 
}
.mp-scrollbar::-webkit-scrollbar-thumb {
    background: var(--mp-gray-300); 
    border-radius: var(--mp-radius-full);
}
.mp-scrollbar::-webkit-scrollbar-thumb:hover {
    background: var(--mp-gray-400); 
}

/* ==========================================================================
   Instructor Card Component (Global & Dynamic Pages)
   ========================================================================== */
.mp-instructor-card {
    background: var(--mp-surface-light, #ffffff) !important;
    border-radius: var(--mp-radius-2xl, 20px) !important;
    border: 1px solid var(--mp-gray-200, #e2e8f0) !important;
    padding: var(--mp-spacing-6, 24px) !important;
    text-align: center !important;
    position: relative !important;
    overflow: hidden !important;
    transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.35s cubic-bezier(0.4, 0, 0.2, 1), border-color 0.35s ease !important;
    box-shadow: 0 10px 30px -10px rgba(0, 0, 0, 0.05) !important;
    display: flex !important;
    flex-direction: column !important;
    height: 100% !important;
}

.mp-instructor-card::before {
    content: '' !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    height: 4px !important;
    background: linear-gradient(90deg, var(--mp-primary-500, #0092a6) 0%, var(--mp-primary-600, #016070) 100%) !important;
    opacity: 0.8 !important;
    transition: opacity 0.3s ease !important;
}

.mp-instructor-card:hover {
    transform: translateY(-6px) !important;
    box-shadow: 0 20px 40px -10px rgba(0, 146, 166, 0.15), 0 10px 20px -5px rgba(0, 0, 0, 0.04) !important;
    border-color: var(--mp-primary-300, #93c5fd) !important;
}

.mp-instructor-card:hover::before {
    opacity: 1 !important;
}

.mp-instructor-card__avatar-wrap {
    position: relative !important;
    margin-block-end: var(--mp-spacing-4, 16px) !important;
    margin-inline: auto !important;
    display: inline-block !important;
}

.mp-instructor-card__avatar {
    width: 96px !important;
    height: 96px !important;
    max-width: 96px !important;
    max-height: 96px !important;
    border-radius: 50% !important;
    object-fit: cover !important;
    margin: 0 auto !important;
    display: block !important;
    border: 4px solid var(--mp-surface-light, #ffffff) !important;
    box-shadow: 0 8px 20px rgba(0, 146, 166, 0.12) !important;
    background: var(--mp-gray-100, #f1f5f9) !important;
    transition: transform 0.35s cubic-bezier(0.34, 1.56, 0.64, 1) !important;
}

.mp-instructor-card:hover .mp-instructor-card__avatar {
    transform: scale(1.06) rotate(2deg) !important;
}

.mp-instructor-card__body {
    display: flex !important;
    flex-direction: column !important;
    flex: 1 !important;
}

.mp-instructor-card__name {
    font-size: var(--mp-text-lg, 1.125rem) !important;
    font-weight: var(--mp-fw-extrabold, 800) !important;
    color: var(--mp-gray-900, #0f172a) !important;
    margin-block-end: var(--mp-spacing-1, 4px) !important;
    line-height: var(--mp-line-height-tight, 1.25) !important;
}

.mp-instructor-card__name a {
    color: inherit !important;
    text-decoration: none !important;
    transition: color 0.2s ease !important;
}

.mp-instructor-card__name a:hover {
    color: var(--mp-primary-600, #016070) !important;
}

.mp-instructor-card__bio {
    font-size: var(--mp-text-xs, 0.8125rem) !important;
    color: var(--mp-gray-500, #64748b) !important;
    margin-block-end: var(--mp-spacing-4, 16px) !important;
    line-height: var(--mp-line-height-normal, 1.5) !important;
    min-height: 38px !important;
}

.mp-instructor-card__stats {
    display: flex !important;
    justify-content: space-around !important;
    background: var(--mp-gray-50, #f8fafc) !important;
    border-radius: var(--mp-radius-lg, 12px) !important;
    border: 1px solid var(--mp-gray-100, #f1f5f9) !important;
    padding: var(--mp-spacing-3, 10px) var(--mp-spacing-2, 8px) !important;
    margin-block-end: var(--mp-spacing-4, 16px) !important;
    margin-top: auto !important;
}

.mp-instructor-card__stat-val {
    display: block !important;
    font-size: var(--mp-text-sm, 0.875rem) !important;
    font-weight: var(--mp-fw-extrabold, 800) !important;
    color: var(--mp-gray-800, #1e293b) !important;
}

.mp-instructor-card__stat-lbl {
    display: block !important;
    font-size: var(--mp-text-xs, 0.75rem) !important;
    color: var(--mp-gray-500, #64748b) !important;
}

