@charset "UTF-8";
@import url('https://fonts.googleapis.com/css2?family=Zen+Kaku+Gothic+New:wght@400;500;700;900&display=swap');
*:focus {
  outline: none;
}


html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  font: inherit;
  vertical-align: baseline;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

html {
  /* line-height: 1.8; */
  -webkit-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%;
  -webkit-overflow-scrolling: touch;
}

img {
  line-height: 0;
  display: inline;
  max-width: 100%;
}

ol, ul {
  list-style: none !important;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

caption, th, td {
  text-align: left;
  font-weight: normal;
  vertical-align: middle;
}

q, blockquote {
  quotes: none;
}

q:before, q:after {
  content: "";
  content: none;
}

blockquote:before, blockquote:after {
  content: "";
  content: none;
}

a {
  text-decoration: none;
  color: #333;
  -webkit-tap-highlight-color: transparent;
  -webkit-transition: all ease .3s;
  transition: all ease .3s;
}

a:hover {
  text-decoration: none;
}

a img {
  border: none;
}

article, aside, details, figcaption, figure, footer, header, hgroup, main, menu, nav, section, summary {
  display: block;
}

input[type="button"], input[type="submit"] {
  -webkit-appearance-: none;
}

label {
  -webkit-tap-highlight-color: transparent;
}

body {
  color: #323232;
  font-family: "Zen Kaku Gothic New","ヒラギノ角ゴ ProN W3","Hiragino Kaku Gothic ProN","メイリオ",Meiryo,sans-serif;
  line-height: 1.8;
  line-break: strict;
  word-wrap: break-word;
  overflow-wrap: break-word;
  word-break: break-all;
  font-weight: 500;
  font-size: calc(18vw /12.8);
  /*-webkit-font-feature-settings: "palt" 1;
  font-feature-settings: "palt" 1;*/
}

h1, h2, h3, h4, h5, h6 {
  letter-spacing: normal;
}

.sp, .tb {
  display: none;
}

/*
  ここまでcommon
--------------------------------------------- */
.pc {
  display: inline-block;
}

.sp {
  display: none!important;
}

.center {
  text-align: center;
}

.palt {
  -webkit-font-feature-settings: "palt" 1;
  font-feature-settings: "palt" 1;
}

a:hover {
  opacity: 0.8;
}

/* /////////////////// ここから /////////////////// */
header{
  height: calc(720vw / 12.8);
  max-height: 720px;
}
.mv-hero  {
  width: 100%;
  max-width: 1280px;
  position: relative;
  height: 100%;
  margin: 0 auto;
}
.mv-hero video {
  position: absolute;
  top: 0;
  left: 0%;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0.8;
}
.mv-ttl{
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%,-50%);
}
.overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color:#aaa;
  mix-blend-mode: overlay;
}
main{
  width: 100%;
  max-width: 1280px;
  margin: auto;
}



