/* :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);
} */

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

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

/* Font Weight */
.font-weight-light {
 font-weight: 300 !important;
}

.font-weight-normal {
 font-weight: 400 !important;
}

.font-weight-medium {
 font-weight: 500 !important;
}

.font-weight-semibold {
 font-weight: 600 !important;
}

.font-weight-bold {
 font-weight: 700 !important;
}

.font-weight-bolder {
 font-weight: bolder !important;
}

/* Font Size */
.fs-smaller {
 font-size: smaller !important;
}

.fs-small {
 font-size: small !important;
}

.fs-medium {
 font-size: medium !important;
}

.fs-large {
 font-size: large !important;
}

.fs-larger {
 font-size: larger !important;
}

.fs-xl {
 font-size: x-large !important;
}

.fs-2xl {
 font-size: xx-large !important;
}

.fs-xs {
 font-size: xx-small !important;
}

.fs-2xs {
 font-size: xx-small !important;
}

/* Background */
.bg-none {
 background: none !important;
}

.bg-image-none {
 background-image: none !important;
}

.background-repeat {
 background-repeat: repeat !important;
}

.background-repeat-x {
 background-repeat: repeat-x !important;
}

.background-repeat-y {
 background-repeat: repeat-y !important;
}

.background-no-repeat {
 background-repeat: no-repeat !important;
}

.background-cover {
 background-size: cover !important;
}

.background-contain {
 background-size: contain !important;
}

.background-100 {
 background-size: 100% !important;
}

.bg-bottom {
 background-position: bottom;
}

.bg-center {
 background-position: center;
}

.bg-left {
 background-position: left;
}

.bg-left-bottom {
 background-position: left bottom;
}

.bg-left-top {
 background-position: left top;
}

.bg-right {
 background-position: right;
}

.bg-right-bottom {
 background-position: right bottom;
}

.bg-right-top {
 background-position: right top;
}

.bg-top {
 background-position: top;
}

.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;
}

/* Borders -------------------------------------*/

/* Border Style */
.border-solid {
 border-style: solid !important;
}

.border-dash {
 border-style: dashed !important;
}

.border-dotted {
 border-style: dotted !important;
}

/* Border Width */
.border-1 {
 border-width: 1px !important;
}

.border-2 {
 border-width: 2px !important;
}

.border-3 {
 border-width: 3px !important;
}

.border-4 {
 border-width: 4px !important;
}

.border-5 {
 border-width: 5px !important;
}

.border-7 {
 border-width: 7px !important;
}

.border-10 {
 border-width: 10px !important;
}

/* Border Position */
.border-right-1 {
 border-right: 1px !important;
}

.border-right-2 {
 border-right: 2px !important;
}

.border-right-3 {
 border-right: 3px !important;
}

.border-right-5 {
 border-right: 5px !important;
}

.border-right-7 {
 border-right: 7px !important;
}

.border-right-10 {
 border-right: 10px !important;
}

.border-left-1 {
 border-left: 1px !important;
}

/* 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;
}

/* Effects */


/* 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-top-0 {
 top: 0;
}

.position-top-1 {
 top: 1rem;
}

.position-top-2 {
 top: 2rem;
}

.position-top-3 {
 top: 3rem;
}

.position-bottom-0 {
 bottom: 0;
}

.position-left-0 {
 left: 0;
}

.position-right-0 {
 right: 0;
}

.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;
}

/* Spacing */

.row-gap-sm {
 row-gap: 0.625rem;
}

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

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