body {
    overflow-x: hidden;
    overflow-y: scroll;
    scroll-snap-type: y mandatory;
}

/* #region Hero Section */

  .hero-banner {
    position: relative;
    height: 100vh;
    width: 100%;
    overflow: hidden;
  }

  .hero-banner .img-container {
    position: absolute;
    top: 0%;
    left: 0;
    height: 100%;
    width: 100%;
  }

  .hero-banner .img-container .hero-bg-img {
    position: absolute;
    top: 0;
    height: 100%;
    width: 100%;
    object-fit: cover;
    opacity: 0;
    transform: translateX(50%);
    transition: opacity 1s ease, transform 1s ease;
    z-index: 2;
  }

  .hero-banner .img-container .hero-bg-img.active {
    opacity: 1;
    transform: translateX(0);
    z-index: 3;
  }

  .hero-banner .backdrop {
    position: absolute;
    top: 0;
    left: 0;
    height: 100vh;
    width: 100vw;
    background: linear-gradient(to left, transparent 40%, var(--def-offbg) 100%);
    opacity: 1;
    z-index: 4;
    transition: backdrop-filter 1s ease;
  }

  .hero-content-container {
    position: relative;
    height: 100%;
    width: 100%;
    z-index: 5;
  }

  .hero-content-container .hc-item {
    position: absolute;
    top: 50%;
    left: 5%;
    transform: translate(0%, -50%);
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: first baseline;
    gap: 10px;
    text-align: left;
  }


  .hero-content-container .hc-item h1 {
    font-size: 2.5rem;
    font-weight: 800;
  }

  .hero-content-container .hc-item button {
    margin: 15px 5px 0 0;
    padding: 5px 20px;
    font-size: 1rem;
    font-weight: bold;
    background-color: transparent;
    border: 2px solid var(--def-main-clr);
    color: var(--def-main-clr);
    transition: all 300ms ease;
  }

  .hero-content-container .hc-item button:nth-last-of-type(1) {
    background-color: var(--def-main-clr);
    border: 2px solid var(--def-main-clr);
    color: var(--def-txtinvert-clr);
  }

  .hero-content-container .hc-item button:nth-last-of-type(1):hover {
    background-color: transparent;
    border: 2px solid var(--def-alt-clr);
    color: var(--def-alt-clr);
  }


  .hero-content-container .hc-item button:hover {
    background-color: var(--def-alt-clr);
    border: 2px solid var(--def-alt-clr);
    color: var(--def-txtinvert-clr);
    transform: translate(0);

  }


  #slider-ids {
    position: absolute;
    width: 100%;
    bottom: 0;
    z-index: 6;
    list-style: none;
    display: flex;
    justify-content: space-evenly;
    padding: 0;
    z-index: 8;
  }

  #slider-ids li {
    flex: auto;
    padding: 0.5rem 0px;
    border-right: 2px solid var(--def-txtinvert-clr);
    background: var(--def-shadow-clr);
    font-weight: 200;
    color: var(--def-txtinvert-clr);
    text-align: center;
    cursor: pointer;
    opacity: 0.8;
  }

  #slider-ids li.active {
    background-color: var(--def-main-clr);
    font-weight: lighter;
    opacity: 1;
  }



  @media (max-width: 768px) {
    .hero-banner .img-container::after {
        position: absolute;
        content: '';
        top: 0;
        left: 0;
        height: 100%;
        width: 100%;
        background: linear-gradient(to top, transparent 20%, var(--def-clr-shaded) 100%);
        z-index: 5;
    }

    .hero-content-container .hc-item {
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      display: flex;
      flex-direction: column;
      justify-content: center;
      align-items: center;
      color: white;
      text-align: center;
    }

    .hero-content-container .hc-item h1 {
      font-size: 2rem;
    }

    .hero-content-container .hc-item p {
      font-size: 0.8rem;
    }

    .hero-content-container .hc-item button {
      scale: 0.8; 
      background-color: var(--def-main-clr);
      border: 2px solid var(--def-main-clr);
      color: var(--def-txtinvert-clr);
    }
    
  }

/* #endregion */

/* #region Short About */

  .short-about-container {
    width: 100%;
    padding: 10rem 5rem;
  }

  .content-container {
    display: flex;
    justify-content: center;
    align-items: center;
  }

  .about-container {
    width: calc(100% - 50rem);
    display: flex;
    justify-content: center;
    align-items: first baseline;
    flex-direction: column;
  }

  .sa-header {
    border-bottom: 5px solid var(--def-main-clr);
  }

  .sa-paragraph {
    border-left: 5px solid var(--def-main-clr);
    padding: 20px;
  }

  .link {
    text-decoration: underline;
    color: var(--def-alt-clr);
  }

  @media (max-width: 1430px) {

    .about-container {
      width: calc(100% - 20rem);
    }
  }

  @media (max-width: 768px) {

    .about-container {
      width: 100%;
    }

    .short-about-container {
      width: 100%;
      padding: 10rem 1rem;
    }
  
  }

