@charset "utf-8";

/* -------------------- idx_bg -------------------- */
.idx_bg {
	background-color: #ffffff;
}

.idx_bg img {
	width: 100%;
	display: block;
}

/* -------------------- mv -------------------- */
.idx_mv {
	width: 100%;
	background: url(../img/bg_idx_mv.jpg) no-repeat right top;
	background-size: cover;
	padding: 100px 0 200px 0;
	padding: 8vw 0 15vw 0;
	position: relative;
}

.idx_mv_inner {
	width: calc(50% + 50px);
	text-align: center;
}

.idx_mv_tit {
	display: block;
	margin: 0 auto 2px auto;
}

.idx_mv_txt {
	font-size: 2.4rem;
	line-height: 1.9;
	font-weight: bold;
	text-shadow: 0 0 1px #ffffff, 0 0 3px #ffffff, 0 0 5px #ffffff, 0 0 7px #ffffff;
}

.idx_bg01 {
	background-color: transparent;
	position: absolute;
	width: 100%;
	left: 0;
	bottom: 0;
}

/* -------------------- video -------------------- */
.idx_video {
	padding: 65px 0 40px 0;
	background-color: #f6f4ef;
}

.idx_video .inner {
	display: flex;
	align-items: center;
}

.idx_video_content {
	width: 43%;
}

.idx_video_content .ttl_h2 {
	text-align: center;
	font-size: 2.4rem;
	line-height: 1.54;
	font-weight: bold;
}

.idx_video_inner {
	margin-left: 7%;
	width: 45%;
}

.idx_video_inner img {
	display: block;
}

.idx_video_inner video {
	display: block;
	width: 100%;
}

/* -------------------- intro -------------------- */
.idx_intro {
	position: relative;
	z-index: 1;
}

.idx_intro .inner {
	position: relative;
}

.idx_intro_block_wrap {
	padding-top: 100px;
}

.idx_intro_block {
	width: 100%;
	display: flex;
	justify-content: space-between;
	margin-bottom: 150px;
	position: relative;
}

.idx_intro_block:last-of-type {
	margin-bottom: 0;
}

.idx_intro_block:nth-of-type(2n) {
	flex-direction: row-reverse;
}

.idx_intro_content {
	width: 35%;
}

.idx_intro_content .ttl_h2 {
	margin-bottom: 20px;
}

.idx_intro_content .ttl_h2 img {
	display: block;
}

.idx_intro_content .content_txt {
	margin: 20px 0 20px 0;
}




.idx_intro_img {
	width: 56.1%;
	position: relative;
}

.idx_intro_img img {
	display: block;
}

.idx_intro_img::after {
	content: "";
	display: block;
	width: 234px;
	aspect-ratio: 234/204;
	position: absolute;
	top: -55px;
	right: -75px;
	border-radius: 10px;
	background-color: #dcedd3;
	z-index: -1;
}

.idx_intro_block:nth-of-type(2) .idx_intro_img::after {
	top: -55px;
	left: -75px;
	right: auto;
	background-color: #f6f4ef;
}

.idx_intro_block:nth-of-type(3) .idx_intro_img::after {
	top: auto;
	bottom: -45px;
	left: -75px;
	right: auto;
	background-color: #fcdedf;
}

.idx_flower {
	display: block;
}

.idx_flower_block01 {
	position: absolute;
	top: -140px;
	left: 20px;
	display: flex;
	align-items: end;
}

.idx_flower_block01 canvas:last-of-type {
	margin-bottom: 20px;
	margin-left: 50px;
}

.idx_flower_block02 {
	position: absolute;
	top: -140px;
	right: 0;
}

.idx_flower_block03 {
	position: absolute;
	top: 30px;
	right: -140px;
}

.idx_flower_block04 {
	position: absolute;
	top: -100px;
	right: 100px;
}

.idx_flower_block05 {
	position: absolute;
	top: -140px;
	left: 30px;
}

.idx_flower_block06 {
	position: absolute;
	top: -120px;
	right: 12px;
}

/* -------------------- faq -------------------- */
.idx_faq {
	margin-top: -5vw;
	position: relative;
}

.idx_bg03 img {
	width: 85%;
}

.idx_faq .inner {
	position: absolute;
	top: 16vw;
	left: 0;
	right: 0;
	margin: auto;
}

.idx_faq .ttl_h2 img {
	display: block;
	margin: 0 auto 50px auto;
}

.faq_num {
	display: block;
}

.faq_num_on {
	display: none;
}

.mySwiper .swiper-slide img {
	margin: 0 auto;
	cursor: pointer;
}

.mySwiper .swiper-wrapper {
	justify-content: center;
	transform: none !important;
}

.mySwiper .swiper-slide {
	width: 79px !important;
	margin-right: 94px;
}

.mySwiper .swiper-slide:nth-of-type(5n) {
	margin-right: 0;
}

.mySwiper .swiper-slide-thumb-active .faq_num {
	display: none;
}

.mySwiper .swiper-slide-thumb-active .faq_num_on {
	display: block;
}

