@charset "utf-8";
@layer reset, form;

:root {
  interpolate-size: allow-keywords;
  --header-height: clamp(60rem, calc(100 / var(--container) * 100vw), 100rem);
  --container-narrow: 1280;
  --container-1440: 1440;
  --container: 1612;
  --container-wide: 1762;
  --container-scale: 0.92;
  --container-edge-offset: calc((1 - var(--container-scale)) / 2 * 100vw);
  --primary: #1a509e;
  --secondary: #e87a4a;
  --placeholder-bg: #444444;
  --white: #fff;
  --black: #222;
  --border-color: #ddd; /* components.css 공유 */
  --hover-border-color: #444; /* components.css 공유 */
  --font-pret: "Pretendard Variable", "Pretendard", "Malgun Gothic", "Dotum",
    "Gulim", sans-serif;
  --font-sans: var(--font-pret);
  --site-menu-button-size: 25rem;
  /* 
     * 사이트 공통 이미지 플레이스홀더 변수
     * 
     * - --placeholder-image-bg : 기본 배경색 (이미지 로딩 실패 또는 미설정 시 표시)
     * - --placeholder-image-url : 플레이스홀더 로고 이미지 경로
     * - --placeholder-image-size : 플레이스홀더 로고 크기 (최대 크기 제한 포함)
     *
     * layout.css 에 선언하여 전역에서 동일한 디자인 컨셉 유지 및 관리.
     * 접근성 향상을 위해 이미지가 없을 경우에도 시각적 빈 공간이 없도록 함.
     */
  --placeholder-image-bg: #e0e0e0;
  --placeholder-image-url: url("/assets/images/layouts/placeholder-image.png");
  --placeholder-image-size: min(60%, 200rem);
}

/* #region view transition, scroll behavior */
@media (prefers-reduced-motion: no-preference) {
  /* @view-transition  { navigation: auto; } */
  html {
    scroll-behavior: smooth;
  }
}
/* #endregion view transition, scroll behavior */

.container {
  position: relative;
  margin-inline: auto;
  max-width: calc(var(--container) * 1rem);
  width: calc(var(--container-scale) * 100%);
  &.container--narrow {
    max-width: calc(var(--container-narrow) * 1rem);
  }
  &.container--wide {
    max-width: calc(var(--container-wide) * 1rem);
  }
  &.container--fluid {
    max-width: none;
    width: auto;
  }
  &.container--1440 {
    max-width: calc(var(--container-1440) * 1rem);
  }
}

