header{
  position: fixed;
  z-index: 999;
  width: 100%;
  height: 80px;
}

.header_contents{
  display: flex;
  justify-content: space-between;
  width: 100%;
  height: 100%;
}

.header_main{
  display: block;
  width: auto;
  height: 100%;
  background-color: #43906b;
}

.header_logo{
  display: block;
  width: auto;
  height: 100%;
  padding: 15px;
  object-fit: contain;
  object-position: center;
}

.header_nav_pc{
  display: none;
}

.header_nav_sp_wrapper{
  position: relative;
  display: block;
  width: 80px;
  height: 80px;
  padding: 25px 45px 25px 25px;
  background-color: #43906b;
}

.header_nav_btn{
  position: relative;
  z-index: 999;
  display: block;
  width: 30px;
  height: 30px;
  background-color: #43906b;
  border: none;
  outline: none;
  cursor: pointer;
  transition: all 0.4s;
}

.header_nav_btn span{
    position: absolute;
    display: block;
    right: 0;
    width: 100%;
    height: 2px;
    background-color: white;
    border-radius: 2px;
    transition: all .4s;
}

.header_nav_btn span:nth-of-type(1) {
    top: 0;
}

.header_nav_btn span:nth-of-type(2) {
    top: 14px;
}

.header_nav_btn span:nth-of-type(3) {
    bottom: 0;
}

.header_nav_btn.active {
  transform: rotate(-360deg);
}

.header_nav_btn.active span:nth-of-type(1) {
  transform: translateY(15px) rotate(-45deg);
}

.header_nav_btn.active span:nth-of-type(2) {
  transform: translateY(1px) rotate(45deg);
}

.header_nav_btn.active span:nth-of-type(3) {
  opacity: 0;
}

.header_nav_sp{
  position: absolute;
  top: 0;
  right: 0;
  z-index: 998;
  display: block;
  width: 200px;
  height: 700px;
  padding-top: 80px;
  background-color: #43906b;
  transition: all 0.5s;
  transform: translateX(250px);
}

.header_nav_sp.active{
  transform: translateX(0px);
}

.header_nav_sp_link{
  position: relative;
  display: block;
  margin-bottom: 30px;
  padding: 0 30px 10px;
  color: white;
  font-size: 18px;
  font-weight: 700;
  text-align: left;
  letter-spacing: 2px;
  text-indent: 2px;
  text-decoration: none;
}

.header_nav_sp_link::after{
  content: '';
  position: absolute;
  bottom: 0;
  left: 5%;
  /*線の形状*/
  width: 90%;
  height: 2px;
  background: white;
  transition: 0.3s all;
  transform: scale(1, 1);
  transform-origin: center top;
}

/*nav_child*/
.nav_child_list{
  display: none;
}

@media only screen and (min-width: 600px){

header{
  height: 120px;
}

.header_logo{
  padding: 25px;
}

.header_nav_sp_wrapper{
  display: block;
  width: 120px;
  height: 100%;
  margin-right: 0;
  padding: 45px;
  background-color: #43906b;
}

.header_nav_sp{
  padding-top: 120px;
}

}

@media only screen and (min-width: 960px){

.header_nav_pc{
  display: flex;
  justify-content: space-between;
  width: auto;
  height: 100%;
}

.header_nav_pc_list_wrapper{
  height: 120px;
  transform: translateY(0);
  transition: 0.3s all;
  padding-top: 20px;
}

.partner_text{
  height: 20px;
  padding-left: 15px;
  color: black;
  font-size: 14px;
  letter-spacing: 0.1em;
  line-height: 20px;
}

.header_nav_pc_list{
  display: flex;
  justify-content: space-around;
  width: auto;
  height: 80px;
  padding-top: 20px;
  padding-right: 20px;
  background-color: transparent;
  list-style: none;
}

.header_nav_pc_link{
  position: relative;
  margin: 0 15px;
  padding-bottom: 10px;
  color: black;
  font-size: 20px;
  font-weight: 700;
  text-align: center;
  letter-spacing: 2px;
  text-indent: 2px;
  text-decoration: none;
}

.header_nav_pc_link::after{
  content: '';
  position: absolute;
  bottom: 0;
  left: 5%;
  /*線の形状*/
  width: 90%;
  height: 2px;
  background: black;
  transition: 0.3s all;
  transform: scale(0, 1);
  transform-origin: center top;
}

.header_nav_pc_link:hover::after{
  transform: scale(1, 1);
}

.header_nav_pc_link_black{
  color: black;
}

.header_nav_pc_link_black::after{
  background: black;
}

.header_download{
  display: block;
  width: 200px;
  height: 120px;
  background-color: #214936;
  color: white;
  font-size: 18px;
  font-weight: 500;
  text-align: center;
  line-height: 120px;
  letter-spacing: 0.2em;
  text-indent: 0.2em;
  text-decoration: none;
}

.header_contact{
  display: block;
  width: 200px;
  height: 120px;
  background-color: #43906b;
  color: white;
  font-size: 22px;
  font-weight: 700;
  text-align: center;
  line-height: 120px;
  letter-spacing: 2px;
  text-indent: 2px;
  text-decoration: none;
}

.header_nav_sp_wrapper{
  display: none;
}

/*nav_child*/

.nav_child_wapper{
  position: relative;
	white-space: nowrap;
}


.nav_child_list{
  position: absolute;
  background-color: rgba(0,0,0,0.6);
  width: 300px;
	top:60px;
  padding:15px;
  transition: 0.3s all;
  transform: translateY(-20px);
  opacity: 0;
}

.nav_child_list.nav_m_i{
  width: 280px;
}
.nav_child_list li{
  padding-bottom:10px;
}
	
.nav_child_list2{
	display:none;
	position: absolute;
    left: 290px;
    background: rgba(0, 0, 0, 0.7);
	padding:10px;
}
	.nav_child_list2 li{padding:2px 0;}

.nav_child_list .header_nav_pc_link{
  color:#fff;
  position: relative;
  padding-bottom: 6px;
  font-size: 16px;
  font-weight: 700;
  text-align: left;
  letter-spacing: 2px;
  text-indent: 2px;
  line-height: 2;
  text-decoration: none;
}

.nav_child_list .header_nav_pc_link::after{
  content: '';
  position: absolute;
  bottom: 0;
  left: 20px;
  /*線の形状*/
  width: 100%;
  height: 1px;
}


}

