.container {
    margin-right: auto;
    margin-left: auto;
    padding-right: 2rem;
    padding-left: 2rem;
}

.container-fluid {
    margin-right: auto;
    margin-left: auto;
    padding-right: 1rem;
    padding-left: 1rem;
}

.row {
    box-sizing: border-box;
    display: -ms-flexbox;
    display: -webkit-box;
    display: flex;
    -ms-flex: 0 1 auto;
    -webkit-box-flex: 0;
    flex: 0 1 auto;
    -ms-flex-direction: row;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    flex-direction: row;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
}

.row.reverse {
    -ms-flex-direction: row-reverse;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
    flex-direction: row-reverse;
}

.col.reverse {
    -ms-flex-direction: column-reverse;
    -webkit-box-orient: vertical;
    -webkit-box-direction: reverse;
    flex-direction: column-reverse;
}

@media only screen and (max-width: 576px) {
    .col-xs,
    .col-xs-1,
    .col-xs-2,
    .col-xs-3,
    .col-xs-4,
    .col-xs-5,
    .col-xs-6,
    .col-xs-7,
    .col-xs-8,
    .col-xs-9,
    .col-xs-10,
    .col-xs-11,
    .col-xs-12 {
        box-sizing: border-box;
        -ms-flex: 0 0 auto;
        -webkit-box-flex: 0;
        flex: 0 0 auto;
        padding-right: 1rem;
        padding-left: 1rem;
    }
    .col-xs {
        -webkit-flex-grow: 1;
        -ms-flex-positive: 1;
        -webkit-box-flex: 1;
        flex-grow: 1;
        -ms-flex-preferred-size: 0;
        flex-basis: 0;
        max-width: 100%;
    }
    .col-xs-1 {
        -ms-flex-preferred-size: 8.333%;
        flex-basis: 8.333%;
        max-width: 8.333%;
    }
    .col-xs-2 {
        -ms-flex-preferred-size: 16.667%;
        flex-basis: 16.667%;
        max-width: 16.667%;
    }
    .col-xs-3 {
        -ms-flex-preferred-size: 25%;
        flex-basis: 25%;
        max-width: 25%;
    }
    .col-xs-4 {
        -ms-flex-preferred-size: 33.333%;
        flex-basis: 33.333%;
        max-width: 33.333%;
    }
    .col-xs-5 {
        -ms-flex-preferred-size: 41.667%;
        flex-basis: 41.667%;
        max-width: 41.667%;
    }
    .col-xs-6 {
        -ms-flex-preferred-size: 50%;
        flex-basis: 50%;
        max-width: 50%;
    }
    .col-xs-7 {
        -ms-flex-preferred-size: 58.333%;
        flex-basis: 58.333%;
        max-width: 58.333%;
    }
    .col-xs-8 {
        -ms-flex-preferred-size: 66.667%;
        flex-basis: 66.667%;
        max-width: 66.667%;
    }
    .col-xs-9 {
        -ms-flex-preferred-size: 75%;
        flex-basis: 75%;
        max-width: 75%;
    }
    .col-xs-10 {
        -ms-flex-preferred-size: 83.333%;
        flex-basis: 83.333%;
        max-width: 83.333%;
    }
    .col-xs-11 {
        -ms-flex-preferred-size: 91.667%;
        flex-basis: 91.667%;
        max-width: 91.667%;
    }
    .col-xs-12 {
        -ms-flex-preferred-size: 100%;
        flex-basis: 100%;
        max-width: 100%;
    }
    .col-xs-offset-1 {
        margin-left: 8.333%;
    }
    .col-xs-offset-2 {
        margin-left: 16.667%;
    }
    .col-xs-offset-3 {
        margin-left: 25%;
    }
    .col-xs-offset-4 {
        margin-left: 33.333%;
    }
    .col-xs-offset-5 {
        margin-left: 41.667%;
    }
    .col-xs-offset-6 {
        margin-left: 50%;
    }
    .col-xs-offset-7 {
        margin-left: 58.333%;
    }
    .col-xs-offset-8 {
        margin-left: 66.667%;
    }
    .col-xs-offset-9 {
        margin-left: 75%;
    }
    .col-xs-offset-10 {
        margin-left: 83.333%;
    }
    .col-xs-offset-11 {
        margin-left: 91.667%;
    }
    .start-xs {
        -ms-flex-pack: start;
        -webkit-box-pack: start;
        justify-content: flex-start;
        text-align: start;
    }
    .center-xs {
        -ms-flex-pack: center;
        -webkit-box-pack: center;
        justify-content: center;
        text-align: center;
    }
    .end-xs {
        -ms-flex-pack: end;
        -webkit-box-pack: end;
        justify-content: flex-end;
        text-align: end;
    }
    .top-xs {
        -ms-flex-align: start;
        -webkit-box-align: start;
        align-items: flex-start;
    }
    .middle-xs {
        -ms-flex-align: center;
        -webkit-box-align: center;
        align-items: center;
    }
    .bottom-xs {
        -ms-flex-align: end;
        -webkit-box-align: end;
        align-items: flex-end;
    }
    .around-xs {
        -ms-flex-pack: distribute;
        justify-content: space-around;
    }
    .between-xs {
        -ms-flex-pack: justify;
        -webkit-box-pack: justify;
        justify-content: space-between;
    }
    .first-xs {
        -ms-flex-order: -1;
        -webkit-box-ordinal-group: 0;
        order: -1;
    }
    .last-xs {
        -ms-flex-order: 1;
        -webkit-box-ordinal-group: 2;
        order: 1;
    }
    .order-xs-0 {
        order: 0;
    }
    .order-xs-1 {
        order: 1;
    }
    .order-xs-2 {
        order: 2;
    }
    .order-xs-3 {
        order: 3;
    }
    .order-xs-4 {
        order: 4;
    }
    .order-xs-5 {
        order: 5;
    }
    .order-xs-6 {
        order: 6;
    }
    .order-xs-7 {
        order: 7;
    }
    .order-xs-8 {
        order: 8;
    }
    .order-xs-9 {
        order: 9;
    }
    .order-xs-10 {
        order: 10;
    }
    .order-xs-11 {
        order: 11;
    }
    .order-xs-12 {
        order: 12;
    }
    .tf-xs-grid-1 {
        grid-template-columns: repeat(1, 1fr);
    }
    .tf-xs-grid-2 {
        grid-template-columns: repeat(2, 1fr);
    }
    .tf-xs-grid-3 {
        grid-template-columns: repeat(3, 1fr);
    }
    .tf-xs-grid-4 {
        grid-template-columns: repeat(4, 1fr);
    }
    .tf-xs-grid-5 {
        grid-template-columns: repeat(5, 1fr);
    }
    .tf-xs-grid-6 {
        grid-template-columns: repeat(6, 1fr);
    }
    .tf-xs-grid-7 {
        grid-template-columns: repeat(7, 1fr);
    }
    .tf-xs-grid-8 {
        grid-template-columns: repeat(8, 1fr);
    }
    .tf-xs-grid-9 {
        grid-template-columns: repeat(9, 1fr);
    }
    .tf-xs-grid-10 {
        grid-template-columns: repeat(10, 1fr);
    }
    .tf-xs-grid-11 {
        grid-template-columns: repeat(11, 1fr);
    }
    .tf-xs-grid-12 {
        grid-template-columns: repeat(12, 1fr);
    }
}

