@charset "UTF-8";

/*-------------------------------------------------------------------------------------------------------------------------------
* index
-------------------------------------------------------------------------------------------------------------------------------*/
body.no-scroll {
  overflow: hidden;
}
.main-content {
  background-color: #4ec0ff;
}

/* loading 
======================================== */
.loading {
  position: fixed;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  background-color: #fff;
  z-index: 2000;
  display: flex;
  align-items: center;
  justify-content: center;
  visibility: visible;
  opacity: 1;
  pointer-events: auto;
  transition: opacity 1s ease, visibility 0s linear 1s;
}
.loading.is-ended {
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
}


/* opening 
======================================== */
.opening {
  position: fixed;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  z-index: 1000;
  background-color: rgba(255, 255, 255, 0.8);
  visibility: visible;
  opacity: 1;
  pointer-events: auto;
  transition: opacity 1s ease, visibility 0s linear 1s;
}
.opening.is-ended {
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
}
.opening .movie {
  opacity: 0;
  transition: opacity 0.5s ease;
}
.opening .movie video {
  position: fixed;
  z-index: 10;
  top: calc(50% - 50px);
  left: 50%;
  transform: translate(-50%, -50%);
  width: auto;
  max-width: 90%;
  height: calc(100dvh - 300px);
}
.movie-bg{
  position: fixed;
  z-index: 9;
  top: calc(50% - 50px);
  left: 50%;
  transform: translate(-50%, -50%);
  width: auto;
  max-width: 90%;
  height: calc(100dvh - 300px);
}
.opening .movie.is-visible {
  opacity: 1;
}
.opening .skip {
  position: fixed;
  z-index: 1000;
  bottom: 130px;
  left: 50%;
  transform: translateX(-50%);
}


/* procedure 
======================================== */
.procedure-slider-wrapper {
  height: 1375px;
  background: url(../img/procedure_slide_bg.jpg) no-repeat top center;
}
.procedure-btn-01 {
  position: absolute;
  z-index: 10;
  bottom: 60px;
  left: 40px;
}
.procedure-btn-03 {
  position: absolute;
  z-index: 10;
  bottom: 40px;
  left: 40px;
}

/* splide */
#procedure-slider .splide__slide {
  position: relative;
}
#procedure-slider .splide__arrow > svg {
	display: none;
}
#procedure-slider .splide__arrow {
	font-size: 0;
	position: absolute;
	z-index: 100;
	bottom: 45px;
	display: block;
	width: 74px;
	height: 100px;
	padding: 0;
  border: none;
	cursor: pointer;
}
#procedure-slider .splide__arrow--prev  {
	left: 100px;
	background: url(../img/slider_prev.png) no-repeat center center;
}
#procedure-slider .splide__arrow--next {
	right: 100px;
	background: url(../img/slider_next.png) no-repeat center center;
}
#procedure-slider .splide__pagination {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  gap: 0 18px;
  min-height: 160px;
  padding: 10px;
}
#procedure-slider .splide__pagination li {
	cursor: pointer;
}
#procedure-slider .splide__pagination li button {
	display: block;
	padding: 0;
	font-size: 0;
	line-height: 0;
	width: 32px;
	height: 33px;
	cursor: pointer;
	background: url(../img/slider_dot.png) no-repeat center center;
}
#procedure-slider .splide__pagination li button:hover, 
#procedure-slider .splide__pagination li button:focus, 
#procedure-slider .splide__pagination li button.is-active {
	background: url(../img/slider_dot_current.png) no-repeat center center;
}


/* example 
======================================== */
.example-list-wrapper {
  height: 1150px;
  background: url(../img/example_bg.jpg) no-repeat top center;
}
.example-list-ttl {
  text-align: center;
}
.example-list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 10px 0;
  padding: 30px;
}
.example-list button {
  padding: 0;
  margin: 0;
  transition: opacity 0.4s;
}
.example-list button:hover {
  opacity: 0.6;
}

.example-list button.example-list-btn-01 {
  margin: 0 20px 0 50px;
}
.example-list button.example-list-btn-02 {
  margin: 0 50px 0 20px;
}
.example-list button.example-list-btn-06 {
  margin: 0 20px 0 0;
}
.example-list button.example-list-btn-07 {
  margin: 0 0 0 20px;
}


