@charset "utf-8";
body {
	background-color: #fff;
	font-family: "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", Roboto,
		"NotoSansCJKjp", MotoyaLCedar, "メイリオ", Meiryo, sans-serif;
	position: relative;
}
.img-responsive {
	display: block;
	max-width: 100%;
	height: auto;
	margin: auto;
}
.alpha {
	display: inline-block;
	-webkit-transition: 0.4s ease;
	transition: 0.4s ease;
}
.alpha:hover {
	filter: alpha(opacity=70);
	opacity: 0.7;
}
.visible-sp {
	display: none;
}
.contents {
	width: 100%;
	position: relative;
}
.wrapper {
	max-width: 750px;
	margin: 0 auto;
}
.wrapper-inner {
	max-width: 650px;
	margin: 0 auto;
}
.contents-btn {
	position: fixed;
	bottom: 0;
	left: 0;
	width: 100%;
	text-align: center;
	z-index: 9999;
}
.contents-btn a {
	cursor: pointer;
	display: block;
	max-width: 750px;
	margin: 0 auto;
}
.contents-btn a img {
	width: 100%;
}
.contents-cta .cta {
	position: relative;
}
.contents-cta-btn {
	position: absolute;
	width: 100%;
	text-align: center;
	margin: 0 auto;
	padding: 0 5%;
}
.contents-cta-btn01 {
	bottom: 34%;
}
.contents-cta-btn02 {
	bottom: 30.3%;
}
.contents-cta-btn a {
	cursor: pointer;
	display: inline-block;
}
.contents-cta-btn a img {
	width: 100%;
	animation: btnZoom 1s ease 0s infinite alternate;
	-webkit-animation: btnZoom 1s ease 0s infinite alternate;
}
@keyframes btnZoom {
	from {
		transform: scale(0.9, 0.9);
	}
	to {
		transform: scale(1, 1);
	}
}
.contents-footer .contents-footer-inner {
	background-color: #fff;
	padding: 30px 15px;
	text-align: center;
}
.contents-footer ul {
	display: inline-block;
}
.contents-footer ul li {
	display: inline-block;
	border-right: 1px solid #1c1c1c;
	margin-right: 5px;
	padding-right: 10px;
}
.contents-footer ul li:last-child {
	border-right: none;
	margin-right: 0;
	padding-right: 0;
}
.contents-footer ul li a {
	color: #1c1c1c;
	display: block;
	width: 100%;
	text-decoration: none;
	font-size: 14px;
}
.contents-footer .copy {
	color: #1c1c1c;
	text-align: center;
	margin-bottom: 5px;
}
@media (max-width: 575px) {
	.visible-sp {
		display: block;
	}
	.contents-footer .contents-footer-inner {
		padding: 30px 5px;
	}
	.contents-footer ul li {
		margin-right: 3px;
		padding-right: 6px;
	}
	.contents-footer ul li a {
		font-size: 12px;
	}
	.contents-footer .copy {
		font-size: 11px;
	}
}
@media (max-width: 360px) {
	.contents-footer ul li a {
		font-size: 10px;
	}
}

.contents17 .contents-inner06 {
	margin-top: -0.5px;
}

