/********************
    BASE STYLES
********************/

/* ROOT */

:root {
    color-scheme: only light;
    --vh: 1vh;
    /* Base colors */
    --color-gray-800:   #3A3A3A;
    --color-gray-600:   #6F6F6F;
    --color-gray-400:   #CCCCCC;
    --color-gray-300:   #E2E2E2;
    --color-gray-200:   #EEEEEE;
    --color-gray-100:   #F6F6F6;
    --color-blue-700:   #0C438E;
    --color-blue-600:   #0B5ABA;
    --color-blue-500:   #0071EB;
    --color-blue-400:   #3794FF;
    --color-blue-300:   #7BB7FF;
    --color-blue-200:   #B9D7FF;
    --color-blue-100:   #E6F1FF;
    --color-orange-600: #a93e2b;
    --color-orange-500: #D3644F;
    --color-green-600:  #1A8735;
    --color-green-500:  #28A745;
    --color-green-400:  #55C161;
    --color-green-300:  #80DB82;
    --color-green-200:  #B5EEB3;
    --color-yellow-600: #D19A00;
    --color-yellow-500: #FFC107;
    --color-yellow-400: #FFCB53;
    --color-yellow-300: #FFD985;
    --color-yellow-200: #FFE7AE;
    --color-red-600:    #B32936;
    --color-red-500:    #DC3545;
    --color-red-400:    #F06770;
    --color-red-300:    #F4999D;
    --color-red-200:    #F8BFC1;
    /* Semantic colors */
    --color-text:               var(--color-gray-800);      /* Text */
    --color-text-muted:         var(--color-gray-600);      /* Text Muted */
    --color-grey-medium:        var(--color-gray-400);      /* Gray Medium */
    --color-grey-light:         var(--color-gray-200);      /* Gray Light */
    --color-grey-ultralight:    var(--color-gray-100);      /* Gray Ultralight */
    --color-primary-dark-2:     var(--color-blue-700);      /* Primary +2 darker */
    --color-primary-dark-1:     var(--color-blue-600);      /* Primary +1 darker */
    --color-primary:            var(--color-blue-500);      /* Primary */
    --color-primary-light-1:    var(--color-blue-300);      /* Primary -1 lighter */
    --color-primary-light-2:    var(--color-blue-200);      /* Primary -2 lighter */
    --color-primary-light-3:    var(--color-blue-100);      /* Primary -3 lighter */
    --color-cta-dark-1:         var(--color-orange-600);    /* Orange +1 darker */
    --color-cta:                var(--color-orange-500);    /* Orange */
    --color-success-dark-1:     var(--color-green-600);     /* Success +1 darker */
    --color-success:            var(--color-green-500);     /* Success */
    --color-success-light-1:    var(--color-green-400);     /* Success -1 lighter */
    --color-success-light-2:    var(--color-green-300);     /* Success -2 lighter */
    --color-success-light-3:    var(--color-green-200);     /* Success -3 lighter */
    --color-warning-dark-1:     var(--color-yellow-600);    /* Warning +1 darker */
    --color-warning:            var(--color-yellow-500);    /* Warning */
    --color-warning-light-1:    var(--color-yellow-400);    /* Warning -1 lighter */
    --color-warning-light-2:    var(--color-yellow-300);    /* Warning -2 lighter */
    --color-warning-light-3:    var(--color-yellow-200);    /* Warning -3 lighter */
    --color-danger-dark-1:      var(--color-red-600);       /* Danger +1 darker */
    --color-danger:             var(--color-red-500);       /* Danger */
    --color-danger-light-1:     var(--color-red-400);       /* Danger -1 lighter */
    --color-danger-light-2:     var(--color-red-300);       /* Danger -2 lighter */
    --color-danger-light-3:     var(--color-red-200);       /* Danger -3 lighter */
    /* Additional services colors */
    --color-featured: #48E6BC;                            /* Featured listings */
    --color-premium: #FFA200;                             /* Premium listings */
    --color-spotlight: #FAFF00;                           /* Spotlight listings */
    --color-panorama: #F922E8;                            /* Panorama listings */
    --color-newsletter: #BB4DFF;                          /* Newsletter */
    --color-newsletter-exc: #7E00CC;                      /* Newsletter exclusive */
    --color-feat-agent: #008C25;                          /* Featured agent */
    --color-listed-agent: #19FF57;                        /* Listed agent */
    --color-english-course: #FF4B55;                      /* English course */
}

/* BASE LAYOUT */

html {
    height: 100%;
    font-size: 100%;
    overflow-x: hidden !important;
    text-size-adjust: none;
}

