@charset "UTF-8";

/*------------------------------------------------------------
  web fonts
------------------------------------------------------------*/
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@300;400;500;600;700;900&display=swap');

:root {
  --main_color: #282828;
  --sub_color: #00a04d;
}

.pc{display:block;}
.sp{display:none;}
@media only screen and (max-width: 798px) {
.pc{display:none;}
.sp{display:block;}
}

a{
  text-decoration:none;
  color: #333;
}

a:hover{
}

html, body{
  font-size: 62.5%;
  line-height:1.4;
  font-weight: 400;
  font-family:"Noto Sans JP", sans-serif;
  color:#000;
  margin: 0;
  padding: 0;
  height: 100%;
  width: 100%;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
body{
}
body main{
}
img{
  width: 100%;
  vertical-align: bottom;
}
*{
  box-sizing: border-box;
}

header{
  position: fixed;
  top: 0;
  left: 0;
  padding: 30px 20px;
  width: 100%;
  z-index: 10;
}
header .logo{
  max-width: 229px;
}

.contents.move{
  opacity: 1;
  position: relative;
}
.mv-title span:nth-of-type(1){
  color: #598d81;
}
.mv-title span:nth-of-type(2){
  color: #004ea2;
}
.pc-mv .mv-txt.none{
  opacity: 0;
}
.add-box .txt{
  font-size: clamp(1rem,1.1vw,1.8rem);
  font-weight: 400;
  line-height: 1.8;
  margin-bottom: 10px;
}
.add-box .btn{
  border: solid 1px #666464;
  text-align: center;
  padding: 15px 5px;
  position: relative;
  font-size: clamp(1rem,1.1vw,1.4rem);
  width: 90%;
  margin: 0 auto 20px;
  display: block;
  transition: .3s;
}
.add-box .btn:hover{
  background-color: #666464;
  color: #fff;
}
.add-box .btn:after{
  content: '\e5df';
  font-family: 'Material Icons';
  position: absolute;
  top: 50%;
  right: 10px;
  transform: translateY(-50%);
  font-size:3rem;
}

@media only screen and (min-width: 799px) {
  html{
    height: 100%;
    overflow-y: scroll;
    /*スクロールバー非表示（IE・Edge）*/
    -ms-overflow-style: none;
    /*スクロールバー非表示（Firefox）*/
    scrollbar-width: none;
  }
  html::-webkit-scrollbar{
    display:none;
  }
  main{
    position: relative;
    display: flex;
    justify-content: flex-start;
  }
  main:after{
    content: '';
    width: 100%;
    height: 100vh;
    position: fixed;
    top: 0;
    left: 0;
    transition: 2s;
    background: url(../img/pc-bg01.jpg) no-repeat center left / cover;
  }
  main.bg02:after{
    background-image: url(../img/pc-bg02.jpg);
  }
  main.bg03:after{
    background-image: url(../img/pc-bg03.jpg);
  }
  #navi{
    display: none;
  }
  .contents{
    transition: .6s;
    opacity: 0;
    position: fixed;
    background-color: #fff;
    z-index: 1;
  }
  .pc-mv{
    height: 100vh;
    position: fixed;
    top: 0;
    z-index: 1;
    color: #595757;
    transition: .6s;
    opacity: 0;
  }
  .pc-mv.move{
    opacity: 1;
  }
  .mv-title{
    font-size: clamp(1.4rem, 2vw, 3.5rem);
    font-weight: 400;
    line-height: 2;
    position: absolute;
    left: 0;
    top: 50%;
  }
  .mv-txt{
    font-size: clamp(1rem,1.1vw,2rem);
    font-weight: 400;
    line-height: 2;
    position: absolute;
    left: 0;
    transition: .6s;
    bottom: 50%;
  }
  .catch {
    width: 100%;
    height: 100vh;
    position: fixed;
    top: 0;
    left: 0;
    text-align: center;
    z-index: 1;
    color: #595757;
    transition: .6s;
  }
  .sp-bg{
    display: none;
  }
  .catch.move{
    opacity: 0;
    pointer-events: none;
  }
  .catch .mv-title{
    left: 50%;
    transition: .6s;
    opacity: 0;
  }
  .catch .mv-txt{
    left: 50%;
    transition: .6s;
    opacity: 0;
  }
  .catch .mv-title.move,
  .catch .mv-txt.move{
    opacity: 1;
  }
  .pc-mv .mv-txt.none{
    opacity: 0;
  }
  .pc-mv .add-box{
    position: absolute;
    bottom: 50%;
    left: 0;
    transition: 1s;
    opacity: 0;
  }
  .pc-mv .add-box.move{
    opacity: 1;
  }
  address{
    font-style: normal;
    font-size: clamp(1rem,1.1vw,1.4rem);
    text-align: center;
 }
}
@media only screen and (min-width: 1240px) {
    header .logo{
      max-width: 180px;
    }
  .contents{
    width: 510px;
    margin-left: 50%;
  }
  .pc-mv{
    width: 23%;
    left: 17%;
  }
  .mv-title{
    transform: translateY(-180%);
  }
  .mv-txt{
    transform: translateY(180%);
  }
  .catch .mv-title{
    transform: translate(-50%,-180%);
  }
  .catch .mv-txt{
    transform: translate(-50%,180%);
  }
  .pc-mv .add-box{
    transform: translateY(185%);
  }
}
@media only screen and (min-width: 1001px) and (max-width:1239px) {
  .contents{
    width: 40%;
    margin-left: 50%;
  }
  .pc-mv{
    width: 30%;
    left: 210px;
  }
  .mv-title{
    transform: translateY(-180%);
  }
  .mv-txt{
    transform: translateY(170%);
  }
  .catch .mv-title{
    transform: translate(-50%,-180%);
  }
  .catch .mv-txt{
    transform: translate(-50%,170%);
  }
  .pc-mv .add-box{
    transform: translateY(185%);
  }
}
@media only screen and (min-width: 799px) and (max-width:1000px) {
  header{
    padding: 10px;
  }
  header .logo{
    max-width: 160px;
  }
  main:after{
    background-position: center left -100px;
  }
  .contents{
    width: 40%;
    margin-left: 50%;
  }
  .pc-mv{
    width: 30%;
    left: 120px;
  }
  .mv-title{
    transform: translateY(-200%);
  }
  .mv-txt{
    transform: translateY(180%);
  }
  .catch .mv-title{
    transform: translate(-50%,-200%);
  }
  .catch .mv-txt{
    transform: translate(-50%,180%);
  }
  .pc-mv .add-box{
    transform: translateY(185%);
  }
}