.sec01{
  text-align: center;
}
.sec01 .inner01{
  background: url(../images/sec01-bg01.jpg) repeat-x #EEECE1 bottom left;
  max-height: 490px;
  height: calc(490vw / 12.8);
  position: relative;
  background-size: auto calc(300vw / 12.8);

}
.sec01 .inner01 .img01{
  width: calc(850vw / 12.8);
  max-width: 850px;
  margin-top: calc(90vw / 12.8);
}
.sec01 .inner01 .year{
  width: calc(420vw / 12.8);
  position: absolute;
  bottom:-5vw;
  left: 50%;
  transform: translate(-50%);
}
.sec01 .inner02{
  background: url(../images/sec01-bg02.jpg) no-repeat #EEECE1 top left;
  background-size: cover;
  height: calc(1050vw / 12.8);
  max-height: 1050px;
}
.sec01 .inner02 img{
  mix-blend-mode: hard-light;
}
.sec01 .inner03{
  background: url(../images/sec01-bg03.jpg) repeat-x #EEECE1 top left;
  max-height: 515px;
  height: calc(515vw / 12.8);
  position: relative;
  background-size: auto calc(300vw / 12.8);

}
.sec01 .inner03 .img02{
  width: calc(850vw / 12.8);
  max-width: 850px;
  margin: auto;
}
.sec01 .inner03 .year{
  width: calc(420vw / 12.8);
  position: absolute;
  top:-5vw;
  left: 50%;
  transform: translate(-50%);
}
.sec01 p {
  color:#fff;
  font-weight: 700;
}
.sec01 p.txt01{
  padding: min(calc(90vw / 12.8), 90px)  0 min(calc(60vw / 12.8), 60px)  ;
}
.sec01 p.txt02{
  padding: min(calc(60vw / 12.8), 60px)  0 min(calc(90vw / 12.8), 90px)  ;
}
.sec02{
  height: calc(442vw / 12.8);
  max-height: 442px;
  background: url(../images/sec02-bg.jpg) no-repeat top left #fff;
  background-size: 100% auto;
  position: relative;
}
.sec02-ttl{
  position: absolute;
  bottom: calc(-4vw / 12.8);
  left: 14.6%;
  width: calc(906vw / 12.8);
  max-width: 906px;
}
.sec03{
  background: #E2F5FD;
}
.sec03 .inner01{
  height: calc(747vw / 12.8);
  max-height: 747px;
  background: url(../images/sec03-inner01-bg.jpg) no-repeat top left;
  background-size: 100% auto;
}
.sec03 .inner01 p{
font-weight: 700;
color:#41BFF4;
margin-left: min(calc(690vw / 12.8), 690px) ;
padding-top: min(calc(117vw / 12.8), 117px) ;
line-height: 1.7;
}
.sec03 .inner02{
  text-align: center  ;
  padding-bottom: min(calc(50vw / 12.8), 50px);
}
.sec03 .inner02 > img{
  margin-top: min(calc(-34vw / 12.8), 34px) ;
  width: calc(520vw /12.8);
  max-width: 520px;
}
.sec03 .inner02 p{
  padding: min(calc(15vw / 12.8), 15px) 0 min(calc(25vw / 12.8), 25px);
}
.sec04{
  background: #ddf6f0;
}
.sec04 .inner01{
  height: calc(795vw / 12.8);
  max-height: 795px;
  background: url(../images/sec04-inner01-bg.jpg) no-repeat top left;
  background-size: 100% auto;
}
.sec04 .inner01 p{
font-weight: 700;
color:#1ac19b;
margin-left: min(calc(180vw / 12.8), 180px) ;
padding-top: min(calc(150vw / 12.8), 150px) ;
line-height: 1.7;
}
.sec04 .inner02{
  text-align: center;
  padding-bottom: min(calc(50vw / 12.8), 50px);
}
.sec04 .inner02 > img{
  margin-top: min(calc(-34vw / 12.8), 34px) ;
  width: calc(520vw /12.8);
  max-width: 520px;
}
.sec04 .inner02 p{
  padding: min(calc(15vw / 12.8), 15px) 0 min(calc(25vw / 12.8), 25px);
}