/* 動画・アニメーション共通 */
.contents-inner {
	position: relative;
	overflow: hidden;
}
.movie-wrapper {
	line-height: 0;
}
.movie-wrapper video {
	-o-object-fit: cover;
	object-fit: cover;
	height: 100%;
	width: 100%;
}
/* movie03 */
.contents03 .movie-wrapper {
	position: absolute;
	z-index: -1;
}
.contents03 .movie-wrapper.movie-wrapper01 {
	top: 22%;
	width: 100%;
	padding: 0 52% 0 6.5%;
}
.contents03 .movie-wrapper.movie-wrapper02 {
	top: 24.5%;
	width: 100%;
	padding: 0 6% 0 52%;
}
/* movie07 */
.contents07 .movie-wrapper {
	position: absolute;
	z-index: -1;
}
.contents07 .movie-wrapper.movie-wrapper01 {
	bottom: 3.5%;
	width: 170%;
	left: -40%;
	padding: 0;
}
/* movie10 */
.contents10 .movie-wrapper {
	position: absolute;
	z-index: -1;
}
.contents10 .movie-wrapper.movie-wrapper01 {
	top: -7%;
	width: 100%;
	left: 0;
	padding: 0 41% 0 0;
}
.contents10 .movie-wrapper.movie-wrapper02 video {
	clip-path: inset(32% 0% 0% 0%);
}
.contents10 .movie-wrapper.movie-wrapper02 {
	top: 18%;
	width: 100%;
	right: 0;
	padding: 0 0 0 43%;
}
.contents10 .movie-wrapper.movie-wrapper03 {
	top: 45%;
	width: 100%;
	left: 0;
	padding: 0 57% 0 0;
}
/* movie17 */
.contents17 .movie-wrapper {
	position: absolute;
	z-index: -1;
}
.contents17 .movie-wrapper.movie-wrapper01 {
	top: 13.5%;
	width: 100%;
	padding: 0 29% 0 0;
	left: -9%;
}
.contents17 .movie-wrapper.movie-wrapper02 video {
	clip-path: inset(0% 18% 0% 20%);
}
.contents17 .movie-wrapper.movie-wrapper02 {
	top: 12.5%;
	width: 100%;
	padding: 0 0 0 29%;
	right: -9%;
}
.contents17 .movie-wrapper.movie-wrapper03 {
	bottom: -0.5%;
	width: 100%;
	padding: 0 4%;
}
.contents17 .movie-wrapper.movie-wrapper04 {
	bottom: 5%;
	width: 170%;
	left: -30%;
	padding: 0;
}
.contents17 .movie-wrapper.movie-wrapper05 {
	bottom: 42%;
	width: 100%;
	padding: 0;
}
.contents17 .movie-wrapper.movie-wrapper06 {
	bottom: 12%;
	width: 100%;
	padding: 0 7% 0 0;
}
.contents17 .movie-wrapper.movie-wrapper07 {
	top: 44%;
	width: 100%;
	right: -21%;
	padding: 0 5% 0 0;
}
.contents17 .movie-wrapper.movie-wrapper08 {
	bottom: -2%;
	width: 150%;
	right: -47%;
	padding: 0 6% 0 0;
}

@keyframes zoom {
	from {
		transform: scale(1.1);
	}

	to {
		transform: scale(1);
	}
}

.contents-fv .contents-fv-text {
	position: absolute;
	bottom: 12.5%;
	left: 0;
	width: 100%;
	opacity: 0;
	padding: 0 0 0 3%;
	transition: ease 0.8s;
	z-index: 2;
}
.contents-fv .contents-fv-text.fadeIn {
	opacity: 1;
}
.contents03_text01 {
	position: absolute;
	top: 22.5%;
	width: 100%;
	padding: 0 2% 0 69%;
}
.contents05_text01 {
	position: absolute;
	bottom: 1.5%;
	left: -3%;
	width: 100%;
	padding: 0 47% 0 0%;
}
.contents09_text01 {
	position: absolute;
	top: 17%;
	width: 100%;
	padding: 0 6%;
}
.contents09_text02 {
	position: absolute;
	bottom: 6%;
	width: 102%;
	padding: 0;
}
.contents10_text01 {
	position: absolute;
	top: 7.7%;
	width: 100%;
	padding: 0 4% 0 11%;
}
.contents12_text01 {
	position: absolute;
	top: 29.5%;
	width: 100%;
	padding: 0 11% 0 0;
}
.contents12_text02 {
	position: absolute;
	top: 53%;
	width: 100%;
	padding: 0 0 0 11%;
}
.contents12_text03 {
	position: absolute;
	top: 77%;
	width: 100%;
	padding: 0 11% 0 0;
}
.contents15_text01 {
	position: absolute;
	top: 56%;
	width: 100%;
	padding: 0 3%;
}
.contents15_parts01 {
	position: absolute;
	top: 39%;
	width: 100%;
	padding: 0 10% 0 24%;
	z-index: 2;
}
.contents16_text01 {
	position: absolute;
	bottom: 3.6%;
	width: 100%;
	padding: 0 4%;
}
.contents17_text01 {
	position: absolute;
	top: 36%;
	width: 100%;
	padding: 0 7% 0 4%;
}
.contents17_text02 {
	position: absolute;
	bottom: 2%;
	width: 100%;
	padding: 0 3% 0 8%;
}
.contents17_text03 {
	position: absolute;
	bottom: 0.5%;
	width: 100%;
	padding: 0 73% 0 2%;
}
.contents18_text01 {
	position: absolute;
	bottom: 5%;
	width: 100%;
	padding: 0 7%;
}

