.link-opacity-10 {
    --bs-link-opacity: 0.1;
}

.link-opacity-10-hover:hover {
    --bs-link-opacity: 0.1;
}

.link-opacity-25 {
    --bs-link-opacity: 0.25;
}

.link-opacity-25-hover:hover {
    --bs-link-opacity: 0.25;
}

.link-opacity-50 {
    --bs-link-opacity: 0.5;
}

.link-opacity-50-hover:hover {
    --bs-link-opacity: 0.5;
}

.link-opacity-75 {
    --bs-link-opacity: 0.75;
}

.link-opacity-75-hover:hover {
    --bs-link-opacity: 0.75;
}

.link-opacity-100 {
    --bs-link-opacity: 1;
}

.link-opacity-100-hover:hover {
    --bs-link-opacity: 1;
}

.link-offset-1 {
    text-underline-offset: 0.125em !important;
}

.link-offset-1-hover:hover {
    text-underline-offset: 0.125em !important;
}

.link-offset-2 {
    text-underline-offset: 0.25em !important;
}

.link-offset-2-hover:hover {
    text-underline-offset: 0.25em !important;
}

.link-offset-3 {
    text-underline-offset: 0.375em !important;
}

.link-offset-3-hover:hover {
    text-underline-offset: 0.375em !important;
}

.link-underline-primary {
    --bs-link-underline-opacity: 1;
    -webkit-text-decoration-color: rgba(var(--bs-primary-rgb), var(--bs-link-underline-opacity)) !important;
    text-decoration-color: rgba(var(--bs-primary-rgb), var(--bs-link-underline-opacity)) !important;
}

.link-underline-secondary {
    --bs-link-underline-opacity: 1;
    -webkit-text-decoration-color: rgba(var(--bs-secondary-rgb), var(--bs-link-underline-opacity)) !important;
    text-decoration-color: rgba(var(--bs-secondary-rgb), var(--bs-link-underline-opacity)) !important;
}

.link-underline-success {
    --bs-link-underline-opacity: 1;
    -webkit-text-decoration-color: rgba(var(--bs-success-rgb), var(--bs-link-underline-opacity)) !important;
    text-decoration-color: rgba(var(--bs-success-rgb), var(--bs-link-underline-opacity)) !important;
}

.link-underline-info {
    --bs-link-underline-opacity: 1;
    -webkit-text-decoration-color: rgba(var(--bs-info-rgb), var(--bs-link-underline-opacity)) !important;
    text-decoration-color: rgba(var(--bs-info-rgb), var(--bs-link-underline-opacity)) !important;
}

.link-underline-warning {
    --bs-link-underline-opacity: 1;
    -webkit-text-decoration-color: rgba(var(--bs-warning-rgb), var(--bs-link-underline-opacity)) !important;
    text-decoration-color: rgba(var(--bs-warning-rgb), var(--bs-link-underline-opacity)) !important;
}

.link-underline-danger {
    --bs-link-underline-opacity: 1;
    -webkit-text-decoration-color: rgba(var(--bs-danger-rgb), var(--bs-link-underline-opacity)) !important;
    text-decoration-color: rgba(var(--bs-danger-rgb), var(--bs-link-underline-opacity)) !important;
}

.link-underline-light {
    --bs-link-underline-opacity: 1;
    -webkit-text-decoration-color: rgba(var(--bs-light-rgb), var(--bs-link-underline-opacity)) !important;
    text-decoration-color: rgba(var(--bs-light-rgb), var(--bs-link-underline-opacity)) !important;
}

.link-underline-dark {
    --bs-link-underline-opacity: 1;
    -webkit-text-decoration-color: rgba(var(--bs-dark-rgb), var(--bs-link-underline-opacity)) !important;
    text-decoration-color: rgba(var(--bs-dark-rgb), var(--bs-link-underline-opacity)) !important;
}

