/* ═══════════════════════════════════════════════════════════════════════════════
   TL-LAYOUT.CSS — Grid System, Containers, Flex Utilities, Responsive Helpers
   ═══════════════════════════════════════════════════════════════════════════════ */

.container {
    width: 100%;
    padding-right: 15px;
    padding-left: 15px;
    margin-right: auto;
    margin-left: auto;
}
@media (min-width: 576px) {
    .container {
        max-width: 540px;
    }
}
@media (min-width: 768px) {
    .container {
        max-width: 720px;
    }
}
@media (min-width: 992px) {
    .container {
        max-width: 960px;
    }
}
@media (min-width: 1200px) {
    .container {
        max-width: 1140px;
    }
}
.container-fluid {
    width: 100%;
    padding-right: 15px;
    padding-left: 15px;
    margin-right: auto;
    margin-left: auto;
}
.row {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    margin-right: -15px;
    margin-left: -15px;
}
.no-gutters {
    margin-right: 0;
    margin-left: 0;
}
.no-gutters > .col,
.no-gutters > [class*="col-"] {
    padding-right: 0;
    padding-left: 0;
}
.col,
.col-1,
.col-10,
.col-11,
.col-12,
.col-2,
.col-3,
.col-4,
.col-5,
.col-6,
.col-7,
.col-8,
.col-9,
.col-auto,
.col-lg,
.col-lg-1,
.col-lg-10,
.col-lg-11,
.col-lg-12,
.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-auto,
.col-md,
.col-md-1,
.col-md-10,
.col-md-11,
.col-md-12,
.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-auto,
.col-sm,
.col-sm-1,
.col-sm-10,
.col-sm-11,
.col-sm-12,
.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-auto,
.col-xl,
.col-xl-1,
.col-xl-10,
.col-xl-11,
.col-xl-12,
.col-xl-2,
.col-xl-3,
.col-xl-4,
.col-xl-5,
.col-xl-6,
.col-xl-7,
.col-xl-8,
.col-xl-9,
.col-xl-auto {
    position: relative;
    width: 100%;
    padding-right: 15px;
    padding-left: 15px;
}
.col {
    -ms-flex-preferred-size: 0;
    flex-basis: 0;
    -ms-flex-positive: 1;
    flex-grow: 1;
    max-width: 100%;
}
.col-auto {
    -ms-flex: 0 0 auto;
    flex: 0 0 auto;
    width: auto;
    max-width: 100%;
}
.col-1 {
    -ms-flex: 0 0 8.333333%;
    flex: 0 0 8.333333%;
    max-width: 8.333333%;
}
.col-2 {
    -ms-flex: 0 0 16.666667%;
    flex: 0 0 16.666667%;
    max-width: 16.666667%;
}
.col-3 {
    -ms-flex: 0 0 25%;
    flex: 0 0 25%;
    max-width: 25%;
}
.col-4 {
    -ms-flex: 0 0 33.333333%;
    flex: 0 0 33.333333%;
    max-width: 33.333333%;
}
.col-5 {
    -ms-flex: 0 0 41.666667%;
    flex: 0 0 41.666667%;
    max-width: 41.666667%;
}
.col-6 {
    -ms-flex: 0 0 50%;
    flex: 0 0 50%;
    max-width: 50%;
}
.col-7 {
    -ms-flex: 0 0 58.333333%;
    flex: 0 0 58.333333%;
    max-width: 58.333333%;
}
.col-8 {
    -ms-flex: 0 0 66.666667%;
    flex: 0 0 66.666667%;
    max-width: 66.666667%;
}
.col-9 {
    -ms-flex: 0 0 75%;
    flex: 0 0 75%;
    max-width: 75%;
}
.col-10 {
    -ms-flex: 0 0 83.333333%;
    flex: 0 0 83.333333%;
    max-width: 83.333333%;
}
.col-11 {
    -ms-flex: 0 0 91.666667%;
    flex: 0 0 91.666667%;
    max-width: 91.666667%;
}
.col-12 {
    -ms-flex: 0 0 100%;
    flex: 0 0 100%;
    max-width: 100%;
}
.order-first {
    -ms-flex-order: -1;
    order: -1;
}
.order-last {
    -ms-flex-order: 13;
    order: 13;
}
.order-0 {
    -ms-flex-order: 0;
    order: 0;
}
.order-1 {
    -ms-flex-order: 1;
    order: 1;
}
.order-2 {
    -ms-flex-order: 2;
    order: 2;
}
.order-3 {
    -ms-flex-order: 3;
    order: 3;
}
.order-4 {
    -ms-flex-order: 4;
    order: 4;
}
.order-5 {
    -ms-flex-order: 5;
    order: 5;
}
.order-6 {
    -ms-flex-order: 6;
    order: 6;
}
.order-7 {
    -ms-flex-order: 7;
    order: 7;
}
.order-8 {
    -ms-flex-order: 8;
    order: 8;
}
.order-9 {
    -ms-flex-order: 9;
    order: 9;
}
.order-10 {
    -ms-flex-order: 10;
    order: 10;
}
.order-11 {
    -ms-flex-order: 11;
    order: 11;
}
.order-12 {
    -ms-flex-order: 12;
    order: 12;
}
.offset-1 {
    margin-left: 8.333333%;
}
.offset-2 {
    margin-left: 16.666667%;
}
.offset-3 {
    margin-left: 25%;
}
.offset-4 {
    margin-left: 33.333333%;
}
.offset-5 {
    margin-left: 41.666667%;
}
.offset-6 {
    margin-left: 50%;
}
.offset-7 {
    margin-left: 58.333333%;
}
.offset-8 {
    margin-left: 66.666667%;
}
.offset-9 {
    margin-left: 75%;
}
.offset-10 {
    margin-left: 83.333333%;
}
.offset-11 {
    margin-left: 91.666667%;
}
@media (min-width: 576px) {
    .col-sm {
        -ms-flex-preferred-size: 0;
        flex-basis: 0;
        -ms-flex-positive: 1;
        flex-grow: 1;
        max-width: 100%;
    }
    .col-sm-auto {
        -ms-flex: 0 0 auto;
        flex: 0 0 auto;
        width: auto;
        max-width: 100%;
    }
    .col-sm-1 {
        -ms-flex: 0 0 8.333333%;
        flex: 0 0 8.333333%;
        max-width: 8.333333%;
    }
    .col-sm-2 {
        -ms-flex: 0 0 16.666667%;
        flex: 0 0 16.666667%;
        max-width: 16.666667%;
    }
    .col-sm-3 {
        -ms-flex: 0 0 25%;
        flex: 0 0 25%;
        max-width: 25%;
    }
    .col-sm-4 {
        -ms-flex: 0 0 33.333333%;
        flex: 0 0 33.333333%;
        max-width: 33.333333%;
    }
    .col-sm-5 {
        -ms-flex: 0 0 41.666667%;
        flex: 0 0 41.666667%;
        max-width: 41.666667%;
    }
    .col-sm-6 {
        -ms-flex: 0 0 50%;
        flex: 0 0 50%;
        max-width: 50%;
    }
    .col-sm-7 {
        -ms-flex: 0 0 58.333333%;
        flex: 0 0 58.333333%;
        max-width: 58.333333%;
    }
    .col-sm-8 {
        -ms-flex: 0 0 66.666667%;
        flex: 0 0 66.666667%;
        max-width: 66.666667%;
    }
    .col-sm-9 {
        -ms-flex: 0 0 75%;
        flex: 0 0 75%;
        max-width: 75%;
    }
    .col-sm-10 {
        -ms-flex: 0 0 83.333333%;
        flex: 0 0 83.333333%;
        max-width: 83.333333%;
    }
    .col-sm-11 {
        -ms-flex: 0 0 91.666667%;
        flex: 0 0 91.666667%;
        max-width: 91.666667%;
    }
    .col-sm-12 {
        -ms-flex: 0 0 100%;
        flex: 0 0 100%;
        max-width: 100%;
    }
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
}
@media (min-width: 768px) {
    .col-md {
        -ms-flex-preferred-size: 0;
        flex-basis: 0;
        -ms-flex-positive: 1;
        flex-grow: 1;
        max-width: 100%;
    }
    .col-md-auto {
        -ms-flex: 0 0 auto;
        flex: 0 0 auto;
        width: auto;
        max-width: 100%;
    }
    .col-md-1 {
        -ms-flex: 0 0 8.333333%;
        flex: 0 0 8.333333%;
        max-width: 8.333333%;
    }
    .col-md-2 {
        -ms-flex: 0 0 16.666667%;
        flex: 0 0 16.666667%;
        max-width: 16.666667%;
    }
    .col-md-3 {
        -ms-flex: 0 0 25%;
        flex: 0 0 25%;
        max-width: 25%;
    }
    .col-md-4 {
        -ms-flex: 0 0 33.333333%;
        flex: 0 0 33.333333%;
        max-width: 33.333333%;
    }
    .col-md-5 {
        -ms-flex: 0 0 41.666667%;
        flex: 0 0 41.666667%;
        max-width: 41.666667%;
    }
    .col-md-6 {
        -ms-flex: 0 0 50%;
        flex: 0 0 50%;
        max-width: 50%;
    }
    .col-md-7 {
        -ms-flex: 0 0 58.333333%;
        flex: 0 0 58.333333%;
        max-width: 58.333333%;
    }
    .col-md-8 {
        -ms-flex: 0 0 66.666667%;
        flex: 0 0 66.666667%;
        max-width: 66.666667%;
    }
    .col-md-9 {
        -ms-flex: 0 0 75%;
        flex: 0 0 75%;
        max-width: 75%;
    }
    .col-md-10 {
        -ms-flex: 0 0 83.333333%;
        flex: 0 0 83.333333%;
        max-width: 83.333333%;
    }
    .col-md-11 {
        -ms-flex: 0 0 91.666667%;
        flex: 0 0 91.666667%;
        max-width: 91.666667%;
    }
    .col-md-12 {
        -ms-flex: 0 0 100%;
        flex: 0 0 100%;
        max-width: 100%;
    }
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
}
@media (min-width: 992px) {
    .col-lg {
        -ms-flex-preferred-size: 0;
        flex-basis: 0;
        -ms-flex-positive: 1;
        flex-grow: 1;
        max-width: 100%;
    }
    .col-lg-auto {
        -ms-flex: 0 0 auto;
        flex: 0 0 auto;
        width: auto;
        max-width: 100%;
    }
    .col-lg-1 {
        -ms-flex: 0 0 8.333333%;
        flex: 0 0 8.333333%;
        max-width: 8.333333%;
    }
    .col-lg-2 {
        -ms-flex: 0 0 16.666667%;
        flex: 0 0 16.666667%;
        max-width: 16.666667%;
    }
    .col-lg-3 {
        -ms-flex: 0 0 25%;
        flex: 0 0 25%;
        max-width: 25%;
    }
    .col-lg-4 {
        -ms-flex: 0 0 33.333333%;
        flex: 0 0 33.333333%;
        max-width: 33.333333%;
    }
    .col-lg-5 {
        -ms-flex: 0 0 41.666667%;
        flex: 0 0 41.666667%;
        max-width: 41.666667%;
    }
    .col-lg-6 {
        -ms-flex: 0 0 50%;
        flex: 0 0 50%;
        max-width: 50%;
    }
    .col-lg-7 {
        -ms-flex: 0 0 58.333333%;
        flex: 0 0 58.333333%;
        max-width: 58.333333%;
    }
    .col-lg-8 {
        -ms-flex: 0 0 66.666667%;
        flex: 0 0 66.666667%;
        max-width: 66.666667%;
    }
    .col-lg-9 {
        -ms-flex: 0 0 75%;
        flex: 0 0 75%;
        max-width: 75%;
    }
    .col-lg-10 {
        -ms-flex: 0 0 83.333333%;
        flex: 0 0 83.333333%;
        max-width: 83.333333%;
    }
    .col-lg-11 {
        -ms-flex: 0 0 91.666667%;
        flex: 0 0 91.666667%;
        max-width: 91.666667%;
    }
    .col-lg-12 {
        -ms-flex: 0 0 100%;
        flex: 0 0 100%;
        max-width: 100%;
    }
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
}
@media (min-width: 1200px) {
    .col-xl {
        -ms-flex-preferred-size: 0;
        flex-basis: 0;
        -ms-flex-positive: 1;
        flex-grow: 1;
        max-width: 100%;
    }
    .col-xl-auto {
        -ms-flex: 0 0 auto;
        flex: 0 0 auto;
        width: auto;
        max-width: 100%;
    }
    .col-xl-1 {
        -ms-flex: 0 0 8.333333%;
        flex: 0 0 8.333333%;
        max-width: 8.333333%;
    }
    .col-xl-2 {
        -ms-flex: 0 0 16.666667%;
        flex: 0 0 16.666667%;
        max-width: 16.666667%;
    }
    .col-xl-3 {
        -ms-flex: 0 0 25%;
        flex: 0 0 25%;
        max-width: 25%;
    }
    .col-xl-4 {
        -ms-flex: 0 0 33.333333%;
        flex: 0 0 33.333333%;
        max-width: 33.333333%;
    }
    .col-xl-5 {
        -ms-flex: 0 0 41.666667%;
        flex: 0 0 41.666667%;
        max-width: 41.666667%;
    }
    .col-xl-6 {
        -ms-flex: 0 0 50%;
        flex: 0 0 50%;
        max-width: 50%;
    }
    .col-xl-7 {
        -ms-flex: 0 0 58.333333%;
        flex: 0 0 58.333333%;
        max-width: 58.333333%;
    }
    .col-xl-8 {
        -ms-flex: 0 0 66.666667%;
        flex: 0 0 66.666667%;
        max-width: 66.666667%;
    }
    .col-xl-9 {
        -ms-flex: 0 0 75%;
        flex: 0 0 75%;
        max-width: 75%;
    }
    .col-xl-10 {
        -ms-flex: 0 0 83.333333%;
        flex: 0 0 83.333333%;
        max-width: 83.333333%;
    }
    .col-xl-11 {
        -ms-flex: 0 0 91.666667%;
        flex: 0 0 91.666667%;
        max-width: 91.666667%;
    }
    .col-xl-12 {
        -ms-flex: 0 0 100%;
        flex: 0 0 100%;
        max-width: 100%;
    }
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
}
.table {

/* ── Display, Flex, Spacing, Text Utilities ── */

.d-none {
    display: none !important;
}
.d-inline {
    display: inline !important;
}
.d-inline-block {
    display: inline-block !important;
}
.d-block {
    display: block !important;
}
.d-table {
    display: table !important;
}
.d-table-row {
    display: table-row !important;
}
.d-table-cell {
    display: table-cell !important;
}
.d-flex {
    display: -ms-flexbox !important;
    display: flex !important;
}
.d-inline-flex {
    display: -ms-inline-flexbox !important;
    display: inline-flex !important;
}
@media (min-width: 576px) {
    .d-sm-none {
        display: none !important;
    }
    .d-sm-inline {
        display: inline !important;
    }
    .d-sm-inline-block {
        display: inline-block !important;
    }
    .d-sm-block {
        display: block !important;
    }
    .d-sm-table {
        display: table !important;
    }
    .d-sm-table-row {
        display: table-row !important;
    }
    .d-sm-table-cell {
        display: table-cell !important;
    }
    .d-sm-flex {
        display: -ms-flexbox !important;
        display: flex !important;
    }
    .d-sm-inline-flex {
        display: -ms-inline-flexbox !important;
        display: inline-flex !important;
    }
}
@media (min-width: 768px) {
    .d-md-none {
        display: none !important;
    }
    .d-md-inline {
        display: inline !important;
    }
    .d-md-inline-block {
        display: inline-block !important;
    }
    .d-md-block {
        display: block !important;
    }
    .d-md-table {
        display: table !important;
    }
    .d-md-table-row {
        display: table-row !important;
    }
    .d-md-table-cell {
        display: table-cell !important;
    }
    .d-md-flex {
        display: -ms-flexbox !important;
        display: flex !important;
    }
    .d-md-inline-flex {
        display: -ms-inline-flexbox !important;
        display: inline-flex !important;
    }
}
@media (min-width: 992px) {
    .d-lg-none {
        display: none !important;
    }
    .d-lg-inline {
        display: inline !important;
    }
    .d-lg-inline-block {
        display: inline-block !important;
    }
    .d-lg-block {
        display: block !important;
    }
    .d-lg-table {
        display: table !important;
    }
    .d-lg-table-row {
        display: table-row !important;
    }
    .d-lg-table-cell {
        display: table-cell !important;
    }
    .d-lg-flex {
        display: -ms-flexbox !important;
        display: flex !important;
    }
    .d-lg-inline-flex {
        display: -ms-inline-flexbox !important;
        display: inline-flex !important;
    }
}
@media (min-width: 1200px) {
    .d-xl-none {
        display: none !important;
    }
    .d-xl-inline {
        display: inline !important;
    }
    .d-xl-inline-block {
        display: inline-block !important;
    }
    .d-xl-block {
        display: block !important;
    }
    .d-xl-table {
        display: table !important;
    }
    .d-xl-table-row {
        display: table-row !important;
    }
    .d-xl-table-cell {
        display: table-cell !important;
    }
    .d-xl-flex {
        display: -ms-flexbox !important;
        display: flex !important;
    }
    .d-xl-inline-flex {
        display: -ms-inline-flexbox !important;
        display: inline-flex !important;
    }
}
@media print {
    .d-print-none {
        display: none !important;
    }
    .d-print-inline {
        display: inline !important;
    }
    .d-print-inline-block {
        display: inline-block !important;
    }
    .d-print-block {
        display: block !important;
    }
    .d-print-table {
        display: table !important;
    }
    .d-print-table-row {
        display: table-row !important;
    }
    .d-print-table-cell {
        display: table-cell !important;
    }
    .d-print-flex {
        display: -ms-flexbox !important;
        display: flex !important;
    }
    .d-print-inline-flex {
        display: -ms-inline-flexbox !important;
        display: inline-flex !important;
    }
}
.embed-responsive {
    position: relative;
    display: block;
    width: 100%;
    padding: 0;
    overflow: hidden;
}
.embed-responsive::before {
    display: block;
    content: "";
}
.embed-responsive .embed-responsive-item,
.embed-responsive embed,
.embed-responsive iframe,
.embed-responsive object,
.embed-responsive video {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: 0;
}
.embed-responsive-21by9::before {
    padding-top: 42.857143%;
}
.embed-responsive-16by9::before {
    padding-top: 56.25%;
}
.embed-responsive-4by3::before {
    padding-top: 75%;
}
.embed-responsive-1by1::before {
    padding-top: 100%;
}
.flex-row {
    -ms-flex-direction: row !important;
    flex-direction: row !important;
}
.flex-column {
    -ms-flex-direction: column !important;
    flex-direction: column !important;
}
.flex-row-reverse {
    -ms-flex-direction: row-reverse !important;
    flex-direction: row-reverse !important;
}
.flex-column-reverse {
    -ms-flex-direction: column-reverse !important;
    flex-direction: column-reverse !important;
}
.flex-wrap {
    -ms-flex-wrap: wrap !important;
    flex-wrap: wrap !important;
}
.flex-nowrap {
    -ms-flex-wrap: nowrap !important;
    flex-wrap: nowrap !important;
}
.flex-wrap-reverse {
    -ms-flex-wrap: wrap-reverse !important;
    flex-wrap: wrap-reverse !important;
}
.flex-fill {
    -ms-flex: 1 1 auto !important;
    flex: 1 1 auto !important;
}
.flex-grow-0 {
    -ms-flex-positive: 0 !important;
    flex-grow: 0 !important;
}
.flex-grow-1 {
    -ms-flex-positive: 1 !important;
    flex-grow: 1 !important;
}
.flex-shrink-0 {
    -ms-flex-negative: 0 !important;
    flex-shrink: 0 !important;
}
.flex-shrink-1 {
    -ms-flex-negative: 1 !important;
    flex-shrink: 1 !important;
}
.justify-content-start {
    -ms-flex-pack: start !important;
    justify-content: flex-start !important;
}
.justify-content-end {
    -ms-flex-pack: end !important;
    justify-content: flex-end !important;
}
.justify-content-center {
    -ms-flex-pack: center !important;
    justify-content: center !important;
}
.justify-content-between {
    -ms-flex-pack: justify !important;
    justify-content: space-between !important;
}
.justify-content-around {
    -ms-flex-pack: distribute !important;
    justify-content: space-around !important;
}
.align-items-start {
    -ms-flex-align: start !important;
    align-items: flex-start !important;
}
.align-items-end {
    -ms-flex-align: end !important;
    align-items: flex-end !important;
}
.align-items-center {
    -ms-flex-align: center !important;
    align-items: center !important;
}
.align-items-baseline {
    -ms-flex-align: baseline !important;
    align-items: baseline !important;
}
.align-items-stretch {
    -ms-flex-align: stretch !important;
    align-items: stretch !important;
}
.align-content-start {
    -ms-flex-line-pack: start !important;
    align-content: flex-start !important;
}
.align-content-end {
    -ms-flex-line-pack: end !important;
    align-content: flex-end !important;
}
.align-content-center {
    -ms-flex-line-pack: center !important;
    align-content: center !important;
}
.align-content-between {
    -ms-flex-line-pack: justify !important;
    align-content: space-between !important;
}
.align-content-around {
    -ms-flex-line-pack: distribute !important;
    align-content: space-around !important;
}
.align-content-stretch {
    -ms-flex-line-pack: stretch !important;
    align-content: stretch !important;
}
.align-self-auto {
    -ms-flex-item-align: auto !important;
    align-self: auto !important;
}
.align-self-start {
    -ms-flex-item-align: start !important;
    align-self: flex-start !important;
}
.align-self-end {
    -ms-flex-item-align: end !important;
    align-self: flex-end !important;
}
.align-self-center {
    -ms-flex-item-align: center !important;
    align-self: center !important;
}
.align-self-baseline {
    -ms-flex-item-align: baseline !important;
    align-self: baseline !important;
}
.align-self-stretch {
    -ms-flex-item-align: stretch !important;
    align-self: stretch !important;
}
@media (min-width: 576px) {
    
    
    
    
    
    
    
    
    .flex-sm-grow-0 {
        -ms-flex-positive: 0 !important;
        flex-grow: 0 !important;
    }
    .flex-sm-grow-1 {
        -ms-flex-positive: 1 !important;
        flex-grow: 1 !important;
    }
    .flex-sm-shrink-0 {
        -ms-flex-negative: 0 !important;
        flex-shrink: 0 !important;
    }
    .flex-sm-shrink-1 {
        -ms-flex-negative: 1 !important;
        flex-shrink: 1 !important;
    }
    .justify-content-sm-start {
        -ms-flex-pack: start !important;
        justify-content: flex-start !important;
    }
    .justify-content-sm-end {
        -ms-flex-pack: end !important;
        justify-content: flex-end !important;
    }
    .justify-content-sm-center {
        -ms-flex-pack: center !important;
        justify-content: center !important;
    }
    .justify-content-sm-between {
        -ms-flex-pack: justify !important;
        justify-content: space-between !important;
    }
    .justify-content-sm-around {
        -ms-flex-pack: distribute !important;
        justify-content: space-around !important;
    }
    .align-items-sm-start {
        -ms-flex-align: start !important;
        align-items: flex-start !important;
    }
    .align-items-sm-end {
        -ms-flex-align: end !important;
        align-items: flex-end !important;
    }
    .align-items-sm-center {
        -ms-flex-align: center !important;
        align-items: center !important;
    }
    .align-items-sm-baseline {
        -ms-flex-align: baseline !important;
        align-items: baseline !important;
    }
    .align-items-sm-stretch {
        -ms-flex-align: stretch !important;
        align-items: stretch !important;
    }
    .align-content-sm-start {
        -ms-flex-line-pack: start !important;
        align-content: flex-start !important;
    }
    .align-content-sm-end {
        -ms-flex-line-pack: end !important;
        align-content: flex-end !important;
    }
    .align-content-sm-center {
        -ms-flex-line-pack: center !important;
        align-content: center !important;
    }
    .align-content-sm-between {
        -ms-flex-line-pack: justify !important;
        align-content: space-between !important;
    }
    .align-content-sm-around {
        -ms-flex-line-pack: distribute !important;
        align-content: space-around !important;
    }
    .align-content-sm-stretch {
        -ms-flex-line-pack: stretch !important;
        align-content: stretch !important;
    }
    .align-self-sm-auto {
        -ms-flex-item-align: auto !important;
        align-self: auto !important;
    }
    .align-self-sm-start {
        -ms-flex-item-align: start !important;
        align-self: flex-start !important;
    }
    .align-self-sm-end {
        -ms-flex-item-align: end !important;
        align-self: flex-end !important;
    }
    .align-self-sm-center {
        -ms-flex-item-align: center !important;
        align-self: center !important;
    }
    .align-self-sm-baseline {
        -ms-flex-item-align: baseline !important;
        align-self: baseline !important;
    }
    .align-self-sm-stretch {
        -ms-flex-item-align: stretch !important;
        align-self: stretch !important;
    }
}
@media (min-width: 768px) {
    
    
    
    
    
    
    
    
    .flex-md-grow-0 {
        -ms-flex-positive: 0 !important;
        flex-grow: 0 !important;
    }
    .flex-md-grow-1 {
        -ms-flex-positive: 1 !important;
        flex-grow: 1 !important;
    }
    .flex-md-shrink-0 {
        -ms-flex-negative: 0 !important;
        flex-shrink: 0 !important;
    }
    .flex-md-shrink-1 {
        -ms-flex-negative: 1 !important;
        flex-shrink: 1 !important;
    }
    .justify-content-md-start {
        -ms-flex-pack: start !important;
        justify-content: flex-start !important;
    }
    .justify-content-md-end {
        -ms-flex-pack: end !important;
        justify-content: flex-end !important;
    }
    .justify-content-md-center {
        -ms-flex-pack: center !important;
        justify-content: center !important;
    }
    .justify-content-md-between {
        -ms-flex-pack: justify !important;
        justify-content: space-between !important;
    }
    .justify-content-md-around {
        -ms-flex-pack: distribute !important;
        justify-content: space-around !important;
    }
    .align-items-md-start {
        -ms-flex-align: start !important;
        align-items: flex-start !important;
    }
    .align-items-md-end {
        -ms-flex-align: end !important;
        align-items: flex-end !important;
    }
    .align-items-md-center {
        -ms-flex-align: center !important;
        align-items: center !important;
    }
    .align-items-md-baseline {
        -ms-flex-align: baseline !important;
        align-items: baseline !important;
    }
    .align-items-md-stretch {
        -ms-flex-align: stretch !important;
        align-items: stretch !important;
    }
    .align-content-md-start {
        -ms-flex-line-pack: start !important;
        align-content: flex-start !important;
    }
    .align-content-md-end {
        -ms-flex-line-pack: end !important;
        align-content: flex-end !important;
    }
    .align-content-md-center {
        -ms-flex-line-pack: center !important;
        align-content: center !important;
    }
    .align-content-md-between {
        -ms-flex-line-pack: justify !important;
        align-content: space-between !important;
    }
    .align-content-md-around {
        -ms-flex-line-pack: distribute !important;
        align-content: space-around !important;
    }
    .align-content-md-stretch {
        -ms-flex-line-pack: stretch !important;
        align-content: stretch !important;
    }
    .align-self-md-auto {
        -ms-flex-item-align: auto !important;
        align-self: auto !important;
    }
    .align-self-md-start {
        -ms-flex-item-align: start !important;
        align-self: flex-start !important;
    }
    .align-self-md-end {
        -ms-flex-item-align: end !important;
        align-self: flex-end !important;
    }
    .align-self-md-center {
        -ms-flex-item-align: center !important;
        align-self: center !important;
    }
    .align-self-md-baseline {
        -ms-flex-item-align: baseline !important;
        align-self: baseline !important;
    }
    .align-self-md-stretch {
        -ms-flex-item-align: stretch !important;
        align-self: stretch !important;
    }
}
@media (min-width: 992px) {
    
    
    
    
    
    
    
    
    .flex-lg-grow-0 {
        -ms-flex-positive: 0 !important;
        flex-grow: 0 !important;
    }
    .flex-lg-grow-1 {
        -ms-flex-positive: 1 !important;
        flex-grow: 1 !important;
    }
    .flex-lg-shrink-0 {
        -ms-flex-negative: 0 !important;
        flex-shrink: 0 !important;
    }
    .flex-lg-shrink-1 {
        -ms-flex-negative: 1 !important;
        flex-shrink: 1 !important;
    }
    .justify-content-lg-start {
        -ms-flex-pack: start !important;
        justify-content: flex-start !important;
    }
    .justify-content-lg-end {
        -ms-flex-pack: end !important;
        justify-content: flex-end !important;
    }
    .justify-content-lg-center {
        -ms-flex-pack: center !important;
        justify-content: center !important;
    }
    .justify-content-lg-between {
        -ms-flex-pack: justify !important;
        justify-content: space-between !important;
    }
    .justify-content-lg-around {
        -ms-flex-pack: distribute !important;
        justify-content: space-around !important;
    }
    .align-items-lg-start {
        -ms-flex-align: start !important;
        align-items: flex-start !important;
    }
    .align-items-lg-end {
        -ms-flex-align: end !important;
        align-items: flex-end !important;
    }
    .align-items-lg-center {
        -ms-flex-align: center !important;
        align-items: center !important;
    }
    .align-items-lg-baseline {
        -ms-flex-align: baseline !important;
        align-items: baseline !important;
    }
    .align-items-lg-stretch {
        -ms-flex-align: stretch !important;
        align-items: stretch !important;
    }
    .align-content-lg-start {
        -ms-flex-line-pack: start !important;
        align-content: flex-start !important;
    }
    .align-content-lg-end {
        -ms-flex-line-pack: end !important;
        align-content: flex-end !important;
    }
    .align-content-lg-center {
        -ms-flex-line-pack: center !important;
        align-content: center !important;
    }
    .align-content-lg-between {
        -ms-flex-line-pack: justify !important;
        align-content: space-between !important;
    }
    .align-content-lg-around {
        -ms-flex-line-pack: distribute !important;
        align-content: space-around !important;
    }
    .align-content-lg-stretch {
        -ms-flex-line-pack: stretch !important;
        align-content: stretch !important;
    }
    .align-self-lg-auto {
        -ms-flex-item-align: auto !important;
        align-self: auto !important;
    }
    .align-self-lg-start {
        -ms-flex-item-align: start !important;
        align-self: flex-start !important;
    }
    .align-self-lg-end {
        -ms-flex-item-align: end !important;
        align-self: flex-end !important;
    }
    .align-self-lg-center {
        -ms-flex-item-align: center !important;
        align-self: center !important;
    }
    .align-self-lg-baseline {
        -ms-flex-item-align: baseline !important;
        align-self: baseline !important;
    }
    .align-self-lg-stretch {
        -ms-flex-item-align: stretch !important;
        align-self: stretch !important;
    }
}
@media (min-width: 1200px) {
    
    
    
    
    
    
    
    
    .flex-xl-grow-0 {
        -ms-flex-positive: 0 !important;
        flex-grow: 0 !important;
    }
    .flex-xl-grow-1 {
        -ms-flex-positive: 1 !important;
        flex-grow: 1 !important;
    }
    .flex-xl-shrink-0 {
        -ms-flex-negative: 0 !important;
        flex-shrink: 0 !important;
    }
    .flex-xl-shrink-1 {
        -ms-flex-negative: 1 !important;
        flex-shrink: 1 !important;
    }
    .justify-content-xl-start {
        -ms-flex-pack: start !important;
        justify-content: flex-start !important;
    }
    .justify-content-xl-end {
        -ms-flex-pack: end !important;
        justify-content: flex-end !important;
    }
    .justify-content-xl-center {
        -ms-flex-pack: center !important;
        justify-content: center !important;
    }
    .justify-content-xl-between {
        -ms-flex-pack: justify !important;
        justify-content: space-between !important;
    }
    .justify-content-xl-around {
        -ms-flex-pack: distribute !important;
        justify-content: space-around !important;
    }
    .align-items-xl-start {
        -ms-flex-align: start !important;
        align-items: flex-start !important;
    }
    .align-items-xl-end {
        -ms-flex-align: end !important;
        align-items: flex-end !important;
    }
    .align-items-xl-center {
        -ms-flex-align: center !important;
        align-items: center !important;
    }
    .align-items-xl-baseline {
        -ms-flex-align: baseline !important;
        align-items: baseline !important;
    }
    .align-items-xl-stretch {
        -ms-flex-align: stretch !important;
        align-items: stretch !important;
    }
    .align-content-xl-start {
        -ms-flex-line-pack: start !important;
        align-content: flex-start !important;
    }
    .align-content-xl-end {
        -ms-flex-line-pack: end !important;
        align-content: flex-end !important;
    }
    .align-content-xl-center {
        -ms-flex-line-pack: center !important;
        align-content: center !important;
    }
    .align-content-xl-between {
        -ms-flex-line-pack: justify !important;
        align-content: space-between !important;
    }
    .align-content-xl-around {
        -ms-flex-line-pack: distribute !important;
        align-content: space-around !important;
    }
    .align-content-xl-stretch {
        -ms-flex-line-pack: stretch !important;
        align-content: stretch !important;
    }
    .align-self-xl-auto {
        -ms-flex-item-align: auto !important;
        align-self: auto !important;
    }
    .align-self-xl-start {
        -ms-flex-item-align: start !important;
        align-self: flex-start !important;
    }
    .align-self-xl-end {
        -ms-flex-item-align: end !important;
        align-self: flex-end !important;
    }
    .align-self-xl-center {
        -ms-flex-item-align: center !important;
        align-self: center !important;
    }
    .align-self-xl-baseline {
        -ms-flex-item-align: baseline !important;
        align-self: baseline !important;
    }
    .align-self-xl-stretch {
        -ms-flex-item-align: stretch !important;
        align-self: stretch !important;
    }
}
.float-left {
    float: left !important;
}
.float-right {
    float: right !important;
}
.float-none {
    float: none !important;
}
@media (min-width: 576px) {
    .float-sm-left {
        float: left !important;
    }
    .float-sm-right {
        float: right !important;
    }
    .float-sm-none {
        float: none !important;
    }
}
@media (min-width: 768px) {
    .float-md-left {
        float: left !important;
    }
    .float-md-right {
        float: right !important;
    }
    .float-md-none {
        float: none !important;
    }
}
@media (min-width: 992px) {
    .float-lg-left {
        float: left !important;
    }
    .float-lg-right {
        float: right !important;
    }
    .float-lg-none {
        float: none !important;
    }
}
@media (min-width: 1200px) {
    .float-xl-left {
        float: left !important;
    }
    .float-xl-right {
        float: right !important;
    }
    .float-xl-none {
        float: none !important;
    }
}
.overflow-auto {
    overflow: auto !important;
}
.overflow-hidden {
    overflow: hidden !important;
}
.position-static {
    position: static !important;
}
.position-relative {
    position: relative !important;
}
.position-absolute {
    position: absolute !important;
}
.position-fixed {
    position: fixed !important;
}
.position-sticky {
    position: -webkit-sticky !important;
    position: sticky !important;
}
.fixed-top {
    position: fixed;
    top: 0;
    right: 0;
    left: 0;
    z-index: 1030;
}
.fixed-bottom {
    position: fixed;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 1030;
}
@supports ((position: -webkit-sticky) or (position: sticky)) {
    .sticky-top {
        position: -webkit-sticky;
        position: sticky;
        top: 0;
        z-index: 1020;
    }
}
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}
.sr-only-focusable:active,
.sr-only-focusable:focus {
    position: static;
    width: auto;
    height: auto;
    overflow: visible;
    clip: auto;
    white-space: normal;
}
.shadow-sm {
    box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important;
}