#header {
  position: absolute;
  inset: 0 0 auto;
  z-index: 10;
  .container {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: var(--header-height);
  }
  .logo {
    justify-self: start;
    position: relative;
    display: inline-block;
  }
  .logo-image {
    display: block;
    max-width: 200px;
    width: clamp(120px, 20vw, 200px);
    height: auto;
  }
  .main-nav {
    .nav-menu-level-1 {
      display: flex;
      gap: 32rem;
    }
    .nav-item-level-1 {
      position: relative;
    }
    .nav-link-level-1 {
      display: flex;
      align-items: center;
      height: var(--header-height);
      padding-inline: clamp(10rem, calc(50.5 / 1920 * 100vw), 50.5rem);
      font: 18px var(--font-sans);
      font-weight: 600;
      line-height: 28px;
      letter-spacing: 0.36px;
    }
    .nav-item-level-1:not(:has(> .nav-menu-level-2)) > .nav-link-level-1 {
      padding-inline-end: 0rem; /* kiri & kanan */
    }
    .nav-item-level-1:has(> .nav-menu-level-2) > .nav-link-level-1 {
      position: relative;
      /* padding-inline-end: 24rem; */
    }
    .nav-item-level-1:has(> .nav-menu-level-2) > .nav-link-level-1::after {
      content: "";
      position: absolute;
      top: 50%;
      right: 24rem;
      width: 8px;
      height: 4px;
      background-color: currentColor; /* warna panah */
      -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 4'%3E%3Cpath d='M4 4L0 0H8L4 4Z'/%3E%3C/svg%3E")
        no-repeat center / 100% 100%;
      mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 4'%3E%3Cpath d='M4 4L0 0H8L4 4Z'/%3E%3C/svg%3E")
        no-repeat center / 100% 100%;
      transform: translateY(-50%);
      transition: transform 0.2s;
      pointer-events: none;
    }
    /* flip saat terbuka (hover/focus/JS) */
    li:has(> .nav-menu-level-2):hover > .nav-link-level-1::after,
    li:has(> .nav-menu-level-2):focus-within > .nav-link-level-1::after,
    .nav-item-level-1.is-open > .nav-link-level-1::after,
    .nav-item-level-1 > .nav-link-level-1[aria-expanded="true"]::after,
    .nav-item-level-1[aria-expanded="true"] > .nav-link-level-1::after {
      transform: translateY(-50%) scaleY(-1); /* panah menghadap atas */
    }
    .nav-menu-level-2 {
      visibility: hidden;
      position: absolute;
      top: 75%;
      left: 50%;
      transform: translateX(-50%);
      min-width: 180px;
      width: max-content;
      background: rgba(255, 255, 255, 1);
      opacity: 0;
      box-shadow: 0 7px 29px 0 rgba(100, 100, 111, 0.2);
    }
    li:hover .nav-menu-level-2 {
      visibility: visible;
      top: 80%;
      opacity: 1;
    }
    .nav-link-level-2 {
      display: block;
      padding: 10rem 14rem;
      color: rgba(0, 0, 0, 0.87);
      font-size: 16rem;
      text-align: center;
    }
    .nav-link-level-2:hover {
      background: linear-gradient(
          0deg,
          var(--Neutral-neutral-200, rgba(0, 0, 0, 0.03)) 0%,
          var(--Neutral-neutral-200, rgba(0, 0, 0, 0.03)) 100%
        ),
        #fff;
      color: rgba(163, 32, 36, 1);
      font-weight: 700;
    }


    @media (prefers-reduced-motion: no-preference) {
      .nav-menu-level-2 {
        transition: 0.3s;
      }
    }
    @media (width < 1024px) {
      & {
        display: none;
      }
    }
  }
  .site-menu-toggle {
    position: relative;
    display: block;
    width: var(--site-menu-button-size);
    aspect-ratio: 1;
    cursor: pointer;
    .bar {
      position: absolute;
      inset: 0;
      margin: auto;
      height: 2px;
      background: currentcolor;
    }
    .bar-1 {
      translate: 0 -8rem;
    }
    .bar-3 {
      translate: 0 8rem;
    }
  }
  @media (min-width: 1024px) {
    .site-menu-toggle {
      display: none;
    }
    #site-menu:popover-open {
      display: none;
    }
  }
  .site-menu {
    --border-color: #eaeaea;
    --padding-block: 15rem;
    --padding-inline: 16rem;
    left: auto;
    z-index: 12;
    max-width: 280rem;
    width: 100%;
    height: 100dvh;
    padding: 0;
    background: #fff;
    border: 0;
    color: #000;
    &::backdrop {
      background: #000;
    }
    .site-menu-header {
      display: grid;
      align-items: center;
      justify-content: flex-end;
      height: var(--header-height);
    }
    .site-menu-close {
      position: relative;
      margin-right: 16rem;
      display: block;
      width: var(--site-menu-button-size);
      aspect-ratio: 1;
      background: 0;
      &::before,
      &::after {
        content: "";
        position: absolute;
        top: 50%;
        left: 0;
        display: block;
        width: 100%;
        height: 2px;
        background: currentcolor;
        transform: translateY(-50%) rotate(45deg);
      }
      &::after {
        transform: translateY(-50%) rotate(-45deg);
      }
    }
    .nav-menu-level-1 {
      & > li {
        border-top: 1px solid var(--border-color);
      }
      & > li:last-child {
        border-bottom: 1px solid var(--border-color);
      }
      .nav-link-level-1 {
        position: relative;
        display: block;
        width: 100%;
        padding: var(--padding-block) 30rem var(--padding-block)
          var(--padding-inline);
        text-align: left;
        font-size: 16rem;
      }
      summary.nav-link-level-1::before {
        content: "";
        position: absolute;
        inset: 0;
        margin: auto 16rem auto auto;
        display: block;
        width: 8rem;
        aspect-ratio: 1;
        border: solid currentcolor;
        border-width: 0 1px 1px 0;
        transform: rotate(45deg) translateY(-75%);
      }
      [open] summary.nav-link-level-1::before {
        scale: 1 -1;
        translate: 0 -50%;
      }
      ::details-content {
        overflow: clip;
        height: 0;
      }
      [open]::details-content {
        height: auto;
      }
      .nav-menu-level-2 {
        background: #f8f8f8;
      }
      .nav-menu-level-2 > li {
        border-top: 1px solid var(--border-color);
      }
      .nav-link-level-2 {
        position: relative;
        display: block;
        padding: var(--padding-block) var(--padding-inline);
        font-size: 14rem;
      }
    }
    @media (prefers-reduced-motion: no-preference) {
      & {
        transition: 0.3s allow-discrete;
        translate: 100%;
      }
      &::backdrop {
        opacity: 0;
        transition: 0.3s allow-discrete;
      }
      &:popover-open {
        translate: 0;
        &::backdrop {
          opacity: 0.6;
        }
        @starting-style {
          translate: 100%;
          &::backdrop {
            opacity: 0;
          }
        }
      }
      .nav-menu-level-1 {
        .nav-link-level-1,
        summary::before,
        ::details-content {
          transition: 0.3s allow-discrete;
        }
        ::details-content {
          overflow: clip;
          height: 0;
        }
        [open]::details-content {
          height: auto;
        }
      }
    }
  }
}

