/* ==========================================================================
   PB Design System
   CORE · Layout
   ========================================================================== */

/* --------------------------------------------------------------
   Grid base
-------------------------------------------------------------- */

.pb-root .grid {
    display: grid;
}

.pb-root .grid-1 {
    display: grid;
    grid-template-columns: 1fr;
}

.pb-root .grid-2 {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.pb-root .grid-3 {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.pb-root .grid-4 {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

/* --------------------------------------------------------------
   Grids asimétricos
-------------------------------------------------------------- */

.pb-root .grid-2-asimetrico {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr);
}

.pb-root .grid-2-asimetrico-inv {
    display: grid;
    grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr);
}

/* --------------------------------------------------------------
   Flex
-------------------------------------------------------------- */

.pb-root .flex {
    display: flex;
}

.pb-root .flex-columna {
    display: flex;
    flex-direction: column;
}

.pb-root .flex-wrap {
    flex-wrap: wrap;
}

/* --------------------------------------------------------------
   Alineación
-------------------------------------------------------------- */

.pb-root .items-center {
    align-items: center;
}

.pb-root .items-start {
    align-items: flex-start;
}

.pb-root .items-end {
    align-items: flex-end;
}

.pb-root .justify-center {
    justify-content: center;
}

.pb-root .justify-between {
    justify-content: space-between;
}

.pb-root .justify-end {
    justify-content: flex-end;
}

/* --------------------------------------------------------------
   Gaps
-------------------------------------------------------------- */

.pb-root .gap-1 {
    gap: var(--space-1);
}

.pb-root .gap-2 {
    gap: var(--space-2);
}

.pb-root .gap-3 {
    gap: var(--space-3);
}

.pb-root .gap-4 {
    gap: var(--space-4);
}

.pb-root .gap-5 {
    gap: var(--space-5);
}

.pb-root .gap-6 {
    gap: var(--space-6);
}

.pb-root .gap-7 {
    gap: var(--space-7);
}

.pb-root .gap-8 {
    gap: var(--space-8);
}

/* --------------------------------------------------------------
   Column span
-------------------------------------------------------------- */

.pb-root .col-span-2 {
    grid-column: span 2;
}

.pb-root .col-span-3 {
    grid-column: span 3;
}

.pb-root .col-span-4 {
    grid-column: span 4;
}

/* --------------------------------------------------------------
   Responsive
-------------------------------------------------------------- */

@media (max-width: 980px) {
    .pb-root .grid-2,
    .pb-root .grid-3,
    .pb-root .grid-4,
    .pb-root .grid-2-asimetrico,
    .pb-root .grid-2-asimetrico-inv {
        grid-template-columns: 1fr;
    }

    .pb-root .col-span-2,
    .pb-root .col-span-3,
    .pb-root .col-span-4 {
        grid-column: auto;
    }
}