@media only screen and (min-width: 577px) and (max-width: 767px) {
    .container {
        width: 46rem;
    }
    .col-sm,
    .col-sm-1,
    .col-sm-2,
    .col-sm-3,
    .col-sm-4,
    .col-sm-5,
    .col-sm-6,
    .col-sm-7,
    .col-sm-8,
    .col-sm-9,
    .col-sm-10,
    .col-sm-11,
    .col-sm-12 {
        box-sizing: border-box;
        -ms-flex: 0 0 auto;
        -webkit-box-flex: 0;
        flex: 0 0 auto;
        padding-right: 1rem;
        padding-left: 1rem;
    }
    .col-sm {
        -webkit-flex-grow: 1;
        -ms-flex-positive: 1;
        -webkit-box-flex: 1;
        flex-grow: 1;
        -ms-flex-preferred-size: 0;
        flex-basis: 0;
        max-width: 100%;
    }
    .col-sm-1 {
        -ms-flex-preferred-size: 8.333%;
        flex-basis: 8.333%;
        max-width: 8.333%;
    }
    .col-sm-2 {
        -ms-flex-preferred-size: 16.667%;
        flex-basis: 16.667%;
        max-width: 16.667%;
    }
    .col-sm-3 {
        -ms-flex-preferred-size: 25%;
        flex-basis: 25%;
        max-width: 25%;
    }
    .col-sm-4 {
        -ms-flex-preferred-size: 33.333%;
        flex-basis: 33.333%;
        max-width: 33.333%;
    }
    .col-sm-5 {
        -ms-flex-preferred-size: 41.667%;
        flex-basis: 41.667%;
        max-width: 41.667%;
    }
    .col-sm-6 {
        -ms-flex-preferred-size: 50%;
        flex-basis: 50%;
        max-width: 50%;
    }
    .col-sm-7 {
        -ms-flex-preferred-size: 58.333%;
        flex-basis: 58.333%;
        max-width: 58.333%;
    }
    .col-sm-8 {
        -ms-flex-preferred-size: 66.667%;
        flex-basis: 66.667%;
        max-width: 66.667%;
    }
    .col-sm-9 {
        -ms-flex-preferred-size: 75%;
        flex-basis: 75%;
        max-width: 75%;
    }
    .col-sm-10 {
        -ms-flex-preferred-size: 83.333%;
        flex-basis: 83.333%;
        max-width: 83.333%;
    }
    .col-sm-11 {
        -ms-flex-preferred-size: 91.667%;
        flex-basis: 91.667%;
        max-width: 91.667%;
    }
    .col-sm-12 {
        -ms-flex-preferred-size: 100%;
        flex-basis: 100%;
        max-width: 100%;
    }
    .col-sm-offset-1 {
        margin-left: 8.333%;
    }
    .col-sm-offset-2 {
        margin-left: 16.667%;
    }
    .col-sm-offset-3 {
        margin-left: 25%;
    }
    .col-sm-offset-4 {
        margin-left: 33.333%;
    }
    .col-sm-offset-5 {
        margin-left: 41.667%;
    }
    .col-sm-offset-6 {
        margin-left: 50%;
    }
    .col-sm-offset-7 {
        margin-left: 58.333%;
    }
    .col-sm-offset-8 {
        margin-left: 66.667%;
    }
    .col-sm-offset-9 {
        margin-left: 75%;
    }
    .col-sm-offset-10 {
        margin-left: 83.333%;
    }
    .col-sm-offset-11 {
        margin-left: 91.667%;
    }
    .start-sm {
        -ms-flex-pack: start;
        -webkit-box-pack: start;
        justify-content: flex-start;
        text-align: start;
    }
    .center-sm {
        -ms-flex-pack: center;
        -webkit-box-pack: center;
        justify-content: center;
        text-align: center;
    }
    .end-sm {
        -ms-flex-pack: end;
        -webkit-box-pack: end;
        justify-content: flex-end;
        text-align: end;
    }
    .top-sm {
        -ms-flex-align: start;
        -webkit-box-align: start;
        align-items: flex-start;
    }
    .middle-sm {
        -ms-flex-align: center;
        -webkit-box-align: center;
        align-items: center;
    }
    .bottom-sm {
        -ms-flex-align: end;
        -webkit-box-align: end;
        align-items: flex-end;
    }
    .around-sm {
        -ms-flex-pack: distribute;
        justify-content: space-around;
    }
    .between-sm {
        -ms-flex-pack: justify;
        -webkit-box-pack: justify;
        justify-content: space-between;
    }
    .first-sm {
        -ms-flex-order: -1;
        -webkit-box-ordinal-group: 0;
        order: -1;
    }
    .last-sm {
        -ms-flex-order: 1;
        -webkit-box-ordinal-group: 2;
        order: 1;
    }
    .tf-sm-grid-1 {
        grid-template-columns: repeat(1, 1fr);
    }
    .tf-sm-grid-2 {
        grid-template-columns: repeat(2, 1fr);
    }
    .tf-sm-grid-3 {
        grid-template-columns: repeat(3, 1fr);
    }
    .tf-sm-grid-4 {
        grid-template-columns: repeat(4, 1fr);
    }
    .tf-sm-grid-5 {
        grid-template-columns: repeat(5, 1fr);
    }
    .tf-sm-grid-6 {
        grid-template-columns: repeat(6, 1fr);
    }
    .tf-sm-grid-7 {
        grid-template-columns: repeat(7, 1fr);
    }
    .tf-sm-grid-8 {
        grid-template-columns: repeat(8, 1fr);
    }
    .tf-sm-grid-9 {
        grid-template-columns: repeat(9, 1fr);
    }
    .tf-sm-grid-10 {
        grid-template-columns: repeat(10, 1fr);
    }
    .tf-sm-grid-11 {
        grid-template-columns: repeat(11, 1fr);
    }
    .tf-sm-grid-12 {
        grid-template-columns: repeat(12, 1fr);
    }
    .order-sm-0 {
        order: 0;
    }
    .order-sm-1 {
        order: 1;
    }
    .order-sm-2 {
        order: 2;
    }
    .order-sm-3 {
        order: 3;
    }
    .order-sm-4 {
        order: 4;
    }
    .order-sm-5 {
        order: 5;
    }
    .order-sm-6 {
        order: 6;
    }
    .order-sm-7 {
        order: 7;
    }
    .order-sm-8 {
        order: 8;
    }
    .order-sm-9 {
        order: 9;
    }
    .order-sm-10 {
        order: 10;
    }
    .order-sm-11 {
        order: 11;
    }
    .order-sm-12 {
        order: 12;
    }
}

