/* Universal Dark Mode Support for Elephant Walk Travel */

/* Root variables for consistent theming */
:root {
    /* Light mode colors (default) */
    --bs-body-bg: #ffffff;
    --bs-body-color: #212529;
    --bs-secondary-bg: #f8f9fa;
    --bs-tertiary-bg: #e9ecef;
    --bs-border-color: #dee2e6;
    --bs-secondary-color: #6c757d;
    
    /* Custom safari theme colors */
    --safari-sand: #F5F1E8;
    --safari-green: #2D5016;
    --safari-gold: #D4AF37;
    --safari-orange: #E67E22;
    --safari-brown: #8B4513;
    --safari-cream: #FDF6E3;
    --safari-dark: #2C3E50;
    --safari-light-green: #4A7C59;
    --safari-warm-beige: #E8DCC0;
    
    /* Theme-aware colors that adapt to light/dark mode */
    --theme-bg-primary: var(--bs-body-bg);
    --theme-bg-secondary: var(--bs-secondary-bg);
    --theme-bg-tertiary: var(--bs-tertiary-bg);
    --theme-text-primary: var(--bs-body-color);
    --theme-text-secondary: var(--bs-secondary-color);
    --theme-border: var(--bs-border-color);
    --theme-shadow: rgba(0, 0, 0, 0.08);
    --theme-shadow-hover: rgba(0, 0, 0, 0.15);
}

/* Dark mode overrides */
[data-bs-theme="dark"] {
    --bs-body-bg: #1a1a1a;
    --bs-body-color: #e9ecef;
    --bs-secondary-bg: #2d3748;
    --bs-tertiary-bg: #4a5568;
    --bs-border-color: #4a5568;
    --bs-secondary-color: #a0aec0;
    
    /* Safari colors adapted for dark mode */
    --safari-sand: #2C2C2C;
    --safari-cream: #1F1F1F;
    --safari-warm-beige: #2A2A2A;
    --safari-dark: #E2E8F0;
    
    /* Dark mode specific variables */
    --theme-bg-primary: #1a1a1a;
    --theme-bg-secondary: #2d3748;
    --theme-bg-tertiary: #4a5568;
    --theme-text-primary: #e9ecef;
    --theme-text-secondary: #a0aec0;
    --theme-border: rgba(255, 255, 255, 0.1);
    --theme-shadow: rgba(0, 0, 0, 0.3);
    --theme-shadow-hover: rgba(0, 0, 0, 0.5);
}

/* Global dark mode styles */
[data-bs-theme="dark"] body {
    background-color: var(--theme-bg-primary);
    color: var(--theme-text-primary);
}

/* Forms in dark mode */
[data-bs-theme="dark"] .form-control,
[data-bs-theme="dark"] .form-select {
    background-color: var(--theme-bg-secondary);
    border-color: var(--theme-border);
    color: var(--theme-text-primary);
}

[data-bs-theme="dark"] .form-control:focus,
[data-bs-theme="dark"] .form-select:focus {
    background-color: var(--theme-bg-secondary);
    border-color: var(--safari-green);
    color: var(--theme-text-primary);
    box-shadow: 0 0 0 0.2rem rgba(45, 80, 22, 0.15);
}

[data-bs-theme="dark"] .form-control::placeholder {
    color: var(--theme-text-secondary);
}

/* Cards in dark mode */
[data-bs-theme="dark"] .card {
    background-color: var(--theme-bg-secondary);
    border-color: var(--theme-border);
    color: var(--theme-text-primary);
}

[data-bs-theme="dark"] .card-header {
    background-color: var(--theme-bg-tertiary);
    border-bottom-color: var(--theme-border);
}

/* Navbar in dark mode */
[data-bs-theme="dark"] .navbar-light {
    background-color: var(--theme-bg-primary);
}

[data-bs-theme="dark"] .navbar-light .navbar-nav .nav-link {
    color: var(--theme-text-primary);
}

[data-bs-theme="dark"] .navbar-light .navbar-nav .nav-link:hover {
    color: var(--safari-gold);
}

/* Dropdown menus in dark mode */
[data-bs-theme="dark"] .dropdown-menu {
    background-color: var(--theme-bg-secondary);
    border-color: var(--theme-border);
}

[data-bs-theme="dark"] .dropdown-item {
    color: var(--theme-text-primary);
}

[data-bs-theme="dark"] .dropdown-item:hover,
[data-bs-theme="dark"] .dropdown-item:focus {
    background-color: var(--theme-bg-tertiary);
    color: var(--theme-text-primary);
}

/* Buttons in dark mode */
[data-bs-theme="dark"] .btn-light {
    background-color: var(--theme-bg-secondary);
    border-color: var(--theme-border);
    color: var(--theme-text-primary);
}

[data-bs-theme="dark"] .btn-light:hover {
    background-color: var(--theme-bg-tertiary);
    border-color: var(--theme-border);
    color: var(--theme-text-primary);
}

[data-bs-theme="dark"] .btn-outline-secondary {
    color: var(--theme-text-secondary);
    border-color: var(--theme-border);
}

[data-bs-theme="dark"] .btn-outline-secondary:hover {
    background-color: var(--theme-bg-secondary);
    border-color: var(--theme-border);
    color: var(--theme-text-primary);
}

/* Tables in dark mode */
[data-bs-theme="dark"] .table {
    color: var(--theme-text-primary);
}