.link-to-mov{
  width: calc(420vw / 12.8);
  max-width: 420px;
}
.sec03 .link-to-mov{
  padding-top:calc(80vw / 12.8);
  margin-left: min(calc(730vw / 12.8), 730px);
}
.sec04 .link-to-mov{
  padding-top:min(calc(85vw / 12.8), 85px);
  margin-left: min(calc(130vw / 12.8), 130px);
}
.sec05{
  background: #dbe9ff;
}
.sec05 .inner01{
  height: calc(795vw / 12.8);
  max-height: 795px;
  background: url(../images/sec05-inner01-bg.jpg) no-repeat top left;
  background-size: 100% auto;
}
.sec05 .inner01 p{
font-weight: 700;
color:#0039a7;
margin-left: min(calc(690vw / 12.8), 690px) ;
padding-top: min(calc(218vw / 12.8), 218px) ;
line-height: 1.7;
}
.sec05 .inner02{
  text-align: center;
  padding-bottom: min(calc(80vw / 12.8), 80px);
}
.sec05 .inner02 > img{
  margin-top: min(calc(-34vw / 12.8), 34px) ;
  width: calc(800vw /12.8);
  max-width: 800px;
}
.sec05 .inner02 p{
  padding: min(calc(15vw / 12.8), 15px) 0 min(calc(25vw / 12.8), 25px);
}
.sec05 .box{
  width:calc(420vw / 12.8);
  max-width: 420px;
  padding-top:min(calc(80vw / 12.8), 80px);
  margin-left: min(calc(730vw / 12.8), 730px);
}
.linkbtn01{
  margin-bottom: min(calc(15vw / 12.8), 15px);
}
.sec06{
  height: calc(368vw / 12.8);
  max-height: 368px;
  background: url(../images/sec06-01.jpg) center top no-repeat;
  background-size:cover;
}
.sec07{
  text-align: center;
  padding:min(calc(50vw / 12.8), 50px) 0 min(calc(50vw / 12.8), 50px);
  background: url(../images/sec07-bg01.png) left top no-repeat ,url(../images/sec07-bg02.png) right top no-repeat #fff;
  background-size: auto 100%;
}
.sec07 p{
  text-align: center;
  margin-bottom:min(calc(50vw / 12.8), 50px);
  line-height: 1.75;
  font-weight: 700;
}
.linkbtn{
  max-width: 535px;
  width: calc(535vw / 12.8);
  position: relative;
  overflow: hidden;
  line-height: 1;
  box-shadow: 0 3px 4px #aaa;

}
.linkbtn a{
  display: block;
  line-height: 0.8;
}
.btnshine{
  position: absolute;
  width: 100%;
  height: 100%;
  top:0;
  left: 0;
}
.linkbtn:hover{
box-shadow: 0 6px 8px #aaa;
}
/*キラッと光る*/
.btnshine:before{
  content: "";
display: block;
width: 25%;
height: 220%;
position: absolute;
left: -30%;
top: -60%;
  background-image: linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255, .8) 50%,rgba(255,255,255,0) 100%);
  background-image: -webkit-gradient(linear, left bottom, right bottom, color-stop(0%,rgba(255,255,255,0)), color-stop(50%,rgba(255,255,255,.8)),color-stop(100%,rgba(255,255,255,0)));
  transform: rotate(45deg);
  -webkit-transform: rotate(45deg);
  animation: shine 2.5s infinite linear;
  -webkit-animation: shine 2.5s infinite linear;
}
@keyframes shine {
  0% { left: -30%; }
  25% { left: 130%; }
  100% { left: 130%; }
}
@-webkit-keyframes shine {
  0% { left: -30%; }
  25% { left: 130%; }
  100% { left: 130%; }
}
.sec08{
  height: calc(533vw / 12.8);
  max-height: 533px;
  background: url(../images/sec08-bg.jpg) center top no-repeat;
  background-size:cover;
}

.sec09 {
  padding: min(calc(50vw / 12.8), 50px) 0; 
  background-image: linear-gradient(90deg, rgba(181,44,164,0.7), rgba(0,157,255,0.7));
  width: 100%;
}
.sec09 p{
  line-height: 1;
  text-align: center;
  font-size: calc(44vw / 12.8);
  font-weight: 900;
  color:#fff;
}
.foot_inner {
  text-align: center;
  padding: calc(45vw / 12.8) 0 ;
  background: #fff;
  max-width: 1280px;
  width: 100%;
  margin: auto;
}
.foot_inner img {
  width: calc(200vw / 12.8);
  max-width: 200px;
}

#page_top {
  position: fixed;
  right: 3%;
  z-index: 3;
  bottom: 30px;
  opacity: 0;
  visibility: hidden;
}
#page_top.active {
  opacity: 1;
  visibility: visible;

}
#cboxClose{
  position: absolute;
  z-index: 2;
  top: 0;
  right: 0;
  display: inline-block;
  width: 35px;
  height: 35px;
  overflow: hidden;
  border: none;
}
#cboxClose:before {
  transform:rotate(45deg)
 }
 #cboxClose:after {
  transform:rotate(-45deg)
 }
 #cboxClose:before,
 #cboxClose:after {
  content:'';
  position:absolute;
  height:2px;
  width:100%;
  top:50%;
  left:0;
  margin-top:-1px;
  background:#fff;
  border-radius:5px;
  margin-top:-6px
 }


