@font-face {
  font-family: 'Poppins';
  src: url('/media/Poppins-Light.woff2') format('woff2');
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Poppins';
  src: url('/media/Poppins-Regular.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Poppins';
  src: url('/media/Poppins-Medium.woff2') format('woff2');
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Poppins';
  src: url('/media/Poppins-SemiBold.woff2') format('woff2');
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Poppins';
  src: url('/media/Poppins-Bold.woff2') format('woff2');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Poppins';
  src: url('/media/Poppins-ExtraBold.woff2') format('woff2');
  font-weight: 800;
  font-style: normal;
  font-display: swap;
}

.theme-root {
  --font-body: 'Poppins';
  --font-headings: 'Poppins';
  --font-navigation: 'Poppins';
  --font-buttons: 'Poppins';
  --font-ui: 'Poppins';
  --background: hsl(0 0% 100%);
  --foreground: #808080;
  --card: hsl(240 5% 96%);
  --card-foreground: hsl(222.2 84% 4.9%);
  --popover: hsl(0 0% 100%);
  --popover-foreground: hsl(222.2 84% 4.9%);
  --primary: hsl(222.2 47.4% 11.2%);
  --primary-foreground: hsl(210 40% 98%);
  --secondary: hsl(210 40% 96.1%);
  --secondary-foreground: hsl(222.2 47.4% 11.2%);
  --muted: hsl(210 40% 96.1%);
  --muted-foreground: hsl(215.4 16.3% 46.9%);
  --accent: hsl(210 40% 96.1%);
  --accent-foreground: hsl(222.2 47.4% 11.2%);
  --destructive: hsl(0 84.2% 60.2%);
  --destructive-foreground: hsl(210 40% 98%);
  --border: hsl(240 6% 90%);
  --input: hsl(214.3 31.8% 91.4%);
  --ring: hsl(222.2 84% 4.9%);
  --space-xs: 0.25rempx;
  --space-sm: 0.5rempx;
  --space-md: 1rempx;
  --space-lg: 1.5rempx;
  --space-xl: 2rempx;
  --radius-sm: 0.125rempx;
  --radius-md: 0.2rempx;
  --radius-lg: 0.5rempx;
  --radius-xl: 0.75rempx;
  --shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
  --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
  --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
  --link-decoration: none;
  --link-hover-decoration: none;
  --nav-font-size: 16px;
  --nav-font-weight: 300;
  --nav-letter-spacing: 0.04em;
  --nav-text-transform: uppercase;
}

.theme-root .content-font-scope {
  font-family: var(--font-body), system-ui, sans-serif;
}
.theme-root .content-font-scope h1,
.theme-root .content-font-scope h2,
.theme-root .content-font-scope h3,
.theme-root .content-font-scope h4,
.theme-root .content-font-scope h5,
.theme-root .content-font-scope h6 {
  font-family: var(--font-headings), system-ui, sans-serif;
}
.theme-root .content-font-scope nav {
  font-family: var(--font-navigation), system-ui, sans-serif;
}
.theme-root .content-font-scope button,
.theme-root .content-font-scope .btn {
  font-family: var(--font-buttons), system-ui, sans-serif;
}
.theme-root .content-font-scope .ui,
.theme-root .content-font-scope label,
.theme-root .content-font-scope small {
  font-family: var(--font-ui), system-ui, sans-serif;
}
.theme-root .content-font-scope a {
  color: var(--link-color, currentColor);
  text-decoration: var(--link-decoration);
}

.theme-root .content-font-scope a:hover {
  color: var(--link-hover-color, var(--link-color, currentColor));
  text-decoration: var(--link-hover-decoration);
}


/* ======================
   LOADER COLORS
====================== */

:root {
  --loader-color: #000000;
}

.dark {
  --loader-color: #ffffff;
}

/* ======================
   LOADER
====================== */


.theme-loader-spinner {
  width: 40px;
  aspect-ratio: 1;
  --c: linear-gradient(var(--loader-color) 0 0);
  --r1: radial-gradient(farthest-side at bottom,var(--loader-color) 93%,#0000);
  --r2: radial-gradient(farthest-side at top,var(--loader-color) 93%,#0000);
  background: 
    var(--c),var(--r1),var(--r2),
    var(--c),var(--r1),var(--r2),
    var(--c),var(--r1),var(--r2);
  background-repeat: no-repeat;
  animation: theme-loader-dots 1s infinite alternate;
}
@keyframes theme-loader-dots {
  0%,25% {
    background-size: 8px 0,8px 4px,8px 4px,8px 0,8px 4px,8px 4px,8px 0,8px 4px,8px 4px;
    background-position: 0 50%,0 calc(50% - 2px),0 calc(50% + 2px),50% 50%,50% calc(50% - 2px),50% calc(50% + 2px),100% 50%,100% calc(50% - 2px),100% calc(50% + 2px);
  }
  50% {
    background-size: 8px 100%,8px 4px,8px 4px,8px 0,8px 4px,8px 4px,8px 0,8px 4px,8px 4px;
    background-position: 0 50%,0 calc(0% - 2px),0 calc(100% + 2px),50% 50%,50% calc(50% - 2px),50% calc(50% + 2px),100% 50%,100% calc(50% - 2px),100% calc(50% + 2px);
  }
  75% {
    background-size: 8px 100%,8px 4px,8px 4px,8px 100%,8px 4px,8px 4px,8px 0,8px 4px,8px 4px;
    background-position: 0 50%,0 calc(0% - 2px),0 calc(100% + 2px),50% 50%,50% calc(0% - 2px),50% calc(100% + 2px),100% 50%,100% calc(50% - 2px),100% calc(50% + 2px);
  }
  95%,100% {
    background-size: 8px 100%,8px 4px,8px 4px,8px 100%,8px 4px,8px 4px,8px 100%,8px 4px,8px 4px;
    background-position: 0 50%,0 calc(0% - 2px),0 calc(100% + 2px),50% 50%,50% calc(0% - 2px),50% calc(100% + 2px),100% 50%,100% calc(0% - 2px),100% calc(100% + 2px);
  }
}


.theme-loader {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--background, #fff);
}