[data-bs-theme="dark"] .table-striped > tbody > tr:nth-of-type(odd) > td,
[data-bs-theme="dark"] .table-striped > tbody > tr:nth-of-type(odd) > th {
    background-color: rgba(255, 255, 255, 0.05);
}

/* Pagination in dark mode */
[data-bs-theme="dark"] .page-link {
    background-color: var(--theme-bg-secondary);
    border-color: var(--theme-border);
    color: var(--theme-text-primary);
}

[data-bs-theme="dark"] .page-link:hover {
    background-color: var(--theme-bg-tertiary);
    border-color: var(--theme-border);
    color: var(--theme-text-primary);
}

[data-bs-theme="dark"] .page-item.active .page-link {
    background-color: var(--safari-green);
    border-color: var(--safari-green);
    color: white;
}

/* Alerts in dark mode */
[data-bs-theme="dark"] .alert-success {
    background-color: rgba(40, 167, 69, 0.1);
    border-color: rgba(40, 167, 69, 0.2);
    color: #75b798;
}

[data-bs-theme="dark"] .alert-danger {
    background-color: rgba(220, 53, 69, 0.1);
    border-color: rgba(220, 53, 69, 0.2);
    color: #ea868f;
}

[data-bs-theme="dark"] .alert-warning {
    background-color: rgba(255, 193, 7, 0.1);
    border-color: rgba(255, 193, 7, 0.2);
    color: #ffda6a;
}

[data-bs-theme="dark"] .alert-info {
    background-color: rgba(13, 202, 240, 0.1);
    border-color: rgba(13, 202, 240, 0.2);
    color: #6edff6;
}

/* Breadcrumbs in dark mode */
[data-bs-theme="dark"] .breadcrumb {
    background-color: var(--theme-bg-secondary);
}

[data-bs-theme="dark"] .breadcrumb-item + .breadcrumb-item::before {
    color: var(--theme-text-secondary);
}

/* Modal in dark mode */
[data-bs-theme="dark"] .modal-content {
    background-color: var(--theme-bg-primary);
    border-color: var(--theme-border);
}

[data-bs-theme="dark"] .modal-header {
    border-bottom-color: var(--theme-border);
}

[data-bs-theme="dark"] .modal-footer {
    border-top-color: var(--theme-border);
}

/* Progress bars in dark mode */
[data-bs-theme="dark"] .progress {
    background-color: var(--theme-bg-secondary);
}

/* List groups in dark mode */
[data-bs-theme="dark"] .list-group-item {
    background-color: var(--theme-bg-secondary);
    border-color: var(--theme-border);
    color: var(--theme-text-primary);
}

[data-bs-theme="dark"] .list-group-item:hover {
    background-color: var(--theme-bg-tertiary);
}

/* Accordion in dark mode */
[data-bs-theme="dark"] .accordion-item {
    background-color: var(--theme-bg-secondary);
    border-color: var(--theme-border);
}

[data-bs-theme="dark"] .accordion-button {
    background-color: var(--theme-bg-secondary);
    color: var(--theme-text-primary);
    border-bottom-color: var(--theme-border);
}

[data-bs-theme="dark"] .accordion-button:focus {
    box-shadow: 0 0 0 0.25rem rgba(45, 80, 22, 0.15);
}

[data-bs-theme="dark"] .accordion-body {
    background-color: var(--theme-bg-primary);
}

/* Custom utilities for dark mode */
[data-bs-theme="dark"] .text-dark {
    color: var(--theme-text-primary) !important;
}

[data-bs-theme="dark"] .text-muted {
    color: var(--theme-text-secondary) !important;
}

[data-bs-theme="dark"] .bg-light {
    background-color: var(--theme-bg-secondary) !important;
}

[data-bs-theme="dark"] .bg-white {
    background-color: var(--theme-bg-primary) !important;
}

[data-bs-theme="dark"] .border {
    border-color: var(--theme-border) !important;
}

/* Footer dark mode adjustments */
[data-bs-theme="dark"] footer.bg-dark {
    background-color: #0d1117 !important;
}

/* Smooth transitions for theme changes */
* {
    transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease;
}

/* Safari-specific styles that work in both modes */
.hero-section,
.section-title::after,
.btn-safari,
.safari-accent {
    /* These elements maintain their safari colors regardless of theme */
    color: inherit;
}

/* Ensure images and videos maintain proper contrast */
[data-bs-theme="dark"] img,
[data-bs-theme="dark"] video {
    opacity: 0.9;
}

[data-bs-theme="dark"] img:hover,
[data-bs-theme="dark"] video:hover {
    opacity: 1;
}

/* Fix for Bootstrap components that need dark mode support */
[data-bs-theme="dark"] .navbar-toggler {
    border-color: var(--theme-border);
}

[data-bs-theme="dark"] .navbar-toggler-icon {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.75%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}

/* Ensure proper contrast for text on colored backgrounds */
[data-bs-theme="dark"] .text-white-50 {
    color: rgba(255, 255, 255, 0.6) !important;
}

/* Fix for any remaining white backgrounds in dark mode */
[data-bs-theme="dark"] .bg-body {
    background-color: var(--theme-bg-primary) !important;
}

[data-bs-theme="dark"] .bg-body-secondary {
    background-color: var(--theme-bg-secondary) !important;
}

[data-bs-theme="dark"] .bg-body-tertiary {
    background-color: var(--theme-bg-tertiary) !important;
} 