/* //////////////////////////////////////////////////////////////////////////////// PC 1280以上 //////////////////////////////////////////////////////////////////////////////// */
@media screen and (min-width: 1281px) {
  body{
    background: #f8f7f5;
    font-size: 18px;
  }
  .sec01 .inner01,.sec01 .inner03{
    background-size: auto;
  }
  .sec09 p{
    font-size: 44px;
  }  
  

}
/* //////////////////////////////////////////////////////////////////////////////// SP 768以下 //////////////////////////////////////////////////////////////////////////////// */
@media screen and (max-width: 768px) {
  .pc {
    display: none;
  }
  
  .sp {
    display: inline-block!important;
  }
  body {
    font-size: calc(27vw / 7.68);
    line-height: 2;
  }
  
  
  header{
    height: calc(1260vw / 7.68);
    max-height: none;
  } 
  .mv-ttl{
    width: calc(674vw / 7.68);
  }
  .sec01 .inner01 {
    background: url(../images/sec01-bg01_sp.jpg) repeat-x #EEECE1 bottom left;
    height: calc(590vw / 7.68);
    background-size: auto calc(399vw / 7.68);
    max-height: none;
  }
  .sec01 .inner01 .year {
    width: calc(416vw / 7.68);
    bottom: 2vw;
  }
  .sec01 .inner01 .img01 {
    width: calc(568vw / 7.68);
  }
  .sec01 .inner02{
    background: url(../images/sec01-bg02_sp01.jpg) no-repeat center top,url(../images/sec01-bg02_sp02.jpg) no-repeat center bottom;
    background-size: 100% calc(983vw / 7.68);
    height: calc(1966vw / 7.68);
    max-height: none;
  }
  .sec01 p.txt01 {
    padding: calc(40vw /7.68) 0 calc(80vw /7.68);
  }
  .sec01 p.txt02 {
    padding: calc(70vw /7.68) 0 0;
  }
  .sec01 .inner03{
    background: url(../images/sec01-bg03_sp.jpg) repeat-x #EEECE1 top left;
    height: calc(600vw / 7.68);
    background-size: auto calc(385vw / 7.68);
    max-height: none;
  }
  .sec01 .inner03 .year {
    width: calc(416vw / 7.68);
    top: -8vw;
  }
  .sec01 .inner03 .img02 {
    width: calc(568vw / 7.68);
  }
  .sec02{
    height: calc(442vw / 7.68);
    background: url(../images/sec02-bg_sp.jpg) no-repeat top left #fff;
    background-size: 100% auto;
  }
  .slide-in_inner.pc {
    display: none;
  }
  .sec02-ttl {
    bottom: calc(-16vw / 7.68);
    left: 8.333%;
    width: calc(640vw / 7.68);
  }
  .sec03 .inner01{
    height: calc(1478vw / 7.68);
    max-height: none;
    background: url(../images/sec03-inner01-bg_sp.jpg) no-repeat top left;
    background-size: 100% auto;
  }
  .sec03 .inner01 p {
    margin-left: auto;
    padding-top: calc(50vw / 7.68);
    text-align: center;
  }
  .sec03 .inner02 > img ,.sec04 .inner02 > img ,.sec05 .inner02 > img {
    margin-top: 0;
    width: calc(568vw / 7.68);
    max-width: 568px;
  }
  .sec03 .inner02 > a,.sec04 .inner02 > a ,.sec05 .inner02 > a {
    width: calc(400vw / 7.68);
    display: inline-block;
    max-width: 400px;
    padding-top: calc(20vw / 7.68);
    min-width: 300px;
  }
  .sec04 .inner01{
    height: calc(1515vw / 7.68);
    max-height: none;
    background: url(../images/sec04-inner01-bg_sp.jpg) no-repeat top left;
    background-size: 100% auto;
  }
  .sec04 .inner01 p {
    margin-left: auto;
    padding-top: calc(80vw / 7.68);
    text-align: center;
  }

  .link-to-mov{
    width: calc(568vw / 7.68);
    max-width: 568px;
  }
  .sec03 .link-to-mov{
    padding-top:calc(750vw / 7.68);
    margin: auto;
  }
  .sec03 .inner02, .sec04 .inner02, .sec05 .inner02{
    padding: calc(90vw / 7.68) 0 calc(64vw / 7.68);
  }
  .sec04 .link-to-mov {
    padding-top: calc(750vw / 7.68);
    margin: auto;
  }

  .sec05 .inner01{
    height: calc(1405vw / 7.68);
    max-height: none;
    background: url(../images/sec05-inner01-bg_sp.jpg) no-repeat top left;
    background-size: 100% auto;
  }
  .sec05 .inner01 p {
    margin-left: auto;
    padding-top: calc(80vw / 7.68);
    text-align: center;
  }
  .sec05 .box {
    width: calc(604vw / 7.68);
    max-width: 604px;
    padding-top: calc(732vw / 7.68);
    margin: auto;
  }
  .sec05 .inner02 {
    padding-bottom: calc(90vw / 7.68);
  }
  .sec06{
    height: calc(732vw / 7.68);
    background: url(../images/sec06-01_sp.jpg) center top no-repeat;
    background-size:cover;
  }
  .sec07{
    padding:calc(90vw / 7.68) 0 calc(70vw / 7.68);
    background: url(../images/sec07-bg01_sp.png) left top no-repeat ,url(../images/sec07-bg02_sp.png) right top no-repeat #fff;
    background-size: auto 100%;
  }
  .sec08 {
    height: calc(340vw / 7.68);
    max-height: none;
    background-size: auto 100%;
  }
  .sec09 {
    padding: calc(40vw / 7.68) 0;
    width: 100%;
  }
  .sec09 p {
    font-size: calc(33vw / 7.68);
  }
  .link_sp{
    width: calc(604vw / 7.68);
    margin: calc(50vw / 7.68) auto calc(40vw / 7.68);
    display: block !important;
  }
  .foot_inner {
    padding: calc(50vw / 7.68) 0;
  }
  .foot_inner img{
    width: calc(200vw / 7.68);
  }



}
/* ////////////////////////////////////////////////////////////////////////////////  //////////////////////////////////////////////////////////////////////////////// */
/* アニメーション */
.blur,.img-wrap{
  opacity:0;
}
.anm.blur.is_animated{
	animation-name:blurAnime;
	animation-duration:1s;
	animation-fill-mode:forwards;
}

