/* =========================
   NAV
========================= */

nav{
  display:flex;
  justify-content:center;
  width:100%;
}

nav ul{
  display:flex;
  justify-content:center;
  align-items:center;
  list-style:none;
  gap:0; /* gapは使わない */
  padding:0;
  margin:0;
}

nav ul li{
  position:relative;
  display:inline-block;
}


nav > ul > li + li::before{
  content:"｜";
  margin:0 25px;
  color:#888;
}

nav a{
  text-decoration:none;
  color:#f5f5f5;
  font-size:18px;
  letter-spacing:2px;
  position:relative;
}

/* hover line */

nav a::after{
  content:"";
  position:absolute;
  bottom:-6px;
  left:0;
  width:0;
  height:1px;
  background:#ff6a00;
  transition:0.3s;
}

nav a:hover::after{
  width:100%;
}

/* =========================
   DROPDOWN
========================= */

.has-dropdown{
  position:relative;
}

.dropdown{
  position:absolute;
  top:100%;       /* 親 li の下 */
  left:59%;       /* 親 li の中央 */
  transform:translateX(-41%);
  display:flex;
  flex-direction:column;
  align-items:center;
  min-width:180px;
  background:#111;
  border-radius:8px;
  box-shadow:0 10px 30px rgba(0,0,0,0.5);
  padding:10px 0;

  opacity:0;
  visibility:hidden;
  transition:0.25s;
}

.has-dropdown:hover .dropdown{
  opacity:1;
  visibility:visible;
}

.dropdown li{
  width:100%;
  text-align:center;
}

.dropdown a{
  display:block;
  padding:10px 25px;
  text-align:center;
  font-size:16px;
}

.dropdown a:hover{
  background:#ff6a00;
  color:#000;
}
/* =========================
   HAMBURGER
========================= */

.hamburger{
  display:none;
  width:30px;
  height:22px;
  position:relative;
  cursor:pointer;
}

.hamburger span{
  position:absolute;
  left:0;
  width:100%;
  height:3px;
  background:#fff;
  transition:0.3s;
}

.hamburger span:nth-child(1){
  top:0;
}

.hamburger span:nth-child(2){
  top:9px;
}

.hamburger span:nth-child(3){
  bottom:0;
}

/* X */

.hamburger.active span:nth-child(1){
  transform:rotate(45deg);
  top:9px;
}

.hamburger.active span:nth-child(2){
  opacity:0;
}

.hamburger.active span:nth-child(3){
  transform:rotate(-45deg);
  top:9px;
}

/* =========================
   1400px以下（ハンバーガー）
========================= */

@media (max-width:1400px){

/* hamburger */

.hamburger{
  display:flex;
}

/* menu */

nav{
  position:absolute;
  top:100%;
  left:0;
  width:100%;
  background:#0a0a0a;
  flex-direction:column;
  max-height: 80vh; /* 画面の90%まで */
  overflow-y: auto;  /* 高さ超えたらスクロール */
  transform:translateY(-150%);
  transition:0.3s;
}

nav.active{
  transform:translateY(21px);
}

/* list */
nav ul{
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:14px;
  padding:20px 0;
}

nav a{
  display:block;
  width:100%;
  text-align:center;
}

nav ul li::after{
  display:none;
}

/* dropdown */

.has-dropdown .dropdown{
  width: 100%;
  position:static;
  transform:none;
  background:none;
  box-shadow:none;

  display:none;
  opacity:1;
  visibility:visible;

  padding:0;
}


.dropdown a{
  font-size:16px;
  opacity:0.8;
  padding:6px 0;
}


nav > ul > li::after{
  display:none;
}

.has-dropdown.active .dropdown{
  display:block;
  padding: 6px 0;
}



nav ul li{
  display:block;
  width:100%;
  text-align:center;
}

.dropdown li{
  display:block;
}

  nav > ul > li + li::before{
    display:none;
  }

}