:root {
  --marquee_gap: 5.5rem;
  --marquee_sm_gap: 1.5rem;

  --black: #000;
  --white: #FFF;
  --blue: #009CFF;
  --purple: #C106F6;
  --green: #ADE756;
  --grey: #D9D9D9;
  --red-orange: #FF8442;
  --orange: #FFA600;
  --yellow-orange: #FFC642;

  --max-width: 1575px;
  --side-padding: 2.5rem;
  --sm-side-padding: 1.5rem;
  --gap: 1.5rem;

  --round: 1.5rem;
}

.black_background {
  background: var(--black);

  .h3 {
    white-space: pre-line;
    font-family: montserrat;
    font-optical-sizing: auto;
    font-style: normal;
    font-size: 1.825rem;
    line-height: 1.825rem;
    font-weight: 900;
    text-transform: uppercase;
    margin-top: 0;

    @media (min-width: 768px) {
      font-size: 2.5rem;
      line-height: 2.5rem;
    }
  }

  p, ul {
    font-family: montserrat;
    font-optical-sizing: auto;
    font-style: normal;
    color: #FFF;
    font-size: 1rem;
    font-weight: 500;
    line-height: 30px; /* 166.667% */

    @media (min-width: 768px) {
      font-size: 1.125rem;
    }
  }

}

/* LAYOUT */
.container {
  max-width: var(--max-width);
  margin: 0 auto;
  padding: 0 1.75rem;

  @media (min-width: 768px) {
    padding: 0 4rem;
  }

  @media (min-width: 1024px) {
    /* padding: 0 7.1875rem; */
  }
}

.island_section {
  padding-bottom: var(--sm-side-padding);
    
  @media (min-width: 768px) {
    padding-bottom: var(--side-padding);
  }
}


.homepage_button {
  height: fit-content;
  text-decoration: none;
  display: inline-block;
  color: var(--white);
  font-family: montserrat;
  font-optical-sizing: auto;
  font-style: normal;
  font-size: 0.75rem;
  font-weight: 600;
  line-height: 166.667%; /* 166.667% */
  text-transform: uppercase;
  padding: 0.5rem 1.125rem;
  border: 2px solid var(--color);
  text-align: center;
  transition: background-color .2s cubic-bezier(0.075, 0.82, 0.165, 1);
  width: calc(100% - 40px);
  margin-inline: 20px;
  margin-top: 20px;

  @media (min-width: 768px) {
    font-size: 1.125rem;
    margin-top: 0;
    margin-inline: 0;
    width: auto;
  }

  &.header_button {
    margin-left: 20px;
  }



  &:hover {
    @media (min-width: 768px) {
      cursor: pointer;
      background: var(--color);
      transition: background-color .2s cubic-bezier(0.075, 0.82, 0.165, 1);
    }
  }
}

.wrapper {
  height: 100%;
  width: 100%;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-right: 2rem;
  overflow: hidden;
  padding-top: 2.5rem;
}


.box {
  content: '';
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
  width: 100%;
  object-fit: cover;
  object-position: center;
  width: auto;
  position: relative;
  overflow: hidden;
  margin: 0 calc(var(--marquee_sm_gap) / 2);
  flex: 0 0 35%;
  

  @media (min-width: 768px) {
    margin: 0 calc(var(--marquee_gap) / 2);
    flex: 0 0 auto; 
  }

  &:last-of-type {
    content: '';
    padding-right: var(--marquee_sm_gap);

    @media (min-width: 768px) {
      padding-right: var(--marquee_gap);
    }
  }

  p {
    display: inline-block;
    max-width: fit-content;
    text-align: center;
    text-wrap: balance;
    line-height: 110%;
    margin-bottom: 0;

    span {
      color: var(--red-orange);
    }
  }

}

