@charset "UTF-8";
/* CSS Document */

header {
  position: absolute;
  width: 100%;
  background: #e9f9f8;
  color: #000;
  top: 0;
  left: 0;
  z-index: 10;
}

.header-wrapper {
  position: relative;
  width: 92%;
  max-width: 1140px;
  margin: 12px auto;
}

header .logo {
  z-index: 1000;
  width: 93px;
  height: 47px;
}

.menu-toggle {
  position: absolute;
  top: 0;
  right: 0;
  display: block;
  width: 45px;
	height: 45px;
	border-radius: 50%;
  border: none;
  background: #00a6d0;
  color: #fff;
  cursor: pointer;
  z-index: 100;
}

.menu-toggle span {
  display: block;
  width: 24px;
  height: 2px;
  margin: 5px auto;
  background-color: #fff;
  transition: all 0.3s ease;
}

.btn-info {
  position: relative;
  display: flex;
  padding: 7px 15px 7px 40px;
  border: 1px #999 solid;
  border-radius: 7px;
  background: #fff;
  color: #000;
  text-decoration: none;
  margin-bottom: 20px;
}
.btn-info img {position: absolute; top: 6px; left: 12px; z-index: 1000;}
.btn-info:hover {background: #fdf1f5;}
.btn-info:link, .btn-info:visited, .btn-info:hover, .btn-info:active {color: #000; text-decoration: none;}

.btn-tel {display: none;}

/* ------ モーダルナビ（スマホ用） ------ */
.nav {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(51, 51, 51, 0.95);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;

  opacity: 0;
  transform: scale(1.05);
  pointer-events: none;
  transition: opacity 0.3s ease, transform 0.3s ease;
  z-index: 999;
  padding-top: 60px;
}
.nav.open {
  opacity: 1;
  transform: scale(1);
  pointer-events: auto;
}

@media (max-width: 768px) {
  header {height: 70px;}
  .nav {
    overflow-y: auto; /* 縦スクロール可能に */
    -webkit-overflow-scrolling: touch; /* iOS慣性スクロール */
  }
}

.nav > ul {list-style: none;}

.nav > ul {
  width: 85%;
  margin: 20px auto 0;
}

.nav > .nav-menu > li {border-bottom: 1px solid #666;}

.nav > .nav-menu > li > a {
  display: block;
  padding: 15px;
  color: #fff;
  text-decoration: none;
  font-size: 1.1em;
}

.nav .nav-sub-wrapper {width: 85%; margin: 0 auto;}
.nav .nav-sub {
  width: 200px;
  margin: 30px 0 15px 0;
}

.nav .nav-sub li a {
  display: block;
  padding: 7px;
  color: #fff;
  text-decoration: none;
  font-size: 0.9em;
}

.nav .has-submenu a:hover {
  background: #444;
  opacity: 0.7;
}
.nav .submenu a:hover {
  background: #666;
}

.logo-sp {
  position: absolute;
  z-index: 1000;
  top: 15px;
  left: 4%;
  width: 93px;
  height: 47px;
}

/* ------ サブメニュー（スマホ） ------ */
.submenu {
  position: relative;
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  background: #4c4c4c;
  transition: max-height 0.1s ease, opacity 0.8s ease;
}
.submenu li a {
  display: block;
  color: #fff;
  text-decoration: none;
  font-size: 0.9rem;
  padding: 8px 35px;
}

.has-submenu.open .submenu {
  max-height: 500px;
  padding: 10px 0;
  opacity: 1;
}

.has-submenu {position: relative;}
.has-submenu::after {
  position: absolute;
  content: "＋";
  right: 20px;
  top: 18px;
  color: #fff;
  z-index: -5;
}
.has-submenu.open::after {
  content: "－";
}

/* ===== 閉じるボタン ===== */
.close-btn {
  position: absolute;
  top: 12px;
  right: 15px;
  width: 45px;
	height: 45px;
	border-radius: 50%;
  border: none;
  background: none;
  color: #fff;
  cursor: pointer;
}

.close-btn span {
  position: absolute;
  top: 50%;
  left: 25%;
  width: 24px;
  height: 2px;
  background-color: #fff;
}
.close-btn span:first-child {
  transform: translateY(-50%) rotate(45deg);
}
.close-btn span:last-child {
  transform: translateY(-50%) rotate(-45deg);
}

/* ------ PCレイアウト ------ */
@media (min-width: 769px) {
  .header-wrapper {display: flex; justify-content: space-between;}
  
  header {height: 130px;}
  header .logo {
    position: relative;
    width: 133px;
    height: 67px;
  }
  
  .btn-info {
    position: absolute;
    top: 0;
    right: 0;
  }
  
  .btn-tel {
    display: block;
    position: absolute;
    top: 8px;
    right: 175px;
  }
  
  .menu-toggle,
  .close-btn {display: none;}
  
  .nav {
    width: 680px;
    position: static;
    background: #fff;
    flex-direction: row;
    padding-top: 0;
    display: block;
    opacity: 1;
    transform: none;
    pointer-events: auto;
    border-radius: 26px;
    border: 2px #00a6d0 solid;
    margin-top: 50px;
  }

  .nav > ul {margin: 0 auto;}
  .nav > .nav-menu {display: flex; width: 640px;}
  .nav ul li {
    position: relative;
    border-bottom: none;
    list-style: none;
  }
  .nav > .nav-menu > li {width: 128px; text-align: center; border-bottom: none;}
  .nav > .nav-menu > li > a {color: #000; font-size: 0.95rem; padding: 12px;}
  .nav > .nav-menu > li:hover {background: #00a6d0; color: #fff; opacity: 1;}

  .submenu {
    position: absolute;
    left: -26px;
    top: 102%;
    background: #fff;
    min-width: 180px;
    opacity: 0;
    transform: translateY(-10px);
    z-index: 1;
    pointer-events: auto;
    max-height: none;
    transition: all 0.3s ease;
    border-radius: 7px;
    border: 2px #ccc solid;
    overflow: visible;
  }
  .submenu li a {color: #000; padding: 8px 35px;}
  
  .triangle {
    position: absolute;
    top: -11px;
    left: calc(50% - 10px);
    height: calc(20px / 2);
    width: 20px;
    clip-path: polygon(0 0, 100% 0, 50% 100%);
    background: #00a6d0;
    opacity: 0;
  }
  
  .has-submenu {position: relative;}
  
  .has-submenu:hover .submenu {
    opacity: 1;
    transform: translateY(10px);
    pointer-events: auto;
  }
  .has-submenu:hover .triangle {opacity: 1;}
  
  .has-submenu::after, .has-submenu.open::after {content: none;}
    
  .nav .has-submenu a:hover {background: #00a6d0; color: #fff; opacity: 1;}
  .nav .no-submenu a:hover {background: #00a6d0; color: #fff; opacity: 1;}
  .nav .submenu a:hover {background: #eee; color: #00a6d0;}
  
  .logo-sp {display: none; height: 0;}
  .nav-sub-wrapper  {display: none; height: 0;}
  
/* ------ メインメニュー　カレント表示 ------ */
  .training .nav-menu > li:nth-child(1) {background: #00a6d0;}
  .training .nav-menu > li:nth-child(1) > a {color: #fff;}
  .temporary .nav-menu > li:nth-child(2) {background: #00a6d0;}
  .temporary .nav-menu > li:nth-child(2) > a {color: #fff;}
  .travel .nav-menu > li:nth-child(3) {background: #00a6d0;}
  .travel .nav-menu > li:nth-child(3) > a {color: #fff;}
  .company .nav-menu > li:nth-child(4) {background: #00a6d0;}
  .company .nav-menu > li:nth-child(4) > a {color: #fff;}
  .recruit .nav-menu > li:nth-child(5) {background: #00a6d0;}
  .recruit .nav-menu > li:nth-child(5) > a {color: #fff;}
}