@media only screen and (min-width: 768px) and (max-width: 991px) {
    .container {
        width: 61rem;
    }
    .col-md,
    .col-md-1,
    .col-md-2,
    .col-md-3,
    .col-md-4,
    .col-md-5,
    .col-md-6,
    .col-md-7,
    .col-md-8,
    .col-md-9,
    .col-md-10,
    .col-md-11,
    .col-md-12 {
        box-sizing: border-box;
        -ms-flex: 0 0 auto;
        -webkit-box-flex: 0;
        flex: 0 0 auto;
        padding-right: 1rem;
        padding-left: 1rem;
    }
    .col-md {
        -webkit-flex-grow: 1;
        -ms-flex-positive: 1;
        -webkit-box-flex: 1;
        flex-grow: 1;
        -ms-flex-preferred-size: 0;
        flex-basis: 0;
        max-width: 100%;
    }
    .col-md-1 {
        -ms-flex-preferred-size: 8.333%;
        flex-basis: 8.333%;
        max-width: 8.333%;
    }
    .col-md-2 {
        -ms-flex-preferred-size: 16.667%;
        flex-basis: 16.667%;
        max-width: 16.667%;
    }
    .col-md-3 {
        -ms-flex-preferred-size: 25%;
        flex-basis: 25%;
        max-width: 25%;
    }
    .col-md-4 {
        -ms-flex-preferred-size: 33.333%;
        flex-basis: 33.333%;
        max-width: 33.333%;
    }
    .col-md-5 {
        -ms-flex-preferred-size: 41.667%;
        flex-basis: 41.667%;
        max-width: 41.667%;
    }
    .col-md-6 {
        -ms-flex-preferred-size: 50%;
        flex-basis: 50%;
        max-width: 50%;
    }
    .col-md-7 {
        -ms-flex-preferred-size: 58.333%;
        flex-basis: 58.333%;
        max-width: 58.333%;
    }
    .col-md-8 {
        -ms-flex-preferred-size: 66.667%;
        flex-basis: 66.667%;
        max-width: 66.667%;
    }
    .col-md-9 {
        -ms-flex-preferred-size: 75%;
        flex-basis: 75%;
        max-width: 75%;
    }
    .col-md-10 {
        -ms-flex-preferred-size: 83.333%;
        flex-basis: 83.333%;
        max-width: 83.333%;
    }
    .col-md-11 {
        -ms-flex-preferred-size: 91.667%;
        flex-basis: 91.667%;
        max-width: 91.667%;
    }
    .col-md-12 {
        -ms-flex-preferred-size: 100%;
        flex-basis: 100%;
        max-width: 100%;
    }
    .col-md-offset-1 {
        margin-left: 8.333%;
    }
    .col-md-offset-2 {
        margin-left: 16.667%;
    }
    .col-md-offset-3 {
        margin-left: 25%;
    }
    .col-md-offset-4 {
        margin-left: 33.333%;
    }
    .col-md-offset-5 {
        margin-left: 41.667%;
    }
    .col-md-offset-6 {
        margin-left: 50%;
    }
    .col-md-offset-7 {
        margin-left: 58.333%;
    }
    .col-md-offset-8 {
        margin-left: 66.667%;
    }
    .col-md-offset-9 {
        margin-left: 75%;
    }
    .col-md-offset-10 {
        margin-left: 83.333%;
    }
    .col-md-offset-11 {
        margin-left: 91.667%;
    }
    .start-md {
        -ms-flex-pack: start;
        -webkit-box-pack: start;
        justify-content: flex-start;
        text-align: start;
    }
    .center-md {
        -ms-flex-pack: center;
        -webkit-box-pack: center;
        justify-content: center;
        text-align: center;
    }
    .end-md {
        -ms-flex-pack: end;
        -webkit-box-pack: end;
        justify-content: flex-end;
        text-align: end;
    }
    .top-md {
        -ms-flex-align: start;
        -webkit-box-align: start;
        align-items: flex-start;
    }
    .middle-md {
        -ms-flex-align: center;
        -webkit-box-align: center;
        align-items: center;
    }
    .bottom-md {
        -ms-flex-align: end;
        -webkit-box-align: end;
        align-items: flex-end;
    }
    .around-md {
        -ms-flex-pack: distribute;
        justify-content: space-around;
    }
    .between-md {
        -ms-flex-pack: justify;
        -webkit-box-pack: justify;
        justify-content: space-between;
    }
    .first-md {
        -ms-flex-order: -1;
        -webkit-box-ordinal-group: 0;
        order: -1;
    }
    .last-md {
        -ms-flex-order: 1;
        -webkit-box-ordinal-group: 2;
        order: 1;
    }
    .tf-md-grid-1 {
        grid-template-columns: repeat(1, 1fr);
    }
    .tf-md-grid-2 {
        grid-template-columns: repeat(2, 1fr);
    }
    .tf-md-grid-3 {
        grid-template-columns: repeat(3, 1fr);
    }
    .tf-md-grid-4 {
        grid-template-columns: repeat(4, 1fr);
    }
    .tf-md-grid-5 {
        grid-template-columns: repeat(5, 1fr);
    }
    .tf-md-grid-6 {
        grid-template-columns: repeat(6, 1fr);
    }
    .tf-md-grid-7 {
        grid-template-columns: repeat(7, 1fr);
    }
    .tf-md-grid-8 {
        grid-template-columns: repeat(8, 1fr);
    }
    .tf-md-grid-9 {
        grid-template-columns: repeat(9, 1fr);
    }
    .tf-md-grid-10 {
        grid-template-columns: repeat(10, 1fr);
    }
    .tf-md-grid-11 {
        grid-template-columns: repeat(11, 1fr);
    }
    .tf-md-grid-12 {
        grid-template-columns: repeat(12, 1fr);
    }
    .order-md-0 {
        order: 0;
    }
    .order-md-1 {
        order: 1;
    }
    .order-md-2 {
        order: 2;
    }
    .order-md-3 {
        order: 3;
    }
    .order-md-4 {
        order: 4;
    }
    .order-md-5 {
        order: 5;
    }
    .order-md-6 {
        order: 6;
    }
    .order-md-7 {
        order: 7;
    }
    .order-md-8 {
        order: 8;
    }
    .order-md-9 {
        order: 9;
    }
    .order-md-10 {
        order: 10;
    }
    .order-md-11 {
        order: 11;
    }
    .order-md-12 {
        order: 12;
    }
}

