/* Bootstrap Custom Overrides */
:root {
    --bs-primary: #2E3192;
    --bs-secondary: #ED1B24;
    --bs-light: #F4F5FA;
    --bs-dark: #212529;
}

/* Custom primary button */
.btn-primary {
    --bs-btn-bg: var(--bs-primary);
    --bs-btn-border-color: var(--bs-primary);
    --bs-btn-hover-bg: #1F2266;
    --bs-btn-hover-border-color: #171A57;
    --bs-btn-active-bg: #171A57;
    --bs-btn-active-border-color: #0F1240;
    --bs-btn-disabled-bg: var(--bs-primary);
    --bs-btn-disabled-border-color: var(--bs-primary);
}

/* Custom secondary button */
.btn-secondary {
    --bs-btn-bg: var(--bs-secondary);
    --bs-btn-border-color: var(--bs-secondary);
    --bs-btn-hover-bg: #C21118;
    --bs-btn-hover-border-color: #A00F16;
    --bs-btn-active-bg: #A00F16;
    --bs-btn-active-border-color: #7A0C13;
    --bs-btn-disabled-bg: var(--bs-secondary);
    --bs-btn-disabled-border-color: var(--bs-secondary);
}

/* Custom navbar */
.navbar {
    --bs-navbar-padding-x: 1rem;
    --bs-navbar-padding-y: 0.75rem;
    --bs-navbar-brand-font-size: 1.25rem;
}

/* Custom card */
.card {
    --bs-card-border-width: 0;
    --bs-card-border-radius: 0.5rem;
    --bs-card-box-shadow: 0 4px 6px rgba(0,0,0,0.1);
    --bs-card-cap-padding-y: 1rem;
    --bs-card-cap-padding-x: 1.5rem;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.card:hover {
    --bs-card-box-shadow: 0 10px 20px rgba(0,0,0,0.1);
    transform: translateY(-5px);
}

/* Custom form controls */
.form-control {
    --bs-border-radius: 0.25rem;
    --bs-border-width: 1px;
    --bs-border-color: #ced4da;
    padding: 0.5rem 0.75rem;
}

.form-control:focus {
    --bs-border-color: #86b7fe;
    --bs-box-shadow: 0 0 0 0.25rem rgba(46, 49, 146, 0.25);
}

/* Custom alerts */
.alert {
    --bs-alert-border-radius: 0.25rem;
    --bs-alert-padding-x: 1.25rem;
    --bs-alert-padding-y: 1rem;
    --bs-alert-margin-bottom: 1rem;
}

.alert-primary {
    --bs-alert-color: #084298;
    --bs-alert-bg: #cfe2ff;
    --bs-alert-border-color: #b6d4fe;
}

/* Custom breadcrumb */
.breadcrumb {
    --bs-breadcrumb-padding-x: 0;
    --bs-breadcrumb-padding-y: 0.75rem;
    --bs-breadcrumb-margin-bottom: 1rem;
    --bs-breadcrumb-divider-color: #6c757d;
    --bs-breadcrumb-item-padding-x: 0.5rem;
    --bs-breadcrumb-divider: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath d='M2.5 0L1 1.5 3.5 4 1 6.5 2.5 8l4-4-4-4z' fill='%236c757d'/%3E%3C/svg%3E");
}

/* Custom pagination */
.pagination {
    --bs-pagination-padding-x: 0.75rem;
    --bs-pagination-padding-y: 0.375rem;
    --bs-pagination-font-size: 1rem;
    --bs-pagination-color: var(--bs-primary);
    --bs-pagination-bg: #fff;
    --bs-pagination-border-width: 1px;
    --bs-pagination-border-color: #dee2e6;
    --bs-pagination-border-radius: 0.25rem;
    --bs-pagination-hover-color: #171A57;
    --bs-pagination-hover-bg: #e9ecef;
    --bs-pagination-hover-border-color: #dee2e6;
    --bs-pagination-focus-color: #171A57;
    --bs-pagination-focus-bg: #e9ecef;
    --bs-pagination-focus-box-shadow: 0 0 0 0.25rem rgba(46, 49, 146, 0.25);
    --bs-pagination-active-color: #fff;
    --bs-pagination-active-bg: var(--bs-primary);
    --bs-pagination-active-border-color: var(--bs-primary);
    --bs-pagination-disabled-color: #6c757d;
    --bs-pagination-disabled-bg: #fff;
    --bs-pagination-disabled-border-color: #dee2e6;
}

/* Custom tooltips */
.tooltip {
    --bs-tooltip-bg: var(--bs-primary);
}

/* Custom popovers */
.popover {
    --bs-popover-border-color: var(--bs-primary);
    --bs-popover-header-bg: var(--bs-primary);
    --bs-popover-header-color: white;
}

/* Custom carousel */
.carousel {
    --bs-carousel-indicator-width: 30px;
    --bs-carousel-indicator-height: 3px;
    --bs-carousel-indicator-hit-area-height: 10px;
    --bs-carousel-indicator-spacer: 3px;
    --bs-carousel-indicator-active-bg: var(--bs-primary);
    --bs-carousel-caption-width: 70%;
    --bs-carousel-caption-color: #fff;
    --bs-carousel-control-icon-width: 2rem;
    --bs-carousel-control-opacity: 0.9;
    --bs-carousel-control-hover-opacity: 0.9;
    --bs-carousel-control-transition: opacity 0.15s ease;
}

.carousel-caption {
    background-color: rgba(0,0,0,0.6);
    border-radius: 0.5rem;
    padding: 1.5rem;
    bottom: 3rem;
    left: 50%;
    transform: translateX(-50%);
    width: 80%;
    max-width: 800px;
}

.carousel-indicators [data-bs-target] {
    background-color: rgba(255,255,255,0.5);
}

/* Custom accordion */
.accordion {
    --bs-accordion-color: #212529;
    --bs-accordion-bg: #fff;
    --bs-accordion-border-width: 1px;
    --bs-accordion-border-color: var(--bs-border-color);
    --bs-accordion-border-radius: 0.375rem;
    --bs-accordion-inner-border-radius: calc(0.375rem - 1px);
    --bs-accordion-btn-padding-x: 1.25rem;
    --bs-accordion-btn-padding-y: 1rem;
    --bs-accordion-btn-color: var(--bs-primary);
    --bs-accordion-btn-bg: var(--bs-accordion-bg);
    --bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%232E3192'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
    --bs-accordion-btn-icon-width: 1.25rem;
    --bs-accordion-btn-icon-transform: rotate(-180deg);
    --bs-accordion-btn-icon-transition: transform 0.2s ease-in-out;
    --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23ED1B24'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
    --bs-accordion-btn-focus-border-color: #86b7fe;
    --bs-accordion-btn-focus-box-shadow: 0 0 0 0.25rem rgba(46, 49, 146, 0.25);
    --bs-accordion-body-padding-x: 1.25rem;
    --bs-accordion-body-padding-y: 1rem;
    --bs-accordion-active-color: var(--bs-secondary);
    --bs-accordion-active-bg: rgba(237, 27, 36, 0.1);
}