:root {
    --main-color: #0a4b2f;
    --main-color-hover: color-mix(in srgb, var(--main-color), black 10%);
    --main-color-active: color-mix(in srgb, var(--main-color), black 20%);
    --dark-color: #202124;
    --light-color: #fafafa;
    --gray-color: #aab7cf;
    --border-radius: var(--bs-border-radius);
    --box-shadow: 0 0 0 .25rem color-mix(in srgb, var(--main-color), white 50%);
    scroll-behavior: smooth;
}

.text-primary { color: var(--main-color)!important; }
.dark-color { color: var(--dark-color); }
.bg-primary { background: var(--main-color); }

body { overflow-y: scroll!important; }

html { font-size: 15px; }
h1 { font-size: calc(2.5rem - 1px); }
h2 { font-size: calc(2rem - 1px); }
h3 { font-size: calc(1.75rem - 1px); }
h4 { font-size: calc(1.5rem - 1px); }
h5 { font-size: calc(1.25rem - 1px); }
h6 { font-size: calc(1rem); }

h1, h2, h3, h4, h5, h6 {
    line-height: 1.45;
}

body, h1, h2, h3, h4, h5, h6, p, span, a, div, button, label {
    font-family: 'Poppins', sans-serif!important;
}
input:not([type="radio"]):not([type="checkbox"]),
select, button, .btn {
    padding-top: 8px!important;
    padding-bottom: 8px!important;
}
input[type=number]::-webkit-inner-spin-button {
    -webkit-appearance: none;
}
img, video, iframe {
    border-radius: var(--border-radius);
}
a, a:hover {
    color: var(--main-color);
    text-decoration: none!important;
}
hr { opacity: unset; }

.cover-center {
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
    object-fit: cover;
}
.wh-20 {
    width: 20px!important;
    height: 20px!important;
}
.wh-30 {
    width: 30px!important;
    height: 30px!important;
}
.wh-40 {
    width: 40px!important;
    height: 40px!important;
}
.wh-50 {
    width: 50px!important;
    height: 50px!important;
}
.wh-75 {
    width: 75px!important;
    height: 75px!important;
}
.wh-100 {
    width: 100px!important;
    height: 100px!important;
}
.wh-150 {
    width: 150px!important;
    height: 150px!important;
}
.fw-500 {font-weight: 500!important;}
.fw-600 {font-weight: 600!important;}
.fw-700 {font-weight: 700!important;}

.text-justify {text-align: justify!important;}

.text-one-line {
    text-overflow: ellipsis;
    overflow: hidden;
    display: -webkit-box;
    line-clamp: 1;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 1 !important;
}
.text-two-line {
    text-overflow: ellipsis;
    overflow: hidden;
    display: -webkit-box;
    line-clamp: 2;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2 !important;
}

.text-slider-left {transition: .3s}
.text-slider-left:hover {padding-left: 5px}

/*--------------------------------------------------------------
  # Bootstrap
--------------------------------------------------------------*/
body.modal-open { padding-right: 0px!important; }
body.modal-open .header { padding: 0 20px!important; }

.text-primary { color: var(--main-color)!important; }
.text-dark { color: var(--dark-color)!important; }
.text-light { color: var(--light-color)!important; }

.text-primary-emphasis {
    color: color-mix(in srgb, var(--main-color), black 50%)!important;
}

.bg-primary { background: var(--main-color)!important; }
.bg-dark { background-color: var(--dark-color)!important; }
.bg-light { background-color: var(--light-color)!important; }

.bg-primary-subtle {
    background-color: color-mix(in srgb, var(--main-color), white 80%)!important;
}

.border-primary-subtle {
    border-color: color-mix(in srgb, var(--main-color), white 60%)!important;
}

.alert-primary {
    background-color: color-mix(in srgb, var(--main-color), white 80%);
    border-color: color-mix(in srgb, var(--main-color), white 50%);
    color: color-mix(in srgb, var(--main-color), black 60%);
}

[data-bs-theme=dark] {
    .text-primary-emphasis {
        color: color-mix(in srgb, var(--main-color), white 50%)!important;
    }

    .bg-primary-subtle {
        background-color: color-mix(in srgb, var(--main-color), black 80%)!important;
    }

    .border-primary-subtle {
        border-color: color-mix(in srgb, var(--main-color), black 30%)!important;
    }

    .alert-primary {
        background-color: color-mix(in srgb, var(--main-color), black 80%);
        border-color: color-mix(in srgb, var(--main-color), black 50%);
        color: color-mix(in srgb, var(--main-color), white 60%);
    }
}

.card,
.accordion-item,
.dropdown-menu {
    box-shadow: 0px 0 30px rgba(1, 41, 112, 0.1);
    border: none;
}

.card,
.badge,
.accordion-item,
.accordion-button {
    border-radius: var(--border-radius)!important;
}

.invalid-feedback { display: block; }

.dropdown-item { white-space: unset; }

.btn-outline-primary {
    border-color: var(--main-color)!important;
    color: var(--main-color)!important;
}