@media only screen and (min-width: 992px) {
    .container {
        width: 71rem;
    }
    .col-lg,
    .col-lg-1,
    .col-lg-2,
    .col-lg-3,
    .col-lg-4,
    .col-lg-5,
    .col-lg-6,
    .col-lg-7,
    .col-lg-8,
    .col-lg-9,
    .col-lg-10,
    .col-lg-11,
    .col-lg-12 {
        box-sizing: border-box;
        -ms-flex: 0 0 auto;
        -webkit-box-flex: 0;
        flex: 0 0 auto;
        padding-right: 1rem;
        padding-left: 1rem;
    }
    .col-lg {
        -webkit-flex-grow: 1;
        -ms-flex-positive: 1;
        -webkit-box-flex: 1;
        flex-grow: 1;
        -ms-flex-preferred-size: 0;
        flex-basis: 0;
        max-width: 100%;
    }
    .col-lg-1 {
        -ms-flex-preferred-size: 8.333%;
        flex-basis: 8.333%;
        max-width: 8.333%;
    }
    .col-lg-2 {
        -ms-flex-preferred-size: 16.667%;
        flex-basis: 16.667%;
        max-width: 16.667%;
    }
    .col-lg-3 {
        -ms-flex-preferred-size: 25%;
        flex-basis: 25%;
        max-width: 25%;
    }
    .col-lg-4 {
        -ms-flex-preferred-size: 33.333%;
        flex-basis: 33.333%;
        max-width: 33.333%;
    }
    .col-lg-5 {
        -ms-flex-preferred-size: 41.667%;
        flex-basis: 41.667%;
        max-width: 41.667%;
    }
    .col-lg-6 {
        -ms-flex-preferred-size: 50%;
        flex-basis: 50%;
        max-width: 50%;
    }
    .col-lg-7 {
        -ms-flex-preferred-size: 58.333%;
        flex-basis: 58.333%;
        max-width: 58.333%;
    }
    .col-lg-8 {
        -ms-flex-preferred-size: 66.667%;
        flex-basis: 66.667%;
        max-width: 66.667%;
    }
    .col-lg-9 {
        -ms-flex-preferred-size: 75%;
        flex-basis: 75%;
        max-width: 75%;
    }
    .col-lg-10 {
        -ms-flex-preferred-size: 83.333%;
        flex-basis: 83.333%;
        max-width: 83.333%;
    }
    .col-lg-11 {
        -ms-flex-preferred-size: 91.667%;
        flex-basis: 91.667%;
        max-width: 91.667%;
    }
    .col-lg-12 {
        -ms-flex-preferred-size: 100%;
        flex-basis: 100%;
        max-width: 100%;
    }
    .col-lg-offset-1 {
        margin-left: 8.333%;
    }
    .col-lg-offset-2 {
        margin-left: 16.667%;
    }
    .col-lg-offset-3 {
        margin-left: 25%;
    }
    .col-lg-offset-4 {
        margin-left: 33.333%;
    }
    .col-lg-offset-5 {
        margin-left: 41.667%;
    }
    .col-lg-offset-6 {
        margin-left: 50%;
    }
    .col-lg-offset-7 {
        margin-left: 58.333%;
    }
    .col-lg-offset-8 {
        margin-left: 66.667%;
    }
    .col-lg-offset-9 {
        margin-left: 75%;
    }
    .col-lg-offset-10 {
        margin-left: 83.333%;
    }
    .col-lg-offset-11 {
        margin-left: 91.667%;
    }
    .start-lg {
        -ms-flex-pack: start;
        -webkit-box-pack: start;
        justify-content: flex-start;
        text-align: start;
    }
    .center-lg {
        -ms-flex-pack: center;
        -webkit-box-pack: center;
        justify-content: center;
        text-align: center;
    }
    .end-lg {
        -ms-flex-pack: end;
        -webkit-box-pack: end;
        justify-content: flex-end;
        text-align: end;
    }
    .top-lg {
        -ms-flex-align: start;
        -webkit-box-align: start;
        align-items: flex-start;
    }
    .middle-lg {
        -ms-flex-align: center;
        -webkit-box-align: center;
        align-items: center;
    }
    .bottom-lg {
        -ms-flex-align: end;
        -webkit-box-align: end;
        align-items: flex-end;
    }
    .around-lg {
        -ms-flex-pack: distribute;
        justify-content: space-around;
    }
    .between-lg {
        -ms-flex-pack: justify;
        -webkit-box-pack: justify;
        justify-content: space-between;
    }
    .first-lg {
        -ms-flex-order: -1;
        -webkit-box-ordinal-group: 0;
        order: -1;
    }
    .last-lg {
        -ms-flex-order: 1;
        -webkit-box-ordinal-group: 2;
        order: 1;
    }
    .tf-lg-grid-1 {
        grid-template-columns: repeat(1, 1fr);
    }
    .tf-lg-grid-2 {
        grid-template-columns: repeat(2, 1fr);
    }
    .tf-lg-grid-3 {
        grid-template-columns: repeat(3, 1fr);
    }
    .tf-lg-grid-4 {
        grid-template-columns: repeat(4, 1fr);
    }
    .tf-lg-grid-5 {
        grid-template-columns: repeat(5, 1fr);
    }
    .tf-lg-grid-6 {
        grid-template-columns: repeat(6, 1fr);
    }
    .tf-lg-grid-7 {
        grid-template-columns: repeat(7, 1fr);
    }
    .tf-lg-grid-8 {
        grid-template-columns: repeat(8, 1fr);
    }
    .tf-lg-grid-9 {
        grid-template-columns: repeat(9, 1fr);
    }
    .tf-lg-grid-10 {
        grid-template-columns: repeat(10, 1fr);
    }
    .tf-lg-grid-11 {
        grid-template-columns: repeat(11, 1fr);
    }
    .tf-lg-grid-12 {
        grid-template-columns: repeat(12, 1fr);
    }
    .order-lg-0 {
        order: 0;
    }
    .order-lg-1 {
        order: 1;
    }
    .order-lg-2 {
        order: 2;
    }
    .order-lg-3 {
        order: 3;
    }
    .order-lg-4 {
        order: 4;
    }
    .order-lg-5 {
        order: 5;
    }
    .order-lg-6 {
        order: 6;
    }
    .order-lg-7 {
        order: 7;
    }
    .order-lg-8 {
        order: 8;
    }
    .order-lg-9 {
        order: 9;
    }
    .order-lg-10 {
        order: 10;
    }
    .order-lg-11 {
        order: 11;
    }
    .order-lg-12 {
        order: 12;
    }
}


/* Utility Classes */


/* Spacing */

.spacing-0 {
    margin: 0;
    padding: 0;
}

.spacing-1 {
    margin: 0.25rem;
    padding: 0.25rem;
}

.spacing-2 {
    margin: 0.5rem;
    padding: 0.5rem;
}

.spacing-3 {
    margin: 1rem;
    padding: 1rem;
}

.spacing-4 {
    margin: 1.5rem;
    padding: 1.5rem;
}

.spacing-5 {
    margin: 2rem;
    padding: 2rem;
}


/* Text Alignment */

.text-left {
    text-align: left;
}

.text-center {
    text-align: center;
}

.text-right {
    text-align: right;
}

.text-justify {
    text-align: justify;
}


/* Text Transformation */

.uppercase {
    text-transform: uppercase;
}

.lowercase {
    text-transform: lowercase;
}

.capitalize {
    text-transform: capitalize;
}


/* Font Weight */

.font-light {
    font-weight: 300;
}

.font-normal {
    font-weight: 400;
}

.font-semibold {
    font-weight: 600;
}

.font-bold {
    font-weight: 700;
}


/* Visibility */

.hidden {
    display: none;
}

.visible {
    display: block;
}


/* Opacity */

.opacity-0 {
    opacity: 0;
}