@media only screen and (min-width: 1100px){

header{
  position: fixed;
  z-index: 999;
  width: 100%;
  height: 120px;
}

.header_contents{
  display:flex;
  justify-content: space-between;
  width: 100%;
  height: 100%;
}

.c-headLogo__link{
  display: block;
  width: auto;
  height: 100%;
  background-color: #43906b;
  padding: 25px !important;
}

.header_logo{
  display: block;
  width: auto;
  height: 100%;
  padding: 25px;
  object-fit: contain;
  object-position: center;
}

/*header_nav*/

.header_nav_pc{
  display: flex;
  justify-content: space-between;
  width: auto;
  height: 100%;
}

/*.header_nav_pc_list{*/
.c-gnav{
  display: flex;
  justify-content: space-around;
  width: auto;
  height: 120px;
  padding-right: 40px;
  background-color: transparent;
  list-style: none;
  transform: translateY(0);
  transition: 0.3s all;
}

.header_nav_pc_link{
  position: relative;
  margin: 0 15px;
  padding-bottom: 10px;
  font-size: 20px;
  font-weight: 700;
  text-align: center;
  letter-spacing: 2px;
  text-indent: 2px;
  text-decoration: none;
}

.header_nav_pc_link::after{
  content: '';
  position: absolute;
  bottom: 0;
  left: 5%;
  /*線の形状*/
  width: 90%;
  height: 2px;
  transition: 0.3s all;
  transform: scale(0, 1);
  transform-origin: center top;
}

.header_nav_pc_link:hover::after{
  transform: scale(1, 1);
}

.header_nav_pc_link_black{
  color: black;
}

.header_nav_pc_link_black::after{
  background: black;
}

.header_download{
  display: block;
  width: 200px;
  height: 120px;
  background-color: #214936;
  color: white;
  font-size: 18px;
  font-weight: 500;
  text-align: center;
  line-height: 120px;
  letter-spacing: 0.2em;
  text-indent: 0.2em;
  text-decoration: none;
}

.header_contact{
  display: block;
  width: 200px;
  height: 120px;
  background-color: #43906b;
  color: white;
  font-size: 22px;
  font-weight: 700;
  text-align: center;
  line-height: 120px;
  letter-spacing: 2px;
  text-indent: 2px;
  text-decoration: none;
}
}

summary{
  cursor:pointer;
  display: block;
  list-style-type: none;
}

summary::marker {
  content: "";
}
summary::-webkit-details-marker {
  display: none;
}

.s_link{cursor:pointer;}

.triangle {
  display:inline-block;
  margin-right:0.5em;
  height: 12px;
  aspect-ratio: cos(30deg);
  clip-path: polygon(0 0,100% 50%,0 100%);
  background: linear-gradient(45deg,#fff,#fff);
}

details[open] .triangle {
  transition: transform 0.4s;
  height:14px
  aspect-ratio: 1/cos(30deg);
  clip-path: polygon(50% 100%,100% 0,0 0);
}

 a.menu-title{display: block;color:#fff;}

.menu-n{margin-left:1.1em;}
@media screen and (-webkit-min-device-pixel-ratio:0) {
    .menu-n{margin-left:.1em; }
}