.simple_hero {
  padding-block: 5rem;
  position: relative;
  height: 100vh;
  width: 100%;
  overflow: hidden;

  &.height_with_banner {
    height: calc(100vh - 112px );
  }

  .hero_image {
    position: absolute;
    z-index: 1;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    height: 100%;
    width: 100%;
    object-fit: cover;
    object-position: top left;
  }

  .text_container {
    display: flex;
    flex-direction: column;
    justify-content: center;
    height: 100%;
    row-gap: 0.8725rem;

    @media screen and (min-width: 768px) {
      row-gap: 1.875rem;
      border: 10px solid red;
    }

    .line_1_container {
      position: relative;
      z-index: 2;
      width: 100%;

      #innovating {
        max-width: 100%;
        margin-left: 0;
        height: fit-content;

        @media (min-width: 1280px) {
          margin-left: calc(100% / 12);
        }
      }
    }
    
    #every_player_experience {
      position: relative;
      z-index: 2;
      width: 100%;
      height: fit-content;

      @media (min-width: 768px) {
        height: 43px;
      }
    }
  }
}

.illuminated_hover {
  padding-top: var(--sm-side-padding);
    
  @media (min-width: 768px) {
    padding-top: var(--side-padding);
  }

  .illuminated_hover_container {
    max-width: var(--max-width);
    margin: 0 auto;
    position: relative;

    .text_container {
      position: relative;
      display: flex;
      flex-direction: column;
      align-items: flex-start;
      justify-content: center;
      width: 100%;
      text-align: center;
      z-index: 10;
      margin: 0 auto 2.5rem auto;
      gap: 1.5rem;
      
      @media (min-width: 768px) {
        flex-direction: row;
      }
      
      @media (min-width: 1024px) {
        margin-bottom: 0;
        position: absolute;
        padding: 0 2.5rem;
        top: 2.5rem;
        left: 0;
        gap: 2.5rem;
      }

      @media (min-width: 1280px) {
        flex-direction: column;
        align-items: center;
      }

      @media (min-width: 1536px) {
        top: 100px;
      }

      img {
          width: 100%;
          height: auto;

          @media (min-width: 768px) {
            width: 50%;
          }

          @media (min-width: 1280px) {
            width: fit-content;
            max-width: fit-content;
          }
        }

      .text_button_container {
        display: flex;
        flex-direction: column;
        align-items: center;
        row-gap: 2.5rem;
        width: 100%;

        @media (min-width: 768px) {
          flex-direction: column;
          align-items: flex-start;
          column-gap: 2.5rem;
        }

        @media (min-width: 1280px) {
          flex-direction: column;
          align-items: center;
        }

        
        p {
          max-width: 622px;
          width: 100%;
          text-align: center;
          text-wrap: balance;
          white-space: unset;
          
          @media (min-width: 768px) {
            text-align: left;
          }
          
          @media (min-width: 1280px) {
            margin-bottom: 1rem;
            text-align: center;
          }
        }
      }
    }

    .image_container {
      border-radius: var(--round);
      overflow: hidden;
      position: relative;
      width: 100%;
      height: 100%;

      .hide {
        opacity: 0;
        transition: opacity 0.2s ease-in-out;
      }
      
      .show {
        opacity: 1;
        transition: opacity 0.2s ease-in-out;
      }
      
      .dim,
      .illuminated_cabinet {
        min-height: 100%;
        min-width: 100%;
        object-fit: cover;
        object-position: center;
        pointer-events: none;
      }
      
      #label_1,
      #label_2,
      #label_3,
      #label_4 {
        font-family: montserrat;
        font-optical-sizing: auto;
        font-style: normal;
        border: 2px solid var(--red-orange);
        color: var(--white);
        padding: 0.75rem 1.125rem;
        width: fit-content;
        overflow: hidden;
        position: absolute;
        z-index: 10;
        text-align: center;
        pointer-events: none;
        bottom: 73%;
        left: 50%;
        transform: translateX(-50%);

        @media (min-width: 640px) {
          max-width: 300px;
          width: fit-content;
        }

        @media (min-width: 768px) {
          max-width: 176px;
        }
        
        
        p {
          color: var(--white);
          text-wrap: balance;
          font-size: 1rem;
          font-weight: 500;
          line-height: 1.875rem; /* 187.5% */
        }
      }
      
      #label_1 {
        @media (min-width: 1024px) {
          bottom: 55.5%;
          left: 7%;
          transform: none;
        }
      }
      
      #label_2 {
        @media (min-width: 1024px) {
          bottom: 55.5%;
          left: 57%;
          transform: none;
        }
      }
      
      #label_3 {
        @media (min-width: 1024px) { 
          bottom: 40%;
          left: 56.5%;
          transform: none;
        }
      }
      
      #label_4 {
        @media (min-width: 1024px) {
          bottom: 55.5%;
          left: 81%;
          transform: none;
        }
      }
      
      
      .dim {
        position: relative;
        z-index: 4;
      }
      
      .cabinet {
        position: absolute;
        width: 100%;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        z-index: 5;
      }

      
      #illuminated_1_region,
      #illuminated_2_region,
      #illuminated_3_region,
      #illuminated_4_region {
        position: absolute;
        pointer-events: all;
        z-index: 100;
        
        &:hover {
          cursor: pointer;
        }
      }
      
      #illuminated_1_region {
        left: 0;
        bottom: 6%;
        height: 47%;
        width: 27%;
      }
      
      #illuminated_2_region {
        left: 27%;
        bottom: 0;
        width: 28%;
        height: 61%;
      }
      
      #illuminated_3_region {
        left: 55%;
        bottom: 12%;
        width: 15.7%;
        height: 26%;
      }
      
      #illuminated_4_region {
        left: 70.7%;
        bottom: 1%;
        width: 29.3%;
        height: 55%;
      }
      
      .asterisk {
        position: absolute;
        bottom: 1.5rem;
        left: 1.5rem;
        max-width: calc(100% - 3rem);
        color: #FFF;
        font-size: 0.75rem;
        font-weight: 500;
        line-height: 1.875px; /* 250% */
        z-index: 7;
      }

      .mobile_scrim {
        display: block;
        position: absolute;
        bottom: 0;
        left: 0;
        right: 0;
        width: 100%;
        height: 7.5rem;
        background: linear-gradient(to top, black, transparent);
        z-index: 6;

        @media (min-width: 1024px) {
          display: none;
        }
      }
    }
  }
}

