/* ══════════════════════════════════════
   MOBILE MENU — 共通コンポーネント
   全ページで統一されたハンバーガーメニュー
══════════════════════════════════════ */

/* ── HAMBURGER BUTTON ── */
.nav-hamburger{
  display:none;
  flex-direction:column;justify-content:center;align-items:center;
  width:44px;height:44px;gap:5px;
  background:none;border:none;cursor:pointer;z-index:500;
}
@media(max-width:1024px){
  .nav-hamburger{display:flex;}
}
.nav-hamburger span{
  display:block;width:22px;height:1.5px;
  background:#fff;
  transition:transform .35s cubic-bezier(.16,1,.3,1),opacity .2s,background .4s;
  transform-origin:center;
}
nav.solid .nav-hamburger span{background:var(--ink);}
.nav-hamburger.open span:nth-child(1){transform:translateY(6.5px) rotate(45deg);}
.nav-hamburger.open span:nth-child(2){opacity:0;transform:scaleX(0);}
.nav-hamburger.open span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg);}
.nav-hamburger.open span{background:#fff!important;}

/* ── MOBILE MENU OVERLAY ── */
.mobile-menu{
  position:fixed;inset:0;z-index:450;
  background:#0a0a0a;
  display:flex;flex-direction:column;
  transform:translateX(100%);
  transition:transform .45s cubic-bezier(.16,1,.3,1);
  overflow-y:auto;
}
.mobile-menu.open{transform:translateX(0);}
.mobile-menu-inner{
  display:flex;flex-direction:column;
  padding:80px 2rem 3rem;
  min-height:100%;
  position:relative;
}

/* ── CLOSE BUTTON ── */
.mm-close{
  position:absolute;top:1.2rem;right:1.2rem;
  width:44px;height:44px;
  background:none;border:none;cursor:pointer;
  font-size:1.8rem;line-height:1;
  color:#fff;opacity:.6;
  display:flex;align-items:center;justify-content:center;
  transition:opacity .2s;
}
.mm-close:hover{opacity:1;}

/* ── NAV LIST ── */
.mobile-menu-nav{
  list-style:none;
  border-top:1px solid rgba(255,255,255,.08);
  margin-bottom:2rem;
}
.mobile-menu-nav li{
  border-bottom:1px solid rgba(255,255,255,.08);
}
.mobile-menu-nav li a{
  display:flex;align-items:center;justify-content:space-between;
  padding:1.1rem 0;
  font-family:var(--ff);font-size:.95rem;font-weight:700;
  letter-spacing:.1em;color:#fff;text-decoration:none;
  transition:color .2s;
}
.mobile-menu-nav li a:hover{color:rgba(255,255,255,.5);}
.mobile-menu-nav li a .mm-arrow{
  font-size:.7rem;color:rgba(255,255,255,.3);
  transition:transform .2s;
}
.mobile-menu-nav li a:hover .mm-arrow{transform:translateX(4px);}

/* ── SUB MENU ── */
.mobile-menu-sub{
  list-style:none;padding:.5rem 0 1rem 1rem;
  display:none;
}
.mobile-menu-sub.open{display:block;}
.mobile-menu-sub li a{
  display:block;padding:.5rem 0;
  font-size:.75rem;font-weight:400;
  color:rgba(255,255,255,.5);text-decoration:none;
  letter-spacing:.05em;
  transition:color .2s;
}
.mobile-menu-sub li a:hover{color:#fff;}

/* ── CTA BUTTONS ── */
.mobile-menu-cta{
  margin-top:auto;
  display:flex;flex-direction:column;gap:.8rem;
}
.mobile-menu-cta a{
  display:block;text-align:center;
  font-family:var(--ff);font-size:.75rem;font-weight:700;
  letter-spacing:.1em;padding:.9rem;text-decoration:none;
  transition:background .2s,color .2s;
}
.mm-cta-primary{
  background:var(--blue);color:#fff;
}
.mm-cta-primary:hover{background:var(--blue2);}
.mm-cta-secondary{
  background:transparent;color:rgba(255,255,255,.6);
  border:1px solid rgba(255,255,255,.15);
}
.mm-cta-secondary:hover{border-color:rgba(255,255,255,.4);color:#fff;}

/* ── SOCIALS ── */
.mobile-menu-socials{
  display:flex;gap:1rem;margin-top:1.5rem;
  padding-top:1.5rem;
  border-top:1px solid rgba(255,255,255,.08);
}
.mobile-menu-socials a{
  width:36px;height:36px;
  background:rgba(255,255,255,.08);
  display:flex;align-items:center;justify-content:center;
  text-decoration:none;
  transition:background .2s;
}
.mobile-menu-socials a:hover{background:var(--blue);}
.mobile-menu-socials svg{width:14px;height:14px;fill:#fff;}