.opacity-25 {
    opacity: 0.25;
}

.opacity-50 {
    opacity: 0.5;
}

.opacity-75 {
    opacity: 0.75;
}

.opacity-100 {
    opacity: 1;
}


/*
*
* Paddings ----------------*/


/* Padding All Sides */

.p-0 {
    padding: 0;
}

.p-1 {
    padding: 0.25rem;
}

.p-2 {
    padding: 0.5rem;
}

.p-3 {
    padding: 1rem;
}

.p-4 {
    padding: 1.5rem;
}

.p-5 {
    padding: 2rem;
}


/* Padding Top */

.pt-0 {
    padding-top: 0;
}

.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: 2rem;
}


/* Padding Right */

.pr-0 {
    padding-right: 0;
}

.pr-1 {
    padding-right: 0.25rem;
}

.pr-2 {
    padding-right: 0.5rem;
}

.pr-3 {
    padding-right: 1rem;
}

.pr-4 {
    padding-right: 1.5rem;
}

.pr-5 {
    padding-right: 2rem;
}


/* Padding Bottom */

.pb-0 {
    padding-bottom: 0;
}

.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: 2rem;
}


/* Padding Left */

.pl-0 {
    padding-left: 0;
}

.pl-1 {
    padding-left: 0.25rem;
}

.pl-2 {
    padding-left: 0.5rem;
}

.pl-3 {
    padding-left: 1rem;
}

.pl-4 {
    padding-left: 1.5rem;
}

.pl-5 {
    padding-left: 2rem;
}


/* Padding Top and Bottom */

.py-0 {
    padding-top: 0;
    padding-bottom: 0;
}

.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: 2rem;
    padding-bottom: 2rem;
}


/* Padding Left and Right */

.px-0 {
    padding-left: 0;
    padding-right: 0;
}

.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: 2rem;
    padding-right: 2rem;
}


/* ----------- topfaida Grid  -----------*/

.tf-grid {
    max-width: 100%;
    margin: 10px auto;
    padding: 10px;
    display: grid;
    grid-gap: 25px;
}

.tf-grid-card {
    position: relative;
    display: inline-block;
    overflow: hidden;
    border-radius: 20px;
    margin: 10px 0;
    padding: 10px;
    background: var(--tf-theme-grid-bg);
    color: var(--tf-theme-grid-txt);
    height: auto;
    z-index: 1;
    -webkit-border-radius: 20px;
    -moz-border-radius: 20px;
    -ms-border-radius: 20px;
    -o-border-radius: 20px;
}

.tf-grid-card img {
    width: 100%;
    object-fit: cover;
    border-radius: 15px;
    -webkit-border-radius: 15px;
    -moz-border-radius: 15px;
    -ms-border-radius: 15px;
    -o-border-radius: 15px;
}

.flex,
.flex-row {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.flex-col {
    display: flex;
    flex-wrap: nowrap;
    gap: 10px;
}

.flex-end {
    align-items: flex-end;
}

.flex-center {
    align-items: center;
}

.flex-column {
    display: flex;
    flex-direction: column;
}

.flex-wrap {
    flex-wrap: wrap;
}

.align-center {
    align-items: center;
    justify-content: center;
}

.inline-block {
    display: inline-block;
}

.block {
    display: block;
}

.tf-sticky {
    position: -webkit-sticky;
    position: sticky;
    top: 0;
    overflow-y: auto;
    max-height: 100vh;
}

.right {
    float: right;
}

.p-0 {
    padding: 0;
}

.m-sp {
    margin: 20px auto;
}


/* 
*
* Width 
*------------------------------------*/

.w-100 {
    width: 100%;
}

.mw-100 {
    max-width: 100%;
}

.w-1 {
    width: 100px;
}


/* 
*
* COLORS 
*------------------------------------*/

.green,
.clr-1 {
    background: rgb(44, 201, 44) !important;
    color: #fff;
}

.red,
.clr-2 {
    background: rgb(243, 56, 31) !important;
    color: #fff;
}

.yellow,
.clr-3 {
    background: rgb(239, 243, 31);
    color: #000;
}

.blue,
.clr-4 {
    background: rgb(31, 141, 243);
    color: #fff;
}

.grey,
.clr-4 {
    background: #bbbbbb;
    color: #6c6c6c;
}

.purple,
.clr-5 {
    background: rgb(128, 0, 128);
    background: linear-gradient(90deg, rgba(128, 0, 128, 1) 0%, rgba(153, 50, 204, 1) 50%, rgba(75, 0, 130, 1) 100%);
    color: #fff;
}

.orange,
.clr-6 {
    background: rgb(255, 165, 0);
    background: linear-gradient(90deg, rgba(255, 165, 0, 1) 0%, rgba(255, 140, 0, 1) 50%, rgba(255, 69, 0, 1) 100%);
    color: #fff;
}

.teal,
.clr-7 {
    background: rgb(0, 128, 128);
    background: linear-gradient(90deg, rgba(0, 128, 128, 1) 0%, rgba(64, 224, 208, 1) 50%, rgba(32, 178, 170, 1) 100%);
    color: #fff;
}

.pink,
.clr-8 {
    background: rgb(255, 105, 180);
    background: linear-gradient(90deg, rgba(255, 105, 180, 1) 0%, rgba(255, 20, 147, 1) 50%, rgba(219, 112, 147, 1) 100%);
    color: #fff;
}

.lime,
.clr-9 {
    background: rgb(50, 205, 50);
    background: linear-gradient(90deg, rgba(50, 205, 50, 1) 0%, rgba(152, 251, 152, 1) 50%, rgba(124, 252, 0, 1) 100%);
    color: #000;
}

.maroon,
.clr-10 {
    background: rgb(128, 0, 0);
    background: linear-gradient(90deg, rgba(128, 0, 0, 1) 0%, rgba(139, 0, 0, 1) 50%, rgba(165, 42, 42, 1) 100%);
    color: #fff;
}

.indigo,
.clr-11 {
    background: rgb(75, 0, 130);
    background: linear-gradient(90deg, rgba(75, 0, 130, 1) 0%, rgba(0, 0, 139, 1) 50%, rgba(0, 0, 205, 1) 100%);
    color: #fff;
}

.olive,
.clr-12 {
    background: rgb(128, 128, 0);
    background: linear-gradient(90deg, rgba(128, 128, 0, 1) 0%, rgba(107, 142, 35, 1) 50%, rgba(85, 107, 47, 1) 100%);
    color: #fff;
}

.coral,
.clr-13 {
    background: rgb(255, 127, 80);
    background: linear-gradient(90deg, rgba(255, 127, 80, 1) 0%, rgba(240, 128, 128, 1) 50%, rgba(255, 99, 71, 1) 100%);
    color: #fff;
}

.gold,
.clr-14 {
    background: rgb(255, 215, 0);
    background: linear-gradient(90deg, rgba(255, 215, 0, 1) 0%, rgba(218, 165, 32, 1) 50%, rgba(184, 134, 11, 1) 100%);
    color: #fff;
}

.lite-purple,
.lite-clr-1 {
    background: rgb(221, 160, 221);
    background: linear-gradient(90deg, rgba(221, 160, 221, 1) 0%, rgba(238, 130, 238, 1) 50%, rgba(218, 112, 214, 1) 100%);
    color: #000;
}

.lite-blue,
.lite-clr-2 {
    background: rgb(240, 248, 255);
    background: linear-gradient(90deg, rgba(240, 248, 255, 1) 0%, rgba(240, 248, 255, 1) 50%, rgba(240, 248, 255, 1) 100%);
    color: #000;
}

.lite-green,
.lite-clr-3 {
    background: rgb(152, 251, 152);
    background: linear-gradient(90deg, rgba(152, 251, 152, 1) 0%, rgba(144, 238, 144, 1) 50%, rgba(127, 255, 0, 1) 100%);
    color: #000;
}

.lite-yellow,
.lite-clr-4 {
    background: rgb(255, 255, 224);
    background: linear-gradient(90deg, rgba(255, 255, 224, 1) 0%, rgba(255, 255, 0, 1) 50%, rgba(255, 255, 0, 1) 100%);
    color: #000;
}

.lite-orange,
.lite-clr-5 {
    background: rgb(255, 192, 203);
    background: linear-gradient(90deg, rgba(255, 192, 203, 1) 0%, rgba(255, 105, 180, 1) 50%, rgba(255, 20, 147, 1) 100%);
    color: #000;
}

.lite-green,
.lite-clr-6 {
    background-image: linear-gradient(-225deg, #A445B2 0%, #D41872 52%, #FF0066 100%);
    color: #fff;
}

.lite-teal,
.lite-clr-7 {
    background: rgb(176, 224, 230);
    background: linear-gradient(90deg, rgba(176, 224, 230, 1) 0%, rgba(0, 206, 209, 1) 50%, rgba(64, 224, 208, 1) 100%);
    color: #000;
}

.lite-coral,
.lite-clr-8 {
    background: rgb(255, 218, 185);
    background: linear-gradient(90deg, rgba(255, 218, 185, 1) 0%, rgba(255, 165, 0, 1) 50%, rgba(255, 127, 80, 1) 100%);
    color: #000;
}

.lite-peach,
.lite-clr-9 {
    background: rgb(255, 218, 185);
    background: linear-gradient(90deg, rgba(255, 218, 185, 1) 0%, rgba(255, 192, 203, 1) 50%, rgba(255, 182, 193, 1) 100%);
    color: #000;
}

.lite-lime,
.lite-clr-10 {
    background-image: linear-gradient(-225deg, #A8BFFF 0%, #884D80 100%);
    color: #000;
}


/* ----------- topfaida Grid  ----------- }*/


/* ----------- topfaida Effect  ----------- */

.tf-shine-ef {
    position: relative;
    overflow: hidden;
}

.tf-shine-ef::before {
    content: "";
    position: absolute;
    top: 0;
    left: -75%;
    width: 50%;
    height: 100%;
    background-image: linear-gradient(to right, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0.4), rgba(255, 255, 255, 0));
    transform: skewX(-20deg);
    transition: all 0.7s;
    pointer-events: none;
}

.tf-shine-ef:hover::before {
    left: 100%;
}


/* Zoom effect */

.tf-zoom-ef {
    display: inline-block;
    overflow: hidden;
    transition: transform 0.3s;
}

.tf-zoom-ef:hover {
    transform: scale(1.1);
}


/* Rotate effect */

.tf-rotate-ef {
    display: inline-block;
    transition: transform 0.3s;
}

.tf-rotate-ef:hover {
    transform: rotate(5deg);
}


/* Color overlay effect */

.tf-color-overlay {
    position: relative;
    display: inline-block;
    overflow: hidden;
}

.tf-color-overlay::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.2);
    opacity: 0;
    transition: opacity 0.3s;
}

