@charset "utf-8";
/* clearfix
------------------------------------------------*/
.clearfix { *zoom:1; }
.clearfix:before,
.clearfix:after {
 display: table;
 content:"";
 line-height: 0;
}
.clearfix:after { clear: both; }
@charset "utf-8";
/* パソコンで見たときは"pc"のclassがついた画像が表示される */
.pc { display: block ; }
.sp { display: none ; }
 
/* スマートフォンで見たときは"sp"のclassがついた画像が表示される */
@media only screen and (max-width: 600px) {
    .pc { display: none ; }
    .sp { display: block ; }
}
/* body 全体
------------------------------------------------*/
body{
    margin: 0;
    font-family: "zen-kaku-gothic-antique", sans-serif;
font-weight: 500;
font-style: normal;
}
body {
  box-sizing : border-box;
}
/*---------------------------------å-------------------------------------
フォント・。・゜★・。・。☆・゜・。・゜。・。・゜★・。・。☆
------------------------------------------------------------------------*/
html {
  font-size: 16px;
  color: #222222;
}
h3{
  font-size: 10px;
  color: #135fe3;
  display: flex;
  align-items: center; /* 垂直中心 */
  padding-bottom: 6%;
}
h3:after{
  background-color: #868686;
    content: "";
    display: block;
    height: 1px;
    margin-left: 0.6588579795vw;
    width: 4.5387994143vw;
}
h4{
  font-size: 32px;
}
h5{
  font-size: 24px;
  color: #324462;
}
h6{
  font-size: 14px;
  color: #135fe3;
  margin: 0;
}
.black{
  color: #222222;
}
@media screen and (max-width:600px) {
  html {
    font-size: 16px;
    color: #222222;
  }
  h3{
    font-size: 14px;
    color: #135fe3;
    display: flex;
    align-items: center; /* 垂直中心 */
    padding-bottom: 6%;
  }
  h3:after{
    background-color: #868686;
      content: "";
      display: block;
      height: 1px;
      margin-left: 0.6588579795vw;
      width: 4.5387994143vw;
  }
  h4{
    font-size: 7vw;
  }
  h5{
    font-size: 24px;
    color: #324462;
  }
  h6{
    font-size: 14px;
    color: #135fe3;
    margin: 0;
  }
  .mini{
    font-size: 11px;
    font-weight: 400;
  }
}
/*-----
Zen Kaku Gothic Antique Light
font-family: "zen-kaku-gothic-antique", sans-serif;
font-weight: 300;
font-style: normal;
Zen Kaku Gothic Antique Regular
font-family: "zen-kaku-gothic-antique", sans-serif;
font-weight: 400;
font-style: normal;
Zen Kaku Gothic Antique Medium
font-family: "zen-kaku-gothic-antique", sans-serif;
font-weight: 500;
font-style: normal;
Zen Kaku Gothic Antique Bold
font-family: "zen-kaku-gothic-antique", sans-serif;
font-weight: 700;
font-style: normal;
Zen Kaku Gothic Antique Black
font-family: "zen-kaku-gothic-antique", sans-serif;
font-weight: 900;
font-style: normal;
---------------*/
/*---------------------------------å-------------------------------------
共通・。・゜★・。・。☆・゜・。・゜。・。・゜★・。・。☆
------------------------------------------------------------------------*/
html {
  scroll-behavior: smooth;
}
body {
  box-sizing: border-box;
  width: 100%;
  overflow-x: hidden;
  font-family: "zen-kaku-gothic-antique", sans-serif;
font-weight: 500;
font-style: normal;
  overflow-wrap: break-word;
  position: relative;
  z-index: 1;
}
@media only screen and (min-width: 601px){
.area {
  background-image: url(../img/bg.png);
  background-attachment: fixed;
  background-size: cover;
  background-position: center;
}
}
@media only screen and (max-width: 600px){
.area::before {
  content:"";
  display:block;
  position:fixed;
  top:0;
  left:0;
  z-index:-1;
  width:100%;
  height:100vh;
  background-repeat:no-repeat;
  background-position:0% 100%;
  background-image: url(../img/bg.png);
  background-size:cover;
  }
}
/*----------------------------------------------------------------------
ローディング・。・゜★・。・。☆・゜・。・゜。・。・゜★・。・。☆
------------------------------------------------------------------------*/
    /* ローディング
==============================　*/
.loading {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  z-index: 9999;
  background-color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  animation: fadeOut 1.5s 2.5s forwards;
  pointer-events: none;
}

@keyframes fadeOut {
  0% {
    opacity: 1;
  }

  100% {
    opacity: 0;
    visibility: hidden;
  }
}

.loading__logo {
  opacity: 0;
  animation: logo_fade 2s 0.5s forwards;
  width: 300px;
}

