/* NeuroGen Landing Page Styles
 * Proper Bootstrap 5 theme support with CSS variables
 * ================================================================= */

/* Universal Theme Transition Support */
:root {
    --theme-transition-duration: 300ms;
    --theme-transition-easing: cubic-bezier(0.4, 0, 0.2, 1);
}

/* Enhanced smooth transitions for all theme-aware elements */
*, *::before, *::after {
    transition:
        background-color var(--theme-transition-duration) var(--theme-transition-easing),
        border-color var(--theme-transition-duration) var(--theme-transition-easing),
        color var(--theme-transition-duration) var(--theme-transition-easing),
        box-shadow var(--theme-transition-duration) var(--theme-transition-easing) !important;
}

/* Specific transitions for key components */
.card, .navbar, .btn, .form-control, .modal-content, .dropdown-menu,
.alert, .badge, .breadcrumb, .list-group-item, .nav-link, .table {
    transition:
        background-color var(--theme-transition-duration) var(--theme-transition-easing),
        border-color var(--theme-transition-duration) var(--theme-transition-easing),
        color var(--theme-transition-duration) var(--theme-transition-easing),
        box-shadow var(--theme-transition-duration) var(--theme-transition-easing) !important;
}

/* Theme toggle button enhanced styling */
#themeToggle, #darkModeToggle, #theme-toggle {
    transition: all var(--theme-transition-duration) var(--theme-transition-easing) !important;
    position: relative;
    overflow: hidden;
}

#themeToggle:hover, #darkModeToggle:hover, #theme-toggle:hover {
    transform: scale(1.05);
}

#themeToggle i, #darkModeToggle i, #theme-toggle i {
    transition: transform var(--theme-transition-duration) var(--theme-transition-easing);
}

#themeToggle:active i, #darkModeToggle:active i, #theme-toggle:active i {
    transform: rotate(360deg);
}