.mySwiper2 {
	background-color: #9acc82;
	color: #ffffff;
	padding: 30px 70px;
	box-sizing: border-box;
	-moz-box-sizing: border-box;
	-webkit-box-sizing: border-box;
	margin-top: 20px;
}

/* -------------------- banner -------------------- */
.idx_banner{
	margin-top: 6vw;
}
.idx_banner .inner {
	position: relative;
	z-index: 1;
}

.idx_banner_list {
	width: 100%;
	display: flex;
	justify-content: space-between;
	position: relative;
	z-index: 1;
}

.idx_banner_list>li {
	width: 48.4%;
}

@media only screen and (max-width:1400px) {

	/* -------------------- mv -------------------- */
	.idx_mv {
		/* padding: 75px 0 200px 0; */
		padding: 59px 0 190px 0;
		background-position: center center;
	}
	/* -------------------- video -------------------- */
	.idx_video {
		padding: 65px 0;
	}

	/* -------------------- intro -------------------- */

	.idx_flower {
		display: block;
	}

	.idx_flower_block01 {
		top: -110px;
	}

	.idx_flower_block03 {
		top: -100px;
		right: auto;
		left: 20%;
	}

	.idx_flower_block04 {
		position: absolute;
		top: -100px;
		right: 100px;
	}

	.idx_flower_block05 {
		position: absolute;
		top: -140px;
		left: 30px;
	}

	.idx_flower_block06 {
		position: absolute;
		top: -120px;
		right: 12px;
	}

	/* -------------------- faq -------------------- */
	.idx_faq {
		margin-top: -60px;
	}
	.idx_bg03 img{
		width: 100%;
	}

	.idx_faq .inner {
		top: 240px;
	}

	/* -------------------- banner -------------------- */
	.idx_banner {
		margin-top: 130px;
	}
}

@media only screen and (max-width:1200px) {

	/* -------------------- intro -------------------- */
	

	.idx_intro_img::after {
		top: -35px;
		right: -35px;
	}

	.idx_intro_block:nth-of-type(2) .idx_intro_img::after {
		top: -35px;
		left: -35px;
		right: auto;
	}

	.idx_intro_block:nth-of-type(3) .idx_intro_img::after {
		top: auto;
		bottom: -35px;
		left: -35px;
		right: auto;
	}

	/* -------------------- faq -------------------- */

	.idx_faq .inner {
		top: 16vw;
	}
}

@media only screen and (max-width:1024px) {

	/* -------------------- mv -------------------- */
	.idx_mv {
		padding: 70px 0 120px 0;
		background-position: center center;
	}

	.idx_mv_inner {
		width: 495px;
		max-width: 100%;
		/* width: 80%; */
		/* margin: 0 auto; */
		text-align: center;
	}

	.idx_mv_txt {
		font-size: 2.2rem;
	}

	/* -------------------- video -------------------- */
	.idx_video {
		padding: 50px 0;
	}

	.idx_video_content {
		width: 48%;
	}

	.idx_video_content .ttl_h2 {
		font-size: 2.2rem;
	}

	.idx_video_inner {
		margin-left: 2%;
		width: 50%;
	}

	/* -------------------- intro -------------------- */

	.idx_intro_block_wrap {
		padding-top: 80px;
	}

	.idx_intro_block {
		margin-bottom: 120px;
	}

	/* -------------------- faq -------------------- */
	.idx_faq {
		margin-top: 0;
	}

	.idx_faq .inner {
		top: 14vw;
	}
	.mySwiper .swiper-slide{
		margin-right: 50px;
	}
}

