@import url(//fonts.googleapis.com/earlyaccess/notosansjp.css);
@charset "utf-8";

/* COMMON ==================== */
#wrapper{
	width: 100%;
	margin: 0;
	padding: 0;
	font-size: 100%;
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
  background-attachment:fixed;
  display: flex;
  flex-wrap: wrap;
  position: relative;

  /* 20240528 追加 */
  overflow: visible !important;
}
@media screen and ( min-width:768px ) { /* PC ==================== */
  #wrapper{
  background-image: url(../img/bg.jpg);
  }
}
@media screen and ( max-width:768px ) { /* SP  ==================== */
  #wrapper{
  background-image: url(../img/bg_sp.jpg);
  }
}

@media screen and ( min-width:768px ) { /* PC ==================== */
  .pc{display: block !important;}
  .sp{display: none !important;}
}
@media screen and ( max-width:767px ) { /* SP  ==================== */
  .pc{display: none !important;}
  .sp{display: block !important;}
  br.pc{
    display: none !important;
  }
}


/* one ナビ ==================== */
.one-header{
  padding: 0;
  margin:0;
  position: relative;

}
@media screen and ( min-width:768px ) { /* PC ==================== */
  .one-header{
  width: 20%;
  background: linear-gradient(rgba(0,0,0,1),rgba(0,0,0,0));
  }
}
@media screen and ( max-width:768px ) { /* SP  ==================== */
  .one-header{
  width: 100%;
  background: #000;
  }
}


@media screen and ( min-width:768px ) { /* PC ==================== */
  .one-header::after{
  content: "";
  display: block;
  background-image: url(../img/bg_sidebar@2x.png);
  background-repeat: repeat-y;
  background-size: contain;
  width: 20px;
  height: 100%;
  position: absolute;
  top:0;
  right:0;
  }
}
@media screen and ( max-width:768px ) { /* SP  ==================== */
}

@media screen and ( min-width:768px ) { /* PC ==================== */
  .one-header-area{
  /* 20240528追加 */
  width: 90%;
  position: sticky;
  top: 20px;
  margin-bottom: 40px;
  }
}
@media screen and ( max-width:640px ) { /* SP  ==================== */
  .one-header-area{
  /* 20240528追加 */
  width: 100%;
  }
}

.one-header-menu{
    width:100%;
  }

@media screen and ( min-width:640px ) { /* PC ==================== */
  .one-header-logo{
  width: 80%;
  margin: 20px auto 0;
  }
}
@media screen and ( max-width:640px ) { /* SP  ==================== */
  .one-header-logo{
  width: 15%;
  margin: 5px;
  float: left;
  }
}
.one-header-logo img{
  width:100%;
}

@media screen and ( min-width:768px ) { /* PC ==================== */
  .burger-btn{
    display: none;
  }
}
@media screen and ( max-width:768px ) { /* SP  ==================== */
  .burger-btn{
    width:20%;
    float: right;
  }
}

.header-nav{
	width: 100%;
}
@media screen and ( min-width:768px ) { /* PC ==================== */
  .header-nav .nav-list{
  display: block;
  text-align: left;
  }
}
@media screen and ( max-width:768px ) { /* SP  ==================== */
}

@media screen and ( min-width:640px ) { /* PC ==================== */
  .header-nav .nav-list{
    width: 100%;
  }
}
@media screen and ( max-width:640px ) { /* SP  ==================== */
}

@media screen and ( min-width:768px ) { /* PC ==================== */
  .header-nav .nav-list li:first-of-type{
  width: 100%;
  margin: 0 0 10% 0;
  }
  .header-nav .nav-list li:first-of-type img{
  width: 100%;
  max-width: 100%;
  }
  .header-nav .nav-list li:last-of-type{
  width: 82%;
  margin: 6% auto 0;
  }
  .header-nav .nav-list li:last-of-type a img{
  width: 100%;
  max-width: 100%;
  }
}
@media screen and ( max-width:768px ) { /* SP  ==================== */
}

@media screen and ( min-width:768px ) { /* PC ==================== */
  .header-nav .nav-item a{
  font-size: min(1.3vw,16px);
  color: #333;
  text-decoration: none;
  font-weight: 700;
  position: relative;
  z-index: 2;
  display: block;
  text-shadow: 1px 1px #fff;
  }
}
@media screen and ( max-width:768px ) { /* SP  ==================== */
  .header-nav .nav-item a{
  font-size: ;
  color: #fff;
  text-decoration: none;
  font-weight: 700;
  }
}




