:root {
    --transition-default: 0.3s all ease-in-out;
    --font-theme: 'Inter', Arial, Helvetica, sans-serif;
    --size-theme: 14px;
    --bs-border-radius-sm: 0;
    --bs-card-border-radius: 0;
    --bs-border-radius: 0;
    --bs-btn-border-radius: 0;
    --bs-alert-border-radius: 0;
}

body {
    position: relative;
    width: 100%;
    color: var(--bs-gray-800);
    font-family: var(--font-theme);
    font-size: var(--size-theme);
    font-weight: 400;
    font-style: normal;
    background-color: #fff;
}

a,
a:hover,
a:focus {
    outline: none;
    text-decoration: none;
    cursor: pointer;
    -o-transition: var(--transition-default);
    transition: var(--transition-default);
    -webkit-transition: var(--transition-default);
}

button,
button:hover,
button:focus {
    -webkit-box-shadow: none !important;
    box-shadow: none !important;
    outline: none !important;
    text-decoration: none !important;
    cursor: pointer;
    -o-transition: var(--transition-default);
    transition: var(--transition-default);
    -webkit-transition: var(--transition-default);
    cursor: pointer !important;
}

input,
select,
textarea {
    -o-transition: var(--transition-default);
    transition: var(--transition-default);
    -webkit-transition: var(--transition-default);
}

input:focus,
select:focus,
textarea:focus {
    box-shadow: inset 0 1px 1px rgb(0 0 0 / 8%), 0 0 8px rgb(102 175 233 / 60%) !important;
    -webkit-box-shadow: inset 0 1px 1px rgb(0 0 0 / 8%), 0 0 8px rgb(102 175 233 / 60%) !important;
    outline: none !important;
    border-color: #66afe9 !important;
}

.transition-default {
    -o-transition: var(--transition-default);
    transition: var(--transition-default);
    -webkit-transition: var(--transition-default);
}

.background-cover {
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
}

.image-cover {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover;
}

.image-contain {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    -o-object-fit: contain;
    object-fit: contain;
}

.object-fit-cover {
    -o-object-fit: cover;
    object-fit: cover;
}

.object-fit-contain {
    -o-object-fit: contain;
    object-fit: contain;
}

.pseudo {
    position: relative;
}

.pseudo:before,
.pseudo:after {
    position: absolute;
    content: '';
    display: block;
}

.limit {
    --line: 2;
    overflow: hidden;
    -o-text-overflow: ellipsis;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: var(--line);
    line-clamp: var(--line);
    -webkit-box-orient: vertical;
}

input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

input[type='number'] {
    -moz-appearance: textfield;
}

.form-mobile input[type=date]::-webkit-inner-spin-button,
.form-mobile input[type=date]::-webkit-calendar-picker-indicator,
.form-mobile input[type=datetime-local]::-webkit-inner-spin-button,
.form-mobile input[type=datetime-local]::-webkit-calendar-picker-indicator,
.form-mobile input[type=month]::-webkit-inner-spin-button,
.form-mobile input[type=month]::-webkit-calendar-picker-indicator,
.form-mobile input[type=time]::-webkit-inner-spin-button,
.form-mobile input[type=time]::-webkit-calendar-picker-indicator {
    opacity: 0;
}

.form-mobile > span:before {
    position: absolute;
    content: "\f073";
    font-family: "Font Awesome 5 Pro";
    font-size: var(--size-theme);
    color: var(--bs-gray-700);
    top: 50%;
    right: 0.75rem;
    transform: translateY(-50%);
    pointer-events: none;
}

.zi--1 {
    z-index: -1;
}

.zi-1 {
    z-index: 1;
}

.zi-2 {
    z-index: 2;
}

.zi-3 {
    z-index: 3;
}

.zi-4 {
    z-index: 4;
}

.zi-5 {
    z-index: 5;
}

.zi-10 {
    z-index: 10;
}

.ratio > img {
    -o-object-fit: cover;
    object-fit: cover;
}

.ratio-2x1 {
    --bs-aspect-ratio: 50%;
}

.ratio-3x2 {
    --bs-aspect-ratio: calc(2 / 3 * 100%);
}

.gap-5px {
    gap: 5px;
}

.gap-10px {
    gap: 10px;
}

.gap-15px {
    gap: 15px;
}

.gap-20px {
    gap: 20px;
}

.gap-25px {
    gap: 25px;
}

.gap-30px {
    gap: 30px;
}

.link-default {
    display: -webkit-inline-box;
    display: -ms-inline-flexbox;
    display: inline-flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    vertical-align: middle;
    border: 0;
    outline: none;
    -webkit-box-shadow: none;
    box-shadow: none;
    background: transparent;
    padding: 0;
}

.flex-same {
    -webkit-box-flex: 1 !important;
    -ms-flex: 1 1 0px !important;
    flex: 1 1 0 !important;
}

.fz-10 {
    font-size: .7em;
}

.fz-11 {
    font-size: .775em;
}

.fz-12 {
    font-size: .85em;
}

.fz-13 {
    font-size: .925em;
}

.fz-14 {
    font-size: 1em;
}

.fz-15 {
    font-size: 1.075em;
}

.fz-16 {
    font-size: 1.15em;
}

.fz-17 {
    font-size: 1.225em;
}

.fz-18 {
    font-size: 1.3em;
}

.fz-19 {
    font-size: 1.375em;
}

.fz-20 {
    font-size: 1.45em;
}

.fz-21 {
    font-size: 1.525em;
}

.fz-22 {
    font-size: 1.6em;
}

.fz-23 {
    font-size: 1.675em;
}

.fz-24 {
    font-size: 1.75em;
}

.mw-25px {
    min-width: 25px !important;
}

.mw-50px {
    min-width: 50px !important;
}

.mw-75px {
    min-width: 75px !important;
}

.mw-100px {
    min-width: 100px !important;
}

.form-control,
.form-select {
    border-radius: 0;
}

.card {
    --bs-card-border-radius: 0;

}

.alert {
    --bs-alert-border-radius: 0;
}

.btn {
    --bs-btn-border-radius: 0;
}

.modal  {
    --bs-modal-border-radius: 0;
}
