/* Full Padding */
.p-1 {
    padding: 0.25rem;
}

.p-2 {
    padding: 0.5rem;
}

.p-3 {
    padding: 1rem;
}

.p-4 {
    padding: 1.5rem;
}

.p-5 {
    padding: 3rem;
}

/* Vertical Specific Padding */
.pt-1 {
    padding-top: 0.25rem;
}

.pt-2 {
    padding-top: 0.5rem;
}

.pt-3 {
    padding-top: 1rem;
}

.pt-4 {
    padding-top: 1.5rem;
}

.pt-5 {
    padding-top: 3rem;
}

.pb-1 {
    padding-bottom: 0.25rem;
}

.pb-2 {
    padding-bottom: 0.5rem;
}

.pb-3 {
    padding-bottom: 1rem;
}

.pb-4 {
    padding-bottom: 1.5rem;
}

.pb-5 {
    padding-bottom: 3rem;
}

/* Horizontal Padding */
.px-1 {
    padding-left: 0.25rem;
    padding-right: 0.25rem;
}

.px-2 {
    padding-left: 0.5rem;
    padding-right: 0.5rem;
}

.px-3 {
    padding-left: 1rem;
    padding-right: 1rem;
}

.px-4 {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
}

.px-5 {
    padding-left: 3rem;
    padding-right: 3rem;
}

/* Full Vertical Padding */
.py-1 {
    padding-top: 0.25rem;
    padding-bottom: 0.25rem;
}

.py-2 {
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
}

.py-3 {
    padding-top: 1rem;
    padding-bottom: 1rem;
}

.py-4 {
    padding-top: 1.5rem;
    padding-bottom: 1.5rem;
}

.py-5 {
    padding-top: 3rem;
    padding-bottom: 3rem;
}

/* Container */
.container {
    width: 100%;
    padding-right: 15px;
    padding-left: 15px;
    margin-right: auto;
    margin-left: auto;
}

/* Fixed Width Container */
.container {
    max-width: 1140px;
}

/* Fluid Container */
.container-fluid {
    width: 100%;
    padding-right: 15px;
    padding-left: 15px;
}

/* Row */
.row {
    display: flex;
    flex-wrap: wrap;
    margin-right: -15px;
    margin-left: -15px;
}

/* Columns */
[class*='col-'] {
    position: relative;
}

/* Responsive columns based on screen size */
.col {
    flex: 0 0 auto;
}

.col-1 {
    flex: 0 0 8.33%;
    max-width: 8.33%;
}

.col-2 {
    flex: 0 0 16.67%;
    max-width: 16.67%;
}

.col-3 {
    flex: 0 0 25%;
    max-width: 25%;
}

.col-4 {
    flex: 0 0 33.33%;
    max-width: 33.33%;
}

.col-5 {
    flex: 0 0 41.67%;
    max-width: 41.67%;
}

.col-6 {
    flex: 0 0 50%;
    max-width: 50%;
}

.col-7 {
    flex: 0 0 58.33%;
    max-width: 58.33%;
}

.col-8 {
    flex: 0 0 66.67%;
    max-width: 66.67%;
}

.col-9 {
    flex: 0 0 75%;
    max-width: 75%;
}

.col-10 {
    flex: 0 0 83.33%;
    max-width: 83.33%;
}

.col-11 {
    flex: 0 0 91.67%;
    max-width: 91.67%;
}

.col-12 {
    flex: 0 0 100%;
    max-width: 100%;
}

/* Responsive Breakpoints */
@media (min-width: 576px) {
    .col-sm {
        flex: 0 0 100%;
        max-width: 100%;
    }

    /* Additional classes for specific widths */
    .col-sm-6 {
        flex: 0 0 50%;
        max-width: 50%;
    }

    .col-sm-4 {
        flex: 0 0 33.33%;
        max-width: 33.33%;
    }

    .col-sm-3 {
        flex: 0 0 25%;
        max-width: 25%;
    }
}

@media (min-width: 768px) {
    .col-md {
        flex: 0 0 100%;
        max-width: 100%;
    }

    .col-md-6 {
        flex: 0 0 50%;
        max-width: 50%;
    }

    .col-md-4 {
        flex: 0 0 33.33%;
        max-width: 33.33%;
    }

    .col-md-3 {
        flex: 0 0 25%;
        max-width: 25%;
    }
}

@media (min-width: 992px) {
    .col-lg {
        flex: 0 0 100%;
        max-width: 100%;
    }

    .col-lg-6 {
        flex: 0 0 50%;
        max-width: 50%;
    }

    .col-lg-4 {
        flex: 0 0 33.33%;
        max-width: 33.33%;
    }

    .col-lg-3 {
        flex: 0 0 25%;
        max-width: 25%;
    }
}

@media (min-width: 1200px) {
    .col-xl {
        flex: 0 0 100%;
        max-width: 100%;
    }

    .col-xl-6 {
        flex: 0 0 50%;
        max-width: 50%;
    }

    .col-xl-4 {
        flex: 0 0 33.33%;
        max-width: 33.33%;
    }

    .col-xl-3 {
        flex: 0 0 25%;
        max-width: 25%;
    }
}

/* Base Border Radius */
.border-radius {
    border-radius: 0.2rem;
    /* 2px */
}

.border-radius-sm {
    border-radius: 0.2rem;
    /* 2px */
}

.border-radius-lg {
    border-radius: 0.3rem;
    /* 3px */
}

.border-radius-pill {
    border-radius: 50rem;
    /* Very large value for pill shape */
}

.border-radius-circle {
    border-radius: 50%;
    /* Makes a circle */
}

.border-radius-0 {
    border-radius: 0;
    /* No radius */
}

