/* ============================================ */
/* Keychron brand portal
/* ============================================ */

/* RESET ---------------------------------- */

#brandportal-keychron * {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  border: none;
}

/* TYPOGRAPHY ---------------------------------- */

#brandportal-keychron h1 {
  font-size: 2rem;
  font-weight: 700;
}

#brandportal-keychron h2 {
  font-size: 1.5rem;
  margin-bottom: 25px;
}

/* SHARED ---------------------------------- */

#brandportal-keychron .kc-link {
  color: #ea404d;
  text-decoration: underline;
  transition: opacity 0.3s ease;
}

#brandportal-keychron .kc-link:hover {
  opacity: 0.75;
}

#brandportal-keychron .kc-btn-6 {
  display: block;
  background-color: #2e3034;
  color: #ffffff;
  text-decoration: none;
  padding: 10px 25px;
  margin-top: 10px;
  font-weight: 600;
  text-align: center;
  transition: filter 0.2s ease;
}

#brandportal-keychron .kc-btn-7 {
  display: block;
  background-color: #f6f5f8;
  color: black;
  text-decoration: none;
  padding: 10px 25px;
  margin-top: 15px;
  font-weight: 600;
  text-align: center;
  transition: filter 0.2s ease;
}

#brandportal-keychron .kc-btn-6:hover,
#brandportal-keychron .kc-btn-7:hover {
  filter: brightness(0.85);
}

/* HERO ---------------------------------- */

#brandportal-keychron .hero {
  object-fit: contain;
  width: 100vw;
}

/* PORTAL NAV ---------------------------------- */

#brandportal-keychron .navBar,
#brandportal-keychron .navBar .navItem,
#brandportal-keychron .navBar .navItem .navDropdownButton {
  background-color: #2e3034;
  color: white;
  font-size: 16px;
  overflow: hidden;
}

#brandportal-keychron .navBar .navItem {
  float: left;
  text-align: center;
  text-decoration: none;
  transition: background-color 0.3s;
}

#brandportal-keychron .navBar .navItem:hover,
#brandportal-keychron .navBar .navItem:hover .navDropdownButton,
#brandportal-keychron .navBar .navActive .navDropdownButton {
  background-color: white;
  color: black;
}

#brandportal-keychron .navBar .navDropdownButton {
  outline: none;
  color: #7d7d7d;
  background-color: inherit;
  font-family: inherit;
  width: 100%;
  transition: background-color 0.3s;
}

#brandportal-keychron .navBar .navDropdownContent {
  display: none;
  position: absolute;
  background-color: #f89828;
  min-width: 160px;
  box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2);
  z-index: 2;
}

#brandportal-keychron .navBar .navDropdownContent a {
  background-color: white;
  color: #7d7d7d;
  float: none;
  padding: 15px;
  text-decoration: none;
  display: block;
  text-align: left;
  transition: background-color 0.3s;
}

#brandportal-keychron .navBar .navDropdownContent a:hover {
  background-color: #0d77fe;
  color: white;
}

#brandportal-keychron .navBar .navIcon {
  display: none;
}

#brandportal-keychron .navBar .navDropdown.navActive .navDropdownContent {
  display: block;
}

@media screen and (max-width: 767px) {
  #brandportal-keychron .navBar .navItem:not(:first-child):not(:last-child),
  #brandportal-keychron .navBar .navDropdownButton {
    display: none;
  }

  #brandportal-keychron .navBar .navItem {
    padding: 15px;
  }

  #brandportal-keychron .navBar.navMenuOpen {
    position: relative;
  }

  #brandportal-keychron .navBar .navIcon {
    float: right;
    display: block;
  }

  #brandportal-keychron .navBar.navMenuOpen .navIcon {
    position: absolute;
    right: 0;
    top: 0;
  }

  #brandportal-keychron .navBar.navMenuOpen .navItem,
  #brandportal-keychron .navBar.navMenuOpen .navDropdownButton {
    float: none;
    display: block !important;
    text-align: left;
  }

  #brandportal-keychron .navBar.navMenuOpen .navDropdown {
    float: none;
  }

  #brandportal-keychron .navBar.navMenuOpen .navDropdownButton {
    display: block;
    width: 100%;
    text-align: left;
    padding: 0;
  }

  #brandportal-keychron .navBar.navMenuOpen .navDropdownContent {
    position: relative;
    margin-top: 15px;
  }
}

@media screen and (min-width: 767px) {
  #brandportal-keychron .navBar .navCurrentPage {
    background-color: #ea404d;
    pointer-events: none;
  }

  #brandportal-keychron .navBar a {
    display: flex;
    justify-content: center;
    align-items: center;
  }

  #brandportal-keychron .navBar .navDropdown a {
    justify-content: start;
  }

  #brandportal-keychron .navBar .navDropdownButton {
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 0;
  }

  #brandportal-keychron .navBar .navIcon {
    display: none !important;
  }

  #brandportal-keychron .navBar .navDropdownContent a {
    padding: 15px !important;
  }
}

@media screen and (min-width: 767px) and (max-width: 1300px) {
  #brandportal-keychron .navBar {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    grid-auto-rows: 54px;
    grid-gap: 2px;
    background-color: #f6f5f8;
  }
}

@media screen and (min-width: 1300px) {
  #brandportal-keychron .navBar {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    grid-auto-rows: 54px;
    grid-gap: 2px;
    background-color: #f6f5f8;
  }

  #brandportal-keychron .navBar .navDropdownContent a {
    min-width: 184px;
  }
}

/* INTRO ---------------------------------- */

#brandportal-keychron .intro {
  background-color: #f6f5f8;
  padding: 50px;
}

@media (max-width: 576px) {
  #brandportal-keychron .intro {
    padding: 40px 20px !important;
  }
}

