/* content width */
.content-wrap {
  margin: 0 auto;
  max-width: 1440px;
  width: 100%;
  padding: 20px;
}

/* Notice bar */
#notice-bar {
  position: fixed;
  z-index: 9;
  bottom: 0;
  left: 0;
  right: 0;
  background-color: #000;
  color: #fff;
  line-height: 1.3;
  @media (min-width: 809px) {
    position: relative;
  }

  .content-wrap {
    padding-top: 50px;
    @media (min-width: 809px) {
      padding-top: 20px;
      padding-left: 80px;
      padding-right: 80px;
      display: flex;
      align-items: center;
      justify-content: space-between;
      height: 105px;
    }
  }

  .text-group {
    @media (min-width: 809px) {
      display: flex;
      flex-direction: column;
    }
    @media (min-width: 1200px) {
      align-items: center;
      flex-direction: row;
      gap: 30px;
    }

    .date-location {
      @media (min-width: 809px) {
        display: flex;
        align-items: center;
        gap: 30px;
      }
    }

    .title {
      font-size: 20px;
      font-weight: 500;
    }

    .date,
    .location {
      color: rgba(255, 255, 255, 0.6);
      font-size: 16px;
    }
    .date {
      margin: 15px 0 0;
      @media (min-width: 809px) {
        margin-top: 0;
      }
    }
    .location {
      margin: 0 0 30px;
      @media (min-width: 809px) {
        margin-bottom: 0;
      }
    }
  }

  .link {
    margin-left: auto;
    a {
      display: flex;
      align-items: center;
      justify-content: center;
      width: 147px;
      height: 41px;
      background: linear-gradient(100deg, #6c7bff 0%, #b58582 100%);
      border-radius: 20px;
      font-size: 16px;
      font-weight: 500;
      color: #fff;
    }
  }

  button {
    position: absolute;
    top: 20px;
    right: 34px;
    background: transparent;
    border: 0 none;
  }
}

/* Header */
#header {
  position: sticky;
  top: 0;
  left: 0;
  right: 0;
  z-index: 9;
  width: auto;
  background: #fff;
  margin-bottom: -64px;
}

#header .content-wrap {
  display: flex;
  align-items: center;
  padding-top: 0;
  padding-bottom: 0;
  height: 64px;
}

#header .logo {
  display: inline-block;
  vertical-align: middle;
}

#header .logo img {
  width: 156px;
  height: 20px;
  vertical-align: middle;
}