#footer {
  display: flex;
  position: relative;
  z-index: 1;
  background: #fff;
  color: #666;
  padding-block: 30rem 38rem;
  border-top: 1px solid var(--border-color);
}
#footer .footer-grid {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 24rem 48rem;
  align-items: start;
}

/* brand kiri */
#footer .footer-brand {
  display: flex;
  align-items: center;
  gap: 16rem;
}
#footer .footer-brand .brand-img {
  height: 40rem;
  width: auto;
  display: block;
}
#footer .footer-brand .brand-divider {
  display: inline-block;
  width: 1px;
  height: 26rem;
  background: #cfcfcf;
}

#footer address {
  font-style: normal;
}
#footer .site-info-list {
  display: flex;
  flex-wrap: wrap;
  gap: 12rem 28rem;
}
#footer .site-info-item {
  position: relative;
  display: inline-flex;
  gap: 10rem;
  align-items: center;
}
#footer .site-info-item + .site-info-item::before {
  content: "";
  position: absolute;
  left: -14rem;
  top: 50%;
  transform: translateY(-50%);
  width: 1px;
  height: 1em;
  background: #d9d9d9;
}
#footer .site-info-item dt {
  font-weight: 600;
  color: rgba(17, 17, 17, 0.54);
}
#footer .site-info-item dd {
  font-weight: 400;
  margin: 0;
  color: rgba(17, 17, 17, 0.54);
}
#footer .copyright {
  margin-top: 20rem;
  color: #999;
}

#footer .terms-nav {
  justify-self: end;
}
#footer .terms-nav .nav-menu {
  display: flex;
  flex-direction: column;
  gap: 16rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
#footer .terms-nav .nav-link {
  text-align: center;
  display: block;
  padding: 14rem 24rem;
  border: 1px solid var(--border-color);
  background: #fff;
  color: #333;
  border-radius: 2px;
  text-decoration: none;
}
#footer .terms-nav .nav-link:hover {
  border-color: rgba(163, 32, 36, 1);
  color: rgba(163, 32, 36, 1);
}

/* responsif */
@media (width < 1024px) {
  #footer .footer-grid {
    grid-template-columns: 1fr;
    gap: 20rem;
  }
  #footer .terms-nav {
    justify-self: start;
  }
  #footer .footer-brand .brand-img {
    height: 28rem;
  }
  #footer .site-info-list {
    display: block;
  }
  #footer .terms-nav .nav-menu {
    flex-direction: row;
  }
  #footer .site-info-item {
    display: block;
    margin-block: 8rem;
  }
  #footer .site-info-item + .site-info-item::before {
    content: none;
  }

  #footer .site-info-item dt,
  #footer .site-info-item dd {
    display: inline;
    font-size: 14rem;
    line-height: 1.6;
  }
  #footer .site-info-item dt::after {
    content: ": ";
  }
  #footer .site-info-item dd + dd::before {
    content: " / ";
  }

  #footer .site-info-item dd {
    margin: 0;
    overflow-wrap: anywhere;
    word-break: break-word;
  }
}

#header {
  background: transparent;
}

html.is-subpage #header {
  background: #fff;
  border-bottom: 1px solid var(--border-color);
}

html:not(.is-subpage) #header .nav-link-level-1 {
  color: #fff;
}

html:not(.is-subpage) .logo .logo-image{
  filter: brightness(0) invert(1) contrast(1.05);
}

html:not(.is-subpage) #header .site-menu-toggle { 
  color:#fff;
}

 @media (max-width: 1024px) {
  html:not(.is-subpage) #header .nav-link-level-1 {
  color: #222;
}
 }