@keyframes logo_fade {
  0% {
    opacity: 0;
    transform: translateY(20px);
  }

  60% {
    opacity: 1;
    transform: translateY(0);
  }

  100% {
    opacity: 0;
  }
}
/*----------------------------------------------------------------------
アニメーション・。・゜★・。・。☆・゜・。・゜。・。・゜★・。・。☆
------------------------------------------------------------------------*/
.fadeInUpTrigger{
	opacity: 0;
}
/*----------------------------------------------------------------------
ヘッダー・。・゜★・。・。☆・゜・。・゜。・。・゜★・。・。☆
------------------------------------------------------------------------*/
header{
  background-color: transparent;
  position: fixed;
  width: 100%;
  padding: 1%;
  top: 0;
  transition: .2s;
  z-index: 999;
  font-family: "zen-kaku-gothic-antique", sans-serif;
font-weight: 500;
font-style: normal;
}
/*　上に上がる動き　*/

header.UpMove{
	animation: UpAnime 0.5s forwards;
}

@keyframes UpAnime{
  from {
    opacity: 1;
	transform: translateY(0);
  }
  to {
    opacity: 0;
	transform: translateY(-100px);
  }
}

/*　下に下がる動き　*/

header.DownMove{
	animation: DownAnime 0.5s forwards;
}
@keyframes DownAnime{
  from {
  	opacity: 0;
	transform: translateY(-100px);
  }
  to {
  	opacity: 1;
	transform: translateY(0);
  }
}
.header_layout{
display: flex;
height: 80px;
justify-content: space-between;
padding: 24px 16px 16px 11px;
}

@media only screen and (max-width: 600px){
header{
height:auto ;
}
.header_layout{
  display: flex;
  height: 60px;
  justify-content: space-between;
  padding: 0px;
  }
  .logo p {
    font-size: 10px;
    letter-spacing: -1px;
    margin-left: 8%;
    width: 140%;
}
}
header li{
color: #333333;
}
header li:active{
color: #686868;
}
header li:visited{
color: #686868;
}
a.active {
color: #686868;
}
header li:hover{
color: #686868;
}

.pc_menu{
display: flex;
align-items:center;
justify-content:space-between;
width: 100%;
}

.menu_nav {
width: 40%;
display: flex;
align-items:center;
justify-content:space-between;
margin-left: 20%;
}
@media only screen and (max-width: 1400px){
.menu_nav {
width: 50%;
display: flex;
align-items:center;
justify-content:space-between;
margin-left: 0%;
}
}
.menu_nav li{
font-size: 12px;

}
/*----------------------------------------------------------------------
ヘッダーハンバーガー・。・゜★・。・。☆・゜・。・゜。・。・゜★・。・。☆
------------------------------------------------------------------------*/
.hamburger {
margin: 0 2% 0 2%;
width: 100%;
display: flex;
justify-content: space-between;
align-items: center;
}

.logo {
font-size: 0.75rem;
font-weight: 700;
margin-right: 4%;
width: 160px;
}
.logo a{
display: block;
margin-bottom: 3%;
}
.logo p{
  font-size: 10px;
  letter-spacing:-1px;
  margin-left: 8%;
  }
.logo img{
width: 100%;
}
@media only screen and (max-width: 600px){
.hamburger {
margin:1%;
width: 100%;
display: flex;
justify-content: space-between;
align-items: center;
height: 13vw;
}
.logo {
  margin-left: 2%;
  margin-top: 1%;
  width: 34%;
}
.logo img{
width: 100%;

}
}
.hamburger .btn-gNav {
position: fixed;
top: 6vw;
right: 20px;
width: 26px;
height: 24px;
z-index: 12;
box-sizing: border-box;
cursor: pointer;
-webkit-transition: all 400ms;
transition: all 400ms;
}

.hamburger .btn-gNav span {
position: absolute;
width: 100%;
height: 2px;
background: #222222;
border-radius: 10px;
-webkit-transition: all 400ms;
transition: all 400ms;
}

.hamburger .btn-gNav span:nth-child(1) {
top: 0;
}

.hamburger .btn-gNav span:nth-child(2) {
top: 10px;
}

.hamburger .btn-gNav span:nth-child(3) {
top: 20px;
}

.hamburger .btn-gNav.open span:nth-child(1) {
background: #ffffff;
top: 6px;
-webkit-transform: rotate(-45deg);
-moz-transform: rotate(-45deg);
transform: rotate(-45deg);
}

.hamburger .btn-gNav.open span:nth-child(2),
.hamburger .btn-gNav.open span:nth-child(3) {
top: 6px;
background: #ffffff;
-webkit-transform: rotate(45deg);
-moz-transform: rotate(45deg);
transform: rotate(45deg);
}


.btn-gNav {
display: none;
}