#gnb {
  margin-left: auto;
  position: relative;
  @media (min-width: 809px) {
    margin: 0 auto;
  }

  body:has(&.open) {
    overflow-y: hidden;
    @media (min-width: 809px) {
      overflow-y: auto;
    }
  }

  .toggle {
    border: 0 none;
    background: transparent;
    width: 40px;
    height: 40px;
    padding: 5px;
    @media (min-width: 809px) {
      display: none;
    }

    svg {
      width: 23px;
      height: 23px;
    }

    line {
      stroke: #000;
      stroke-width: 2;
      stroke-linecap: round;
      transition: transform var(--spring), opacity var(--spring);
      transform-origin: center;
    }

    #gnb.open & {
      .top {
        transform: translate(-5.5px, 5.5px) rotate(45deg);
      }

      .middle {
        opacity: 0;
      }

      .bottom {
        transform: translate(-5.5px, -5.5px) rotate(-45deg);
      }
    }
  }

  & > ul {
    display: none;
    position: fixed;
    top: 64px;
    left: 0;
    right: 0;
    margin: 0;
    padding: 0;
    list-style: none;
    height: calc(100dvh - 64px);
    overflow: auto;
    background-color: #fff;
    @media (min-width: 809px) {
      display: flex;
      position: static;
      height: auto;
      overflow: visible;
    }

    #gnb.open & {
      display: block;
      @media (min-width: 809px) {
        display: flex;
      }
    }
  }

  a {
    color: #000;
  }
  a[target="_blank"]:after {
    content: " ↗︎";
    font-weight: 300;
  }

  ul > li > button {
    display: inline-flex;
    justify-content: space-between;
    padding: 16px;
    width: 100%;
    height: 64px;
    line-height: 32px;
    background-color: transparent;
    border: 0 none;
    font-size: inherit;
    cursor: default;
    text-align: left;
    @media (min-width: 809px) {
      width: auto;
      text-align: center;
    }

    &:after {
      content: " ";
      width: 30px;
      height: 30px;
      background: url('data:image/svg+xml,<svg display="block" role="presentation" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" id="3271978817"><path d="M 6.5 0 L 3.25 3.5 L 0 0" fill="transparent" height="3.5px" id="yjbKDum4P" stroke-dasharray="" stroke-linecap="round" stroke-linejoin="round" stroke-width="var(--1335ju, 1.5)" stroke="var(--18mrqx2, rgb(0, 0, 0))" transform="translate(8.75 10.75)" width="6.5px"></path></svg>')
        no-repeat 50% 50%;
      transition: transform var(--spring);
      @media (min-width: 809px) {
        display: none;
      }
    }
    li.open &:after {
      transform: rotate(180deg);
    }
  }

  .submenu {
    margin-left: 16px;
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows var(--spring);
    @media (min-width: 809px) {
      position: absolute;
      display: block; /* Safari */
      width: min-content;
      height: min-content;
      top: 64px;
      left: 50%;
      width: 650px;
      margin-left: 0;
      padding: 24px 64px;
      transform: translateX(-50%);
      background: #fff;
      border-radius: 0 0 24px 24px;
      box-shadow: rgba(0, 0, 0, 0.05) 0px 10px 20px 0px;
      visibility: hidden;
      opacity: 0;
      transition: visibility var(--transition), opacity var(--transition);
      transition-duration: 0.15s;
      #gnb li:nth-child(1) & {
        width: 792px;
      }
    }
    li.open & {
      grid-template-rows: 1fr;
      @media (min-width: 809px) {
        visibility: visible;
        opacity: 1;
        transition-duration: 0.4s;
      }
    }

    .wrap {
      overflow: hidden;
      @media (min-width: 809px) {
        display: flex;
      }
    }

    .wrap > a {
      display: block;
      margin-right: 16px;
      padding: 12px 16px;
      border-radius: 12px;
      background-color: #fff;
      transition: background-color var(--spring);
      line-height: 20px;
      @media (min-width: 809px) {
        width: 320px;
        margin-right: 0;
        padding: 0;
      }
      &:hover {
        background-color: rgb(240, 240, 244);
        @media (min-width: 809px) {
          background-color: inherit;
        }
      }

      p {
        margin: 0;
      }

      .title {
        margin-bottom: 8px;
        span {
          display: none;
          @media (min-width: 809px) {
            display: inline;
          }
        }

        span + span {
          display: inline;
          @media (min-width: 809px) {
            display: none;
          }
        }
      }

      @media (min-width: 809px) {
        .title:after {
          content: "→";
          margin-left: 8px;
          font-weight: 300;
          transition: margin-left var(--spring);
        }
        &:hover .title:after,
        &:focus .title:after {
          margin-left: 20px;
        }
      }

      .image {
        display: none;
        @media (min-width: 809px) {
          display: block;
          width: 320px;
          height: 200px;
          border-radius: 12px;
          overflow: hidden;
          margin: 16px 0;
        }

        img {
          width: 100%;
          height: 100%;
          object-fit: cover;
          transition: transform var(--spring);
        }
        a:hover & img {
          transform: scale(1.1);
        }
      }

      .text {
        display: none;
        @media (min-width: 809px) {
          display: block;
          color: rgb(141, 141, 165);
          font-size: 14px;
          font-weight: 300;
        }
      }
    }

    .group {
      @media (min-width: 809px) {
        width: 142px;
        margin-left: 60px;
      }

      .group-name {
        display: none;
        @media (min-width: 809px) {
          display: block;
          color: rgb(141, 141, 165);
          margin: 0 0 8px;
          padding: 0 16px;
        }
      }

      ul {
        margin: 0;
        padding: 0 16px 0 0;
        list-style: none;
        @media (min-width: 809px) {
          padding-right: 0;
        }
      }

      a {
        display: inline-block;
        vertical-align: middle;
        width: 100%;
        line-height: 20px;
        padding: 12px 16px;
        border-radius: 12px;
        background-color: #fff;
        transition: background-color var(--spring);
      }
      a:hover,
      a:focus {
        background-color: rgb(240, 240, 244);
      }
    }
  }
}

#header .contact {
  display: none;
  margin-left: 20px;
  border: 1px solid var(--key-color);
  border-radius: 19px;
  color: var(--key-color);
  padding: 5px 40px;
  background-color: #fff;
  @media (min-width: 809px) {
    display: block;
  }
}

/* Footer */
#bottom-nav {
  background: #000;
  color: #fff;
  border-top: 1px solid var(--border-color);
}
#footer {
  background: #000;
  color: #fff;
}
#bottom-nav a,
#footer a {
  color: #fff;
}

#bottom-nav .content-wrap {
  padding-top: 40px;
  padding-bottom: 40px;
}
@media (min-width: 809px) {
  #bottom-nav .content-wrap {
    padding-top: 80px;
    display: flex;
    justify-content: space-between;
  }
}

