@charset "utf-8";
/* CSS Document */

/*==================================================
LAYOUT.CSS
Proyecto: INDIGO Inmobiliaria
Autor: ColaboraWeb
Descripción:
Estructuras reutilizables del sitio.
==================================================*/


/*==================================================
CONTENEDORES
==================================================*/

.container-fluid
{

    width:100%;

    margin:auto;

}

.container-small
{

    width:min(900px, calc(100% - 2rem));

    margin:auto;

}

.container-medium
{

    width:min(1100px, calc(100% - 2rem));

    margin:auto;

}

.container-large
{

    width:min(1440px, calc(100% - 2rem));

    margin:auto;

}


/*==================================================
GRID
==================================================*/

.grid
{

    display:grid;

}

.grid-2
{

    display:grid;

    grid-template-columns:repeat(2,1fr);

    gap:2rem;

}

.grid-3
{

    display:grid;

    grid-template-columns:repeat(3,1fr);

    gap:2rem;

}

.grid-4
{

    display:grid;

    grid-template-columns:repeat(4,1fr);

    gap:2rem;

}

.grid-5
{

    display:grid;

    grid-template-columns:repeat(5,1fr);

    gap:2rem;

}


/*==================================================
AUTO GRID
==================================================*/

.grid-auto
{

    display:grid;

    grid-template-columns:repeat(auto-fit,minmax(280px,1fr));

    gap:2rem;

}


/*==================================================
FLEX
==================================================*/

.flex
{

    display:flex;

}

.flex-center
{

    display:flex;

    align-items:center;

    justify-content:center;

}

.flex-between
{

    display:flex;

    align-items:center;

    justify-content:space-between;

}

.flex-around
{

    display:flex;

    align-items:center;

    justify-content:space-around;

}

.flex-column
{

    display:flex;

    flex-direction:column;

}

.flex-wrap
{

    flex-wrap:wrap;

}


/*==================================================
ALIGN
==================================================*/

.align-start
{

    align-items:flex-start;

}

.align-center
{

    align-items:center;

}

.align-end
{

    align-items:flex-end;

}


/*==================================================
JUSTIFY
==================================================*/

.justify-start
{

    justify-content:flex-start;

}

.justify-center
{

    justify-content:center;

}

.justify-between
{

    justify-content:space-between;

}

.justify-end
{

    justify-content:flex-end;

}


/*==================================================
GAPS
==================================================*/

.gap-xs
{

    gap:.5rem;

}

.gap-sm
{

    gap:1rem;

}

.gap-md
{

    gap:2rem;

}

.gap-lg
{

    gap:3rem;

}

.gap-xl
{

    gap:5rem;

}


/*==================================================
WIDTH
==================================================*/

.w-100
{

    width:100%;

}

.w-75
{

    width:75%;

}

.w-50
{

    width:50%;

}

.w-auto
{

    width:auto;

}


/*==================================================
HEIGHT
==================================================*/

.h-100
{

    height:100%;

}

.min-vh
{

    min-height:100vh;

}


/*==================================================
POSITION
==================================================*/

.relative
{

    position:relative;

}

.absolute
{

    position:absolute;

}

.fixed
{

    position:fixed;

}


/*==================================================
OVERFLOW
==================================================*/

.overflow-hidden
{

    overflow:hidden;

}

.overflow-auto
{

    overflow:auto;

}


/*==================================================
BACKGROUND
==================================================*/

.bg-white
{

    background:var(--white);

}

.bg-light
{

    background:var(--background);

}

.bg-soft
{

    background:var(--background-soft);

}

.bg-primary
{

    background:var(--primary);

}

.bg-dark
{

    background:#111827;

}


/*==================================================
TEXT COLOR
==================================================*/

.text-white
{

    color:var(--white);

}

.text-primary
{

    color:var(--primary);

}

.text-secondary
{

    color:var(--secondary);

}

.text-muted
{

    color:var(--text-light);

}


/*==================================================
BORDER RADIUS
==================================================*/

.radius-sm
{

    border-radius:var(--radius-sm);

}

.radius-md
{

    border-radius:var(--radius-md);

}

.radius-lg
{

    border-radius:var(--radius-lg);

}

.radius-xl
{

    border-radius:var(--radius-xl);

}

.radius-circle
{

    border-radius:50%;

}


/*==================================================
SHADOWS
==================================================*/

.shadow-sm
{

    box-shadow:var(--shadow-sm);

}

.shadow-md
{

    box-shadow:var(--shadow-md);

}

.shadow-lg
{

    box-shadow:var(--shadow-lg);

}


/*==================================================
Z-INDEX
==================================================*/

.z-1
{

    z-index:1;

}

.z-10
{

    z-index:10;

}

.z-50
{

    z-index:50;

}

.z-100
{

    z-index:100;

}


/*==================================================
OVERLAY
==================================================*/

.overlay
{

    position:absolute;

    inset:0;

    width:100%;

    height:100%;

}


/*==================================================
OBJECT FIT
==================================================*/

.object-cover
{

    object-fit:cover;

}

.object-contain
{

    object-fit:contain;

}


/*==================================================
TRANSITIONS
==================================================*/

.transition
{

    transition:var(--transition);

}


/*==================================================
HOVER
==================================================*/

.hover-up:hover
{

    transform:translateY(-8px);

}

.hover-scale:hover
{

    transform:scale(1.05);

}


/*==================================================
RESPONSIVE
==================================================*/

@media (max-width:1200px)
{

    .grid-4,
    .grid-5
    {

        grid-template-columns:repeat(3,1fr);

    }

}

@media (max-width:992px)
{

    .grid-3,
    .grid-4,
    .grid-5
    {

        grid-template-columns:repeat(2,1fr);

    }

}

@media (max-width:768px)
{

    .grid-2,
    .grid-3,
    .grid-4,
    .grid-5,
    .grid-auto
    {

        grid-template-columns:1fr;

    }

    .flex-between
    {

        flex-direction:column;

        align-items:flex-start;

    }

    .container-small,
    .container-medium,
    .container-large
    {

        width:calc(100% - 1.5rem);

    }

}

@media (max-width:576px)
{

    .gap-xl
    {

        gap:3rem;

    }

    .gap-lg
    {

        gap:2rem;

    }

}