@charset "UTF-8";

/* ====================================
	共通スタイル
 ==================================== */
.bg-cream {
	background-color: #FFFCF2;
}

.sub-text sup {
	color: #000;
}

/* アニメーション */
.sub-header {
	transition: all .5s;
}

.sub-section .flex-img {
	transition: all 1s .6s;
}

.sub-section .flex-text {
	transition: all 1s .6s;
}

.sub-section:not(.passed) .sub-header {
	opacity: 0;
	transform: scale(1.1);
}

.sub-section:not(.passed) .flex-img,
.sub-section:not(.passed) .flex-text {
	opacity: 0;
}

.mv-title-wrap {
	overflow: hidden;
}

.span-outer {
	display: inline-block;
	overflow: hidden;
}

.mv-title .span-wrap {
	display: inline-block;
	background-color: #fff;
	overflow: hidden;
	transition: transform .7s cubic-bezier(0.215, 0.61, 0.355, 1) .3s;
}

.mv-title .span-wrap span {
	display: inline-block;
	padding: 0 .5em;
	transition: transform .7s cubic-bezier(0.215, 0.61, 0.355, 1) .3s;
}

.mv-title .line2 .span-wrap,
.mv-title .line2 .span-wrap span {
	transition-delay: .6s;
}

.mv-title-wrap:not(.loaded) .mv-title .span-wrap {
	transform: translate(-100%, 0);
}

.mv-title-wrap:not(.loaded) .mv-title .span-wrap span {
	transform: translate(100%, 0);
}

.mv-title-img {
	overflow: hidden;
}
.mv-title-img img {
	transition: all 1s cubic-bezier(0.215, 0.61, 0.355, 1) 1s;
}

.mv-title-wrap:not(.loaded) .mv-title-img img {
	opacity: 0;
	transform: translate(0, 30%);
}

/* ====================================
	1023px以下専用スタイル
===================================== */
@media only screen and (max-width: 1023px) {

	/* メインビジュアル */
	#mainVisual {
		position: relative;
	}

	#mainVisual .outer-base-width,
	#mainVisual .base-width,
	#mainVisual .visual {
		width: 100%;
		height: 100%;
	}

	#mainVisual .visual {
		background: url(images/bg-main-visual.jpg) no-repeat center center;
		background-size: cover;
		position: absolute;
		top: 0;
		left: 0;
	}

	#mainVisual .base-width {
		position: relative;
	}

	.mv-title-wrap {
		height: 100%;
		padding: 40px 0 0;
		position: relative;
	}

	.mv-title {
		font-size: 2rem;
		text-align: center;
	}

	.mv-title-img {
		width: 80%;
		margin: 20px auto 0;
	}

	/* メインセクション */
	.main-section {
		padding: 60px 0 40px;
		font-size: 1.6rem;
		line-height: 1.7;
	}

	/* サブセクション */
	.sub-section {
		padding: 50px 0 50px;
		overflow: hidden;
	}

	.sub-header {
		margin-bottom: 40px;
		padding: 20px;
		background-color: #FFE36F;
		border-radius: 10px;
		text-align: center;
		position: relative;
	}

	.sub-header::before {
		content: '';
		display: block;
		height: 0;
		position: absolute;
		border-left: solid 10px transparent;
		border-top: solid 16px #FFE36F;
		border-right: solid 10px transparent;
		bottom: -16px;
		left: 50%;
		transform: translate(-50%, 0);
	}

	.flex-img {
		margin-bottom: 30px;
	}

	.sub-title {
		font-size: 1.8rem;
	}

	.sub-text {
		font-size: 1.6rem;
		line-height: 1.7;
	}

	/* おすすめ */
	.osusume {
		margin-top: 60px;
		padding: 40px 5%;
		background-color: #fff;
		border: solid 4px #FFE36F;
		border-radius: 10px;
		position: relative;
	}

	.osusume-label-wrap {
		width: 100%;
		position: absolute;
		top: 0;
		left: 0;
		transform: translate(0, -50%);
		text-align: center;
	}

	.osusume-label {
		display: inline-block;
		padding: 10px 20px;
		background-color: #FFE36F;
	}

	.osusume-img {
		margin-bottom: 20px;
	}

	.osusume-text {
		text-align: center;
	}

	.osusume-lead {
		margin-bottom: .5em;
	}

	.osusume-ttl {
		margin-bottom: 20px;
		font-size: 1.6rem;
	}

	.osusume .btn-arrow {
		margin-top: 20px;
	}

	.osusume .btn-arrow a {
		display: block;
	}

	/* 個別スタイル */
	#sub02 .flex-text {
		display: flex;
		flex-wrap: wrap;
	}

	#sub02 .sub-text {
		width: 100%;
		order: 1;
	}

	#sub02 .sub-img {
		width: 100%;
		order: 0;
	}

	#sub02 .img-ttl {
		margin-bottom: 1em;
		font-size: 1.1em;
	}

	#sub02 .sub-img {
		margin-bottom: 40px;
	}

	#sub08 .sub-text {
		margin-bottom: 40px;
	}

	#sub08 .bdr-box {
		padding: 30px 5%;
		border: solid 3px #FDD118;
		border-radius: 20px;
	}

	#sub08 .check-title {
		margin-bottom: 30px;
		font-size: 2rem;
		text-align: center;
	}

	#sub08 .check-ttl {
		margin-bottom: 1em;
		font-size: 1.6rem;
	}

	#sub08 .flex-item:first-of-type {
		margin-bottom: 20px;
	}

	ul.list-check li {
		padding-left: 1.4em;
		background: url(images/icon-check.svg) no-repeat left .3em;
		background-size: 1em;
		
	}

	ul.list-check li:not(:first-child) {
		margin-top: .5em;
	}

	#sub08 .caption {
		text-align: right;
	}
	
	#sub08 .btn-arrow {
		margin-top: 60px;
		text-align: center;
	}
}

