* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    /* font-size: calc(16px + (20 - 14) * (100vw - 320px) / (1920 - 320)); */
    /* font-size: 62.5%; */
}

img {
    width: 100%;
    max-width: 100%;
    height: auto;
    vertical-align: middle;
}

a {
    text-decoration: none;
}

input,
button {
    outline: none;
    border: none;
}

.main-wrapper {
    overflow: hidden;
}

.container {
    width: 100%;
    margin-left: auto;
    margin-right: auto;
    max-width: 1320px;
}

.btn {
    outline: none;
    display: block;
    border: none;
    cursor: pointer;
}

/* ---- Padding - Margin */
.p-5 {
    padding: 5px;
}

.p-10 {
    padding: 10px;
}

.p-15 {
    padding: 15px;
}

.p-20 {
    padding: 20px;
}

.p-25 {
    padding: 25px;
}

.p-30 {
    padding: 30px;
}

.p-35 {
    padding: 35px;
}

.p-40 {
    padding: 40px;
}

.p-45 {
    padding: 45px;
}

.p-50 {
    padding: 50px;
}

.ptb-5 {
    padding-top: 5px;
    padding-bottom: 5px;
}

.ptb-10 {
    padding-top: 10px;
    padding-bottom: 10px;
}

.ptb-15 {
    padding-top: 15px;
    padding-bottom: 15px;
}

.ptb-20 {
    padding-top: 20px;
    padding-bottom: 20px;
}

.ptb-25 {
    padding-top: 25px;
    padding-bottom: 25px;
}

.ptb-30 {
    padding-top: 30px;
    padding-bottom: 30px;
}

.ptb-35 {
    padding-top: 35px;
    padding-bottom: 35px;
}

.ptb-40 {
    padding-top: 40px;
    padding-bottom: 40px;
}

.ptb-45 {
    padding-top: 45px;
    padding-bottom: 45px;
}

.ptb-50 {
    padding-top: 50px;
    padding-bottom: 50px;
}

.plr-5 {
    padding-left: 5px;
    padding-right: 5px;
}

.plr-10 {
    padding-left: 10px;
    padding-right: 10px;
}

.plr-15 {
    padding-left: 15px;
    padding-right: 15px;
}

.plr-20 {
    padding-left: 20px;
    padding-right: 20px;
}

.plr-25 {
    padding-left: 25px;
    padding-right: 25px;
}

.plr-30 {
    padding-left: 30px;
    padding-right: 30px;
}

.plr-35 {
    padding-left: 35px;
    padding-right: 35px;
}

.plr-40 {
    padding-left: 40px;
    padding-right: 40px;
}

.plr-45 {
    padding-left: 45px;
    padding-right: 45px;
}

.plr-50 {
    padding-left: 50px;
    padding-right: 50px;
}

.pl-5 {
    padding-left: 5px;
}

.pl-10 {
    padding-left: 10px;
}

.pl-15 {
    padding-left: 15px;
}

.pl-20 {
    padding-left: 20px;
}

.pl-25 {
    padding-left: 25px;
}

.pl-30 {
    padding-left: 30px;
}

.pl-35 {
    padding-left: 35px;
}

.pl-40 {
    padding-left: 40px;
}

.pl-45 {
    padding-left: 45px;
}

.pl-50 {
    padding-left: 50px;
}

.pr-5 {
    padding-right: 5px;
}

.pr-10 {
    padding-right: 10px;
}

.pr-15 {
    padding-right: 15px;
}

.pr-20 {
    padding-right: 20px;
}

.pr-25 {
    padding-right: 25px;
}

.pr-30 {
    padding-right: 30px;
}

.pr-35 {
    padding-right: 35px;
}

.pr-40 {
    padding-right: 40px;
}

.pr-45 {
    padding-right: 45px;
}

.pr-50 {
    padding-right: 50px;
}

.pt-5 {
    padding-top: 5px;
}

.pt-10 {
    padding-top: 10px;
}

.pt-15 {
    padding-top: 15px;
}

.pt-20 {
    padding-top: 20px;
}

.pt-25 {
    padding-top: 25px;
}

.pt-30 {
    padding-top: 30px;
}

.pt-35 {
    padding-top: 35px;
}

.pt-40 {
    padding-top: 40px;
}

.pt-45 {
    padding-top: 45px;
}

.pt-50 {
    padding-top: 50px;
}

.pb-5 {
    padding-bottom: 5px;
}

.pb-10 {
    padding-bottom: 10px;
}

