﻿/* =========================
   GRID CORE
========================= */

.grid {
    width: 100%;
    clear: both;
}

    /* clearfix */
    .grid::after {
        content: "";
        display: table;
        clear: both;
    }

    /* colonne base */
    .grid > [class*="col-span-"] {
        float: left;
        min-height: 1px;
        box-sizing: border-box;
    }

/* =========================
   GRID COLUMNS
========================= */

/* 1 col */
.grid-cols-1 > [class*="col-span-"] {
    width: 100%;
}

/* 2 cols */
.grid-cols-2 > .col-span-1 {
    width: 50%;
}

.grid-cols-2 > .col-span-2 {
    width: 100%;
}

/* 3 cols */
.grid-cols-3 > .col-span-1 {
    width: 33.3333%;
}

.grid-cols-3 > .col-span-2 {
    width: 66.6666%;
}

.grid-cols-3 > .col-span-3 {
    width: 100%;
}

/* 4 cols */
.grid-cols-4 > .col-span-1 {
    width: 25%;
}

.grid-cols-4 > .col-span-2 {
    width: 50%;
}

.grid-cols-4 > .col-span-3 {
    width: 75%;
}

.grid-cols-4 > .col-span-4 {
    width: 100%;
}

/* 6 cols */
.grid-cols-6 > .col-span-1 {
    width: 16.6666%;
}

.grid-cols-6 > .col-span-2 {
    width: 33.3333%;
}

.grid-cols-6 > .col-span-3 {
    width: 50%;
}

.grid-cols-6 > .col-span-4 {
    width: 66.6666%;
}

.grid-cols-6 > .col-span-5 {
    width: 83.3333%;
}

.grid-cols-6 > .col-span-6 {
    width: 100%;
}

/* 12 cols (tipo Bootstrap) */
.grid-cols-12 > .col-span-1 {
    width: 8.3333%;
}

.grid-cols-12 > .col-span-2 {
    width: 16.6666%;
}

.grid-cols-12 > .col-span-3 {
    width: 25%;
}

.grid-cols-12 > .col-span-4 {
    width: 33.3333%;
}

.grid-cols-12 > .col-span-5 {
    width: 41.6666%;
}

.grid-cols-12 > .col-span-6 {
    width: 50%;
}

.grid-cols-12 > .col-span-7 {
    width: 58.3333%;
}

.grid-cols-12 > .col-span-8 {
    width: 66.6666%;
}

.grid-cols-12 > .col-span-9 {
    width: 75%;
}

.grid-cols-12 > .col-span-10 {
    width: 83.3333%;
}

.grid-cols-12 > .col-span-11 {
    width: 91.6666%;
}

.grid-cols-12 > .col-span-12 {
    width: 100%;
}

/* =========================
   GAP (spaziatura)
========================= */

.gap-0 > [class*="col-span-"] {
    padding: 0;
}

.gap-1 > [class*="col-span-"] {
    padding: 4px;
}

.gap-2 > [class*="col-span-"] {
    padding: 8px;
}

.gap-3 > [class*="col-span-"] {
    padding: 12px;
}

.gap-4 > [class*="col-span-"] {
    padding: 16px;
}

.gap-6 > [class*="col-span-"] {
    padding: 24px;
}

/* =========================
   RESPONSIVE (Bootstrap-like)
========================= */

/* sm ≥ 768px */
@media (min-width: 500px) {
    .sm-grid-cols-1 > [class*="col-span-"] {
        width: 100%;
    }
    .sm-grid-cols-2 > [class*="col-span-"] {
        width: 50%;
    }
}

/* md ≥ 992px */
@media (min-width: 700px) {
    .md-grid-cols-2 > .col-span-1 {
        width: 50%;
    }

    .md-grid-cols-3 > .col-span-1 {
        width: 33.3333%;
    }

    .md-grid-cols-4 > .col-span-1 {
        width: 25%;
    }
}