/* Bootstrap-like Margin Utilities */

/* General Margin Classes */
.m-0 {
    margin: 0 !important;
}

.m-1 {
    margin: 0.25rem !important;
}

/* 4px */
.m-2 {
    margin: 0.5rem !important;
}

/* 8px */
.m-3 {
    margin: 1rem !important;
}

/* 16px */
.m-4 {
    margin: 1.5rem !important;
}

/* 24px */
.m-5 {
    margin: 3rem !important;
}

/* 48px */

/* Margin Top */
.mt-0 {
    margin-top: 0 !important;
}

.mt-1 {
    margin-top: 0.25rem !important;
}

.mt-2 {
    margin-top: 0.5rem !important;
}

.mt-3 {
    margin-top: 1rem !important;
}

.mt-4 {
    margin-top: 1.5rem !important;
}

.mt-5 {
    margin-top: 3rem !important;
}

/* Margin Bottom */
.mb-0 {
    margin-bottom: 0 !important;
}

.mb-1 {
    margin-bottom: 0.25rem !important;
}

.mb-2 {
    margin-bottom: 0.5rem !important;
}

.mb-3 {
    margin-bottom: 1rem !important;
}

.mb-4 {
    margin-bottom: 1.5rem !important;
}

.mb-5 {
    margin-bottom: 3rem !important;
}

/* Margin Left */
.ml-0 {
    margin-left: 0 !important;
}

.ml-1 {
    margin-left: 0.25rem !important;
}

.ml-2 {
    margin-left: 0.5rem !important;
}

.ml-3 {
    margin-left: 1rem !important;
}

.ml-4 {
    margin-left: 1.5rem !important;
}

.ml-5 {
    margin-left: 3rem !important;
}

/* Margin Right */
.mr-0 {
    margin-right: 0 !important;
}

.mr-1 {
    margin-right: 0.25rem !important;
}

.mr-2 {
    margin-right: 0.5rem !important;
}

.mr-3 {
    margin-right: 1rem !important;
}

.mr-4 {
    margin-right: 1.5rem !important;
}

.mr-5 {
    margin-right: 3rem !important;
}

/* Margin X (Left and Right) */
.mx-0 {
    margin-left: 0 !important;
    margin-right: 0 !important;
}

.mx-1 {
    margin-left: 0.25rem !important;
    margin-right: 0.25rem !important;
}

.mx-2 {
    margin-left: 0.5rem !important;
    margin-right: 0.5rem !important;
}

.mx-3 {
    margin-left: 1rem !important;
    margin-right: 1rem !important;
}

.mx-4 {
    margin-left: 1.5rem !important;
    margin-right: 1.5rem !important;
}

.mx-5 {
    margin-left: 3rem !important;
    margin-right: 3rem !important;
}

/* Margin Y (Top and Bottom) */
.my-0 {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

.my-1 {
    margin-top: 0.25rem !important;
    margin-bottom: 0.25rem !important;
}

.my-2 {
    margin-top: 0.5rem !important;
    margin-bottom: 0.5rem !important;
}

.my-3 {
    margin-top: 1rem !important;
    margin-bottom: 1rem !important;
}

.my-4 {
    margin-top: 1.5rem !important;
    margin-bottom: 1.5rem !important;
}

.my-5 {
    margin-top: 3rem !important;
    margin-bottom: 3rem !important;
}

/* Inline Block */

.d-inline-block {
    display: inline-block;
}

/* Font Size Utilities */

.fs-1 {
    font-size: 3rem; /* Equivalent to 48px */
}

.fs-2 {
    font-size: 2.5rem; /* Equivalent to 40px */
}

.fs-3 {
    font-size: 2rem; /* Equivalent to 32px */
}

.fs-4 {
    font-size: 1.5rem; /* Equivalent to 24px */
}

.fs-5 {
    font-size: 1.25rem; /* Equivalent to 20px */
}

.fs-6 {
    font-size: 1rem; /* Equivalent to 16px */
}

.fs-7 {
    font-size: 0.875rem; /* Equivalent to 14px */
}

.fs-8 {
    font-size: 0.75rem; /* Equivalent to 12px */
}

/* Optional: Responsive Font Sizes */
@media (min-width: 576px) {
    .fs-sm-1 { font-size: 3rem; }
    .fs-sm-2 { font-size: 2.5rem; }
    .fs-sm-3 { font-size: 2rem; }
    .fs-sm-4 { font-size: 1.5rem; }
    .fs-sm-5 { font-size: 1.25rem; }
    .fs-sm-6 { font-size: 1rem; }
}

@media (min-width: 768px) {
    .fs-md-1 { font-size: 3rem; }
    .fs-md-2 { font-size: 2.5rem; }
    .fs-md-3 { font-size: 2rem; }
    .fs-md-4 { font-size: 1.5rem; }
    .fs-md-5 { font-size: 1.25rem; }
    .fs-md-6 { font-size: 1rem; }
}

@media (min-width: 992px) {
    .fs-lg-1 { font-size: 3rem; }
    .fs-lg-2 { font-size: 2.5rem; }
    .fs-lg-3 { font-size: 2rem; }
    .fs-lg-4 { font-size: 1.5rem; }
    .fs-lg-5 { font-size: 1.25rem; }
    .fs-lg-6 { font-size: 1rem; }
}

@media (min-width: 1200px) {
    .fs-xl-1 { font-size: 3rem; }
    .fs-xl-2 { font-size: 2.5rem; }
    .fs-xl-3 { font-size: 2rem; }
    .fs-xl-4 { font-size: 1.5rem; }
    .fs-xl-5 { font-size: 1.25rem; }
    .fs-xl-6 { font-size: 1rem; }
}
