@charset "UTF-8";
/* ©SCHNEID
Kazumi Nishibayashi */
/* ------------------------------
	メニュー（共通ナビゲーション）
------------------------------ */
/* Menu Toggle Button (Circle) */
.menu-toggle {
 position: fixed;
 top: 30px;
 right: 30px;
 width: 100px;
 height: 100px;
 background: var(--primary-color);
 border: none;
 border-radius: 50% !important; /* Circular */
 display: flex;
 justify-content: center;
 align-items: center;
 cursor: pointer;
 z-index: 2000;
 transform: scale(0);
 opacity: 0;
 transition: var(--transition-slow);
 box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2);
}
.menu-toggle.visible {
 transform: scale(1);
 opacity: 1;
}
.menu-toggle-inner {
 width: 80px;
 height: 80px;
 border-radius: 50% !important;
 display: flex;
 justify-content: center;
 align-items: center;
}
.menu-toggle-text {
 color: #fff;
 font-family: var(--font-heading);
 font-weight: 700;
 font-size: clamp(1.5rem, 2vw, 2rem);
}
.menu-toggle.is-active {
 background: #fff;
}
.menu-toggle.is-active .menu-toggle-inner {
 border-color: var(--primary-color);
}
.menu-toggle.is-active .menu-toggle-text {
 color: var(--primary-color);
}
.menu-toggle:hover {
 transform: scale(1.1);
}
/* Navigation Mask (Semi-transparent black) */
.nav-mask {
 position: fixed;
 top: 0;
 left: 0;
 width: 100%;
 height: 100%;
 background: rgba(0, 0, 0, 0.7);
 z-index: 1400;
 opacity: 0;
 pointer-events: none;
 transition: var(--transition-slow);
}
.nav-mask.active {
 opacity: 1;
 pointer-events: auto;
}
/* Navigation Overlay */
.nav-overlay {
 position: fixed;
 top: 0;
 right: 0;
 width: 600px;
 height: 100%;
 background: var(--primary-color);
 z-index: 1500;
 display: flex;
 flex-direction: column;
 justify-content: flex-start;
 padding: 120px 0 80px 100px;
 overflow-y: auto;
 -webkit-overflow-scrolling: touch;
 clip-path: inset(0 0 0 100%); /* Curtain effect from right */
 transition: clip-path 0.8s cubic-bezier(0.77, 0, 0.175, 1);
}
.nav-overlay.open {
 clip-path: inset(0 0 0 0);
}
.nav-links {
 text-align: left;
}
.nav-links li {
 margin: 20px 0;
 opacity: 0;
 transform: translateY(30px);
 transition: opacity 0.5s cubic-bezier(0.23, 1, 0.32, 1), transform 0.5s cubic-bezier(0.23, 1, 0.32, 1);
}
.nav-overlay.open .nav-links li {
 opacity: 1;
 transform: translateY(0);
}
.nav-overlay.open .nav-links li:nth-child(1) {
 transition-delay: 0.25s;
}
.nav-overlay.open .nav-links li:nth-child(2) {
 transition-delay: 0.35s;
}
.nav-overlay.open .nav-links li:nth-child(3) {
 transition-delay: 0.45s;
}
.nav-overlay.open .nav-links li:nth-child(4) {
 transition-delay: 0.55s;
}
.nav-overlay.open .nav-links li:nth-child(5) {
 transition-delay: 0.65s;
}
.nav-overlay.open .nav-links li:nth-child(6) {
 transition-delay: 0.75s;
}
.nav-overlay.open .nav-links li:nth-child(7) {
 transition-delay: 0.85s;
}
.nav-links a {
 color: #fff;
 font-family: var(--font-heading);
 font-size: 6rem;
 line-height: 1.1em;
 font-weight: 700;
 text-transform: uppercase;
 display: block;
 transition: opacity 0.3s ease;
}
.nav-links a:hover, .sns-icons-menu a:hover {
 opacity: 0.6;
}
.sns-icons-menu {
 margin-top: 60px;
 opacity: 0;
 transform: translateY(20px);
 transition: opacity 0.3s ease 0s, transform 0.3s ease 0s;
 display: flex;
 gap: 30px;
}
/* メニューが開いた時（表示時）だけ遅延をかける */
.nav-overlay.open .sns-icons-menu {
 opacity: 1;
 transform: translateY(0);
 transition: opacity 0.5s ease 0.85s, transform 0.5s ease 0.85s;
}
.sns-icons-menu a {
 color: #fff;
 font-size: 4rem;
 width: 70px;
 height: 70px;
 border: 1px solid #fff;
 display: flex;
 justify-content: center;
 align-items: center;
}
/* Mobile Adjustments */
@media (max-width: 912px) {
 .sns-icons-menu {
  margin-top: 30px;
 }
 .sns-icons-menu a {
  font-size: 2rem;
  width: 44px;
  height: 44px;
 }
 .nav-overlay {
  width: 100%;
  padding: 60px 20px;
  align-items: center;
  text-align: center;
  justify-content: center;
 }
 .nav-links {
  text-align: center;
 }
 .nav-links a {
  font-size: 4rem;
 }
 .menu-toggle {
  width: 64px;
  height: 64px;
  top: 10px;
  right: 10px;
 }
 .menu-toggle-inner {
  width: 64px;
  height: 64px;
 }
}
