.h1, .h2, .h3, h1, h2, h3 {
    font-family: var(--bs-heading-font-family);
    color: var(--bs-primary);
}
.h4, h4 {
    font-weight: 400;
}
.h5, h5 {
    font-weight: 700;
}
.fs-1 {
    font-size: 5rem !important;
}
.fs-2 {
    font-size: 5rem !important;
}
@media (min-width: 1200px) {
    .h1, h1 {
        font-size: 2.5rem;
    }
    .h2, h2 {
        font-size: 1.875rem;
    }
    .h3, h3 {
        font-size: 1.375rem;
    }
    .h4, h4 {
        font-size: 1.25rem;
    }
    .h5, h5 {
        font-size: 1.125rem;
    }
    .h6, h6 {
        font-size: 1rem;
    }
}
@media (max-width: 991px) {
    .fs-1 {
        font-size: 70px !important;
    }
    .fs-2 {
        font-size: 45px !important;
    }
    .h2, h2 {
        font-size: 1.25rem;
    }
    .h4, h4 {
        font-size: 1.125rem;
    }
    .h5, h5 {
        font-size: 1.125rem;
    }
}
@media (max-width: 767px) {
    html, body {
        font-size: 14px;
    }
    .lead {
        font-size: 1rem;
    }
}

.container-fluid {
    max-width: calc(1760px + var(--bs-gutter-x));
}
@media (min-width: 1700px) {
    .container, .container-lg, .container-md, .container-sm, .container-xl, .container-xxl {
        max-width: 1670px;
    }
}
@media (max-width: 1699px) {
    .container, .container-lg, .container-md, .container-sm, .container-xl, .container-xxl {
        max-width: 100%;
    }
}


.card {
    box-shadow: var(--bs-box-shadow);
}
@media (min-width: 768px) {
    .card-body:has(.collapse-mobile) .btn[data-bs-toggle="collapse"] {
        pointer-events: none;
    }
    .card-body:has(.collapse-mobile) .collapse {
        display: block;
    }
}
@media (max-width: 767px) {
    .card-body:has(.collapse-mobile) .btn[data-bs-toggle="collapse"] {
        display: flex;
        justify-content: space-between;
    }
    .card-body:has(.collapse-mobile) .btn[data-bs-toggle="collapse"]::after {
        content: "";
        display: inline-block;
        width: 24px;
        height: 24px;
        border-radius: 50%;
        background-color: var(--bs-primary);
        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M256 429.3l22.6-22.6 192-192L493.3 192 448 146.7l-22.6 22.6L256 338.7 86.6 169.4 64 146.7 18.7 192l22.6 22.6 192 192L256 429.3z' fill='%23FFF'/%3E%3C/svg%3E");
        background-position: center;
        background-repeat: no-repeat;
        background-size: 11px;
        transition: all .3s ease;
    }
    .card-body:has(.collapse-mobile) .btn[aria-expanded="true"]::after {
        background-color: #1E65AB;
        transform: rotate(-180deg);
    }
}

.accordion-item {
    border-radius: var(--bs-accordion-border-radius);
    box-shadow: var(--bs-box-shadow);
    margin-bottom: 1.75rem;
    overflow: hidden;
}
.accordion-button {
    font-size: inherit;
    color: inherit;
    justify-content: space-between;
}
.accordion-button::after {
    margin-left: 2rem;
    background-color: var(--bs-primary);
    border-radius: 50%;
    background-size: calc(var(--bs-accordion-btn-icon-width) / 2);
    background-position: 50% 60%;
}
.accordion-button:not(.collapsed)::after {
    background-color: var(--bs-primary-bg-subtle);
}
.accordion-button .badge {
    margin-left: auto;
    font-size: 1.25rem;
    font-family: var(--bs-body-font-family);
    min-width: 260px;
}
.accordion-button .badge.bg-success {
    border: solid 2px var(--bs-success);
}
.accordion-button .badge.bg-info {
    --bs-bg-opacity: .1;
    border: solid 2px var(--bs-info);
    color: var(--bs-info);
}
.accordion-button .badge.bg-light {
    border: solid 2px #707070;
    color: #707070;
}
.accordion-body {
    padding-top: 0;
    position: relative;
}
.accordion-body::before {
    content: "";
    display: block;
    height: var(--bs-border-width);
    background-color: var(--bs-border-color);
    margin-bottom: 3rem;
}
@media (max-width: 767px) {
    .accordion-button .badge {
        font-size: .675rem;
        min-width: 80px;
    }
}

.table > :not(caption) > * > * {
    padding: .875rem;
}

.link-arrow {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    text-decoration: none !important;
}
.link-arrow::after {
    content: "";
    display: inline-block;
    width: 1rem;
    height: .75rem;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='12' viewBox='0 0 16 12'%3E%3Cpath id='Link_Arrow' data-name='Link Arrow' d='M10,0,8.6,1.45,12.15,5H0V7H12.15L8.6,10.55,10,12l6-6Z' transform='translate(0 0)' fill='%2301294e'/%3E%3C/svg%3E%0A");
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
}

.dot-list {
    --dot-size: 1.125rem;
    --gap-size: .25rem;
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    gap: var(--gap-size);
    max-width: calc((var(--dot-size) * 5) + (var(--gap-size) * 4));
}
.dot-list > li {
    display: block;
    width: var(--dot-size);
    height: var(--dot-size);
    border-radius: 50%;
    background-color: var(--bs-danger);
}

.form-label {
    display: block;
    margin: 0;
}
.form-label > span {
    display: block;
    margin-bottom: .25rem;
    color: var(--bs-primary);
}
.form-select,
.form-control {
    background-color: #FFF;
    padding: .375rem 1.25rem;
}
.form-check {
    display: flex;
    align-items: center;
    gap: .675rem;
}
.form-check-label {
    color: var(--bs-primary);
}
.form-check-input {
    width: 2.5rem;
    height: 2.5rem;
    margin: 0;
    background-color: #FFF;
}
