.header-container {
  width: 100vw;
  background-color: transparent;
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.04);
  position: fixed;
  top: 0;
  z-index: 99999999;
  transition: background-color 0.3s ease, opacity 0.3s ease;
  opacity: 1;

  .nav-container {
    width: 100%;
    max-width: 1000px;
    display: flex;
    flex-direction: row;
    margin: 0 auto;
    color: white;

    .nav-content {
      width: 100%;
      display: flex;
      flex-direction: row;
      justify-content: space-between;
      height: 80px;
      align-items: center;

      .logo-container {
        display: flex;
        width: fit-content;

        a {
          img {
            width: 70px;
            height: 40px;
          }
        }
      }

      .nav-link-list {
        display: flex;
        width: fit-content;
        gap: 16px;
        .nav-link {
          width: fit-content;
          a {
            color: white;
            text-decoration: none;
          }
        }
      }

      .hamburger-menu {
        display: none;
        width: fit-content;
        flex-direction: column;
        gap: 5px;
        cursor: pointer;
      }

      .hamburger-menu .bar {
        width: 25px;
        height: 3px;
        background-color: white;
        border-radius: 5px;
      }
    }
  }

  &.filled {
    background-color: var(--bg-main);
    color: white;

    .nav-container {
      .nav-content {
        .nav-link-list {
          .nav-link {
            a {
              color: var(--black);
            }
          }
        }
      }
    }
  }

  &.fixed {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    background-color: var(--bg-main);
    opacity: 1;
    z-index: 999;

    .nav-container {
      .nav-content {
        .nav-link-list {
          .nav-link {
            a {
              color: var(--black);
            }
          }
        }
      }
    }
  }
}

.mobile-menu {
  display: none;
  width: 100vw;
  height: 100vh;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 9999999999999999999;
  flex-direction: column;
  transition: transform 0.3s ease;
  background-color: var(--black);
  color: var(--white);

  .nav-container {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    margin: 0 auto;
    color: white;

    .nav-content {
      width: 100%;
      height: 100%;
      display: flex;
      flex-direction: column;

      .nav-header {
        width: 100%;
        height: 80px;
        padding: 0 24px;
        display: flex;
        justify-content: space-between;
        align-items: center;

        .btn-close {
          width: 24px;
          height: 24px;
          cursor: pointer;
        }
      }

      .logo-container {
        width: fit-content;
        a {
          img {
            width: 56px;
            height: 32px;
          }
        }
      }
    }
  }

  .nav-link-list {
    display: flex;
    flex-direction: column;
    border-top: 1px solid var(--white);

    .nav-link {
      display: flex;
      width: 100%;
      text-align: right;

      .nav-link-content {
        width: 100%;
        padding: 24px;
        border-bottom: 1px solid var(--white);
        color: var(--white);
        font-size: inherit;
        font-size: 20px;
        color: var(--white);
        text-decoration: none;

        &:active {
          background-color: var(--gray-500);
        }
      }
    }
  }
}

.footer-container {
  background-color: black;
  color: var(--white);

  .footer-content {
    display: flex;
    flex-direction: column;
    gap: 24px;
    width: 100%;
    max-width: 1000px;
    margin: 0 auto;
    padding: 48px 0;

    .footer-logo {
      display: flex;

      img {
        height: 40px;
      }
    }

    .footer-info {
      display: flex;
      justify-content: space-between;
      gap: 64px;

      .footer-details {
        display: flex;
        flex-direction: column;
        gap: 24px;
        width: 100%;

        .desc {
          color: var(--gray-100);
          line-height: 150%;
          width: fit-content;
        }

        .detail-wrapper {
          display: flex;
          flex-direction: column;
          gap: 8px;

          .detail-row {
            display: flex;
            width: fit-content;
            flex-direction: row;
            gap: 8px;
            color: var(--white);

            .label {
              font-weight: 700;
              color: var(--gray-100);
            }

            .value {
              font-weight: 400;
              color: var(--gray-100);
            }

            .copywright {
              margin-top: 12px;
              font-weight: 600;
            }
          }
        }
      }

      .footer-right-wrapper {
        display: flex;
        flex-direction: column;
        justify-content: space-between;
        flex-shrink: 0;

        .footer-menu-wrapper {
          display: flex;
          flex-direction: row;
          gap: 8px;

          span,
          a {
            color: var(--white);
            line-height: 150%;
          }

          a:hover {
            color: var(--gray-200);
          }
        }

        .footer-site-wrapper {
          display: flex;
          flex-direction: column;
          gap: 8px;

          .footer-site-row {
            display: flex;
            flex-direction: row;
            gap: 24px;
            align-items: center;

            .footer-site-label {
              /* font-weight: 700; */
              color: var(--white);
            }

            a {
              display: flex;
              align-items: center;
              flex-direction: row;

              gap: 8px;

              span {
                color: var(--white);

                &:hover {
                  color: var(--gray-200);
                }
              }
            }
            span {
              color: var(--white);
            }
            .logo-america {
              width: 32px;
              height: 32px;
            }
            .logo-opicup {
              width: 32px;
              height: 32px;
            }
            .logo-tosup {
              width: 24px;
              height: 24px;
            }
          }
        }
      }
    }
  }
}

.dropdown-menu {
  display: none;
  position: absolute;
  border: 1px solid var(--gray-500);
  border-radius: 4px;
  background-color: white;
  width: 240px;
  overflow: hidden;
  box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.1);
  bottom: 44px;
  right: 0px;
  z-index: 10;

  ul {
    li {
      a {
        width: 100%;
        display: flex;
        justify-content: center;
        padding: 16px 0;
        border-bottom: 1px solid var(--black);
        cursor: pointer;
        user-select: none;
        -webkit-user-drag: none;

        &:hover:active {
          background-color: #efefef;
        }
      }
    }
  }
  &.hidden {
    display: none;
  }
  &:not(.hidden) {
    display: block;
  }
}

@media screen and (max-width: 480px) {
  .header-container {
    padding: 0 24px;
    .nav-container {
      max-width: 100%;
      .nav-content {
        height: 80px;

        .nav-link-list {
          display: none;
          position: absolute;
          top: 60px;
          right: 20px;
          background-color: var(--bg-main);
          padding: 10px;
          border-radius: 5px;
          box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
          flex-direction: column;
          gap: 15px;

          &.active {
            display: flex;
          }
        }

        .hamburger-menu {
          display: flex;
        }

        .logo-container {
          a {
            img {
              width: 56px;
              height: 32px;
            }
          }
        }
      }
    }
  }

  .footer-container {
    .footer-content {
      padding: 48px 24px;

      .footer-logo {
        img {
          width: 56px;
          height: 32px;
        }
      }

      .footer-info {
        flex-direction: column;
        gap: 32px;

        .footer-details {
          .desc {
            font-size: 14px;
          }

          .detail-row {
            flex-direction: column;
            width: 100%;
            font-size: 12px;
            line-height: 150%;
          }
        }

        .footer-right-wrapper {
          gap: 32px;

          .footer-menu-wrapper {
            a,
            span {
              font-size: 14px;
            }
          }

          .footer-site-wrapper {
            gap: 16px;

            .footer-site-row {
              .footer-site-label {
                font-size: 14px;
              }

              a {
                .logo-america {
                  width: 24px;
                  height: 24px;
                }
                .logo-opicup {
                  width: 24px;
                  height: 24px;
                }
                .logo-tosup {
                  width: 18px;
                  height: 18px;
                }
                span {
                  font-size: 14px;
                }
              }
            }
          }
        }
      }
    }
  }
}
