/* ==========================================================================
   hamburger.css
   ハンバーガーメニュー（スマホ・タブレット用ナビ）専用スタイル
   ========================================================================== */

/* ---- 基本（デスクトップ時は横並びメニューとして表示） ---- */
.nav-links {
  display: flex;
  align-items: center;
}
.nav-links .header_menu {
  display: flex;
  align-items: center;
}

/* JP/EN切替（デスクトップ: メニューの一番右に表示） */
.nav-lang {
  display: flex;
  align-items: center;
  gap: 8px;
  order: 2;
  margin-left: 40px;
}
.lang-btn {
  font-family: 'Poppins', sans-serif;
  font-size: 14px;
  letter-spacing: 0.05em;
  color: #9e9c9c;
  padding: 2px 0;
  border-bottom: 2px solid transparent;
  transition: color 0.2s ease;
}
.lang-btn:hover {
  color: #1a1a1a;
}
.lang-btn.is-active {
  color: #1a1a1a;
  font-weight: 600;
  border-bottom-color: #80BA4A;
}
.nav-lang-sep {
  color: #d0d0d0;
}

/* オーバーレイ・開閉ボタンはデスクトップでは非表示 */
.nav-overlay {
  display: none;
}
.burger {
  display: none;
}

/* ---- 開閉ボタン（画面に固定してスクロールに追随） ---- */
@media screen and (max-width: 1090px) {
  .burger {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    position: fixed;
    top: 16px;
    right: 4%;
    width: 46px;
    height: 46px;
    border: none;
    padding: 0;
    background-color: rgba(255, 255, 255, 0.9);
    border-radius: 50%;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.12);
    cursor: pointer;
    z-index: 1002; /* オーバーレイ・メニューより常に手前 */
    transition: background-color 0.2s ease, transform 0.15s ease;
  }
  .burger:hover {
    transform: scale(1.06);
  }
}

.burger div {
  width: 20px;
  height: 2px;
  background-color: #1a1a1a;
  margin: 3px 0;
  border-radius: 2px;
  transition: transform 0.25s ease, opacity 0.15s ease;
}

/* ハンバーガー → ✕ への変形 */
.toggle .line1 {
  transform: translateY(5px) rotate(45deg);
}
.toggle .line2 {
  opacity: 0;
}
.toggle .line3 {
  transform: translateY(-5px) rotate(-45deg);
}

/* ---- 背景オーバーレイ ---- */
@media screen and (max-width: 1090px) {
  .nav-overlay {
    display: block;
    position: fixed;
    inset: 0;
    background-color: rgba(0, 0, 0, 0.45);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.25s ease;
    z-index: 999;
  }
  .nav-overlay.is-active {
    opacity: 1;
    pointer-events: auto;
  }
}

/* ---- メニュー本体（右からスライドイン） ---- */
@media screen and (max-width: 1090px) {
  html.menu-open,
  body.menu-open {
    overflow: hidden; /* メニュー表示中は背面をスクロールさせない */
  }

  .nav-links {
    position: fixed;
    top: 0;
    right: 0;
    width: min(78%, 320px);
    height: 100vh;
    background-color: #ffffff;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    padding: 100px 32px 40px;
    box-sizing: border-box;
    box-shadow: -6px 0 24px rgba(0, 0, 0, 0.12);
    transform: translateX(100%);
    transition: transform 0.32s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 1000;
    overflow-y: auto;
  }

  .nav-links.nav-active {
    transform: translateX(0%);
  }

  .nav-links .header_menu {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    width: 100%;
  }

  .nav-links .header_menu li {
    margin: 0 0 22px;
    opacity: 0;
  }

  .header_li {
    color: #1a1a1a;
    font-size: 18px;
  }
}

/* ---- JP / EN 切替（モバイル: メニュー最上部に配置） ---- */
@media screen and (max-width: 1090px) {
  .nav-lang {
    order: -1;
    gap: 10px;
    margin-left: 0;
    margin-bottom: 36px;
    padding-bottom: 20px;
    width: 100%;
    border-bottom: 1px solid #eee;
  }
}

/* ---- リンク出現アニメーション（軽量・高速化） ---- */
@keyframes navLinksFade {
  0% {
    opacity: 0;
    transform: translateX(20px);
  }
  100% {
    opacity: 1;
    transform: translateX(0px);
  }
}
