// ====================================================
// Container
// ====================================================

.container {
    @include media-breakpoint-up(xxl) {
        max-width: $container;
    }
}

.container-custom {
    max-width: 100%;
    padding-right: var(--bs-gutter-x,.75rem);
    padding-left: var(--bs-gutter-x,.75rem);
    margin-left: auto;
    margin-right: auto;

    @include media-breakpoint-up(md) {
        max-width: 792px;
    }
    @include media-breakpoint-up(lg) {
        max-width: 1090px;
    }
    @include media-breakpoint-up(xl) {
        // max-width: 1330px;
        max-width: 1100px;
    }
    @include media-breakpoint-up(xxl) {
        max-width: 1630px;
    }  
}

// ====================================================
// Grid
// ====================================================

.grid {
    display: grid;
    justify-content: space-between;
    
    &.w-100 {
        grid-template-columns: repeat(auto-fill, 100%);
    }
    
    &.w-50 {
        grid-template-columns: repeat(auto-fill, 100%);
        
        @include media-breakpoint-up(sm) {
            grid-template-columns: repeat(auto-fill, 49%);
        }
    }

    &.w-33 {
        grid-template-columns: repeat(auto-fill, 100%);
        
        @include media-breakpoint-up(sm) {
            grid-template-columns: repeat(auto-fill, 49%);
        }

        @include media-breakpoint-up(md) {
            grid-template-columns: repeat(auto-fill, 32.3%);
        }
        
    }

    &.w-25 {
        grid-template-columns: repeat(auto-fill, 100%);
        
        @include media-breakpoint-up(sm) {
            grid-template-columns: repeat(auto-fill, 49%);
        }
        
        @include media-breakpoint-up(md) {
            grid-template-columns: repeat(auto-fill, 32.3%);
        }
        
        @include media-breakpoint-up(lg) {
            grid-template-columns: repeat(auto-fill, 24%);
        }
    }
    
    &.w-only-50 {
        grid-template-columns: repeat(auto-fill, 49%);
    }

    &.w-only-33 {
        grid-template-columns: repeat(auto-fill, 32.3%);
    }

    &.w-only-25 {
        grid-template-columns: repeat(auto-fill, 24%);
    }
}

// ====================================================
// Section
// ====================================================

// Section
.section {
    padding-top: $size-lg;
    padding-bottom: $size-lg;

    @include media-breakpoint-down(md) {
        padding-top: $size-md;
        padding-bottom: $size-md;
    }
}

// ====================================================
// Margins / Paddings
// ====================================================

// Margins Top
.mt-size-sm {
    margin-top: $size-sm;
}
.mt-size-md {
    margin-top: $size-md;
}
.mt-size-lg {
    margin-top: $size-lg;
}
.mt-size-xl {
    margin-top: $size-xl;
}
.mt-size-xxl {
    margin-top: $size-xxl;
}

// Margins Bottom
.mb-size-sm {
    margin-bottom: $size-sm;
}
.mb-size-md {
    margin-bottom: $size-md;
}
.mb-size-lg {
    margin-bottom: $size-lg;
}
.mb-size-xl {
    margin-bottom: $size-xl;
}
.mb-size-xxl {
    margin-bottom: $size-xxl;
}

// Paddings Top
.pt-size-sm {
    padding-top: $size-sm;
}
.pt-size-md {
    padding-top: $size-md;
}
.pt-size-lg {
    padding-top: $size-lg;
}
.pt-size-xl {
    padding-top: $size-xl;
}
.pt-size-xxl {
    padding-top: $size-xxl;
}

// Paddings Bottom
.pb-size-sm {
    padding-bottom: $size-sm;
}
.pb-size-md {
    padding-bottom: $size-md;
}
.pb-size-lg {
    padding-bottom: $size-lg;
}
.pb-size-xl {
    padding-bottom: $size-xl;
}
.pb-size-xxl {
    padding-bottom: $size-xxl;
}

// ====================================================
// Position
// ====================================================

.p-relative {
    position: relative;
}
.p-absolute {
    position: absolute;
}

// ====================================================
// Text
// ====================================================

// Text Align
.text-left {
    text-align: left;
}
.text-center {
    text-align: center;
}
.text-right {
    text-align: right;
}

// Text Format
.text-uppercase {
    text-transform: uppercase;
}
.text-capitalize {
    text-transform: capitalize;
}
.text-lowercase {
    text-transform: lowercase;
}
.text-underline {
    text-decoration: underline;
}
.text-line-through {
    text-decoration: line-through;
}

// Text Color
.text-white {
    color: $white;
}
.text-white-alpha {
    color: rgba($black, .5);
}
.text-grey {
    color: $grey;
}
.text-black {
    color: $black;
}
.text-black-alpha {
    color: $black;
}

// Text Weight
.text-extrabold {
    font-weight: 800;
}
.text-bold {
    font-weight: 700;
}
.text-semibold {
    font-weight: 600;
}
.text-medium {
    font-weight: 500;
}
.text-normal {
    font-weight: 400;
}
.text-light {
    font-weight: 300;
}
.text-extralight {
    font-weight: 200;
}
.text-thin {
    font-weight: 100;
}

// Text Size
.text-xl {
    font-size: 18pt;
    line-height: 24px;
}
.text-lg {
    font-size: 13.5pt;
    line-height: 24px;
}
.text-md {
    font-size: 12pt;
}
.text-sm {
    font-size: 9pt;
    line-height: 18px;
}

// ====================================================
// Overlays
// ====================================================

.black-overlay {
    position: absolute;
    top: 0;
    right: 0;
    width: 100%;
    height: 100%;
    background-color: rgb(0 0 0 / 30%);
}

.white-overlay {
    position: absolute;
    top: 0;
    right: 0;
    width: 100%;
    height: 100%;
    background-color: rgb(255 255 255 / 30%);
}

// ====================================================
// Background Colors
// ====================================================

.bg-white {
    background-color: $white;
}
.bg-black {
    background-color: $black;
}
.bg-dark-grey {
    background-color: $dark-grey;
}
.bg-grey {
    background-color: $grey;
}
.bg-light-grey {
    background-color: $light-grey;
}
.bg-pink {
    background-color: $pink;
}
.bg-dark-pink {
    background-color: $dark-pink;
}

// ====================================================
// Background Image
// ====================================================

.bg-image {
    width: 100%;
    height: 100%;
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
}