@media only screen and (max-width: 798px) {
  header{
    padding: 10px;
  }
  header .logo{
    max-width: 116px;
  }
  header nav {
    right: -100%;
    top: 0;
    width: 100%;
    height: 100vh;
    position: fixed;
    text-align: center;
    -webkit-transition: .5s ease-in-out;
    -moz-transition: .5s ease-in-out;
    transition: .5s ease-in-out;
    overflow-y: auto;
    background-color: rgba(255,255,255,.8);
    opacity: 0;
    z-index: 100;
  }
  header nav .menu{
    padding-top: 30px;
  }
  header nav a{
    padding: 10px;
    text-align: center;
    display: block;
    font-size: clamp(1.2rem,1.3vw,1.4rem);
  }
  header nav a strong{
    display: block;
    font-size: clamp(1.4rem,1.6vw,1.8rem);
  }
  header #nav-toggle {
    display: block;
    position: fixed;
    right: 10px;
    top: 12px;
    width: 40px;
    height: 22px;
    z-index: 10010;
  }
  header #nav-toggle span {
    width: 100%;
    height: 2px;
    background-color: #2c2e2e;
    position: absolute;
    -webkit-transition: .35s ease-in-out;
    -moz-transition: .35s ease-in-out;
    transition: .35s ease-in-out;
  }
  header #nav-toggle span:nth-child(1) {
    top: 0;
  }
  header #nav-toggle span:nth-child(2) {
    top: 10px;
  }
  header #nav-toggle span:nth-child(3) {
    top: 20px;
  }
  header.open #nav-toggle span {
  }
  header.open #nav-toggle span:nth-child(1) {
    top: 11px;
    -webkit-transform: rotate(45deg);
    -moz-transform: rotate(45deg);
    transform: rotate(45deg);
  }
  header.open #nav-toggle span:nth-child(2) {
    width: 0;
  }
  header.open #nav-toggle span:nth-child(3) {
    top: 11px;
    -webkit-transform: rotate(-45deg);
    -moz-transform: rotate(-45deg);
    transform: rotate(-45deg);
  }
  .open nav {
    -moz-transform: translateX(-100%);
    -webkit-transform: translateX(-100%);
    transform: translateX(-100%);
    opacity: 1;
  }
  .pc-mv{
    display: none;
  }
  .catch{
    text-align: center;
    color: #595757;
    position: relative;
  }
  .catch .sp-bg{
    width: 100%;
    position: relative;
  }
  .catch .sp-bg .bg02{
    opacity: 0;
    position: absolute;
    top: 0;
    left: 0;
    transition: 1s;
  }
  .catch .sp-bg.move .bg02{
    opacity: 1;
  }
  .mv-title{
    font-size: 6vw;
    font-weight: 400;
    line-height: 1.8;
    position: absolute;
    left: 0;
    top: 10%;
    width: 100%;
    z-index: 1;
  }
  .mv-txt{
    font-size: 4vw;
    font-weight: 400;
    line-height: 1.8;
    position: absolute;
    left: 0;
    transition: .6s;
    bottom: 5%;
    z-index: 1;
    width: 100%;
    opacity: 0;
  }
  .mv-txt.move{
    opacity: 1;
  }
}