.pb-15 {
    padding-bottom: 15px;
}

.pb-20 {
    padding-bottom: 20px;
}

.pb-25 {
    padding-bottom: 25px;
}

.pb-30 {
    padding-bottom: 30px;
}

.pb-35 {
    padding-bottom: 35px;
}

.pb-40 {
    padding-bottom: 40px;
}

.pb-45 {
    padding-bottom: 45px;
}

.pb-50 {
    padding-bottom: 50px;
}

/* --- margin */
.m-5 {
    margin: 5px;
}

.mtb-5 {
    margin-top: 5px;
    margin-bottom: 5px;
}

.mlr-5 {
    margin-left: 5px;
    margin-right: 5px;
}

.mt-5 {
    margin-top: 5px;
}

.mt-10 {
    margin-top: 10px;
}

.mt-15 {
    margin-top: 15px;
}

.mt-20 {
    margin-top: 20px;
}

.mt-25 {
    margin-top: 25px;
}

.mt-30 {
    margin-top: 30px;
}

.mt-35 {
    margin-top: 35px;
}

.mt-40 {
    margin-top: 40px;
}

.mt-45 {
    margin-top: 45px;
}

.mt-50 {
    margin-top: 50px;
}

.mb-5 {
    margin-bottom: 5px;
}

.mb-10 {
    margin-bottom: 10px;
}

.mb-15 {
    margin-bottom: 15px;
}

.mb-20 {
    margin-bottom: 20px;
}

.mb-25 {
    margin-bottom: 25px;
}

.mb-30 {
    margin-bottom: 30px;
}

.mb-35 {
    margin-bottom: 35px;
}

.mb-40 {
    margin-bottom: 40px;
}

.mb-45 {
    margin-bottom: 45px;
}

.mb-50 {
    margin-bottom: 50px;
}

.ml-5 {
    margin-left: 5px;
}

.mr-5 {
    margin-right: 5px;
}

.mr-40 {
    margin-right: 40px;
}

/* ---- End Padding - Margin */
.text-center {
    text-align: center;
}

.text-left {
    text-align: left;
}

.text-right {
    text-align: right;
}

/* ---- Width  */
.w-10 {
    width: 10%;
}

.w-20 {
    width: 20%;
}

.w-30 {
    width: 30%;
}

.w-40 {
    width: 40%;
}

.w-50 {
    width: 50%;
}

.w-60 {
    width: 60%;
}

.w-70 {
    width: 70%;
}

.w-80 {
    width: 80%;
}

.w-90 {
    width: 90%;
}

.w-100 {
    width: 100%;
}

.h-100 {
    height: 100px;
}

/* ---- End Width  */
.gap-5 {
    gap: 5px;
}

.gap-10 {
    gap: 10px;
}

.gap-15 {
    gap: 15px;
}

.gap-20 {
    gap: 20px;
}

.gap-30 {
    grid-gap: 30px;
}

.gap-35 {
    grid-gap: 35px;
}

.gap-40 {
    grid-gap: 40px;
}

.gap-45 {
    gap: 45px;
}

.gap-50 {
    gap: 50px;
}

.grid {
    display: grid;
}

.grid-col-1 {
    grid-template-columns: repeat(1, minmax(0, 1fr));
}

.grid-col-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.grid-col-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.grid-col-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.grid-col-5 {
    grid-template-columns: repeat(5, minmax(0, 1fr));
}

.grid-col-6 {
    grid-template-columns: repeat(6, minmax(0, 1fr));
}

.grid-col-7 {
    grid-template-columns: repeat(7, minmax(0, 1fr));
}

.grid-col-8 {
    grid-template-columns: repeat(8, minmax(0, 1fr));
}

.grid-col-9 {
    grid-template-columns: repeat(9, minmax(0, 1fr));
}

.grid-col-10 {
    grid-template-columns: repeat(10, minmax(0, 1fr));
}

.grid-col-11 {
    grid-template-columns: repeat(11, minmax(0, 1fr));
}

.grid-col-12 {
    grid-template-columns: repeat(12, minmax(0, 1fr));
}

.grid-col-none {
    grid-template-columns: none;
}