.tf-color-overlay:hover::before {
    opacity: 1;
}

#overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.5);
    backdrop-filter: blur(5px);
    z-index: 10;
    display: none;
}

.tf-center {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 80%;
    max-width: 500px;
}


/* ----------- topfaida Effect ----------- }*/


/* ----------- topfaida Shadow ----------- */

.tf-sad-1 {
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);
}

.tf-sad-2 {
    box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.23);
}

.tf-sad-3d {
    box-shadow: 0 14px 28px rgba(0, 0, 0, 0.25), 0 10px 10px rgba(0, 0, 0, 0.22);
}

.tf-sad-light {
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.08);
}

.tf-sad-5 {
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
}

.tf-sad-6 {
    box-shadow: 0 8px 16px rgba(0, 0, 0, 0.3);
}


/* ----------- topfaida Shadow ----------- }*/


/* topfaida animation effects */

.animate-btt {
    animation: animateBtt 1s ease-out;
}

.animate-ltr {
    animation: animateLtr 1s ease-out;
}

.animate-rtl {
    animation: animateRtl 1s ease-out;
}

.animate-curve-float {
    animation: curveFloat 1s ease-out;
}

.animate-bounce {
    animation: bounce 1s cubic-bezier(0.25, 0.1, 0.25, 1);
}

.animate-box {
    animation-fill-mode: forwards;
    opacity: 0;
}


/* ----------- Topfaida styles -----------*/

.tf-style-1,
.tf-style-2,
.tf-style-3,
.tf-style-4,
.tf-style-5 {
    transition: all 0.3s ease;
}


/* Style 1 */

.tf-style-1 {
    background-color: #f5f5f5;
    border: 1px solid #e5e5e5;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
    padding: 10px;
    border-radius: 5px;
    -webkit-border-radius: 5px;
    -moz-border-radius: 5px;
    -ms-border-radius: 5px;
    -o-border-radius: 5px;
}


/* Style 2 */

.tf-style-2 {
    background-color: #f5f5f5;
    border: 1px solid #e5e5e5;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
    padding: 10px;
    border-radius: 10px;
    -webkit-border-radius: 10px;
    -moz-border-radius: 10px;
    -ms-border-radius: 10px;
    -o-border-radius: 10px;
}

.tf-style-2 img {
    box-shadow: var(--tf-shadow-light);
    border-radius: 10px;
}


/* Style 3 */

.tf-style-3 {
    background: var(--tf-theme-bg-clr);
    border-radius: 10px;
    box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.15);
    padding: 15px;
    color: #fff;
    -webkit-border-radius: 10px;
    -moz-border-radius: 10px;
    -ms-border-radius: 10px;
    -o-border-radius: 10px;
}


/* Style 4 */

.tf-style-4 {
    background-color: #e8eaf6;
    border: 1px solid #c5cae9;
    box-shadow: 0 3px 6px rgba(0, 0, 0, 0.12);
    padding: 15px;
    border-radius: 5px;
}


/* Style 5 */