.link-underline {
    --bs-link-underline-opacity: 1;
    -webkit-text-decoration-color: rgba(var(--bs-link-color-rgb), var(--bs-link-underline-opacity, 1)) !important;
    text-decoration-color: rgba(var(--bs-link-color-rgb), var(--bs-link-underline-opacity, 1)) !important;
}

.link-underline-opacity-0 {
    --bs-link-underline-opacity: 0;
}

.link-underline-opacity-0-hover:hover {
    --bs-link-underline-opacity: 0;
}

.link-underline-opacity-10 {
    --bs-link-underline-opacity: 0.1;
}

.link-underline-opacity-10-hover:hover {
    --bs-link-underline-opacity: 0.1;
}

.link-underline-opacity-25 {
    --bs-link-underline-opacity: 0.25;
}

.link-underline-opacity-25-hover:hover {
    --bs-link-underline-opacity: 0.25;
}

.link-underline-opacity-50 {
    --bs-link-underline-opacity: 0.5;
}

.link-underline-opacity-50-hover:hover {
    --bs-link-underline-opacity: 0.5;
}

.link-underline-opacity-75 {
    --bs-link-underline-opacity: 0.75;
}

.link-underline-opacity-75-hover:hover {
    --bs-link-underline-opacity: 0.75;
}

.link-underline-opacity-100 {
    --bs-link-underline-opacity: 1;
}

.link-underline-opacity-100-hover:hover {
    --bs-link-underline-opacity: 1;
}

.link-white {
    color: rgba(var(--bs-white-rgb), var(--bs-link-opacity, 1)) !important;
    -webkit-text-decoration-color: rgba(var(--bs-white-rgb), var(--bs-link-underline-opacity, 1)) !important;
    text-decoration-color: rgba(var(--bs-white-rgb), var(--bs-link-underline-opacity, 1)) !important;
}

.link-white:hover {
    color: rgba(249, 250, 251, var(--bs-link-opacity, 1)) !important;
    -webkit-text-decoration-color: rgba(249, 250, 251, var(--bs-link-underline-opacity, 1)) !important;
    text-decoration-color: rgba(249, 250, 251, var(--bs-link-underline-opacity, 1)) !important;
}

@media (min-width: 1200px) {
    .link-white:not(.focus-link-0):focus,
    .link-white:not(.focus-link-0):focus:hover {
        background-color: var(--bs-highlight-bg);
        color: var(--bs-body-color) !important;
        text-decoration: underline;
        text-decoration-color: var(--bs-body-color) !important;
    }

    .link-white.focus-link-0:focus,
    .link-white.focus-link-0:focus:hover {
        text-decoration: none;
        text-decoration-color: rgba(var(--bs-white-rgb), var(--bs-link-opacity, 1)) !important;
    }
}

.group:hover .group-hover-underline > span {
    text-decoration: underline;
}

@media (min-width: 1200px) {
    .group:focus-within .group-hover-underline > span {
        background-color: var(--bs-highlight-bg);
        color: var(--bs-body-color);
        text-decoration-color: var(--bs-body-color);
    }
}

input[type=search].hover-border-primary:hover {
    border-color: var(--bs-primary) !important;
}

input[type=search].hover-border-primary:focus {
    border-color: var(--bs-primary) !important;
}

input[type=search].hover-border-primary:hover + button[type=submit] {
    background-color: var(--bs-primary);
    border-color: var(--bs-primary) !important;
    color: #fff;
    fill: #fff;
}

input[type=search].hover-border-primary:focus + button[type=submit] {
    background-color: var(--bs-primary);
    border-color: var(--bs-primary) !important;
    color: #fff;
    fill: #fff;
}

.hover-bg-primary:hover {
    background-color: var(--bs-primary) !important;
    border-color: var(--bs-primary) !important;
    color: #fff !important;
    fill: #fff;
}

.hover-bg-primary:focus {
    background-color: var(--bs-primary) !important;
    border-color: var(--bs-primary) !important;
    color: #fff !important;
    fill: #fff;
    box-shadow: none !important;
}