/* =========================================
   GRID BASE
========================================= */
.lm-grid {
    display: grid;
    gap: 1rem;
}

/* =========================================
   EXTRA SMALL DEVICES (<576px)
========================================= */
.lm-col-1 {
    grid-template-columns: repeat(1, 1fr);
}

.lm-col-2 {
    grid-template-columns: repeat(2, 1fr);
}

.lm-col-3 {
    grid-template-columns: repeat(3, 1fr);
}

.lm-col-4 {
    grid-template-columns: repeat(4, 1fr);
}

.lm-col-5 {
    grid-template-columns: repeat(5, 1fr);
}

.lm-col-6 {
    grid-template-columns: repeat(6, 1fr);
}

.lm-col-7 {
    grid-template-columns: repeat(7, 1fr);
}

.lm-col-8 {
    grid-template-columns: repeat(8, 1fr);
}

.lm-col-9 {
    grid-template-columns: repeat(9, 1fr);
}

.lm-col-10 {
    grid-template-columns: repeat(10, 1fr);
}

.lm-col-11 {
    grid-template-columns: repeat(11, 1fr);
}

.lm-col-12 {
    grid-template-columns: repeat(12, 1fr);
}

/* =========================================
   GRID GAP UTILITIES
========================================= */

.lm-gap-0 {
    gap: 0;
}

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

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

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

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

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

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

.lm-gap-35 {
    gap: 35px;
}

.lm-gap-40 {
    gap: 40px;
}

.lm-gap-45 {
    gap: 45px;
}

.lm-gap-50 {
    gap: 50px;
}

.lm-gap-55 {
    gap: 55px;
}

.lm-gap-60 {
    gap: 60px;
}


/* =========================================
   SMALL DEVICES (≥576px)
========================================= */
@media (min-width: 576px) {

    .lm-col-sm-1 {
        grid-template-columns: repeat(1, 1fr);
    }

    .lm-col-sm-2 {
        grid-template-columns: repeat(2, 1fr);
    }

    .lm-col-sm-3 {
        grid-template-columns: repeat(3, 1fr);
    }

    .lm-col-sm-4 {
        grid-template-columns: repeat(4, 1fr);
    }

    .lm-col-sm-5 {
        grid-template-columns: repeat(5, 1fr);
    }

    .lm-col-sm-6 {
        grid-template-columns: repeat(6, 1fr);
    }

    .lm-col-sm-7 {
        grid-template-columns: repeat(7, 1fr);
    }

    .lm-col-sm-8 {
        grid-template-columns: repeat(8, 1fr);
    }

    .lm-col-sm-9 {
        grid-template-columns: repeat(9, 1fr);
    }

    .lm-col-sm-10 {
        grid-template-columns: repeat(10, 1fr);
    }

    .lm-col-sm-11 {
        grid-template-columns: repeat(11, 1fr);
    }

    .lm-col-sm-12 {
        grid-template-columns: repeat(12, 1fr);
    }

    .lm-gap-sm-0 {
        gap: 0;
    }

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

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

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

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

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

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

    .lm-gap-sm-35 {
        gap: 35px;
    }

    .lm-gap-sm-40 {
        gap: 40px;
    }

    .lm-gap-sm-45 {
        gap: 45px;
    }

    .lm-gap-sm-50 {
        gap: 50px;
    }

    .lm-gap-sm-55 {
        gap: 55px;
    }

    .lm-gap-sm-60 {
        gap: 60px;
    }
}

/* =========================================
   MEDIUM DEVICES (≥768px)
========================================= */
@media (min-width: 768px) {

    .lm-col-md-1 {
        grid-template-columns: repeat(1, 1fr);
    }

    .lm-col-md-2 {
        grid-template-columns: repeat(2, 1fr);
    }

    .lm-col-md-3 {
        grid-template-columns: repeat(3, 1fr);
    }

    .lm-col-md-4 {
        grid-template-columns: repeat(4, 1fr);
    }

    .lm-col-md-5 {
        grid-template-columns: repeat(5, 1fr);
    }

    .lm-col-md-6 {
        grid-template-columns: repeat(6, 1fr);
    }

    .lm-col-md-7 {
        grid-template-columns: repeat(7, 1fr);
    }

    .lm-col-md-8 {
        grid-template-columns: repeat(8, 1fr);
    }

    .lm-col-md-9 {
        grid-template-columns: repeat(9, 1fr);
    }

    .lm-col-md-10 {
        grid-template-columns: repeat(10, 1fr);
    }

    .lm-col-md-11 {
        grid-template-columns: repeat(11, 1fr);
    }

    .lm-col-md-12 {
        grid-template-columns: repeat(12, 1fr);
    }

    .lm-gap-md-0 {
        gap: 0;
    }

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

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

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

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

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

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

    .lm-gap-md-35 {
        gap: 35px;
    }

    .lm-gap-md-40 {
        gap: 40px;
    }

    .lm-gap-md-45 {
        gap: 45px;
    }

    .lm-gap-md-50 {
        gap: 50px;
    }

    .lm-gap-md-55 {
        gap: 55px;
    }

    .lm-gap-md-60 {
        gap: 60px;
    }
}