.tf-style-5 {
    background: repeating-linear-gradient( -45deg, #e9fbe7, #e9fbe7 10px, #c8e6c9 10px, #c8e6c9 20px);
    border: 2px dashed #a5d6a7;
    border-radius: 5px;
    padding: 10px;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
    transition: all 0.3s ease;
}

.tf-style-1:hover,
.tf-style-2:hover,
.tf-style-3:hover,
.tf-style-4:hover,
.tf-style-5:hover {
    box-shadow: var(--tf-shadow-dark);
    transform: translateY(-2px);
}


/* ----------- Topfaida styles -----------}*/

@keyframes animateBtt {
    from {
        transform: translateY(100%);
        opacity: 0;
    }
    to {
        transform: translateY(0);
        opacity: 1;
    }
}

@keyframes animateLtr {
    from {
        transform: translateX(-100%);
        opacity: 0;
    }
    to {
        transform: translateX(0);
        opacity: 1;
    }
}

@keyframes animateRtl {
    from {
        transform: translateX(100%);
        opacity: 0;
    }
    to {
        transform: translateX(0);
        opacity: 1;
    }
}

@keyframes curveFloat {
    0% {
        transform: translateY(100%);
        opacity: 0;
    }
    50% {
        transform: translateY(-50px) scale(1.1);
        opacity: 1;
    }
    100% {
        transform: translateY(0);
        opacity: 1;
    }
}

@keyframes bounce {
    0% {
        transform: translateY(0);
        opacity: 0;
    }
    40% {
        transform: translateY(-30px);
        opacity: 0.5;
    }
    60% {
        transform: translateY(-15px);
        opacity: 0.75;
    }
    100% {
        transform: translateY(0);
        opacity: 1;
    }
    60% {
        transform: translateY(-15px);
        opacity: 0.75;
    }
    100% {
        transform: translateY(0);
        opacity: 1;
    }
}



.theme-style{
    background:var(--tf-theme-bg-clr) !important;
    color: var(--tf-theme-txt-clr) !important;
}

.theme-style-1{
    background:var(--tf-theme-bg-1) !important;
    color: var(--tf-theme-clr-1) !important;
}

.theme-style-2{
    background:var(--tf-theme-bg-2) !important;
    color: var(--tf-theme-clr-2) !important;
}

.d-color-header{
    background:var(--tf-theme-header-bg) !important;
    color: var(--tf-theme-header-txt) !important;

}
.d-color-grid{
    background:var(--tf-theme-grid-bg) !important;
    color: var(--tf-theme-grid-txt) !important;
}

.d-color-footer{
    background:var(--tf-theme-footer-bg) !important;
    color: var(--tf-theme-footer-txt) !important;
}

/* Border Utilities */
.border {
    border-width: 1px;
    border-style: solid;
  }
  .border-none {
    border: none;
  }
  .border-thin {
    border-width: 1px;
  }
  .border-medium {
    border-width: 2px;
  }
  .border-thick {
    border-width: 4px;
  }
  
  /* Border Color */
  .border-primary {
    border-color: #007bff;
  }
  .border-secondary {
    border-color: #6c757d;
  }
  .border-success {
    border-color: #28a745;
  }
  .border-danger {
    border-color: #dc3545;
  }
  .border-warning {
    border-color: #ffc107;
  }
  .border-info {
    border-color: #17a2b8;
  }
  .border-light {
    border-color: #f8f9fa;
  }
  .border-dark {
    border-color: #343a40;
  }
  
  /* Border Radius Utilities */
  .radius {
    border-radius: 4px;
  }
  .radius-none {
    border-radius: 0;
  }
  .radius-sm {
    border-radius: 2px;
  }
  .radius-md {
    border-radius: 8px;
  }
  .radius-lg {
    border-radius: 16px;
  }
  .radius-pill {
    border-radius: 50rem;
  }
  .radius-circle {
    border-radius: 50%;
  }
  
  /* Box Shadow Utilities */
  .shadow {
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
  }
  .shadow-none {
    box-shadow: none;
  }
  .shadow-sm {
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
  }
  .shadow-md {
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
  }
  .shadow-lg {
    box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2);
  }
  .shadow-xl {
    box-shadow: 0 15px 30px rgba(0, 0, 0, 0.3);
  }
  .shadow-primary {
    box-shadow: 0 1px 3px rgba(0, 123, 255, 0.5);
  }
  .shadow-success {
    box-shadow: 0 1px 3px rgba(40, 167, 69, 0.5);
  }
  .shadow-danger {
    box-shadow: 0 1px 3px rgba(220, 53, 69, 0.5);
  }
  
  /* Utility Classes for Customization */
  .u-border {
    --border-width: 1px;
    --border-style: solid;
    --border-color: #000;
    border-width: var(--border-width);
    border-style: var(--border-style);
    border-color: var(--border-color);
  }
  
  .u-radius {
    --radius: 4px;
    border-radius: var(--radius);
  }
  
  .u-shadow {
    --shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
    box-shadow: var(--shadow);
  }
  


  /* Core Font Size Utility Classes */

/* Base Font Sizes */
:root {
    --font-xs: 0.75rem;   /* Extra Small */
    --font-sm: 0.875rem;  /* Small */
    --font-md: 1rem;      /* Medium */
    --font-lg: 1.125rem;  /* Large */
    --font-xl: 1.25rem;   /* Extra Large */
    --font-2xl: 1.5rem;   /* 2X Large */
    --font-3xl: 1.875rem; /* 3X Large */
    --font-4xl: 2.25rem;  /* 4X Large */
    --font-5xl: 3rem;     /* 5X Large */
  }
  
  /* Utility Classes */
  .font-xs { font-size: var(--font-xs); }
  .font-sm { font-size: var(--font-sm); }
  .font-md { font-size: var(--font-md); }
  .font-lg { font-size: var(--font-lg); }
  .font-xl { font-size: var(--font-xl); }
  .font-2xl { font-size: var(--font-2xl); }
  .font-3xl { font-size: var(--font-3xl); }
  .font-4xl { font-size: var(--font-4xl); }
  .font-5xl { font-size: var(--font-5xl); }
  
  /* Responsive Font Sizes */
  @media (max-width: 768px) {
    .font-xs { font-size: calc(var(--font-xs) * 0.9); }
    .font-sm { font-size: calc(var(--font-sm) * 0.9); }
    .font-md { font-size: calc(var(--font-md) * 0.9); }
    .font-lg { font-size: calc(var(--font-lg) * 0.9); }
    .font-xl { font-size: calc(var(--font-xl) * 0.9); }
    .font-2xl { font-size: calc(var(--font-2xl) * 0.9); }
    .font-3xl { font-size: calc(var(--font-3xl) * 0.9); }
    .font-4xl { font-size: calc(var(--font-4xl) * 0.9); }
    .font-5xl { font-size: calc(var(--font-5xl) * 0.9); }
  }
  
  @media (min-width: 1200px) {
    .font-xs { font-size: calc(var(--font-xs) * 1.1); }
    .font-sm { font-size: calc(var(--font-sm) * 1.1); }
    .font-md { font-size: calc(var(--font-md) * 1.1); }
    .font-lg { font-size: calc(var(--font-lg) * 1.1); }
    .font-xl { font-size: calc(var(--font-xl) * 1.1); }
    .font-2xl { font-size: calc(var(--font-2xl) * 1.1); }
    .font-3xl { font-size: calc(var(--font-3xl) * 1.1); }
    .font-4xl { font-size: calc(var(--font-4xl) * 1.1); }
    .font-5xl { font-size: calc(var(--font-5xl) * 1.1); }
  }
  
  /* Helper Classes */
  .text-left { text-align: left; }
  .text-center { text-align: center; }
  .text-right { text-align: right; }
  .text-justify { text-align: justify; }





  /* Modern and Elegant Button Utility Classes */