.shadow-lg {
    box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important;
}
.shadow-none {
    box-shadow: none !important;
}
.w-25 {
    width: 25% !important;
}
.w-50 {
    width: 50% !important;
}
.w-75 {
    width: 75% !important;
}
.w-100 {
    width: 100% !important;
}
.w-auto {
    width: auto !important;
}
.h-25 {
    height: 25% !important;
}
.h-50 {
    height: 50% !important;
}
.h-75 {
    height: 75% !important;
}
.h-100 {
    height: 100% !important;
}
.h-auto {
    height: auto !important;
}
.mw-100 {
    max-width: 100% !important;
}
.tl-mh-100 {
    max-height: 100% !important;
}
.min-vw-100 {
    min-width: 100vw !important;
}
.min-vh-100 {
    min-height: 100vh !important;
}
.vw-100 {
    width: 100vw !important;
}
.vh-100 {
    height: 100vh !important;
}
.stretched-link::after {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 1;
    pointer-events: auto;
    content: "";
    background-color: rgba(0, 0, 0, 0);
}
.m-0 {
    margin: 0 !important;
}
.mt-0,
.my-0 {
    margin-top: 0 !important;
}
.mr-0,
.mx-0 {
    margin-right: 0 !important;
}
.mb-0,
.my-0 {
    margin-bottom: 0 !important;
}
.ml-0,
.mx-0 {
    margin-left: 0 !important;
}
.m-1 {
    margin: 0.25rem !important;
}
.mt-1,
.my-1 {
    margin-top: 0.25rem !important;
}
.mr-1,
.mx-1 {
    margin-right: 0.25rem !important;
}
.mb-1,
.my-1 {
    margin-bottom: 0.25rem !important;
}
.ml-1,
.mx-1 {
    margin-left: 0.25rem !important;
}
.m-2 {
    margin: 0.5rem !important;
}
.mt-2,
.my-2 {
    margin-top: 0.5rem !important;
}
.mr-2,
.mx-2 {
    margin-right: 0.5rem !important;
}
.mb-2,
.my-2 {
    margin-bottom: 0.5rem !important;
}
.ml-2,
.mx-2 {
    margin-left: 0.5rem !important;
}
.m-3 {
    margin: 1rem !important;
}
.mt-3,
.my-3 {
    margin-top: 1rem !important;
}
.mr-3,
.mx-3 {
    margin-right: 1rem !important;
}
.mb-3,
.my-3 {
    margin-bottom: 1rem !important;
}
.ml-3,
.mx-3 {
    margin-left: 1rem !important;
}
.m-4 {
    margin: 1.5rem !important;
}
.mt-4,
.my-4 {
    margin-top: 1.5rem !important;
}
.mr-4,
.mx-4 {
    margin-right: 1.5rem !important;
}
.mb-4,
.my-4 {
    margin-bottom: 1.5rem !important;
}
.ml-4,
.mx-4 {
    margin-left: 1.5rem !important;
}
.m-5 {
    margin: 3rem !important;
}
.mt-5,
.my-5 {
    margin-top: 3rem !important;
}
.mr-5,
.mx-5 {
    margin-right: 3rem !important;
}
.mb-5,
.my-5 {
    margin-bottom: 3rem !important;
}
.ml-5,
.mx-5 {
    margin-left: 3rem !important;
}
.p-0 {
    padding: 0 !important;
}
.pt-0,
.py-0 {
    padding-top: 0 !important;
}
.pr-0,
.px-0 {
    padding-right: 0 !important;
}
.pb-0,
.py-0 {
    padding-bottom: 0 !important;
}
.pl-0,
.px-0 {
    padding-left: 0 !important;
}
.p-1 {
    padding: 0.25rem !important;
}
.pt-1,
.py-1 {
    padding-top: 0.25rem !important;
}
.pr-1,
.px-1 {
    padding-right: 0.25rem !important;
}
.pb-1,
.py-1 {
    padding-bottom: 0.25rem !important;
}
.pl-1,
.px-1 {
    padding-left: 0.25rem !important;
}
.p-2 {
    padding: 0.5rem !important;
}
.pt-2,
.py-2 {
    padding-top: 0.5rem !important;
}
.pr-2,
.px-2 {
    padding-right: 0.5rem !important;
}
.pb-2,
.py-2 {
    padding-bottom: 0.5rem !important;
}
.pl-2,
.px-2 {
    padding-left: 0.5rem !important;
}
.p-3 {
    padding: 1rem !important;
}
.pt-3,
.py-3 {
    padding-top: 1rem !important;
}
.pr-3,
.px-3 {
    padding-right: 1rem !important;
}
.pb-3,
.py-3 {
    padding-bottom: 1rem !important;
}
.pl-3,
.px-3 {
    padding-left: 1rem !important;
}
.p-4 {
    padding: 1.5rem !important;
}
.pt-4,
.py-4 {
    padding-top: 1.5rem !important;
}
.pr-4,
.px-4 {
    padding-right: 1.5rem !important;
}
.pb-4,
.py-4 {
    padding-bottom: 1.5rem !important;
}
.pl-4,
.px-4 {
    padding-left: 1.5rem !important;
}
.p-5 {
    padding: 3rem !important;
}
.pt-5,
.py-5 {
    padding-top: 3rem !important;
}
.pr-5,
.px-5 {
    padding-right: 3rem !important;
}
.pb-5,
.py-5 {
    padding-bottom: 3rem !important;
}
.pl-5,
.px-5 {
    padding-left: 3rem !important;
}