/* =========================================
   LARGE DEVICES (≥992px)
========================================= */
@media (min-width: 992px) {

    .lm-col-lg-1 {
        grid-template-columns: repeat(1, 1fr);
    }

    .lm-col-lg-2 {
        grid-template-columns: repeat(2, 1fr);
    }

    .lm-col-lg-3 {
        grid-template-columns: repeat(3, 1fr);
    }

    .lm-col-lg-4 {
        grid-template-columns: repeat(4, 1fr);
    }

    .lm-col-lg-5 {
        grid-template-columns: repeat(5, 1fr);
    }

    .lm-col-lg-6 {
        grid-template-columns: repeat(6, 1fr);
    }

    .lm-col-lg-7 {
        grid-template-columns: repeat(7, 1fr);
    }

    .lm-col-lg-8 {
        grid-template-columns: repeat(8, 1fr);
    }

    .lm-col-lg-9 {
        grid-template-columns: repeat(9, 1fr);
    }

    .lm-col-lg-10 {
        grid-template-columns: repeat(10, 1fr);
    }

    .lm-col-lg-11 {
        grid-template-columns: repeat(11, 1fr);
    }

    .lm-col-lg-12 {
        grid-template-columns: repeat(12, 1fr);
    }

    .lm-gap-lg-0 {
        gap: 0;
    }

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

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

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

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

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

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

    .lm-gap-lg-35 {
        gap: 35px;
    }

    .lm-gap-lg-40 {
        gap: 40px;
    }

    .lm-gap-lg-45 {
        gap: 45px;
    }

    .lm-gap-lg-50 {
        gap: 50px;
    }

    .lm-gap-lg-55 {
        gap: 55px;
    }

    .lm-gap-lg-60 {
        gap: 60px;
    }
}

/* =========================================
   EXTRA LARGE DEVICES (≥1200px)
========================================= */
@media (min-width: 1200px) {

    .lm-col-xl-1 {
        grid-template-columns: repeat(1, 1fr);
    }

    .lm-col-xl-2 {
        grid-template-columns: repeat(2, 1fr);
    }

    .lm-col-xl-3 {
        grid-template-columns: repeat(3, 1fr);
    }

    .lm-col-xl-4 {
        grid-template-columns: repeat(4, 1fr);
    }

    .lm-col-xl-5 {
        grid-template-columns: repeat(5, 1fr);
    }

    .lm-col-xl-6 {
        grid-template-columns: repeat(6, 1fr);
    }

    .lm-col-xl-7 {
        grid-template-columns: repeat(7, 1fr);
    }

    .lm-col-xl-8 {
        grid-template-columns: repeat(8, 1fr);
    }

    .lm-col-xl-9 {
        grid-template-columns: repeat(9, 1fr);
    }

    .lm-col-xl-10 {
        grid-template-columns: repeat(10, 1fr);
    }

    .lm-col-xl-11 {
        grid-template-columns: repeat(11, 1fr);
    }

    .lm-col-xl-12 {
        grid-template-columns: repeat(12, 1fr);
    }

    .lm-gap-xl-0 {
        gap: 0;
    }

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

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

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

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

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

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

    .lm-gap-xl-35 {
        gap: 35px;
    }

    .lm-gap-xl-40 {
        gap: 40px;
    }

    .lm-gap-xl-45 {
        gap: 45px;
    }

    .lm-gap-xl-50 {
        gap: 50px;
    }

    .lm-gap-xl-55 {
        gap: 55px;
    }

    .lm-gap-xl-60 {
        gap: 60px;
    }
}

/* =========================================
   EXTRA EXTRA LARGE DEVICES (≥1400px)
========================================= */
@media (min-width: 1400px) {

    .lm-col-xxl-1 {
        grid-template-columns: repeat(1, 1fr);
    }

    .lm-col-xxl-2 {
        grid-template-columns: repeat(2, 1fr);
    }

    .lm-col-xxl-3 {
        grid-template-columns: repeat(3, 1fr);
    }

    .lm-col-xxl-4 {
        grid-template-columns: repeat(4, 1fr);
    }

    .lm-col-xxl-5 {
        grid-template-columns: repeat(5, 1fr);
    }

    .lm-col-xxl-6 {
        grid-template-columns: repeat(6, 1fr);
    }

    .lm-col-xxl-7 {
        grid-template-columns: repeat(7, 1fr);
    }

    .lm-col-xxl-8 {
        grid-template-columns: repeat(8, 1fr);
    }

    .lm-col-xxl-9 {
        grid-template-columns: repeat(9, 1fr);
    }

    .lm-col-xxl-10 {
        grid-template-columns: repeat(10, 1fr);
    }

    .lm-col-xxl-11 {
        grid-template-columns: repeat(11, 1fr);
    }

    .lm-col-xxl-12 {
        grid-template-columns: repeat(12, 1fr);
    }

    .lm-gap-xxl-0 {
        gap: 0;
    }

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

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

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

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

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

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

    .lm-gap-xxl-35 {
        gap: 35px;
    }

    .lm-gap-xxl-40 {
        gap: 40px;
    }

    .lm-gap-xxl-45 {
        gap: 45px;
    }

    .lm-gap-xxl-50 {
        gap: 50px;
    }

    .lm-gap-xxl-55 {
        gap: 55px;
    }

    .lm-gap-xxl-60 {
        gap: 60px;
    }
}