@media screen and ( max-width:767px ) { /* SP  ==================== */
  /* ハンバーガーメニュー ==================== */
  .burger-btn{
    display: block;
    width: 41px;
    height: 41px;
    position: relative;
    z-index: 3;
    /* codepenの挙動のため */
    background-color:transparent;
    border:none;
    cursor: pointer;
    z-index: 9999 !important;
  }
  .bar{
    width: 30px;
    height: 3px;
    display: block;
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    background-color: #808080;
  }
  .bar_top{
    top: 10px;
  }
  .bar_mid{
    top: 50%;
    transform: translate(-50%,-50%);
  }
  .bar_bottom{
    bottom: 10px;
  }
  .burger-btn.close .bar_top{
    transform: translate(-50%,10px) rotate(45deg);
    transition: transform .3s;
  }
  .burger-btn.close .bar_mid{
    opacity: 0;
    transition: opacity .3s;
  }
  .burger-btn.close .bar_bottom{
    transform: translate(-50%,-8px) rotate(-45deg);
    transition: transform .3s;
  }
  .nav-wrapper{
    display: none;
    width: 100vw;
    height: 100vh;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 9999;
  }
  .header-nav{
    width: 100%;
    height: 100%;
    background: linear-gradient(to right, rgba(0,0,0,0.8), rgba(0,0,0,1), rgba(0,0,0,0.8));
    background: -webkit-linear-gradient(left, rgba(0,0,0,1), rgba(30,30,40,1), rgba(0,0,0,1));
    background: -moz-linear-gradient(left, rgba(0,0,0,1), rgba(30,30,40,1), rgba(0,0,0,1));
    background: -o-linear-gradient(left, rgba(0,0,0,1), rgba(30,30,40,1), rgba(0,0,0,1));
    background: -ms-linear-gradient(left, rgba(0,0,0,1), rgba(30,30,40,1), rgba(0,0,0,1));
    z-index: 2;
  }
  .header-nav .nav-list{
    display: block;
    position: absolute;
    text-align: center;
  }
  .header-nav .nav-list{
    width:100%;
    top: 50%;
    transform: translate(0,-50%);
  }
  .header-nav .nav-logo{
    margin-right: 0;
    margin-bottom: 20px;
    padding-bottom:20px;
    border-bottom: 1px solid #808080;
  }
  .header-nav .nav-item{
    margin-right: 0;
    border: 1px solid #808080;
    padding: 0;
    width:75%;
    margin:0 auto 10px;
    text-align: center;
  }
  .header-nav .nav-item a{
    display: flex;
    width:100%;
    height: 100%;
    font-size: 18px;
    color: #fff;
    text-align: center !important;
    text-decoration: none;
    padding:5px 10px;
    margin: 0 auto;
  }
  .header-nav .nav-item a:hover{
    width:100%;
  }
}


.content{
  margin:0 auto;
  position: relative;
  z-index: 1;
}
@media screen and ( min-width:768px ) { /* PC ==================== */
  .content{
  width: 80%;
  }
}
@media screen and ( max-width:768px ) { /* SP  ==================== */
  .content{
  width: 100%;
  }
}


@media screen and ( min-width:768px ) { /* PC ==================== */
}
@media screen and ( max-width:768px ) { /* SP  ==================== */
  .tf-official{
  width: 80%;
  margin: 0 auto;
  }
}

@media screen and ( min-width:768px ) { /* PC ==================== */
  .tf-copyrigth{
  margin:20px auto 50px;
  }
}
@media screen and ( max-width:768px ) { /* SP  ==================== */
  .tf-copyrigth{
  margin:50px auto 50px;
  }
}

.tf-copyrigth small{
	display:block;
	width:100%;
	margin-top:5px;
	font-size:90%;
	overflow: hidden;
	line-height:1.0;
  text-align: center;
  color:#fff;
  text-shadow: 1px 1px 2px black;;
}
.tf-copyrigth small.tf-coryright{
	padding-bottom:7px;
}
.tf-copyrigth small span{
	font-size:180%;
	vertical-align:-8px;
	line-height:0.3;
}

.flex{
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}

img{
  width: 100%;
  max-width: 100%;
}

/* 共通 */
@media screen and ( min-width:768px ) { /* PC ==================== */
  .title{
  width: 70%;
  margin: 8% auto 5%;
  }
}
@media screen and ( max-width:768px ) { /* SP  ==================== */
  .title{
  width: 90%;
  margin: 8% auto 5%;
  }
}