/* Mobile */
@media (min-width:550px) {
    .grid-col-x-1 {
        grid-template-columns: repeat(1, minmax(0, 1fr));
    }

    .grid-col-x-2 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .grid-col-x-3 {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .grid-col-x-4 {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .grid-col-x-5 {
        grid-template-columns: repeat(5, minmax(0, 1fr));
    }

    .grid-col-x-6 {
        grid-template-columns: repeat(6, minmax(0, 1fr));
    }

    .grid-col-x-7 {
        grid-template-columns: repeat(7, minmax(0, 1fr));
    }

    .grid-col-x-8 {
        grid-template-columns: repeat(8, minmax(0, 1fr));
    }

    .grid-col-x-9 {
        grid-template-columns: repeat(9, minmax(0, 1fr));
    }

    .grid-col-x-10 {
        grid-template-columns: repeat(10, minmax(0, 1fr));
    }

    .grid-col-x-11 {
        grid-template-columns: repeat(11, minmax(0, 1fr));
    }

    .grid-col-x-12 {
        grid-template-columns: repeat(12, minmax(0, 1fr));
    }

    .grid-col-x-none {
        grid-template-columns: none;
    }
}

/* Table */
@media (min-width:767px) {

    /* ---- Padding - Margin */
    .main-wrapper {
        overflow: visible;
    }

    .p-m-5 {
        padding: 5px;
    }

    .p-m-10 {
        padding: 10px;
    }

    .p-m-15 {
        padding: 15px;
    }

    .p-m-20 {
        padding: 20px;
    }

    .p-m-25 {
        padding: 25px;
    }

    .p-m-30 {
        padding: 30px;
    }

    .p-m-35 {
        padding: 35px;
    }

    .p-m-40 {
        padding: 40px;
    }

    .p-m-45 {
        padding: 45px;
    }

    .p-m-50 {
        padding: 50px;
    }

    .ptb-m-5 {
        padding-top: 5px;
        padding-bottom: 5px;
    }

    .ptb-m-10 {
        padding-top: 10px;
        padding-bottom: 10px;
    }

    .ptb-m-15 {
        padding-top: 15px;
        padding-bottom: 15px;
    }

    .ptb-m-20 {
        padding-top: 20px;
        padding-bottom: 20px;
    }

    .ptb-m-25 {
        padding-top: 25px;
        padding-bottom: 25px;
    }

    .ptb-m-30 {
        padding-top: 30px;
        padding-bottom: 30px;
    }

    .ptb-m-35 {
        padding-top: 35px;
        padding-bottom: 35px;
    }

    .ptb-m-40 {
        padding-top: 40px;
        padding-bottom: 40px;
    }

    .ptb-m-45 {
        padding-top: 45px;
        padding-bottom: 45px;
    }

    .ptb-m-50 {
        padding-top: 50px;
        padding-bottom: 50px;
    }

    .plr-m-5 {
        padding-left: 5px;
        padding-right: 5px;
    }

    .plr-m-10 {
        padding-left: 10px;
        padding-right: 10px;
    }

    .plr-m-15 {
        padding-left: 15px;
        padding-right: 15px;
    }

    .plr-m-20 {
        padding-left: 20px;
        padding-right: 20px;
    }

    .plr-m-25 {
        padding-left: 25px;
        padding-right: 25px;
    }

    .plr-m-30 {
        padding-left: 30px;
        padding-right: 30px;
    }

    .plr-m-35 {
        padding-left: 35px;
        padding-right: 35px;
    }

    .plr-m-40 {
        padding-left: 40px;
        padding-right: 40px;
    }

    .plr-m-45 {
        padding-left: 45px;
        padding-right: 45px;
    }

    .plr-m-50 {
        padding-left: 50px;
        padding-right: 50px;
    }

    .pl-m-5 {
        padding-left: 5px;
    }

    .pl-m-10 {
        padding-left: 10px;
    }

    .pl-m-15 {
        padding-left: 15px;
    }

    .pl-m-20 {
        padding-left: 20px;
    }

    .pl-m-25 {
        padding-left: 25px;
    }

    .pl-m-30 {
        padding-left: 30px;
    }

    .pl-m-35 {
        padding-left: 35px;
    }

    .pl-m-40 {
        padding-left: 40px;
    }

    .pl-m-45 {
        padding-left: 45px;
    }

    .pl-m-50 {
        padding-left: 50px;
    }

    .pr-m-5 {
        padding-right: 5px;
    }

    .pr-m-10 {
        padding-right: 10px;
    }

    .pr-m-15 {
        padding-right: 15px;
    }

    .pr-m-20 {
        padding-right: 20px;
    }

    .pr-m-25 {
        padding-right: 25px;
    }

    .pr-m-30 {
        padding-right: 30px;
    }

    .pr-m-35 {
        padding-right: 35px;
    }

    .pr-m-40 {
        padding-right: 40px;
    }

    .pr-m-45 {
        padding-right: 45px;
    }

    .pr-m-50 {
        padding-right: 50px;
    }

    .pt-m-5 {
        padding-top: 5px;
    }

    .pt-m-10 {
        padding-top: 10px;
    }

    .pt-m-15 {
        padding-top: 15px;
    }

    .pt-m-20 {
        padding-top: 20px;
    }

    .pt-m-25 {
        padding-top: 25px;
    }

    .pt-m-30 {
        padding-top: 30px;
    }

    .pt-m-35 {
        padding-top: 35px;
    }

    .pt-m-40 {
        padding-top: 40px;
    }

    .pt-m-45 {
        padding-top: 45px;
    }

    .pt-m-50 {
        padding-top: 50px;
    }

    .pb-m-5 {
        padding-bottom: 5px;
    }

    .pb-m-10 {
        padding-bottom: 10px;
    }

    .pb-m-15 {
        padding-bottom: 15px;
    }

    .pb-m-20 {
        padding-bottom: 20px;
    }

    .pb-m-25 {
        padding-bottom: 25px;
    }

    .pb-m-30 {
        padding-bottom: 30px;
    }

    .pb-m-35 {
        padding-bottom: 35px;
    }

    .pb-m-40 {
        padding-bottom: 40px;
    }

    .pb-m-45 {
        padding-bottom: 45px;
    }

    .pb-m-50 {
        padding-bottom: 50px;
    }

    /* ---- End Padding - Margin */
    .gap-m-5 {
        gap: 5px;
    }

    .gap-m-10 {
        gap: 10px;
    }

    .gap-m-15 {
        gap: 15px;
    }

    .gap-m-20 {
        gap: 20px;
    }

    .gap-m-30 {
        gap: 30px;
    }

    .grid-col-m-1 {
        grid-template-columns: repeat(1, minmax(0, 1fr));
    }

    .grid-col-m-2 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .grid-col-m-3 {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .grid-col-m-4 {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .grid-col-m-5 {
        grid-template-columns: repeat(5, minmax(0, 1fr));
    }

    .grid-col-m-6 {
        grid-template-columns: repeat(6, minmax(0, 1fr));
    }

    .grid-col-m-7 {
        grid-template-columns: repeat(7, minmax(0, 1fr));
    }

    .grid-col-m-8 {
        grid-template-columns: repeat(8, minmax(0, 1fr));
    }

    .grid-col-m-9 {
        grid-template-columns: repeat(9, minmax(0, 1fr));
    }

    .grid-col-m-10 {
        grid-template-columns: repeat(10, minmax(0, 1fr));
    }

    .grid-col-m-11 {
        grid-template-columns: repeat(11, minmax(0, 1fr));
    }

    .grid-col-m-12 {
        grid-template-columns: repeat(12, minmax(0, 1fr));
    }

    .grid-col-m-none {
        grid-template-columns: none;
    }
}

/* Desktop */
@media (min-width:1023px) {
    /* --- Margin */

    .mlr-l-40 {
        margin-left: 40px;
        margin-right: 40px;
    }

    .mr-l-40 {
        margin-right: 40px;
    }

    /* --- End Margin */
    .gap-l-5 {
        gap: 5px;
    }

    .gap-l-10 {
        gap: 10px;
    }

    .gap-l-20 {
        gap: 20px;
    }

    .gap-l-30 {
        gap: 30px;
    }

    .grid-col-l-1 {
        grid-template-columns: repeat(1, minmax(0, 1fr));
    }

    .grid-col-l-2 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .grid-col-l-3 {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .grid-col-l-4 {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .grid-col-l-5 {
        grid-template-columns: repeat(5, minmax(0, 1fr));
    }

    .grid-col-l-6 {
        grid-template-columns: repeat(6, minmax(0, 1fr));
    }

    .grid-col-l-7 {
        grid-template-columns: repeat(7, minmax(0, 1fr));
    }

    .grid-col-l-8 {
        grid-template-columns: repeat(8, minmax(0, 1fr));
    }

    .grid-col-l-9 {
        grid-template-columns: repeat(9, minmax(0, 1fr));
    }

    .grid-col-l-10 {
        grid-template-columns: repeat(10, minmax(0, 1fr));
    }

    .grid-col-l-11 {
        grid-template-columns: repeat(11, minmax(0, 1fr));
    }

    .grid-col-l-12 {
        grid-template-columns: repeat(12, minmax(0, 1fr));
    }

    .grid-col-l-none {
        grid-template-columns: none;
    }
}