@keyframes blurAnime{
  from {
	filter: blur(10px);
	transform: scale(1.02),translateX(-50%);
	opacity: 0;
  }

  to {
	filter: blur(0);
	transform: scale(1),translateX(-50%);
	opacity: 1;
  }
}
/*========= 流れるテキスト ===============*/

/*全共通*/
.slide-in {
	overflow: hidden;
    display: inline-block;
}

.slide-in_inner {
	display: inline-block;

}

/*左右のアニメーション*/
.slide-in.anm{
    opacity: 0;/*事前に透過0にして消しておく*/
}

.slide-in.anm.is_animated {
	animation-name:slideTextX100;
	animation-duration:0.8s;
	animation-fill-mode:forwards;
}

@keyframes slideTextX100 {
  from {
	transform: translateX(-100%); /*要素を左の枠外に移動*/
        opacity: 0;
  }

  to {
	transform: translateX(0);/*要素を元の位置に移動*/
    opacity: 1;
  }
}

.slide-in_inner.anm.is_animated{
	animation-name:slideTextX-100;
	animation-duration:0.8s;
	animation-fill-mode:forwards;
}


@keyframes slideTextX-100 {
  from {
	transform: translateX(100%);/*要素を右の枠外に移動*/
    opacity: 0;
  }

  to {
	transform: translateX(0);/*要素を元の位置に移動*/
    opacity: 1;
  }
}


.img-wrap {
  overflow: hidden;
  position: relative;
}
.img-wrap.is_animated {
  opacity:1;
}


.img-wrap::before,
.img-wrap::after {
  animation: 1.2s cubic-bezier(0.4, 0, 0.2, 1) forwards;
  background: #fff;
  content: '';
  pointer-events: none;
  position: absolute;
  z-index: 1;
}

.img-wrap.anm.is_animated::before {
  animation-name: img-wrap-before;
  inset: 0 0 50%;
}

.img-wrap.anm.is_animated::after {
  animation-name: img-wrap-after;
  inset: 50% 0 0;
}

@keyframes img-wrap-before {
  100% {
    transform: translateX(100%);
  }
}

@keyframes img-wrap-after {
  100% {
    transform: translateX(-100%);
  }
}
/* 左右から */
.anm.fadeInRight.is_animated{
  animation: fadeInRight 0.5s linear ;
}
@-webkit-keyframes fadeInRight {
  from {
    opacity: 0;
    -webkit-transform: translate3d(100%, 0, 0);
    transform: translate3d(100%, 0, 0);
  }

  to {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}
@keyframes fadeInRight {
  from {
    opacity: 0;
    -webkit-transform: translate3d(100%, 0, 0);
    transform: translate3d(100%, 0, 0);
  }

  to {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}
.anm.fadeInLeft.is_animated{
  animation: fadeInLeft 0.5s linear ;
}
@-webkit-keyframes fadeInLeft {
  from {
    opacity: 0;
    -webkit-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0);
  }

  to {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}
@keyframes fadeInLeft {
  from {
    opacity: 0;
    -webkit-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0);
  }

  to {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