.sec-tit{
  font-size: clamp(1.1rem,1.4vw,1.6rem);
  line-height: 1.2;
  text-align: center;
  font-weight: 500;
  margin: 0 0 50px;
}
.sec-tit strong{
  display: block;
  font-weight: 500;
  margin-bottom: 10px;
  color: #fff;
}
.sec-tit strong span{
  border-bottom: solid 1px ;
  font-size: clamp(1.4rem,1.6vw,2rem);
}
@media only screen and (max-width: 798px) {
  .sec-tit{
    margin: 0 0 30px;
  }
}
#concept{
  height: 100vh;
  /* Permalink - use to edit and share this gradient: https://colorzilla.com/gradient-editor/#5282c3+0,96d4e8+100 */
  background: linear-gradient(to bottom,  rgba(82,130,195,1) 0%,rgba(150,212,232,1) 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
  color: #fff;
  position: relative;
}
#concept .sec-tit{
  margin-bottom: 10%;
}
#concept .inner .txt{
  font-size: clamp(1.2rem,1.5vw,1.8rem);
  line-height: 1.8;
  width: 90%;
  margin: 0 auto;
}
#concept .scr{
  width: 12px;
  position: absolute;
  right: 10px;
  bottom: 5%;
  animation: fluffy 1s ease-in-out infinite alternate;
}
@keyframes fluffy {
  0% {
      transform: translate(0,0px);
  }
  100% {
      transform: translate(0,10px);
  }
}
@media only screen and (min-width: 799px) {
  #concept .sec-tit{
    text-align: right;
    color: #fff;
    opacity: .6;
  }
  #concept .sec-tit strong span{
    border-bottom: none;
    font-size: clamp(3.4rem,5.6vw,7rem);
  }
  #concept .inner{
    position: absolute;
    top: 50%;
    left: 5%;
    transform: translateY(-50%);
    width: 90%;
  }
}
@media only screen and (max-width: 798px) {
  #concept{
    height: auto;
    padding: 40px 0;
  }
  #concept .sec-tit{
    margin-bottom: 20px;
  }
  #concept .scr{
    display: none;
  }
}
#business{
  padding: 100px 0 30px;
  color: #004ea2;
}
#business .sec-tit strong{
  color: #004ea2;
}
#business .list{
  width: 90%;
  margin: 0 auto;
}
#business .list li{
  margin-bottom: 70px;
}
#business .list li .ill{
  width: 110px;
  margin: 0 auto 10px;
}
#business .list li .midashi{
  font-size: clamp(1.5rem,2vw,2.4rem);
  line-height: 1.2;
  font-weight: 500;
  margin: 0 0 10px;
  text-align: center;
}
#business .list li .txt{
  font-size: clamp(1.1rem,1.3vw,1.6rem);
  line-height: 1.8;
}
@media only screen and (max-width: 798px) {
  #business{
    padding: 50px 0 10px;
  }
  #business .list li{
    margin-bottom: 30px;
  }
}
#company{
  padding: 50px 0;
  background-color: #557ec0;
  color: #fff;
}
#company .list{
  width: 90%;
  margin: 0 auto;
}
#company .list li{
  margin-bottom: 20px;
}
#company .list li .midashi{
  font-size: clamp(1.1rem,1.4vw,1.6rem);
  line-height: 1.2;
  font-weight: 600;
  margin: 0 0 5px;
  padding-bottom: 5px;
  border-bottom: solid 1px #fff;
}
#company .list li .txt{
  font-size: clamp(1.1rem,1.3vw,1.6rem);
  line-height: 1.8;
}
#company .pdf-link{
  border: solid 1px #fff;
  color: #fff;
  text-align: center;
  padding: 15px 5px;
  position: relative;
  font-size: clamp(1rem,1.1vw,1.4rem);
  max-width: 300px;
  width: 90%;
  margin: 30px auto 0;
  display: block;
  transition: .3s;
}
#company .pdf-link:hover{
  background-color: #fff;
  color: #557ec0;
}
#company .pdf-link:after{
  content: '\e5df';
  font-family: 'Material Icons';
  position: absolute;
  top: 50%;
  right: 10px;
  transform: translateY(-50%);
  font-size:3rem;
}
@media only screen and (max-width: 798px) {
  #company{
    padding: 30px 0;
  }
}

footer{
  display: none;
}
@media only screen and (max-width: 798px) {
  footer{
    display: block;
  }
  footer .inner{
    /* Permalink - use to edit and share this gradient: https://colorzilla.com/gradient-editor/#e4d2e6+0,aedef2+100 */
    background: linear-gradient(to bottom,  rgba(228,210,230,1) 0%,rgba(174,222,242,1) 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
    padding: 30px 0;
  }
  footer .inner .logo{
    max-width: 160px;
    margin: 0 auto 30px;
  }
  footer .inner .add-box{
    color: #595757;
    text-align: center;
  }
  footer .inner .add-box .txt{
    font-size: clamp(1.3rem,1.4vw,1.5rem);
  }
  footer .inner .add-box .btn{
    max-width: 200px;
  }
  address{
    font-style: normal;
    font-size: clamp(1rem,1.1vw,1.4rem);
    text-align: center;
    padding: 10px;
    color: #9fa0a0;
    text-align: center;
 }
}