/* lg ≥ 1200px */
@media (min-width: 900px) {
    .lg-grid-cols-3 > .col-span-1 {
        width: 33.3333%;
    }
    .lg-grid-cols-6 > .col-span-1 {
        width: 16.6666%;
    }
}
/* =========================
   FLEX-CENTER (NO FLEXBOX)
========================= */

.flex-center {
    display: table;
    width: 100%;
    height: 100%;
    text-align: center;
}

.flex-center > * {
    display: table-cell;
    vertical-align: middle;
}
/* =========================
   ITEMS-CENTER (VERTICAL)
========================= */

.items-center {
    display: table;
    width: 100%;
    height: 100%;
}

.items-center > * {
    display: table-cell;
    vertical-align: middle;
}

.justify-center {
    text-align: center;
}

.center-inline {
    text-align: center;
    line-height: inherit;
}

/* =========================
   SIZE UTILITIES
========================= */

.h-full {
    height: 100%;
}

.w-full {
    width: 100%;
}

.min-h-full {
    min-height: 100%;
}

.min-w-full {
    min-width: 100%;
}

.h-screen {
    height: 100vh;
}

.w-screen {
    width: 100vw;
}

.h-25 {
    height: 25%;
}

.h-50 {
    height: 50%;
}

.h-75 {
    height: 75%;
}

.h-100 {
    height: 100%;
}

.w-25 {
    width: 25%;
}

.w-50 {
    width: 50%;
}

.w-75 {
    width: 75%;
}

.w-100 {
    width: 100%;
}

.stretch {
    height: 100%;
    width: 100%;
}

/* =========================
   GAP CORE
========================= */

.gap-0 {
    margin: 0;
}

.gap-1 {
    margin: -4px;
}

.gap-2 {
    margin: -8px;
}

.gap-3 {
    margin: -12px;
}

.gap-4 {
    margin: -16px;
}

.gap-6 {
    margin: -24px;
}

.gap-0 > [class*="col-span-"] {
    padding: 0;
}

.gap-1 > [class*="col-span-"] {
    padding: 4px;
}

.gap-2 > [class*="col-span-"] {
    padding: 8px;
}

.gap-3 > [class*="col-span-"] {
    padding: 12px;
}

.gap-4 > [class*="col-span-"] {
    padding: 16px;
}

.gap-6 > [class*="col-span-"] {
    padding: 24px;
}

.gap-x-1 {
    margin-left: -4px;
    margin-right: -4px;
}

.gap-x-2 {
    margin-left: -8px;
    margin-right: -8px;
}

.gap-x-3 {
    margin-left: -12px;
    margin-right: -12px;
}

.gap-x-4 {
    margin-left: -16px;
    margin-right: -16px;
}

.gap-x-1 > [class*="col-span-"] {
    padding-left: 4px;
    padding-right: 4px;
}

.gap-x-2 > [class*="col-span-"] {
    padding-left: 8px;
    padding-right: 8px;
}

.gap-x-3 > [class*="col-span-"] {
    padding-left: 12px;
    padding-right: 12px;
}

.gap-x-4 > [class*="col-span-"] {
    padding-left: 16px;
    padding-right: 16px;
}

.gap-y-1 {
    margin-top: -4px;
    margin-bottom: -4px;
}

.gap-y-2 {
    margin-top: -8px;
    margin-bottom: -8px;
}

.gap-y-3 {
    margin-top: -12px;
    margin-bottom: -12px;
}

.gap-y-4 {
    margin-top: -16px;
    margin-bottom: -16px;
}

.gap-y-1 > [class*="col-span-"] {
    padding-top: 4px;
    padding-bottom: 4px;
}

.gap-y-2 > [class*="col-span-"] {
    padding-top: 8px;
    padding-bottom: 8px;
}

.gap-y-3 > [class*="col-span-"] {
    padding-top: 12px;
    padding-bottom: 12px;
}

.gap-y-4 > [class*="col-span-"] {
    padding-top: 16px;
    padding-bottom: 16px;
}