@media only screen and (max-width:768px) {

	/* -------------------- mv -------------------- */
	.idx_mv {
		background-image: url(../img/bg_idx_mv_sp.jpg);
		background-position: center right;
		padding: 50vw 0 15vw 0;
	}

	.idx_mv_inner {
		width: 100%;
	}

	.idx_mv_tit {
		margin-bottom: 10px;
		max-width: 80%;
	}

	.idx_mv_txt {
		font-size: 2rem;
		text-shadow: 0 0 1px #ffffff, 0 0 2px #ffffff, 0 0 3px #ffffff, 0 0 4px #ffffff, 0 0 5px #ffffff, 0 0 6px #ffffff, 0 0 7px #ffffff, 0 0 8px #ffffff;
	}

	/* -------------------- video -------------------- */

	.idx_video .inner {
		display: block;
	}

	.idx_video_content {
		width: 100%;
	}

	.idx_video_content .ttl_h2 {
		font-size: 2rem;
	}

	.idx_video_inner {
		margin-left: 0;
		margin-top: 30px;
		width: 100%;
	}

	/* -------------------- intro -------------------- */

	.idx_intro_block_wrap {
		padding-top: 60px;
	}
	.idx_intro .inner{
		width: 100%;
		margin-top: 50px;
	}

	.idx_intro_block {
		display: block;
		margin-bottom: 80px;
	}

	.idx_intro_content {
		width: 100%;
		text-align: right;
		padding: 0 5%;
		box-sizing: border-box;
		-moz-box-sizing: border-box;
		-webkit-box-sizing: border-box;
	}

	.idx_intro_content .ttl_h2 {
		margin-bottom: 20px;
	}

	.idx_intro_content .ttl_h2 img {
		display: block;
	}

	.idx_intro_content .content_txt {
		margin-bottom: 10px;
		text-align: left;
	}

	.idx_intro_img {
		width: 100%;
		margin-top: 70px;
		padding: 0 5%;
		box-sizing: border-box;
		-moz-box-sizing: border-box;
		-webkit-box-sizing: border-box;
	}

	.idx_intro_img img {
		display: block;
		margin: 0 auto;
	}

	.idx_intro_img::after {
		top: -15%;
		right: 0;
	}

	.idx_intro_block:nth-of-type(2) .idx_intro_img::after {
		top: -55px;
		left: 0;
		right: auto;
		background-color: #f6f4ef;
	}

	.idx_intro_block:nth-of-type(3) .idx_intro_img::after {
		top: auto;
		bottom: -45px;
		left: 0;
		right: auto;
		background-color: #fcdedf;
	}

	.idx_flower_block01 {
		width: 80%;
		top: -100px;
		justify-content: space-between;
	}

	.idx_flower_block01 canvas:last-of-type {
		margin-bottom: 0;
		margin-left: 0;
	}

	.idx_flower_block02 {
		top: -80px;
	}

	.idx_flower_block03 {
		top: 120px;
	}

	.idx_flower_block04 {
		top: -60px;
		right: 80px;
	}

	.idx_flower_block05 {
		top: -100px;
	}

	/* -------------------- faq -------------------- */
	.idx_faq {
		margin-top: 80px;
		padding: 50px 0;
		background: url(../img/idx_bg03.png) no-repeat left center;
		background-size: cover;
	}

	.idx_bg03 {
		display: none;
	}

	.idx_faq .inner {
		position: static;
		top: auto;
		left: auto;
		right: auto;
		margin: 0 auto;
	}

	.idx_faq .ttl_h2 img {
		margin-bottom: 40px;
	}

	.mySwiper .swiper-wrapper {
		justify-content: center;
	}

	.mySwiper .swiper-slide {
		width: 16% !important;
		margin-right: 5%;
	}

	.mySwiper2 {
		padding: 30px 40px;
	}

	/* -------------------- banner -------------------- */
	.idx_banner {
		margin-top: 80px;
	}

	.idx_banner_list {
		display: block;
		max-width: 484px;
		margin: 0 auto;
	}

	.idx_banner_list>li {
		width: 100%;
		margin-bottom: 50px;
	}

	.idx_banner_list>li:last-of-type {
		margin-bottom: 0;
	}

}

@media only screen and (max-width: 480px) {
	.ttl_h2 img{
		width: 210px;
	}

	/* -------------------- mv -------------------- */
	.idx_mv {
		padding-top: 55vw;
		background-position: center center;
	}

	.idx_mv_txt {
		font-size: 1.7rem;
	}

	/* -------------------- video -------------------- */

	.idx_video_content .ttl_h2 {
		font-size: 1.8rem;
	}

	/* -------------------- intro -------------------- */

	.idx_intro .inner{
		margin-top: 30px;
	}

	.idx_intro_block {
		margin-bottom: 50px;
	}

	.idx_intro_img{
		margin-top: 40px;
	}
	.idx_intro_img::after {
		width: 120px;
		aspect-ratio: 120/120;
		top: -20px;
		border-radius: 6px;
	}

	.idx_intro_block:nth-of-type(2) .idx_intro_img::after {
		top: -20px;
	}

	.idx_intro_block:nth-of-type(3) .idx_intro_img::after {
		bottom: -20px;
	}

	.idx_flower_block01 {
		top: -80px;
	}

	.idx_flower_block02 {
		top: -60px;
	}

	/* -------------------- faq -------------------- */

	.idx_faq {
		padding-top: 0;
	}
	.mySwiper2 {
		padding: 20px;
	}

}

.fixed_banner{
	position: fixed;
	right: 0;
	top: 50%;
	transform: translateY(-50%);
	z-index: 99;
}
.fixed_banner a{
	display: block;
	animation: floating-y-2 1.2s ease-in-out infinite alternate-reverse;
}
.fixed_banner a:hover{
	opacity: 1;
}
@-webkit-keyframes floating-y-2 {
  0% {
    -webkit-transform: translateY(-8px);
            transform: translateY(-8px);
  }
  100% {
    -webkit-transform: translateY(8px);
            transform: translateY(8px);
  }
}
@keyframes floating-y-2 {
  0% {
    -webkit-transform: translateY(-8px);
            transform: translateY(-8px);
  }
  100% {
    -webkit-transform: translateY(8px);
            transform: translateY(8px);
  }
}

@media only screen and (max-width: 1200px) {
	.fixed_banner a{
		opacity: 0.8;
		width: 160px;
	}
}

@media only screen and (max-width: 1024px) {
	
}

@media only screen and (max-width: 768px) {
	.fixed_banner a{
		width: 140px;
	}
}

@media only screen and (max-width: 480px) {
	.fixed_banner a{
		width: 100px;
	}
}