/* Base Typography and Theme Foundation */
body {
    font-family: var(--font-family, 'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif);
    background-color: var(--bs-body-bg, #ffffff);
    color: var(--bs-body-color, #212529);
    transition: background-color 0.3s ease, color 0.3s ease;
}

/* Dark Mode Support - Bootstrap and Legacy */
[data-bs-theme="dark"],
[data-theme="dark"] {
    background-color: var(--dark-bg-primary, #121212) !important;
    color: var(--dark-text-primary, #f8f9fa) !important;
}

[data-bs-theme="dark"] body,
[data-theme="dark"] body {
    background-color: var(--dark-bg-primary, #121212) !important;
    color: var(--dark-text-primary, #f8f9fa) !important;
}

/* Header Styling with Theme Support */
header {
    background: linear-gradient(135deg, #0d6efd 0%, #0a58ca 100%);
    box-shadow: 0 2px 12px rgba(0,0,0,0.1);
}

[data-bs-theme="dark"] header,
[data-theme="dark"] header {
    background: linear-gradient(135deg, var(--dark-bg-secondary, #1c3156) 0%, rgba(28, 49, 86, 0.95) 100%) !important;
    box-shadow: 0 2px 12px rgba(0,0,0,0.4);
}

/* Hero Section with Proper Theme Variables */
.hero-section {
    padding: 4rem 0;
    background-color: var(--bs-tertiary-bg, #f8f9fa);
    background-image: linear-gradient(135deg, rgba(13,110,253,0.03) 0%, rgba(108,117,125,0.03) 100%);
    font-family: var(--font-family);
}

[data-bs-theme="dark"] .hero-section,
[data-theme="dark"] .hero-section {
    background-color: var(--dark-bg-primary, #121212) !important;
    background-image: linear-gradient(135deg, rgba(30,58,138,0.1) 0%, rgba(55,65,81,0.1) 100%);
}

/* Typography Enhancements */
.hero-section h1, .hero-section h2 {
    font-family: var(--font-family);
    font-weight: 700;
    letter-spacing: -0.02em;
}

.hero-section .lead {
    font-family: var(--font-family);
    font-weight: 400;
    font-size: 1.125rem;
    line-height: 1.6;
}

h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-family);
    font-weight: 600;
    letter-spacing: -0.02em;
}

.display-1, .display-2, .display-3, .display-4, .display-5, .display-6 {
    font-family: var(--font-family);
    font-weight: 700;
    letter-spacing: -0.03em;
}

.lead {
    font-family: var(--font-family);
    font-weight: 400;
    font-size: 1.125rem;
    line-height: 1.6;
}

.fw-bold {
    font-weight: 700 !important;
}

/* Card Components with Bootstrap Variables */
.card {
    background-color: var(--bs-card-bg, #ffffff);
    border-color: var(--bs-border-color, #dee2e6);
    color: var(--bs-card-color, inherit);
    font-family: var(--font-family);
}

[data-bs-theme="dark"] .card,
[data-theme="dark"] .card {
    background-color: var(--dark-bg-card, #2d3238) !important;
    border-color: var(--dark-border-color, #495057) !important;
    color: var(--dark-text-primary, #f8f9fa) !important;
}

/* Feature Cards with Enhanced Theming */
.feature-card {
    transition: all 0.3s ease;
    border: 1px solid var(--bs-border-color, #dee2e6);
    background-color: var(--bs-card-bg, #ffffff);
    color: var(--bs-card-color, inherit);
    border-radius: 12px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
    font-family: var(--font-family);
}

.feature-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 25px rgba(0,0,0,0.15);
    border-color: var(--bs-primary, #0d6efd);
}

[data-bs-theme="dark"] .feature-card,
[data-theme="dark"] .feature-card {
    background-color: var(--dark-bg-card, #2d3238) !important;
    border-color: var(--dark-border-color, #495057) !important;
    color: var(--dark-text-primary, #f8f9fa) !important;
}

[data-bs-theme="dark"] .feature-card:hover,
[data-theme="dark"] .feature-card:hover {
    box-shadow: 0 8px 25px rgba(0,0,0,0.3);
}

/* Stats Section with Theme Support */
.stats-section {
    padding: 3rem 0;
    border-radius: 20px;
    margin: 2rem 0;
    background: linear-gradient(135deg, var(--bs-secondary-bg, #f8f9fa) 0%, var(--bs-tertiary-bg, #e9ecef) 100%);
    color: var(--bs-body-color);
    font-family: var(--font-family);
}

[data-bs-theme="dark"] .stats-section,
[data-theme="dark"] .stats-section {
    background: linear-gradient(135deg, var(--dark-bg-card, #2d3238) 0%, #4a5568 100%) !important;
    color: var(--dark-text-primary, #f8f9fa) !important;
}

.stats-section h3 {
    font-family: var(--font-family);
    font-weight: 700;
    letter-spacing: -0.02em;
}

.stats-section p {
    font-family: var(--font-family);
    font-weight: 500;
}

/* Testimonial Cards with Theme Support */
.testimonial-card {
    border: 1px solid var(--bs-border-color, #dee2e6);
    background-color: var(--bs-card-bg, #ffffff);
    color: var(--bs-card-color, inherit);
    box-shadow: 0 4px 15px rgba(0,0,0,0.08);
    transition: all 0.3s ease;
    font-family: var(--font-family);
}

.testimonial-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 30px rgba(0,0,0,0.12);
}

[data-bs-theme="dark"] .testimonial-card,
[data-theme="dark"] .testimonial-card {
    background-color: var(--dark-bg-card, #2d3238) !important;
    border-color: var(--dark-border-color, #495057) !important;
    color: var(--dark-text-primary, #f8f9fa) !important;
}

[data-bs-theme="dark"] .testimonial-card:hover,
[data-theme="dark"] .testimonial-card:hover {
    box-shadow: 0 8px 30px rgba(0,0,0,0.3);
}

/* CTA Buttons with Professional Typography */
.btn-cta {
    background: linear-gradient(135deg, var(--bs-primary, #0d6efd) 0%, #0a58ca 100%);
    border: none;
    padding: 1rem 2rem;
    font-family: var(--font-family);
    font-weight: 600;
    font-size: 1.1rem;
    letter-spacing: 0.025em;
    border-radius: 50px;
    transition: all 0.3s ease;
    color: white;
}

.btn-cta:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 25px rgba(13,110,253,0.3);
    color: white;
}

/* Text Colors with Theme Support */
.text-muted {
    color: var(--bs-secondary-color, #6c757d) !important;
}

[data-bs-theme="dark"] .text-muted,
[data-theme="dark"] .text-muted {
    color: var(--dark-text-secondary, #adb5bd) !important;
}

.text-primary {
    color: var(--bs-primary, #0d6efd) !important;
}

.text-success {
    color: var(--bs-success, #198754) !important;
}

/* Countdown Timer with Theme Support */
.countdown-timer {
    background: linear-gradient(135deg, var(--bs-danger, #dc3545) 0%, #b02a37 100%);
    color: white;
    padding: 1rem;
    border-radius: 10px;
    font-family: var(--font-family);
    font-weight: 600;
    font-size: 1.1rem;
    text-align: center;
    margin: 1rem 0;
    letter-spacing: 0.025em;
}

/* Theme Toggle Button Styling */
#darkModeToggle {
    background-color: rgba(255,255,255,0.1);
    border: 1px solid rgba(255,255,255,0.2);
    color: white;
    border-radius: 50px;
    padding: 0.5rem 1rem;
    transition: all 0.3s ease;
    font-family: var(--font-family);
    font-weight: 500;
}

#darkModeToggle:hover {
    background-color: rgba(255,255,255,0.2);
    border-color: rgba(255,255,255,0.3);
    color: white;
    transform: scale(1.05);
}

/* Form Elements with Theme Support */
.form-control {
    background-color: var(--bs-form-control-bg, #ffffff);
    border-color: var(--bs-border-color, #ced4da);
    color: var(--bs-body-color, #212529);
    font-family: var(--font-family);
}

[data-bs-theme="dark"] .form-control,
[data-theme="dark"] .form-control {
    background-color: var(--dark-bg-input, #343a40) !important;
    border-color: var(--dark-border-color, #495057) !important;
    color: var(--dark-text-primary, #f8f9fa) !important;
}

/* Tab Navigation with Theme Support */
[data-bs-theme="dark"] .nav-tabs .nav-link,
[data-theme="dark"] .nav-tabs .nav-link {
    background-color: var(--dark-bg-card, #2d3238);
    border-color: var(--dark-border-color, #495057);
    color: var(--dark-text-primary, #f8f9fa);
    font-family: var(--font-family);
}

[data-bs-theme="dark"] .nav-tabs .nav-link.active,
[data-theme="dark"] .nav-tabs .nav-link.active {
    background-color: var(--dark-bg-primary, #121212);
    color: var(--dark-text-primary, #f8f9fa);
}

[data-bs-theme="dark"] .tab-content,
[data-theme="dark"] .tab-content {
    background-color: var(--dark-bg-primary, #121212);
    color: var(--dark-text-primary, #f8f9fa);
}

/* Button Styling Improvements */
.btn {
    font-family: var(--font-family);
    font-weight: 500;
    letter-spacing: 0.025em;
}

.btn-primary {
    font-weight: 600;
}

.btn-outline-primary {
    font-weight: 500;
}

/* General Content Styling */
ul, ol {
    font-family: var(--font-family);
}

p {
    font-family: var(--font-family);
    line-height: 1.6;
}

/* Container Transparency */
.container {
    background-color: transparent;
}

[data-bs-theme="dark"] .container,
[data-theme="dark"] .container {
    background-color: transparent;
}