/* ==== TEXT & LAYOUT UTILITIES ==== */
:root {
    --font-weight-400: 400;
    --font-weight-600: 600;
    --font-weight-700: 700;
    --font-weight-900: 900;

    --font-size-9: 0.9rem;
    --font-size-10: 1rem;
    --font-size-11: 1.1rem;
    --font-size-12: 1.2rem;
    --font-size-14: 1.4rem;
    --font-size-15: 1.5rem;
    --font-size-16: 1.6rem;
    --font-size-18: 1.8rem;
    --font-size-20: 2rem;
    --font-size-22: 2.2rem;
    --font-size-24: 2.4rem;
    --font-size-26: 2.6rem;
    --font-size-28: 2.8rem;
    --font-size-30: 3rem;
    --font-size-32: 3.2rem;
    --font-size-34: 3.4rem;
    --font-size-36: 3.6rem;
    --font-size-38: 3.8rem;
    --font-size-40: 4rem;
    --font-size-48: 4.8rem;

    --line-height-100: 1;
    --line-height-110: 1.1;
    --line-height-120: 1.2;
    --line-height-140: 1.4;
    --line-height-150: 1.5;

    --spacing-4: 0.4rem;
    --spacing-8: 0.8rem;
    --spacing-9: 0.9rem;
    --spacing-10: 1rem;
    --spacing-12: 1.2rem;
    --spacing-14: 1.4rem;
    --spacing-16: 1.6rem;
    --spacing-17: 1.7rem;
    --spacing-20: 2rem;
    --spacing-24: 2.4rem;
    --spacing-26: 2.6rem;
    --spacing-28: 2.8rem;
    --spacing-30: 3rem;
    --spacing-32: 3.2rem;
    --spacing-36: 3.6rem;
    --spacing-40: 4rem;
    --spacing-46: 4.6rem;
    --spacing-48: 4.8rem;
    --spacing-50: 5rem;
    --spacing-52: 5.2rem;
    --spacing-56: 5.6rem;
    --spacing-64: 6.4rem;
    --spacing-60: 6rem;
    --spacing-72: 7.2rem;
    --spacing-80: 8rem;

    --letter-spacing-14: 1.4px;

    --row-cols-narrow-col-count: 1;
    --row-cols-narrow-col-x-spacing: 0rem;
}
.py-0\.5x {
    padding: var(--spacing-8) 0;
}
.pt-0\.5x {
    padding-top: var(--spacing-8);
}
.pb-0\.5x {
    padding-bottom: var(--spacing-8);
}
.py-1x {
    padding: var(--spacing-16) 0;
}
.pt-1x {
    padding-top: var(--spacing-16);
}
.pb-1x {
    padding-bottom: var(--spacing-16);
}
.py-1\.5x {
    padding-top: var(--spacing-24);
    padding-bottom: var(--spacing-24);
}
.pt-1\.5x {
    padding-top: var(--spacing-24);
}
.pb-1\.5x {
    padding-bottom: var(--spacing-24);
}
.py-2x {
    padding-top: var(--spacing-32);
    padding-bottom: var(--spacing-32);
}
.pt-2x {
    padding-top: var(--spacing-32);
}
.pb-2x {
    padding-bottom: var(--spacing-32);
}
.py-2\.25x {
    padding-top: var(--spacing-36);
    padding-bottom: var(--spacing-36);
}
.pt-2\.25x {
    padding-top: var(--spacing-36);
}
.pb-2\.25x {
    padding-bottom: var(--spacing-36);
}
.py-2\.5x {
    padding-top: var(--spacing-40);
    padding-bottom: var(--spacing-40);
}
.pt-2\.5x {
    padding-top: var(--spacing-40);
}
.pb-2\.5x {
    padding-bottom: var(--spacing-40);
}
.py-3x {
    padding-top: var(--spacing-48);
    padding-bottom: var(--spacing-48);
}
.pt-3x {
    padding-top: var(--spacing-48);
}
.pb-3x {
    padding-bottom: var(--spacing-48);
}
.py-3\.5x {
    padding-top: var(--spacing-56);
    padding-bottom: var(--spacing-56);
}
.pt-3\.5x {
    padding-top: var(--spacing-56);
}
.pb-3\.5x {
    padding-bottom: var(--spacing-56);
}
.py-4x {
    padding-top: var(--spacing-64);
    padding-bottom: var(--spacing-64);
}
.pt-4x {
    padding-top: var(--spacing-64);
}
.pb-4x {
    padding-bottom: var(--spacing-64);
}
.py-4\.5x {
    padding-top: var(--spacing-72);
    padding-bottom: var(--spacing-72);
}
.pt-4\.5x {
    padding-top: var(--spacing-72);
}
.pb-4\.5x {
    padding-bottom: var(--spacing-72);
}
.row.row-cols-narrow {
    --padding-val: calc(var(--col-x-padding) - calc(var(--row-cols-narrow-col-x-spacing)/ 2 * var(--row-cols-narrow-col-count)));
    padding-left: var(--padding-val);
    padding-right: var(--padding-val);
}
.row.row-cols-narrow [class^="col"] {
    padding: 0 var(--row-cols-narrow-col-x-spacing);
}
.gap-8 {
    gap: var(--spacing-8);
}
.gap-12 {
    gap: var(--spacing-12);
}
.gap-16 {
    gap: var(--spacing-16);
}
.gap-20 {
    gap: var(--spacing-20);
}
.row-gap-16 {
    row-gap: var(--spacing-16);
}
.gy-1x {
    --bs-gutter-y: var(--spacing-16);
}
@media screen and (max-width: 767px) {
    .row [class^="col"].ps-flush-to-sm {
        padding-left: 0;
    }
    .row [class^="col"].pe-flush-to-sm {
        padding-right: 0;
    }
    .row [class^="col"].px-flush-to-sm {
        padding: 0;
    }
}
@media screen and (min-width: 768px) {
    .py-md-0\.5x {
        padding: var(--spacing-8) 0;
    }
    .pt-md-0\.5x {
        padding-top: var(--spacing-8);
    }
    .pb-md-0\.5x {
        padding-bottom: var(--spacing-8);
    }
    .py-md-1x {
        padding: var(--spacing-16) 0;
    }
    .pt-md-1x {
        padding-top: var(--spacing-16);
    }
    .pb-md-1x {
        padding-bottom: var(--spacing-16);
    }
    .py-md-1\.5x {
        padding-top: var(--spacing-24);
        padding-bottom: var(--spacing-24);
    }
    .pt-md-1\.5x {
        padding-top: var(--spacing-24);
    }
    .pb-md-1\.5x {
        padding-bottom: var(--spacing-24);
    }
    .py-md-2x {
        padding-top: var(--spacing-32);
        padding-bottom: var(--spacing-32);
    }
    .pt-md-2x {
        padding-top: var(--spacing-32);
    }
    .pb-md-2x {
        padding-bottom: var(--spacing-32);
    }
    .py-md-2\.25x {
        padding-top: var(--spacing-36);
        padding-bottom: var(--spacing-36);
    }
    .pt-md-2\.25x {
        padding-top: var(--spacing-36);
    }
    .pb-md-2\.25x {
        padding-bottom: var(--spacing-36);
    }
    .py-md-2\.5x {
        padding-top: var(--spacing-40);
        padding-bottom: var(--spacing-40);
    }
    .pt-md-2\.5x {
        padding-top: var(--spacing-40);
    }
    .pb-md-2\.5x {
        padding-bottom: var(--spacing-40);
    }
    .py-md-3x {
        padding-top: var(--spacing-48);
        padding-bottom: var(--spacing-48);
    }
    .pt-md-3x {
        padding-top: var(--spacing-48);
    }
    .pb-md-3x {
        padding-bottom: var(--spacing-48);
    }
    .py-md-3\.5x {
        padding-top: var(--spacing-56);
        padding-bottom: var(--spacing-56);
    }
    .pt-md-3\.5x {
        padding-top: var(--spacing-56);
    }
    .pb-md-3\.5x {
        padding-bottom: var(--spacing-56);
    }
    .py-md-4x {
        padding-top: var(--spacing-64);
        padding-bottom: var(--spacing-64);
    }
    .pt-md-4x {
        padding-top: var(--spacing-64);
    }
    .pb-md-4x {
        padding-bottom: var(--spacing-64);
    }
    .py-md-4\.5x {
        padding-top: var(--spacing-72);
        padding-bottom: var(--spacing-72);
    }
    .pt-md-4\.5x {
        padding-top: var(--spacing-72);
    }
    .pb-md-4\.5x {
        padding-bottom: var(--spacing-72);
    }
    .g-md-4\.5 {
        --bs-gutter-x: var(--spacing-20);
    }
}
@media screen and (max-width: 991px) {
    .row [class^="col"].ps-flush-to-md {
        padding-left: 0;
    }
    .row [class^="col"].pe-flush-to-md {
        padding-right: 0;
    }
    .row [class^="col"].px-flush-to-md {
        padding: 0;
    }
}
@media screen and (min-width: 992px) {
    .py-lg-0\.5x {
        padding: var(--spacing-8) 0;
    }
    .pt-lg-0\.5x {
        padding-top: var(--spacing-8);
    }
    .pb-lg-0\.5x {
        padding-bottom: var(--spacing-8);
    }
    .py-lg-1x {
        padding: var(--spacing-16) 0;
    }
    .pt-lg-1x {
        padding-top: var(--spacing-16);
    }
    .pb-lg-1x {
        padding-bottom: var(--spacing-16);
    }
    .py-lg-1\.5x {
        padding-top: var(--spacing-24);
        padding-bottom: var(--spacing-24);
    }
    .pt-lg-1\.5x {
        padding-top: var(--spacing-24);
    }
    .pb-lg-1\.5x {
        padding-bottom: var(--spacing-24);
    }
    .py-lg-2x {
        padding-top: var(--spacing-32);
        padding-bottom: var(--spacing-32);
    }
    .pt-lg-2x {
        padding-top: var(--spacing-32);
    }
    .pb-lg-2x {
        padding-bottom: var(--spacing-32);
    }
    .py-lg-2\.25x {
        padding-top: var(--spacing-36);
        padding-bottom: var(--spacing-36);
    }
    .pt-lg-2\.25x {
        padding-top: var(--spacing-36);
    }
    .pb-lg-2\.25x {
        padding-bottom: var(--spacing-36);
    }
    .py-lg-2\.5x {
        padding-top: var(--spacing-40);
        padding-bottom: var(--spacing-40);
    }
    .pt-lg-2\.5x {
        padding-top: var(--spacing-40);
    }
    .pb-lg-2\.5x {
        padding-bottom: var(--spacing-40);
    }
    .py-lg-3x {
        padding-top: var(--spacing-48);
        padding-bottom: var(--spacing-48);
    }
    .pt-lg-3x {
        padding-top: var(--spacing-48);
    }
    .pb-lg-3x {
        padding-bottom: var(--spacing-48);
    }
    .py-lg-3\.5x {
        padding-top: var(--spacing-56);
        padding-bottom: var(--spacing-56);
    }
    .pt-lg-3\.5x {
        padding-top: var(--spacing-56);
    }
    .pb-lg-3\.5x {
        padding-bottom: var(--spacing-56);
    }
    .py-lg-4x {
        padding-top: var(--spacing-64);
        padding-bottom: var(--spacing-64);
    }
    .pt-lg-4x {
        padding-top: var(--spacing-64);
    }
    .pb-lg-4x {
        padding-bottom: var(--spacing-64);
    }
    .py-lg-4\.5x {
        padding-top: var(--spacing-72);
        padding-bottom: var(--spacing-72);
    }
    .pt-lg-4\.5x {
        padding-top: var(--spacing-72);
    }
    .pb-lg-4\.5x {
        padding-bottom: var(--spacing-72);
    }
    .g-lg-3\.5 {
        --bs-gutter-x: var(--spacing-12);
    }
    .g-lg-6 {
        --bs-gutter-x: var(--spacing-20);
    }
}
@media screen and (min-width: 1200px) {
    .py-xl-0\.5x {
        padding: var(--spacing-8) 0;
    }
    .pt-xl-0\.5x {
        padding-top: var(--spacing-8);
    }
    .pb-xl-0\.5x {
        padding-bottom: var(--spacing-8);
    }
    .py-xl-1x {
        padding: var(--spacing-16) 0;
    }
    .pt-xl-1x {
        padding-top: var(--spacing-16);
    }
    .pb-xl-1x {
        padding-bottom: var(--spacing-16);
    }
    .py-xl-1\.5x {
        padding-top: var(--spacing-24);
        padding-bottom: var(--spacing-24);
    }
    .pt-xl-1\.5x {
        padding-top: var(--spacing-24);
    }
    .pb-xl-1\.5x {
        padding-bottom: var(--spacing-24);
    }
    .py-xl-2x {
        padding-top: var(--spacing-32);
        padding-bottom: var(--spacing-32);
    }
    .pt-xl-2x {
        padding-top: var(--spacing-32);
    }
    .pb-xl-2x {
        padding-bottom: var(--spacing-32);
    }
    .py-xl-2\.25x {
        padding-top: var(--spacing-36);
        padding-bottom: var(--spacing-36);
    }
    .pt-xl-2\.25x {
        padding-top: var(--spacing-36);
    }
    .pb-xl-2\.25x {
        padding-bottom: var(--spacing-36);
    }
    .py-xl-2\.5x {
        padding-top: var(--spacing-40);
        padding-bottom: var(--spacing-40);
    }
    .pt-xl-2\.5x {
        padding-top: var(--spacing-40);
    }
    .pb-xl-2\.5x {
        padding-bottom: var(--spacing-40);
    }
    .py-xl-3x {
        padding-top: var(--spacing-48);
        padding-bottom: var(--spacing-48);
    }
    .pt-xl-3x {
        padding-top: var(--spacing-48);
    }
    .pb-xl-3x {
        padding-bottom: var(--spacing-48);
    }
    .py-xl-3\.5x {
        padding-top: var(--spacing-56);
        padding-bottom: var(--spacing-56);
    }
    .pt-xl-3\.5x {
        padding-top: var(--spacing-56);
    }
    .pb-xl-3\.5x {
        padding-bottom: var(--spacing-56);
    }
    .py-xl-4x {
        padding-top: var(--spacing-64);
        padding-bottom: var(--spacing-64);
    }
    .pt-xl-4x {
        padding-top: var(--spacing-64);
    }
    .pb-xl-4x {
        padding-bottom: var(--spacing-64);
    }
    .py-xl-4\.5x {
        padding-top: var(--spacing-72);
        padding-bottom: var(--spacing-72);
    }
    .pt-xl-4\.5x {
        padding-top: var(--spacing-72);
    }
    .pb-xl-4\.5x {
        padding-bottom: var(--spacing-72);
    }
}
@media screen and (min-width: 1400px) {
    .py-xxl-0\.5x {
        padding: var(--spacing-8) 0;
    }
    .pt-xxl-0\.5x {
        padding-top: var(--spacing-8);
    }
    .pb-xxl-0\.5x {
        padding-bottom: var(--spacing-8);
    }
    .py-xxl-1x {
        padding: var(--spacing-16) 0;
    }
    .pt-xxl-1x {
        padding-top: var(--spacing-16);
    }
    .pb-xxl-1x {
        padding-bottom: var(--spacing-16);
    }
    .py-xxl-1\.5x {
        padding-top: var(--spacing-24);
        padding-bottom: var(--spacing-24);
    }
    .pt-xxl-1\.5x {
        padding-top: var(--spacing-24);
    }
    .pb-xxl-1\.5x {
        padding-bottom: var(--spacing-24);
    }
    .py-xxl-2x {
        padding-top: var(--spacing-32);
        padding-bottom: var(--spacing-32);
    }
    .pt-xxl-2x {
        padding-top: var(--spacing-32);
    }
    .pb-xxl-2x {
        padding-bottom: var(--spacing-32);
    }
    .py-xxl-2\.25x {
        padding-top: var(--spacing-36);
        padding-bottom: var(--spacing-36);
    }
    .pt-xxl-2\.25x {
        padding-top: var(--spacing-36);
    }
    .pb-xxl-2\.25x {
        padding-bottom: var(--spacing-36);
    }
    .py-xxl-2\.5x {
        padding-top: var(--spacing-40);
        padding-bottom: var(--spacing-40);
    }
    .pt-xxl-2\.5x {
        padding-top: var(--spacing-40);
    }
    .pb-xxl-2\.5x {
        padding-bottom: var(--spacing-40);
    }
    .py-xxl-3x {
        padding-top: var(--spacing-48);
        padding-bottom: var(--spacing-48);
    }
    .pt-xxl-3x {
        padding-top: var(--spacing-48);
    }
    .pb-xxl-3x {
        padding-bottom: var(--spacing-48);
    }
    .py-xxl-3\.5x {
        padding-top: var(--spacing-56);
        padding-bottom: var(--spacing-56);
    }
    .pt-xxl-3\.5x {
        padding-top: var(--spacing-56);
    }
    .pb-xxl-3\.5x {
        padding-bottom: var(--spacing-56);
    }
    .py-xxl-4x {
        padding-top: var(--spacing-64);
        padding-bottom: var(--spacing-64);
    }
    .pt-xxl-4x {
        padding-top: var(--spacing-64);
    }
    .pb-xxl-4x {
        padding-bottom: var(--spacing-64);
    }
    .py-xxl-4\.5x {
        padding-top: var(--spacing-72);
        padding-bottom: var(--spacing-72);
    }
    .pt-xxl-4\.5x {
        padding-top: var(--spacing-72);
    }
    .pb-xxl-4\.5x {
        padding-bottom: var(--spacing-72);
    }
}