@charset "utf-8";

/**=====================================
* html5-doctor-reset-stylesheet.min.css
======================================= */
html,body,div,span,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,abbr,address,cite,code,del,dfn,em,img,ins,kbd,q,samp,small,strong,sub,sup,var,b,i,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,figcaption,figure,footer,header,hgroup,menu,nav,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;outline:0;font-size:100%;vertical-align:baseline;background:transparent;box-sizing: border-box;}
article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}
nav ul{list-style:none}
blockquote,q{quotes:none}
blockquote:before,blockquote:after,q:before,q:after{content:none}
a{margin:0;padding:0;font-size:100%;vertical-align:baseline;background:transparent}
ins{background-color:#ff9;color:#000;text-decoration:none}
mark{background-color:#ff9;color:#000;font-style:italic;font-weight:bold}
del{text-decoration:line-through}
abbr[title],dfn[title]{border-bottom:1px dotted;cursor:help}
table{border-collapse:collapse;border-spacing:0}
hr{display:block;height:1px;border:0;border-top:1px solid #ccc;margin:1em 0;padding:0}
input,select{vertical-align:middle}
ul li{list-style:none}
img{vertical-align:bottom;}

input, textarea{
	line-height: 120%;
}
body{
	font-family: Verdana,"メイリオ",Meiryo,"ヒラギノ角ゴ Pro W3","Hiragino Kaku Gothic Pro","ＭＳ Ｐゴシック","MS PGothic",sans-serif;
	font-size: 100%;
	line-height: 1.7;
	color: #111;
	background-color: #fff;
	-webkit-text-size-adjust: 100%;
}

a{
	color: #3e3a39;
	text-decoration: none;
	transition: opacity .3s;
}
a:hover{
	opacity: 0.7;
	transition: opacity .3s;
}

/*￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣*/
/* font size
/*＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿*/

@media screen and (min-width: 768px) {
	html{
		font-size: 16px;
	}
}
@media screen and (max-width: 768px) {
	html{
		font-size: calc(7px + 0.8vw);
	}
}

body{
	font-size: 0.7rem;
}

/*￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣*/
/* common
/*＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿*/

img{
	max-width: 100%;
}

@media screen and (min-width: 768px) {
	.forsp{
		display: none;
	}
	.forpc{
		display: block;
	}

	.inner{
		max-width: 800px;
		margin: 0 auto;
	}
}
@media screen and (max-width: 768px) {
	.forsp{
		display: block;
	}
	.forpc{
		display: none;
	}
}

/*￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣*/
/* common
/*＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿*/

.wrapper{
	overflow: hidden;
}
.subtitle {
  font-size: 4rem;
  font-weight: normal;
  color: #f1f2f5;
  text-align: center;
	line-height: 1;
}
.sec-event .subtitle{
	color: #6c86c5;
}
.sec-movie .subtitle{
	color: #97cff9;
}

.red-button,
.blue-button{
	display: block;
	margin: 1rem auto;
	text-align: center;
	font-weight: bold;
	border-radius: 1.3rem;
	border: 1px solid #fff;
	box-shadow: 0 .3rem .3rem rgba(0,0,0,0.2);
	color: #fff;
	position: relative;
	line-height: 1;
	transition: .3s;
}
.red-button {
	background: linear-gradient(to bottom, #e30102, #b60000);
}
.blue-button {
	background: linear-gradient(to bottom, #2d8ad0, #0d58b9);
}
.red-button::after,
.blue-button::after {
	content: '▶';
	position: absolute;
	right: 1.3rem;
	font-size: 1.2;
	top: 50%;
	transform: translateY(-50%);
}
.red-button:hover,
.blue-button:hover {
	box-shadow: unset;
  transform: translateY(4px);
}

.modal{
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background-color: rgba(0, 0, 0, 0.5);
	z-index: 5;
}
.modal-inner{
	width: 100%;
	height: 100%;
	display: flex;
	justify-content: center;
	align-items: center;
}
.modal-inner img{
	max-width: 100%;
	max-height: 100%;
	position: relative;
	z-index: 5;
}
.modal iframe{
	aspect-ratio: 5 / 3;
	width: 100%;
	max-width: 700px;
}

/* visual */

.visual{
	position: relative;
}
.visual .logo{
	max-width: 2500px;
	margin: 0 auto;

}
.visual .logo img{
	width: 100%;
}

/* event */

.sec-event{
  background-color: #1d3d8f;
  color: #fff;
	padding: 3rem 0;
	padding-bottom: 15rem;
	clip-path: polygon(0 0, 100% 0, 100% calc(100% - 9rem), 0 100%);
	position: relative;
	z-index: 2;
}
.sec-event .subtitle small {
  display: block;
  font-size: 1.2rem;
  color: white;
	font-weight: bold;
	margin-top: .5rem;
}
.sec-event dl {
  border-top: 1px solid #fff;
	display: grid;
  grid-template-columns: 8rem 1fr;
	font-size: .9rem;
}
.sec-event dt {
  font-weight: bold;
}

/* campaign */

.sec-campaign{
	position: relative;
	background-color: #ecf7fe;
}
.sec-campaign .inner{
	background-color: #fff;
	padding: 1rem;
	box-shadow: .5rem 1rem 1rem rgba(0, 0, 0, 0.1);
	position: relative;
	z-index: 3;
	margin-top: -13rem;
}
.sec-campaign:before,
.sec-campaign:after{
	position: absolute;
	width: 100%;
	display: block;
	content: '';
	left: 0;
	right: 0;
}
.sec-campaign:after{
	clip-path: polygon(0 70%, 100% 0, 100% 100%, 0 100%);
	bottom: 0;
	z-index: 1;
	background-color: #deeaf7;
	height: 30rem;
}
.sec-campaign:before{
	clip-path: polygon(0 9rem, 100% 0, 100% 100%, 0 calc(100% - 20rem));
	top: 3rem;
	z-index: 1;
	background-color: #deeaf7;
	height: 50rem;
}
.campaign-date {
  text-align: center;
  color: #213f85;
	border-top: 3px solid #213f85;
	border-bottom: 3px solid #213f85;
	margin: 1.5rem 0 2rem;
	padding: 1rem 0;
}
.campaign-date dt {
  font-size: 1.2rem;
	font-weight: bold;
  margin-bottom: 1rem;
}

.campaign-text {
  text-align: center;
  font-size: 1.5rem;
  line-height: 1.6;
  font-weight: bold;
}
.campaign-text span{
  font-size: 2.1rem;
}
.campaign-text .highlight-number {
  color: #223f85;
}
.campaign-text .highlight-points {
  background-color: #fcff00;
  color: #df0402;
}

.campaign-howto {
  background-color: #deeaf8;
  padding: .5rem 1.5rem;
}
.campaign-howto li {
  display: grid;
	align-items: center;
	grid-template-columns: 3.5rem 1fr;
  gap: 1rem;
  font-size: 1.2rem;
	font-weight: bold;
	margin: 1.5rem 0;
}
.campaign-howto li::before {
	display: flex;
	justify-content: center;
	align-items: center;
  content: counter(item);
  counter-increment: item;
	font-size: 1.5rem;
	font-weight: normal;
	font-style: italic;
	line-height: 1;
	width: 2rem;
	aspect-ratio: 1 / 1;
	padding: 1rem;
  background: linear-gradient(to right bottom, #489fe4, #233f88);
  color: #fff;
  text-align: center;
}
.campaign-howto {
  counter-reset: item;
}

.campaign-notice {
  border: .4rem solid #4aa2e2;
  padding: 2rem;
	margin: 2rem;
  color: #4aa2e2;
  font-size: .9rem;
  line-height: 2;
}
.campaign-notice h3 {
  text-align: center;
  font-size: 1.6rem;
  font-weight: bold;
  color: #4aa2e2;
  margin-bottom: 1rem;
}
.campaign-notice h3 span{
	border-bottom: 2px solid #4aa2e2;
}

.sec-campaign .red-button{
	font-size: 2rem;
	padding: 1.5rem 2rem;
}

/* movie */

.movie-wrap{
	position: relative;
	background-color: #deeaf7;
	padding-top: 15rem;
	margin-top: -3rem;
}
.movie-wrap::before,
.movie-wrap::after{
	display: block;
	content: '';
	position: absolute;
	z-index: 10;
}
.movie-wrap::after{
	width: 96%;
	margin-left: auto;
	aspect-ratio: 1281 / 367;
	background: url(../img/train.png) no-repeat 0 0 / 100% auto;
	bottom: -5vw;
	right: 0;
}
.movie-wrap::before{
	width: 980px;
	max-width: 1328px;
	aspect-ratio: 1328 / 689;
	background: url(../img/movie_bg.png) no-repeat 0 0 / 100% auto;
	top: 2.8rem;
	left: calc(50% + 1rem);
	transform: translateX(-50%);
}
.sec-movie{
	padding: 19rem 1rem 25vw;
	background: url(../img/movie_bg2.png) no-repeat center 80% / 90% auto #4ba2e3;
	text-align: center;
	clip-path: polygon(0 0, 100% 10.5rem, 100% calc(100% - 15vw), 0 100%);
	position: relative;
}
.sec-movie h2 + p{
	font-size: 1.5rem;
	font-weight: bold;
	color: #fff;
	line-height: 1.5;
	margin-top: .5rem;
}
.sec-movie .movie-link{
	display: grid;
	grid-template-columns: 1fr 1fr;
	grid-gap: 2.2rem 2rem;
	margin-top: 2rem;
}
.sec-movie .movie-link > div img{
	border-radius: 1.5rem;
}
.sec-movie .movie-link a{
	display: block;
	position: relative;
}
.sec-movie .movie-link a::before,
.sec-movie .movie-link a::after{
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	display: block;
	content: '';
}
.sec-movie .movie-link a::before{
	width: 3rem;
	height: 3rem;
	border: 1px solid #fff;
	border-radius: 10rem;
}
.sec-movie .movie-link > div:nth-of-type(1) a::before{
	width: 5rem;
	height: 5rem;
}
.sec-movie .movie-link a::after{
	width: 1rem;
	height: .7rem;
	clip-path: polygon(0 0, 100% 50%, 0 100%);
	background-color: #fff;
	margin-right: .1rem;
}
.sec-movie .movie-link > div:nth-child(1) a::after{
	width: 1.6rem;
	height: 1.1rem;
}
.sec-movie .movie-link > div:nth-child(1){
	grid-column: 1 / 3;
}

/* history */

.sec-history{
	background-image: url(../img/history_bg.png), url(../img/history_bg2.png), url(../img/history_bg.png);
	background-repeat: no-repeat, no-repeat;
	background-position: right 10rem, left 70%, right 93%;
	background-size: 30% auto, 30% auto, 30% auto;
	background-color: #deeaf7;
	padding: 10rem 0 17vw;
	margin-top: -7rem;
	clip-path: polygon(0 7rem, 100% 0, 100% 100%, 0 100%);
	position: relative;
}
.sec-history::after{
	display: block;
	content: '';
	aspect-ratio: 1264 / 161;
	width: 90%;
	position: absolute;
	right: 0;
	bottom: 0;
	background: url(../img/wrapping.png) no-repeat 0 0 / 100% auto;
}
.sec-history .subtitle p{
	color: #223f86;
	font-size: 1.4rem;
	font-weight: bold;
	margin-top: .5rem;
}
.sec-history .subtitle p strong{
	font-size: 3.5rem;
	display: inline-block;
	margin-top: .5rem;
}

.history-timeline{
	position: relative;
	padding-bottom: 3rem;
}

.timeline-sec {
  position: relative;
  margin-bottom: 2rem;
	margin-top: 2rem;
}

.timeline-year {
  width: 6rem;
	aspect-ratio: 1 / 1;
  background: linear-gradient(to bottom, #00aaff, #0033cc);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 2rem;
	position: relative;
	z-index: 2;
}
.timeline-year img {
  width: 65%;
}

.timeline-contents {
  position: relative;
}
.timeline-card{
	position: relative;
}
.card-content {
  background: #fff;
  padding: 1.3rem 1.3rem;
  border-radius: 1.5rem;
}
.timeline-card.-img .card-content{
  padding: 0 1.3rem 1.5rem 1.3rem;
}

.card-image{
	margin: 0 -1.3rem 1rem;
}
.card-image img {
  width: 100%;
  border-radius: 1.5rem 1.5rem 0 0;
}
.card-body {
  line-height: 1.6;
}
.card-date {
  display: block;
	width: fit-content;
  background: #223f86;
  color: #fff;
  font-size: .9rem;
  padding: .3rem .7rem;
  border-radius: 1rem;
  margin-bottom: .5rem;
	line-height: 1;
}
.card-title {
  color: #223f86;
  font-size: 1.1rem;
  font-weight: bold;
}
.card-title small{
	font-size: .9rem;
}
.y1995 .card-title{
	text-align: center;
}
.card-text{
	font-size: .7rem;
	margin-top: 1rem;
}
.card-text ul {
  list-style: none;
	margin-bottom: .5rem;
}
.card-text ul li {
  position: relative;
	padding-left: 1rem;
  color: #333;
	margin: .25rem 0;
}
.card-text ul li::before {
  content: '';
  position: absolute;
	top: .3rem;
  left: 0;
  width: .6rem;
  height: .6rem;
  background-color: #223f86;
  border-radius: 50%;
}
.card-text a {
  color: #223f86;
  font-weight: bold;
  text-decoration: underline;
  font-size: 1rem;
  display: inline-block;
}
.card-text a:before{
	content: '▶';
}

.timeline-now{
	text-align: center;
	opacity: 0;
	transform: translateY(5rem);
}
.timeline-now img{
	width: 50%;
}
.timeline-now[data-active=true]{
	opacity: 1;
	transform: translateY(0);
	transition: .7s ease .3s;
}

/* point */

.sec-point{
	background: url(../img/point_bg.png) no-repeat center 1rem / 1050px auto #4ba2e3;
	text-align: center;
	padding: 6rem 0 1rem;
}
.sec-point h2{
	margin-bottom: 3rem;
	position: relative;
}
.sec-point h2 img{
	width: 85%;
}
/* .sec-point h2::before,
.sec-point h2::after{
	display: block;
	content: '';
	background: url(../img/point_accent.png) no-repeat 0 0 / 100% auto;
	aspect-ratio: 227 / 303;
	position: absolute;
	top: -4rem;
	width: 9rem;
}
.sec-point h2::before{
	left: -7rem;
}
.sec-point h2::after{
	right: -7rem;
	transform: scaleX(-1);
} */
.sec-point h3{
	color: #1361bd;
	font-size: 1.7rem;
	margin-bottom: 1.5rem;
}
.point-sec img{
	width: 100%;
	margin-bottom: 1rem;
}
.point-banner{
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 2rem;
}
.point-banner a{
	display: block;
}
.point-banner p{
	margin-bottom: .5rem;
	font-size: 1.1rem;
	font-weight: bold;
}
.point-sec,
.point-banner{
	background-color: #fff;
	border-radius: 1rem;
	box-shadow: 0 0 1rem rgba(0, 0, 0, 0.2);
	padding: 2rem 1.5rem;
	margin-bottom: 3rem;
}
.point-sec:nth-of-type(1){
	margin-bottom: 4rem;
}
.point-sec a{
	width: 70%;
	font-size: 1.4rem;
	padding: 2rem 2rem;
}

/* footer */

footer{
	color: #fff;
	text-align: center;
	padding: 2rem;
	background-color: #4ba2e3;
}

/* animation */

.sec-campaign h2{
	transform: scale(0.7, 0.2);
	opacity: 0;
}
.sec-campaign h2[data-active=true]{
	opacity: 1;
	transform: scale(1);
	transition: .5s cubic-bezier(0.175, 0.885, 0.32, 1.275) .1s;
}

.movie-wrap::before{
	transform: translateX(-50%) scale(0.7, 0.2);
	opacity: 0;
}
.movie-wrap[data-active=true]::before{
	transform: translateX(-50%) scale(1);
	opacity: 1;
	transition: .5s cubic-bezier(0.175, 0.885, 0.32, 1.275) .1s;
}

.timeline-card{
	opacity: 0;
	transition: .7s cubic-bezier(0.175, 0.885, 0.32, 1.275) .3s;
}
.timeline-card[data-active=true] {
	opacity: 1;
}

.timeline-year{
	transform: scale(0);
	transition: .7s cubic-bezier(0.175, 0.885, 0.32, 1.275) .3s;
}
.timeline-year[data-active=true]{
	transform: scale(1);
}

.card-content{
	clip-path: inset(2rem 1rem);
	transition: .7s cubic-bezier(0.175, 0.885, 0.32, 1.275) .3s;
}
.timeline-card[data-active=true] .card-content{
	clip-path: inset(0);
}
.card-title,
.card-date{
	transform: translateY(3rem);
}
.timeline-card[data-active=true] .card-title,
.timeline-card[data-active=true] .card-date{
	transform: translateY(0);
	transition: .7s ease;
}

.timeline-line{
	display: block;
	content: '';
	width: .8rem;
	height: 100%;
  background: linear-gradient(to bottom, rgba(255, 255, 255, 0.3), rgba(255, 255, 255, 0.3) 95%, rgba(255, 255, 255, 0));
	position: absolute;
	top: 0;
	left: 50%;
	transform: translateX(-50%);
	bottom: 0;
	z-index: 0;
}
.timeline-line [data-js="history-current"] {
  width: 100%;
	background-color: #fff;
}
.timeline-line::after{
	display: block;
	content: '';
	width: 100%;
	height: 5rem;
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
  background: linear-gradient(to bottom, rgba(222, 234, 247, 0.0), rgba(222, 234, 247, 1));
}