.slow_zoom_info {
  height: auto;

  @media (min-width: 768px) {
    height: calc(100vh - 2.5rem);
  }
  
  .slow_zoom_container {
    width: 100%;
    height: 100%;

    .slow_zoom_content_container {
      position: relative;
      height: 100%;
      width: 100%;
      overflow: hidden;
      display: flex;
      flex-direction: column;

      @media (min-width: 768px) {
        border-radius: var(--round);
      }

      .images_container {
        position: relative;
        height: fit-content;
        width: 100%;
        order: 2;
        border-radius: 0 0 var(--round) var(--round);
        overflow: hidden;

        @media (min-width: 768px) {
          height: 100%;
          min-height: auto;
          order: 1;
          position: absolute;
          border-radius: 0;
        }

        &:after {
          content: '';
          display: block;
          position: absolute;
          left: 0;
          top: 0;
          right: 0;
          bottom: 0;
          height: 100%;
          width: 100%;
          background: rgba(0,0,0, 0.5);
          z-index: 5;

          @media (min-width: 768px) {
            display: none;
          }
        }

        .image {
          object-fit: cover;
          object-position: center;
          position: absolute;
          left: 0;
          right: 0;
          bottom: 0;
          height: 50%;
          border-radius: var(--round);
          overflow: hidden;
          pointer-events: none;

          @media (min-width: 768px) {
            object-position: center;
            width: 100%;
            height: 100%;
          }

          &.background {
            height: 120vh;
            width: 100%;
            position: relative;
            object-position: center;
            z-index: 1;

            @media(min-width: 768px) {
              height: 100%;
              position: absolute;
            }
          }

          &.lightscape-signature-cabinets {
            object-position: 80%;

            @media (min-width: 768px) {
              object-position: center;
            }
          }


          &.cabinet {
            position: absolute;
            left: 50%;
            transform: translateX(-50%);
            height: 48%;
            bottom: -10%;
            z-index: 21;
            /* max-width: 100%; */

            @media (min-width: 768px) {
              bottom: 0;
              height: 100%;
              z-index: 1;
            }

            &.muso-curve-sshb-cabinets {
              bottom: -30%;
              height: 67%;

              @media (min-width: 768px) {
                bottom: 0;
                height: 100%;
              }
            }

            &.muso-triple-32hb-cabinets {
              bottom: -25%;
              height: 67%;

              @media (min-width: 768px) {
                bottom: 0;
                height: 100%;
              }
            }

            &.halume-cabinets {
              bottom: -20%;
              height: 65%;

              @media (min-width: 768px) {
                bottom: 0;
                height: 100%;
              }
            }
          }

          &.floor {
            z-index: 20;
            display: none;

            @media (min-width: 768px) {
              z-index: 1;
              display: block;
            }
          }
        }
      }

      .content_grid {
        order: 1;
        display: grid;
        grid-template-columns: repeat(12, minmax(0, 1fr));
        width: 100%;
        height: 100%;
        position: relative;
        z-index: 11;

         @media (min-width: 768px) {
            order: 2;
          }

        .content_container {
          position: absolute;
          grid-column: 2 / span 10;
          z-index: 5;
          height: 100%;
          display: flex;
          flex-direction: column;
          justify-content: center;

          @media (min-width: 768px) {
            z-index: 30;
            grid-column: 2 / span 5;
          }

          img {
            max-height: 120px;
            padding-right: 20px;
            height: fit-content;
            object-fit: contain;
            object-position: left;

            @media (min-width: 768px) {
              padding-right: 20%;
            }
          }

          .text_container {

            .subheader {
              color: var(--color);
              margin-top: 1.825rem;
              margin-bottom: 1rem;
              white-space: pre-line;

              @media (min-width: 768px) {
                margin-top: 2.5rem;
                margin-bottom: 1.5rem;
              }
            }
            
            .main_content_container {
              --fade-amount: 10px;
              overflow: hidden;
              position: relative;
              mask-image: linear-gradient(to bottom, transparent, black var(--fade-amount), black calc(100% - var(--fade-amount)), transparent);
              
              .main_content {
                position: relative;
                /* z-index: 6; */

                .content {
                  text-wrap: balance;
                  margin-bottom: 1.5rem;
                  z-index: 10;
                  position: relative;

                  @media (min-width: 768px) {
                    margin-right: 2rem;
                  }
                }
                
                .list {
                  list-style-type: none;
                  list-style-position: inside;
                  
                  ul {
                    color: var(--white);
                    font-size: 1rem;
                    font-weight: 500;
                    line-height: 1.667rem; /* 166.667% */
                    text-wrap: balance;
                    display: flex;
                    margin-bottom: 1.25rem;
                    padding-left: 0;

                    @media (min-width: 768px) {
                      font-size: 1.125rem;
                    }
                    
                    &:last-of-type {
                      margin-bottom: 0;
                    }
                    
                    &:before {
                      content: '';
                      display: block;
                      position: relative;
                      margin-right: 1rem;
                      left: 5px;
                      top: 11px;
                      width: 10px;
                      height: 10px;
                      aspect-ratio: 1;
                      transform: rotate(-45deg);
                      background: var(--color);
                    }
                  }
                }
              }
            }

            .buttons_container {
              margin-top: 48px;
              display: flex;
              column-gap: 1.5rem;

              .homepage_button {
                margin-inline: 0;
                width: 100%;

                @media (min-width: 768px) {
                  width: auto;
                }
              }
            }
          }
        }
              
      }
    }
  }
}

.zoom_image_grid {

  .zoom_image_container {
    position: relative;
    
    .grid_text {
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      z-index: 3;
      width: 18%;
    }
    
    
    .img_container {
      border-radius: var(--round);
      overflow: hidden;
      
      @media (min-width: 768px) {
        
        height: calc(100vh - 5rem);
        display: flex;
        align-items: center;
        justify-content: center;
      }
      
      
      img {
        width: 100%;
        
        @media (min-width: 768px) {
          height: 100%;
          object-fit: cover;
          object-position: center;
        }
      }
    }
      
  }
}