:not(:has(> input[type="checkbox"])) > .btn-outline-primary:hover,
:not(:has(> input[type="checkbox"])) > .btn-outline-primary:focus {
    background-color: var(--main-color)!important;
    border-color: var(--main-color)!important;
    color: var(--light-color)!important;
}

.btn-primary,
.btn-primary:active,
.btn-primary:visited,
.btn-primary:focus,
.btn-outline-primary:checked,
.form-check-input:checked,
.pagination .page-item.active .page-link {
    background-color: var(--main-color)!important;
    border-color: var(--main-color)!important;
    transition: .3s;
    color: var(--light-color);
}

.pagination .page-item .page-link {
    border-radius: 8px;
    min-width: 35px!important;
    min-height: 35px!important;
    display: flex;
    justify-content: center;
    align-items: center;
}
.pagination .page-item:not(.active) .page-link:hover {
    border-color: color-mix(in srgb, var(--main-color), white 80%)!important;
    background-color: color-mix(in srgb, var(--main-color), white 80%)!important;
}

.pagination .page-item.active .page-link {
    box-shadow: none;
}

.pagination .page-item:not(.active) .page-link {
    color: var(--main-color)!important;
}

.pagination .page-item.active .page-link {
    background-color: var(--main-color);
    border-color: var(--main-color);
}

.pagination .page-item:not(.active) .page-link,
.pagination .page-item:not(.active) .page-link:hover {
    color: var(--main-color);
}

.pagination .page-item:not(.active) .page-link:focus {
    box-shadow: none;
}

.btn-check:checked+.btn.btn-outline-primary {
    color: var(--light-color)!important;
    background-color: var(--main-color);
}

.btn-close:focus,
.btn-close:active {
    box-shadow: none;
    outline: none;
}

.btn-primary:hover {
    background-color: var(--main-color-hover)!important;
    border-color: var(--main-color-hover)!important;
}

.btn-primary:active {
    background-color: var(--main-color-active)!important;
    border-color: var(--main-color-active)!important;
}

.form-switch input {
    transform: scale(1.5);
    transform-origin: left;
    margin-right: 24px;
}

textarea,
input,
.btn,
.form-control,
.form-select,
.input-group-text {
    border-radius: var(--border-radius);
}

.form-control:focus,
.form-select:focus,
.form-check-input:focus,
.uneditable-input:focus {
    border-color: var(--main-color)!important;
    box-shadow: var(--box-shadow)!important;
}

.dropdown-item.active, .dropdown-item:active {
    color: var(--light-color);
    background-color: var(--main-color);
}

.accordion-button {
    padding-top: 1rem!important;
    padding-bottom: 1rem!important;
}

.accordion-button:hover,
.accordion-button:focus,
.accordion-button:not(.collapsed) {
    background-color: var(--main-color);
    color: var(--light-color);
    border-radius: var(--border-radius)!important;
}

.accordion-button:focus { box-shadow: none!important; }

.accordion-body span { font-size:1rem!important; }

.modal-content { border-radius: var(--border-radius); }

.modal-body { white-space: normal; }

.accordion-button:not(.collapsed)::after {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='white' viewBox='0 0 16 16'%3e%3cpath fill-rule='evenodd' d='M1.292 4.342a.5.5 0 0 1 .682-.032L8 10.293l6.026-5.98a.5.5 0 1 1 .704.71l-6.5 6.46a.5.5 0 0 1-.704 0l-6.5-6.46a.5.5 0 0 1-.034-.682z'/%3e%3c/svg%3e");
}

.table { --bs-table-bg: unset; }
.table tr th,
.table tr td {
    vertical-align: middle;
}

@media (min-width: 768px) {
    .w-md-25 { width: 25%!important; }
    .w-md-50 { width: 50%!important; }
    .w-md-75 { width: 75%!important; }
    .w-md-100 { width: 100%!important; }
}

@media (min-width: 992px) {
    .w-lg-25 { width: 25%!important; }
    .w-lg-50 { width: 50%!important; }
    .w-lg-75 { width: 75%!important; }
    .w-lg-100 { width: 100%!important; }
}

@media (min-width: 1200px) {
    .w-xl-25 { width: 25%!important; }
    .w-xl-50 { width: 50%!important; }
    .w-xl-75 { width: 75%!important; }
    .w-xl-100 { width: 100%!important; }
}

/*--------------------------------------------------------------
  # Loading Animation
--------------------------------------------------------------*/
.loader {
    position: fixed;
    z-index: 999999;
    background: var(--light-color);
    width: 100%;
    height: 100%;
}
[data-bs-theme=dark]
.loader { background: #212529; }

/*--------------------------------------------------------------
  # Lazy Shimmer
--------------------------------------------------------------*/
img:not([src]):not([srcset]) {
    visibility: hidden;
}

.lazy-shimmer {
    display: block;
    background: linear-gradient(to right, #eeeeee 8%, #dddddd 18%, #eeeeee 33%);
    background-size: 1000px 100%;
    animation: shimmer 1.2s infinite linear;
}

@keyframes shimmer {
    0% { background-position: -1000px 0; }
    100% { background-position: 1000px 0; }
}