#bottom-nav .newsletter {
  width: 300px;
}

#bottom-nav .newsletter img {
  width: 211px;
}

#bottom-nav .newsletter p {
  margin: 16px 0 24px;
}

#bottom-nav .newsletter button {
  background-color: rgb(84, 101, 228);
  border: 0 none;
  width: 100px;
  height: 40px;
  color: #fff;
  border-radius: 10px;
  transition: background-color var(--spring);
  font-size: 12px;
  font-weight: 700;
}
#bottom-nav .newsletter button:hover {
  background-color: rgba(84, 101, 228, 0.85);
}

#bottom-nav .nav {
  margin: 0 5px 0 0;
  padding: 0;
  list-style: none;
}
@media (min-width: 809px) {
  #bottom-nav .nav {
    display: flex;
    gap: 20px;
    flex-wrap: wrap;
    width: 440px;
  }
}
@media (min-width: 1250px) {
  #bottom-nav .nav {
    flex-wrap: no-wrap;
    width: auto;
  }
}

#bottom-nav .nav li {
  width: 210px;
}

#bottom-nav .nav ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

#bottom-nav .nav > li {
  margin-top: 50px;
  font-size: 17px;
  color: #8d8da5;
}
@media (min-width: 809px) {
  #bottom-nav .nav > li {
    margin-top: 0;
  }
}

#bottom-nav .nav a[target="_blank"]:after {
  content: " ↗︎";
  font-weight: 300;
}

#bottom-nav .nav > li > ul {
  margin-top: 20px;
}

#bottom-nav .nav ul li {
  margin: 12px 0;
  font-size: 14px;
}
@media (min-width: 809px) {
  #bottom-nav .nav ul li {
    font-size: 16px;
  }
}

#bottom-nav .external {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  margin: 20px 0 0;
  padding: 0;
  list-style: none;
}

#bottom-nav .external a {
  display: inline-block;
  vertical-align: middle;
  width: 40px;
  height: 40px;
  overflow: hidden;
  text-indent: -99em;
}

#bottom-nav .external a[href^="https://www.youtube.com"]
{
  background: url(/images/layout/youtube-bw.svg) no-repeat 50% 50% / 20px 15px;
}

#bottom-nav .external a[href^="https://www.linkedin.com"]
{
  background-color: #0c0;
  margin-left: 4px;
  background: url(/images/layout/linkedin-bw.svg) no-repeat 50% 50% / 16px 16px;
}

#footer .content-wrap {
  color: #fff;
  border: none;
}
@media (min-width: 809px) {
  #footer .content-wrap {
    display: flex;
    align-items: center;
  }
}

#footer .copyright-privacy {
  display: flex;
  align-items: center;
}

#footer .copyright {
  margin: 16.5px 0;
}

#footer .privacy {
  margin: 16.5px 0 16.5px 27px;
}

#footer .certifications {
  margin: 0 0 0 auto;
  padding: 0;
  list-style: none;
  display: flex;
  opacity: 0.5;
  gap: 10px;
}

#footer .certifications li {
  display: flex;
  align-items: center;
}
#footer .certifications li:nth-child(3) {
  margin: -6px -8px 0 -15px;
}

#footer .certifications img {
  height: 40px;
}
#footer .certifications li:nth-child(1) img {
  height: 44px;
}
#footer .certifications li:nth-child(4) img {
  height: 32px;
}

#footer .lang {
  margin: 20px 0 0 auto;
  padding: 0;
  list-style: none;
  display: flex;
  gap: 24px;
}
@media (min-width: 809px) {
  #footer .lang {
    margin-top: 0;
  }
}

#footer .lang a {
  opacity: 0.7;
}
#footer .lang a.current {
  opacity: 1;
}

/* newsletter dialog */
body:has(dialog[open]) {
  overflow-y: hidden;
}

dialog.newsletter {
  border: 0 none;
  border-radius: 24px;
  padding: 24px 32px 12px;
  text-align: center;
}
dialog.newsletter::backdrop {
  background: rgba(0, 0, 0, 0.6);
}

dialog.newsletter > img {
  display: block;
  margin: 0 auto 20px;
}
dialog.newsletter > img + img {
  margin-bottom: 12px;
}

dialog.newsletter h2 {
  margin: 0 0 0;
  font-size: 20px;
  font-weight: 500;
  color: #6a77d7;
}

dialog.newsletter button {
  position: absolute;
  top: 15px;
  right: 10px;
  background: transparent;
  border: 0 none;
  padding: 10px;
  width: 40px;
  height: 40px;
  display: inline-block;
}

dialog.newsletter button img {
  width: 20px;
  height: 20px;
}
