:root
{
    --default-font-size: 1rem;
}

body
{
    -webkit-text-size-adjust: 100%;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
    scroll-behavior: smooth;
}

body,
html
{
    font-size: var(--default-font-size, 1rem);
    margin: 0;
    overflow-x: hidden;
    padding: 0;

}

/* --------------------------------------------- Components--------------------------------------------- */
/* Buttons */
.btn,
.btn:hover,
.btn:focus,
.btn:focus:active
{
    text-decoration: none;
}

/* --------------------------------------------Utilities ---------------------------------------------- */

.bg-fixed
{
    background-attachment: fixed;
}

.bg-scroll
{
    background-attachment: scroll;
}

.bg-clip-text
{
    background-clip: text;
}

.bg-clip-border
{
    background-clip: border-box;
}

.bg-clip-padding
{
    background-clip: padding-box;
}

.bg-clip-content
{
    background-clip: content-box;
}

/* Text Styles */
.text-underline
{
    text-decoration: underline !important;
}

.text-underline-under
{
    text-underline-position: under !important;
}

.text-decoration-none
{
    text-decoration: none !important;
}

.text-underline-offset-auto
{
    text-underline-offset: auto !important;
}

.text-underline-offset-1
{
    text-underline-offset: 0.0625rem;
}

.underline-offset-2
{
    text-underline-offset: 0.125rem;
}

.underline-offset-3
{
    text-underline-offset: 0.1875rem;
}

.underline-offset-4
{
    text-underline-offset: 0.25rem;
}

.underline-offset-8
{
    text-underline-offset: 0.5rem;
}

.text-balance
{
    text-wrap: balance;
}

.text-pretty
{
    text-wrap: pretty;
}

.text-nowrap
{
    text-wrap: nowrap;
}

.text-wrap
{
    white-space: normal;
}

.text-truncate
{
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.text-ellipsis
{
    text-overflow: ellipsis;
}

.text-clip
{
    text-overflow: clip;
}

.v-align-text-top
{
    vertical-align: text-top;
}

.v-align-text-bottom
{
    vertical-align: text-bottom;
}

.v-align-baseline
{
    vertical-align: baseline;
}

/* Inline/ Table Cell */
.v-align-top
{
    vertical-align: top;
}

.v-align-middle
{
    vertical-align: middle;
}

.v-align-bottom
{
    vertical-align: bottom;
}

.v-align-sub
{
    vertical-align: sub;
}

.v-align-super
{
    vertical-align: super;
}

.content-none
{
    content: none;
}

/* Border Opacity */
.border-opacity-10
{
    --bs-border-opacity: 0.1;
}

.border-opacity-25
{
    --bs-border-opacity: 0.25;
}

.border-opacity-50
{
    --bs-border-opacity: 0.5;
}

.border-opacity-75
{
    --bs-border-opacity: 0.75;
}

/* Line Height */

.lh-1
{
    line-height: 1 !important;
}

.lh-heading
{
    line-height: 1.1 !important;
}

.lh-tight
{
    line-height: 1.3 !important;
}

.lh-normal
{
    line-height: 1.5 !important;
}

.lh-loose
{
    line-height: 1.8 !important;
}

.lh-lg
{
    line-height: 2 !important;
}

/* Letter Spacing */
.tracking-tighter
{
    letter-spacing: -0.05rem;
}

.tracking-tight
{
    letter-spacing: -0.025rem;
}

.tracking-wide
{
    letter-spacing: 0.025rem;
}

.tracking-wider
{
    letter-spacing: 0.05rem;
}

.tracking-xl-wide
{
    letter-spacing: 0.09375rem;
}

.tracking-xxl-wide
{
    letter-spacing: 0.1rem;
}

.tracking-widest
{
    letter-spacing: 0.125rem;
}

/* Layout */
/* Aspect ratio */
.aspect-ratio-auto
{
    aspect-ratio: auto;
}

.aspect-ratio-5-4
{
    aspect-ratio: 5/4;
}

.aspect-ratio-6-4
{
    aspect-ratio: 6/4;
}

.aspect-ratio-16-9
{
    aspect-ratio: 16/9;
}

.aspect-ratio-21-9
{
    aspect-ratio: 21/9;
}

.aspect-ratio-9-16
{
    aspect-ratio: 9/16;
}

.aspect-ratio-4-1
{
    aspect-ratio: 4 / 1;
}

.aspect-ratio-2-1
{
    aspect-ratio: 2 / 1;
}

.aspect-ratio-1-1
{
    aspect-ratio: 1 / 1;
}

/* Position */
.position-middle
{
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

/* Width */
.width-fit-content
{
    width: -webkit-fit-content;
    width: -moz-fit-content;
    width: fit-content;
}

.width-max-content
{
    width: max-content;
}

.width-min-content
{
    width: min-content;
}

/* -------------------------------------------- Helpers ---------------------------------------------- */

.flip-horizontally
{
    transform: rotate(180deg);
}

/* --------------------------------------------- Flex ------------------------------------------------- */

@media (min-width: 576px)
{

    .w-sm-25
    {
        width: 25% !important;
    }

    .w-sm-50
    {
        width: 50% !important;
    }

    .w-sm-75
    {
        width: 75% !important;
    }
}

@media (min-width: 768px)
{

    .w-md-25
    {
        width: 25% !important;
    }

    .w-md-50
    {
        width: 50% !important;
    }

    .w-md-75
    {
        width: 75% !important;
    }
}

@media (min-width: 992px)
{

    .w-lg-25
    {
        width: 25% !important;
    }

    .w-lg-50
    {
        width: 50% !important;
    }

    .w-lg-75
    {
        width: 75% !important;
    }
}

@media (min-width: 1200px)
{

    .w-xl-25
    {
        width: 25% !important;
    }

    .w-xl-50
    {
        width: 50% !important;
    }

    .w-xl-75
    {
        width: 75% !important;
    }
}

@media (min-width: 1400px)
{
    .w-xxl-25
    {
        width: 25% !important;
    }

    .w-xxl-50
    {
        width: 50% !important;
    }

    .w-xxl-75
    {
        width: 75% !important;
    }
}

@media (min-width: 1920px)
{

    .w-3xl-25
    {
        width: 25% !important;
    }

    .w-3xl-50
    {
        width: 50% !important;
    }

    .w-3xl-75
    {
        width: 75% !important;
    }
}