/* ====================================
	768px以上1023以下専用スタイル
===================================== */
@media screen and (min-width: 768px) and (max-width: 1023px) {}

/* ====================================
	1024px以上印刷専用スタイル
===================================== */
@media print,
screen and (min-width: 1024px) {

	/* メインビジュアル */
	#mainVisual {
		height: 320px;
		position: relative;
	}

	#mainVisual .outer-base-width,
	#mainVisual .base-width,
	#mainVisual .visual {
		width: 100%;
		height: 100%;
	}

	#mainVisual .visual {
		background: url(images/bg-main-visual.jpg) no-repeat center center;
		background-size: cover;
		position: absolute;
		top: 0;
		left: 0;
	}

	#mainVisual .base-width {
		position: relative;
	}

	.mv-title-wrap {
		padding: 80px 0 0;
	}

	.mv-title {
		font-size: 4rem;
		overflow: hidden;
	}

	.mv-title-img {
		width: 43%;
		text-align: center;
		position: absolute;
		right: 0;
		bottom: 0;
	}

	.mv-title-img img {
		width: 360px;
	}

	/* メインセクション */
	.main-section {
		padding: 100px 0;
		text-align: center;
	}

	.main-text {
		font-size: 2rem;
		line-height: 2;
	}

	/* サブセクション */
	.sub-section {
		padding: 100px 0 100px;
		overflow: hidden;
	}

	.sub-header {
		margin-bottom: 80px;
		padding: 25px;
		background-color: #FFE36F;
		border-radius: 30px;
		text-align: center;
		position: relative;
	}

	.sub-header::before {
		content: '';
		display: block;
		height: 0;
		position: absolute;
		border-left: solid 10px transparent;
		border-top: solid 16px #FFE36F;
		border-right: solid 10px transparent;
		bottom: -16px;
		left: 50%;
		transform: translate(-50%, 0);
	}

	.flex-img {
		width: 45%;
	}

	.flex-text {
		width: 50%;
	}

	.img-right .flex-img {
		order: 1;
	}

	.img-right .flex-text {
		order: 0;
	}

	.sub-title-lead {
		font-size: 2rem;
	}

	.sub-title {
		font-size: 3rem;
	}

	.sub-text {
		font-size: 1.8rem;
		line-height: 2;
	}

	/* おすすめ */
	.osusume {
		margin-top: 80px;
		padding: 60px 5% 40px;
		background-color: #fff;
		border: solid 4px #FFE36F;
		border-radius: 30px;
		position: relative;
	}

	.osusume-label {
		display: inline-block;
		padding: 10px 30px;
		background-color: #FFE36F;
		font-size: 2.4rem;
		position: absolute;
		top: 0;
		left: 50%;
		transform: translate(-50%, -50%);
	}

	.osusume-container {
		display: flex;
		justify-content: space-between;
	}

	.osusume-img {
		width: 50%;
		order: 1;
	}

	.osusume-text {
		width: 45%;
		order: 0;
	}

	.osusume-lead {
		margin-bottom: 10px;
		font-size: 1.8rem;
	}

	.osusume-ttl {
		margin-bottom: 30px;
		font-size: 2.4rem;
	}

	.osusume .btn-arrow {
		margin-top: 30px;
	}

	/* 個別スタイル */
	#sub02 .img-ttl {
		margin-bottom: 20px;
		font-size: 1.8rem;
	}

	#sub02 .sub-img {
		max-width: 460px;
		margin-top: 40px;
	}

	#sub08 .sub-text {
		margin-bottom: 60px;
		text-align: center;
	}

	#sub08 .bdr-box {
		padding: 40px;
		border: solid 3px #FDD118;
		border-radius: 30px;
	}

	#sub08 .check-title {
		margin-bottom: 40px;
		font-size: 2.4rem;
		text-align: center;
	}

	#sub08 .check-ttl {
		margin-bottom: 1em;
		font-size: 2rem;
	}

	ul.list-check li {
		padding-left: 1.6em;
		background: url(images/icon-check.svg) no-repeat left .3em;
		background-size: 1em;
		
	}

	ul.list-check li:not(:first-child) {
		margin-top: .5em;
	}

	#sub08 .caption {
		text-align: right;
	}
	
	#sub08 .btn-arrow {
		margin-top: 60px;
		text-align: center;
	}

}

/* ====================================
	1024px以上1199px以下専用スタイル
===================================== */
@media print,
screen and (min-width: 1024px) and (max-width: 1199px) {}

/* ====================================
	1200px以上専用スタイル
===================================== */
@media screen and (min-width: 1200px) {}

/* ====================================
	IE
===================================== */
@media all and (-ms-high-contrast: none),
(-ms-high-contrast: active) {
	.mv-title .span-wrap span {
		padding: 0.2em .5em 0;
	}	
}