/* #endregion */

/* #region Point Break Down */

  .navigate-container {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
  }

  .navigate {
    height: 100vh;
    width: 100vw;
    padding: 5rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
  }

  .compass-container {
    width: 50%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
  }

  .navigate .content {
    width: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 4rem;
  }

  @media (max-width: 768px) {

    .navigate-container {
      padding: 0;
      margin: 0;
    }

    .navigate {
      flex-direction: column;
      padding: 0rem;
      text-align: center;
    }

    .header-navigate {
      font-size: 1.4rem;
      margin-top: 4rem;
    }

    .compass-container svg {
      height: fit-content;
      width: 100%;
    }

    .navigate .content {
      padding: 0;
    }
  
    .compass-container,
    .navigate .content {
      flex: 1;
      width: 100%;
    }
  }

/* #endregion */

/* #region Window-Shop */

.window-shop {
    position: relative;
    background-color: var(--def-alt-clr);
    color: var(--def-txtinvert-clr);
    display: flex;
    flex-direction: column;
    gap: 10px;
    align-items: center;
    min-height: 100vh;
    display: grid;
    place-items: center;
    background: var(--def-alt-clr);
    font-weight: 400;
  }

  .window-shop .label {
    display: flex;
    flex-direction: column;
    gap: 10px;
    text-align: center;
  }

  .window-shop .window-shop-container .container {
    width: 100%;
    display: flex;
    justify-content: center;
    height: 500px;
    gap: 10px;
  }


  .window-shop-container .container div {
    flex: 0 0 250px;
    border-radius: 0.5rem;
    transition: 0.5s ease-in-out;
    cursor: pointer;
    box-shadow: 1px 5px 15px #1e0e3e;
    position: relative;
    overflow: hidden;
  }

  .window-shop-container .container div img {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 100%;
    object-fit: cover;
  }
  
 .window-shop-container .container div .content {
    font-size: 1.5rem;
    color: #fff;
    display: flex;
    align-items: center;
    padding: 15px;
    opacity: 0;
    flex-direction: column;
    height: 100%;
    justify-content: flex-end;
    background: linear-gradient(0deg, rgba(2, 2, 46, 0.675) 0%, rgba(255, 255, 255, 0) 100%);
    transform: translateY(100%);
    transition: opacity 0.5s ease-in-out, transform 0.5s 0.2s;
    visibility: hidden;
  }
  
 .window-shop-container .container div .content span {
    display: block;
    margin-top: 5px;
    font-size: 1.2rem;
  }
  
 .window-shop-container .container div:hover {
    flex: 0 0 300px;
    box-shadow: 1px 3px 15px #7645d8;
    transform: translateY(-30px);
  }
  
 .window-shop-container .container div:hover .content {
    opacity: 1;
    transform: translateY(0%);
    visibility: visible;
  }
  
  @media (max-width: 768px) {

    .window-shop .window-shop-container .container {
      justify-content: center;
      align-items: center;
      flex-direction: column;
      height: 250px;
    }

    .window-shop-container .container div {
      flex: 0 0 150px;
      width: calc(100% - 25px);
    }

    .window-shop-container .container div:hover {
      flex: 0 0 250px;
    }
    
  }





/* #endregion */

/* #region Metric Achievements */

  .metric-achievements {
    padding: 100px 10px;
    display: flex;
    align-items: center;
    justify-content: space-around;
    gap: 20px;
    background-color: var(--def-alt-clr);
    color: var(--def-main-clr);
    pointer-events: none;
  }

  
  .metric-achievements .metric-container {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    gap: 3rem;
    padding: 2rem;
  }

  .metric-achievements .topic-label {
    height: 100%;
    width: 400px;
    color: var(--def-txtinvert-clr);
    overflow-wrap: break-word;
  }
  
  .metric-achievements .topic-label p {
    margin: 5px 0;
    opacity: 0.8;
    font-size: 1rem;
  }
  
  .metric-achievements .topic-label h3 {
    font-size: 1.5rem;
  }


  .metric-achievements .metric-container .metric {
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    height: 150px;
    width: 150px;
    border-radius: 50%;
    outline: 2px solid var(--def-txtinvert-clr);
    outline-offset: 10px;
    background: var(--def-bg-clr);
  }
  
  .metric-achievements .metric-container .anim-no-up {
    font-size: 3rem;
    font-weight: bold;
    display: block;
  }
  
  .metric-achievements .metric-container .label {
    font-family: var(--alt-font);
    font-size: 1.2rem;
    opacity: 0.8;
  }

  @media (max-width: 1200px) {

    .metric-achievements {
      padding-top: 3rem;
      flex-direction: column;
      display: flex;
      align-items: center;
      justify-content: space-around;
      gap: 20px;
      font-size: 1rem;
      background-color: var(--def-alt-clr);
      color: var(--def-main-clr);
      pointer-events: none;
    }
  
    .metric-achievements .topic-label {
      height: 100%;
      width: 100%;
      display: flex;
      flex-direction: column;
      justify-content: center;
      align-items: center;
      text-align: center;
      color: var(--def-txtinvert-clr);
      overflow-wrap: break-word;
    }
    

    .metric-achievements .metric-container {
      display: flex;
      justify-content: space-evenly;
      flex-wrap: wrap;
      gap: 3rem;
      padding: 2rem;
    }

    .metric-achievements .metric-container .metric {
      height: 100px;
      width: 100px;
    }

    .metric-achievements .metric-container .label {
      font-size: 1rem;
    }
  
  }
  