body {
    min-height: 100%;
    font-family: "Public Sans", "Libre Franklin", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
    color: var(--color-text);
    background-color: white;
    font-feature-settings: "kern" 1;
    font-kerning: normal;
    font-variant-ligatures: none;
    text-rendering: optimizeSpeed;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* XXL container */
@media (min-width: 1400px) {
    .container, .container-lg, .container-md, .container-sm, .container-xl, .container-xxl {
        max-width: 1320px;
    }
}

/* SELECTION */

::selection {
    color: white;
    background-color: var(--color-primary);
    text-shadow: none;
}

/* LINKS */

a {
    color: var(--color-primary);
    text-decoration: underline;
    transition: color 0.15s ease-out, background-color 0.15s ease-out, border-color 0.15s ease-out, box-shadow 0.15s ease-out, opacity 0.15s ease-out;
}

:where(.bg-light-gray, .bg-primary-light-3, .alert-primary, .table-striped) a {
    color: var(--color-primary-dark-1);
}

:where(.alert-danger) a {
    color: var(--color-primary-dark-2);
}

a:hover {
    color: var(--color-primary-dark-2);
    text-decoration: underline;
}

.full-area-link {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.text-link {
    color: var(--color-text);
}

.text-link:hover {
    color: var(--color-primary);
}

.alt-link {
    color: var(--color-text);
    text-decoration: none;
}

.alt-link:hover {
    color: var(--color-primary);
    text-decoration: none;
}

/* FOCUS */

button:focus,
a:focus,
select:focus,
.btn:focus {
    outline: 0;
    box-shadow: 0 0 0 0.2rem rgba(0, 113, 235, 0.25);
}

button:focus:not(:focus-visible),
a:focus:not(:focus-visible),
select:focus:not(:focus-visible),
.btn:focus:not(:focus-visible) {
    outline: 0;
    box-shadow: none;
}

button:focus-visible,
a:focus-visible,
select:focus-visible,
.btn:focus-visible {
    outline: 0;
    box-shadow: 0 0 0 0.2rem rgba(0, 113, 235, 0.25);
}

.btn-close:focus {
    box-shadow: 0 0 0 0.2rem rgba(0, 113, 235, 0.25);
}

/* SMOOTH INTERNAL SCROLLING */

@media (prefers-reduced-motion: no-preference) {
    @keyframes smoothscroll1 {
        from, to { scroll-behavior: smooth; }
    }

    @keyframes smoothscroll2 {
        from, to { scroll-behavior: smooth; }
    }

    html {
        animation: smoothscroll1 1s;
    }

    html:focus-within {
        animation-name: smoothscroll2;
        scroll-behavior: smooth;
    }
}

:target {
    scroll-margin-top: 2rem;
}

div:target,
section:target,
footer:target {
    scroll-margin-top: 0px;
}

:focus {
    scroll-margin-bottom: 8vh;
}


/********************
    CONTENT
********************/

/* TYPOGRAPHY */

h1, h2, h3, h4, h5, h6, p {
    margin-bottom: 0;
}

.h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6 {
    line-height: 1.3;
}

.font-size-075r {
    font-size: 0.75rem !important;
}

.font-size-08r {
    font-size: 0.8rem !important;
}

.font-size-09r {
    font-size: 0.9rem !important;
}

.font-size-1r {
    font-size: 1rem !important;
}

.font-size-11r {
    font-size: 1.1rem !important;
}

.font-size-12r {
    font-size: 1.2rem !important;
}

.font-size-125r {
    font-size: 1.25rem !important;
}

.font-size-13r {
    font-size: 1.3rem !important;
}

.font-size-14r {
    font-size: 1.4rem !important;
}

.font-size-15r {
    font-size: 1.5rem !important;
}

.font-size-175r {
    font-size: 1.75rem !important;
}

.font-size-2r {
    font-size: 2rem !important;
}

.font-size-25r {
    font-size: 2.5rem !important;
}

.font-size-3r {
    font-size: 3rem !important;
}

.font-weight-500 {
    font-weight: 500 !important;
}

.font-weight-600 {
    font-weight: 600 !important;
}

.font-weight-700 {
    font-weight: 700 !important;
}

.font-nocase {
    text-transform: none !important;
}

.text-no-wrap {
    white-space: nowrap;
}

.text-pre-wrap {
    white-space: pre-wrap;
}

.tabular-nums {
    font-variant-numeric: tabular-nums;
}

.table {
    font-size: 0.85rem;
}
@media (min-width: 768px) {
    .table {
        font-size: 0.9rem;
    }
}

sup {
    top: -0.6em;
    font-size: 60%;
}

/* Fix Google Translate problems */
font {
    pointer-events: none;
    vertical-align: unset !important;
}

/* UTILITY CLASSES */

.full-height {
    min-height: calc(var(--vh) * 100);
}

.w-100px {
	width: 100px;
}

.w-150px {
	width: 150px;
}

.w-200px {
	width: 200px;
}

.w-250px {
	width: 250px;
}

.w-300px {
	width: 300px;
}

.w-500px {
	width: 500px;
}

.minw-100px {
	min-width: 100px;
}

.minw-150px {
	min-width: 150px;
}

.minw-200px {
	min-width: 200px;
}

.minw-250px {
	min-width: 250px;
}

.minw-300px {
	min-width: 300px;
}

.minw-500px {
	min-width: 500px;
}

.mr-100 {
    margin-right: 100% !important;
}

@supports (padding: env(safe-area-inset-top)) {
    .p-env-x {
        padding-left: env(safe-area-inset-left) !important;
        padding-right: env(safe-area-inset-right) !important;
    }

    .p-env-y {
        padding-top: env(safe-area-inset-top) !important;
        padding-bottom: env(safe-area-inset-bottom) !important;
    }

    .p-env-top {
        padding-top: env(safe-area-inset-top) !important;
    }

    .p-env-bottom {
        padding-bottom: env(safe-area-inset-bottom) !important;
    }

    .p-env-left {
        padding-left: env(safe-area-inset-left) !important;
    }

    .p-env-right {
        padding-right: env(safe-area-inset-right) !important;
    }
}

.no-fill {
    fill: inherit !important;
}

.color-white {
    color: white !important;
    fill: white !important;
}

.color-gray {
    color: var(--color-grey-medium) !important;
    fill: var(--color-grey-medium) !important;
}

.color-text {
    color: var(--color-text) !important;
    fill: var(--color-text) !important;
}

.color-muted {
    color: var(--color-text-muted) !important;
    fill: var(--color-text-muted) !important;
}

.color-primary {
    color: var(--color-primary) !important;
    fill: var(--color-primary) !important;
}

.color-cta {
    color: var(--color-cta) !important;
    fill: var(--color-cta) !important;
}

.color-success {
    color: var(--color-success) !important;
    fill: var(--color-success) !important;
}

.color-success-dark-1 {
    color: var(--color-success-dark-1) !important;
    fill: var(--color-success-dark-1) !important;
}

.color-warning {
    color: var(--color-warning) !important;
    fill: var(--color-warning) !important;
}

.color-warning-dark-1 {
    color: var(--color-warning-dark-1) !important;
    fill: var(--color-warning-dark-1) !important;
}

.color-danger {
    color: var(--color-danger) !important;
    fill: var(--color-danger) !important;
}

.color-warning-dark-1 {
    color: var(--color-warning-dark-1) !important;
    fill: var(--color-warning-dark-1) !important;
}

.bg-white {
    background-color: white !important;
}

.bg-light-gray {
    background-color: var(--color-grey-light) !important;
}

.bg-gray {
    background-color: #D8D8D8 !important;
}

.bg-medium-gray {
    background-color: var(--color-grey-medium) !important;
}

.bg-muted {
    background-color: var(--color-text-muted) !important;
}

.bg-success {
    background-color: var(--color-success) !important;
}

.bg-success-light-3 {
    background-color: var(--color-success-light-3) !important;
}

.bg-warning {
    background-color: var(--color-warning) !important;
}

.bg-warning-light-3 {
    background-color: var(--color-warning-light-3) !important;
}

.bg-danger {
    background-color: var(--color-danger) !important;
}

.bg-danger-light-3 {
    background-color: var(--color-danger-light-3) !important;
}

.bg-blue,
.bg-primary-dark-1 {
    background-color: var(--color-primary-dark-1) !important;
}

.bg-primary {
    background-color: var(--color-primary) !important;
}

.bg-primary-light-1 {
    background-color: var(--color-primary-light-1) !important;
}

.bg-primary-light-2 {
    background-color: var(--color-primary-light-2) !important;
}

.bg-primary-light-3 {
    background-color: var(--color-primary-light-3) !important;
}

.hide-me[aria-expanded="true"] {
    display: none;
}

/* IMAGES */

img {
    height: auto;
    max-width: 100%;
    text-indent: -99999px;
    font-size: 0.75rem;
}

/* SVG */

svg {
    width: 1rem;
    height: 1rem;
    color: currentColor;
    transition: fill 0.15s ease-out;
}

/* ICONS */

.icon-16 {
    width: 1rem !important;
    height: 1rem !important;
}

.icon-20 {
    width: 1.25rem !important;
    height: 1.25rem !important;
}

.icon-24 {
    width: 1.5rem !important;
    height: 1.5rem !important;
}

.icon-32 {
    width: 2rem !important;
    height: 2rem !important;
}

.icon-48 {
    width: 3rem !important;
    height: 3rem !important;
}

.icon-64 {
    width: 4rem !important;
    height: 4rem !important;
}

.btn__icon {
    fill: currentColor;
    width: 1rem;
    height: 1rem;
}

.btn .btn__icon {
    margin-top: -0.125rem;
}

.btn-lg .btn__icon {
    margin-top: -0.25rem;
}

.btn.btn-round .btn__icon {
    margin-top: 0;
}

.btn__icon ~ .btn__label,
.btn__label ~ .btn__icon--right,
.stackIcons ~ .btn__label {
    margin-left: 0.4rem;
}

.btn__text-icon {
    font-size: 2rem;
    line-height: 0;
}

.btn__text-icon ~ .btn__label,
.btn__label ~ .btn__text-icon--right {
    margin-left: 0.4rem;
}

.stackIcons {
    position: relative;
    display: inline-block;
}

.stackIcons .btn__icon {
    position: absolute;
    left: 0;
    margin: 0;
}

.small__icon {
    width: 1rem;
    height: 1rem;
    margin-right: 0.4rem;
    margin-top: -0.1875rem;
}

.title__icon {
    fill: currentColor;
    margin-top: -0.4rem;
}

.check-icon {
    flex: 0 0 auto;
    margin-right: 0.5rem;
}

.flag-icon {
    width: 1.5rem;
    height: 1.5rem;
}

.myga-icon {
    position: relative;
    top: -0.125rem;
    fill: var(--color-text-muted);
}

/* HORIZONTAL RULE */

hr {
    border-top: 1px solid var(--color-grey-medium);
    margin: 0;
    opacity: 1;
}

.hr {
    height: 1px;
    margin-top: 0.5rem;
    margin-bottom: 0.5rem;
    background-color: #E0E1E2;
    border: none;
    content: "";
}


/********************
    FORMS
********************/

/* GENERAL STYLES */

input,
button,
select,
optgroup,
textarea {
    color: inherit;
}

legend {
    font-weight: 700;
    font-size: 1.2rem;
    margin: 1.25rem 0;
}

.form-group {
    width: 100%;
}

.form-group > label {
    font-size: 0.9rem;
    margin-bottom: 0.5rem;
    font-weight: 600;
}

.form-group > label.col-form-label {
    margin-bottom: 0;
}

.form-control,
.form-select {
    height: auto;
    padding: 0.5rem 0.75rem;
    color: var(--color-text);
    border-radius: 0.2rem;
    border-color: transparent;
}

.form-control-sm,
.form-select-sm {
    padding: 0.35rem 0.5rem;
    font-size: 0.875rem;
}

.form-control-lg,
.form-select-lg {
    padding: 0.5rem 1rem;
    font-size: 1.25rem;
}

.form-control:focus,
.form-select:focus {
    border-color: var(--color-primary-light-1);
    box-shadow: 0 0 0 0.2rem rgba(0, 113, 235, 0.25);
}

.form-control:disabled,
.form-control[readonly],
.form-select:disabled,
.form-select[readonly] {
    background-color: var(--color-grey-light);
}

.col-form-label {
    font-size: 0.9rem;
    font-weight: 600;
}

/* COOL-FORM (label inside input) */

.cool-form {
    position: relative;
}

.cool-form > input,
.cool-form > textarea,
.cool-form > label {
    height: auto;
    padding: 0.75rem;
}

.cool-form--icon-left > input,
.cool-form--icon-left > label {
    height: auto;
    padding: 0.75rem 0.75rem 0.75rem 2.5rem;
}

.cool-form--icon-right > input,
.cool-form--icon-right > label {
    height: auto;
    padding: 0.75rem 2.5rem 0.75rem 0.75rem;
}

.cool-form--btn-left > input,
.cool-form--btn-left > label {
    height: auto;
    padding: 0.75rem 0.75rem 0.75rem 3rem;
}

.cool-form--btn-right > input,
.cool-form--btn-right > label {
    height: auto;
    padding: 0.75rem 3rem 0.75rem 0.75rem;
}

.cool-form > label {
    position: absolute;
    top: 0;
    left: 0;
    display: block;
    width: 100%;
    margin-bottom: 0; /* Override default `<label>` margin */
    font-size: 1rem;
    line-height: 1.5;
    font-weight: 400;
    color: var(--color-text-muted);
    border: 1px solid transparent;
    border-radius: 0.25rem;
    transition: all 0.1s ease-in-out;
}

.cool-form-lg > label {
    font-size: 1.14rem;
}

.cool-form > .form-control::-webkit-input-placeholder {
    color: transparent !important;
    opacity: 0 !important;
}

.cool-form > .form-control::-moz-placeholder {
    color: transparent !important;
    opacity: 0 !important;
}

.cool-form > .form-control::-ms-input-placeholder {
    color: transparent !important;
    opacity: 0 !important;
}

.cool-form > .form-control::placeholder {
    color: transparent !important;
    opacity: 0 !important;
}

.cool-form > input:not(:-moz-placeholder-shown),
.cool-form > textarea:not(:-moz-placeholder-shown) {
    padding-top: calc(0.75rem + 0.75rem * (2 / 3));
    padding-bottom: calc(0.75rem / 3);
}

.cool-form > input:not(:placeholder-shown),
.cool-form > textarea:not(:placeholder-shown) {
    padding-top: calc(0.75rem + 0.75rem * (2 / 3));
    padding-bottom: calc(0.75rem / 3);
}

.cool-form > input:not(:-moz-placeholder-shown) ~ label {
    padding-top: calc(0.75rem / 3);
    padding-bottom: calc(0.75rem / 3);
    font-size: 0.75rem;
    color: var(--color-text-muted);
}

.cool-form > input:not(:placeholder-shown) ~ label {
    padding-top: calc(0.75rem / 3);
    padding-bottom: calc(0.75rem / 3);
    font-size: 0.75rem;
    color: var(--color-text-muted);
}

.cool-form > textarea:not(:-moz-placeholder-shown) ~ label {
    top: 1px;
    left: 1px;
    width: calc(100% - 25px);
    padding-top: calc(0.75rem / 3);
    padding-right: 0;
    padding-bottom: 0;
    font-size: 0.75rem;
    color: var(--color-text-muted);
    background-color: white;
}

.cool-form > textarea:not(:placeholder-shown) ~ label {
    top: 1px;
    left: 1px;
    width: calc(100% - 25px);
    padding-top: calc(0.75rem / 3);
    padding-right: 0;
    padding-bottom: 0;
    font-size: 0.75rem;
    color: var(--color-text-muted);
    background-color: white;
}

.cool-form__icon {
    position: absolute;
    top: 1rem;
    line-height: 1;
    color: var(--color-text-muted);
}

.cool-form--icon-left > .cool-form__icon {
    left: 0.75rem;
}

.cool-form--icon-right > .cool-form__icon {
    right: 0.75rem;
}

.cool-form__btn {
    position: absolute;
    top: 0.3rem;
    z-index: 1;
}

.cool-form--btn-left > .cool-form__btn {
    left: 0;
}

.cool-form--btn-right > .cool-form__btn {
    right: 0;
}

/* NORMAL-FORM */

.normal-form {
    position: relative;
}

.normal-form > label {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    border: 0;
}

.normal-form > input,
.normal-form > textarea {
    padding-top: 0.75rem;
    padding-bottom: 0.75rem;
}

/* INPUT GROUP */

.input-group-prepend .input-group-text {
    color: var(--color-primary);
    padding: 0.375rem 0.25rem 0.375rem 0.55rem;
}

.input-group__icon {
    fill: currentColor;
    position: relative;
    top: 0.0625rem;
    left: 0.125rem;
    width: 1rem;
    height: 1rem;
}

/* CHECKS & RADIOS */

.form-check {
    padding-left: 0;
}

.form-check label {
    margin: 0;
}

.form-check input[type="radio"],
.form-check input[type="checkbox"] {
    position: absolute;
    left: -99999px;
}

.form-check input[type="radio"] + span,
.form-check input[type="checkbox"] + span {
    position: relative;
    display: inline-block;
    padding: 0.25rem 0 0.25rem 2.25rem;
    margin: 0;
    font-size: 0.95rem;
    line-height: 1.4;
    cursor: pointer;
}

.form-check input[type="radio"] + span::before {
    position: absolute;
    top: 0;
    left: 0;
    width: 1.375rem;
    height: 1.375rem;
    background-color: white;
    border: 1px solid var(--color-grey-medium);
    border-radius: 100%;
    content: "";
    margin: 0.25rem;
}

.form-check input[type="radio"] + span::after {
    position: absolute;
    top: 0.25rem;
    left: 0.25rem;
    width: 0.875rem;
    height: 0.875rem;
    background-color: var(--color-primary);
    border-radius: 100%;
    content: "";
    transition: all 0.2s ease-out;
    margin: 0.25rem;
}

.form-check input[type="radio"]:checked + span::before {
    border-color: var(--color-primary);
}

.form-check input[type="radio"]:not(:checked) + span::after {
    opacity: 0;
    transform: scale(0);
}

.form-check input[type="radio"]:checked + span::after {
    opacity: 1;
    transform: scale(1);
}

.form-check input[type="checkbox"] + span::after,
.form-check input[type="checkbox"] + span::before {
    position: absolute;
    left: 0;
    z-index: 1;
    border-style: solid;
    border-width: 1px;
    content: "";
    transition: all 0.2s ease-out;
}

.form-check input[type="checkbox"] + span::before {
    top: 0;
    width: 1.0625rem;
    height: 1.0625rem;
    margin: 0.125rem 0.3125rem;
    border: 1px solid #E6E9F2;
    border-radius: 0.0625rem;
    transform: rotateZ(37deg);
    transform-origin: 100% 100%;
}

.form-check input[type="checkbox"] + span::after {
    top: 0;
    width: 1.25rem;
    height: 1.25rem;
    margin: 0.375rem 0.3125rem;
    border-radius: 0.25rem;
}

.form-check input[type="checkbox"]:checked + span::before {
    top: 0.375rem;
    left: 0.0625rem;
    width: 0.5rem;
    height: 0.8125rem;
    border-color: transparent white white transparent;
    border-style: solid;
    border-width: 0.125rem;
    transform: rotate(40deg);
    -webkit-backface-visibility: hidden;
            backface-visibility: hidden;
    transform-origin: 100% 100%;
}

.form-check input[type="checkbox"]:checked + span::after {
    border-color: var(--color-primary);
    background-color: var(--color-primary);
    z-index: 0;
}

.form-check input[type="checkbox"]:not(:checked) + span::after {
    background-color: white;
    border-color: var(--color-grey-medium);
    z-index: 0;
}

.form-check input[type="checkbox"]:not(:checked) + span::before {
    width: 0;
    height: 0;
    border-color: transparent;
    left: 0.375rem;
    top: 0.625rem;
}

.form-check input[type="radio"]:focus + span::before,
.form-check input[type="checkbox"]:focus + span::after {
    box-shadow: 0 0 0 0.2rem rgba(0, 113, 235, 0.25);
}

.form-check input[type="radio"]:focus:not(:focus-visible) + span::before,
.form-check input[type="checkbox"]:focus:not(:focus-visible) + span::after {
    box-shadow: none;
}

.form-check input[type="radio"]:focus-visible + span::before,
.form-check input[type="checkbox"]:focus-visible + span::after {
    box-shadow: 0 0 0 0.2rem rgba(0, 113, 235, 0.25);
}

.form-check input[type="checkbox"]:disabled + span {
    cursor: not-allowed;
}

.form-check input[type="checkbox"]:disabled:not(:checked) + span::after {
    border-color: #E6E9F2;
    background-color: white;
}

.form-check input[type="checkbox"]:disabled:checked + span::after {
    background-color: #E6E9F2;
    border-color: #E6E9F2;
}

/* SELECT */

select {
    transition: box-shadow 0.15s ease-out !important;
}

/* Bootstrap-select overrides */
.bootstrap-select > .dropdown-toggle.bs-placeholder,
.bootstrap-select > .dropdown-toggle.bs-placeholder:active,
.bootstrap-select > .dropdown-toggle.bs-placeholder:focus,
.bootstrap-select > .dropdown-toggle.bs-placeholder:hover  {
    color: var(--color-text-muted);
}

.bootstrap-select .dropdown-menu {
    max-width: 100%;
    border-radius: 0;
    margin: 0;
    padding: 0;
    box-shadow: 0 0 0 1px hsl(0deg 0% 0% / 10%), 0 4px 11px hsl(0deg 0% 0% / 10%);
}

.bootstrap-select .dropdown-item {
    padding: 0.3rem 1.2rem;
    color: var(--color-text-muted);
}

.bootstrap-select .dropdown-item:focus,
.bootstrap-select .dropdown-item:hover {
    color: var(--color-text-muted);
}

.bootstrap-select .dropdown-item.active,
.bootstrap-select .dropdown-item:active {
    color: var(--color-text);
}

.bootstrap-select:not([class*="col-"]):not([class*="form-control"]):not(.input-group-btn) {
    display: block;
    width: auto;
}

.bootstrap-select .dropdown-toggle:focus,
.bootstrap-select > select.mobile-device:focus + .dropdown-toggle {
    outline: 0 !important;
    box-shadow: 0 0 0 0.2rem rgba(0, 113, 235, 0.25) !important;
}

/* VALIDATION */

.div-input-val:has(input:user-invalid){
    border: 1px solid var(--color-danger);
    border-radius: 0.2rem 

}

select:user-invalid {
    border: 1px solid var(--color-danger);    
}

input:user-invalid,
textarea:user-invalid {
    border-color: var(--color-danger);
}

.form-alert {
    margin-top: 0.3rem;
    font-size: 0.8rem;
}

.form-alert.form-alert__success {
    color: var(--color-success);
}

.form-alert.form-alert__warning {
    color: var(--color-warning);
}

.form-alert.form-alert__error {
    color: var(--color-danger);
}

input.error,
textarea.error {
    border-color: var(--color-danger);
}

label.error {
    margin: 0.3rem 0 0;
    font-size: 0.8rem;
    color: var(--color-danger);
}

.form-alert > label.error {
    margin: 0;
}

.form-alert svg {
    margin-right: 0.4rem;
}

:not(output):-moz-ui-invalid {
    box-shadow: unset;
}


/********************
    COMPONENTS
********************/

/* ALERTS */

.alert {
    border-radius: 0.3rem;
}

.alert-small {
    padding: 0.5rem 1rem;
    font-size: 0.9rem;
}

.alert-primary {
    color: var(--color-text);
    background-color: var(--color-primary-light-2);
    border-color: var(--color-primary-light-1);
}

.alert-secondary {
    color: var(--color-text);
    background-color: var(--color-grey-light);
    border-color: var(--color-grey-medium);
}

.alert-success {
    color: var(--color-text);
    background-color: var(--color-success-light-3);
    border-color: var(--color-success-light-2);
}

.alert-warning {
    color: var(--color-text);
    background-color: var(--color-warning-light-3);;
    border-color: var(--color-warning-light-1);
}

.alert-danger {
    color: var(--color-text);
    background-color: var(--color-danger-light-3);
    border-color: var(--color-danger-light-2);
}

.alert-shadow {
    box-shadow:
      0 0.0625rem 0.0625rem hsl(0deg 0% 0% / 0.075),
      0 0.125rem 0.125rem hsl(0deg 0% 0% / 0.075),
      0 0.25rem 0.25rem hsl(0deg 0% 0% / 0.075),
      0 0.5rem 0.5rem hsl(0deg 0% 0% / 0.075),
      0 1rem 1rem hsl(0deg 0% 0% / 0.075);
}

.alert__inner {
    display: flex;
}

.alert-icon {
    fill: currentColor;
    margin-top: -0.25rem;
    margin-right: 0.5rem;
}

.alert__inner .alert-icon {
    flex-shrink: 0;
    margin-top: 0.25rem;
}

.alert-form {
    position: absolute;
    top: 0;
    left: 0;
    width: calc(100% - 1.25rem);
    margin: 0 0.625rem;
    z-index: 999;
}

.close {
    color: var(--color-text-muted);
    opacity: 1;
    text-shadow: none;
    font-size: 2rem;
}

.close:hover {
    color: var(--color-text);
}

.close:not(:disabled):not(.disabled):hover,
.close:not(:disabled):not(.disabled):focus {
    opacity: 1;
}

.alert-small .close {
    font-size: 1.5rem;
}

.alert-dismissible .close {
    padding: 0.5rem 0.75rem;
}

.close--white {
    color: var(--color-grey-medium);
}

.close--white:hover {
    color: white;
}

.alert__message {
    display: flex;
    align-items: center;
    flex: 1 0 100%;
}

.alert__message .btn__icon {
    flex-shrink: 0;
}

/* BUTTONS */

button,
[type="button"],
[type="reset"],
[type="submit"] {
    appearance: button;
}

button {
    padding: 0;
    color: inherit;
    background-color: inherit;
    border: none;
    transition: color 0.15s ease-out, background-color 0.15s ease-out, border-color 0.15s ease-out, box-shadow 0.15s ease-out, opacity 0.15s ease-out !important;
}

.btn {
    padding: 0.45rem 0.75rem;
    border-radius: 0.5rem;
    text-decoration: none;
}

.btn:hover {
    text-decoration: none;
}

.btn-wide {
    padding-left: 1.5rem !important;
    padding-right: 1.5rem !important;
}

.btn-ultrawide {
    padding-left: 2.5rem !important;
    padding-right: 2.5rem !important;
}

.btn-xs {
    padding: 0.15rem 0.5rem;
    font-size: 0.75rem;
    line-height: 1.5;
}

.btn-sm,
.btn-group-sm > .btn {
    padding: 0.25rem 0.5rem;
    font-size: 0.875rem;
}

.btn-sm.btn-wide {
    padding-left: 1rem !important;
    padding-right: 1rem !important;
}

.btn-lg,
.btn-group-lg > .btn {
    padding: 0.55rem 0.8rem;
    font-size: 1.2rem;
}

.btn-lg.btn-wide {
    padding-left: 1.75rem !important;
    padding-right: 1.75rem !important;
}

.btn-lg.btn-ultrawide {
    padding-left: 3rem !important;
    padding-right: 3rem !important;
}

.btn-group > .btn  {
    min-width: 0;
}

.btn-default {
    color: var(--color-text);
    background-color: white;
    border-color: var(--color-grey-medium);
}

.btn-default:hover,
.btn-default:focus,
.btn-default:first-child:active,
:not(.btn-check) + .btn-default:active {
    color: var(--color-text);
    background-color: var(--color-grey-ultralight);
    border-color: var(--color-grey-medium);
}

.btn-default:focus-visible {
    color: var(--color-text);
    background-color: var(--color-grey-ultralight);
    border-color: var(--color-grey-medium);
}

.btn-ga-primary {
    font-weight: 600;
    color: white;
    background-color: var(--color-primary);
    border-color: var(--color-primary);
}

.btn-ga-primary:hover,
.btn-ga-primary:focus,
.btn-ga-primary:first-child:active,
:not(.btn-check) + .btn-ga-primary:active {
    color: white;
    background-color: var(--color-primary-dark-1);
    border-color: var(--color-primary-dark-1);
}

.btn-ga-primary:focus-visible {
    color: white;
    background-color: var(--color-primary-dark-1);
    border-color: var(--color-primary-dark-1);
}

.btn-ga-primary.ignore-disabled.disabled,
.btn-ga-primary.ignore-disabled:disabled {
    background-color: var(--color-primary) !important;
    border-color: var(--color-primary) !important;
    color: white !important;
    opacity: 1 !important;
}

.btn-ga-primary-invert {
    font-weight: 600;
    color: var(--color-primary);
    background-color: white;
    border-color: white;
}

.btn-ga-primary-invert:hover,
.btn-ga-primary-invert:focus,
.btn-ga-primary-invert:first-child:active,
:not(.btn-check) + .btn-ga-primary-invert:active {
    color: var(--color-primary-dark-1);
    background-color: var(--color-grey-light);
    border-color: var(--color-grey-light);
}

.btn-ga-primary-invert:focus-visible {
    color: var(--color-primary-dark-1);
    background-color: var(--color-grey-light);
    border-color: var(--color-grey-light);
}

.btn-ga-secondary {
    font-weight: 600;
    color: var(--color-primary);
    background-color: white;
    border-color: var(--color-primary);
}

.btn-ga-secondary:hover,
.btn-ga-secondary:focus,
.btn-ga-secondary:first-child:active,
:not(.btn-check) + .btn-ga-secondary:active {
    color: var(--color-primary);
    background-color: var(--color-grey-light);
    border-color: var(--color-primary);
}

.btn-ga-secondary:focus-visible {
    color: var(--color-primary);
    background-color: var(--color-grey-light);
    border-color: var(--color-primary);
}

.btn-ga-dark-default {
    font-weight: 600;
    color: var(--color-text);
    background-color: white;
    border-color: #ADADAD;
}

.btn-ga-dark-default:hover,
.btn-ga-dark-default:focus,
.btn-ga-dark-default:first-child:active,
:not(.btn-check) + .btn-ga-dark-default:active {
    color: var(--color-text);
    background-color: var(--color-grey-ultralight);
    border-color: #ADADAD;
}

.btn-ga-dark-default:focus-visible {
    color: var(--color-text);
    background-color: var(--color-grey-ultralight);
    border-color: #ADADAD;
}

.btn-ga-default {
    font-weight: 600;
    color: var(--color-text-muted);
    background-color: white;
    border-color: var(--color-grey-medium);
}

.btn-ga-default:hover,
.btn-ga-default:focus,
.btn-ga-default:first-child:active,
:not(.btn-check) + .btn-ga-default:active {
    color: var(--color-text-muted);
    background-color: var(--color-grey-ultralight);
    border-color: var(--color-grey-medium);
}

.btn-ga-default:focus-visible {
    color: var(--color-text-muted);
    background-color: var(--color-grey-ultralight);
    border-color: var(--color-grey-medium);
}

.btn-ga-default.selected {
    color: var(--color-text);
    background-color: var(--color-primary-light-2);
    border-color: var(--color-primary-light-2);
}

.btn-ga-default .fa {
    color: #979DA6;
}

.btn-ga-default.selected .fa {
    color: #475361;
}

.btn-ga-default.dropdown-toggle {
    font-weight: 400;
}

.btn-ga-cta {
    font-weight: 700;
    color: white;
    background-color: var(--color-cta);
    border-color: var(--color-cta);
}

.btn-ga-cta:hover,
.btn-ga-cta:focus,
.btn-ga-cta:first-child:active,
:not(.btn-check) + .btn-ga-cta:active {
    color: white;
    background-color: var(--color-cta-dark-1);
    border-color: var(--color-cta-dark-1);
}

.btn-ga-cta:focus-visible {
    color: white;
    background-color: var(--color-cta-dark-1);
    border-color: var(--color-cta-dark-1);
}

.btn-ga-cta.ignore-disabled.disabled,
.btn-ga-cta.ignore-disabled:disabled {
    background-color: var(--color-cta) !important;
    border-color: var(--color-cta) !important;
    color: white !important;
    opacity: 1 !important;
}

.btn-ga-cta-o {
    font-weight: 700;
    color: var(--color-cta);
    background-color: white;
    border-color: var(--color-cta);
}

.btn-ga-cta-o:hover,
.btn-ga-cta-o:focus,
.btn-ga-cta-o:first-child:active,
:not(.btn-check) + .btn-ga-cta-o:active {
    color: var(--color-cta);
    background-color: var(--color-grey-ultralight);
    border-color: var(--color-cta);
}

.btn-ga-cta-o:focus-visible {
    color: var(--color-cta);
    background-color: var(--color-grey-ultralight);
    border-color: var(--color-cta);
}

.btn-ga-light {
    font-weight: 600;
    color: var(--color-text);
    background-color: var(--color-grey-light);
    border-color: var(--color-grey-light);
}

.btn-ga-light:hover,
.btn-ga-light:focus,
.btn-ga-light:first-child:active,
:not(.btn-check) + .btn-ga-light:active {
    color: var(--color-text);
    background-color: #DDDDDD;
    border-color: #DDDDDD;
}

.btn-ga-light:focus-visible {
    color: var(--color-text);
    background-color: #DDDDDD;
    border-color: #DDDDDD;
}

.btn-ga-dark {
    font-weight: 600;
    color: white;
    background-color: var(--color-text);
    border-color: var(--color-text);
}

.btn-ga-dark:hover,
.btn-ga-dark:focus,
.btn-ga-dark:first-child:active,
:not(.btn-check) + .btn-ga-dark:active {
    color: white;
    background-color: #292E37;
    border-color: #292E37;
}

.btn-ga-dark:focus-visible {
    color: white;
    background-color: #292E37;
    border-color: #292E37;
}

.btn-ga-white {
    font-weight: 600;
    color: var(--color-text);
    background-color: white;
    border-color: white;
}

.btn-ga-white:hover,
.btn-ga-white:focus,
.btn-ga-white:first-child:active,
:not(.btn-check) + .btn-ga-white:active {
    color: var(--color-text);
    background-color: var(--color-grey-light);
    border-color: var(--color-grey-light);
}

.btn-ga-white:focus-visible {
    color: var(--color-text);
    background-color: var(--color-grey-light);
    border-color: var(--color-grey-light);
}

.btn-ga-white-o {
    font-weight: 600;
    color: white;
    background-color: transparent;
    border-color: white;
}

.btn-ga-white-o:hover,
.btn-ga-white-o:focus,
.btn-ga-white-o:first-child:active,
:not(.btn-check) + .btn-ga-white-o:active {
    color: white;
    background-color: rgba(0, 0, 0, 0.3);
    border-color: white;
}

.btn-ga-white-o:focus-visible {
    color: white;
    background-color: rgba(0, 0, 0, 0.3);
    border-color: white;
}

.btn-ga-success {
    font-weight: 600;
    color: white;
    background-color: var(--color-success);
    border-color: var(--color-success);
}

.btn-ga-success:hover,
.btn-ga-success:focus,
.btn-ga-success:first-child:active,
:not(.btn-check) + .btn-ga-success:active {
    color: white;
    background-color: #21943B;
    border-color: #21943B;
}

.btn-ga-success:focus-visible {
    color: white;
    background-color: #21943B;
    border-color: #21943B;
}

.btn-ga-success.ignore-disabled.disabled,
.btn-ga-success.ignore-disabled:disabled {
    background-color: var(--color-success) !important;
    border-color: var(--color-success) !important;
    color: white !important;
    opacity: 1 !important;
}

.btn-ga-warning {
    font-weight: 600;
    color: var(--color-text);
    background-color: var(--color-warning);
    border-color: var(--color-warning);
}

.btn-ga-warning:hover,
.btn-ga-warning:focus,
.btn-ga-warning:first-child:active,
:not(.btn-check) + .btn-ga-warning:active {
    color: var(--color-text);
    background-color: #E0A800;
    border-color: #E0A800;
}

.btn-ga-warning:focus-visible {
    color: var(--color-text);
    background-color: #E0A800;
    border-color: #E0A800;
}

.btn-ga-warning.ignore-disabled.disabled,
.btn-ga-warning.ignore-disabled:disabled {
    background-color: var(--color-warning) !important;
    border-color: var(--color-warning) !important;
    color: var(--color-text) !important;
    opacity: 1 !important;
}

.btn-ga-danger {
    font-weight: 600;
    color: white;
    background-color: var(--color-danger);
    border-color: var(--color-danger);
}

.btn-ga-danger:hover,
.btn-ga-danger:focus,
.btn-ga-danger:first-child:active,
:not(.btn-check) + .btn-ga-danger:active {
    color: white;
    background-color: #C22F3D;
    border-color: #C22F3D;
}

.btn-ga-danger:focus-visible {
    color: white;
    background-color: #C22F3D;
    border-color: #C22F3D;
}

.btn-ga-danger-invert {
    font-weight: 600;
    color: var(--color-danger);
    background-color: white;
    border-color: var(--color-danger);
}

.btn-ga-danger-invert:hover,
.btn-ga-danger-invert:focus,
.btn-ga-danger-invert:first-child:active,
:not(.btn-check) + .btn-ga-danger-invert:active {
    color: white;
    background-color: var(--color-danger);
    border-color: var(--color-danger);
}

.btn-ga-danger-invert:focus-visible {
    color: white;
    background-color: var(--color-danger);
    border-color: var(--color-danger);
}

.btn-outline-primary,
.btn-outline-secondary,
.btn-outline-success,
.btn-outline-danger,
.btn-outline-warning {
	font-weight: 600;
	color: inherit;
}

.btn-outline-secondary {
    border-color: var(--color-grey-medium);
}

.btn-outline-secondary:hover,
.btn-outline-secondary:focus,
.btn-outline-secondary:first-child:active,
:not(.btn-check) + .btn-outline-secondary:active {
    color: var(--color-text);
    background-color: var(--color-grey-medium);
    border-color: var(--color-grey-medium);
}

.btn-outline-secondary:focus-visible {
    color: var(--color-text);
    background-color: var(--color-grey-medium);
    border-color: var(--color-grey-medium);
}

.btn-badge {
    padding: 0.1875rem 0.5rem;
    font-size: 0.8rem;
    font-weight: 700;
    color: var(--color-text);
    background-color: var(--color-primary-light-2);
    border-radius: 1rem;
}

.btn-sm .btn-badge {
    padding: 0.125rem 0.4375rem 0.125rem;
    font-size: 0.7rem;
}

.btn.dropdown-toggle .btn-badge {
    margin-right: 0.2rem;
}

.btn-link {
    text-align: left;
    color: inherit;
}

.btn-link:hover {
    color: var(--color-primary);
}

.btn-link.focus,
.btn-link:focus {
    color: var(--color-primary);
}

.btn-ga-link {
    color: var(--color-primary);
}

.bg-light-gray .btn-ga-link {
    color: var(--color-primary-dark-1);
}

.btn-ga-link:hover,
.btn-ga-link:focus,
.btn-ga-link:first-child:active,
:not(.btn-check) + .btn-ga-link:active {
    color: var(--color-primary-dark-2);
    text-decoration: underline;
    border-color: transparent;
}

.btn-ga-link:focus-visible {
    color: var(--color-primary-dark-2);
    text-decoration: underline;
    border-color: transparent;
}

.btn-ga-link-o {
    color: #DDDDDD;
}

.btn-ga-link-o:hover {
    color: white;
    text-decoration: underline;
}

.btn-ga-link-white {
    color: #DDDDDD;
    background-color: rgba(0, 0, 0, 0.6);
    padding: 0.5rem 1rem;
}

.btn-ga-link-white:hover {
    color: white;
    text-decoration: underline;
}

.btn-ga-link-grey {
    color: var(--color-text-muted);
}

.btn-ga-link-grey:hover {
    color: var(--color-primary);
    text-decoration: underline;
}

.btn-group-toggle {
    background-color: white;
}

/* Button select */
.btn-select,
.btn-select:active,
:not(.btn-check)+.btn-select:active,
.btn-select.show {
    display: flex;
    align-items: center;
    color: var(--color-text-muted);
    background-color: white;
    border-color: var(--color-grey-medium);
}

.btn-select:hover,
.btn-select:hover:active {
    color: var(--color-text-muted);
    background-color: var(--color-grey-ultralight);
    border-color: var(--color-grey-medium);
}

.btn-select.btn--modified,
.btn-select:active.btn--modified {
    font-weight: 600;
    color: var(--color-text);
}

.btn-select-neg,
.btn-select-neg:active {
    color: white;
    background-color: #5F646D;
    border-color: #808A93;
}

.btn-select-neg:hover,
.btn-select-neg:hover:active {
    color: white;
    background-color: var(--color-text-muted);
    border-color: #808A93;
}

.btn-select__label {
    display: inline-block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.btn-select__control {
    flex-grow: 1;
}

.btn-select__control:has(input:focus) {
    box-shadow: 0 0 0 0.2rem rgba(0, 113, 235, 0.25);
}

.btn-select__control:has(input:focus:not(:focus-visible)) {
    box-shadow: none;
}

.btn-select__control:has(input:focus-visible) {
    box-shadow: 0 0 0 0.2rem rgba(0, 113, 235, 0.25);
}

.btn-select-light {
    color: white;
    border-color: var(--color-grey-medium);
    border-radius: 0;
}

.btn-select-light:hover {
    color: white;
}

/* Button select group */
.btn-select-group {
    padding: 0.45rem 1rem;
    color: var(--color-text-muted);
    cursor: pointer;
    background-color: transparent;
    border-color: var(--color-grey-medium);
    border-radius: 0;
    height: auto !important;
    display: flex;
    align-items: center;
    justify-content: center;
}

.btn-select-group:has(input[type="radio"]:focus),
.btn-select-group:has(input[type="checkbox"]:focus) {
    box-shadow: 0 0 0 0.2rem rgba(0, 113, 235, 0.25);
}

.btn-select-group:has(input[type="radio"]:focus:not(:focus-visible)),
.btn-select-group:has(input[type="checkbox"]:focus:not(:focus-visible)) {
    box-shadow: none;
}

.btn-select-group:has(input[type="radio"]:focus-visible),
.btn-select-group:has(input[type="checkbox"]:focus-visible) {
    box-shadow: 0 0 0 0.2rem rgba(0, 113, 235, 0.25);
}

.btn-select-group:hover,
.btn-select-group:active {
    color: var(--color-text-muted);
    background-color: var(--color-primary-light-3);
}

.btn-select-group.active,
.btn-select-group.active:hover {
    color: var(--color-text);
    background-color: var(--color-primary-light-2);
    border-color: var(--color-primary-light-2);
    font-weight: 600;
}

.btn.btn-select-group .btn__icon {
    margin-top: -0.0625rem;
}

/* Button checkbox */
.btn-checkbox {
    display: inline-flex !important;
    height: auto !important;
    vertical-align: middle;
    padding: 0.15rem 1.3rem;
    margin: 0 0.625rem 0.625rem 0;
    font-size: 0.95rem !important;
    font-weight: 400;
    line-height: 1.575;
    white-space: nowrap;
    align-items: center;
    border-radius: 2rem;
    border-width: 1px;
    border-style: solid;
}

.btn-checkbox.active {
    font-weight: 600;
}

.btn-checkbox.btn-ga-default:focus,
.btn-checkbox.btn-ga-default:focus-visible {
    background-color: white;
}

.btn-checkbox.btn-ga-default:hover,
.btn-checkbox.btn-ga-default:first-child:active,
:not(.btn-check) + .btn-checkbox.btn-ga-default:active {
    background-color: var(--color-primary-light-3);
}

.btn-checkbox.active.btn-ga-default,
.btn-checkbox.active.btn-ga-default:hover {
    color: var(--color-text);
    background-color: var(--color-primary-light-2);
    border-color: var(--color-primary-light-2);
}

.btn-checkbox--lg {
    padding: 0.325rem 1.1rem;
}

.btn-checkbox--lg.active,
.btn-checkbox--lg.active:hover {
    color: var(--color-primary);
    background-color: white;
    border-color: var(--color-grey-medium);
}

.btn-checkbox__label {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.btn-checkbox .btn__icon {
    margin-top: 0;
}

.btn__icon ~ .btn-checkbox__label,
.btn-checkbox__label ~ .btn__icon--right {
    margin-left: 0.4rem;
}

.btn-checkbox__remove {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0.25rem;
    margin-right: -0.625rem;
    margin-left: 0.25rem;
    color: var(--color-text);
    border-radius: 0.125rem;
}

@media (hover: hover) {
    .btn-checkbox__remove:hover {
        background-color: #FFBDAD;
        color: #DE350B;
    }
}

.btn-checkbox__remove svg {
    display: inline-block;
    fill: currentColor;
    line-height: 1;
    stroke: currentColor;
    stroke-width: 0;
    margin-top: 0 !important;
}

label.btn-checkbox:hover {
    cursor: pointer;
}

.btn-checkbox input[type="radio"],
.btn-checkbox input[type="checkbox"] {
    position: absolute;
    left: -99999px;
}

.btn-checkbox:has(input[type="radio"]:focus),
.btn-checkbox:has(input[type="checkbox"]:focus) {
    box-shadow: 0 0 0 0.2rem rgba(0, 113, 235, 0.25);
}

.btn-checkbox:has(input[type="radio"]:focus:not(:focus-visible)),
.btn-checkbox:has(input[type="checkbox"]:focus:not(:focus-visible)) {
    box-shadow: none;
}

.btn-checkbox:has(input[type="radio"]:focus-visible),
.btn-checkbox:has(input[type="checkbox"]:focus-visible) {
    box-shadow: 0 0 0 0.2rem rgba(0, 113, 235, 0.25);
}

/* Button radio */
.btn-radio {
    display: flex;
    padding: 0.4rem 0.6rem;
    font-weight: 500;
    white-space: nowrap;
    border-radius: 2rem;
    border-width: 3px;
    border-style: solid;
    color: var(--color-text);
    background-color: var(--color-grey-light);
    border-color: var(--color-grey-light);
}

.btn-radio:hover,
.btn-radio:active,
.btn-radio:first-child:active,
:not(.btn-check) + .btn-radio:active {
    color: var(--color-text);
    background-color: #DDDDDD;
    border-color: #DDDDDD;
}

.btn-radio:focus-visible {
    color: var(--color-text);
    background-color: var(--color-grey-light);
    border-color: var(--color-grey-light);
}

.btn-radio.active,
.btn-radio.active:hover {
    color: var(--color-text);
    background-color: white;
    border-color: var(--color-primary);
}

.btn-radio.active:active,
.btn-radio.active:first-child:active,
:not(.btn-check) + .btn-radio.active:active {
    color: var(--color-text);
    background-color: var(--color-primary-light-3);
    border-color: var(--color-primary);
}

/* Round button */
.btn-round {
    position: relative;
    padding: 0;
    width: 2.5rem;
    min-width: 2.5rem;
    height: 2.5rem;
    border-radius: 2.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 1.2rem;
}

.btn-round-xs {
    width: 1.75rem;
    min-width: 1.75rem;
    height: 1.75rem;
    font-size: 0.9rem;
}

.btn-round-sm {
    width: 2rem;
    min-width: 2rem;
    height: 2rem;
    font-size: 1rem;
}

.btn-round-md {
    width: 2.25rem;
    min-width: 2.25rem;
    height: 2.25rem;
    font-size: 1.1rem;
}

.btn-round-lg {
    width: 3rem;
    min-width: 3rem;
    height: 3rem;
    font-size: 1.25rem;
}

.btn-round-xl {
    width: 4rem;
    min-width: 4rem;
    height: 4rem;
    font-size: 1.5rem;
}

.btn-round-xxl {
    width: 5rem;
    min-width: 5rem;
    height: 5rem;
    font-size: 1.75rem;
}

.btn-round__default,
.btn-round__default:hover,
.btn-round__default:focus {
    color: var(--color-text);
    background-color: white;
    border-color: var(--color-text);
}

.btn-round__primary,
.btn-round__primary:hover,
.btn-round__primary:focus {
    color: white;
    background-color: var(--color-primary);
    border-color: var(--color-primary);
}

.btn-round__success,
.btn-round__success:hover,
.btn-round__success:focus {
    color: white;
    background-color: var(--color-success);
    border-color: var(--color-success);
}

.btn-round__warning,
.btn-round__warning:hover,
.btn-round__warning:focus {
    color: var(--color-text);
    background-color: var(--color-warning);
    border-color: var(--color-warning);
}

.btn-round__danger,
.btn-round__danger:hover,
.btn-round__danger:focus {
    color: white;
    background-color: var(--color-danger);
    border-color: var(--color-danger);
}

/* Button disabled */
.btn.disabled,
.btn:disabled,
.btn.disabled:hover,
.btn:disabled:hover {
    color: var(--color-text-muted);
    cursor: not-allowed;
    background-color: var(--color-grey-light);
    border-color: var(--color-grey-medium);
}

.btn-ga-link-grey.btn.disabled,
.btn-ga-link-grey.btn:disabled {
    background-color: transparent;
    border-color: transparent;
}

/* Loader in button */
.btn-loader:disabled {
    min-width: 6em;
    opacity: 1;
}

.btn-loader.btn-ga-primary:disabled {
    color: white;
    background-color: var(--color-primary);
    border-color: var(--color-primary);
}

.btn-loader.btn-ga-cta:disabled {
    color: white;
    background-color: var(--color-cta);
    border-color: var(--color-cta);
}

.btn-ga-form-box {
    width: 100%;
    margin-top: 1rem;
    font-weight: 700;
    color: var(--color-primary);
    border-top: 1px solid var(--color-grey-medium);
    border-radius: 0;
}

.btn-ga-form-box:hover,
.btn-ga-form-box:focus {
    color: var(--color-primary-dark-1);
    background-color: var(--color-grey-ultralight);
}

.btn-modal-header {
    margin: -0.35rem 0;
}

.btn-vertical {
    min-width: 8.125rem;
    min-height: 7.5rem;
    border-radius: 0;
}
@media (min-width: 375px) {
    .btn-vertical {
        min-width: 8.75rem;
    }
}

.btn-vertical .btn__icon ~ .btn__label {
    margin-left: 0;
    margin-top: 0.5rem;
    display: block;
}

.btn-vertical .btn__icon {
    display: block;
    margin: 0 auto;
}

/* DROPDOWNS */

.dropdown-toggle {
    cursor: pointer;
}

.dropdown-toggle::after {
    margin-left: 0.75rem;
}

.dropdown.show .dropdown-toggle::after {
    border-top: 0;
    border-bottom: 0.3em solid;
}

.dropdown-menu {
    margin: 0;
    padding: 0;
    font-size: 1rem;
    border: 0;
    border-radius: 0;
    box-shadow: rgba(0, 0, 0, 0.1) 0px 0px 0px 1px,
                rgba(0, 0, 0, 0.1) 0px 4px 11px;
    right: 0;
    left: initial;
}

.dropdown-menu--rounded {
    padding: 0.3rem 0;
    border-radius: 0.3rem;
    box-shadow: 0 0.0625rem 0.125rem 0 rgba(0, 0, 0, 0.3),
                0 0.125rem 0.25rem 0 rgba(0, 0, 0, 0.2),
                0 0.25rem 0.5rem 0 rgba(0, 0, 0, 0.1);
}

.dropdown-menu-sm {
    font-size: 0.9rem;
}

.dropdown-item {
    padding: 0.3rem 1.25rem;
    line-height: 1.5;
    color: var(--color-text-muted);
    text-decoration: none;
}

.dropdown-menu--rounded .dropdown-item {
    padding: 0.5rem 1.25rem;
    color: var(--color-text);
    font-size: 0.9rem;
}

.dropdown-menu-sm .dropdown-item {
    padding: 0.25rem 1rem;
}

.dropdown-item:focus,
.dropdown-item:hover {
    color: var(--color-text-muted);
    background-color: var(--color-primary-light-3);
    text-decoration: none;
}

.dropdown-menu--rounded .dropdown-item:focus,
.dropdown-menu--rounded .dropdown-item:hover {
    color: var(--color-text);
}

.dropdown-item.active,
.dropdown-item:active {
    color: var(--color-text);
    background-color: var(--color-primary-light-2);
    font-weight: 500;
}

.dropdown-menu--rounded .dropdown-item.active,
.dropdown-menu--rounded .dropdown-item:active {
    font-weight: 400;
}

.dropdown-divider {
    border-top: 1px solid var(--color-grey-medium);
    margin: 0.5rem 0.25rem;
}

.dropdown-menu--rounded .dropdown-divider {
    margin: 0.3rem 0.25rem;
}

.dropdown-menu-sm .dropdown-divider {
    margin: 0.4rem 0.25rem;
}

.dropdown-header {
    padding: 0.3rem 1.25rem;
    font-size: 0.8rem;
    line-height: 1.5;
    color: var(--color-text-muted);
}

/* LIST GROUP */

.list-group-item {
    padding: 0.75rem;
    display: flex;
    flex-wrap: wrap;
}
@media (min-width: 576px) {
    .list-group-item {
        padding: 0.5rem 1.25rem;
        flex-wrap: nowrap;
    }
    .list-group-lg .list-group-item {
        padding: 0.75rem 1.5rem;
    }
}

.list-group-item__label {
    flex: 0 0 100%;
    justify-content: space-between;
    display: flex;
    margin-bottom: 0.25rem;
    font-size: 0.95rem;
    font-weight: 400;
    color: var(--color-text-muted);
    overflow-wrap: anywhere;
}
@media (min-width: 576px) {
    .list-group-item__label {
        padding-right: 1.25rem;
        margin-bottom: 0;
        flex: 0 0 38.197%;
    }
}
@media (min-width: 1200px) {
    .list-group-item__label {
        flex: 0 0 28.197%;
    }
}

.list-group-item__label > span {
    flex-grow: 1;
}

.list-group-item__content {
    position: relative;
    flex: 0 0 100%;
    font-size: 1rem;
    margin-bottom: 0;
}
@media (min-width: 576px) {
    .list-group-item__content {
        flex: 0 0 61.803%;
    }
}
@media (min-width: 1200px) {
    .list-group-item__content {
        flex: 0 0 71.803%;
    }
}

.list-group-item__info {
    margin-left: 0.5rem;
    color: var(--color-text-muted);
}

.list-group-item__info .alert-icon {
    margin: 0;
    cursor: pointer;
}

.list-group-item__show-more {
    position: absolute;
    top: 0;
    right: 0;
    padding: 0 0.5rem;
}

.alert .list-group-item__show-more {
    top: 0.4375rem;
    right: 0.4375rem;
}

.list-group-item__item {
    margin: 0 2.5rem 0 0;
}

.list-group-item__more-content .list-group-item__item {
    margin-top: 0.75rem;
}

.list-group-flush > .list-group-item:last-child {
    border-bottom: 1px solid rgba(0, 0, 0, 0.125);
}

.list-group--linked .list-group-item {
    padding: 1.25rem;
    color: var(--color-primary);
    background-color: transparent;
    text-decoration: none;
    cursor: pointer;
}

.list-group--linked .list-group-item:hover {
    background-color: var(--color-grey-ultralight);
    color: var(--color-primary-dark-2);
    text-decoration: none;
}

.list-group--linked .list-group-item:focus {
    outline: 0;
    box-shadow: 0 0 0 0.2rem rgba(0, 113, 235, 0.25);
}

.list-group--linked .list-group-item:focus:not(:focus-visible) {
    outline: 0;
    box-shadow: none;
}

.list-group--linked .list-group-item:focus-visible {
    outline: 0;
    box-shadow: 0 0 0 0.2rem rgba(0, 113, 235, 0.25);
}

.list-group--centered .list-group-item {
    align-items: center;
    flex-wrap: nowrap;
}

.list-group--centered .list-group-item__content {
    flex: 1 1 auto;
}

/* MODAL */

.modal-open {
    padding: 0 !important;
    overflow: unset;
}

.modal-open .modal {
    padding: 0 !important;
    overscroll-behavior-y: contain;
}

.modal {
    z-index: 999999999;
}

.modal-backdrop {
    z-index: 999999998;
}

.modal-dialog--black .modal-content {
    background-color: black !important;
    color: white;
}

.modal-dialog--black .modal-header {
    background-color: black !important;
    color: white;
    border-bottom-color: var(--color-text);
}

.modal-dialog--black .btn-ga-link-grey {
    color: var(--color-grey-medium);
}

.modal-dialog--black .btn-ga-link-grey:hover {
    color: white;
}

.modal-dialog--full {
    width: 100%;
    max-width: none;
    height: 100%;
    max-height: none;
    margin: 0;
}

.modal-dialog--full .modal-content {
    height: 100%;
    border: 0;
    border-radius: 0;
}

.modal-dialog--full.modal-dialog-scrollable .modal-content {
    max-height: none;
}

.modal-dialog--full .modal-header,
.modal-dialog--full .modal-footer {
    border-radius: 0;
}

.modal-dialog--fixed {
    width: 100%;
    max-width: 100%;
    height: 100%;
    max-height: 100%;
    margin: 0;
    overflow: hidden;
    transition: height 0.2s ease-out;
}

.modal-dialog--fixed .modal-content {
    z-index: 9999;
    height: 100%;
    overflow: hidden;
    border: none;
    border-radius: 0;
}

.modal-dialog--fixed .modal-body {
    height: calc(100% - 61px);
}

.modal-dialog-scrollable .modal-body {
    overflow-x: hidden;
}

.modal-content {
    border: 1px solid var(--color-grey-medium);
    border-radius: 0.2rem;
    box-shadow: 0 0.625rem 1.25rem rgba(0, 0, 0, 0.3);
    font-size: 1rem;
}

.modal-header {
    position: relative;
    z-index: 1;
    padding: 0.4rem 15px;
    align-items: center;
    border-bottom: none;
    border-top-right-radius: 0.2rem;
    border-top-left-radius: 0.2rem;
}
@media (min-width: 768px) {
    .modal-header {
        padding: 0.5rem 1.5rem;
        border-bottom: 1px solid var(--color-grey-medium);
    }
}
@media screen and (max-height: 767px) and (orientation: landscape) {
    .modal-header {
        padding: 0.4rem 15px;
    }
}
@supports (padding: max(0px)) {
    .modal-header {
        padding-left: max(15px, env(safe-area-inset-left));
        padding-right: max(15px, env(safe-area-inset-right));
    }
    @media (min-width: 768px) {
        .modal-header {
            padding-left: max(2.5rem, env(safe-area-inset-left));
            padding-right: max(2.5rem, env(safe-area-inset-right));
        }
    }
    @media screen and (max-height: 767px) and (orientation: landscape) {
        .modal-header {
            padding-left: max(15px, env(safe-area-inset-left));
            padding-right: max(15px, env(safe-area-inset-right));
        }
    }
}

.modal-header--simple {
    border-bottom: none !important;
}

.modal-header .close {
    padding: 0.5rem 1rem;
    margin: -0.5rem -1rem -0.5rem auto;
}

.modal-title {
    font-weight: 700;
    font-size: 1.15rem;
}
@media (min-width: 768px) {
    .modal-title {
        font-size: 1.25rem;
    }
}

.modal-body {
    padding: 1rem 15px;
}
@media (min-width: 576px) {
    .modal-body {
        padding: 1.5rem 2.5rem;
    }
}
@media screen and (max-height: 767px) and (orientation: landscape) {
    .modal-body {
        padding: 1rem 15px;
    }
}
@supports (padding: max(0px)) {
    .modal-body {
        padding-left: max(15px, env(safe-area-inset-left));
        padding-right: max(15px, env(safe-area-inset-right));
    }
    @media (min-width: 576px) {
        .modal-body {
            padding-left: max(2.5rem, env(safe-area-inset-left));
            padding-right: max(2.5rem, env(safe-area-inset-right));
        }
    }
    @media screen and (max-height: 767px) and (orientation: landscape) {
        .modal-body {
            padding-left: max(15px, env(safe-area-inset-left));
            padding-right: max(15px, env(safe-area-inset-right));
        }
    }
}

.modal-body__title {
    margin: 0.4rem 0 2rem;
    font-size: 1.5rem;
    font-weight: 700;
    text-align: center;
    line-height: 1.3;
}
@media (min-width: 576px) {
    .modal-body__title {
        margin: 0.5rem 0 2.5rem;
        font-size: 1.75rem;
    }
}

.modal-body__message {
    font-size: 1rem;
    margin-top: 1rem;
    margin-bottom: 2rem;
    text-align: center;
}

.modal-body__message h5 {
    font-weight: 700;
    margin-bottom: 2rem;
}

.modal-body__message--big {
    font-size: 1.25rem;
}

.modal-body__info {
    margin-top: 1rem;
}

.modal-body__info--icon {
    margin-right: 0.75rem;
}

.modal-body__info-detail {
    font-size: 0.8rem;
    color: var(--color-text-muted);
    margin-bottom: 1rem;
    padding-top: 0.25rem;
}

.modal-body__block-link-container {
    height: 100%;
    display: grid;
    row-gap: 1rem;
}
@media (min-height: 576px) {
    .modal-body__block-link-container {
        row-gap: 1.25rem;
    }
}

.modal-body__block-link-container .dropdown-menu__block-link {
    height: 100%;
    display: flex;
    flex-wrap: wrap;
    align-content: center;
    justify-content: center;
    padding: 1rem 1.5rem;
    border: 1px solid var(--color-grey-medium);
    box-shadow: 0 0 0.375rem 0 rgba(0, 0, 0, 0.2);
}
@media (min-width: 375px) and (min-height: 576px) {
    .modal-body__block-link-container .dropdown-menu__block-link {
        padding: 1rem 2rem;
    }
}

.modal-body__block-link-container .dropdown-menu__block-link:focus {
    box-shadow: 0 0 0.375rem 0 rgba(0, 0, 0, 0.2);
}

.modal-body__block-link-container .dropdown-menu__block-link .dropdown-menu__title {
    font-size: 1.4rem;
    margin-bottom: 0.5rem;
}
@media (min-width: 375px) {
    .modal-body__block-link-container .dropdown-menu__block-link .dropdown-menu__title {
        font-size: 1.5rem;
    }
}
@media (min-height: 576px) {
    .modal-body__block-link-container .dropdown-menu__block-link .dropdown-menu__title {
        margin-bottom: 1rem;
    }
}

.modal-body__block-link-container .dropdown-menu__block-link .media {
    align-items: center;
    width: 100%;
    margin-bottom: 0.75rem;
}
@media (min-height: 576px) {
    .modal-body__block-link-container .dropdown-menu__block-link .media {
        margin-bottom: 1.25rem;
    }
}

.modal-body__block-link-container .dropdown-menu__block-link .media-img {
    width: 25vw;
    height: 25vw;
    margin: 0 1rem 0 0;
}
@media (min-width: 375px) {
    .modal-body__block-link-container .dropdown-menu__block-link .media-img {
        margin: 0 1.5rem 0 0;
    }
}

.modal-body__footer {
    text-align: center;
}

.modal-footer {
    padding: 0 15px 1.5rem;
    border: none;
    border-bottom-right-radius: 0.2rem;
    border-bottom-left-radius: 0.2rem;
}
@media (min-width: 576px) {
    .modal-footer {
        padding: 0 2.5rem 1.5rem;
    }
}
@media screen and (max-height: 767px) and (orientation: landscape) {
    .modal-footer {
        padding: 0 15px 1rem;
    }
}
@supports (padding: max(0px)) {
    .modal-footer {
        padding-left: max(15px, env(safe-area-inset-left));
        padding-right: max(15px, env(safe-area-inset-right));
    }
    @media (min-width: 576px) {
        .modal-footer {
            padding-left: max(2.5rem, env(safe-area-inset-left));
            padding-right: max(2.5rem, env(safe-area-inset-right));
        }
    }
    @media screen and (max-height: 767px) and (orientation: landscape) {
        .modal-footer {
            padding-left: max(15px, env(safe-area-inset-left));
            padding-right: max(15px, env(safe-area-inset-right));
        }
    }
    .modal-dialog--full .modal-footer {
        padding-bottom: max(1.5rem, calc(env(safe-area-inset-bottom)) + 1.5rem);
    }
    @media (min-width: 576px) {
        .modal-dialog--full .modal-footer {
            padding-bottom: max(1.5rem, calc(env(safe-area-inset-bottom)) + 1.5rem);
        }
    }
    @media screen and (max-height: 767px) and (orientation: landscape) {
        .modal-dialog--full .modal-footer {
            padding-bottom: max(1rem, calc(env(safe-area-inset-bottom)) + 1rem);
        }
    }
}

.modal-footer--cta {
    padding: 0.5rem 15px !important;
    z-index: 999;
}
@supports (padding: max(0px)) {
    .modal-footer--cta {
        padding-bottom: max(0.5rem, calc(env(safe-area-inset-bottom)) + 0.5rem) !important;
    }
}

.modal-footer > * {
    margin: 0;
}

/* Modal sheet */
.modal-sheet {
    margin: 0;
    max-width: 100%;
    height: 100%;
    display: flex;
    align-items: flex-end;
}

.modal-sheet.modal-dialog-scrollable {
    max-height: none;
}

.modal-sheet.modal-dialog-centered.modal-dialog-scrollable {
    justify-content: flex-end;
}

.modal.fade .modal-dialog.modal-sheet {
    transform: translate(0, 100px);
}

.modal.show .modal-dialog.modal-sheet {
    transform: none;
}

.modal-sheet .modal-content {
    height: calc(100% - 50px);
    border: none;
    border-top-left-radius: 0.5rem;
    border-top-right-radius: 0.5rem;
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
}

.modal-sheet .modal-header {
    align-items: center;
    flex-shrink: 0;
    border-bottom: 1px solid var(--color-grey-medium);
    padding-top: 1rem;
    padding-bottom: 1rem;
}

.modal-sheet__title {
    margin: 0;
    font-size: 1.25rem;
}

.modal-sheet__subtitle {
    margin: 0;
    overflow: hidden;
    font-size: 0.85rem;
    color: var(--color-text-muted);
    text-overflow: ellipsis;
    white-space: nowrap;
}

.modal-sheet .modal-body {
    padding: 0;
}

.close-text {
    position: relative;
    top: -0.375rem;
    padding-right: 0.375rem;
    font-size: 1rem;
    font-weight: 400;
}

.success-message {
    font-size: 1.75rem;
    color: var(--color-success);
}
@media (min-width: 576px) {
    .success-message {
        font-size: 2rem;
    }
}
@media (min-width: 1200px) {
    .success-message {
        font-size: 2.25rem;
    }
}

.success-message .title__icon {
    margin-right: 0.75rem;
}


/********************
    ANIMATIONS
********************/

/* FADE IN - FROM LEFT */

@keyframes fadeInLeft {
    from {
        opacity: 0;
        transform: translate3d(-20%, 0, 0);
    }

    to {
        opacity: 1;
        transform: translate3d(0, 0, 0);
    }
}

.fade-in-left {
	animation: fadeInLeft 0.6s cubic-bezier(0.390, 0.575, 0.565, 1.000) both;
}

/* FADE IN - DOWN */

@keyframes fadeInDown {
    from {
        opacity: 0;
        transform: translate3d(0, -20%, 0);
    }

    to {
        opacity: 1;
        transform: translate3d(0, 0, 0);
    }
}

.fade-in-down {
	animation: fadeInDown 0.3s cubic-bezier(0.390, 0.575, 0.565, 1.000) both;
}

/* FADE IN */

@keyframes fadeIn {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}

.fade-in {
	animation: fadeIn 0.6s cubic-bezier(0.390, 0.575, 0.565, 1.000) both;
}

/* FADE OUT */

@keyframes fadeOut {
    from {
        opacity: 1;
    }

    to {
        opacity: 0;
    }
}

.fade-out {
    animation: fadeOut 0.6s ease-out both;
}

/* SCALE IN - FROM LEFT */

@keyframes scaleInLeft {
    0% {
        transform: scale(0);
        transform-origin: 0% 50%;
        opacity: 1;
    }

    100% {
        transform: scale(1);
        transform-origin: 0% 50%;
        opacity: 1;
    }
}

.scale-in-left {
	animation: scaleInLeft 0.3s cubic-bezier(0.250, 0.460, 0.450, 0.940) both;
}

/* SCALE OUT - FROM CENTER */

@keyframes scaleOutCenter {
    0% {
        transform: scale(1);
        opacity: 1;
    }

    100% {
        transform: scale(0);
        opacity: 0;
    }
}

.scale-out-center {
	animation: scaleOutCenter 0.6s cubic-bezier(0.550, 0.085, 0.680, 0.530) both;
}

/* HEARTBEAT */

@keyframes heartbeat {
    0% {
        transform: scale(1);
    }

    14% {
        transform: scale(1.3);
    }

    28% {
        transform: scale(1);
    }

    42% {
        transform: scale(1.3);
    }

    70% {
        transform: scale(1);
    }
}

.heartbeat {
    animation: heartbeat 1.3s ease-in-out;
}

/* PULSE */

@keyframes pulse {
    0%, 80%, 100% {
        transform: scale(0);
    }

    40% {
        transform: scale(1.0);
    }
}

.pulse {
	animation: pulse 1.4s infinite ease-in-out both;
}

/* NO ANIMATION */

@media print, (prefers-reduced-motion: reduce) {
    * {
        animation-duration: 1ms !important;
        transition-duration: 1ms !important;
        animation-iteration-count: 1 !important;
    }

    .fade-out {
        opacity: 0;
    }
}
