body {
  font-family: 'Noto Sans JP', sans-serif;
}
img {
  width: 100%;
}
.wrap {
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
}
.bgcolor_gry {
  background: #dddede;
}
.container {
  width: 100%;
}
.content {
  width: 90%;
  max-width: 1000px;
  margin: auto;
}
.flex {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
}
@media screen and (max-width: 768px) {
  .pt_10 {
    padding-top: 10%;
  }
}
/*==========================================
 MAIN
===========================================*/
.main_thum {
  position: relative;
}
.logo {
  width: 44.24657534246575%;
  position: absolute;
  top: 130vw;
  left: 42.5%;
}
.title {
  width: 16.71232876712329%;
  position: absolute;
  top: 21vw;
  left: 72%;
}
@media screen and (min-width: 769px) {
  .logo {
    width: 22.2%;
    position: absolute;
    top: 19vw;
    left: 60%;
  }
  .title {
    width: 20%;
    position: absolute;
    top: 30vw;
    left: 60%;
  }
}
.fadein {
  opacity: 0;
}
.fadein--show {
  -webkit-animation: fadein--show 5s;
  animation: fadein--show 5s;
  animation-fill-mode: forwards;
  -webkit-animation-fill-mode: forwards;
}
@-webkit-keyframes fadein--show {
  0% {
    opacity: 0;
    transform: translate(0%, -5%);
  }
  100% {
    opacity: 1;
    transform: translate(0%, 0%);
  }
}
@keyframes fadein--show {
  0% {
    opacity: 0;
    transform: translate(0%, -5%);
  }
  100% {
    opacity: 1;
    transform: translate(0%, 0%);
  }
}
/*==========================================
 10年先
===========================================*/
.thum2 {
  position: relative;
}
.title2 {
  width: 44.38356164383562%;
  position: absolute;
  top: 15vw;
  left: 27.80821917808219%;
}
.text2 {
  width: 62.19178082191781%;
  position: absolute;
  top: 46vw;
  left: 7%;
}
.btn2 {
  width: 40%;
  position: absolute;
  top: 131vw;
  left: 7%;
  font-size: 28px;
  letter-spacing: 3px;
  font-family: 'Roboto', sans-serif;
  font-weight: 400;
}
.btn2 a {
  border: 1px #fff solid;
  display: block;
  padding: 10px;
  text-decoration: none;
  color: #fff;
  position: relative;
}
.btn2 a::after {
  content: "\2192";
  content: url("../images/arrow.svg");
  width: 20px;
  height: 20px;
  position: absolute;
  right: 5%;
  transition: .7s;
  transform: scale(0.5);
}
@media screen and (min-width: 769px) {
  .title2 {
    width: 30%;
    position: absolute;
    top: 14vw;
    left: 12%;
  }
  .text2 {
    width: 28%;
    position: absolute;
    top: 22vw;
    left: 12%;
  }
  .btn2 {
    width: 20%;
    position: absolute;
    top: 43vw;
    left: 12%;
    font-size: 28px;
    letter-spacing: 3px;
    font-family: 'Roboto', sans-serif;
    font-weight: 400;
  }
  .btn2 a {
    border: 1px #fff solid;
    display: block;
    padding: 10px;
    text-decoration: none;
    color: #fff;
    position: relative;
  }
  .btn2 a::after {
    content: "\2192";
    content: url("../images/arrow.svg");
    width: 20px;
    height: 20px;
    position: absolute;
    right: 10%;
    transition: .7s;
    transform: scale(0.5);
  }
  .btn2 a:hover::after {
    right: 5%;
  }
}
/*==========================================
 4つの特徴
===========================================*/
.thum3 {
  position: relative;
  z-index: 2;
  margin-top: -2px;
}
.title3 {
  width: 54.65753424657534%;
  position: absolute;
  top: 13vw;
  left: 22.67123287671233%;
}
.text3 {
  width: 89.04109589041096%;
  position: absolute;
  top: 57vw;
  left: 7%;
}
.text3_caution {
  width: 20%;
  position: absolute;
  bottom: 5vw;
  right: 3%;
}
@media screen and (min-width: 769px) {
  .title3 {
    width: 20%;
    position: absolute;
    top: 10vw;
    left: 61%;
  }
  .text3 {
    width: 40%;
    position: absolute;
    top: 10vw;
    left: 12%;
  }
  .text3_caution {
  width: 13%;
  position: absolute;
  bottom: 3%;
  right: 3%;
}
}
/*==========================================
 集結
===========================================*/
.title4 {
  width: 72.19178082191781%;
  margin: 10% auto 0;
  position: relative;
  display: block;
  overflow: hidden;
  padding: 5%;
}
.box__line {
  position: absolute;
}
.box__line:nth-child(2), .box__line:nth-child(4) {
  width: 100%;
  height: 1px;
}
.box__line:nth-child(2) {
  top: 0;
  left: 0;
  background: linear-gradient(to right, transparent, #ccc);
  animation: animate1 3s linear infinite;
}
.box__line:nth-child(3) {
  top: 0;
  right: 0;
  animation: animate2 2s linear infinite;
  animation-delay: 1s;
  background: linear-gradient(to bottom, transparent, #ccc);
}
.box__line:nth-child(4) {
  bottom: 0;
  left: 0;
  background: linear-gradient(to left, transparent, #ccc);
  animation: animate3 3s linear infinite;
}
.box__line:nth-child(5) {
  top: 0;
  left: 0;
  background: linear-gradient(to top, transparent, #ccc);
  animation: animate4 2s linear infinite;
  animation-delay: 1s;
}
@keyframes animate1 {
  0% {
    transform: translateX(-100%);
  }
  100% {
    transform: translateX(100%);
  }
}
@keyframes animate2 {
  0% {
    transform: translateY(-100%);
  }
  100% {
    transform: translateY(100%);
  }
}
@keyframes animate3 {
  0% {
    transform: translateX(100%);
  }
  100% {
    transform: translateX(-100%);
  }
}
@keyframes animate4 {
  0% {
    transform: translateY(100%);
  }
  100% {
    transform: translateY(-100%);
  }
}
@media screen and (max-width: 768px) {
  .text4_1 {
    width: 45.89041095890411%;
    margin-left: 7%;
    padding-top: 6%;
  }
  .thum4_1 {
    width: 40.41095890410959%;
  }
  .text4_2 {
    width: 39.17808219178082%;
    padding-top: 6%;
  }
  .text4_2 img {
    margin-left: -39%;
  }
  .thum4_2 {
    width: 40.41095890410959%;
    margin-left: 7%;
  }
  .text4_3 {
    width: 74.52054794520548%;
    margin: auto;
  }
  .thum4_3 {
    width: 92.05479452054795%;
    margin-left: 7.945205479452055%;
    margin-top: 5%;
  }
}
@media screen and (min-width: 769px) {
  .title4 {
    width: 76%;
    margin: 10% auto 0;
  }
  .pc_flex {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    width: 88%;
    margin: 7% 0 10% 12%;
  }
  .pc_flex1 {
    width: 45%;
  }
  .pc_flex2 {
    width: 52%;
    display: flex;
    align-items: center;
  }
  .text4_1 {
    width: 50%;
    padding-top: 6%;
  }
  .thum4_1 {
    width: 45%;
  }
  .text4_2 {
    width: 50%;
    padding-top: 6%;
  }
  .thum4_2 {
    width: 45%;
  }
  .text4_3 {
    width: 74.52054794520548%;
    margin: auto;
  }
  .thum4_3 {
    width: 92.05479452054795%;
    margin-left: 7.945205479452055%;
    margin-top: 5%;
  }
}
/*==========================================
 OTHERS
===========================================*/
.thum5 {
  position: relative;
}
.text5 {
  width: 67.80821917808219%;
  position: absolute;
  bottom: 15vw;
  left: 12%;
}
@media screen and (min-width: 769px) {
  .text5 {
    width: 40%;
    position: absolute;
    top: 15vw;
    left: 45%;
  }
}
.thum6 {
  position: relative;
}
.text6 {
  width: 57.80821917808219%;
  position: absolute;
  top: 18vw;
  left: 7%;
}
@media screen and (min-width: 769px) {
  .text6 {
    width: 30%;
    position: absolute;
    top: 10vw;
    left: 12%;
  }
}
/*==========================================
 インスタ
===========================================*/
.main_thum7 {
  position: relative;
  cursor: pointer;
  transition: .7s;
  z-index: 2;
  margin-top: -2px;
}
.main_thum7:hover {
  opacity: .7;
}
.insta {
  position: absolute;
  font-size: 40px;
  top: calc(50% - 20px);
  left: calc(50% - 20px);
}
.main_thum7 a .insta {
  color: #fff;
  text-decoration: none;
  padding-bottom: 10px;
  transition: .7s;
}
.main_thum7:hover a .insta {
  transition: .7s;
}
/*==========================================
 CV
===========================================*/
.cv {
  position: relative;
}
.cv_title {
  width: 60%;
  margin-left: 7%;
  padding-top: 15vw;
}
.cv_logo {
  width: 44.24657534246575%;
  margin-left: 18%;
  padding: 10% 0;
}
.cv_text {
  width: 46.84931506849315%;
  margin-left: 7%;
}
.cv_thum {
  width: 21.23287671232877%;
  position: absolute;
  top: 5vw;
  left: 70%;
}
.cv_btn1 {
  width: 86%;
  margin: 10% auto 0;
}
.cv_btn2 {
  width: 90%;
  margin: 7% 0 0 2%;
}
.cv_text2 {
  width: 86%;
  margin: 2% auto 0;
}
.cv_btn3 {
  width: 86%;
  margin: 10% auto 0;
  padding-bottom: 10%;
}
@media screen and (min-width: 769px) {
  .cv_title {
    width: 30%;
    margin-left: 22%;
    padding-top: 10%;
  }
  .cv_logo {
    width: 20%;
    margin-left: 27%;
    padding: 5% 0;
  }
  .cv_text {
    width: 30%;
    margin-left: 22%;
  }
  .cv_thum {
    width: 18%;
    position: absolute;
    top: 5vw;
    left: 65%;
  }
  .cv_btn1 {
    width: 30%;
    margin-left: 22%;
    margin-top: 3%;
  }
  .cv_btn2 {
    width: 31.5%;
    margin-left: 20.5%;
    margin-top: 3%;
  }
  .cv_text2 {
    width: 30%;
    margin-left: 22%;
    margin-top: 10px;
  }
  .cv_btn3 {
    width: 30%;
    margin-left: 22%;
    margin-top: 3%;
  }
  .cv a:hover {
    opacity: 0.7;
  }
}
/*==========================================
 NEWS
===========================================*/
.news_wrap {
  width: 90%;
  max-width: 800px;
  margin: 10% auto 0;
}
.news_title {
  width: 15%;
  margin: auto;
}
.news_box {
  margin-top: 7%;
  padding: 0 0 20px;
  border-top: 2px #3a3a3a solid;
  border-bottom: 2px #3a3a3a solid;
}
.news_box_days {
  font-size: 14px;
  margin: 20px 0 0;
}
.news_box_text {
  font-size: 16px;
  line-height: 26px;
  margin: 10px 0 0;
}
.foot_logo {
  width: 80%;
  margin: 10% auto 0;
}
ul.foot_navi {
  font-size: 0;
  margin-top: 10%;
}
ul.foot_navi li {
  font-size: 16px;
  display: inline-block;
  width: 100%;
  margin-bottom: 20px;
  text-align: center;
}
ul.foot_navi li a {
  color: #333;
  text-decoration: none;
}
ul.foot_navi li a:hover {
  color: #0F2AC9;
  text-decoration: underline;
}
.copy {
  font-size: 14px;
  text-align: center;
  padding: 5% 0;
}
@media screen and (min-width: 769px) {
  .news_wrap {
    margin: 70px auto 0;
  }
  .news_box {
    margin-top: 50px;
    padding: 0 0 30px;
    border-top: 2px #3a3a3a solid;
    border-bottom: 2px #3a3a3a solid;
  }
  .news_box_days {
    margin: 30px 0 0;
  }
  ul.foot_navi li {
    width: 33%;
    margin-bottom: 0;
  }
}
@media screen and (max-width: 768px) {
  .page_top {
    position: fixed;
    width: 12%;
    max-width: 90px;
    bottom: 25vw;
    right: 10px;
    z-index: 99999;
  }
  .fixed_btn {
    position: sticky;
    width: 100%;
    bottom: 0;
    left: 0;
    z-index: 99998;
  }
  .fixed_btn:hover {
    opacity: .7;
  }
}
@media screen and (min-width: 769px) {
  .page_top {
    position: fixed;
    width: 12%;
    max-width: 90px;
    bottom: 30px;
    right: 10px;
    z-index: 99999;
  }
  .page_top:hover {
    opacity: 0.7;
  }
  .fixed_btn {
    position: fixed;
    width: 80px;
    top: 80px;
    right: 0;
    z-index: 99998;
  }
  .fixed_btn:hover {
    opacity: .7;
  }
}