/* #endregion */

/* #region Reviews */

  .reviews {
    position: relative;
    width: 100%;
    display: flex;
    justify-content: space-evenly;
    flex-direction: row;
    align-items: center;
    gap: 10px;
    align-items: center;
  }

  .reviews-header {
    flex: 1 1 50%;
  }

  .reviews .label {
    margin: 80px 0 0 20px;
    text-align: center;
  }

  .reviews .reviews-container {
    position: relative;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    flex: 1 1 50%;
    margin: 25px;
    padding: 100px;
    border-radius: 10px;
    gap: 20px;
  }

  .reviews-main {
    max-width: 640px;
    min-width: 160px;
    width: 80%;
    height: auto;
    aspect-ratio: 16 / 9;
    box-shadow: 5px 5px 10px var(--def-shadow-clr);
    border-radius: 10px;
    overflow: hidden;
  }

  .reviews-main video {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  .reviews .reviews-container .reviews-sub {
    display: flex;
    flex-direction: row;
    gap: 20px;
    align-items: center;
    justify-content: center;
  }

  .reviews .reviews-container .reviews-sub .next,
  .reviews .reviews-container .reviews-sub .previous {
    width: fit-content;
    background: var(--def-offbg);
    padding: 0.5rem;
    border-radius: 50%;
    aspect-ratio: 1 / 1;
    display: flex;
    justify-content: center;
    align-items: center;
    box-shadow: 0 5px 10px var(--def-shadow-clr);
  }

  .reviews .reviews-container .reviews-sub .review {
    background: var(--def-offbg);
    box-shadow: 0 5px 10px var(--def-shadow-clr);
    color: var(--def-txt-clr);
    border-radius: 15px;
    padding: 20px;
    width: 400px;
  }

  .reviews .reviews-header {
    padding: 5rem;
  }


  @media (max-width: 768px) {

    .reviews {
      flex-direction: column;
    }

    .reviews .reviews-header {
      padding: 25px;
      text-align: center;
    }

    .reviews .reviews-container {
      flex-direction: column;
    }

    .reviews .reviews-container .reviews-sub {
      flex-direction: column;
    }

    .reviews .reviews-container .reviews-sub .review {
      border-radius: 15px;
      padding: 10px;
      width: calc(100vw - 20px);
    }
  }

/* #endregion  */

/* #region Form Section*/

  .formSection-container {
    position: relative;
    height: 100vh;
    width: 100vw;
  }

  .formSection {
    height: calc(100% - 12rem);
    width: calc(100% - 5rem);
    margin: 10rem 2.5rem 2rem;
    padding: 4rem;
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
  }

  .formSection .content {
    width: 50%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: first baseline;
    text-align: left;
  }

  .form-container {
    width: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 4rem;
  }

  .form-validated {
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 2rem;
  }

  @media (max-width: 1000px) {

    .formSection {
      width: 100%;
      margin: 0;
      padding: 0;
      flex-direction: column;
      padding: 4rem 1rem;
    }


  
    .formSection .content,
    .form-container {
      flex: 1;
      width: 100%;
    }

    .formSection .content {
      justify-content: start;
      align-items: center;
      text-align: center;
    }
  }

  @media (max-width: 625px) {

    .formSection-container {
      padding: 0;
      margin: 0;
    }

    .formSection {
      margin: 0;
      padding: 0;
    }

    .form-container {
      padding: 0;
      margin: 0;
    }

    .formSection .content {
      justify-content: center;
    }

    .form-container {
      width: 100%;
    }
    
    .formSection .content,
    .form-container {
      flex: 1;
      width: 100%;
    }

    .formSection .content {
      align-items: center;
      text-align: center;
    }
  }

/* #endregion */