/* slide01 */
.contents03 .slide-wrapper {
	position: absolute;
	bottom: 6%;
	z-index: 1;
	width: 100%;
}
.contents03 .slide01 .swiper-wrapper {
	z-index: 3;
}
.contents03 .slide01 .swiper-slide {
	position: relative;
}

/* slide02 */
.contents08 .slide-wrapper {
	position: absolute;
	bottom: 4%;
	z-index: 1;
	width: 100%;
}
.contents08 .slide02 .swiper-wrapper {
	z-index: 3;
}
.contents08 .slide02 .swiper-slide {
	position: relative;
}
.contents08 .slide02 .swiper-button-next,
.contents08 .slide02 .swiper-button-prev {
	position: absolute;
	top: 45%;
}

.contents08 .slide02 .swiper-button-next::after,
.contents08 .slide02 .swiper-button-prev::after {
	content: "";
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	background-repeat: no-repeat;
	background-size: 100%;
}
.contents08 .slide02 .swiper-button-next {
	right: 2.5%;
	z-index: 3;
}
.contents08 .slide02 .swiper-button-next::after {
	background-image: url("../images/slide-next.png");
	width: 70px;
	height: 130px;
}
.contents08 .slide02 .swiper-button-prev {
	left: 2.5%;
	z-index: 3;
}
.contents08 .slide02 .swiper-button-prev::after {
	background-image: url("../images/slide-prev.png");
	width: 70px;
	height: 130px;
}
@media (max-width: 767px) {
	.contents08 .slide02 .swiper-button-next,
	.contents08 .slide02 .swiper-button-prev {
		top: 43%;
	}
	.contents08 .slide02 .swiper-button-next {
		right: 2%;
	}
	.contents08 .slide02 .swiper-button-next::after {
		width: 45px;
		height: 85px;
	}
	.contents08 .slide02 .swiper-button-prev {
		left: 2%;
	}
	.contents08 .slide02 .swiper-button-prev::after {
		width: 45px;
		height: 85px;
	}
}

/* contents11 */
.contents11 .slide04 {
	position: absolute;
	top: 40%;
	width: 100%;
	padding: 0 4%;
}
.contents11 #slide_wrapp {
	position: relative;
}
.contents11 .slide_item {
	position: absolute;
	top: 0;
	left: 0;
	transition: ease 0.4s;
	z-index: 1;
}
.contents11 .slide_item.before {
	width: 100%;
	z-index: 2;
}
.contents11 .slide_item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
@supports (mask-size: 100% 100%) {
	.contents11 .slide_item img {
		mask-image: url("../images/mask.png");
		mask-repeat: no-repeat;
		mask-position: left center;
		mask-size: 100% 100%;
	}
	.contents11 .slide_item.before img {
		animation: slide 4s cubic-bezier(0.4, 0, 0.2, 1) 0s infinite;
	}
}
@keyframes slide {
	0% {
		mask-size: 0% 100%;
	}
	50% {
		mask-size: 100% 100%;
	}
	100% {
		mask-size: 0% 100%;
	}
}