/* KEYBOARDS ---------------------------------- */

#brandportal-keychron .section-1 {
  text-align: center;
}

#brandportal-keychron .left-side-1 {
  text-align: right;
  padding: 75px;
  background-color: #2e3034;
  color: white;
}

#brandportal-keychron .right-side-1 {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

@media (max-width: 768px) {
  #brandportal-keychron .left-side-1 {
    text-align: left;
    align-items: flex-start !important;
  }

  #brandportal-keychron .left-side-1 h2 {
    text-align: left !important;
  }
}

@media (max-width: 576px) {
  #brandportal-keychron .left-side-1 {
    padding: 50px 30px;
  }
}

/* NUMPADS ---------------------------------- */

/* .left-side-2 is shared with HOT-SWAPPABLE */

#brandportal-keychron .section-5 {
  text-align: center;
}

#brandportal-keychron .left-side-2 {
  text-align: left;
  padding: 75px;
  background-color: #ea404d;
  color: white;
}

#brandportal-keychron .right-side-5 {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

@media (max-width: 576px) {
  #brandportal-keychron .left-side-2 {
    padding: 50px 30px;
  }
}

/* SWITCHES ---------------------------------- */

/* .left-side-3 is shared with PREMIUM */

#brandportal-keychron .section-7 {
  text-align: center;
}

#brandportal-keychron .left-side-3 {
  text-align: right;
  padding: 75px;
  background-color: white;
  color: black;
  border-left: 3px solid #f6f5f8;
}

#brandportal-keychron .right-side-6 {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

@media (max-width: 768px) {
  #brandportal-keychron .left-side-3 {
    text-align: left;
    align-items: flex-start !important;
  }

  #brandportal-keychron .left-side-3 h2 {
    text-align: left !important;
  }
}

@media (max-width: 576px) {
  #brandportal-keychron .left-side-3 {
    padding: 50px 30px;
  }
}

/* RGB ---------------------------------- */

#brandportal-keychron .section-4 {
  background-color: #f6f5f8;
  padding-top: 100px;
  padding-bottom: 100px;
}

#brandportal-keychron .image-container {
  display: flex;
  justify-content: center;
  align-items: center;
}

#brandportal-keychron .spotlight-4 {
  --x: 50%;
  --y: 50%;
  mask-image: radial-gradient(
    circle 60px at var(--x) var(--y),
    black 99%,
    transparent 100%
  );
  -webkit-mask-image: radial-gradient(
    circle 100px at var(--x) var(--y),
    black 99%,
    transparent 100%
  );
  mask-repeat: no-repeat;
  -webkit-mask-repeat: no-repeat;
}

@media (max-width: 768px) {
  #brandportal-keychron .spotlight-4 {
    mask-image: radial-gradient(
      circle 30px at var(--x) var(--y),
      black 99%,
      transparent 100%
    );
    -webkit-mask-image: radial-gradient(
      circle 50px at var(--x) var(--y),
      black 99%,
      transparent 100%
    );
  }
}

@media (max-width: 576px) {
  #brandportal-keychron .section-4 {
    padding-top: 60px;
    padding-bottom: 60px;
  }

  #brandportal-keychron .image-container {
    width: 85% !important;
  }
}

/* HOT-SWAPPABLE ---------------------------------- */

#brandportal-keychron .section-2 {
  text-align: center;
}

#brandportal-keychron .right-side-2 {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* PREMIUM ---------------------------------- */

#brandportal-keychron .section-3 {
  text-align: center;
}

#brandportal-keychron .right-side-3 {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* FAQ ---------------------------------- */

#brandportal-keychron .faq {
  background-color: #f6f5f8;
  padding: 25px;
}

#brandportal-keychron .faq h2 {
  margin-bottom: 30px;
  text-align: center;
}

#brandportal-keychron .faq-item {
  background-color: #ffffff;
  border-top: 2px solid #ea404d;
}

#brandportal-keychron .faq-col {
  background-color: #ffffff;
  border-radius: 4px;
  overflow: hidden;
}

#brandportal-keychron .faq-col .faq-item:first-child {
  border-top: none;
}

#brandportal-keychron .faq-question {
  padding: 18px 20px;
  cursor: pointer;
  list-style: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  color: #2e3034;
}

#brandportal-keychron .faq-question::-webkit-details-marker {
  display: none;
}

#brandportal-keychron .faq-question::after {
  content: "+";
  font-size: 22px;
  color: #ea404d;
  font-weight: 700;
  flex-shrink: 0;
  margin-left: 20px;
}

#brandportal-keychron .faq-item[open] .faq-question::after {
  content: "−";
}

#brandportal-keychron .faq-question h3 {
  font-size: 16px;
  font-weight: 500;
  color: #2e3034;
}

#brandportal-keychron .faq-answer {
  display: none;
  padding: 0 20px 18px;
}

#brandportal-keychron .faq-item[open] .faq-answer {
  display: block;
}

#brandportal-keychron .faq-answer p {
  line-height: 1.6;
  color: #7d7d7d;
}

@media (max-width: 767px) {
  #brandportal-keychron .faq-col:not(:first-child) .faq-item:first-child {
    border-top: 2px solid #ea404d;
  }
}

@media (min-width: 768px) {
  #brandportal-keychron .faq {
    padding: 50px;
  }

  #brandportal-keychron .faq-list {
    display: flex;
    align-items: flex-start;
    gap: 20px;
  }

  #brandportal-keychron .faq-col {
    flex: 1;
  }
}

/* BUILD ---------------------------------- */

#brandportal-keychron .section-8 {
  background-color: #f6f5f8;
  padding-top: 100px;
  padding-bottom: 0;
}

@media (max-width: 576px) {
  #brandportal-keychron .section-8 {
    padding-top: 60px;
  }
}