/* Base Button Variables */
:root {
    --btn-padding-sm: 0.5rem 1rem;
    --btn-padding-md: 0.75rem 1.5rem;
    --btn-padding-lg: 1rem 2rem;
    --btn-font-sm: 0.875rem;
    --btn-font-md: 1rem;
    --btn-font-lg: 1.125rem;
    --btn-radius: 0.5rem;
    --btn-border-width: 2px;
    --btn-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
    --btn-hover-shadow: 0 6px 8px rgba(0, 0, 0, 0.15);
    --btn-primary-bg: #4CAF50;
    --btn-primary-color: #ffffff;
    --btn-primary-border: #4CAF50;
    --btn-secondary-bg: #ffffff;
    --btn-secondary-color: #4CAF50;
    --btn-secondary-border: #4CAF50;
    --btn-hover-opacity: 0.9;
    --btn-disabled-opacity: 0.6;
  }
  
  /* Base Button Styles */
  .btn {
    font-family: sans-serif;
    display: inline-block;
    font-weight: 500;
    text-align: center;
    text-decoration: none;
    vertical-align: middle;
    cursor: pointer;
    border: var(--btn-border-width) solid transparent;
    border-radius: var(--btn-radius);
    transition: all 0.3s ease-in-out;
    user-select: none;
    box-shadow: var(--btn-shadow);
  }
  
  /* Button Sizes */
  .btn-sm {
    padding: var(--btn-padding-sm);
    font-size: var(--btn-font-sm);
  }
  
  .btn-md {
    padding: var(--btn-padding-md);
    font-size: var(--btn-font-md);
  }
  
  .btn-lg {
    padding: var(--btn-padding-lg);
    font-size: var(--btn-font-lg);
  }
  
  /* Button Variants */
  .btn-primary {
    background-color: var(--btn-primary-bg);
    color: var(--btn-primary-color);
    border-color: var(--btn-primary-border);
  }
  
  .btn-primary:hover {
    background-color: var(--btn-primary-bg);
    opacity: var(--btn-hover-opacity);
    box-shadow: var(--btn-hover-shadow);
  }
  
  .btn-secondary {
    background-color: var(--btn-secondary-bg);
    color: var(--btn-secondary-color);
    border-color: var(--btn-secondary-border);
  }
  
  .btn-secondary:hover {
    background-color: var(--btn-secondary-bg);
    color: var(--btn-secondary-color);
    border-color: var(--btn-secondary-border);
    opacity: var(--btn-hover-opacity);
    box-shadow: var(--btn-hover-shadow);
  }
  
  /* Disabled State */
  .btn:disabled,
  .btn.disabled {
    cursor: not-allowed;
    opacity: var(--btn-disabled-opacity);
    box-shadow: none;
  }
  
  /* Full Width */
  .btn-block {
    display: block;
    width: 100%;
  }
  
  /* Floating Action Button */
  .btn-fab {
    width: 3.5rem;
    height: 3.5rem;
    padding: 0;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: var(--btn-shadow);
  }
  
  .btn-fab-primary {
    background-color: var(--btn-primary-bg);
    color: var(--btn-primary-color);
  }
  
  .btn-fab-primary:hover {
    background-color: var(--btn-primary-bg);
    opacity: var(--btn-hover-opacity);
    box-shadow: var(--btn-hover-shadow);
  }
  
  /* Example Usage in HTML */
  /* <button class="btn btn-primary btn-md">Primary Button</button> */
  /* <button class="btn btn-secondary btn-lg btn-block">Secondary Button</button> */
  /* <button class="btn btn-fab btn-fab-primary"><i class="icon">+</i></button> */
  


  /* Modern and Easy-to-Use Color Utility Classes */

/* Base Color Variables */
:root {
    --color-primary: #4CAF50;       /* Primary Green */
    --color-secondary: #2196F3;    /* Secondary Blue */
    --color-danger: #f44336;       /* Danger Red */
    --color-warning: #FFC107;      /* Warning Yellow */
    --color-success: #8BC34A;      /* Success Light Green */
    --color-info: #00BCD4;         /* Info Cyan */
    --color-light: #f8f9fa;        /* Light Gray */
    --color-dark: #343a40;         /* Dark Gray */
    --color-white: #ffffff;        /* White */
    --color-black: #000000;        /* Black */
  }
  
  /* Text Colors */
  .text-primary { color: var(--color-primary); }
  .text-secondary { color: var(--color-secondary); }
  .text-danger { color: var(--color-danger); }
  .text-warning { color: var(--color-warning); }
  .text-success { color: var(--color-success); }
  .text-info { color: var(--color-info); }
  .text-light { color: var(--color-light); }
  .text-dark { color: var(--color-dark); }
  .text-white { color: var(--color-white); }
  .text-black { color: var(--color-black); }
  
  /* Background Colors */
  .bg-primary { background-color: var(--color-primary); }
  .bg-secondary { background-color: var(--color-secondary); }
  .bg-danger { background-color: var(--color-danger); }
  .bg-warning { background-color: var(--color-warning); }
  .bg-success { background-color: var(--color-success); }
  .bg-info { background-color: var(--color-info); }
  .bg-light { background-color: var(--color-light); }
  .bg-dark { background-color: var(--color-dark); }
  .bg-white { background-color: var(--color-white); }
  .bg-black { background-color: var(--color-black); }
  
  /* Border Colors */
  .border-primary { border-color: var(--color-primary); }
  .border-secondary { border-color: var(--color-secondary); }
  .border-danger { border-color: var(--color-danger); }
  .border-warning { border-color: var(--color-warning); }
  .border-success { border-color: var(--color-success); }
  .border-info { border-color: var(--color-info); }
  .border-light { border-color: var(--color-light); }
  .border-dark { border-color: var(--color-dark); }
  .border-white { border-color: var(--color-white); }
  .border-black { border-color: var(--color-black); }
  
  /* Hover Effects */
  .bg-primary:hover { background-color: var(--color-primary); opacity: 0.85; }
  .bg-secondary:hover { background-color: var(--color-secondary); opacity: 0.85; }
  .bg-danger:hover { background-color: var(--color-danger); opacity: 0.85; }
  .bg-warning:hover { background-color: var(--color-warning); opacity: 0.85; }
  .bg-success:hover { background-color: var(--color-success); opacity: 0.85; }
  .bg-info:hover { background-color: var(--color-info); opacity: 0.85; }
  
  /* Example Usage in HTML */
  /* <p class="text-primary">This is primary text</p> */
  /* <div class="bg-danger text-white">Danger Box</div> */
  /* <button class="btn bg-success text-white">Success Button</button> */
  