.gNav .gNav-menu {
display: flex;
justify-content: space-between;
width: 84%;
margin-left: 16%;
}

.gNav .gNav-menu li {
margin: 0 auto;
padding: 0 5px;
}
.gNav{
width: 60%;

}
@media screen and (max-width: 900px) {
.gNav .gNav-menu {
display: flex;
justify-content: space-between;
width: 84%;
margin-left: 0;
}
}
@media screen and (max-width: 600px) {
.btn-gNav {
  display: block;
}

.gNav {
  position: fixed;
  top: 0;
  right: -100%;
  width: 100%;
  height: 100%;
  background-color: #ffffff;
  font-size: 16px;
  box-sizing: border-box;
  z-index: 1;
  padding-top: 50px;
  transition: .3s;
}

.gNav.open {
  right: 0;
  background-image: url(../img/bg.png);
  background-size: cover;
}
.gNav.open .sp{
width: 60%;
}
.gNav.open .sp img{
width: 100%;
}
.gNav .gNav-menu {
border-bottom: 0.2604166667vw solid rgba(52,52,52,.1);
  padding-bottom: 20%;
  width: 100%;
  height: 100vh;
  background: #ffffff;
  margin: 0 auto;
  display: block;
  flex-direction: column;
  text-align: center;
  /*justify-content: center;*/
}

.gNav .gNav-menu li {
  width: 48%;
  padding: 4%;
}
.gNav.open .gNav-menu li{
font-size: 24px;
}
}
/*----------------------------------------------------------------------
フッター・。・゜★・。・。☆・゜・。・゜。・。・゜★・。・。☆
------------------------------------------------------------------------*/
footer{
  position: relative;
  background: #000;
  font-size: 14px;
  display: flex;
  color: #fff;
  padding: 6vw 11.420204978vw 6vw 12.1522693997vw;
  }
  footer .f_left{
    width: 50%;
    position: relative;
  }
  footer .f_logo{
    width: 32%;
    padding-bottom: 8%;
  }
  footer .f_right{
    width: 50%;
  }
  footer img{
    width: 100%;
  }
  footer .f_adress{
    padding-bottom: 24%;
  }
  footer .f_copy{
    font-size: 10px;
  }
  footer ul{
    display: flex;
    flex-wrap: wrap;
  }
  footer li{
    width: calc(100% / 3);
    margin-bottom: 4%;
    font-size: 24px;
  }
  footer li p{
    display:inline-block;
    position:relative;
    cursor:pointer;
  }
  footer li p::after{
    content:'';
    position:absolute;
    width:100%;transform:scaleX(0);
    height:1px;bottom:0;
    left:0;
    background-color:#ffffff;
    transform-origin:bottom right;transition:transform .4s cubic-bezier(.86,0,.07,1)
  }
  footer li p:hover::after{
    transform:scaleX(1);
    transform-origin:bottom left
  }
  @media screen and (max-width: 600px) {
    footer{
      font-size: 14px;
      display: block;
      padding: 6vw 8vw 6vw 8vw;
      }
      footer .f_left{
        width: 100%;
        position: relative;
      }
      footer .f_logo{
        width: 50%;
        padding-bottom: 8%;
      }
      footer .f_right{
        width: 100%;
      }
      footer img{
        width: 100%;
      }
      footer .f_adress{
        padding-bottom: 0;
      }
      footer .f_copy{
        font-size: 10px;
        padding-bottom: 20%;
      }
      footer ul{
        display: flex;
        flex-wrap: wrap;
      }
      footer li{
        width: 100%;
        margin-bottom: 4%;
        font-size: 24px;
      }
  }  
  /* キャラクター縦スクロール　*/

.text-ani{
	font-size: 10px;
	background-color: #135fe3;
	overflow: hidden;
	position: absolute;
	-ms-writing-mode: tb-rl;
	writing-mode: vertical-rl;
	height: 30%;
	right: 4%;
  bottom: 8%;
  width: 4%;
}
@media screen and (max-width: 600px) {
  .text-ani{
    font-size: 10px;
    background-color: #135fe3;
    overflow: hidden;
    position: absolute;
    -ms-writing-mode: tb-rl;
    writing-mode: vertical-rl;
    height: 30%;
    right: 8%;
    bottom: 8%;
    width: 14%;
  }
}
.text-ani p {
	margin: 0 2%;
	font-size: 1.5em;
	color: #fff;
	animation: flowing 10s linear infinite;
	/*アニメーション*/
	transform: translateY(20%);
	/*最初の位置*/
	display: inline-block;
	white-space: nowrap;
	line-height: 2.9em;
	font-weight: 300;
	font-style: normal;
  vertical-align: middle;
}

@keyframes flowing {
	100% {
		transform: translateY(-100%);
		/*終了の位置*/
	}
}