/* map 
======================================== */
.map {
  padding-bottom: 120px;
}
.map-dijicata-wrapper {
  position: relative;
}
.map-dijicata {
  text-align: center;
}
.map-img-01 {
  position: absolute;
  z-index: 10;
  top: -33px;
  left: 19px;
}
.map-img-02 {
  position: absolute;
  z-index: 10;
  bottom: 36px;
  right: 15px;
}
.map-img-03 {
  position: absolute;
  z-index: 10;
  bottom: 70px;
  left: 50px;
}

.map-list-wrapper {
  position: relative;
}
.map-list-content {
  position: relative;
  height: 400px;
  overflow: hidden;
  transition: height 0.4s ease;
}
.map-list-content::after {
  content: '';
  position: absolute;
  z-index: 10;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 50px;
  background: url(../img/map_list_shadow.png) no-repeat bottom center;
  transition: opacity 0.4s ease;
}
.map-list-content.open {
  height: auto;
}
.map-list-content.open::after {
  opacity: 0;
  pointer-events: none;
}
.map-list-btn {
  position: absolute;
  z-index: 10;
  bottom: 43px;
  left: 232px;
}


/* bonus 
======================================== */
.bonus {
  padding-bottom: 70px;
  background-image: url(../img/bonus_bg_01.png);
  background-position: right 23px bottom 60px;
  background-repeat: no-repeat;
}

.bonus-slider-wrapper {
  height: 700px;
  padding: 150px 0 0;
  background: url(../img/bonus_slide_bg.jpg) no-repeat top center;
}

/* splide */
#bonus-slider .splide__slide {
  position: relative;
  text-align: center;
  pointer-events: none;
}
#bonus-slider .splide__slide.is-active {
  pointer-events: auto;
}
#bonus-slider .splide__slide .image img {
  transform: scale(0.5);
  transition: transform 0.4s;
}
#bonus-slider .splide__slide.is-active img {
  transform: scale(1);
}
#bonus-slider .splide__slide .txt {
  opacity: 0;
  margin-top: 20px;
}
#bonus-slider .splide__slide.is-active .txt {
  opacity: 1;
}

#bonus-slider .splide__arrow > svg {
	display: none;
}
#bonus-slider .splide__arrow {
	font-size: 0;
	position: absolute;
	z-index: 100;
	bottom: 30px;
	display: block;
	width: 74px;
	height: 100px;
	padding: 0;
  border: none;
	cursor: pointer;
}
#bonus-slider .splide__arrow--prev  {
	left: 40px;
	background: url(../img/slider_prev.png) no-repeat center center;
}
#bonus-slider .splide__arrow--next {
	right: 40px;
	background: url(../img/slider_next.png) no-repeat center center;
}


.bonus-btn {
  width: 572px;
  margin: 0 auto;
  /* background: url(../img/qa_btn_bg.png) no-repeat; */
}


/* qa 
======================================== */
.qa {
  padding-bottom: 80px;
}
.qa-btn {
  width: 572px;
  margin: 0 auto;
  /* background: url(../img/qa_btn_bg.png) no-repeat; */
}


/* illustrator 
======================================== */
.illustrator {
  position: relative;
}
.illustrator-btn {
  position: absolute;
  bottom: 43px;
  left: 233px;
  background: url(../img/illustrator_btn_bg.png) no-repeat;
}


/* f-nav 
======================================== */
.f-nav {
  position: sticky;
  bottom: 0;
  left: calc(50% - 375px);
  width: 750px;
  z-index: 100;
  transform: translateY(100%);
  transition: transform 0.3s ease-in-out;
}
.f-nav.active {
  transform: translateY(0);
}
.f-nav a:hover {
  opacity: 1;
}
.f-nav ul {
  display: flex;
  flex-wrap: wrap;
  background-color: #000;
}


/*-------------------------------------------------------------------------------------------------------------------------------
* each 
-------------------------------------------------------------------------------------------------------------------------------*/

/* f-txt */
.f-txt {
  position: relative;
  background-color: #000;
  color: #fff;
  padding: 70px 45px 70px;
  font-size: 24px;
  font-feature-settings: "palt";
  text-align: justify;
}
.f-txt::after {
  content: '';
  position: absolute;
  bottom: -30px;
  left: 0;
  width: 100%;
  height: 30px;
  background-color: #000;
}
.f-txt p{
  padding-left: 1em;
  text-indent: -1em
}





