/* Bootstrap Custom Overrides */
:root {
    --bs-primary: #2a5bd7;
    --bs-primary-rgb: 42, 91, 215;
    --bs-secondary: #ff6b35;
    --bs-secondary-rgb: 255, 107, 53;
    --bs-dark: #1a1a2e;
    --bs-dark-rgb: 26, 26, 46;
    --bs-light: #f8f9fa;
    --bs-light-rgb: 248, 249, 250;
    --bs-body-font-family: 'Montserrat', sans-serif;
    --bs-body-color: #1a1a2e;
    --bs-body-bg: #ffffff;
    --bs-border-radius: 0.375rem;
    --bs-border-radius-lg: 0.5rem;
    --bs-border-radius-sm: 0.25rem;
    --bs-link-color: var(--bs-primary);
    --bs-link-hover-color: #1e4ab3;
    --bs-heading-font-family: 'Playfair Display', serif;
}

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
    font-family: var(--bs-heading-font-family);
    font-weight: 700;
}

.btn {
    font-weight: 600;
    letter-spacing: 0.5px;
}

.btn-primary {
    --bs-btn-color: #fff;
    --bs-btn-bg: var(--bs-primary);
    --bs-btn-border-color: var(--bs-primary);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: #1e4ab3;
    --bs-btn-hover-border-color: #1e4ab3;
    --bs-btn-focus-shadow-rgb: 66, 123, 223;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: #1e4ab3;
    --bs-btn-active-border-color: #1e4ab3;
    --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
    --bs-btn-disabled-color: #fff;
    --bs-btn-disabled-bg: var(--bs-primary);
    --bs-btn-disabled-border-color: var(--bs-primary);
}

.btn-outline-primary {
    --bs-btn-color: var(--bs-primary);
    --bs-btn-border-color: var(--bs-primary);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--bs-primary);
    --bs-btn-hover-border-color: var(--bs-primary);
    --bs-btn-focus-shadow-rgb: 42, 91, 215;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: var(--bs-primary);
    --bs-btn-active-border-color: var(--bs-primary);
    --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
    --bs-btn-disabled-color: var(--bs-primary);
    --bs-btn-disabled-bg: transparent;
    --bs-btn-disabled-border-color: var(--bs-primary);
    --bs-gradient: none;
}

.btn-outline-light {
    --bs-btn-color: #fff;
    --bs-btn-border-color: #fff;
    --bs-btn-hover-color: var(--bs-primary);
    --bs-btn-hover-bg: #fff;
    --bs-btn-hover-border-color: #fff;
    --bs-btn-focus-shadow-rgb: 248, 249, 250;
    --bs-btn-active-color: var(--bs-primary);
    --bs-btn-active-bg: #fff;
    --bs-btn-active-border-color: #fff;
    --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
    --bs-btn-disabled-color: #fff;
    --bs-btn-disabled-bg: transparent;
    --bs-btn-disabled-border-color: #fff;
    --bs-gradient: none;
}

.navbar-toggler {
    --bs-navbar-toggler-focus-width: 0;
}

.offcanvas {
    --bs-offcanvas-bg: #fff;
    --bs-offcanvas-border-width: 0;
}

.form-control:focus,
.form-select:focus {
    border-color: var(--bs-primary);
    box-shadow: 0 0 0 0.25rem rgba(var(--bs-primary-rgb), 0.1);
}

/* Bootstrap Components Customization */
.accordion-button:not(.collapsed) {
    color: var(--bs-primary);
    background-color: rgba(var(--bs-primary-rgb), 0.1);
}

.accordion-button:focus {
    box-shadow: 0 0 0 0.25rem rgba(var(--bs-primary-rgb), 0.1);
    border-color: var(--bs-primary);
}

.nav-pills .nav-link.active,
.nav-pills .show > .nav-link {
    background-color: var(--bs-primary);
}

.page-link {
    color: var(--bs-primary);
}

.page-link:hover {
    color: var(--bs-primary);
}

.page-item.active .page-link {
    background-color: var(--bs-primary);
    border-color: var(--bs-primary);
}

.progress-bar {
    background-color: var(--bs-primary);
}

/* Custom Utilities */
.bg-primary-light {
    background-color: rgba(var(--bs-primary-rgb), 0.1) !important;
}

.text-primary-light {
    color: rgba(var(--bs-primary-rgb), 0.7) !important;
}

.border-primary-light {
    border-color: rgba(var(--bs-primary-rgb), 0.2) !important;
}

.rounded-lg {
    border-radius: var(--bs-border-radius-lg) !important;
}

.rounded-xl {
    border-radius: 1rem !important;
}

.shadow-sm {
    box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.05) !important;
}

.shadow {
    box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.1) !important;
}

.shadow-lg {
    box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.15) !important;
}

.z-1 {
    z-index: 1 !important;
}

.z-2 {
    z-index: 2 !important;
}

.z-3 {
    z-index: 3 !important;
}

/* Spacing Utilities */
.mt-6 {
    margin-top: 4rem !important;
}

.mb-6 {
    margin-bottom: 4rem !important;
}

.pt-6 {
    padding-top: 4rem !important;
}

.pb-6 {
    padding-bottom: 4rem !important;
}

@media (min-width: 768px) {
    .mt-md-6 {
        margin-top: 4rem !important;
    }
    
    .mb-md-6 {
        margin-bottom: 4rem !important;
    }
    
    .pt-md-6 {
        padding-top: 4rem !important;
    }
    
    .pb-md-6 {
        padding-bottom: 4rem !important;
    }
}