/* */

:root {
    /* Primary Theme Colors */
    --zenith-green: #D9FE38;
    --zenith-green-dark: #32361c;
  
    /* Background Fades */
    --zenith-fade-grey-main: linear-gradient(80deg, #1A1A1A 4.89%, #2B2B2B 113.75%);
    --zenith-fade-grey-light: linear-gradient(80deg, #2B2B2B 4.89%, #3C3C3C 113.75%);
    --zenith-fade-neon: linear-gradient(135deg, #89FF4F 0%, #45A049 100%);
    
    /* Background Colors */
    --zenith-bg-main: #D9FE38;
  
    /* Font Colors */
    --zenith-font-light: #F0F0F0;
    --zenith-font-dark: #1A1A1A;
    --zenith-font-muted: #9A9A9A;
    --zenith-font-primary: #141800;
    --zenith-font-secondary: #DCDCDC;
  
    /* Utility */
    --zenith-shadow: 0 0 24px rgba(137, 255, 79, 0.3);
  }

  [data-theme="dark"] {
    --zenith-background: linear-gradient(80deg, #1A1A1A 4.89%, #2B2B2B 113.75%);
    
    --zenith-font-primary: #F0F0F0;
    --zenith-font-secondary: #C0C0C0;

    --zenith-fade-grey-main: linear-gradient(80deg, #111 4.89%, #222 113.75%);
  }
  
  [data-theme="light"] {
    --zenith-background: #D9FE38;

    --zenith-font-primary: #141800;
    --zenith-font-secondary: #DCDCDC;

    --zenith-fade-grey-main: linear-gradient(80deg, #FAFAFA 4.89%, #EEE 113.75%);
  }
  
  [data-theme="zenith"] {
    --zenith-background: #89FF4F;

    --zenith-font-primary: #141800;
    --zenith-font-secondary: #B0CFC0;
    
    --zenith-fade-grey-main: linear-gradient(80deg, #001F1F 4.89%, #002A2A 113.75%);
  }

  [data-theme="zenith health"] {
    --zenith-background: radial-gradient(142.02% 112.16% at 50% -5.71%, #B35BE3 0%, rgba(13, 48, 42, 0.01) 61.06%), #0D302A;
    --zenith-font-primary: #B35BE3;
  }


@font-face {
    font-family: 'Inter';
    src: url('../font/Inter-VariableFont_opsz-wght.ttf') format('truetype');
    font-weight: 100 900;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Inter';
    src: url('../font/Inter-Italic-VariableFont_opsz-wght.ttf') format('truetype');
    font-weight: 100 900;
    font-style: italic;
    font-display: swap;
}

body {
    font-family: 'Inter', sans-serif;
    background: var(--zenith-background);
}

* {
    transition: 
      background-color 0.4s ease,
      color 0.2s ease,
      fill 0.2s ease,
      border-color 0.4s ease,
      box-shadow 0.4s ease;
  }
  .icon-wrapper svg,
  .icon-wrapper svg path {
    transition: fill 0.4s ease-in-out;
    contain: paint;
    will-change: fill;
  }

h1, h2, h3, h4, h5, h6, a, p, span, input {
    font-family: 'Inter', sans-serif;
}

h1 {
    font-size: 6.125rem !important;
}

@media screen and (max-width: 991px) {
    h1 {
        font-size: 9.888vw !important;
        letter-spacing: -0.396vw !important;
    }
}

@media screen and (max-width: 767px) {
    h1 {
        font-size: 9.888vw !important;
        letter-spacing: -0.396vw !important;
    }  
}

@media screen and (max-width: 568px) {
    h1 {
        font-size: 9.888vw !important;
        letter-spacing: -0.396vw !important;
    }
}

.is-relative {
    position: relative;
}

/* */

.font-color-primary {
    color: var(--zenith-font-primary);
    font-family: Inter;
}

.font-color-secondary {
    color: var(--zenith-font-secondary);
    font-family: Inter;
}

/* */

.background-color {
    background: var(--zenith-green);  
}

.background-fade {
    background: var(--zenith-fade-grey-main)
}

/* */

.full-height {
    height: 100%;
}

.full-width {
    width: 100%;
}

.height-100dvh {
    height: 100dvh;
}


/* */

.flex-center-center {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    align-self: stretch;
}

.flex-x-center {
    display: flex;
    flex-direction: column;
    align-items: center;
    align-self: stretch;
}

.flex-y-center {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-self: stretch;
}

/* */

.section_coming-soon {
    height: 100dvh;
    color: var(--zenith-font-primary);
    background: var(--zenith-background);
}


/* ICON CLASSES */

.icon-text-wrapper {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.icon-wrapper {
    width: 5.375rem;
    height: 7rem;
}

.logo-text-quote {
    font-size: 1.125rem;
    margin-left: 1rem;
}

.icon-wrapper svg {
    width: 100%;
    height: 100%;
    display: block;
  }

.icon-logo-text {
    font-size: 6.125rem !important;
}

.icon-text-quote-margin {
    margin-top: 0.75rem;
}


@media screen and (max-width: 991px) {
    .icon-wrapper {
        width: 10.413vw !important;
        height: 13.561vw !important;
    }
    .icon-text-wrapper {
        gap: 1.936vw;
    }
    .logo-text-quote {
        font-size: 2.179vw;
        margin-left: 1.936vw;
    }
    .icon-logo-text {
        font-size: 11.865vw !important;
        letter-spacing: -0.475vw !important;
    }  
    .icon-text-quote-margin {
        margin-top: 1.453vw;
    }
}

@media screen and (max-width: 767px) { /* werte x1.2 */
    .icon-wrapper {
        width: 10.413vw !important;
        height: 13.561vw !important;
    }
    .icon-text-wrapper {
        gap: 1.936vw;
    }
    .logo-text-quote {
        font-size: 2.179vw;
        margin-left: 1.936vw;
    }
    .icon-logo-text {
        font-size: 11.865vw !important;
        letter-spacing: -0.475vw !important;
    }  
    .icon-text-quote-margin {
        margin-top: 1.453vw;
    }
}

@media screen and (max-width: 568px) {
    .icon-wrapper {
      width: 15vw !important;
      height: 19.51vw !important;
    }
    .icon-text-wrapper {
      gap: 2.79vw;
    }
    .logo-text-quote {
      font-size: 3.14vw;
      margin-left: 2.79vw;
    }
    .icon-logo-text {
      font-size: 17.09vw !important;
      letter-spacing: -0.68vw !important;
    }  
    .icon-text-quote-margin {
      margin-top: 2.09vw;
    }
  }

/* Toggle overlay */


.toggle-overlay {
    position: absolute;
    top: auto;
    right: auto;
    bottom: 0;
    left: 0;
    width: auto;
    height: auto;
    display: flex;
    flex-direction: row;
    justify-content: left !important;
    align-items: last baseline;
    padding: 0 0 2rem 2rem;
}

.toggle-list {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    align-self: stretch;
}

/*
  MirrorSignal7E – A trace hidden in form, a whisper masked as design.
  They who decipher the unseen, may find what others miss.
  It's not in the light, but in the shadows of style.
  Some truths are commented out.
*/


.toggle-list-wrapper {
    opacity: 0.4;
    display: flex;
    padding: 0.5rem;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    border-radius: 0.875rem;
    background: #FFF;
    cursor: pointer;
}

.toggle-list-wrapper:hover {
    opacity: 1;
}

.toggle-list-wrapper.is-active {
    display: flex;
    padding: 0.5rem;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    gap: 0.625rem;
    border-radius: 0.875rem;
    background: #FFF;
    box-shadow: 0px 10px 25.6px 0px rgba(0, 0, 0, 0.09);
}

.toggle-list-toggle-btn {
    width: 2rem;
    height: 2rem; 
}

.theme-toggle-list-wrapper {
    display: flex;
    width: 12.5625rem;
    flex-direction: column;
    align-items: flex-start;
    background: #FFF;
}

.theme-toggle-list-header {
    display: flex;
    padding: 0.5rem 0.3125rem;
    gap: 0.625rem;
    align-self: stretch;
    color: rgba(0, 0, 0, 0.40);
    font-family: Inter;
    font-size: 1rem;
    font-style: normal;
    font-weight: 400;
    line-height: normal;
    letter-spacing: -0.04rem;
}

.theme-toggle-list-wrapper {
    max-height: 0;
    max-width: 0;
    overflow: hidden;
    opacity: 0;
    transition: max-height 0.3s ease, opacity 0.3s ease;
    padding-top: 0;
  }
  
  .theme-toggle-list-wrapper.is-open {
    max-height: 500px; /* oder fit-content, falls es in deinem Setup supported ist */
    max-width: 500px;
    opacity: 1;
    padding-top: 0.625rem;
  }

.theme-btn {
    display: flex;
    padding: 0.5rem 0.375rem;
    align-items: center;
    gap: 0.75rem;
    align-self: stretch;
    border-radius: 0.375rem;
    background-color: transparent;
    border: 0;

    color: #000;
    font-family: Inter;
    font-size: 1.25rem;
    font-style: normal;
    font-weight: 400;
    line-height: normal;
    letter-spacing: -0.05rem;
}

.theme-btn.is-active {
    background-color: #EAFF8F;
}

.theme-btn .icon-on {
    display: none;
  }
  
  .theme-btn.is-active .icon-on {
    display: inline-block;
  }
  
  .theme-btn.is-active .icon-off {
    display: none;
  }

.theme-btn-icon {
    width: 1.375rem;
    height: 1.375rem;
    aspect-ratio: 1/1;
}


.scramble-char {
    display: inline-block;
    transition: opacity 0.3s ease;
  }