.mt-n1,

.mr-n1,

.mb-n1,

.ml-n1,


.mt-n2,

.mr-n2,

.mb-n2,

.ml-n2,


.mt-n3,

.mr-n3,

.mb-n3,

.ml-n3,


.mt-n4,

.mr-n4,

.mb-n4,

.ml-n4,


.mt-n5,

.mr-n5,

.mb-n5,

.ml-n5,

.m-auto {
    margin: auto !important;
}
.mt-auto,
.my-auto {
    margin-top: auto !important;
}
.mr-auto,
.mx-auto {
    margin-right: auto !important;
}
.mb-auto,
.my-auto {
    margin-bottom: auto !important;
}
.ml-auto,
.mx-auto {
    margin-left: auto !important;
}
@media (min-width: 576px) {
    
    .mt-sm-0,
    
    .mr-sm-0,
    
    .mb-sm-0,
    
    .ml-sm-0,
    
    
    .mt-sm-1,
    
    .mr-sm-1,
    
    .mb-sm-1,
    
    .ml-sm-1,
    
    
    .mt-sm-2,
    
    .mr-sm-2,
    
    .mb-sm-2,
    
    .ml-sm-2,
    
    
    .mt-sm-3,
    
    .mr-sm-3,
    
    .mb-sm-3,
    
    .ml-sm-3,
    
    
    .mt-sm-4,
    
    .mr-sm-4,
    
    .mb-sm-4,
    
    .ml-sm-4,
    
    
    .mt-sm-5,
    
    .mr-sm-5,
    
    .mb-sm-5,
    
    .ml-sm-5,
    
    
    .pt-sm-0,
    
    .pr-sm-0,
    
    .pb-sm-0,
    
    .pl-sm-0,
    
    
    .pt-sm-1,
    
    .pr-sm-1,
    
    .pb-sm-1,
    
    .pl-sm-1,
    
    
    .pt-sm-2,
    
    .pr-sm-2,
    
    .pb-sm-2,
    
    .pl-sm-2,
    
    
    .pt-sm-3,
    
    .pr-sm-3,
    
    .pb-sm-3,
    
    .pl-sm-3,
    
    
    .pt-sm-4,
    
    .pr-sm-4,
    
    .pb-sm-4,
    
    .pl-sm-4,
    
    
    .pt-sm-5,
    
    .pr-sm-5,
    
    .pb-sm-5,
    
    .pl-sm-5,
    
    
    .mt-sm-n1,
    
    .mr-sm-n1,
    
    .mb-sm-n1,
    
    .ml-sm-n1,
    
    
    .mt-sm-n2,
    
    .mr-sm-n2,
    
    .mb-sm-n2,
    
    .ml-sm-n2,
    
    
    .mt-sm-n3,
    
    .mr-sm-n3,
    
    .mb-sm-n3,
    
    .ml-sm-n3,
    
    
    .mt-sm-n4,
    
    .mr-sm-n4,
    
    .mb-sm-n4,
    
    .ml-sm-n4,
    
    
    .mt-sm-n5,
    
    .mr-sm-n5,
    
    .mb-sm-n5,
    
    .ml-sm-n5,
    
    
    .mt-sm-auto,
    
    .mr-sm-auto,
    
    .mb-sm-auto,
    
    .ml-sm-auto,
    
}
@media (min-width: 768px) {
    
    .mt-md-0,
    
    .mr-md-0,
    
    .mb-md-0,
    
    .ml-md-0,
    
    
    .mt-md-1,
    
    .mr-md-1,
    
    .mb-md-1,
    
    .ml-md-1,
    
    
    .mt-md-2,
    
    .mr-md-2,
    
    .mb-md-2,
    
    .ml-md-2,
    
    
    .mt-md-3,
    
    .mr-md-3,
    
    .mb-md-3,
    
    .ml-md-3,
    
    
    .mt-md-4,
    
    .mr-md-4,
    
    .mb-md-4,
    
    .ml-md-4,
    
    
    .mt-md-5,
    
    .mr-md-5,
    
    .mb-md-5,
    
    .ml-md-5,
    
    
    .pt-md-0,
    
    .pr-md-0,
    
    .pb-md-0,
    
    .pl-md-0,
    
    
    .pt-md-1,
    
    .pr-md-1,
    
    .pb-md-1,
    
    .pl-md-1,
    
    
    .pt-md-2,
    
    .pr-md-2,
    
    .pb-md-2,
    
    .pl-md-2,
    
    
    .pt-md-3,
    
    .pr-md-3,
    
    .pb-md-3,
    
    .pl-md-3,
    
    
    .pt-md-4,
    
    .pr-md-4,
    
    .pb-md-4,
    
    .pl-md-4,
    
    
    .pt-md-5,
    
    .pr-md-5,
    
    .pb-md-5,
    
    .pl-md-5,
    
    
    .mt-md-n1,
    
    .mr-md-n1,
    
    .mb-md-n1,
    
    .ml-md-n1,
    
    
    .mt-md-n2,
    
    .mr-md-n2,
    
    .mb-md-n2,
    
    .ml-md-n2,
    
    
    .mt-md-n3,
    
    .mr-md-n3,
    
    .mb-md-n3,
    
    .ml-md-n3,
    
    
    .mt-md-n4,
    
    .mr-md-n4,
    
    .mb-md-n4,
    
    .ml-md-n4,
    
    
    .mt-md-n5,
    
    .mr-md-n5,
    
    .mb-md-n5,
    
    .ml-md-n5,
    
    
    .mt-md-auto,
    
    .mr-md-auto,
    
    .mb-md-auto,
    
    .ml-md-auto,
    
}
@media (min-width: 992px) {
    
    .mt-lg-0,
    
    .mr-lg-0,
    
    .mb-lg-0,
    
    .ml-lg-0,
    
    
    .mt-lg-1,
    
    .mr-lg-1,
    
    .mb-lg-1,
    
    .ml-lg-1,
    
    
    .mt-lg-2,
    
    .mr-lg-2,
    
    .mb-lg-2,
    
    .ml-lg-2,
    
    
    .mt-lg-3,
    
    .mr-lg-3,
    
    .mb-lg-3,
    
    .ml-lg-3,
    
    
    .mt-lg-4,
    
    .mr-lg-4,
    
    .mb-lg-4,
    
    .ml-lg-4,
    
    
    .mt-lg-5,
    
    .mr-lg-5,
    
    .mb-lg-5,
    
    .ml-lg-5,
    
    
    .pt-lg-0,
    
    .pr-lg-0,
    
    .pb-lg-0,
    
    .pl-lg-0,
    
    
    .pt-lg-1,
    
    .pr-lg-1,
    
    .pb-lg-1,
    
    .pl-lg-1,
    
    
    .pt-lg-2,
    
    .pr-lg-2,
    
    .pb-lg-2,
    
    .pl-lg-2,
    
    
    .pt-lg-3,
    
    .pr-lg-3,
    
    .pb-lg-3,
    
    .pl-lg-3,
    
    
    .pt-lg-4,
    
    .pr-lg-4,
    
    .pb-lg-4,
    
    .pl-lg-4,
    
    
    .pt-lg-5,
    
    .pr-lg-5,
    
    .pb-lg-5,
    
    .pl-lg-5,
    
    
    .mt-lg-n1,
    
    .mr-lg-n1,
    
    .mb-lg-n1,
    
    .ml-lg-n1,
    
    
    .mt-lg-n2,
    
    .mr-lg-n2,
    
    .mb-lg-n2,
    
    .ml-lg-n2,
    
    
    .mt-lg-n3,
    
    .mr-lg-n3,
    
    .mb-lg-n3,
    
    .ml-lg-n3,
    
    
    .mt-lg-n4,
    
    .mr-lg-n4,
    
    .mb-lg-n4,
    
    .ml-lg-n4,
    
    
    .mt-lg-n5,
    
    .mr-lg-n5,
    
    .mb-lg-n5,
    
    .ml-lg-n5,
    
    
    .mt-lg-auto,
    
    .mr-lg-auto,
    
    .mb-lg-auto,
    
    .ml-lg-auto,
    
}
@media (min-width: 1200px) {
    
    .mt-xl-0,
    
    .mr-xl-0,
    
    .mb-xl-0,
    
    .ml-xl-0,
    
    
    .mt-xl-1,
    
    .mr-xl-1,
    
    .mb-xl-1,
    
    .ml-xl-1,
    
    
    .mt-xl-2,
    
    .mr-xl-2,
    
    .mb-xl-2,
    
    .ml-xl-2,
    
    
    .mt-xl-3,
    
    .mr-xl-3,
    
    .mb-xl-3,
    
    .ml-xl-3,
    
    
    .mt-xl-4,
    
    .mr-xl-4,
    
    .mb-xl-4,
    
    .ml-xl-4,
    
    
    .mt-xl-5,
    
    .mr-xl-5,
    
    .mb-xl-5,
    
    .ml-xl-5,
    
    
    .pt-xl-0,
    
    .pr-xl-0,
    
    .pb-xl-0,
    
    .pl-xl-0,
    
    
    .pt-xl-1,
    
    .pr-xl-1,
    
    .pb-xl-1,
    
    .pl-xl-1,
    
    
    .pt-xl-2,
    
    .pr-xl-2,
    
    .pb-xl-2,
    
    .pl-xl-2,
    
    
    .pt-xl-3,
    
    .pr-xl-3,
    
    .pb-xl-3,
    
    .pl-xl-3,
    
    
    .pt-xl-4,
    
    .pr-xl-4,
    
    .pb-xl-4,
    
    .pl-xl-4,
    
    
    .pt-xl-5,
    
    .pr-xl-5,
    
    .pb-xl-5,
    
    .pl-xl-5,
    
    
    .mt-xl-n1,
    
    .mr-xl-n1,
    
    .mb-xl-n1,
    
    .ml-xl-n1,
    
    
    .mt-xl-n2,
    
    .mr-xl-n2,
    
    .mb-xl-n2,
    
    .ml-xl-n2,
    
    
    .mt-xl-n3,
    
    .mr-xl-n3,
    
    .mb-xl-n3,
    
    .ml-xl-n3,
    
    
    .mt-xl-n4,
    
    .mr-xl-n4,
    
    .mb-xl-n4,
    
    .ml-xl-n4,
    
    
    .mt-xl-n5,
    
    .mr-xl-n5,
    
    .mb-xl-n5,
    
    .ml-xl-n5,
    
    
    .mt-xl-auto,
    
    .mr-xl-auto,
    
    .mb-xl-auto,
    
    .ml-xl-auto,
    
}
.text-monospace {
    font-family:
        SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace !important;
}
.text-justify {
    text-align: justify !important;
}
.text-wrap {
    white-space: normal !important;
}
.text-nowrap {
    white-space: nowrap !important;
}
.text-truncate {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.text-left {
    text-align: left !important;
}
.text-right {
    text-align: right !important;
}
.text-center {
    text-align: center !important;
}
@media (min-width: 576px) {
    .text-sm-left {
        text-align: left !important;
    }
    .text-sm-right {
        text-align: right !important;
    }
    .text-sm-center {
        text-align: center !important;
    }
}
@media (min-width: 768px) {
    .text-md-left {
        text-align: left !important;
    }
    .text-md-right {
        text-align: right !important;
    }
    .text-md-center {
        text-align: center !important;
    }
}
@media (min-width: 992px) {
    .text-lg-left {
        text-align: left !important;
    }
    .text-lg-right {
        text-align: right !important;
    }
    .text-lg-center {
        text-align: center !important;
    }
}
@media (min-width: 1200px) {
    .text-xl-left {
        text-align: left !important;
    }
    .text-xl-right {
        text-align: right !important;
    }
    .text-xl-center {
        text-align: center !important;
    }
}
.text-lowercase {
    text-transform: lowercase !important;
}
.text-uppercase {
    text-transform: uppercase !important;
}
.text-capitalize {
    text-transform: capitalize !important;
}
.font-weight-light {
    font-weight: 300 !important;
}
.font-weight-lighter {
    font-weight: lighter !important;
}
.font-weight-normal {
    font-weight: 400 !important;
}
.font-weight-bold {
    font-weight: 700 !important;
}
.font-weight-bolder {
    font-weight: bolder !important;
}
.font-italic {
    font-style: italic !important;
}
.text-white {
    color: #fff !important;
}
.text-primary {
    color: #007bff !important;
}
a.text-primary:focus,
a.text-primary:hover {
    color: #0056b3 !important;
}
.text-secondary {
    color: #6c757d !important;
}
a.text-secondary:focus,
a.text-secondary:hover {
    color: #494f54 !important;
}
.text-success {
    color: #28a745 !important;
}
a.text-success:focus,
a.text-success:hover {
    color: #19692c !important;
}
.text-info {
    color: #17a2b8 !important;
}
a.text-info:focus,
a.text-info:hover {
    color: #0f6674 !important;
}
.text-warning {
    color: #ffc107 !important;
}
a.text-warning:focus,
a.text-warning:hover {
    color: #ba8b00 !important;
}
.text-danger {
    color: #dc3545 !important;
}
a.text-danger:focus,
a.text-danger:hover {
    color: #a71d2a !important;
}
.text-light {
    color: #f8f9fa !important;
}
a.text-light:focus,
a.text-light:hover {
    color: #cbd3da !important;
}
.text-dark {
    color: #343a40 !important;
}
a.text-dark:focus,
a.text-dark:hover {
    color: #121416 !important;
}
.text-body {
    color: #212529 !important;
}
.text-muted {
    color: #6c757d !important;
}
.text-black-50 {
    color: rgba(0, 0, 0, 0.5) !important;
}
.text-white-50 {
    color: rgba(255, 255, 255, 0.5) !important;
}
.text-hide {
    font: 0/0 a;
    color: transparent;
    text-shadow: none;
    background-color: transparent;
    border: 0;
}
.text-decoration-none {
    text-decoration: none !important;
}
.text-break {
    word-break: break-word !important;
    overflow-wrap: break-word !important;
}
.text-reset {
    color: inherit !important;
}
.visible {
    visibility: visible !important;
}

@media print {
    *,
    ::after,
    ::before {
        text-shadow: none !important;
        box-shadow: none !important;
    }
    a:not(.btn) {
        text-decoration: underline;
    }
    abbr[title]::after {
        content: " (" attr(title) ")";
    }
    pre {
        white-space: pre-wrap !important;
    }
    blockquote,
    pre {
        border: 1px solid #adb5bd;
        page-break-inside: avoid;
    }
    thead {
        display: table-header-group;
    }
    img,
    tr {
        page-break-inside: avoid;
    }
    h2,
    h3,
    p {
        orphans: 3;
        widows: 3;
    }
    h2,
    h3 {
        page-break-after: avoid;
    }
    @page {
        size: a3;
    }
    body {
        min-width: 992px !important;
    }
    .container {
        min-width: 992px !important;
    }
    .navbar {
        display: none;
    }
    .badge {
        border: 1px solid #000;
    }
    .table {
        border-collapse: collapse !important;
    }
    .table td,
    .table th {
        background-color: #fff !important;
    }
    .table-bordered td,
    .table-bordered th {
        border: 1px solid #dee2e6 !important;
    }
    .table-dark {
        color: inherit;
    }
    .table-dark tbody + tbody,
    .table-dark td,
    .table-dark th,
    .table-dark thead th {
        border-color: #dee2e6;
    }
    .table .thead-dark th {
        color: inherit;
        border-color: #dee2e6;
    }
}


/* ===============================================================================
   PHASE 5: GENERIC UTILITY WRAPPERS (Layout-specific)
   ===============================================================================
   
   This section provides tl-* prefixed wrapper classes for generic utilities
   that are primarily layout-related. These complement the component wrappers
   in tl-components.css.
   
   ─────────────────────────────────────────────────────────────────────────── */

/* ─────────────────────────────────────────────────────────────────────────────
   BACKGROUND & VISIBILITY UTILITIES
   ───────────────────────────────────────────────────────────────────────────── */

/* Background Color Utilities */
.tl-bg-light {
  background-color: #f8f9fa;
}

.tl-bg-lighter {
  background-color: #f5f5f5;
}

.tl-bg-transparent {
  background-color: transparent;
}

/* Text Color Utilities */
.tl-text-dark {
  color: #212529;
}

.tl-text-light {
  color: #f8f9fa;
}

.tl-text-muted {
  color: #6c757d;
}

/* Visibility Utilities */
.tl-show {
  display: block !important;
}

.tl-hide {
  display: none !important;
}

.tl-visible {
  visibility: visible;
}

.tl-invisible {
  visibility: hidden;
}

/* ─────────────────────────────────────────────────────────────────────────────
   SPACING UTILITIES
   ───────────────────────────────────────────────────────────────────────────── */

/* Margin Utilities */
.tl-m-0 { margin: 0; }
.tl-m-1 { margin: 0.25rem; }
.tl-m-2 { margin: 0.5rem; }
.tl-m-3 { margin: 1rem; }
.tl-m-4 { margin: 1.5rem; }
.tl-m-5 { margin: 3rem; }

.tl-mt-0 { margin-top: 0; }
.tl-mt-1 { margin-top: 0.25rem; }
.tl-mt-2 { margin-top: 0.5rem; }
.tl-mt-3 { margin-top: 1rem; }
.tl-mt-4 { margin-top: 1.5rem; }
.tl-mt-5 { margin-top: 3rem; }

.tl-mb-0 { margin-bottom: 0; }
.tl-mb-1 { margin-bottom: 0.25rem; }
.tl-mb-2 { margin-bottom: 0.5rem; }
.tl-mb-3 { margin-bottom: 1rem; }
.tl-mb-4 { margin-bottom: 1.5rem; }
.tl-mb-5 { margin-bottom: 3rem; }

.tl-ml-0 { margin-left: 0; }
.tl-ml-1 { margin-left: 0.25rem; }
.tl-ml-2 { margin-left: 0.5rem; }
.tl-ml-3 { margin-left: 1rem; }
.tl-ml-4 { margin-left: 1.5rem; }
.tl-ml-5 { margin-left: 3rem; }

.tl-mr-0 { margin-right: 0; }
.tl-mr-1 { margin-right: 0.25rem; }
.tl-mr-2 { margin-right: 0.5rem; }
.tl-mr-3 { margin-right: 1rem; }
.tl-mr-4 { margin-right: 1.5rem; }
.tl-mr-5 { margin-right: 3rem; }

/* Padding Utilities */
.tl-p-0 { padding: 0; }
.tl-p-1 { padding: 0.25rem; }
.tl-p-2 { padding: 0.5rem; }
.tl-p-3 { padding: 1rem; }
.tl-p-4 { padding: 1.5rem; }
.tl-p-5 { padding: 3rem; }

.tl-pt-0 { padding-top: 0; }
.tl-pt-1 { padding-top: 0.25rem; }
.tl-pt-2 { padding-top: 0.5rem; }
.tl-pt-3 { padding-top: 1rem; }
.tl-pt-4 { padding-top: 1.5rem; }
.tl-pt-5 { padding-top: 3rem; }

.tl-pb-0 { padding-bottom: 0; }
.tl-pb-1 { padding-bottom: 0.25rem; }
.tl-pb-2 { padding-bottom: 0.5rem; }
.tl-pb-3 { padding-bottom: 1rem; }
.tl-pb-4 { padding-bottom: 1.5rem; }
.tl-pb-5 { padding-bottom: 3rem; }

.tl-pl-0 { padding-left: 0; }
.tl-pl-1 { padding-left: 0.25rem; }
.tl-pl-2 { padding-left: 0.5rem; }
.tl-pl-3 { padding-left: 1rem; }
.tl-pl-4 { padding-left: 1.5rem; }
.tl-pl-5 { padding-left: 3rem; }

.tl-pr-0 { padding-right: 0; }
.tl-pr-1 { padding-right: 0.25rem; }
.tl-pr-2 { padding-right: 0.5rem; }
.tl-pr-3 { padding-right: 1rem; }
.tl-pr-4 { padding-right: 1.5rem; }
.tl-pr-5 { padding-right: 3rem; }

/* ─────────────────────────────────────────────────────────────────────────────
   DISPLAY & POSITIONING UTILITIES
   ───────────────────────────────────────────────────────────────────────────── */

.tl-d-block { display: block; }
.tl-d-inline { display: inline; }
.tl-d-inline-block { display: inline-block; }
.tl-d-flex { display: flex; }
.tl-d-grid { display: grid; }
.tl-d-none { display: none; }

.tl-position-static { position: static; }
.tl-position-relative { position: relative; }
.tl-position-absolute { position: absolute; }
.tl-position-fixed { position: fixed; }
.tl-position-sticky { position: sticky; }

/* ─────────────────────────────────────────────────────────────────────────────
   FLEX UTILITIES
   ───────────────────────────────────────────────────────────────────────────── */

.tl-flex-row { flex-direction: row; }
.tl-flex-column { flex-direction: column; }
.tl-flex-wrap { flex-wrap: wrap; }
.tl-flex-nowrap { flex-wrap: nowrap; }

.tl-justify-start { justify-content: flex-start; }
.tl-justify-center { justify-content: center; }
.tl-justify-end { justify-content: flex-end; }
.tl-justify-between { justify-content: space-between; }
.tl-justify-around { justify-content: space-around; }

.tl-items-start { align-items: flex-start; }
.tl-items-center { align-items: center; }
.tl-items-end { align-items: flex-end; }
.tl-items-stretch { align-items: stretch; }

.tl-gap-1 { gap: 0.25rem; }
.tl-gap-2 { gap: 0.5rem; }
.tl-gap-3 { gap: 1rem; }
.tl-gap-4 { gap: 1.5rem; }
.tl-gap-5 { gap: 3rem; }

/* ─────────────────────────────────────────────────────────────────────────────
   SIZING UTILITIES
   ───────────────────────────────────────────────────────────────────────────── */

.tl-w-100 { width: 100%; }
.tl-w-auto { width: auto; }
.tl-h-100 { height: 100%; }
.tl-h-auto { height: auto; }

.tl-max-w-100 { max-width: 100%; }
.tl-max-h-100 { max-height: 100%; }

/* ─────────────────────────────────────────────────────────────────────────────
   BORDER & SHADOW UTILITIES
   ───────────────────────────────────────────────────────────────────────────── */

.tl-border { border: 1px solid #dee2e6; }
.tl-border-0 { border: 0; }
.tl-border-top { border-top: 1px solid #dee2e6; }
.tl-border-bottom { border-bottom: 1px solid #dee2e6; }
.tl-border-left { border-left: 1px solid #dee2e6; }
.tl-border-right { border-right: 1px solid #dee2e6; }

.tl-rounded { border-radius: 0.25rem; }
.tl-rounded-lg { border-radius: 0.5rem; }
.tl-rounded-full { border-radius: 9999px; }

.tl-shadow { box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075); }
.tl-shadow-lg { box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175); }
.tl-shadow-none { box-shadow: none; }

/* ─────────────────────────────────────────────────────────────────────────────
   RESPONSIVE UTILITIES
   ───────────────────────────────────────────────────────────────────────────── */

@media (max-width: 576px) {
  .tl-d-sm-none { display: none; }
  .tl-d-sm-block { display: block; }
  .tl-d-sm-flex { display: flex; }
}

@media (min-width: 576px) and (max-width: 768px) {
  .tl-d-md-none { display: none; }
  .tl-d-md-block { display: block; }
  .tl-d-md-flex { display: flex; }
}

@media (min-width: 768px) and (max-width: 992px) {
  .tl-d-lg-none { display: none; }
  .tl-d-lg-block { display: block; }
  .tl-d-lg-flex { display: flex; }
}

@media (min-width: 992px) {
  .tl-d-xl-none { display: none; }
  .tl-d-xl-block { display: block; }
  .tl-d-xl-flex { display: flex; }
}

/* ─────────────────────────────────────────────────────────────────────────────
   OVERFLOW & TEXT UTILITIES
   ───────────────────────────────────────────────────────────────────────────── */

.tl-overflow-hidden { overflow: hidden; }
.tl-overflow-auto { overflow: auto; }
.tl-overflow-visible { overflow: visible; }

.tl-text-center { text-align: center; }
.tl-text-left { text-align: left; }
.tl-text-right { text-align: right; }

.tl-text-truncate {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.tl-text-wrap { white-space: normal; }
.tl-text-nowrap { white-space: nowrap; }

/* ─────────────────────────────────────────────────────────────────────────────
   OPACITY & CURSOR UTILITIES
   ───────────────────────────────────────────────────────────────────────────── */

.tl-opacity-0 { opacity: 0; }
.tl-opacity-50 { opacity: 0.5; }
.tl-opacity-100 { opacity: 1; }

.tl-cursor-pointer { cursor: pointer; }
.tl-cursor-default { cursor: default; }
.tl-cursor-not-allowed { cursor: not-allowed; }

/* ─────────────────────────────────────────────────────────────────────────────
   DARK MODE SUPPORT FOR UTILITIES
   ───────────────────────────────────────────────────────────────────────────── */

.dark .tl-bg-light {
  background-color: #2a2a2a;
}

.dark .tl-text-dark {
  color: #cdcdcd;
}

.dark .tl-border {
  border-color: #444;
}

.dark .tl-shadow {
  box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.3);
}
